https://github.com/mozilla/gecko-dev
Raw File
Tip revision: 1c1ac9fcff5624021cc6807a5f15ed0b1796efc6 authored by ffxbld on 06 November 2016, 03:11:57 UTC
Added FENNEC_50_0_RELEASE FENNEC_50_0_BUILD1 tag(s) for changeset 3d81a5476f96. DONTBUILD CLOSED TREE a=release
Tip revision: 1c1ac9f
mandreel.js
// Portions copyright 2012 Google, Inc.
// Copyright 2012 Onan Games. All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
//       copyright notice, this list of conditions and the following
//       disclaimer in the documentation and/or other materials provided
//       with the distribution.
//     * Neither the name of Google Inc. nor the names of its
//       contributors may be used to endorse or promote products derived
//       from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

var MandreelBenchmark = new BenchmarkSuite('Mandreel', [16831872, 49852],
                                            [new Benchmark('Mandreel',
                                                           false,
                                                           false,
                                                           15,
                                                           runMandreel,
                                                           setupMandreel,
                                                           tearDownMandreel,
                                                           RMSMandreel,
                                                           4)]);

var mandreelSumSquaredPauses = 0;
var mandreelSamples = 0;
var mandreelSampleTimeStart = 0.0;

function setupMandreel() {
  // Check for Typed Arrays support, throw error if not.
  if (!(typeof Uint8Array != "undefined" &&
    typeof Float64Array != "undefined" &&
    typeof (new Uint8Array(0)).subarray != "undefined")) {
      throw "TypedArrayUnsupported";
  }

  my_old_constructors = mandreel_call_constructors;
  mandreel_call_constructors = my_mandreel_call_constructors;
  startMandreelTimer();
  startApp();
  _mandreelAppAudioReady();
}

function runMandreel() {
  Mandreel_currentTime = 0;
  var sp = g_stack_pointer+800*1024;
  for (var i=0;i<mandreel_total_memory/4;i++) {
    heap32[i] = my_heap32[i];
  }
  tlsf_ptr = 0;
  heapNewPos = my_heapNewPos;
  my_old_constructors(llvm_2E_global_ctors,5,sp);
  heapU32[sp>>2] = 640;
  heapU32[(sp+4)>>2] = 480;
  __mandreel_internal_SetResolution(sp);
  __mandreel_internal_init(g_stack_pointer+800*1024);
  __init(g_stack_pointer+800*1024);
  for (var i = 0; i < 20; i++) {
    render();
    Mandreel_flushTimeouts();
    updateMandreelStats(performance.now());
  }
  Mandreel_checkState();
}

function updateMandreelStats(time) {
  var pause = time - mandreelSampleTimeStart;
  mandreelSampleTimeStart = time;
  mandreelSumSquaredPauses += (pause * pause);
  mandreelSamples++;
}

function startMandreelTimer() {
  mandreelSampleTimeStart = performance.now();
}

function RMSMandreel() {
  return Math.round(Math.sqrt(mandreelSumSquaredPauses / mandreelSamples) * 100);
}

function tearDownMandreel() {
  my_old_constructors = null;
  my_heap = null;
  my_heap8 = null;
  my_heap32 = null;

  heap = null;
  heap8 = null;
  heapU8 = null;
  heap16 = null;
  heapU16 = null;
  heap32 = null;
  heapU32 = null;
  heapFloat = null;
  heapDouble = null;
  mandreelAppUsePackAsyncTexture = null;
  mandreelSumSquaredPauses = 0;
  mandreelSamples = 0;
}

// Mocks for browser functions.

function Mandreel_setTimeout(cmd, delay) {
  timeouts.push(cmd);
}

function Mandreel_flushTimeouts() {
  while (Mandreel_timeouts.length != 0) {
    var next = Mandreel_timeouts.pop();
    eval(next);
  }
}

Mandreel_timeouts = new Array();

Mandreel_XMLHttpRequest = function() {
  this.open = function(type, url, some_bool) {
    this.url = url;
  }
  this.overrideMimeType = function() {
  }
  this.send = function() {
    this.response = null;
    this.readyState = 4;
    this.status = 0;
    this.onreadystatechange();
  }
};

function Mandreel_Element(type) {
  this.element_type = type;
  this.insertBefore = function() {
  }
}


function Mandreel_Context() {
}

function Mandreel_Canvas() {
}

function Mandreel_CanvasDiv() {
}

Mandreel_document = {
  createElement : function(element_type) {
    var element = new Mandreel_Element(element_type);
    element.parentNode = new Mandreel_Element("dummy_parent");
    return element;
  },
  getElementById : function(name) {
    if (name === "canvas") {
      return new Mandreel_Canvas();
    } else if (name === "canvasDiv") {
      return new Mandreel_CanvasDiv();
    } else {
      return undefined;
    }
  },
  getElementsByTagName : function(element) {
    if (element === "script") {
      return new Array(new this.createElement(element));
    }
  }

};

Mandreel_window = {
  WebGLRenderingContext: {},
  Float64Array: Float64Array,
  Float32Array: Float32Array,
  Int32Array: Int32Array,
  Uint32Array: Uint32Array,
  Int16Array: Int16Array,
  Uint16Array: Uint16Array,
  Int8Array: Int8Array,
  Uint8Array: Uint8Array,
  setTimeout: Mandreel_setTimeout,
  addEventListener : function () {},
  document: Mandreel_document
};

function dump(x) { }

alert = typeof alert != "undefined" ? alert : function(x) {
  print(x);
}

var my_old_constructors;
var my_heap;
var my_heap8;
var my_heap32;
var my_heapNewPos;

function my_mandreel_call_constructors(_ptr, size,stackPos) {
  my_heapNewPos = heapNewPos;
  my_heap = new ArrayBuffer(mandreel_total_memory);
  my_heap8 = new Int8Array(my_heap);
  my_heap32 = new Int32Array(my_heap);
  for (var i=0;i<mandreel_total_memory/4;i++) {
    my_heap32[i] = heap32[i];
  }
  my_old_constructors(_ptr,size,stackPos);
}


var Mandreel_currentTime = 0;

function Date_now() {
   Mandreel_currentTime += 16;
   return Mandreel_currentTime;
}

function Mandreel_checkState() {
  var sum = 0;
  for (var i = 0; i < heap32.length; i += 100) {
    sum = (sum * 3 + heap32[i]) & 0xFFFFFF;
  }
  if (sum != 8001026) {
    alert("Check sum mismatch: expected ???, actual " + sum);
  }
}

// Original Mandreel code follows.
// Modifications for benchmarking are marked in comments.

// Start of js/main.js file:

////////////////////////////////////////////
function startApp(_platform)
{
	// Start mandreel
	var params =
	{
		platform : _platform,
		width : 1024,
		height : 768,
		webglCanvas : "canvas",
		flashCanvas : "FlashDiv",
		workingFolderFlash : "data/as3/",
		workingFolderWebgl : "data/js/",
		swfFlash : "mandreel.swf",
		log : true
	};
	mandreelAppStart(appStartState,params);
}

////////////////////////////////////////////
function appStartState(state,param)
{
	// mandreel.js program is been loaded
	if ( state == "loadingScript" )
	{
	}

	// mandreel.js program has been loaded
	if ( state == "scriptLoaded" )
	{
	}

	// loading pack data file
	if (state == "loadingData")
	{
		// param bytes loaded
	}

	// Audio system is been started
	if ( state == "loadingAudio" )
	{
	}

	// Audio system is ready and the default audio preloading has been done
	if ( state == "audioLoaded" )
	{
	}



	// Mandreel has been started, render will start automatically
	if ( state == "ready" )
	{
		// Hide loading image
		var canvasElement = Mandreel_document.getElementById('loading');
		if ( canvasElement != null )
			canvasElement.style.visibility = "hidden";
	}

	// An error has been produced during the start process and the app must quit
	if ( state == "error" )
	{
		if ( param == "webgl_not_found" )
		{
			window.location = "http://get.webgl.org";
			return;
		}
		alert(param);
	}
}

// End of js/main.js file.

// Start of js/mandreelapp.js file.

var mandreelAppMandreelJs = "mandreel.js";
var mandreelAppMandreelJsCompressed = false;
var mandreelAppWorkingFolder = "data/js/";
var mandreelAppLog = false;
var mandreelAppLocalHost = "http://localhost";
var mandreelAppReadDataFromLocalHost = false;
var mandreelAppReadMandreelJsFromLocalHost = false;
var mandreelAppHostedAudioServer = null;
var mandreelAppHostedAudioUrl = null;
var mandrelCurrentFatVersion = "1.4";
var mandreelAppPlatform = "webgl";
var mandreelAppCanvasWidth = 1024;
var mandreelAppCanvasHeight = 768;
var mandreelAppWidthSrc = 1024;
var mandreelAppHeightSrc = 768;
var mandreelAppCanvasName = "canvas";
var mandreelAppCanvasDiv = "canvasDiv";
var mandreelAppUseFlashSockets = false;
var mandreelAppUsePackAsyncTexture = new Array();
//var mandreelBufferPackAsyncTexture = null;
var mandreelAppForceFocus = true;
var _imandreel_pause_game = false;

/* The following code was removed for benchmarking:
navigator.pointer = navigator.pointer || navigator.webkitPointer || navigator.mozPointer || null;*/

/* The following code was removed for benchmarking:
 if (!Date_now) {
   Date_now = function() {
     return +new Date();
   };
 };*/

////////////////////////////////////////////

if (Mandreel_window["console"])
{
	if (!Mandreel_window["dump"]) Mandreel_window["dump"] = function dump(str){ if ( mandreelAppLog ) console.log(str) };
}
else
{
	if (!Mandreel_window["dump"]) Mandreel_window["dump"] = function dump(str){ };
}

/* The following code is removed for benchmarking:
var mandreel_BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera",
			versionSearch: "Version"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
mandreel_BrowserDetect.init(); */

////////////////////////////////////////////
var mandreel_packfiledata_name = null;
var mandreel_packfiledata_compressed = false;
var mandreel_packfiledata_size = 0;
var mandreel_total_packtexture_size = 0;
var mandreel_total_pogfile_size = 0;
var mandreel_loaded_packtexture_size = 0;
var mandreel_jslzma_size = 0;
var mandreel_swf_size = 0;

var mandreelJsScriptLoaded_loaded = false;

var mandreel_swf_last_total_size = 0;
function mandreel_swf_size_updated(str)
{
	var params = str.split(',');
	if ( mandreel_swf_size == 0 )
	{
		mandreel_swf_last_loaded_size = 0;
	}
	mandreel_swf_size = parseInt(params[0]);
	var loaded = parseInt(params[1]);
	var delta_size = loaded - mandreel_swf_last_loaded_size;
	mandreel_swf_last_loaded_size = loaded;

	var percentage = ((100*loaded)/mandreel_swf_size)|0;
	if (percentage>100)
		percentage = 100;

	if ( mandreelAppStartStateFunc )
		mandreelAppStartStateFunc("loadingScriptUpdate",percentage);

	imandreel_update_load(delta_size,0);
}

function mandreel_swf_size_loaded(str)
{
	if ( mandreelAppStartStateFunc )
		mandreelAppStartStateFunc("scriptLoaded","");
}

function mandreelNextDecompress(mandreel_result_lzma)
{

	if ( mandreelAppStartStateFunc )
	{
		var totalBytesLeft = mandreel_result_lzma.totalSize - mandreel_result_lzma.remainingBytes;

		var percentage;

		if (totalBytesLeft == 0)
			percentage = 0;
		else
			percentage = ((100*totalBytesLeft)/mandreel_result_lzma.totalSize)|0;

		mandreelAppStartStateFunc("uncompressingDataUpdate",percentage);
	}

	var old_result = mandreel_result_lzma;
	mandreel_result_lzma = LZMA.decompress2(mandreel_result_lzma.inStream,mandreel_result_lzma.inStream,mandreel_result_lzma.outStream,mandreel_result_lzma);

	if (mandreel_result_lzma == null)
	{
		//setTimeout(mandreelLoadScript,10,old_result.my_outStream.data);

		//mandreel_fs_saveFile('data.bin', old_result.my_outStream.arrayBuffer);
		//callback(old_result.my_outStream.arrayBuffer);
		//alert('done');
		mandreelLoadPackData(old_result.my_outStream.arrayBuffer,true);
	}
	else
	{
		Mandreel_setTimeout(mandreelNextDecompress,10,mandreel_result_lzma);
	}


}

function mandreel_load_packfile(array_buffer)
{
	if (array_buffer)
	{
		mandreelLoadPackData(array_buffer,false);
		return;
	}

	var working_folder = mandreelAppWorkingFolder;
	if ( mandreelAppReadDataFromLocalHost )
		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
	var packdata_request = new XMLHttpRequest();
	var url = working_folder+mandreel_packfiledata_name;

	packdata_request.open("GET", url, true);

	if("responseType" in packdata_request)
		packdata_request.responseType="arraybuffer";
	else
		packdata_request.overrideMimeType('text/plain; charset=x-user-defined');

	var last_loaded_size = 0;

	packdata_request.onreadystatechange = function()
	{
		if (packdata_request.readyState != 4) return;

		if (packdata_request.status == 200)
		{
			var buffer;
			if (packdata_request.responseType=="arraybuffer")
				buffer=packdata_request.response;
			else if (packdata_request.mozResponseArrayBuffer != null)
				buffer = packdata_request.mozResponseArrayBuffer;
			else
				buffer=packdata_request.response;

			if (mandreel_packfiledata_compressed)
			{
				var inStream = {
				  data: new Uint8Array(buffer),
				  offset: 0,
				  readByte: function(){
					return this.data[this.offset ++];
				  }
				};

				var outStream = {
				  data: null,
				  offset: 0,
				  binary_mode : true,
				  writeByte: function(value){
					this.data[this.offset ++] = value;
				  }
				};


				var result = LZMA.decompress2(inStream,inStream,outStream,null);

				if (result == null)
					mandreelLoadPackData(outStream.arrayBuffer,true);
				else
					Mandreel_setTimeout(mandreelNextDecompress,10,result);
			}
			else
				mandreelLoadPackData(buffer,true);
		}
		else
		{
			if ( mandreelAppStartStateFunc )
				mandreelAppStartStateFunc("error","can't load packfile data");
		}
	}
	packdata_request.onprogress = function(e)
	{
		var delta_size = e.loaded - last_loaded_size;
		last_loaded_size = e.loaded;
		var percentage = ((100*e.loaded)/mandreel_packfiledata_size)|0;


		imandreel_update_load(delta_size,0);

		if (percentage>100)
			percentage = 100;

		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingData",percentage);
	}

	packdata_request.send();
}

function mandreelJsScriptLoaded()
{
	if (mandreelJsScriptLoaded_loaded)
		return;

	if (typeof(mandreel_cache_files)=="undefined")
	{
		Mandreel_setTimeout(mandreelJsScriptLoaded,10);
		return;
	}

	mandreelJsScriptLoaded_loaded = true;

	if ( mandreelAppStartStateFunc )
		mandreelAppStartStateFunc("scriptLoaded","");

	if (mandreel_packfiledata_name)
	{

		mandreel_fs_load_binary(mandreel_packfiledata_name, mandreel_load_packfile);


	}
	else
	{
		mandreelCacheMandreelFat();
		imandreelJsScriptLoaded();
	}
}

function imandreelLoadAudio()
{
	g_mandreel_working_folder = mandreelAppWorkingFolder;
	if ( mandreelAppReadDataFromLocalHost )
		g_mandreel_working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;

	// load audio
	if ( mandreelAppStartStateFunc )
		mandreelAppStartStateFunc("loadingAudio","");
	mandreel_start_audio(mandreelAppHostedAudioServer,mandreelAppHostedAudioUrl,_mandreelAppAudioReady);
}

var _mandreel_currentPackTexture = '';

function imandreel_packasynctexture_loaded(buffer,save_file)
{
	if (save_file)
		mandreel_fs_saveFile(_mandreel_currentPackTexture,buffer);

	//mandreelBufferPackAsyncTexture = buffer;
	Mandreel_TextureAsync_PackBufferData[_mandreel_currentPackTexture] = buffer;

	imandreelLoadNextTexturePack();
}

var mandreel_update_total_size = 0;

function imandreel_update_load(size, total)
{
	if (total == 0)
		total = mandreel_packfiledata_size + mandreel_total_packtexture_size + mandreel_total_pogfile_size + mandreel_jslzma_size + mandreel_swf_size;


	mandreel_update_total_size+=size;

	var percentage = ((100*mandreel_update_total_size)/total)|0;

	if (percentage>100)
		percentage = 100;
	if (mandreelAppStartStateFunc)
		mandreelAppStartStateFunc("loadingProgress",percentage);

}


function imandreel_packasynctexture_load(array_buffer)
{
	if (array_buffer)
	{
		imandreel_packasynctexture_loaded(array_buffer, false);
		return;
	}


	var working_folder = mandreelAppWorkingFolder;
	if ( mandreelAppReadDataFromLocalHost )
		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
	var packdata_request = new XMLHttpRequest();
	var url = working_folder+_mandreel_currentPackTexture;

	packdata_request.open("GET", url, true);

	if("responseType" in packdata_request)
		packdata_request.responseType="arraybuffer";
	else
		packdata_request.overrideMimeType('text/plain; charset=x-user-defined');

	var last_loaded_size = 0;

	packdata_request.onreadystatechange = function()
	{
		if (packdata_request.readyState != 4) return;

		if (packdata_request.status == 200)
		{
			var buffer;
			if (packdata_request.responseType=="arraybuffer")
				buffer=packdata_request.response;
			else if (packdata_request.mozResponseArrayBuffer != null)
				buffer = packdata_request.mozResponseArrayBuffer;
			else
				buffer=packdata_request.response;

			imandreel_packasynctexture_loaded(buffer, true);
		}
		else
		{
			if ( mandreelAppStartStateFunc )
				mandreelAppStartStateFunc("error","can't load textureasync pack data");
		}
	}
	packdata_request.onprogress = function(e)
	{
		var delta_size = e.loaded - last_loaded_size;
		last_loaded_size = e.loaded;
		mandreel_loaded_packtexture_size+=delta_size;

		imandreel_update_load(delta_size,0);

		var percentage = ((100*mandreel_loaded_packtexture_size)/mandreel_total_packtexture_size)|0;

		if (percentage>100)
			percentage = 100;

		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingTextureAsyncPack",percentage);
	}

	packdata_request.send();

}

function imandreelLoadNextTexturePack()
{
	if (mandreelAppUsePackAsyncTexture.length)
	{
		_mandreel_currentPackTexture = mandreelAppUsePackAsyncTexture.pop();
		mandreel_fs_load_binary(_mandreel_currentPackTexture, imandreel_packasynctexture_load);
	}
	else
		imandreelLoadAudio();
}

function imandreelJsScriptLoaded()
{
	imandreelLoadNextTexturePack();
}

////////////////////////////////////////////

function mandreelDecompressJSReady(code, save_file)
{
	if (save_file)
		mandreel_fs_saveFile(mandreelAppMandreelJs + ".lzma", code);

	var ga = Mandreel_document.createElement('script');
	ga.type = "text/javascript";
	ga.text = code;
	var s = Mandreel_document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	s.parentNode.removeChild(ga);
	mandreelJsScriptLoaded();
}

function mandreelNextDecompressJS(mandreel_result_lzma)
{

	if ( mandreelAppStartStateFunc )
	{
		var totalBytesLeft = mandreel_result_lzma.totalSize - mandreel_result_lzma.remainingBytes;

		var percentage;

		if (totalBytesLeft == 0)
			percentage = 0;
		else
			percentage = ((100*totalBytesLeft)/mandreel_result_lzma.totalSize)|0;

		mandreelAppStartStateFunc("uncompressingScriptUpdate",percentage);
	}

	var old_result = mandreel_result_lzma;
	mandreel_result_lzma = LZMA.decompress2(mandreel_result_lzma.inStream,mandreel_result_lzma.inStream,mandreel_result_lzma.outStream,mandreel_result_lzma);

	if (mandreel_result_lzma == null)
	{
		mandreelDecompressJSReady(old_result.my_outStream.data,true);
	}
	else
	{
		Mandreel_setTimeout(mandreelNextDecompressJS,10,mandreel_result_lzma);
	}


}

function mandreel_load_compressed_js(code_js)
{
	if (code_js)
	{
		mandreelDecompressJSReady(code_js,false);
		return;
	}
	 var xmlhttp_get = new XMLHttpRequest();

	 var url = mandreelAppMandreelJs + ".lzma";
	 if ( mandreelAppReadMandreelJsFromLocalHost )
		url = mandreelAppLocalHost+"/"+url;

	 xmlhttp_get.open('GET',url);


	if("responseType" in xmlhttp_get)
		xmlhttp_get.responseType="arraybuffer";
	else
		xmlhttp_get.overrideMimeType('text/plain; charset=x-user-defined');

	var last_loaded_size = 0;

	xmlhttp_get.onreadystatechange = function()
	{
		if (xmlhttp_get.readyState==4)
		{
			if (xmlhttp_get.status==200 || xmlhttp_get.status==0)
			{

				var inStream = {
				  data: new Uint8Array(xmlhttp_get.response),
				  offset: 0,
				  readByte: function(){
					return this.data[this.offset ++];
				  }
				};

				var outStream = {
				  data: new String(""),
				  offset: 0,
				  binary_mode : false,
				  writeByte: function(value){
					this.data+=String.fromCharCode(value);
				  }
				};


				var result = LZMA.decompress2(inStream,inStream,outStream,null);
				if (result == null)
					mandreelDecompressJSReady(outStream.data,true);
				else
					Mandreel_setTimeout(mandreelNextDecompressJS,10,result);
			}
			else
			{
				alert('error ' + xmlhttp_get.status);
			}
		}

	}

	xmlhttp_get.onprogress = function(e)
	{
		var delta_size = e.loaded - last_loaded_size;
		last_loaded_size = e.loaded;

		var percentage = ((100*e.loaded)/e.total)|0;

		mandreel_jslzma_size = e.total;

		imandreel_update_load(delta_size,0);

		if (percentage>100)
			percentage = 100;

		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingScriptUpdate",percentage);
	}

	xmlhttp_get.send();

}

function mandreelLoadMandreelJsScript()
{
	if (mandreelAppMandreelJsCompressed)
	{
		mandreel_fs_load_text(mandreelAppMandreelJs + ".lzma", mandreel_load_compressed_js);

	}
	else
	{
		var ga = Mandreel_document.createElement('script');
		ga.type = 'text/javascript';
		ga.async = true;
		ga.onload = ga.onreadystatechange = mandreelJsScriptLoaded;
		var url = mandreelAppMandreelJs;
		if ( mandreelAppReadMandreelJsFromLocalHost )
			ga.src = mandreelAppLocalHost+"/"+url;
		else
			ga.src = url;
		var s = Mandreel_document.getElementsByTagName('script')[0];
		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingScript","");
		s.parentNode.insertBefore(ga, s);
	}
}

////////////////////////////////////////////
function mandreelFatLoaded()
{
	if ( mandreelAppPlatform == "nacl" )
	{
		g_mandreel_working_folder = mandreelAppWorkingFolder;
		if ( mandreelAppReadDataFromLocalHost )
			g_mandreel_working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;

		// load audio
		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingAudio","");
		_mandreelAppAudioReady();
	}
	else
		mandreelLoadMandreelJsScript();
}

var mandreelFatData = "";
var mandreelFatPreloadRequest = 0;
////////////////////////////////////////////

function mandreel_chanka_fixfile(fileName)
{
	var fileNameNoExt = fileName.toLowerCase();
	fileNameNoExt = fileNameNoExt.replace(/\\/g,"/");

	fileNameNoExt =  fileNameNoExt.substr(1);

	var new_fileName = '';

	for(var j = 0; j < fileNameNoExt.length; j++)
	{
		var data = fileNameNoExt.charCodeAt(j);

		if (data != 13)
		{
			 var t = String.fromCharCode(data);
			 new_fileName+=t;
		}
	}

	return 	new_fileName;
}

function mandreel_removecr(my_string)
{
	var new_string = '';
	for(var j = 0; j < my_string.length; j++)
	{
		var data = my_string.charCodeAt(j);

		if (data != 13)
		{
			 var t = String.fromCharCode(data);
			 new_string+=t;
		}
	}

	return 	new_string;
}

function mandreelCacheMandreelFat()
{
	var array_mandreel_fat = new ArrayBuffer(mandreelFatData.length+1);


	{
		var j;
		var len = mandreelFatData.length;
		var data_char;

		var my_bytes = new Uint8Array(array_mandreel_fat);

		for(j = 0; j < len; j++)
		{
			data_char = mandreelFatData.charCodeAt(j);

			my_bytes[j] = data_char;
		}
		my_bytes[j] = 0;
	}


	mandreel_cache_files['mandreel.fat'] = array_mandreel_fat;
}

function mandreelLoadPackData(data, save_pack)
{
	var files = mandreelFatData.split('\n');

	var current_dir = '';
	var current_offset = 0;

	if (save_pack)
		mandreel_fs_saveFile(mandreel_packfiledata_name,data);


	for (var i=0;i<files.length;++i)
	{
		var file_data = files[i].split(',');

		if (file_data[0] == 'dir')
		{
			current_dir = file_data[1];
			//current_dir = current_dir.substr(0,current_dir.lengh-1);
		}
		else if (file_data[0] == 'file')
		{
			var file_name = current_dir + file_data[1];
			file_name = mandreel_chanka_fixfile(file_name) ;
			//dump('new file ' + file_name + ' ' + current_offset);
			//dump(file_name);
			var file_size = parseInt(file_data[2]);

			var my_array = new ArrayBuffer(file_size);

			var my_bytes = new Uint8Array(my_array);

			var data_bytes = new Uint8Array(data,current_offset,file_size);

			my_bytes.set(data_bytes);

			mandreel_cache_files[file_name] = my_array;


			current_offset+=file_size;


		}
	}



	g_mandreel_datafiles_sufix = '';
	mandreelCacheMandreelFat();

	imandreelJsScriptLoaded();
}

var preCreatedWebAudioContext = null;

function mandreelLoadFat()
{
	mandreelFatPreloadRequest = new Mandreel_XMLHttpRequest();
	var working_folder = mandreelAppWorkingFolder;
	if ( mandreelAppReadDataFromLocalHost )
		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
	var url = working_folder+"mandreel.fat.dat";
	if ( mandreelAppPlatform == "nacl" )
		url = working_folder+"mandreel.fat";
	mandreelFatPreloadRequest.open("GET", url, true);
	mandreelFatPreloadRequest.onreadystatechange = function()
	{
		if (mandreelFatPreloadRequest.readyState != 4) return;
		if ( mandreelFatPreloadRequest.status != 404 && mandreelFatPreloadRequest.response != null )
		{
			mandreelFatData = mandreelFatPreloadRequest.response;
		}
		if ( mandreelFatData == "" )
		{
			dump("error loading mandreel.fat file, Maybe the working folder is not correctly set???");
		}

		var packfiledata = null;
		var compressed = false;
		var packfiledata_size = 0;
		var total_packtexture_size = 0;
		var pogsize = 0;

		// Check version
		var FatLines = mandreelFatData.split('\n');
		for ( var i=0;i<FatLines.length;++i )
		{
			var line = mandreel_removecr(FatLines[i]);
			var params = line.split(',');
			if ( params[0] == "version" )
			{
				if ( params[1] != mandrelCurrentFatVersion )
					dump("warning: mandreel.fat version number is ("+params[1]+") and it should be ("+mandrelCurrentFatVersion+")");

			}
			else if ( params[0] == "platform" && params[1] != "js" && (mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas")  )
				dump("warning: mandreel.fat platform is ("+params[1]+") and it should be (js)");
			else if ( params[0] == "platform" && params[1] != "nacl" && mandreelAppPlatform == "nacl"  )
				dump("warning: mandreel.fat platform is ("+params[1]+") and it should be (nacl)");
			else if (params[0] == 'packdata')
			{
				packfiledata = params[1];
				compressed = params[2].charAt(0) == '1';
				packfiledata_size =  parseInt(params[3], 10);
			}
			else if (params[0] == 'flashsockets')
			{
				mandreelAppUseFlashSockets = true;
			}
			else if (params[0] == 'packtexture')
			{
				var filename = params[1];
				var size_packtexture = parseInt(params[3], 10);
				total_packtexture_size+=size_packtexture;
				mandreelAppUsePackAsyncTexture.push(filename);
			}
			else if (params[0] == 'audiopreloadfile')
			{
				pogsize = parseInt(params[2],10);
			}
			else if (params[0] == 'audiodriver' && params[1] == 'webaudio')
			{
				try	{ preCreatedWebAudioContext = new webkitAudioContext(); } catch(err) { preCreatedWebAudioContext = null; }
			}
		}

		if ( preCreatedWebAudioContext != null )
			mandreel_total_pogfile_size = pogsize;
		mandreel_packfiledata_name = packfiledata;
		mandreel_packfiledata_compressed = compressed;
		mandreel_packfiledata_size = packfiledata_size;
		mandreel_total_packtexture_size = total_packtexture_size;
		mandreelFatLoaded();
	}
	mandreelFatPreloadRequest.send();
}

var mandreelAppStartStateFunc = 0;
var mandreelDisableSpaceKey = true;
////////////////////////////////////////////
function mandreelAppStart(startStateFunc,params)
{
	mandreelAppStartStateFunc = startStateFunc;




	if ( typeof(params.log) != 'undefined' )
		mandreelAppLog = params.log;

	if ( typeof(params.platform) != 'undefined' )
		mandreelAppPlatform = params.platform;

	if (typeof(params.mandreelJSCompressed) != 'undefined' )
		mandreelAppMandreelJsCompressed = params.mandreelJSCompressed;


/*	 The following code is removed for benchmarking:
	if ((mandreel_BrowserDetect.browser == 'Chrome' || mandreel_BrowserDetect.browser == 'Safari') && mandreel_BrowserDetect.OS == 'Mac' && mandreelAppPlatform == "flash")
		mandreelDisableSpaceKey = false; */

	if ( mandreelAppPlatform != "webgl" && mandreelAppPlatform != "flash" && mandreelAppPlatform != "nacl" && mandreelAppPlatform != "canvas" && mandreelAppPlatform != "plugin")
	{
		mandreelAppStartStateFunc("error",'platform ('+mandreelAppPlatform+') not supported');
		return;
	}

	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		mandreelAppWorkingFolder = "data/js/";
		if ( typeof(params.workingFolderWebgl) != 'undefined' )
			mandreelAppWorkingFolder = params.workingFolderWebgl;
		// Check Float64Array availability
		if ( !Mandreel_window["Float64Array"] )
		{
			mandreelAppStartStateFunc("error",'Browser unsupported: Float64Array not available');
			return;
		}

		var flashElement = Mandreel_document.getElementById('FlashWrapper');
		if ( flashElement != null )
		{
			flashElement.style.visibility = "hidden";
			flashElement.style.width = "0px";
			flashElement.style.height = "0px";
		}
		var flashElement = Mandreel_document.getElementById('FlashDiv');
		if ( flashElement != null )
		{
			flashElement.style.visibility = "hidden";
			flashElement.style.width = "0px";
			flashElement.style.height = "0px";
		}

		// Setup WebGL
		if ( typeof(params.webglCanvas) == 'undefined' )
		{
			mandreelAppStartStateFunc("error",'canvas parameter not found');
			return;
		}
		var canvas = Mandreel_document.getElementById(params.webglCanvas);
		if ( canvas == null )
		{
			mandreelAppStartStateFunc("error",'canvas object ('+params.webglCanvas+') not found');
			return;
		}
		if ( params.width != null )
		{
			canvas.width = params.width;
			mandreelAppWidthSrc = params.width;
		}
		if ( params.height != null )
		{
			canvas.height = params.height;
			mandreelAppHeightSrc = params.height;
		}
		if ( mandreelAppPlatform == "webgl" )
		{
			// The following code is removed for benchmarking:
			// imandreel_gl = WebGLUtils.setupWebGL(canvas,{premultipliedAlpha:false,alpha:false});
			// if (imandreel_gl == null)
			// {
			//	mandreelAppStartStateFunc("error","webgl_not_found");
			//	return;
			// }
		}

		if ( mandreelAppPlatform == "canvas" )
		{
			imandreel_ctx_canvas = canvas.getContext('2d');
			if ( imandreel_ctx_canvas == null )
			{
				mandreelAppStartStateFunc("error","canvas context 2d not found");
				return;
			}
		}

		if (params.cache != null)
		{
			//alert( params.cache.size + params.cache.url);
			mandreel_fs_init(function() { if ( mandreelAppStartStateFunc )
				mandreelAppStartStateFunc("loadingFat","");
			mandreelLoadFat();}, params.cache.size,params.cache.url);
		}
		else
		{
			// load Fat
			if ( mandreelAppStartStateFunc )
				mandreelAppStartStateFunc("loadingFat","");
			mandreelLoadFat();
		}
	}

	if ( mandreelAppPlatform == "flash" )
	{
		mandreelAppWorkingFolder = "data/as3/";
		if ( typeof(params.workingFolderFlash) != 'undefined' )
			mandreelAppWorkingFolder = params.workingFolderFlash;
		if (!swfobject.hasFlashPlayerVersion('11.2.0'))
		{
			mandreelAppStartStateFunc("error","flash 11 not found");
			return;
		}

		if ( typeof(params.flashCanvas) == 'undefined' )
		{
			mandreelAppStartStateFunc("error",'canvas parameter not found');
			return;
		}

		if ( true ) // hide webgl canvas
		{
			var canvas = Mandreel_document.getElementById(mandreelAppCanvasDiv);
			if ( canvas != null )
			{
				canvas.style.visibility = "hidden";
				canvas.style.width = "0px";
				canvas.style.height = "0px";
			}
		}

		if ( params.width != null )
		{
			mandreelAppCanvasWidth = params.width;
		}
		if ( params.height != null )
		{
			mandreelAppCanvasHeight = params.height;
		}

		mandreelAppCanvasDiv = params.flashCanvas;

		try
		{
			var mandreelSocketsSwf = "mandreel.swf";
			if ( typeof(params.swfFlash) != 'undefined' )
				mandreelSocketsSwf = params.swfFlash;

			var my_flashvars = "workingFolder=" + encodeURIComponent(mandreelAppWorkingFolder);
			if ( typeof(params.log) != 'undefined' && params.log == true)
			  my_flashvars += "&log=true"
			my_flashvars += "&width=" + params.width;
			my_flashvars += "&height=" + params.height;
			my_flashvars += "&swfloader=" + mandreelSocketsSwf;

			if (typeof(params.restore_context) != 'undefined' && params.restore_context == true)
				my_flashvars += "&restore_context=1";

			if (typeof(params.antialiasing) != 'undefined')
				my_flashvars += "&antialiasing=" + params.antialiasing;

			if (typeof(params.right_click_enable) != 'undefined' && params.right_click_enable == true)
				my_flashvars += "&right_click=1";

			if (typeof(params.disable_depth) != 'undefined' && params.disable_depth == true)
				my_flashvars += "&disable_depth=1";

			var swfname = "mandreelloader.swf";
			if ( typeof(params.swfPreloader) != 'undefined' && params.swfPreloader == false)
				swfname = mandreelSocketsSwf;

			var swf = swfobject.createSWF({ data:swfname, width:"100%", height:"100%" }, { menu:"false",allowScriptAccess:"always",allowFullScreen:"true",wmode:"direct",scale:"noscale",salign :"tl",bgcolor:"#000000",flashvars:my_flashvars}, params.flashCanvas);
			if ( !swf )
			{
				mandreelAppStartStateFunc("error","error loading " + swfname);
				return;
			}
			else
			{
				if ( mandreelAppStartStateFunc )
					mandreelAppStartStateFunc("loadingScript","");
			}
		}
		catch(err)
		{
			mandreelAppStartStateFunc("error","exception " + err + " while loading " + mandreelSocketsSwf);
			return;
		}

		appStartState('loadingScript');
	}

	if ( mandreelAppPlatform == "nacl" )
	{
		mandreelAppWorkingFolder = "data/nacl/";

		// load Fat
		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingFat","");
		mandreelLoadFat();

	}

	if ( mandreelAppPlatform == "plugin" )
	{
		mandreelInitPluginPlatform(params);
	}
}


////////////////////////////////////////////
function MandreelAudioStartedNacl()
{
	var helloWorldModule = null;
	helloWorldModule = Mandreel_document.getElementById('hello_world');
	helloWorldModule.postMessage('init');
	var flashElement = Mandreel_document.getElementById('FlashWrapper');
	if ( flashElement != null )
		flashElement.style.visibility = "hidden";
	mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
}

////////////////////////////////////////////
function _mandreelAppStartReady()
{
	if ( mandreelAppPlatform == "nacl" )
	{
		wa_initWebAudio();
		mandreel_webAudio_PreloadAssets();
	}
	else
	{
		if ( mandreelAppStartStateFunc )
		{
			mandreelAppStartRenderWebGL();
			mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
		}
	}
}
////////////////////////////////////////////
function _mandreelAppAudioReady()
{
	if ( mandreelAppStartStateFunc )
		mandreelAppStartStateFunc("audioLoaded","");

	if ( mandreelAppUseFlashSockets )
		mandreel_flash_sockets_load_flash(_mandreelAppStartReady);
	else
		_mandreelAppStartReady();
}

////////////////////////////////////////////
function mandreelAppInit()
{
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		global_init(g_stack_pointer+800*1024);

		//Mandreel_TextureAsync_PackBufferData[_mandreel_currentPackTexture] = mandreelBufferPackAsyncTexture;
		//mandreelBufferPackAsyncTexture = null;
		var sp = g_stack_pointer+800*1024;
		heapU32[sp>>2] = mandreelAppCanvasWidth;
		heapU32[(sp+4)>>2] = mandreelAppCanvasHeight;
		__mandreel_internal_SetResolution(sp);
		__mandreel_internal_init(g_stack_pointer+800*1024);
		__init(g_stack_pointer+800*1024);
	}
}

////////////////////////////////////////////
function mandreelAppDraw(elapsed)
{
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		if ( mandreelAppPlatform == "canvas" && imandreel_ctx_canvas != null )
		{
			var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
			imandreel_ctx_canvas.clearRect(0,0,canvas.width,canvas.height);
		}
		var sp = g_stack_pointer+800*1024;
		__mandreel_internal_preupdate(sp);
		heapU32[sp>>2] = elapsed;
		__draw(sp);
		__mandreel_internal_update(sp);
		__mandreel_process_async_calls();
	}
}

////////////////////////////////////////////
function mandreelAppMouseWheel(delta)
{
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		var i7 = MandreelLockFrame();
		heap32[(i7+0)>>2] = delta;
		__mouseWheelDelta(i7);
		MandreelUnlockFrame();
	}
}

////////////////////////////////////////////
function mandreelAppMouseMove(x,y)
{
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		var i7 = MandreelLockFrame();
		heap32[(i7+0)>>2] = x;
		heap32[(i7+4)>>2] = y;
		__mouseMove(i7);
		MandreelUnlockFrame();
	}
}

////////////////////////////////////////////
function mandreelAppResize(x,y)
{
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		var i7 = MandreelLockFrame();
		heap32[(i7+0)>>2] = x;
		heap32[(i7+4)>>2] = y;
		__resize(i7);
		heap32[(i7+0)>>2] = x;
		heap32[(i7+4)>>2] = y;
		__mandreel_internal_SetResolution(i7);
		MandreelUnlockFrame();
	}
}

////////////////////////////////////////////
function mandreelAppMouseButton(down,x,y)
{
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		var i7 = MandreelLockFrame();
		heap32[(i7+0)>>2] = down;
		heap32[(i7+4)>>2] = x;
		heap32[(i7+8)>>2] = y;
		__mouseButton(i7);
		MandreelUnlockFrame();
	}
}

////////////////////////////////////////////
function mandreelAppMouseDblClick(x,y)
{
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		var i7 = MandreelLockFrame();
		heap32[(i7+0)>>2] = x;
		heap32[(i7+4)>>2] = y;
		__mouseDoubleClick(i7);
		MandreelUnlockFrame();
	}
}

////////////////////////////////////////////
function mandreelAppKeyEvent(down,keyId)
{
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		var i7 = MandreelLockFrame();
		heap32[(i7+0)>>2] = down;
		heap32[(i7+4)>>2] = keyId;
		__keyEvent(i7);
		MandreelUnlockFrame();
	}
}

////////////////////////////////////////////
function mandreelAppGetPlatform()
{
	return mandreelAppPlatform;
}

////////////////////////////////////////////
function mandreelAppGetElementAbsolutePos(elementName)
{
	var element = Mandreel_document.getElementById(elementName);
	var res = new Object();
	res.x = 0; res.y = 0;
	if (element !== null)
	{
		if (element.getBoundingClientRect)
		{
			var viewportElement = Mandreel_document.documentElement;
			var box = element.getBoundingClientRect();
			var scrollLeft = viewportElement.scrollLeft;
			var scrollTop = viewportElement.scrollTop;
			res.x = box.left + scrollLeft;
			res.y = box.top + scrollTop;
		}
		else
		{ //for old browsers
			res.x = element.offsetLeft;
			res.y = element.offsetTop;
			var parentNode = element.parentNode;
			var borderWidth = null;
			while (offsetParent != null)
			{
				res.x += offsetParent.offsetLeft;
				res.y += offsetParent.offsetTop;
				var parentTagName = offsetParent.tagName.toLowerCase();
				if ((__isIEOld && parentTagName != "table") ||
					((__isFireFoxNew || __isChrome) &&
						parentTagName == "td"))
				{
					borderWidth = kGetBorderWidth(offsetParent);
					res.x += borderWidth.left;
					res.y += borderWidth.top;
				}

				if (offsetParent != Mandreel_document.body &&
				offsetParent != Mandreel_document.documentElement)
				{
					res.x -= offsetParent.scrollLeft;
					res.y -= offsetParent.scrollTop;
				}

				//next lines are necessary to fix the problem
				//with offsetParent
				if (!__isIE && !__isOperaOld || __isIENew)
				{
					while (offsetParent != parentNode &&
						parentNode !== null) {
						res.x -= parentNode.scrollLeft;
						res.y -= parentNode.scrollTop;
						if (__isFireFoxOld || __isWebKit)
						{
						    borderWidth =
						     kGetBorderWidth(parentNode);
						    res.x += borderWidth.left;
						    res.y += borderWidth.top;
						}
						parentNode = parentNode.parentNode;
					}
				}

				parentNode = offsetParent.parentNode;
				offsetParent = offsetParent.offsetParent;
			}
		}
	}
	return res;
}
function __getIEVersion()
{
	var rv = -1; // Return value assumes failure.
	if (navigator.appName == 'Microsoft Internet Explorer')
	{
		var ua = navigator.userAgent;
		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null)
			rv = parseFloat(RegExp.$1);
	}
	return rv;
}
function __getOperaVersion()
{
	var rv = 0; // Default value
	if (Mandreel_window.opera)
	{
		var sver = Mandreel_window.opera.version();
		rv = parseFloat(sver);
	}
	return rv;
}
/* The following code was removed for benchmarking:
var __userAgent = navigator.userAgent;
var __isIE =  navigator.appVersion.match(/MSIE/) != null;
var __IEVersion = __getIEVersion();
var __isIENew = __isIE && __IEVersion >= 8;
var __isIEOld = __isIE && !__isIENew;
var __isFireFox = __userAgent.match(/firefox/i) != null;
var __isFireFoxOld = __isFireFox && ((__userAgent.match(/firefox\/2./i) != null) || (__userAgent.match(/firefox\/1./i) != null));
var __isFireFoxNew = __isFireFox && !__isFireFoxOld;
var __isWebKit =  navigator.appVersion.match(/WebKit/) != null;
var __isChrome =  navigator.appVersion.match(/Chrome/) != null;
var __isOpera =  Mandreel_window.opera != null;
var __operaVersion = __getOperaVersion();
var __isOperaOld = __isOpera && (__operaVersion < 10); */
function __parseBorderWidth(width)
{
	var res = 0;
	if (typeof(width) == "string" && width != null && width != "" )
	{
		var p = width.indexOf("px");
		if (p >= 0)
		{
			res = parseInt(width.substring(0, p));
		}
		else
		{
			//do not know how to calculate other values (such as 0.5em or 0.1cm) correctly now so just set the width to 1 pixel
			res = 1;
		}
	}
	return res;
}
function __getBorderWidth(element)
{
	var res = new Object();
	res.left = 0; res.top = 0; res.right = 0; res.bottom = 0;
	if (Mandreel_window.getComputedStyle)
	{
		//for Firefox
		var elStyle = Mandreel_window.getComputedStyle(element, null);
		res.left = parseInt(elStyle.borderLeftWidth.slice(0, -2));
		res.top = parseInt(elStyle.borderTopWidth.slice(0, -2));
		res.right = parseInt(elStyle.borderRightWidth.slice(0, -2));
		res.bottom = parseInt(elStyle.borderBottomWidth.slice(0, -2));
	}
	else
	{
		//for other browsers
		res.left = __parseBorderWidth(element.style.borderLeftWidth);
		res.top = __parseBorderWidth(element.style.borderTopWidth);
		res.right = __parseBorderWidth(element.style.borderRightWidth);
		res.bottom = __parseBorderWidth(element.style.borderBottomWidth);
	}
	return res;
}


////////////////////////////////////////////
// WebGL
////////////////////////////////////////////
	var imandreel_gl = null;
	var imandreel_ctx_canvas = null;
	var imandreel_is_ready = 0;
	var imandreel_oldTime = Date_now();

	function mandreel_wheel(event) { imandreel_onMouseWheel(event);event.preventDefault(); event.returnValue=false; }

	////////////////////////////////////////////
	function mandreelAppStartRenderWebGL()
	{
/* The following code was removed for benchmarking:
		var canvas = document.getElementById(mandreelAppCanvasName);

		mandreelAppCanvasWidth = canvas.width;
		mandreelAppCanvasHeight = canvas.height;

		// Register event handlers
		if(window.addEventListener){ window.addEventListener('DOMMouseScroll',mandreel_wheel,false); }  window.onmousewheel=document.onmousewheel=mandreel_wheel;

		window.addEventListener('mousedown',imandreel_onMouseDown,false);
		window.addEventListener('mouseup',imandreel_onMouseUp,false);
		window.addEventListener('mousemove',imandreel_onMouseMove,false);
		window.addEventListener('dblclick',imandreel_onMouseDblClick,false);

		document.body.oncontextmenu = function() { return false;};

		var canvasDiv = document.getElementById(mandreelAppCanvasDiv);
		canvasDiv.addEventListener('keydown',imandreel_onKeyDown,false);
		canvasDiv.addEventListener('keyup',imandreel_onKeyUp,false);
		canvasDiv.focus();*/

		// Call mandreel app init funtion (__init())
		mandreelAppInit();

		// Start rendering
		imandreel_is_ready = 1;
		//imandreel_render();
	}

	////////////////////////////////////////////
	function imandreel_render()
	{
		if( ABORT )
			return;

		var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
		WebGLUtils.requestAnimationFrame(canvas, imandreel_render);


		// Reshape
		if (canvas.clientWidth != mandreelAppCanvasWidth || canvas.clientHeight != mandreelAppCanvasHeight)
		{
			mandreelAppCanvasWidth = canvas.clientWidth;
			mandreelAppCanvasHeight = canvas.clientHeight;
			imandreel_gl.viewport(0, 0, mandreelAppCanvasWidth, mandreelAppCanvasHeight);
		}

		// Set the focus to the canvas div
		if (mandreelAppForceFocus)
		{
			var canvasDiv = Mandreel_document.getElementById(mandreelAppCanvasDiv);
			canvasDiv.focus();
		}

		// Call mandreel app draw funtion (__draw())
		var nowTime = Date_now();
		if (!g_mandreel_frame_locked)
		{
			g_mandreel_frame_inframe = true;
			if (!_imandreel_pause_game)
				mandreelAppDraw(nowTime-imandreel_oldTime);
			g_mandreel_frame_inframe = false;
		}
		imandreel_oldTime = nowTime;
	}

	function render()
	{
		// Call mandreel app draw funtion (__draw())
		var nowTime = Date_now();
		if (!g_mandreel_frame_locked)
		{
			g_mandreel_frame_inframe = true;
			if (!_imandreel_pause_game)
				mandreelAppDraw(nowTime-imandreel_oldTime);
			g_mandreel_frame_inframe = false;
		}
		imandreel_oldTime = nowTime;
	}

	var imandreel_last_movex = 0;
	var imandreel_last_movey = 0;

	////////////////////////////////////////////
	function imandreel_onMouseMove(e)
	{
		if (!imandreel_is_ready)
			return;

		if (_imandreel_pause_game)
			return;

		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
		var setX = e.clientX - pos.x;
		var setY = e.clientY - pos.y;

		  if(navigator.pointer && navigator.pointer.isLocked) {
            var deltaX = event.movementX || event.webkitMovementX || event.mozMovementX || 0;
            var deltaY = event.movementY || event.webkitMovementY || event.mozMovementX || 0;

			setX = imandreel_last_movex+deltaX;
			setY = imandreel_last_movey+deltaY;
			}


		imandreel_last_movex = setX;
		imandreel_last_movey = setY;
		mandreelAppMouseMove(setX,setY);
	}

	////////////////////////////////////////////
	function imandreel_onMouseDblClick(e)
	{
		if (!imandreel_is_ready)
			return;

		if (_imandreel_pause_game)
			return;

		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
		var setX = e.clientX - pos.x;
		var setY = e.clientY - pos.y;
		mandreelAppMouseDblClick(setX,setY);
	}

	////////////////////////////////////////////
	var mandreel_mouse_down = false;
	var mandreel_rmouse_down = false;
	function imandreel_onMouseDown(e)
	{
		if (!imandreel_is_ready)
			return;

		if (_imandreel_pause_game)
			return;

		var rightclick;
		if (!e) var e = Mandreel_window.event;
		if (e.which) rightclick = (e.which == 3);
		else if (e.button) rightclick = (e.button == 2);

		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
		var setX = e.clientX - pos.x;
		var setY = e.clientY - pos.y;

		if (!rightclick)
		{
			if (mandreel_mouse_down)
				return;

			mandreel_mouse_down = true;
			mandreelAppMouseButton(1,setX,setY);
		}
		else
		{
			if (mandreel_rmouse_down)
				return;

			mandreel_rmouse_down = true;
			mandreelAppMouseButton(3,setX,setY);
		}
	}

	////////////////////////////////////////////
	function imandreel_onMouseUp(e)
	{
		if (!imandreel_is_ready)
			return;

		if (_imandreel_pause_game)
			return;

		var rightclick;
		if (!e) var e = Mandreel_window.event;
		if (e.which) rightclick = (e.which == 3);
		else if (e.button) rightclick = (e.button == 2);

		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
		var setX = e.clientX - pos.x;
		var setY = e.clientY - pos.y;


		if (!rightclick)
		{
			if (mandreel_mouse_down == false)
				return;

			mandreel_mouse_down = false;
			mandreelAppMouseButton(0,setX,setY);
		}
		else
		{
			if (mandreel_rmouse_down == false)
				return;

			mandreel_rmouse_down = false;
			mandreelAppMouseButton(2,setX,setY);
		}
	}

	////////////////////////////////////////////
	function imandreel_onMouseWheel(e)
	{
		if (!imandreel_is_ready)
			return;

		if (_imandreel_pause_game)
			return;

		mandreelAppMouseWheel(e.wheelDelta);
	}

	////////////////////////////////////////////
	function imandreel_onKeyUp(e)
	{
		if (!imandreel_is_ready)
			return;

		if (_imandreel_pause_game)
			return;

		var KeyID = e.keyCode;
		mandreelAppKeyEvent(0,KeyID);
	}

	////////////////////////////////////////////
	Mandreel_window.onkeydown = function(e)
	{
		if (mandreelDisableSpaceKey == false && e.keyCode == 32)
			return;
		return !(e.keyCode == 32 || e.keyCode == 9);
	};

	////////////////////////////////////////////
	function imandreel_onKeyDown(e)
	{
		if (e.which === 8) // disable back button on browser
        {
	        e.preventDefault();
	    }
		if (!imandreel_is_ready)
			return;

		if (_imandreel_pause_game)
			return;

		var KeyID = e.keyCode;
		mandreelAppKeyEvent(1,KeyID);
	}


////////////////////////////////////////////
// Flash
////////////////////////////////////////////

(function(){
		try {
			// Disabling SWFObject's Autohide feature
			if (typeof swfobject.switchOffAutoHideShow === "function") {
				swfobject.switchOffAutoHideShow();
			}
		} catch(e) {}
	})();

var imandreel_flash_global_sp = 0;
var imandreel_flash_global_sp2 = 0;
var imandreel_flash_current_sp = 0;

function MandreelInterSwfLoaded2()
{
}
function MandreelInterSwfLoaded()
{
	appStartState('scriptLoaded');
	var flashMovie = swfobject.getObjectById(mandreelAppCanvasDiv)
	dump(flashMovie.width);
	flashMovie.MandreelInit();

	imandreel_flash_global_sp = MandreelInterGetSWF().MandreelInterGetGlobalStack();
	imandreel_flash_global_sp2 = MandreelInterGetSWF().MandreelInterGetGlobalStack2();
	if ( mandreelAppStartStateFunc )
		mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
}



var g_mandreel_swf = null;

function MandreelInterGetSWF()
{
	if (g_mandreel_swf)
		return g_mandreel_swf;

	g_mandreel_swf = swfobject.getObjectById(mandreelAppCanvasDiv)
	return g_mandreel_swf;
}

function MandreelInterWriteInt(ptr, value)
{
	MandreelInterGetSWF().MandreelInterWriteInt(ptr,value);
}

function MandreelInterWriteFloat(ptr, value)
{
	MandreelInterGetSWF().MandreelInterWriteFloat(ptr,value);
}

function MandreelInterWriteString(ptr, value)
{
	MandreelInterGetSWF().MandreelInterWriteString(ptr,value);
}

function MandreelInterWriteWString(ptr, value)
{
	MandreelInterGetSWF().MandreelInterWriteWString(ptr,value);
}

function MandreelInterCallFunctionRaw(sp, func_name, returnType)
{
	return MandreelInterGetSWF().MandreelInterCallFunctionRaw(sp,func_name,returnType);
}


function assert(condition, _text) {
//console.assert(condition, _text);
    if (!condition) {
      var text = "Assertion failed: " + _text;
      alert(text + ':\n' + (new Error).stack);
      ABORT = true;
      throw "Assertion: " + text;
    }
  }



function MandreelLockFrame()
{
	MandreelInterGetSWF().MandreelLockFrame();

	imandreel_flash_current_sp += 300*1024;

	assert(imandreel_flash_current_sp<1024*1024);

	return imandreel_flash_current_sp;
}

function MandreelPause()
{
	MandreelInterGetSWF().MandreelPause();
}

function MandreelResume()
{
	MandreelInterGetSWF().MandreelResume();
}


function MandreelUnlockFrame()
{
	imandreel_flash_current_sp -= 300*1024;
	MandreelInterGetSWF().MandreelUnlockFrame();
}



function MandreelInterCallFunctionAsync(func_name,param)
{
	return MandreelInterGetSWF().MandreelInterCallFunctionAsync(func_name, param);
}


function MandreelInterCallFunction(returnType,func_name)
{
	var size_params = 0;

	var i;
	var num_params = (arguments.length-2)/2;
	num_params|=0;
	for (i=2;i<num_params*2+2;i+=2)
	{
		var type = arguments[i];

		var size_arg = 0;
		switch(type)
		{
			case 'int':
				size_arg = 4;
				break;
			case 'float':
				size_arg = 4;
				break;
			case 'string':
				size_arg = 4;
				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
				break;
			case 'wstring':
				size_arg = 4;
				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
				break;
			default:
				assert(false);
		}

		size_params += size_arg;
	}

	// stack always 8 byte aligned
	size_params=((size_params+7)& 0xfffffff8);

	var sp = 0;

	if (i<(arguments.length))
		sp = arguments[i];
	else
	{
		assert(false);
	}


	sp-=size_params;

	MandreelLockFrame();

	var offset = 0;
	var ptr_data = num_params*4+sp;
    for (i=2;i<num_params*2+2;i+=2)
	{
		var type = arguments[i];


		var size_arg = 0;
		switch(type)
		{
			case 'int':
				MandreelInterWriteInt((sp+offset),arguments[i+1]);
				break;
			case 'float':
				MandreelInterWriteFloat((sp+offset),arguments[i+1]);
				break;
			case 'string':
				{
					MandreelInterWriteInt((sp+offset),ptr_data);
					var string = arguments[i+1];
					MandreelInterWriteString(ptr_data,string);

					ptr_data += ((string.length + 4) & 0xfffffffc);
				}
				break;
			case 'wstring':
				{
					MandreelInterWriteInt((sp+offset),ptr_data);
					var string = arguments[i+1];
					MandreelInterWriteWString(ptr_data,string);

					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
				}
				break;
			default:
				assert(false);
		}
		offset+=4;
	}

	return_value = MandreelInterCallFunctionRaw(sp, func_name, returnType);

	MandreelUnlockFrame();

	if (returnType == 'int')
		return parseInt(return_value);
	else if (returnType == 'float')
		return parseFloat(return_value);

	return;
}



// file system

var g_mandreel_timestamp_fs = 0;
var g_mandreel_fs = null;

function onMandreelQuotaOk(fs)
{
	g_mandreel_fs = fs;
	dump('onMandreelQuotaOk');
}


function MandreelFsErrorHandler(e) {
  var msg = '';

  switch (e.code) {
    case FileError.QUOTA_EXCEEDED_ERR:
      msg = 'QUOTA_EXCEEDED_ERR';
      break;
    case FileError.NOT_FOUND_ERR:
      msg = 'NOT_FOUND_ERR';
      break;
    case FileError.SECURITY_ERR:
      msg = 'SECURITY_ERR';
      break;
    case FileError.INVALID_MODIFICATION_ERR:
      msg = 'INVALID_MODIFICATION_ERR';
      break;
    case FileError.INVALID_STATE_ERR:
      msg = 'INVALID_STATE_ERR';
      break;
    default:
      msg = 'Unknown Error';
      break;
  };

  dump('Error: ' + msg);
  dump(e);
}

var indexedDB = Mandreel_window.indexedDB || Mandreel_window.webkitIndexedDB ||
                Mandreel_window.mozIndexedDB;

if ('webkitIndexedDB' in Mandreel_window) {
  Mandreel_window.IDBTransaction = Mandreel_window.webkitIDBTransaction;
  Mandreel_window.IDBKeyRange = Mandreel_window.webkitIDBKeyRange;
}


var mandreel_indexedDB = {};
mandreel_indexedDB.db = null;
mandreel_indexedDB.callback_init = false;

mandreel_indexedDB.onerror = function(e) {
  dump(e);
};

mandreel_indexedDB.init = function(callback)
{
 try {
	var request = indexedDB.open('my_cache', 2);

	request.onerror = function(event) {
		callback(false);
		};
	request.onupgradeneeded = function(event) {
	dump('onupgradeneeded\n');
	mandreel_indexedDB.db = event.target.result;
    var db = mandreel_indexedDB.db;
	var objectStore = db.createObjectStore("cache",{keyPath: "fileName"});
	}

  request.onsuccess = function(event) {
  dump('onsuccess\n');
    mandreel_indexedDB.db = event.target.result;
    	callback(true);

  };
  }
  catch(e)
  {
	callback(false);
  }

}

function mandreel_fs_init(callback, size_bytes, url_time)
{

	g_mandreel_timestamp_fs = 99999999999999;




	var aux = null;
	try	{ aux = webkitStorageInfo; } catch(err) { aux = null; }
	if (aux == null)
	{
		//callback(false);

		var time_request = new XMLHttpRequest();
	time_request.open('GET',url_time);
	time_request.onreadystatechange = function()
	{
		if (time_request.readyState==4)
		{
			if (time_request.status==200 || time_request.status==0)
			{

				if (time_request.responseText)
				{
					g_mandreel_timestamp_fs = parseFloat(time_request.responseText);
					dump('mandreel_init_fs time ' + g_mandreel_timestamp_fs);
				}
			}

			mandreel_indexedDB.init(callback);
		}
	}
	time_request.send();


		return;
	}

	webkitStorageInfo.requestQuota(
		webkitStorageInfo.PERSISTENT ,   // or PERSISTENT
		size_bytes,
		function(bytes) {  dump('request quota succeed');},
		function () { dump('request quota failed');} );


//	g_mandreel_timestamp_fs =0;

	var time_request = new XMLHttpRequest();
	time_request.open('GET',url_time);
	time_request.onreadystatechange = function()
	{
		if (time_request.readyState==4)
		{
			if (time_request.status==200 || time_request.status==0)
			{

				if (time_request.responseText)
				{
					g_mandreel_timestamp_fs = parseFloat(time_request.responseText);
					dump('mandreel_init_fs time ' + g_mandreel_timestamp_fs);
				}
			}

			var my_requestFileSystem  = Mandreel_window.requestFileSystem || Mandreel_window.webkitRequestFileSystem;

			my_requestFileSystem(Mandreel_window.PERSISTENT, size_bytes,
				function(result)
				{
					onMandreelQuotaOk(result);


					if (callback)
						Mandreel_setTimeout(callback, 100, true);
				} , function(e) { MandreelFsErrorHandler(e); if (callback) callback(false); } );
		}
	}
	time_request.send();
}


mandreel_indexedDB.load = function(file_name, callback)
{
	var db = mandreel_indexedDB.db;
	var trans = db.transaction(["cache"]);
	var store = trans.objectStore("cache");

	var key = file_name;

	 var getReq = store.get(key);
	   getReq.onsuccess = function (ev) {
			if (getReq.result)
	{
	dump('chanka ' + g_mandreel_timestamp_fs + ' ' + getReq.result.timeStamp + '\n');
				if (getReq.result.timeStamp>=g_mandreel_timestamp_fs)
					callback(getReq.result.data);
				else
					callback(null);
			}
			else
				callback(null);
	   }
	   getReq.onerror = function (ev) {
		   console.log("index.get failed. Error: " + ev.message);
	   }
}

function mandreel_fs_get_url(file_name, callback)
{
	if (mandreel_indexedDB.db)
	{
		callback(null);
		return;
	}


	if (g_mandreel_fs == null)
	{
		callback(null);
		return;
	}

	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {

	fileEntry.getMetadata(function(metaData){
	var my_seconds = metaData.modificationTime.getTime()/1000;

	if (g_mandreel_timestamp_fs>my_seconds)
	{
		callback(null);
	}
	else
	{
		//alert('mandreel_fscachefile2');


		if (Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
			callback(fileEntry.toURL());
		else
			callback(null);

	}


		}, MandreelFsErrorHandler);


  }, function(error) {callback(null);});

	 return;

}

function mandreel_fs_load_binary(file_name, callback)
 {
	if (mandreel_indexedDB.db)
	{
		mandreel_indexedDB.load(file_name,callback);
		return;
	}


	if (g_mandreel_fs == null)
	{
		callback(null);
		return;
	}


	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {

	fileEntry.getMetadata(function(metaData){
	var my_seconds = metaData.modificationTime.getTime()/1000;

	if (g_mandreel_timestamp_fs>my_seconds)
	{
		dump('mandreel_fscachefile1');
		Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(file_name));
		fileEntry.remove(function() {
				callback(null);
			}, MandreelFsErrorHandler);

	}
	else
	{
		//alert('mandreel_fscachefile2');
		dump('mandreel_fscachefile2 ' + my_seconds);

		fileEntry.file(function(file) {

				var reader = new FileReader();


			   reader.onloadend = function(e) {

				   if (this.result.byteLength && Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
				   {
						dump('mandreel_fs_loadFile ' + file_name);
						callback(this.result);
					}
					else
						callback(null);

			   };


				 reader.readAsArrayBuffer(file);


			}, MandreelFsErrorHandler);

	}


		}, MandreelFsErrorHandler);


  }, function(error) {dump('mandreel_fscachefile3');	callback(null);});

	 return;
 }


 mandreel_indexedDB.save = function(file_name, data)
{
	var db = mandreel_indexedDB.db;


  var trans = db.transaction(["cache"], IDBTransaction.READ_WRITE);
  var store = trans.objectStore("cache");
  var request = store.put({
    "data": data,
	"timeStamp" : Date_now()/1000,
    "fileName" : file_name
  });

  request.onsuccess = function(e) {
    // Re-render all the todo's
   // html5rocks.indexedDB.getAllTodoItems();
   dump('mandreel_indexedDB.save ok ');
  };

  request.onerror = function(e) {
    dump('mandreel_indexedDB.save onerror ' + file_name);
	dump(e);
  };
}

function mandreel_fs_get_key(name)
{
	return 'mandreel_fs_' + name;
}

function mandreel_is_filesystem()
{
	if (mandreel_indexedDB.db)
		return false;

	if (!g_mandreel_fs)
		return false;

	return true;
}

function mandreel_is_indexeddb()
{
	if (mandreel_indexedDB.db)
		return true;

	return false;
}

 function mandreel_fs_saveFile(name, my_arrayBuffer)
{
	if (mandreel_indexedDB.db)
	{
		mandreel_indexedDB.save(name,my_arrayBuffer);
		return;
	}

	if (!g_mandreel_fs)
		return;

	Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(name));
	g_mandreel_fs.root.getFile(name, {create: true}, function(fileEntry) {

    // Create a FileWriter object for our FileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {

      fileWriter.onwriteend = function(e) {
		Mandreel_window.localStorage.setItem(mandreel_fs_get_key(name),'valid');
        dump('Write completed.');
      };

      fileWriter.onerror = function(e) {
        dump('Write failed: ' + e.toString());
      };

	  var my_BlobBuilder = Mandreel_window.MozBlobBuilder || Mandreel_window.WebKitBlobBuilder || Mandreel_window.BlobBuilder;

	  var bb = new my_BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
      bb.append(my_arrayBuffer);
      fileWriter.write(bb.getBlob('text/plain'));



    }, MandreelFsErrorHandler);

  }, MandreelFsErrorHandler);
}


function mandreel_fs_load_text(file_name, callback)
 {

	if (mandreel_indexedDB.db)
	{
		mandreel_indexedDB.load(file_name,callback);
		return;
	}

	if (g_mandreel_fs == null)
	{
		callback(null);
		return;
	}


	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {

	fileEntry.getMetadata(function(metaData){
	var my_seconds = metaData.modificationTime.getTime()/1000;

	if (g_mandreel_timestamp_fs>my_seconds)
	{
		dump('mandreel_fscachefile1');
		Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(file_name));
		fileEntry.remove(function() {
				callback(null);
			}, MandreelFsErrorHandler);

	}
	else
	{
		//alert('mandreel_fscachefile2');
		dump('mandreel_fscachefile2 ' + my_seconds);

		fileEntry.file(function(file) {

				var reader = new FileReader();


			   reader.onloadend = function(e) {


				   if (this.result.length && Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
				   {
						dump('mandreel_fs_loadFile ' + file_name);
						callback(this.result);
					}
					else
						callback(null);

			   };


				 reader.readAsText(file);


			}, MandreelFsErrorHandler);

	}


		}, MandreelFsErrorHandler);


  }, function(error) {dump('mandreel_fscachefile3');	callback(null);});

	 return;
 }


 // full screen


/* The following code was removed for benchmarking:
 var __screen = screen; */

	try
	{
	(function(global) {
    "use strict";
	var elementPrototype = (global.HTMLElement || global.Element)["prototype"];

	 // document.isFullScreen
    if(!Mandreel_document.hasOwnProperty("fullscreenEnabled")) {
        var getter = (function() {
            // These are the functions that match the spec, and should be preferred
            if("webkitIsFullScreen" in Mandreel_document) {
                return function() { return Mandreel_document.webkitIsFullScreen; }
            }
            if("mozFullScreen" in Mandreel_document) {
                return function() { return Mandreel_document.mozFullScreen; }
            }
            return function() { return false }; // not supported, never fullscreen
        })();

        Object.defineProperty(Mandreel_document, "fullscreenEnabled", {
            enumerable: true, configurable: false, writeable: false,
            get: getter
        });
    }

    if(!Mandreel_document.hasOwnProperty("fullscreenElement")) {
        var getter = (function() {
            // These are the functions that match the spec, and should be preferred
            if("webkitFullscreenElement" in Mandreel_document) {
                return function() { return Mandreel_document.webkitFullscreenElement; }
            }
            if("mozFullscreenElemen" in Mandreel_document) {
                return function() { return Mandreel_document.mozFullscreenElemen; }
            }
            return function() { return null }; // not supported
        })();

        Object.defineProperty(Mandreel_document, "fullscreenElement", {
            enumerable: true, configurable: false, writeable: false,
            get: getter
        });
    }

    // Document event: fullscreenchange
    function fullscreenchange(oldEvent) {
        var newEvent = Mandreel_document.createEvent("CustomEvent");
        newEvent.initCustomEvent("fullscreenchange", true, false, null);
        // TODO: Any need for variable copy?
        Mandreel_document.dispatchEvent(newEvent);
    }
    Mandreel_document.addEventListener("webkitfullscreenchange", fullscreenchange, false);
    Mandreel_document.addEventListener("mozfullscreenchange", fullscreenchange, false);

    // Document event: fullscreenerror
    function fullscreenerror(oldEvent) {
        var newEvent = Mandreel_document.createEvent("CustomEvent");
        newEvent.initCustomEvent("fullscreenerror", true, false, null);
        // TODO: Any need for variable copy?
        Mandreel_document.dispatchEvent(newEvent);
    }
    Mandreel_document.addEventListener("webkitfullscreenerror", fullscreenerror, false);
    Mandreel_document.addEventListener("mozfullscreenerror", fullscreenerror, false);

    // element.requestFullScreen
    if(!elementPrototype.requestFullScreen) {
        elementPrototype.requestFullScreen = (function() {
            if(elementPrototype.webkitRequestFullScreen) {
                return function() {
                    this.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
                }
            }

            return  elementPrototype.mozRequestFullScreen    ||
                    function(){ /* unsupported, fail silently */ };
        })();
    }

    // document.cancelFullscreen
    if(!Mandreel_document.cancelFullScreen) {
        Mandreel_document.cancelFullScreen = (function() {
            return  Mandreel_document.webkitCancelFullScreen ||
                    Mandreel_document.mozCancelFullScreen ||
                    function(){ /* unsupported, fail silently */ };
        })();
    }
	})((typeof(exports) != 'undefined') ? global : Mandreel_window);
	}
	catch(e)
	{
	}


try
	{
var __onErrorFullscreen = function() {
  dump("Mouse lock was not successful.");
};

Mandreel_document.addEventListener('fullscreenchange', function(e) {

var width;
var height;
 var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
 if(Mandreel_document.fullscreenEnabled) {


            width = __screen.width;
            height = __screen.height;

        } else {
            width = mandreelAppWidthSrc;
            height = mandreelAppHeightSrc;
        }

		canvas.width = width;
		canvas.height = height;
		mandreelAppResize(width, height);

  if (Mandreel_document.fullscreenEnabled && navigator.pointer) {
    navigator.pointer.lock(Mandreel_document.body, function() {
      // Locked and ready to play.
    }, __onErrorFullscreen);
  }
}, false);

}
catch(e)
{
}



function mandreelAppFullscreen(enable)
{
	var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
	{
		if (canvas)
		{
			if (enable)
				canvas.requestFullScreen();
			else
				Mandreel_document.cancelFullScreen();
		}
	}
}


function mandreelAppDisableForceFocus()
{
	mandreelAppForceFocus = false;
}

function mandreelAppEnableForceFocus()
{
	mandreelAppForceFocus = true;
}

var imandreel_base64 = {};
imandreel_base64.PADCHAR = '=';
imandreel_base64.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';

imandreel_base64.makeDOMException = function() {
    // sadly in FF,Safari,Chrome you can't make a DOMException
    var e, tmp;

    try {
        return new DOMException(DOMException.INVALID_CHARACTER_ERR);
    } catch (tmp) {
        // not available, just passback a duck-typed equiv
        // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error
        // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/prototype
        var ex = new Error("DOM Exception 5");

        // ex.number and ex.description is IE-specific.
        ex.code = ex.number = 5;
        ex.name = ex.description = "INVALID_CHARACTER_ERR";

        // Safari/Chrome output format
        ex.toString = function() { return 'Error: ' + ex.name + ': ' + ex.message; };
        return ex;
    }
}

imandreel_base64.getbyte64 = function(s,i) {
    // This is oddly fast, except on Chrome/V8.
    //  Minimal or no improvement in performance by using a
    //   object with properties mapping chars to value (eg. 'A': 0)
    var idx = imandreel_base64.ALPHA.indexOf(s.charAt(i));
    if (idx === -1) {
        throw imandreel_base64.makeDOMException();
    }
    return idx;
}

imandreel_base64.decode = function(s) {
    // convert to string
    s = '' + s;
    var getbyte64 = imandreel_base64.getbyte64;
    var pads, i, b10;
    var imax = s.length
    if (imax === 0) {
        return s;
    }

    if (imax % 4 !== 0) {
        throw imandreel_base64.makeDOMException();
    }

    pads = 0
    if (s.charAt(imax - 1) === imandreel_base64.PADCHAR) {
        pads = 1;
        if (s.charAt(imax - 2) === imandreel_base64.PADCHAR) {
            pads = 2;
        }
        // either way, we want to ignore this last block
        imax -= 4;
    }

    var x = [];
    for (i = 0; i < imax; i += 4) {
        b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) |
            (getbyte64(s,i+2) << 6) | getbyte64(s,i+3);
        x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff, b10 & 0xff));
    }

    switch (pads) {
    case 1:
        b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) | (getbyte64(s,i+2) << 6);
        x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff));
        break;
    case 2:
        b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12);
        x.push(String.fromCharCode(b10 >> 16));
        break;
    }
    return x.join('');
}

if (!Mandreel_window.atob) {
Mandreel_window.atob = function(a) { return  imandreel_base64.decode(a); }
}


function imandreel_interop_callbridge(new_method, sp)
{

	var n = new Array();

	for( var i = 2; i < arguments.length; i++ )
	{

		if (typeof arguments[i] == 'string')
			n.push(atob(arguments[i]));
		else
			n.push(arguments[i]);
	}

	var total_args = arguments.length-2;

	switch(total_args)
	{
		case 0:
			return Mandreel_window[new_method](sp);
		case 1:
			return Mandreel_window[new_method](sp, n[0]);
		case 2:
			return Mandreel_window[new_method](sp, n[0], n[1]);
		case 3:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2]);
		case 4:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3]);
		case 5:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4]);
		case 6:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5]);
		case 7:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6]);
		case 8:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7]);
		case 9:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8]);
		case 10:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9]);
		case 11:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10]);
		case 12:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11]);
		case 13:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12]);
		case 14:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13]);
		case 15:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13], n[14]);
		case 16:
			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13], n[14], n[15]);
		break;
	}

}
function imandreel_as3_dump(param)
{
	dump(atob(param));
}


var mandreel_embed_plugin;

function PluginMandreelInterWriteInt(ptr, value)
{
	mandreel_embed_plugin.MandreelInterCalls("WriteInt", ptr,value);
}

function PluginMandreelInterWriteFloat(ptr, value)
{
	mandreel_embed_plugin.MandreelInterCalls("WriteFloat", ptr,value);
}

function PluginMandreelInterWriteString(ptr, value)
{
	mandreel_embed_plugin.MandreelInterCalls("WriteString", ptr,value);
}

function PluginMandreelInterWriteWString(ptr, value)
{
	mandreel_embed_plugin.MandreelInterCalls("WriteWString", ptr,value);
}

var mandreel_plugin_current_sp = 0;

function PluginMandreelLockFrame()
{
	var result = mandreel_embed_plugin.MandreelInterCalls("LockFrame");

	mandreel_plugin_current_sp+=300*1024;

	assert(mandreel_plugin_current_sp<1024*1024);

	return result+mandreel_plugin_current_sp;
}

function PluginMandreelPause()
{
	mandreel_embed_plugin.MandreelInterCalls("Pause");
}

function PluginMandreelResume()
{
	mandreel_embed_plugin.MandreelInterCalls("Resume");
}


function PluginMandreelUnlockFrame()
{
	mandreel_embed_plugin.MandreelInterCalls("UnlockFrame");

	mandreel_plugin_current_sp-=300*1024;
}

function PluginMandreelInterCallFunction()
{
	var total_args = arguments.length;

	switch(total_args)
	{
		case 0:
			return mandreel_embed_plugin.MandreelInterCallFunction();
		case 1:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0]);
		case 2:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1]);
		case 3:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2]);
		case 4:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3]);
		case 5:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
		case 6:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
		case 7:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]);
		case 8:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7]);
		case 9:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8]);
		case 10:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9]);
		case 11:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10]);
		case 12:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11]);
		case 13:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12]);
		case 14:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13]);
		case 15:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13], arguments[14]);
		case 16:
			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13], arguments[14], arguments[15]);
		break;
	}
}

function mandreel_plugin_draw()
{
	var canvas = Mandreel_document.getElementById('canvasDiv');
	WebGLUtils.requestAnimationFrame(canvas, mandreel_plugin_draw);
	mandreel_embed_plugin.MandreelInterCalls("AppDraw");

}

function mandreelInitPluginPlatform(params)
{

	if ( params.width != null )
		mandreelAppWidthSrc = params.width;

	if ( params.height != null )
		mandreelAppHeightSrc = params.height;


	mandreel_embed_plugin = Mandreel_document.createElement('embed');
	mandreel_embed_plugin.setAttribute('width',mandreelAppWidthSrc);
	mandreel_embed_plugin.setAttribute('height',mandreelAppHeightSrc);
	mandreel_embed_plugin.setAttribute('type',"application/halfbrick-npruntime-scriptable-plugin");

	var div = Mandreel_document.getElementById('canvasDiv');


	var oChild=div.firstChild;

	div.replaceChild(mandreel_embed_plugin, oChild);

	var flashElement = Mandreel_document.getElementById('FlashWrapper');
	if ( flashElement != null )
	{
		flashElement.style.visibility = "hidden";
		flashElement.style.width = "0px";
		flashElement.style.height = "0px";
	}





	Mandreel_window.MandreelInterWriteInt     = PluginMandreelInterWriteInt;
	Mandreel_window.MandreelInterWriteFloat   = PluginMandreelInterWriteInt;
	Mandreel_window.MandreelInterWriteString  = PluginMandreelInterWriteString;
	Mandreel_window.MandreelInterWriteWString = PluginMandreelInterWriteWString;
	Mandreel_window.MandreelLockFrame         = PluginMandreelLockFrame;
	Mandreel_window.MandreelUnlockFrame       = PluginMandreelUnlockFrame;
	Mandreel_window.MandreelInterCallFunction = PluginMandreelInterCallFunction;
	Mandreel_window.MandreelPause 			 = PluginMandreelPause;
	Mandreel_window.MandreelResume 			 = PluginMandreelResume;

	Mandreel_setTimeout(function () {

	if ( typeof(params.pluginSolutionName) != 'undefined' )
		mandreel_embed_plugin.init(params.pluginDLL, params.pluginWorkingFolder,params.pluginSolutionName);
	else
		mandreel_embed_plugin.init(params.pluginDLL, params.pluginWorkingFolder);


	mandreelAppStartStateFunc("ready",mandreelAppWidthSrc,mandreelAppHeightSrc);

	Mandreel_setTimeout("mandreel_plugin_draw()", 16);
	}, 100);

}


function MandreelInterSwfProgress(mode, percentage, bytes, totalbytes)
{
	imandreel_update_load(bytes, totalbytes);
	if (mode == 'files')
	{
		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingData",percentage);
	}
	else if (mode == 'audio')
	{
		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingAudioUpdate",percentage);
	}
	else if (mode == 'textureasync')
	{
		if ( mandreelAppStartStateFunc )
			mandreelAppStartStateFunc("loadingTextureAsyncPack",percentage);
	}

}

function MandreelInterSwfCheckMethod(method)
{
	if (typeof(Mandreel_window[method])=="undefined")
		return 0;
	else
		return 1;
}

// End of js/mandreelapp.js file.

// Start of mandreel.js file.

var mandreel_total_memory = 15908864;
var mandreel_stack_memory = 1048576;
var mandreel_heap_memory = 13591752; //init_memory = 744248
/////////////////////////////////////////////
// Heap
/////////////////////////////////////////////
var heap;
var heap8;
var heapU8;
var heap16;
var heapU16;
var heap32;
var heapU32;
var heapFloat;
var heapDouble;
var heapNewPos = 512;

var ABORT = false;

var g_mandreel_cache_files = false;


var g_mandreel_frame_locked = false;
var g_mandreel_frame_inframe = false;

var mandreel_cache_files = [];
var g_mandreel_working_folder = 'DataPC/';
var g_mandreel_datafiles_sufix = '.dat';
var __FUNCTION_TABLE__ = [];
var mandreel_pos_function_table = 1;
function register_delegate(ptr_func)
{
	var functionId = mandreel_pos_function_table;
	__FUNCTION_TABLE__[functionId] = ptr_func;

	mandreel_pos_function_table++;
	return functionId*4;
}


var g_addr_emit = 0;
function emit_start(addr)
{
	g_addr_emit = addr;
}

function emit_8(data)
{
	heapU8[g_addr_emit] = data;
	g_addr_emit++;
}

function emit_16(data)
{
	heapU16[g_addr_emit>>1] = data;
	g_addr_emit+=2;
}

function emit_32(data)
{
	heapU32[g_addr_emit>>2] = data;
	g_addr_emit+=4;
}

function emit_fill(data, size)
{
	var j;
	for (j=0;j<size;j++)
	{
		heapU8[g_addr_emit] = data;
		g_addr_emit++;
	}
}

function emit_string(v)
{
	var j;
	var len = v.length;
	var data;

	for(j = 0; j < len; j++)
	{
		data = v.charCodeAt(j);

		heapU8[g_addr_emit] = data;
		g_addr_emit++;
	}
}





var g_stack_pointer = Malloc(mandreel_stack_memory);

function assert_unalign()
{
	dump("fatal error: unaligned memory access detected!!!!");
	assert(false);
}

function _assert(sp)
{
	var p0 = heap32[sp>>2];sp+=4;
  var p1 = heap32[sp>>2];sp+=4;
  var line = heap32[sp>>2];sp+=4;
	var name = get_string_from_ptr(p0);
	var file = get_string_from_ptr(p1);
	assert(false, name + file + ' ' + line);
}
__cxa_pure_virtual.__index__ = 0;
function __cxa_pure_virtual()
{
	assert(0);
}

// operator delete[]
function _ZdaPv(sp)
{
	free(sp);
}

// operator delete
function _ZdlPv(sp)
{
	free(sp);
}

// operator new[](unsigned int)
function _Znaj(sp)
{
	malloc(sp);
}
// operator new[](unsigned int)
function _Znwj(sp)
{
	malloc(sp);
}

function abort(sp)
{
	assert(0);
}

var r_g0 = 0;
var r_g1 = 0;
var f_g0 = 0;

//isFinite(aux)
//isNaN(aux)

var tlsf_ptr = 0;


function initHeap()
{
	heap = new ArrayBuffer(mandreel_total_memory);
	heap8 = new Int8Array(heap);
	heapU8 = new Uint8Array(heap);
	heap16 = new Int16Array(heap);
	heapU16 = new Uint16Array(heap);
	heap32 = new Int32Array(heap);
	heapU32 = new Uint32Array(heap);
	heapFloat = new Float32Array(heap);
	heapDouble = new Float64Array(heap);


	for (var i=0;i<mandreel_total_memory/4;i++)
	{
		heapU32[i] = 0;
	}
}

function Malloc(bytes)
{
	if ( heap == undefined )
	{
		//initHeap();
	}
	var newOffset = heapNewPos;
	// Always 32 bit aligned
	heapNewPos += ((bytes + 3) & 0xfffffffc);

	if (heapNewPos>mandreel_total_memory)
	{
		assert(false);
	}

	return newOffset;
}

function assert(condition, _text) {
//console.assert(condition, _text);
    if (!condition) {
      var text = "Assertion failed: " + _text;
      alert(text + ':\n' + (new Error).stack);
      ABORT = true;
      throw "Assertion: " + text;
    }
  }

  function my_assert(sp)
  {
	var p0 = heap32[sp>>2];sp+=4;
  var p1 = heap32[sp>>2];sp+=4;
	//var name = get_string_from_ptr(p1);

	assert(false, 'hola');
  }

  function WriteHeapDouble(addr, value)
  {
  //assert((addr&7)==0);
	heapDouble[addr>>3] = value;
  }

    function WriteHeapU64(addr, value)
  {
	heap32[addr>>2] = value.l;
	heap32[(addr>>2)+1] = value.h;
  }


var arg_test_local = Malloc(8);
function my_arg_test(sp)
{
	var ptr = heapU32[sp>>2];
	var size = heapU32[(sp+4)>>2];

	var arg = heapU32[ptr>>2];


	if (size == 4)
	{
	heap32[ptr>>2] = arg+4;

	arg = heap32[arg>>2];

	heap32[arg_test_local>>2] = arg;

	//dump('my_arg_test ' + arg + ' ' + ptr + '\n');

	}
	else
	{
		arg = (arg+7) & ~7;

		heap32[ptr>>2] = arg+8;

	//assert((arg&7)==0);
	var value0 = heap32[arg>>2];
	var value1 = heap32[(arg+4)>>2];
	//arg = llvm_readDouble(arg);

	//assert((arg_test_local&7)==0);

	heap32[arg_test_local>>2] = value0;
	heap32[(arg_test_local+4)>>2] = value1;

	//llvm_writeDouble(arg_test_local,arg);

	//dump('my_arg_test ' + arg + ' ' + ptr + '\n');


	}




	r_g0 = arg_test_local;
}






function uint(value) {
    if (value >= 0) return value;
    return 4294967296 + value;
  }



function puts(sp)
{
	var addr = heapU32[sp>>2];

	var name = get_string_from_ptr(addr);

	name+='\n';

	dump(name);

}

function _Z11print_valued(_stack_pos, value)
{
	dump(value);
	dump('\n');
}

function _Z11print_labelPKc(_stack_pos, addr)
{
	puts(_stack_pos,addr);
	dump('\n');
}




function gettimeofday(sp)
  {
  var ptr = heap32[sp>>2];
  var time_ms = Date_now();
	heap32[ptr>>2] = time_ms/1000;
	heap32[(ptr>>2)+1] = (time_ms%1000)*1000;
	r_g0 = 0;
  }


  function free(sp)
  {
	var ptr = heapU32[sp>>2];
  	sp-=8;

	heap32[(sp)>>2] = tlsf_ptr;
	heap32[(sp+4)>>2] = ptr;
	tlsf_free(sp);
  }

  function malloc_size(sp)
  {
  var ptr = heapU32[sp>>2];

	sp-=4;

	heap32[(sp)>>2] = ptr;
	tlsf_block_size(sp);
  }


  function realloc(sp)
  {
	var ptr = heapU32[sp>>2];
	var size = heapU32[(sp+4)>>2];

	//assert(ptr == 0);

	sp-=12;

	//dump('realloc ' + sp + ' ' + ptr + ' ' + size + '\n');

	heap32[(sp)>>2] = tlsf_ptr;
	heap32[(sp+4)>>2] = ptr;
	heap32[(sp+8)>>2] = size;
	tlsf_realloc(sp);

	//dump('return ' + r_g0 + '\n');
  }

  var llvm_double_addr = Malloc(8);

  function llvm_writeDouble(addr,src)
  {
  //assert((llvm_double_addr&7)==0);
	heapDouble[llvm_double_addr>>3] = src;

	//assert((addr&7)==0);

	var val0 = heap32[(llvm_double_addr)>>2];
	var val1 = heap32[(llvm_double_addr+4)>>2];

	heap32[(addr)>>2] = val0;
	heap32[(addr+4)>>2] = val1;
  }

  function llvm_readDouble(addr)
  {
  	//assert((addr&7)==0);

	var val0 = heap32[(addr)>>2];
	var val1 = heap32[(addr+4)>>2];

	heap32[(llvm_double_addr)>>2] = val0;
	heap32[(llvm_double_addr+4)>>2] = val1;


//	assert((llvm_double_addr&7)==0);
	var result = heapDouble[llvm_double_addr>>3];


	return result;

  }

  function llvm_move_double(addr_dst, addr_src)
  {

	var val0 = heapU32[(addr_src)>>2];
	var val1 = heapU32[(addr_src+4)>>2];

	heapU32[(addr_dst)>>2] = val0;
	heapU32[(addr_dst+4)>>2] = val1;

  }

  function llvm_move_float(addr_dst, addr_src)
  {
	heapU32[(addr_dst)] = heapU32[(addr_src)];
  }

  function malloc(sp)
  {
	var size = heapU32[sp>>2];

	if (size == 0)
	{
		size = 4;
	}


	if (tlsf_ptr == 0)
	{
		var addr = Malloc(mandreel_heap_memory);

		sp-=8;
		heap32[(sp)>>2] = addr;
		heap32[(sp+4)>>2] = mandreel_heap_memory;
		tlsf_create(sp);
		tlsf_ptr = r_g0;
	}

	sp-=8;

	heap32[(sp)>>2] = tlsf_ptr;
	heap32[(sp+4)>>2] = size;
	tlsf_malloc(sp);

	if (r_g0 == 0)
	{
		dump('malloc failed ' + size + '\n');
		assert(false);
	}
  }


   function log10f(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.log(value)/Math.LN10;
  }

   function log10(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.log(value)/Math.LN10;
  }

function logf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.log(value);
  }

  function log(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.log(value);
  }



  function cosf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.cos(value);
	//assert (isNaN(f_g0) == false);
  }

  function acosf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.acos(value);
  }

  function asinf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.asin(value);
  }

  function asin(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.asin(value);
  }

  function acos(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.acos(value);
  }

  function floor(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.floor(value);
  }

  function floorf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.floor(value);
  }

  function round(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.round(value);
  }

  function roundf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.round(value);
  }

  function ceilf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.ceil(value);
  }

  function ceil(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.ceil(value);
  }


  function exp2(sp)
  {
  var value = heapDouble[sp>>3];

	f_g0 = Math.pow(2,value);
  }

  function exp2f(sp)
  {
  var value = heapFloat[sp>>2];

	f_g0 = Math.pow(2,value);
  }



  function pow(sp)
  {
  var value = heapDouble[sp>>3];
  var value2 = heapDouble[(sp+8)>>3];
	f_g0 = Math.pow(value,value2);
  }

  function powf(sp)
  {
  var value = heapFloat[sp>>2];
  var value2 = heapFloat[(sp+4)>>2];
	f_g0 = Math.pow(value,value2);
  }

  function cos(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.cos(value);
	//assert (isNaN(f_g0) == false);
  }

  function tan(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.tan(value);
	//assert (isNaN(f_g0) == false);
  }

   function sinf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.sin(value);

	//assert (isNaN(f_g0) == false);
  }

  function expf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.exp(value);
  }

  function exp(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.exp(value);
  }

  function tanf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.tan(value);
  }

 function atanf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.atan(value);
  }

  function atan(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.atan(value);
  }

  function abs(sp)
  {
  var value = heap32[sp>>2];
  if (value<0)
  r_g0 = -value;
  else
  r_g0 = value;
  }

  function sin(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.sin(value);
  }

  function sqrtf(sp)
  {
  var value = heapFloat[sp>>2];
	f_g0 = Math.sqrt(value);
  }

  function sqrt(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.sqrt(value);
  }

  function fmod(sp)
  {
  var value = heapDouble[sp>>3];sp+=8;
  var value2 = heapDouble[sp>>3];
	f_g0 = value % value2;
  }

   function fmodf(sp)
  {
  var value = heapFloat[sp>>2];sp+=4;
  var value2 = heapFloat[sp>>2];
	f_g0 = value % value2;
  }


  function atan2f(sp)
  {
  var x = heapFloat[sp>>2];sp+=4;
  var y = heapFloat[sp>>2];
	f_g0 = Math.atan2(x,y);
  }

  function atan2(sp)
  {
  var x = heapDouble[sp>>3];
  var y = heapDouble[(sp+8)>>3];
	f_g0 = Math.atan2(x,y);
  }

  function fabs(sp)
  {
  var value = heapDouble[sp>>3];
	f_g0 = Math.abs(value);
  }


  function _Z18OutputDebugStringAPKc(sp)
  {
  puts(sp);

  }


  function getenv(sp)
  {
  r_g0 = 0;
  }


  function mandreel_fcmp_ord(X, Y)
  {
	return (X == X && Y == Y);
  }

  function mandreel_fcmp_uno(X, Y)
{

        return (X != X || Y != Y);
}

var llvm_errno = Malloc(4);
function _errno(sp)
{
	r_g0 = llvm_errno;
}




if (!Mandreel_window["dump"])
	Mandreel_window["dump"] = function dump(str){console.log(str)} ;




  function get_string_from_ptr(ptr)
  {
	var ret = "";

	if (ptr == 0)
		return ret;

	var i = 0;
	while (1) {
  //    if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {}
	if (heapU8[ptr + i] == 0)
		break;

      var t = String.fromCharCode(heapU8[ptr + i]);
      ret += t;
      i += 1;
    }

	return ret;
  }

  function fill_ptr_from_string(ptr, v)
  {
	var j;
	var len = v.length;
	var data;

  	for(j = 0; j < len; j++)
	{
		data = v.charCodeAt(j);

		heapU8[ptr] = data;
		ptr++;
	}
		heapU8[ptr] = 0;
	}

  var file_ids = [];
  var current_file_id = 20;

  function create_file_id(buffer)
  {
	this.buffer = buffer;
	this.offset = 0;
	this.byteArray = new Uint8Array(buffer);
  }

  function mandreel_rewind(sp)
  {
  var file_id = heap32[sp>>2];sp+=4;

  file_ids[file_id].offset = 0;

	r_g0 = 0;

	//return 0;
  }


  function mandreel_fseek(sp)
  {
  var file_id = heap32[sp>>2];sp+=4;
  var pos = heap32[sp>>2];sp+=4;
  var type = heap32[sp>>2];sp+=4;

	if (type == 2)
	{
		file_ids[file_id].offset = file_ids[file_id].buffer.byteLength + pos;
	}
	else if (type == 1)
	{
		file_ids[file_id].offset = file_ids[file_id].offset + pos;

	}
	else if (type == 0)
	{
		file_ids[file_id].offset = pos;

	}

	r_g0 = 0;

	//return 0;
  }

  function mandreel_fclose(sp)
  {
  var file_id = heap32[sp>>2];sp+=4;

	file_ids[file_id] = null;
	r_g0 = 0;
	//return 0;
  }



  function mandreel_feof(sp)
  {
  var file_id = heap32[sp>>2];sp+=4;

  var offset = file_ids[file_id].offset;
  var total = file_ids[file_id].buffer.byteLength;

  if (offset>=total)
  r_g0 = 1;
  else
  r_g0 = 0;

  }

  function mandreel_getc(sp)
  {
  var file_id = heap32[sp>>2];sp+=4;


  var offset = file_ids[file_id].offset;


	var buffer = file_ids[file_id].buffer;

	var byteArray = file_ids[file_id].byteArray;

	var total = 1;

	var result;

	if ((offset+total)>buffer.byteLength)
	{
		result = -1;
	}
	else
	{
		result = byteArray[offset];
		file_ids[file_id].offset+=total;
	}

	r_g0 = result;
  }



  function mandreel_fread(sp)
  {
  var ptr = heap32[sp>>2];sp+=4;
  var size = heap32[sp>>2];sp+=4;
  var count = heap32[sp>>2];sp+=4;
  var file_id = heap32[sp>>2];sp+=4;

  var offset = file_ids[file_id].offset;

  //dump('fread ' + ptr + ' ' + size + ' ' + count + ' ' + file_id + ' ' + offset + '\n');

	var buffer = file_ids[file_id].buffer;

	var total = size*count;

	if ((offset+total)>buffer.byteLength)
		total = buffer.byteLength-offset;

	var byteArray = file_ids[file_id].byteArray;


	var sub_array = byteArray.subarray(offset, offset+total);

	heapU8.set(sub_array,ptr);


	//heapU8.set(byteArray, ptr);
	//for (var i=0;i<total;++i)
	//{
//		heapU8[ptr+i] = byteArray[i+offset];
//	}


	file_ids[file_id].offset+=total;

	r_g0 = total/size;
	//return total;
  }

  function mandreel_ftell(sp)
  {
  var file_id = heap32[sp>>2];sp+=4;

	var value = file_ids[file_id].offset;
	//dump('offset ftell ' + value + '\n');
	r_g0 = value;
	//return value;
  }

  function _Z30mandreel_fopen_enable_checkfatb(sp)
  {
  }

  function mandreel_ungetc(sp)
  {
	var my_char = heap32[sp>>2];sp+=4;
	var file_id = heap32[sp>>2];sp+=4;

	var offset = file_ids[file_id].offset-1;

	var byteArray = file_ids[file_id].byteArray;

	assert(byteArray[offset] == my_char);

	file_ids[file_id].offset = offset;

	return my_char;
  }
  function mandreel_fopen(sp)
  {
  var ptr_name = heap32[sp>>2];sp+=4;
  var ptr_flags = heap32[sp>>2];sp+=4;


	var name = get_string_from_ptr(ptr_name);
	var flags = get_string_from_ptr(ptr_flags);
	//dump('fopen\n');
	//dump(name);
	//dump('\n');
	//dump(flags);
	//dump('\n');

	var buffer;

	var full_name;

	name = name.toLowerCase();

	name = name.replace(/\\/g,"/");

	full_name	= g_mandreel_working_folder + name + g_mandreel_datafiles_sufix;


	buffer =mandreel_cache_files[name];

	if (buffer == null)
	{
	r_g0 = 0;
	return;
	}



	//dump('\nopening file ' + full_name + ' ' + buffer.byteLength + '\n');


	file_ids[current_file_id] = new create_file_id(buffer);

	var old_id = current_file_id;
	current_file_id++;

	r_g0 = old_id;
	//return old_id;
  }

  function llvm_store_unalign32_float(addr, value)
  {
	heapFloat[0] = value;
	var data = heap32[0];
	heap8[addr] = data&0xff;
	heap8[addr+1] = (data>>>8)&0xff;
	heap8[addr+2] = (data>>>16)&0xff;
	heap8[addr+3] = (data>>>24)&0xff;
  }
  function llvm_store_unalign32(addr, value)
  {
	heap8[addr] = value&0xff;
	heap8[addr+1] = (value>>>8)&0xff;
	heap8[addr+2] = (value>>>16)&0xff;
	heap8[addr+3] = (value>>>24)&0xff;
  }

  function llvm_read_unalign32(addr)
  {
	var value;
	value = heapU8[addr];
	value |= heapU8[addr+1]<<8;
	value |= heapU8[addr+2]<<16;
	value |= heapU8[addr+3]<<24;
	return value;
  }

  function llvm_read_unalign32_float(addr)
  {
	var value;
	value = heapU8[addr];
	value |= heapU8[addr+1]<<8;
	value |= heapU8[addr+2]<<16;
	value |= heapU8[addr+3]<<24;

	heap32[0] = value;
	return  heapFloat[0];
  }

  function mandreel_getlocalstorage()
  {
	return Mandreel_window.localStorage;
	//return Mandreel_window.sessionStorage;
  }

  function mandreel_openls(sp)
  {
	var ptr_name = heap32[sp>>2];sp+=4;

	var key = get_string_from_ptr(ptr_name);

	var my_localStorage = mandreel_getlocalstorage();

	var value = my_localStorage.getItem(key);

	if (value == null)
	{
		r_g0 = -1;
		return;
	}


	var length = my_localStorage.getItem(key + '_size');

	if (length == null)
	{
		r_g0 = -1;
		return;
	}




	dump('mandreel_openls ' + key + ' return ' + length);


	r_g0 = parseInt(length);



	return;

  }

  function mandreel_readls(sp)
  {
	var ptr_name = heap32[sp>>2];sp+=4;
	var data_dst = heap32[sp>>2];sp+=4;
	var data_len = heap32[sp>>2];sp+=4;

	var key = get_string_from_ptr(ptr_name);

	var my_localStorage = mandreel_getlocalstorage();

	var value = my_localStorage.getItem(key);

	var data = JSON.parse(value);


	for (var i=0;i<data_len;++i)
	{
		heapU8[data_dst+i] = data[i];
	}

	r_g0 =  data_len;
	return;

}

function mandreel_removels(sp)
 {
 var ptr_name_a = heap32[sp>>2];sp+=4;
 var key_a = get_string_from_ptr(ptr_name_a);

 var my_localStorage = mandreel_getlocalstorage();

	my_localStorage.removeItem(key_a);
	my_localStorage.removeItem(key_a + '_size');
	r_g0 = 0;

 }


function mandreel_renamels(sp)
 {
 var ptr_name_a = heap32[sp>>2];sp+=4;
  var ptr_name_b = heap32[sp>>2];sp+=4;

  var key_a = get_string_from_ptr(ptr_name_a);
  var key_b = get_string_from_ptr(ptr_name_b);

  var my_localStorage = mandreel_getlocalstorage();


  var value = my_localStorage.getItem(key_a);
  var value2 = my_localStorage.getItem(key_a + '_size');

  if (value != null && value2 != null)
  {
	my_localStorage.setItem(key_b, value);
	my_localStorage.setItem(key_b + '_size', value2);

	my_localStorage.removeItem(key_a);
	my_localStorage.removeItem(key_a + '_size');


	r_g0 = 0;
}
else
 r_g0 = -1;
 }

function mandreel_writels(sp)
  {
	var ptr_name = heap32[sp>>2];sp+=4;
	var data_src = heap32[sp>>2];sp+=4;
	var data_len = heap32[sp>>2];sp+=4;

	var key = get_string_from_ptr(ptr_name);



	var data = new Uint8Array(heap,data_src,data_len);

	var value = JSON.stringify(data);

	var my_localStorage = mandreel_getlocalstorage();

	try
	{
		my_localStorage.setItem(key, value);
	} catch(e)
	{
		dump('error saving ' + key);
		dump(e.message);
		r_g0 =  0;
		return;
	}

	try
	{
		my_localStorage.setItem(key + '_size', data_len);
	} catch(e)
	{
		dump('error saving ' + key);
		dump(e.message);
		r_g0 =  0;
		return;
	}


	r_g0 =  data_len;
	return;

}

function mandreel_call_constructors(_ptr, size,stackPos)
{
var ptr = _ptr;

ptr = ptr >> 2;

for (var i=0;i<size;++i)
{


var tag = heap32[ptr];
var ptr_id = heap32[ptr+1];

__FUNCTION_TABLE__[(ptr_id)>>2](stackPos);

ptr+=2;

}
}

function get_string_from_wptr(ptr)
  {
	var ret = "";

	if (ptr == 0)
		return ret;

	assert((ptr&1)==0);
	ptr>>=1;
	var i = 0;
	while (1) {
  //    if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {}
	if (heapU16[ptr + i] == 0)
		break;

      var t = String.fromCharCode(heapU16[ptr + i]);
     // if (t == "\0") { break; } else {}
      ret += t;
      i += 1;
    }

	return ret;
  }

  function fill_wptr_from_string(ptr, v)
  {
	var j;
	var len = v.length;
	var data;

	assert((ptr&1)==0);
	ptr>>=1;

  	for(j = 0; j < len; j++)
	{
		data = v.charCodeAt(j);

		heapU16[ptr] = data;
		ptr++;
	}
		heapU16[ptr] = 0;
	}

function mandreelInterGetParams(sp)
{
	var params = [];

	var offset = 0;
	for (i=1;i<arguments.length;++i)
	{
		var type = arguments[i];

		switch(type)
		{
			case 'int':
				params[i-1] = heap32[(sp+offset)>>2];
				break;
			case 'float':
				params[i-1] = heapFloat[(sp+offset)>>2];
				break;
			case 'string':
				params[i-1] = get_string_from_ptr(heap32[(sp+offset)>>2]);
				break;
			default:
				assert(false);
		}
		offset+=4;
	}

	return params;
}

function mandreelInterRetParam(type, value)
{
	switch(type)
	{
		case 'int':
			r_g0 = value;
			break;
		case 'float':
			f_g0 = value;
			break;
		default:
			assert(false);
	}

	return 0;
}

function MandreelInterGetFunctionPtr(value)
{
	return __FUNCTION_TABLE__[value >> 2];
}


function MandreelInterCallFunction(returnType,func_name)
{
	var size_params = 0;

	var i;
	var num_params = (arguments.length-2)/2;
	num_params|=0;
	for (i=2;i<num_params*2+2;i+=2)
	{
		var type = arguments[i];

		var size_arg = 0;
		switch(type)
		{
			case 'int':
				size_arg = 4;
				break;
			case 'float':
				size_arg = 4;
				break;
			case 'string':
				size_arg = 4;
				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
				break;
			case 'wstring':
				size_arg = 4;
				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
				break;
			default:
				assert(false);
		}

		size_params += size_arg;
	}

	// stack always 8 byte aligned
	size_params=((size_params+7)& 0xfffffff8);

	var sp = 0;

	if (i<(arguments.length))
		sp = arguments[i];
	else
	{
		assert(false,"MandreelInterCallFunction missing stack pointer paramenter");
		//assert(g_mandreel_frame_locked == true);
		//sp = g_stack_pointer+800*1024;
	}

	sp-=size_params;

	var offset = 0;
	var ptr_data = num_params*4+sp;
    for (i=2;i<num_params*2+2;i+=2)
	{
		var type = arguments[i];

		var size_arg = 0;
		switch(type)
		{
			case 'int':
				heap32[(sp+offset)>>2] = arguments[i+1];
				break;
			case 'float':
				heapFloat[(sp+offset)>>2] = arguments[i+1];
				break;
			case 'string':
				{
					heap32[(sp+offset)>>2] = ptr_data;
					var string = arguments[i+1];
					fill_ptr_from_string(ptr_data,string);

					ptr_data += ((string.length + 4) & 0xfffffffc);
				}
				break;
			case 'wstring':
				{
					MandreelInterWriteInt((sp+offset),ptr_data);
					var string = arguments[i+1];
					MandreelInterWriteWString(ptr_data,string);

					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
				}
				break;
			default:
				assert(false);
		}
		offset+=4;
	}

	Mandreel_window[func_name](sp);

	if (returnType == 'int')
		return r_g0;
	else if (returnType == 'float')
		return f_g0;
	else
	{
		assert(returnType == 'void');
		return;
	}
}


function MandreelInterCallFunctionPtr(returnType,func_ptr)
{
	var size_params = 0;

	var i;
	var num_params = (arguments.length-2)/2;
	num_params|=0;
	for (i=2;i<num_params*2+2;i+=2)
	{
		var type = arguments[i];

		var size_arg = 0;
		switch(type)
		{
			case 'int':
				size_arg = 4;
				break;
			case 'float':
				size_arg = 4;
				break;
			case 'string':
				size_arg = 4;
				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
				break;
			case 'wstring':
				size_arg = 4;
				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
				break;
			default:
				assert(false);
		}

		size_params += size_arg;
	}

	// stack always 8 byte aligned
	size_params=((size_params+7)& 0xfffffff8);

	var sp = 0;

	if (i<(arguments.length))
		sp = arguments[i];
	else
	{
		assert(false);
		//assert(g_mandreel_frame_locked == true);
		//sp = g_stack_pointer+800*1024;
	}

	sp-=size_params;

	var offset = 0;
	var ptr_data = num_params*4+sp;
    for (i=2;i<num_params*2+2;i+=2)
	{
		var type = arguments[i];

		var size_arg = 0;
		switch(type)
		{
			case 'int':
				heap32[(sp+offset)>>2] = arguments[i+1];
				break;
			case 'float':
				heapFloat[(sp+offset)>>2] = arguments[i+1];
				break;
			case 'string':
				{
					heap32[(sp+offset)>>2] = ptr_data;
					var string = arguments[i+1];
					fill_ptr_from_string(ptr_data,string);

					ptr_data += ((string.length + 4) & 0xfffffffc);
				}
				break;
			case 'wstring':
				{
					MandreelInterWriteInt((sp+offset),ptr_data);
					var string = arguments[i+1];
					MandreelInterWriteWString(ptr_data,string);

					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
				}
				break;
			default:
				assert(false);
		}
		offset+=4;
	}

	__FUNCTION_TABLE__[(func_ptr)>>2](sp);

	if (returnType == 'int')
		return r_g0;
	else if (returnType == 'float')
		return f_g0;
	else
	{
		assert(returnType == 'void');
		return;
	}
}


var MANDREEL_HTTP_REQUEST_MODE_GET = 0;
var MANDREEL_HTTP_REQUEST_MODE_POST = 1;
var MANDREEL_HTTP_REQUEST_MODE_PUT = 2;

var MANDREEL_HTTP_REQUEST_STATUS_ERROR = 0;
var MANDREEL_HTTP_REQUEST_STATUS_BUSY = 1;
var MANDREEL_HTTP_REQUEST_STATUS_FINISHED = 2;
var MANDREEL_HTTP_REQUEST_STATUS_INIT = 3;


var mandreel_js_mapping_ids = [];
var mandreel_js_mapping_ids_free = [];


function Mandreel_HttpRequest_Create(sp)
{
	var ptr_url = heap32[sp>>2];sp+=4;
	var type = heap32[sp>>2];sp+=4;


	var url = get_string_from_ptr(ptr_url);


	var str_type = 'GET';
	if (type == MANDREEL_HTTP_REQUEST_MODE_GET)
		str_type = 'GET';
	else if (type == MANDREEL_HTTP_REQUEST_MODE_PUT)
		str_type = 'PUT';
	else if (type == MANDREEL_HTTP_REQUEST_MODE_POST)
		str_type = 'POST';

	var xmlhttp_get = new XMLHttpRequest();
	xmlhttp_get.open(str_type,url);

	if("responseType" in xmlhttp_get)
		xmlhttp_get.responseType="arraybuffer";
    else
	{
		xmlhttp_get.overrideMimeType('text/plain; charset=x-user-defined');
	}

	if (mandreel_js_mapping_ids_free.length == 0)
		mandreel_js_mapping_ids_free.push(mandreel_js_mapping_ids.length);

	var new_id = mandreel_js_mapping_ids_free.pop();

	var my_state = {
	buffer : null,
	httpRequest : xmlhttp_get,
	status : MANDREEL_HTTP_REQUEST_STATUS_INIT,
	offset_read : 0
  };



	mandreel_js_mapping_ids[new_id] = my_state;

	r_g0 = new_id+1;
}

function Mandreel_HttpRequest_Send(sp)
{
	var _id = heap32[sp>>2];sp+=4;
	var ptr_data = heap32[sp>>2];sp+=4;
	var id = _id-1;

	var data;

	if (ptr_data)
		data = get_string_from_ptr(ptr_data);
	else
		data = null;

	var my_state = mandreel_js_mapping_ids[id];


	my_state.status = MANDREEL_HTTP_REQUEST_STATUS_BUSY;

	my_state.httpRequest.onreadystatechange = function()
	{
		if (my_state.httpRequest.readyState==4)
		{
			if (my_state.httpRequest.status==200)
			{
				var buffer;

				if (my_state.httpRequest.responseType=="arraybuffer")
					buffer=my_state.httpRequest.response;
				else if (my_state.httpRequest.mozResponseArrayBuffer != null)
					buffer = my_state.httpRequest.mozResponseArrayBuffer;
				else
					buffer=my_state.httpRequest.response;

				my_state.status = MANDREEL_HTTP_REQUEST_STATUS_FINISHED;
				my_state.buffer =  new Uint8Array(buffer);
				//alert(my_state.buffer.length);

				//alert(mandreel_js_mapping_ids[id].buffer);

			}
			else
				my_state.status = MANDREEL_HTTP_REQUEST_STATUS_ERROR;
		}
	}

	my_state.httpRequest.send(data);
}


function Mandreel_HttpRequest_Status(sp)
{
	var _id = heap32[sp>>2];sp+=4;
	var id = _id-1;


	r_g0 = mandreel_js_mapping_ids[id].status;
}

function Mandreel_HttpRequest_Read(sp)
{
	var _id = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;
	var size = heap32[sp>>2];sp+=4;
	var id = _id-1;

	var remaining_bytes =  mandreel_js_mapping_ids[id].buffer.length - mandreel_js_mapping_ids[id].offset_read;

	if (size>remaining_bytes)
		size = remaining_bytes;

	var sub_array = mandreel_js_mapping_ids[id].buffer.subarray(mandreel_js_mapping_ids[id].offset_read, mandreel_js_mapping_ids[id].offset_read+size);
	heapU8.set(sub_array,ptr);

	mandreel_js_mapping_ids[id].offset_read+=size;

	r_g0 = size;
}

function Mandreel_HttpRequest_BytesAvalable(sp)
{
	var _id = heap32[sp>>2];sp+=4;
	var id = _id-1;


	if (mandreel_js_mapping_ids[id].buffer)
		r_g0 = mandreel_js_mapping_ids[id].buffer.length - mandreel_js_mapping_ids[id].offset_read;
	else
		r_g0 = 0;
}

function Mandreel_HttpRequest_Close(sp)
{
	var _id = heap32[sp>>2];sp+=4;
	var id = _id-1;

	mandreel_js_mapping_ids[id] = null;
	mandreel_js_mapping_ids_free.push(id);
}

function Mandreel_HttpRequest_SetRequestHeader(sp)
{
	var _id = heap32[sp>>2];sp+=4;
	var ptr_a = heap32[sp>>2];sp+=4;
	var ptr_b = heap32[sp>>2];sp+=4;
	var id = _id-1;

	var str_a = get_string_from_ptr(ptr_a);
	var str_b = get_string_from_ptr(ptr_b);

	var my_state = mandreel_js_mapping_ids[id];

	my_state.httpRequest.setRequestHeader(str_a, str_b);
}


var Mandreel_TextureAsync_textures = 0;
var Mandreel_TextureAsync_textures_loaded = 0;

var Mandreel_TextureAsync_PackBufferData = new Array();

function Mandreel_TextureAsync_SetData(sp)
{
	var texture_id = heap32[sp>>2];sp+=4;

	var tex = array_ids_ogl[texture_id];

	if ( mandreelAppPlatform != "canvas" )
	{
		imandreel_gl.texImage2D(imandreel_gl.TEXTURE_2D, 0, imandreel_gl.RGBA, imandreel_gl.RGBA, imandreel_gl.UNSIGNED_BYTE, tex.image);
		tex.image = null;
	}
}

function Mandreel_TextureAsync_CheckPending(sp)
{
	r_g0 = Mandreel_TextureAsync_textures - Mandreel_TextureAsync_textures_loaded;
}

function Mandreel_TextureAsync_GetProperties(sp)
{
	var texture_id = heap32[sp>>2];sp+=4;
	var ptr_width = heap32[sp>>2];sp+=4;
	var ptr_height = heap32[sp>>2];sp+=4;

	var tex = array_ids_ogl[texture_id];

	if (tex == null || tex.mandreel_width == undefined)
		r_g0 = 0;
	else
	{
		heap32[ptr_width>>2] = tex.mandreel_width;
		heap32[ptr_height>>2] = tex.mandreel_height;
		r_g0 = 1;
	}
}

function mandreel_arrayBufferDataUri(offset, size, buffer) {
var bytes = new Uint8Array(buffer,offset,size)
   var ascii = '';
   for (var i=0; i<bytes.length; i++)
     ascii += String.fromCharCode(bytes[i]);
   var base64 = btoa(ascii);

  if (/^\x89PNG/.test(ascii))
    return 'data:image/png;base64,'+base64;
  else
    return 'data:image/jpeg;base64,'+base64;
  }

 function mandreel_texture_async_fix_name(name)
{
	var ascii = '';

	var j;
	var len = name.length;


	for(j = 0; j < len; j++)
	{
		var my_char = name[j];

		if (my_char == '/')
			my_char = '_';

		ascii+=my_char;

	}

   return ascii;
}



function Mandreel_TextureAsync_Load(sp)
{
	var ptr_name = heap32[sp>>2];sp+=4;
	var texture_id = heap32[sp>>2];sp+=4;

	var name = get_string_from_ptr(ptr_name);

	var nameSrc = name;

	name = name.toLowerCase();


	var full_name	= g_mandreel_working_folder + name;

	var image  = new Image();


	Mandreel_TextureAsync_textures++;

	var imgURL = null;




	image.onerror = function() {
          dump('error loading texture ' + image.src + '\n');
		  Mandreel_TextureAsync_textures_loaded++;
      }
	image.onload = function()
	{
		if (imgURL)
		{
			var URL = Mandreel_window.URL || Mandreel_window.webkitURL;
			URL.revokeObjectURL(imgURL);
		}
		if ( mandreelAppPlatform == "canvas" )
		{
			array_ids_ogl[texture_id] = image;
			Mandreel_TextureAsync_textures_loaded++;
		}
		else
		{
			var tex = array_ids_ogl[texture_id];
			if (tex)
			{
				tex.image = image;
				tex.mandreel_width = image.width;
				tex.mandreel_height = image.height;
				Mandreel_TextureAsync_textures_loaded++;

				var sp = MandreelLockFrame();
				MandreelInterCallFunction('void',"Mandreel_TextureAsync_Loaded",'int',texture_id,'int',image.width,'int',image.height, sp);
				MandreelUnlockFrame();
		}
			else
			{
				dump('texture not valid ' + texture_id + ' ' + name + '\n');
				Mandreel_TextureAsync_textures_loaded++;
			}
		}


	}

	var new_sp = sp-4096;

	var packfile = new_sp + 2048;
	var offset_ptr = new_sp + 2048+1024;
	var size_ptr = new_sp + 2048+1024+4;

	fill_ptr_from_string(new_sp + 1024,name);

	heap32[(new_sp)>>2] = new_sp + 1024;
	heap32[(new_sp+4)>>2] = offset_ptr;
	heap32[(new_sp+8)>>2] = size_ptr;
	heap32[(new_sp+12)>>2] = packfile;
	iMandreel_TextureAsync_GetPackOffset(new_sp);


	var image_src;

	var image_src_valid = true;

	if (r_g0)
	{
		var packfilename = get_string_from_ptr(packfile);
		image_src = mandreel_arrayBufferDataUri(heap32[offset_ptr>>2],heap32[size_ptr>>2],Mandreel_TextureAsync_PackBufferData[packfilename]);
	}
	else
	{

		if (nameSrc.search('http:') != -1 || nameSrc.search('https:') != -1)
		{
			image.crossOrigin = 'anonymous'; // no credentials flag. Same as
			image_src = nameSrc;
		}
		else
		{
			if (mandreel_is_filesystem())
			{
				image_src_valid = false;

				var new_name = mandreel_texture_async_fix_name(full_name);
				mandreel_fs_get_url(new_name, function Mandreel_TextureAsync_Load_FS(data) {
					if (data)
					{
						image.src = data;
					}
					else
					{
						var packdata_request = new XMLHttpRequest();

						packdata_request.open("GET", full_name, true);

						if("responseType" in packdata_request)
							packdata_request.responseType="arraybuffer";
						else
							packdata_request.overrideMimeType('text/plain; charset=x-user-defined');

						packdata_request.onreadystatechange = function()
						{
							if (packdata_request.readyState != 4) return;

							if (packdata_request.status == 200)
							{
								var buffer;
								if (packdata_request.responseType=="arraybuffer")
									buffer=packdata_request.response;
								else if (packdata_request.mozResponseArrayBuffer != null)
									buffer = packdata_request.mozResponseArrayBuffer;
								else
									buffer=packdata_request.response;

								mandreel_fs_saveFile(new_name, buffer);

								var uri = mandreel_arrayBufferDataUri(0,buffer.byteLength,buffer);

								image.src = uri;

							}
							else
							{

								Mandreel_TextureAsync_textures_loaded++;

							}
						}

						packdata_request.send();

					}
				}
				);
			}
			else if (mandreel_is_indexeddb())
			{
				image_src_valid = false;

				var new_name = mandreel_texture_async_fix_name(full_name);
				mandreel_indexedDB.load(new_name,function Mandreel_TextureAsync_Load_IDB(data) {
					if (data)
					{
						 var URL = Mandreel_window.URL || Mandreel_window.webkitURL;


						// Create and revoke ObjectURL
						imgURL = URL.createObjectURL(data);

						image.src = imgURL;
					}
					else
					{
						var packdata_request = new XMLHttpRequest();

						packdata_request.open("GET", full_name, true);

						 packdata_request.responseType = "blob";



						packdata_request.onreadystatechange = function()
						{
							if (packdata_request.readyState != 4) return;

							if (packdata_request.status == 200)
							{
								var buffer=packdata_request.response;

								 var URL = Mandreel_window.URL || Mandreel_window.webkitURL;

								// Create and revoke ObjectURL
								imgURL = URL.createObjectURL(buffer);

								image.src = imgURL;

								mandreel_fs_saveFile(new_name, buffer);

							}
							else
							{

								Mandreel_TextureAsync_textures_loaded++;

							}
						}

						packdata_request.send();
					}

				}
				);
			}
			else
				image_src = full_name;
		}
	}


	if (image_src_valid)
	{
		setTimeout( function Mandreel_TextureAsync_Load_callback() {
						image.src = image_src;
					}, 1);
	}
}



function __sandbox_OutputDebugString(sp)
{
	puts(sp);
}




var MANDREELCALLJS_TYPE_RETURN_VOID = 0;
var MANDREELCALLJS_TYPE_INT = 1;
var MANDREELCALLJS_TYPE_FLOAT =  2;
var MANDREELCALLJS_TYPE_STRING =  3;
var MANDREELCALLJS_TYPE_RETURN_INT =  4;
var MANDREELCALLJS_TYPE_RETURN_FLOAT =  5;

function MandreelInterWriteString(ptr, value)
{
	fill_ptr_from_string(ptr,value);
}

function MandreelInterWriteWString(ptr, value)
{
	fill_wptr_from_string(ptr, value);
}

function MandreelInterWriteFloat(ptr, value)
{
	heapFloat[ptr>>2] = value;
}

function MandreelPause()
{
	_imandreel_pause_game = true;
}

function MandreelResume()
{
	_imandreel_pause_game = false;
}


function MandreelLockFrame()
{
	assert(g_mandreel_frame_inframe == false, "calling lockframe during render frame");
	assert(g_mandreel_frame_locked == false, "calling lockframe twice");
	g_mandreel_frame_locked = true;

	return g_stack_pointer+800*1024;
}

function MandreelUnlockFrame()
{
	assert(g_mandreel_frame_inframe == false);
	g_mandreel_frame_locked = false;
}


function MandreelInterWriteInt(ptr, value)
{
	heap32[ptr>>2] = value;
}

function MandreelInterStringFromWPtr(ptr)
{
	return get_string_from_wptr(ptr);
}

function MandreelInterStringFromPtr(ptr)
{
	return get_string_from_ptr(ptr);
}

function mandreel_my_call_external_array(method, params)
{
	var result
	var resultString;
	try
	{
		switch(params.length)
		{
			case 1:
				resultString = Mandreel_window[method](params[0]);
				break;
			case 2:
				resultString = Mandreel_window[method](params[0],params[1]);
				break;
			case 3:
				resultString = Mandreel_window[method](params[0],params[1],params[2]);
				break;
			case 4:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3]);
				break;
			case 5:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4]);
				break;
			case 6:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5]);
				break;
			case 7:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
				break;
			case 8:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7]);
				break;
			case 9:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8]);
				break;
			case 10:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9]);
				break;
			case 11:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10]);
				break;
			case 12:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11]);
				break;
			case 13:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12]);
				break;
			case 14:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13]);
				break;
			case 15:
				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14]);
				break;
			default:
				assert(false);
		}
		result = 0;
	} catch(e) { dump('error calling ' + method + '\n'); dump(e); result = 1;}

	return [result,resultString];
}


function Mandreel_InterJS_Call(sp)
{
	var new_sp = sp;
	var method_ptr = heap32[sp>>2];sp+=4;
	var method = get_string_from_ptr(method_ptr);

	var params = new Array();


	params.push(new_sp);

	var var_int;
	var var_string;
	var var_double;

	var return_type;
	var return_ptr;
	while (true)
	{
		var my_type = heap32[sp>>2];sp+=4;


		if (my_type == MANDREELCALLJS_TYPE_RETURN_VOID)
		{
			return_type = my_type;
			break;
		}
		else if (my_type == MANDREELCALLJS_TYPE_INT)
		{
			var_int = heap32[sp>>2];

			params.push(var_int);
			sp+=4;
		}
		else if (my_type == MANDREELCALLJS_TYPE_FLOAT)
		{
			sp = (sp+7) & ~7;

			var_double = llvm_readDouble(sp);

			params.push(var_double);
			sp+=8;
		}
		else if (my_type == MANDREELCALLJS_TYPE_STRING)
		{
			var_int = heap32[sp>>2];
			var_string = get_string_from_ptr(var_int);

			params.push(var_string);
			sp+=4;
		}
		else if (my_type == MANDREELCALLJS_TYPE_RETURN_INT)
		{
			return_type = my_type;
			return_ptr = heap32[sp>>2];
			break;
		}
		else if (my_type == MANDREELCALLJS_TYPE_RETURN_FLOAT)
		{
			return_type = my_type;
			return_ptr = heap32[sp>>2];
			break;
		}
		else
		{
			assert(false, "invalid arguments calling Mandreel_InterJS_Call");
		}
	}

	var result = mandreel_my_call_external_array(method,params);

	r_g0 = result[0];


	if (r_g0 == 0)
	{
		if (return_type == MANDREELCALLJS_TYPE_RETURN_INT)
		{
			heap32[return_ptr>>2] = result[1];
		}
		else if (return_type == MANDREELCALLJS_TYPE_RETURN_FLOAT)
		{
			heapFloat[return_ptr>>2] = result[1];
		}

	}
}

function iMandreelRegisterExternalCallback()
{
}

function __mandreel_internal_CreateWindow()
{
}

var __mandreel_async_calls_mandreel = [];
var __mandreel_async_calls_js = [];


function Mandreel_InterJS_AsyncCall(sp)
{
	var method_ptr = heap32[sp>>2];sp+=4;
	var _func_name = get_string_from_ptr(method_ptr);
	var param_ptr = heap32[sp>>2];sp+=4;
	var _param = get_string_from_ptr(param_ptr);

	__mandreel_async_calls_js.push({func_name:_func_name,param:_param});
}




function MandreelInterCallFunctionAsync(_func_name, _param)
{
	__mandreel_async_calls_mandreel.push({func_name:_func_name,param:_param});


}

function __mandreel_process_async_calls()
{
	if (__mandreel_async_calls_mandreel.length)
	{
		var temp_list = __mandreel_async_calls_mandreel.slice(0);

		__mandreel_async_calls_mandreel = [];

		for (var i=0;i<temp_list.length;++i)
		{
			var param = temp_list[i].param;
			var func_name = temp_list[i].func_name;

			var size = ((param.length + 1)+7)&0xFFFFFFF8;

			var sp = g_stack_pointer+800*1024;

			var str_ptr = sp - size;
			fill_ptr_from_string(str_ptr,param);

			sp = str_ptr - 4;
			heap32[sp>>2] = str_ptr;

			Mandreel_window[func_name](sp);
		}
	}

	if (__mandreel_async_calls_js.length)
	{
		var temp_list = __mandreel_async_calls_js.slice(0);

		__mandreel_async_calls_js = [];

		for (var i=0;i<temp_list.length;++i)
		{
			var param = temp_list[i].param;
			var func_name = temp_list[i].func_name;

			Mandreel_window[func_name](param);

		}
	}
}

function mandreel_internal_isCanvas(sp)
{
	if ( mandreelAppPlatform == "canvas" )
		r_g0 = 1;
	else
		r_g0 = 0;
}

function Mandreel_Device_SetFullScreen(sp)
{
	var enable = heap32[sp>>2];sp+=4;
	mandreelAppFullscreen(enable);
}

var array_ids_ogl = [];

var max_ogl_id = 8192;

var array_ids_ogl_enable = [];
var g_current_program_id = 0;


var uniformArrays2 = [];
var uniformArrays3 = [];
var uniformArrays4 = [];
var uniformArraysCreated = 0;
var mandreel_draw_enable = true;


if (typeof imandreel_gl=="undefined")
{
	alert('using old template, update code');
}

function myglCreateUniformArrays()
{
	if ( uniformArraysCreated == 0 )
	{
		for(var i=0; i<256;i++ )
		{
			uniformArrays2[i] = new Float32Array(i*2);
			uniformArrays3[i] = new Float32Array(i*3);
			uniformArrays4[i] = new Float32Array(i*4);
		}
		uniformArraysCreated = 1;
	}
}

var my_super_id = 1;
function myglNewSlot()
{
	//var id = array_ids_ogl_enable.pop();
	var id = my_super_id;
	my_super_id++;
	return id;
}

function myglFreeSlot(id)
{
	//array_ids_ogl_enable.push(id);
}


function myglCreateProgram(sp)
{
	var id = myglNewSlot();
	var program = imandreel_gl.createProgram();

	program.uniform_locations_current_id = 0;
	program.array_uniform_locations = [];

	array_ids_ogl[id] = program;


	r_g0 = id;
}

function myglCreateShader(sp)
{
	var type = heap32[sp>>2];sp+=4;
	var id = myglNewSlot();

	array_ids_ogl[id] = imandreel_gl.createShader(type);

	r_g0 = id;
}

function myglAttachShader(sp)
{
	var program_id = heap32[sp>>2];sp+=4;
	var shader_id = heap32[sp>>2];sp+=4;

	imandreel_gl.attachShader(array_ids_ogl[program_id], array_ids_ogl[shader_id]);
}

function myglBindAttribLocation(sp)
{
	var program_id = heap32[sp>>2];sp+=4;
	var index = heap32[sp>>2];sp+=4;
	var ptr_string = heap32[sp>>2];sp+=4;

	var string = get_string_from_ptr(ptr_string);

	imandreel_gl.bindAttribLocation(array_ids_ogl[program_id], index, string);
}

function myglLinkProgram(sp)
{
	var program_id = heap32[sp>>2];sp+=4;

	imandreel_gl.linkProgram(array_ids_ogl[program_id]);
}

function myglShaderSource(sp)
{
	var id = heap32[sp>>2];sp+=4;
	var ptr_string = heap32[sp>>2];sp+=4;

	var shader = array_ids_ogl[id];

	var shader_code = get_string_from_ptr(ptr_string);

	//dump(shader_code);


	imandreel_gl.shaderSource(shader, shader_code);
}


function myglDrawArrays(sp)
{
	var mode = heap32[sp>>2];sp+=4;
	var first = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;

	if (mandreel_draw_enable)
		imandreel_gl.drawArrays(mode, first, count);


	//dump('draw arrays ' + mode + ' ' + first + ' ' + count + '\n');
 }

function myglDrawElements(sp)
{
	var mode = heapU32[sp>>2]; sp+=4;
	var count = heapU32[sp>>2]; sp+=4;
	var type = heapU32[sp>>2]; sp+=4;
	var offset = heapU32[sp>>2]; sp+=4;


	if (mandreel_draw_enable)
		imandreel_gl.drawElements(mode, count, type, offset);



}

function myglCreateTexture(sp)
{
	var id = myglNewSlot();
	array_ids_ogl[id] = imandreel_gl.createTexture();

	r_g0 = id;
}

function myglCreateRenderBuffer(sp) {
	var id = myglNewSlot();
    array_ids_ogl[id] = imandreel_gl.createRenderbuffer();

    r_g0 = id;
}

function myglCreateFrameBuffer(sp) {
	var id = myglNewSlot();
    array_ids_ogl[id] = imandreel_gl.createFramebuffer();

    r_g0 = id;
}

function myglBindFramebuffer(sp)
{
    var target = heap32[sp >> 2]; sp += 4;
    var framebuffer_id = heap32[sp >> 2]; sp += 4;

	if (framebuffer_id != 0)
	{
		var framebuffer = array_ids_ogl[framebuffer_id];
		imandreel_gl.bindFramebuffer(target,framebuffer);
	}
	else
		imandreel_gl.bindFramebuffer(target,null);

}

function myglBindRenderbuffer(sp)
{
    var target = heap32[sp >> 2]; sp += 4;
    var renderbuffer_id = heap32[sp >> 2]; sp += 4;

    var renderbuffer = array_ids_ogl[renderbuffer_id];

    imandreel_gl.bindRenderbuffer(target,renderbuffer);

}


function myglRenderbufferStorage(sp) {
    var target = heap32[sp >> 2]; sp += 4;
    var internalformat = heap32[sp >> 2]; sp += 4;
    var witdth = heap32[sp >> 2]; sp += 4;
    var height = heap32[sp >> 2]; sp += 4;

    imandreel_gl.renderbufferStorage(target, internalformat, witdth, height);

}

function myglFramebufferRenderbuffer (sp)
{
  var target = heap32[sp>>2];sp+=4;
  var attachment = heap32[sp>>2];sp+=4;
  var renderbuffertarget = heap32[sp>>2];sp+=4;
  var renderbuffer_id = heap32[sp>>2];sp+=4;

    var renderbuffer = array_ids_ogl[renderbuffer_id];

    imandreel_gl.framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);

}

function myglFramebufferTexture2D (sp)
{
  var target = heap32[sp>>2];sp+=4;
  var attachment = heap32[sp>>2];sp+=4;
  var textarget = heap32[sp>>2];sp+=4;
  var texture_id = heap32[sp>>2];sp+=4;
  var level = heap32[sp>>2];sp+=4;

  var texture = array_ids_ogl[texture_id];

  imandreel_gl.framebufferTexture2D(target, attachment, textarget, texture, level);


}

function myglTexImage2D(sp)
 {
  var target = heap32[sp>>2];sp+=4;
  var level = heap32[sp>>2];sp+=4;
  var internalFormat = heap32[sp>>2];sp+=4;
  var width = heap32[sp>>2];sp+=4;
  var height = heap32[sp>>2];sp+=4;
  var border = heap32[sp>>2];sp+=4;
  var format = heap32[sp>>2];sp+=4;
  var type = heap32[sp>>2];sp+=4;
  var data = heap32[sp>>2];sp+=4;

  if (level>0 && target==imandreel_gl.TEXTURE_2D)
	return;

   if (data == 0)
  {
	//imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, null);
	var buffer;
	var bufferView;

	if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
    {
		buffer = new ArrayBuffer(width*height*2);
		bufferView = new Uint16Array(buffer);
	}
	else
	{
		var size;
		if (format == imandreel_gl.LUMINANCE)
			size = width*height;
		else if (format == imandreel_gl.RGB)
			size = width*height*3;
		else if (format == imandreel_gl.RGBA)
			size = width*height*4;
		else if (format == imandreel_gl.ALPHA)
			size = width*height;
		else if (format == imandreel_gl.LUMINANCE_ALPHA)
			size = width*height*2;

		buffer = new ArrayBuffer(size);
		bufferView = new Uint8Array(buffer);
	}

	imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, bufferView);
	return;
  }


  	var bufferView;
   if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
   {
		bufferView = new Uint16Array(heap,data,width*height);
	}
	else if (type == imandreel_gl.UNSIGNED_BYTE)
	{
		if (format == imandreel_gl.LUMINANCE)
			bufferView = new Uint8Array(heap,data,width*height);
		else if (format == imandreel_gl.RGB)
			bufferView = new Uint8Array(heap,data,width*height*3);
		else if (format == imandreel_gl.RGBA)
			bufferView = new Uint8Array(heap,data,width*height*4);
		else if (format == imandreel_gl.ALPHA)
			bufferView = new Uint8Array(heap,data,width*height);
		else if (format == imandreel_gl.LUMINANCE_ALPHA)
			bufferView = new Uint8Array(heap,data,width*height*2);
		else
		{
			dump('format unknown ' + format + '\n');
			assert(false);
		}
	}
	else
	{
	dump('type unknown ' + type + '\n');
		assert(false);
	}

  imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, bufferView);
  if ((width&(width-1))==0 && (height&(height-1))==0)
  {
    if (target==imandreel_gl.TEXTURE_2D)
	imandreel_gl.generateMipmap(target);
}
 }
  function myglStencilFunc(sp)
  {
  var func = heap32[sp>>2];sp+=4;
  var ref = heap32[sp>>2];sp+=4;
  var mask = heap32[sp>>2];sp+=4;

  imandreel_gl.stencilFunc(func, ref, mask);
  }

  function myglStencilFuncSeparate(sp)
  {
  var face = heap32[sp>>2];sp+=4;
  var func = heap32[sp>>2];sp+=4;
  var ref = heap32[sp>>2];sp+=4;
  var mask = heap32[sp>>2];sp+=4;

  imandreel_gl.stencilFuncSeparate(face,func,ref,mask);
  }

  function myglStencilMaskSeparate(sp)
  {
  var face = heap32[sp>>2];sp+=4;
   var mask = heap32[sp>>2];sp+=4;

   imandreel_gl.stencilMaskSeparate(face,mask);
  }

  function myglStencilMask(sp)
  {
   var mask = heap32[sp>>2];sp+=4;

   imandreel_gl.stencilMask(mask);
  }
  function myglStencilOp (sp)
  {
   var fail = heap32[sp>>2];sp+=4;
  var zfail = heap32[sp>>2];sp+=4;
   var zpass = heap32[sp>>2];sp+=4;

  imandreel_gl.stencilOp(fail, zfail, zpass);
  }

  function myglStencilOpSeparate (sp)
  {
  var face = heap32[sp>>2];sp+=4;
   var fail = heap32[sp>>2];sp+=4;
  var zfail = heap32[sp>>2];sp+=4;
   var zpass = heap32[sp>>2];sp+=4;

  imandreel_gl.stencilOpSeparate(face, fail, zfail, zpass);
  }

 function myglTexSubImage2D(sp)
 {
  var target = heap32[sp>>2];sp+=4;
  var level = heap32[sp>>2];sp+=4;
  var xoffset = heap32[sp>>2];sp+=4;
  var yoffset = heap32[sp>>2];sp+=4;
  var width = heap32[sp>>2];sp+=4;
  var height = heap32[sp>>2];sp+=4;
  var format = heap32[sp>>2];sp+=4;
  var type = heap32[sp>>2];sp+=4;
  var data = heap32[sp>>2];sp+=4;



  	var bufferView;
   if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
   {
		bufferView = new Uint16Array(heap,data,width*height);
	}
	else if (type == imandreel_gl.UNSIGNED_BYTE)
	{
		if (format == imandreel_gl.LUMINANCE)
			bufferView = new Uint8Array(heap,data,width*height);
		else if (format == imandreel_gl.RGB)
			bufferView = new Uint8Array(heap,data,width*height*3);
		else if (format == imandreel_gl.RGBA)
			bufferView = new Uint8Array(heap,data,width*height*4);
		else if (format == imandreel_gl.ALPHA)
			bufferView = new Uint8Array(heap,data,width*height);
	}

  imandreel_gl.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, bufferView);
 }


  function myglCreateBuffer(sp)
{
	var id = myglNewSlot();
	array_ids_ogl[id] = imandreel_gl.createBuffer();

	r_g0 = id;
}

var glBufferDataArray = [];

function myglBufferData(sp)
{
	var target = heapU32[sp>>2]; sp+=4;
	var size = heapU32[sp>>2]; sp+=4;
	var data = heapU32[sp>>2]; sp+=4;
	var usage = heapU32[sp>>2]; sp+=4;

	if (data == 0)
		imandreel_gl.bufferData(target, size, usage);
	else
	{
		if (usage == imandreel_gl.STATIC_DRAW || true)
		{
			var buffer_data = new Int8Array(heap, data, size);
			imandreel_gl.bufferData(target, buffer_data, usage);
		}
		else
		{
			var new_size = size/4;
			var buffer_data = glBufferDataArray[new_size];

			if (buffer_data == null)
			{
				buffer_data =  new Int32Array(new_size);
				glBufferDataArray[new_size] = buffer_data;
			}

			var new_data = data>>2;

			for ( var i = 0 ; i < new_size ; ++i )
			{
				buffer_data[i] = heap32[new_data+i];
			}

			imandreel_gl.bufferData(target, buffer_data, usage);
		}
	}
}

function myglBufferSubData(sp)
{
	var target = heapU32[sp>>2]; sp+=4;
	var offset = heapU32[sp>>2]; sp+=4;
	var size = heapU32[sp>>2]; sp+=4;
	var data = heapU32[sp>>2]; sp+=4;


	var buffer_data = new Int8Array(heap, data, size);
	imandreel_gl.bufferSubData(target, offset, buffer_data);

//	dump('buffer sub data ' + offset + ' ' + size + ' ' + data + '\n')

}


function myglBindBuffer(sp)
{
	var target = heapU32[sp>>2]; sp+=4;
	var id = heapU32[sp>>2]; sp+=4;

	imandreel_gl.bindBuffer(target, array_ids_ogl[id]);
}


function myglUseProgram(sp)
{
	var program_id = heap32[sp>>2];sp+=4;

	g_current_program_id = program_id;

	imandreel_gl.useProgram(array_ids_ogl[program_id]);

}

function myglDisableVertexAttribArray(sp)
{
	var idx = heapU32[sp>>2];sp+=4;
	imandreel_gl.disableVertexAttribArray(idx);
}
function myglEnableVertexAttribArray(sp)
{
	var idx = heapU32[sp>>2];sp+=4;
	imandreel_gl.enableVertexAttribArray(idx);
}

function myglVertexAttribPointer(sp)
{
	var idx = heapU32[sp>>2];sp+=4;
	var size = heapU32[sp>>2];sp+=4;
	var type = heapU32[sp>>2];sp+=4;
	var normalized = heapU32[sp>>2];sp+=4;
	var stride = heapU32[sp>>2];sp+=4;
	var ptr = heapU32[sp>>2];sp+=4;

	//dump(idx + ' ' + size + ' ' + type + ' ' + normalized + ' ' + stride + ' ' + ptr + '\n');


	imandreel_gl.vertexAttribPointer(idx, size, type, normalized, stride, ptr);
}

function myglPolygonOffset(sp)
{
	var factor = heapFloat[sp>>2]; sp+=4;
	var units = heapFloat[sp>>2]; sp+=4;
	imandreel_gl.polygonOffset(factor, units);
}

function myglEnable(sp)
 {
	var value = heap32[sp>>2];sp+=4;

	imandreel_gl.enable(value);
  }

function myglDisable(sp)
 {
	var value = heap32[sp>>2];sp+=4;

	imandreel_gl.disable(value);
  }

  function myglDepthFunc(sp)
  {
	var func = heapU32[sp>>2];sp+=4;

	imandreel_gl.depthFunc(func);

  }

  function myglGenerateMipmap(sp)
  {
	var texture_type = heap32[sp>>2];sp+=4;
	imandreel_gl.generateMipmap(texture_type);
  }

  function myglPixelStorei (sp)
  {
	var pname = heap32[sp>>2];sp+=4;
	var param = heap32[sp>>2];sp+=4;
	imandreel_gl.pixelStorei(pname,param);
  }


  function myglBindTexture(sp)
  {
  var texture_type = heap32[sp>>2];sp+=4;
  var texture_id = heap32[sp>>2];sp+=4;

if (texture_id == 0)
{
	imandreel_gl.bindTexture(texture_type, null);
}
else
{
	var tex = array_ids_ogl[texture_id];
	imandreel_gl.bindTexture(texture_type, tex);
	}

  }

  function myglActiveTexture(sp)
{
	var param = heapU32[sp>>2];sp+=4;
	imandreel_gl.activeTexture(param);
}

function myglCompileShader(sp)
{
	var id = heap32[sp>>2];sp+=4;

	var shader = array_ids_ogl[id];

	imandreel_gl.compileShader(shader);
}

function myglGetUniformLocation(sp)
{
	var program_id = heap32[sp>>2];sp+=4;
	var ptr_string = heap32[sp>>2];sp+=4;

	var string = get_string_from_ptr(ptr_string);
	var program = array_ids_ogl[program_id];
	var result = imandreel_gl.getUniformLocation(program, string);

	if (result != null)
	{
		program.array_uniform_locations[program.uniform_locations_current_id] = result;
		r_g0 = program.uniform_locations_current_id;
		program.uniform_locations_current_id++;
	}
	else
		r_g0 = -1;
}

function myglIsEnabled(sp)
{
	var cap = heap32[sp>>2];sp+=4;

	r_g0 = imandreel_gl.isEnabled(cap);
}


function myglUniform1i(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var value = heap32[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];

	var uniform_value = program.array_uniform_locations[index];

	imandreel_gl.uniform1i(uniform_value, value);
}

function myglUniform2i(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var x = heap32[sp>>2];sp+=4;
	var y = heap32[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];

	var uniform_value = program.array_uniform_locations[index];

	imandreel_gl.uniform2i(uniform_value, x,y);
}

function myglUniform3i(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var x = heap32[sp>>2];sp+=4;
	var y = heap32[sp>>2];sp+=4;
	var z = heap32[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];

	var uniform_value = program.array_uniform_locations[index];

	imandreel_gl.uniform3i(uniform_value, x,y,z);
}

function myglUniform4i(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var x = heap32[sp>>2];sp+=4;
	var y = heap32[sp>>2];sp+=4;
	var z = heap32[sp>>2];sp+=4;
	var w = heap32[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];

	var uniform_value = program.array_uniform_locations[index];

	imandreel_gl.uniform4i(uniform_value, x,y,z,w);
}

function myglUniform1f(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var value = heapFloat[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];

	var uniform_value = program.array_uniform_locations[index];

	imandreel_gl.uniform1f(uniform_value, value);
}

function myglUniform3f(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var x = heapFloat[sp>>2];sp+=4;
	var y = heapFloat[sp>>2];sp+=4;
	var z = heapFloat[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];

	var uniform_value = program.array_uniform_locations[index];

	imandreel_gl.uniform3f(uniform_value, x,y,z);
}

function myglUniform2f(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var x = heapFloat[sp>>2];sp+=4;
	var y = heapFloat[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];

	var uniform_value = program.array_uniform_locations[index];

	imandreel_gl.uniform2f(uniform_value, x,y);
}


function myglUniform4f(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var x = heapFloat[sp>>2];sp+=4;
	var y = heapFloat[sp>>2];sp+=4;
	var z = heapFloat[sp>>2];sp+=4;
	var w = heapFloat[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];

	imandreel_gl.uniform4f(uniform_value, x,y,z,w);
}

function myglUniform1fv(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var data = heap32[sp>>2];sp+=4;

	var new_data = data>>2;
	var new_count = count;
	var bufferView = new Float32Array(new_count);

	for ( var i = 0 ; i < new_count ; ++i )
	{
		bufferView[i] = heapFloat[new_data+i];
	}

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];
	imandreel_gl.uniform1fv(uniform_value, bufferView);


}

function myglUniform1iv(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var data = heap32[sp>>2];sp+=4;

	var new_data = data>>2;
	var new_count = count;
	var bufferView = new Int32Array(new_count);

	for ( var i = 0 ; i < new_count ; ++i )
	{
		bufferView[i] = heap32[new_data+i];
	}

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];
	imandreel_gl.uniform1iv(uniform_value, bufferView);
}

function myglUniform2iv(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var data = heap32[sp>>2];sp+=4;

	var new_data = data>>2;
	var new_count = count*2;
	var bufferView = new Int32Array(new_count);

	for ( var i = 0 ; i < new_count ; ++i )
	{
		bufferView[i] = heap32[new_data+i];
	}

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];
	imandreel_gl.uniform2iv(uniform_value, bufferView);
}

function myglUniform3iv(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var data = heap32[sp>>2];sp+=4;

	var new_data = data>>2;
	var new_count = count*3;
	var bufferView = new Int32Array(new_count);

	for ( var i = 0 ; i < new_count ; ++i )
	{
		bufferView[i] = heap32[new_data+i];
	}

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];
	imandreel_gl.uniform3iv(uniform_value, bufferView);
}

function myglUniform4iv(sp)
{
	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var data = heap32[sp>>2];sp+=4;

	var new_data = data>>2;
	var new_count = count*4;
	var bufferView = new Int32Array(new_count);

	for ( var i = 0 ; i < new_count ; ++i )
	{
		bufferView[i] = heap32[new_data+i];
	}

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];
	imandreel_gl.uniform4iv(uniform_value, bufferView);
}



function myglUniform3fv(sp)
{
	myglCreateUniformArrays();

	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var data = heap32[sp>>2];sp+=4;

	var new_data = data>>2;
	var new_count = count*3;
	var bufferView = uniformArrays3[count];

	for ( var i = 0 ; i < new_count ; ++i )
	{
		bufferView[i] = heapFloat[new_data+i];
	}

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];
	imandreel_gl.uniform3fv(uniform_value, bufferView);
}

function myglUniform2fv(sp)
{
	myglCreateUniformArrays();

    var index = heap32[sp >> 2]; sp += 4;
    var count = heap32[sp >> 2]; sp += 4;
    var data = heap32[sp >> 2]; sp += 4;

	var new_data = data>>2;
	var new_count = count*2;
	var bufferView = uniformArrays2[count];

	for ( var i = 0 ; i < new_count ; ++i )
	{
		bufferView[i] = heapFloat[new_data+i];
	}


	var program = array_ids_ogl[g_current_program_id];
    var uniform_value = program.array_uniform_locations[index];
    imandreel_gl.uniform2fv(uniform_value, bufferView);
}


function myglUniform4fv(sp)
{
	myglCreateUniformArrays();

	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var data = heap32[sp>>2];sp+=4;


	var new_data = data>>2;
	var new_count = count*4;
	var bufferView = uniformArrays4[count];

	for ( var i = 0 ; i < new_count ; ++i )
	{
		bufferView[i] = heapFloat[new_data+i];
	}


	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];
	imandreel_gl.uniform4fv(uniform_value, bufferView);
}


function myglUniformMatrix4fv(sp)
{
	myglCreateUniformArrays();

	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var transpose = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];

	//var buffer_data = new Float32Array(heap, ptr, count*16);
	for ( var i = 0 ; i < count*16 ; ++i )
	{
		uniformArrays4[count*4][i] = heapFloat[(ptr>>2)+i];
	}

	//imandreel_gl.uniformMatrix4fv(uniform_value, transpose, buffer_data);
	//imandreel_gl.uniformMatrix4fv(uniform_value, transpose, heapFloat.subarray(ptr/4,(ptr/4)+(count*16)));
	imandreel_gl.uniformMatrix4fv(uniform_value, transpose, uniformArrays4[count*4]);
}

function myglUniformMatrix3fv(sp)
{
	myglCreateUniformArrays();

	var index = heap32[sp>>2];sp+=4;
	var count = heap32[sp>>2];sp+=4;
	var transpose = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;

	var program = array_ids_ogl[g_current_program_id];
	var uniform_value = program.array_uniform_locations[index];

	//var buffer_data = new Float32Array(heap, ptr, count*9);
	for ( var i = 0 ; i < count*9 ; ++i )
	{
		uniformArrays3[count*3][i] = heapFloat[(ptr>>2)+i];
	}

	//imandreel_gl.uniformMatrix3fv(uniform_value, transpose, buffer_data);
	//imandreel_gl.uniformMatrix3fv(uniform_value, transpose, heapFloat.subarray(ptr/4,(ptr/4)+(count*9)));
	imandreel_gl.uniformMatrix3fv(uniform_value, transpose, uniformArrays3[count*3]);
}



function myglValidateProgram(sp)
{
	var program_id = heap32[sp>>2];sp+=4;

	imandreel_gl.validateProgram(array_ids_ogl[program_id]);
}

function myglGetAttribLocation(sp)
{
	var program_id = heap32[sp>>2];sp+=4;
	var ptr_string = heap32[sp>>2];sp+=4;

	var string = get_string_from_ptr(ptr_string);
	var result = imandreel_gl.getAttribLocation(array_ids_ogl[program_id], string);

	r_g0 = result;
}

function myglGetProgramInfoLogLength(sp)
{
	var program_id = heap32[sp>>2];sp+=4;

	var info_log = imandreel_gl.getProgramInfoLog(array_ids_ogl[program_id]);

	if (info_log)
		r_g0 = info_log.length+1;
	else
		r_g0 = 0;
}


function myglGetProgramInfoLog(sp)
{
	var program_id = heap32[sp>>2];sp+=4;
	var ptr_string = heap32[sp>>2];sp+=4;

	var info_log = imandreel_gl.getProgramInfoLog(array_ids_ogl[program_id]);

	fill_ptr_from_string(ptr_string, info_log);
}

function myglGetShaderInfoLogLength(sp)
{
	var program_id = heap32[sp>>2];sp+=4;

	var info_log = imandreel_gl.getShaderInfoLog(array_ids_ogl[program_id]);

	if (info_log)
		r_g0 = info_log.length+1;
	else
		r_g0 = 0;
}

function myglGetShaderInfoLog(sp)
{
	var program_id = heap32[sp>>2];sp+=4;
	var ptr_string = heap32[sp>>2];sp+=4;

	var info_log = imandreel_gl.getShaderInfoLog(array_ids_ogl[program_id]);

	fill_ptr_from_string(ptr_string, info_log);
}

function myglViewport(sp) {
    var x = heap32[sp >> 2]; sp += 4;
    var y = heap32[sp >> 2]; sp += 4;
    var width = heap32[sp >> 2]; sp += 4;
    var height = heap32[sp >> 2]; sp += 4;

    imandreel_gl.viewport(x,y,width,height);

}

function myglScissor(sp)
{
    var x = heap32[sp >> 2]; sp += 4;
    var y = heap32[sp >> 2]; sp += 4;
    var width = heap32[sp >> 2]; sp += 4;
    var height = heap32[sp >> 2]; sp += 4;

    imandreel_gl.scissor(x,y,width,height);
}



function myglClearColor(sp)
{
  var r = heapFloat[sp>>2];sp+=4;
  var g = heapFloat[sp>>2];sp+=4;
  var b = heapFloat[sp>>2];sp+=4;
  var a = heapFloat[sp>>2];sp+=4;

  imandreel_gl.clearColor(r,g,b,a);


}

function myglClearStencil(sp)
{
	var stencil = heap32[sp>>2];sp+=4;
	imandreel_gl.clearStencil(stencil);
}


function myglClearDepthf(sp)
{
	var depth = heapFloat[sp>>2];sp+=4;
	imandreel_gl.clearDepth(depth);
}

function myglClear(sp)
  {
  var mask = heap32[sp>>2];sp+=4;


  //dump('clear ' + mask + '\n');
	if (mandreel_draw_enable)
		imandreel_gl.clear(mask);
  }

  function myglGetError(sp)
  {
//	r_g0 = imandreel_gl.getError();
	r_g0 = 0;
  }

  function myglGetProgramParameter(sp)
  {
	var program_id = heap32[sp>>2];sp+=4;
	var pname = heap32[sp>>2];sp+=4;

	r_g0 = imandreel_gl.getProgramParameter(array_ids_ogl[program_id], pname);
  }

  function myglGetActiveAttrib (sp)
  {
	var program_id = heap32[sp>>2];sp+=4;
	var index = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;

	 var result = imandreel_gl.getActiveAttrib(array_ids_ogl[program_id], index);

	 if (result != null)
	 {
		heap32[(ptr)>>2] = result.size;
		heap32[(ptr+4)>>2] = result.type;
		fill_ptr_from_string(ptr+8, result.name);
		r_g0 = 0;
	}
	else
	   r_g0 = 1;
  }

    function myglGetActiveUniform (sp)
  {
	var program_id = heap32[sp>>2];sp+=4;
	var index = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;

	 var result = imandreel_gl.getActiveUniform(array_ids_ogl[program_id], index);

	 if (result != null)
	 {
		heap32[(ptr)>>2] = result.size;
		heap32[(ptr+4)>>2] = result.type;
		fill_ptr_from_string(ptr+8, result.name);
		r_g0 = 0;
	}
	else
	   r_g0 = 1;
  }

  function myglTexParameterf (sp)
  {
	var target = heap32[sp>>2];sp+=4;
	var pname = heap32[sp>>2];sp+=4;
	var value = heapFloat[sp>>2];sp+=4;

	imandreel_gl.texParameterf(target,pname,value);
}

function myglTexParameteri (sp)
  {
	var target = heap32[sp>>2];sp+=4;
	var pname = heap32[sp>>2];sp+=4;
	var value = heap32[sp>>2];sp+=4;

	imandreel_gl.texParameteri(target,pname,value);
}

function myglCullFace (sp)
 {
	var mode = heap32[sp>>2];sp+=4;
	imandreel_gl.cullFace(mode);
 }

 function myglDepthMask (sp)
 {
	var flag = heap32[sp>>2];sp+=4;
	imandreel_gl.depthMask(flag);
 }

 function myglDepthRangef (sp)
 {
	var zNear = heapFloat[sp>>2];sp+=4;
	var zFar = heapFloat[sp>>2];sp+=4;
	imandreel_gl.depthRange(zNear, zFar);
 }

function myglFrontFace (sp)
 {
	var mode = heap32[sp>>2];sp+=4;
	imandreel_gl.frontFace(mode);
 }

 function myglBlendFunc (sp)
 {
	var sfactor = heap32[sp>>2];sp+=4;
	var dfactor = heap32[sp>>2];sp+=4;
	imandreel_gl.blendFunc(sfactor,dfactor);
 }

 function myglBlendColor(sp)
 {
	var red = heapFloat[sp>>2];sp+=4;
	var green = heapFloat[sp>>2];sp+=4;
	var blue = heapFloat[sp>>2];sp+=4;
	var alpha = heapFloat[sp>>2];sp+=4;
	imandreel_gl.blendColor(red,green,blue,alpha);
 }

 function myglBlendEquation(sp)
 {
	var mode = heap32[sp>>2];sp+=4;
	imandreel_gl.blendEquation(mode);
 }

 function myglBlendEquationSeparate(sp)
 {
	var modeRGB = heap32[sp>>2];sp+=4;
	var modeAlpha = heap32[sp>>2];sp+=4;
	imandreel_gl.blendEquationSeparate(modeRGB,modeAlpha);
 }

 function myglBlendFuncSeparate(sp)
 {
	var srcRGB = heap32[sp>>2];sp+=4;
	var dstRGB = heap32[sp>>2];sp+=4;
	var srcAlpha = heap32[sp>>2];sp+=4;
	var dstAlpha = heap32[sp>>2];sp+=4;

	imandreel_gl.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
 }


 function myglColorMask (sp)
 {
	var red = heap32[sp>>2];sp+=4;
	var green = heap32[sp>>2];sp+=4;
	var blue = heap32[sp>>2];sp+=4;
	var alpha = heap32[sp>>2];sp+=4;
	imandreel_gl.colorMask(red,green,blue,alpha);
 }

 function removeByElement(arrayName,arrayElement)
 {
    for(var i=0; i<arrayName.length;i++ )
     {
        if(arrayName[i]==arrayElement)
		{
            arrayName.splice(i,1);
			return;
		}
      }
  }


 function mygetParameter(sp)
 {
	var pname = heap32[sp>>2];sp+=4;
	r_g0 = imandreel_gl.getParameter(pname);
 }


 function mygetProgramParameter(sp)
 {
 	var program_id = heap32[sp>>2];sp+=4;
	var pname = heap32[sp>>2];sp+=4;
	r_g0 = imandreel_gl.getProgramParameter(array_ids_ogl[program_id], pname);
 }

 function mygetShaderParameter(sp)
 {
 	var shader_id = heap32[sp>>2];sp+=4;
	var pname = heap32[sp>>2];sp+=4;
	r_g0 = imandreel_gl.getShaderParameter(array_ids_ogl[shader_id], pname);
 }

 function myglVertexAttrib1f(sp)
 {
	var index = heap32[sp>>2];sp+=4;
	var x = heapFloat[sp>>2];sp+=4;
	imandreel_gl.vertexAttrib1f(index,x);
 }

  function myglVertexAttrib2f(sp)
 {
	var index = heap32[sp>>2];sp+=4;
	var x = heapFloat[sp>>2];sp+=4;
	var y = heapFloat[sp>>2];sp+=4;
	imandreel_gl.vertexAttrib2f(index,x,y);
 }

  function myglVertexAttrib3f(sp)
 {
	var index = heap32[sp>>2];sp+=4;
	var x = heapFloat[sp>>2];sp+=4;
	var y = heapFloat[sp>>2];sp+=4;
	var z = heapFloat[sp>>2];sp+=4;
	imandreel_gl.vertexAttrib3f(index,x,y,z);
 }

  function myglVertexAttrib4f(sp)
 {
	var index = heap32[sp>>2];sp+=4;
	var x = heapFloat[sp>>2];sp+=4;
	var y = heapFloat[sp>>2];sp+=4;
	var z = heapFloat[sp>>2];sp+=4;
	var w = heapFloat[sp>>2];sp+=4;
	imandreel_gl.vertexAttrib4f(index,x,y,z,w);
 }

 function myglVertexAttrib1fv(sp)
 {
	var index = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;
	var x = heap32[ptr>>2];ptr+=4;
	imandreel_gl.vertexAttrib1f(index,x);
 }

 function myglVertexAttrib2fv(sp)
 {
	var index = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;
	var x = heap32[ptr>>2];ptr+=4;
	var y = heap32[ptr>>2];ptr+=4;

	imandreel_gl.vertexAttrib2f(index,x,y);
 }

 function myglVertexAttrib3fv(sp)
 {
	var index = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;
	var x = heap32[ptr>>2];ptr+=4;
	var y = heap32[ptr>>2];ptr+=4;
	var z = heap32[ptr>>2];ptr+=4;

	imandreel_gl.vertexAttrib3f(index,x,y,z);
 }

 function myglVertexAttrib4fv(sp)
 {
	var index = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;
	var x = heap32[ptr>>2];ptr+=4;
	var y = heap32[ptr>>2];ptr+=4;
	var z = heap32[ptr>>2];ptr+=4;
	var w = heap32[ptr>>2];ptr+=4;

	imandreel_gl.vertexAttrib4f(index,x,y,z,w);
 }


 function myglDeleteTexture (sp)
 {

	var texture_id = heap32[sp>>2];sp+=4;

	var texture = array_ids_ogl[texture_id];

	imandreel_gl.deleteTexture(texture);

	array_ids_ogl[texture_id] = null;

	myglFreeSlot(texture_id);
 }

 function myglDeleteBuffer (sp)
 {

	var buffer_id = heap32[sp>>2];sp+=4;

	var buffer = array_ids_ogl[buffer_id];

	imandreel_gl.deleteBuffer(buffer);

	array_ids_ogl[buffer_id] = null;

	myglFreeSlot(buffer_id);
 }

 function myglDeleteFrameBuffer (sp)
 {
	var framebuffer_id = heap32[sp>>2];sp+=4;

	var framebuffer = array_ids_ogl[framebuffer_id];

	imandreel_gl.deleteFramebuffer(framebuffer);

	array_ids_ogl[framebuffer_id] = null;

	myglFreeSlot(framebuffer_id);
 }


 function myglDeleteProgram (sp)
 {
	var program_id = heap32[sp>>2];sp+=4;

	var program = array_ids_ogl[program_id];

	imandreel_gl.deleteProgram(program);

	array_ids_ogl[program_id] = null;

	myglFreeSlot(program_id);
 }

 function myglDeleteRenderBuffer (sp)
 {
	var renderbuffer_id = heap32[sp>>2];sp+=4;

	var renderbuffer = array_ids_ogl[renderbuffer_id];

	imandreel_gl.deleteRenderbuffer(renderbuffer);

	array_ids_ogl[renderbuffer_id] = null;

	myglFreeSlot(renderbuffer_id);
 }

 function myglDeleteShader (sp)
 {
	var shader_id = heap32[sp>>2];sp+=4;

	var shader = array_ids_ogl[shader_id];

	imandreel_gl.deleteShader(shader);

	array_ids_ogl[shader_id] = null;

	myglFreeSlot(shader_id);
 }

 function myglInit(sp)
 {

	for (var i=0;i<max_ogl_id;++i)
	{
		array_ids_ogl_enable.push(i+1);
	}
 }

 function myglReadPixels(sp)
 {
  var x = heap32[sp>>2];sp+=4;
  var y = heap32[sp>>2];sp+=4;
  var width = heap32[sp>>2];sp+=4;
  var height = heap32[sp>>2];sp+=4;
  var format = heap32[sp>>2];sp+=4;
  var type = heap32[sp>>2];sp+=4;
  var pixels = heap32[sp>>2];sp+=4;

	var bufferView = new Uint8Array(heap,pixels,width*height*4);
  imandreel_gl.readPixels(x,y,width,height,format,type,bufferView);
}

function mandreel_internal_DrawSprite(sp)
{
	if ( imandreel_ctx_canvas == null )
	{
		console.log("Mandreel_2D_DrawSprite error: canvas context is null");
		return;
	}

	var hw_id = heap32[sp>>2]; sp+=4;
	var u0 = heapFloat[sp>>2]; sp+=4;
	var u1 = heapFloat[sp>>2]; sp+=4;
	var v0 = heapFloat[sp>>2]; sp+=4;
	var v1 = heapFloat[sp>>2]; sp+=4;
	//var x = heapFloat[sp>>2]; sp+=4;
	//var y = heapFloat[sp>>2]; sp+=4;
	var sx = heapFloat[sp>>2]; sp+=4;
	var sy = heapFloat[sp>>2]; sp+=4;
	//var rot = heapFloat[sp>>2]; sp+=4;
	var m11 = heapFloat[sp>>2]; sp+=4;
	var m12 = heapFloat[sp>>2]; sp+=4;
	var m21 = heapFloat[sp>>2]; sp+=4;
	var m22 = heapFloat[sp>>2]; sp+=4;
	var tx = heapFloat[sp>>2]; sp+=4;
	var ty = heapFloat[sp>>2]; sp+=4;
	var color = heap32[sp>>2]; sp+=4;

	//ctx_canvas.fillStyle="#FF0000";
	//ctx_canvas.fillRect(tx,ty,sx,sy);
	var texture = array_ids_ogl[hw_id];

	if ( texture == null )
	{
		console.log("Mandreel_2D_DrawSprite error: texture invalid ("+hw_id+") or loading yet...");
		return;
	}

	var width = (u1-u0)*texture.width;
	var height = (v1-v0)*texture.height;

	if (width == 0)
		return;
	if (height == 0)
		return;

	var x_offset = u0*texture.width;
	var y_offset = v0*texture.height;

	//dump(x_offset + ' ' + y_offset + ' ' + texture.width + ' ' + texture.height + ' ' + x + ' ' +y + ' ' + width + ' ' + height + '\n');

	x_offset = x_offset % texture.width;
	y_offset = y_offset % texture.height;

	var scale_x, scale_y;
	if (sx<0)
		scale_x = -1;
	else
		scale_x = 1;
	if (sy<0)
		scale_y = -1;
	else
		scale_y = 1;

	var simple_draw = false;//scale_x == 1 && scale_y == 1 && rot == 0;
	var x_pos = (0.5*sx + tx/* + 240*/);
	var y_pos = (/*320*/ + ((0.5*sy + ty) /*+ 160*/));
	var new_sx = sx;
	var new_sy = sy;

	imandreel_ctx_canvas.globalAlpha = (color>>>24)/255;

	if (!simple_draw)
	{
		imandreel_ctx_canvas.save()
		/*ctx_canvas.translate(x_pos + new_sx/2, y_pos + new_sy/2)
		ctx_canvas.rotate(-rot*Math.PI/180);
		ctx_canvas.scale(scale_x, scale_y);
		ctx_canvas.translate(-(x_pos + new_sx/2), -(y_pos + new_sy/2))*/
		imandreel_ctx_canvas.setTransform(m11,m12,m21,m22,tx,ty);
	}

	/*if (x_offset<0 || y_offset<0 || (x_offset+width)>texture.width || (y_offset+height)>texture.height)
	{
		dump(x_offset + ' ' + y_offset + ' ' + texture.width + ' ' + texture.height + ' ' + x + ' ' +y + ' ' + width + ' ' + height + '\n');
	}*/

	if (new_sx<0)
	{
		x_pos += new_sx;
		new_sx = -new_sx;
	}
	if (new_sy<0)
	{
		y_pos += new_sy;
		new_sy = -new_sy;
	}

	//ctx_canvas.drawImage(texture,x_offset,y_offset, width, height, x_pos, y_pos , new_sx, new_sy);
	imandreel_ctx_canvas.drawImage(texture,x_offset,y_offset, width, height, 0,0, 1,1);

	if (!simple_draw)
		imandreel_ctx_canvas.restore()
}

function mandreel_internal_UpdateTexture(sp)
{
	if ( imandreel_ctx_canvas == null )
	{
		console.log("Mandreel_2D_UpdateTexture error: canvas context is null");
		return;
	}

	var hw_id = heap32[sp>>2]; sp+=4;
	var dataptr = heap32[sp>>2]; sp+=4;
	var width = heap32[sp>>2]; sp+=4;
	var height = heap32[sp>>2]; sp+=4;

	var imageData = imandreel_ctx_canvas.getImageData(0,0,width,height);
	var data = imageData.data;
	for (var y = 0; y < (height*width*4); ++y)
	{
		data[y] = heapU8[dataptr + y];
	}
	imandreel_ctx_canvas.putImageData(imageData,0,0);

	var dataurl = imandreel_ctx_canvas.canvas.toDataURL();

	var image = new Image();
	image.onerror = function()
	{
		dump('error updating texture '+hw_id+'\n');
    }
	image.onload = function()
	{
		//dump('texture '+hw_id+' updated\n'+'width '+image.width+' height '+image.height);
		array_ids_ogl[hw_id] = image;
	}
	image.src = dataurl;
}

function mandreel_internal_WriteFramebuffer(sp)
{
	if ( imandreel_ctx_canvas == null )
	{
		console.log("Mandreel_2D_UpdateTexture error: canvas context is null");
		return;
	}

	var dataptr = heap32[sp>>2]; sp+=4;
	var width = heap32[sp>>2]; sp+=4;
	var height = heap32[sp>>2]; sp+=4;

	var imageData = imandreel_ctx_canvas.getImageData(0,0,width,height);
	if ( imageData != null )
	{
		var data = imageData.data;
		if ( data != null )
		{
			var size = (height*width*4);
			if ( typeof imageData.data.set != "undefined" )
			{
				var sub = heapU8.subarray(dataptr,dataptr+size);
				imageData.data.set(sub);
			}
			else
			{
				for (var y = 0; y < size; ++y)
				{
					data[y] = heapU8[dataptr + y];
				}
			}

			imandreel_ctx_canvas.putImageData(imageData,0,0);
		}
		else
		{
			dump("WriteFramebuffer canvas data null");
		}
	}
	else
	{
		dump("WriteFramebuffer canvas imageData null");
	}
}
var mandreel_audio_init = null_mandreel_audio;
var mandreel_audio_end = null_mandreel_audio;
var mandreel_audio_update = null_mandreel_audio;
var mandreel_audio_createBuffer = null_mandreel_audio;
var mandreel_audio_playChannel = null_mandreel_audio;
var mandreel_audio_stopChannel = null_mandreel_audio;
var mandreel_audio_setChannelVolume = null_mandreel_audio;
var mandreel_audio_setChannelPan = null_mandreel_audio;
var mandreel_audio_setChannelPitch = null_mandreel_audio;
var mandreel_audio_playMusic = null_mandreel_audio;
var mandreel_audio_stopMusic = null_mandreel_audio;
var mandreel_audio_useMusicFunctions = _mandreel_audio_useMusicFunctions;
var mandreel_audio_checkBuffersPending = null_mandreel_audio;
var mandreel_audio_setMusicVol = null_mandreel_audio;

var mandreel_audio_startedFunction = 0;

var MandreelAudioDriver = "null";

function mandreel_start_audio(audioServer, audioUrl,startedFunction)
{
	mandreel_audio_startedFunction = startedFunction;

	// Check audio driver data availability
	var webAudioDataAvailable = false;
	var flashAudioDataAvailable = false;
	var flashLiteAudioDataAvailable = false;
	var audiotagsDataAvailable = false;
	var FatLines = mandreelFatData.split('\n');
	for ( var i=0;i<FatLines.length;++i )
	{
		var params = FatLines[i].split(',');
		if ( params[0] == "audiodriver" )
		{
			var data = params[1];
			data = data.replace('\r','');
			if ( data == "webaudio" )
				webAudioDataAvailable = true;
			else if ( data == "flash" )
				flashAudioDataAvailable = true;
			else if ( data == "flashlite" )
				flashLiteAudioDataAvailable = true;
			else if ( data == "audiotag" )
				audiotagsDataAvailable = true;
		}
	}


	// Init audio driver
	{
		// webaudio
		if ( webAudioDataAvailable && MandreelAudioDriver == "null" )
		{
			try	{ webAudioContext = new webkitAudioContext(); } catch(err) { webAudioContext = 0; }
			if ( webAudioContext )
			{
				wa_MainAudioDriver();
				MandreelAudioDriver = "webAudio";
			}
		}
		// flash
		if ( flashAudioDataAvailable && MandreelAudioDriver == "null" )
		{
			MandreelAudioDriver = "flash";
			if ( audioServer == null )
			{
				audioServer = "";
				audioUrl = "";
			}
			fl_MainAudioDriver(audioServer,audioUrl);
		}
		// flashlite
		if ( flashLiteAudioDataAvailable && MandreelAudioDriver == "null" )
		{
			MandreelAudioDriver = "flashlite";
			mandreel_flashaudio_lite = true;
			fl_MainAudioDriver("","");
		}
		// audiotags
		if ( audiotagsDataAvailable && MandreelAudioDriver == "null" )
		{
			MandreelAudioDriver = "audiotag";
			at_MainAudioDriver();
		}
		// null
		if ( MandreelAudioDriver == "null" )
		{
			null_MainAudioDriver();
		}
	}
	dump("AudioDriver ("+MandreelAudioDriver+")");
}

function mandreel_audio_isLogEnabled(sp)
{
	r_g0 = 0;
}

function _mandreel_audio_useMusicFunctions(sp)
{
	r_g0 = 0;
}

function MandreelAudioStarted()
{
	setTimeout(mandreel_audio_startedFunction, 10);
}


function mandreel_audio_getAudioDriverName(sp)
{
	var name_ptr = heap32[sp>>2];sp+=4;
	fill_ptr_from_string(name_ptr, MandreelAudioDriver);
}
var webAudioUseMusicFunctions = true;

function wa_mandreel_audio_init(sp)
{
}

function wa_mandreel_audio_end(sp)
{
}

function wa_mandreel_audio_update(sp)
{
}

function wa_mandreel_audio_checkBuffersPending(sp)
{
	r_g0 = wa_imp_mandreel_audio_checkBuffersPending();
}

function wa_mandreel_audio_createBuffer(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var maxChannels = heap32[sp>>2];sp+=4;
	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
	wa_imp_mandreel_audio_createBuffer(fileName);

	r_g0 = 0;
}

function wa_mandreel_audio_playChannel(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var channel = heap32[sp>>2];sp+=4;
	var vol = heapFloat[sp>>2];sp+=4;
	var loop = heap32[sp>>2];sp+=4;
	var pitch = heapFloat[sp>>2];sp+=4;
	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
	wa_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch);
	r_g0 = 0;
}

function wa_mandreel_audio_stopChannel(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var channel = heap32[sp>>2];sp+=4;
	var index = heapFloat[sp>>2];sp+=4;
	wa_imp_mandreel_audio_stopChannel(channel);
}

function wa_mandreel_audio_setChannelVolume(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var vol = heapFloat[sp>>2];sp+=4;
	wa_imp_mandreel_audio_setChannelVolume(channel,vol);
}

function wa_mandreel_audio_setChannelPan(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var pan = heapFloat[sp>>2];sp+=4;
	wa_imp_mandreel_audio_setChannelPan(channel,pan);
}

function wa_mandreel_audio_setChannelPitch(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var pitch = heapFloat[sp>>2];sp+=4;
	wa_imp_mandreel_audio_setChannelPitch(channel,pitch);
}

function wa_mandreel_audio_useMusicFunctions(sp)
{
	r_g0 = webAudioUseMusicFunctions ? 1 : 0;
}

function wa_mandreel_audio_playMusic(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
	wa_imp_mandreel_audio_playMusic(fileName);
}

function wa_mandreel_audio_stopMusic(sp)
{
	wa_imp_mandreel_audio_stopMusic();
}

function wa_mandreel_audio_setMusicVol(sp)
{
	var vol = heapFloat[sp>>2];sp+=4;
	wa_imp_mandreel_audio_setMusicVol(vol);
}

function wa_MainAudioDriver()
{
	mandreel_audio_init = wa_mandreel_audio_init;
	mandreel_audio_end = wa_mandreel_audio_end;
	mandreel_audio_update = wa_mandreel_audio_update;
	mandreel_audio_createBuffer = wa_mandreel_audio_createBuffer;
	mandreel_audio_playChannel = wa_mandreel_audio_playChannel;
	mandreel_audio_stopChannel = wa_mandreel_audio_stopChannel;
	mandreel_audio_setChannelVolume = wa_mandreel_audio_setChannelVolume;
	mandreel_audio_setChannelPan = wa_mandreel_audio_setChannelPan;
	mandreel_audio_setChannelPitch = wa_mandreel_audio_setChannelPitch;
	mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
	mandreel_audio_checkBuffersPending = wa_mandreel_audio_checkBuffersPending;
	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;

	setTimeout("mandreel_webAudio_PreloadAssets()", 10);
}


var webAudioBuffers = new Array();
var webAudioChannels = new Array(32);
var webAudioGain = new Array(32);
var webAudioContext = 0;


function wa_initWebAudio()
{
	if ( preCreatedWebAudioContext != null )
	{
		webAudioContext = preCreatedWebAudioContext;
	}
	else
	{
		try	{ webAudioContext = new webkitAudioContext(); } catch(err) { webAudioContext = 0; }
	}
}

function wa_imp_callfunction(params)
{
	if ( params[0] == "#MandreelAudio" )
	{
		if ( params[1] == "playChannel" )
			wa_imp_mandreel_audio_playChannel(params[2],params[3],params[4],params[5],params[6],params[7]);
		else if ( params[1] == "stopChannel" )
			wa_imp_mandreel_audio_stopChannel(params[2]);
		else if ( params[1] == "setChannelVol" )
			wa_imp_mandreel_audio_setChannelVol(params[2],params[3]);
		else if ( params[1] == "setChannelPan" )
			wa_imp_mandreel_audio_setChannelPan(params[2],params[3]);
		else if ( params[1] == "playMusic" )
			wa_imp_mandreel_audio_playMusic(params[2]);
		else if ( params[1] == "stopMusic" )
			wa_imp_mandreel_audio_stopMusic(params[2]);
		else if ( params[1] == "setMusicVol" )
			wa_imp_mandreel_audio_setMusicVol(params[2]);

		return true;
	}
	return false;
}

function wa_getFileNameNoExt(fileName)
{
	var fileNameNoExt = fileName.toLowerCase();
	var indexDot = fileNameNoExt.lastIndexOf('.');
	if ( indexDot != -1 )
		fileNameNoExt = fileNameNoExt.substr(0,indexDot);
	fileNameNoExt = fileNameNoExt.replace(/\\/g,"/");
	if ( fileNameNoExt.length > 0 )
	{
		if ( fileNameNoExt.charAt(0) == "/" )
		{
			if (fileNameNoExt.length > 1 )
				fileNameNoExt = fileNameNoExt.substr(1,fileNameNoExt.length-1);
			else
				fileNameNoExt = "";
		}
	}
	return fileNameNoExt;
}

var wa_mandreel_cache_audio_files = false;
var wa_mandreel_cache_audio_files_path = '';

function mandreel_webAudio_reloadfile(fileName,callback)
{
	var fileNameNoExt = wa_getFileNameNoExt(fileName);
	var url = wa_mandreel_cache_audio_files_path+fileNameNoExt+".ogg";
	dump("webAudio: loading buffer ("+fileName+") url("+url+")");
	var request = new XMLHttpRequest();
	request.open("GET", url, true);
	request.responseType = "arraybuffer";
	request.onreadystatechange = function()
	{
		if (request.readyState == 4)
		{

			if (request.status == 404) callback(null);

			callback(request.response);

		}
	}
	request.send();
}

Mandreel_window.BlobBuilder = Mandreel_window.MozBlobBuilder || Mandreel_window.WebKitBlobBuilder || Mandreel_window.BlobBuilder;

function mandreel_webaudio_saveFile(name, my_arrayBuffer)
{
	dump('mandreel_webaudio_saveFile ' + name);
	g_mandreel_fs.root.getFile(name, {create: true}, function(fileEntry) {

    // Create a FileWriter object for our FileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {

      fileWriter.onwriteend = function(e) {
        dump('Write completed.');
      };

      fileWriter.onerror = function(e) {
        dump('Write failed: ' + e.toString());
      };

	  var bb = new Mandreel_window.BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
      bb.append(my_arrayBuffer);
      fileWriter.write(bb.getBlob('text/plain'));



    }, function(e) { dump('error 1 mandreel_webaudio_saveFile ' + name);MandreelFsErrorHandler(e) });

  }, function(e) { dump('error 2 mandreel_webaudio_saveFile ' + name);MandreelFsErrorHandler(e) });
}

function mandreel_webaudio_loadFile(name, callback, callback2)
{
	g_mandreel_fs.root.getFile(name, {}, function(fileEntry) {

	fileEntry.file(function(file) {

		var reader = new FileReader();


       reader.onloadend = function(e) {

	   dump('mandreel_fs_loadFile ' + name);
	   if (this.result.byteLength)
		callback(this.result);
	   else
	   callback2(this.result);

       };


	   	reader.readAsArrayBuffer(file);



	}, function(e) { dump('error 1 webaudio_loadFile ' + name);MandreelFsErrorHandler(e) } );

  }, function(e) { dump('error 2 webaudio_loadFile ' + name);MandreelFsErrorHandler(e) } );
}


function mandreel_webAudio_cacheFile(fileName, callback)
{
	if (!g_mandreel_fs)
	{
		mandreel_webAudio_reloadfile(fileName, callback);

		return;
	}
	fileName = fileName.toLowerCase();

	fileName = fileName.replace(/\\/g,"/");

	if (fileName[0] == '/')
		fileName = fileName.substring(1);

	dump('chanka name ' + fileName);

	g_mandreel_fs.root.getFile(fileName, {}, function(fileEntry) {

	fileEntry.getMetadata(function(metaData){
	var my_seconds = metaData.modificationTime.getTime()/1000;

	if (g_mandreel_timestamp_fs>my_seconds)
	{
		dump('mandreel_webAudio_cacheFile1 ');
		fileEntry.remove(function() {
				mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );
			}, function(e) { dump('error 1 mandreel_webAudio_cacheFile ' + fileName);MandreelFsErrorHandler(e); mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );});

	}
	else
	{
		//alert('mandreel_fscachefile2');
		dump('mandreel_webAudio_cacheFile2');
		mandreel_webaudio_loadFile(fileName, function(response) { callback(response);  } ,
		function() {
				mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );
			}
		);



	}


		}, function(e) { dump('error 2 mandreel_webAudio_cacheFile ' + fileName);MandreelFsErrorHandler(e) });


  }, function(error) {dump('mandreel_webAudio_cacheFile3');	mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); });});
}

function mandreel_webAudio_queueLoadBuffer(fileName, callback)
{
	//dump("mandreel_webAudio_queueLoadBuffer "+fileName);
	if ( webAudioContext )
	{
		var fileNameNoExt = wa_getFileNameNoExt(fileName);
		var buffer = webAudioBuffers[fileNameNoExt];
		if ( buffer == null && buffer != "invalid" )
		{
			if ( fileNameNoExt != "" )
			{
				if (wa_mandreel_cache_audio_files == true)
				{
					webAudioBuffers[fileNameNoExt] = "invalid";

					mandreel_webAudio_cacheFile(fileName, function(response) {

						if (callback != null)
							callback();

						if ( response != null )
							webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(response, false);
						else
							webAudioBuffers[fileNameNoExt] = "invalid";
					} );
					return;
				}

				var url = g_mandreel_working_folder+fileNameNoExt+".ogg";
				dump("webAudio: loading buffer ("+fileName+") url("+url+")");
				webAudioBuffers[fileNameNoExt] = "invalid";
				var request = new XMLHttpRequest();
				request.open("GET", url, true);
				request.responseType = "arraybuffer";
				request.onreadystatechange = function()
				{
					if (request.readyState == 4)
					{
						if (callback != null)
							callback();

						if (request.status == 404) return;
						//dump("webAudio: loaded buffer "+request.status);
						if ( request.response != null )
							webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(request.response, false);
						else
							webAudioBuffers[fileNameNoExt] = "invalid";
					}
				}
				request.send();
			}
			else
				webAudioBuffers[fileNameNoExt] = "invalid";
		}
	}
}

var webAudioPreloadAudioFiles = new Array();
var webAudioPreloadBytes = null;
var webAudioPreloadCurrentFile = 0;
var webAudioPreloadAsync = false;

function webAudioParsePreloadFile(response)
{
	var pos = 4;
	var bytes = new Uint8Array(response);
	var i = 0;
	if ( webAudioPreloadAsync )
		webAudioPreloadBytes = bytes;
	while ( pos < bytes.byteLength )
	{
		// filename
		var fileName = "";
		while ( bytes[pos] != 0 )
		{
			fileName += String.fromCharCode(bytes[pos]);
			pos++;
		}
		pos++;
		// filesize
		var filesize = bytes[pos] | (bytes[pos+1]<<8) | (bytes[pos+2]<<16) | (bytes[pos+3]<<24);
		pos += 4;

		// contents
		var fileNameNoExt = wa_getFileNameNoExt(fileName);
		if ( webAudioPreloadAsync )
		{
			var audioFile =
			{
				fileName : fileNameNoExt,
				fileSize : filesize,
				position : pos
			};
			webAudioPreloadAudioFiles[i] = audioFile;
		}
		else
		{
			var bufferdata = new Uint8Array(filesize);
			bufferdata.set(bytes.subarray(pos,pos+filesize));
			webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(bufferdata.buffer, false);
			dump("preload audio file ("+fileName+")");
		}

		pos += filesize;
		i++;
	}
	if ( webAudioPreloadAsync )
	{
		dump("started preloading audio files async");
		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
	}
}

function mandreel_webAudio_preloadNextAudioFile()
{
	if ( webAudioPreloadAudioFiles.length > webAudioPreloadCurrentFile )
	{
		var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
		if ( audioFile.fileName == null )
		{
			webAudioPreloadCurrentFile++;
			setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
		}
		else
		{
			var bufferdata = new Uint8Array(audioFile.fileSize);
			bufferdata.set(webAudioPreloadBytes.subarray(audioFile.position,audioFile.position+audioFile.fileSize));
			dump("async preload audio file ("+audioFile.fileName+")");
			webAudioContext.decodeAudioData(bufferdata.buffer,mandreel_webAudio_preloadNextAudioFileOK,mandreel_webAudio_preloadNextAudioFileError);
		}
	}
	else
	{
		webAudioPreloadAudioFiles = null;
		webAudioPreloadBytes = null;
		dump("finished preloading audio files async");
	}
}

function mandreel_webAudio_preloadNextAudioFileOK(audioBuffer)
{
	var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
	webAudioPreloadCurrentFile++;
	if ( audioFile.fileName != null )
	{
		webAudioBuffers[audioFile.fileName] = audioBuffer;
		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
	}
}

function mandreel_webAudio_preloadNextAudioFileError()
{
	var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
	webAudioPreloadCurrentFile++;
	if ( audioFile.fileName != null )
		dump("FAILED async preload audio file ("+audioFile.fileName+")");
	setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
}

function mandreel_webAudio_queueLoadPackedBuffers(fileName, callback)
{
	if ( webAudioContext )
	{
		// TODO
		/*if (wa_mandreel_cache_audio_files == true)
		{
			webAudioBuffers[fileNameNoExt] = "invalid";

			mandreel_webAudio_cacheFile(fileName, function(response) {

				if (callback != null)
					callback();

				if ( response != null )
					webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(response, true);
				else
					webAudioBuffers[fileNameNoExt] = "invalid";
			} );
			return;
		}*/

		mandreel_fs_load_binary(fileName, function mandreel_webAudio_queueLoadPackedBuffers_cb(data){

		if (data)
		{
			if (callback != null)
				callback();
			webAudioParsePreloadFile(data);
		}
		else
		{
			var url = g_mandreel_working_folder+fileName;
			dump("webAudio: loading preload buffers ("+fileName+") url("+url+")");
			var request = new XMLHttpRequest();
			request.open("GET", url, true);
			request.responseType = "arraybuffer";
			var last_loaded_size = 0;
			request.onreadystatechange = function()
			{
				if (request.readyState == 4)
				{
					if (callback != null)
						callback();

					if (request.status == 404)
						return;
					if ( request.response != null )
					{
						mandreel_fs_saveFile(fileName, request.response);
						webAudioParsePreloadFile(request.response);
					}
				}
			}
			request.onprogress = function(e)
			{
				var delta_size = e.loaded - last_loaded_size;
				last_loaded_size = e.loaded;

				imandreel_update_load(delta_size,0);

				var percentage = ((100*e.loaded)/mandreel_total_pogfile_size)|0;

				if (percentage>100)
					percentage = 100;

				if ( mandreelAppStartStateFunc )
					mandreelAppStartStateFunc("loadingAudioUpdate",percentage);
			}
			request.send();
		}
		});
	}
}



var wa_mandreel_audio_buffers_num = 0;
var wa_mandreel_audio_buffers_loaded = 0;

function wa_imp_mandreel_audio_checkBuffersPending()
{
	return wa_mandreel_audio_buffers_num - wa_mandreel_audio_buffers_loaded;
}

function wa_imp_mandreel_audio_createBuffer(fileName)
{
	if ( webAudioContext )
	{
		var fileNameNoExt = wa_getFileNameNoExt(fileName);
		var buffer = webAudioBuffers[fileNameNoExt];
		if ( buffer == null && buffer != "invalid" )
		{
			wa_mandreel_audio_buffers_num++;
			mandreel_webAudio_queueLoadBuffer(fileName, function () {wa_mandreel_audio_buffers_loaded++;});
		}
	}
}

function wa_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch)
{
	if ( webAudioContext )
	{
		var fileNameNoExt = wa_getFileNameNoExt(fileName);
		var buffer = webAudioBuffers[fileNameNoExt];
		if ( buffer == null || buffer == "invalid" )
		{
			if ( webAudioPreloadAudioFiles != null )
			{
				var i = 0;
				while ( i < webAudioPreloadAudioFiles.length )
				{
					var audioFile = webAudioPreloadAudioFiles[i];
					if ( audioFile.fileName == fileNameNoExt )
					{
						var bufferdata = new Uint8Array(audioFile.fileSize);
						bufferdata.set(webAudioPreloadBytes.subarray(audioFile.position,audioFile.position+audioFile.fileSize));
						webAudioBuffers[audioFile.fileName] = webAudioContext.createBuffer(bufferdata.buffer, false);
						dump("**** preload audio file ("+audioFile.fileName+"), forced by playChannel");
						audioFile.fileName = null;
						i = webAudioPreloadAudioFiles.length;
					}
					else
					{
						++i;
					}
				}
			}
		}
		if ( buffer == null || buffer == "invalid" )
		{
			mandreel_webAudio_queueLoadBuffer(fileName);
			buffer = webAudioBuffers[fileNameNoExt];
		}
		if ( buffer != null && buffer != "invalid" )
		{
			var chn = webAudioContext.createBufferSource();
			var gain = webAudioContext.createGainNode();
			if ( chn && gain )
			{
				webAudioChannels[channel] = chn;
				webAudioGain[channel] = gain;
				chn.buffer = buffer;
				chn.connect(gain);
				gain.connect(webAudioContext.destination);
				var bLoop = loop != 0;
				chn.loop = bLoop;
				gain.gain.value = vol;
				chn.playbackRate.value = pitch;
				chn.noteOn(0);
				//dump("webAudio: PlayChannel "+channel+" "+fileName+" "+vol+" "+bLoop+" "+pitch);
			}
		}
	}
}

function wa_imp_mandreel_audio_stopChannel(channel)
{
	if ( webAudioContext )
	{
		var chn = webAudioChannels[channel];
		if ( chn != null )
		{
			//dump("webAudio: StopChannel "+channel);
			chn.noteOff(0);
			webAudioChannels[channel] = null;
			webAudioGain[channel] = null;
		}
	}
}

function wa_imp_mandreel_audio_setChannelVolume(channel,vol)
{
	if ( webAudioContext )
	{
		var gain = webAudioGain[channel];
		if ( gain != null )
			gain.gain.value = vol;
	}
}

function wa_imp_mandreel_audio_setChannelPan(channel,pan)
{
	if ( webAudioContext )
	{
	}
}

function wa_imp_mandreel_audio_setChannelPitch(channel,pitch)
{
	if ( webAudioContext )
	{
		var chn = webAudioChannels[channel];
		if ( chn != null )
		{
			chn.playbackRate.value = pitch;
		}
	}
}

var mwebAudioPreloadState = "start";
//var mwebAudioPreloadRequest = 0;
var mwebAudioPreloadAssets = 0;
var mwebAudioCurrentPreloadAsset = 0;
var mwebAudioAsyncFiles = '';
var mwebListAudioAsyncFiles ='';
var mwebListAudioAsyncFilesPos = 0;
var mwebTotalPreloadingFiles = 0;
var mwebCurrentPreloadingFiles = 0;
function mwebCallbackAsync()
{
	mwebListAudioAsyncFilesPos++;
	if ( mwebListAudioAsyncFilesPos >= mwebListAudioAsyncFiles.length )
	{
		mwebListAudioAsyncFiles = null;
		mwebAudioAsyncFiles = null;
		return;
	}

	setTimeout("mandreel_webAudio_queueLoadBuffer(mwebListAudioAsyncFiles[mwebListAudioAsyncFilesPos], mwebCallbackAsync);",10);
}

function mwebCallbackAsyncPreload()
{
	mwebCurrentPreloadingFiles++;
}

function mandreel_webAudio_PreloadAssets()
{
	/*if ( mwebAudioPreloadState == "start" )
	{
		//dump("webaudio start");
			mwebAudioPreloadRequest = new XMLHttpRequest();
			var url = g_mandreel_working_folder+"mandreel.fat.dat";
			mwebAudioPreloadRequest.open("GET", url, true);
			mwebAudioPreloadRequest.onreadystatechange = function()
			{
				if (mwebAudioPreloadRequest.readyState != 4) return;
				if ( mwebAudioPreloadRequest.status != 404 && mwebAudioPreloadRequest.response != null )
					mwebAudioPreloadState = "parseFat";
				else
				{
					mwebAudioPreloadState = "done";
					dump("error pre-loading audio assets, status("+mwebAudioPreloadRequest.status+")");
				}
			}
			mwebAudioPreloadState = "loadingFat";
			mwebAudioPreloadRequest.send();
	}
	else if ( mwebAudioPreloadState == "parseFat" )*/
	if ( mwebAudioPreloadState == "start" )
	{
		//mwebAudioPreloadAssets = mwebAudioPreloadRequest.response.split('\n');
		//mwebAudioPreloadRequest = 0;
		mwebAudioPreloadAssets = mandreelFatData.split('\n');
		mwebAudioCurrentPreloadAsset = 0;
		mwebAudioPreloadState = "preloading";
	}
	else if ( mwebAudioPreloadState == "preloading" )
	{
		//dump("webaudio preloading");
		var queued = false;
		while ( !queued && mwebAudioPreloadState != "done" )
		{
			if ( mwebAudioCurrentPreloadAsset < mwebAudioPreloadAssets.length )
			{
				var params = mwebAudioPreloadAssets[mwebAudioCurrentPreloadAsset].split(',');
				if ( params[0] == "audiofile" && params[1])
				{
					var sync_load = true;
					if (params[2] && (params[2]&1) == 0)
						sync_load = false;

					if (sync_load)
					{
						mandreel_webAudio_queueLoadBuffer(params[1],mwebCallbackAsyncPreload);
						mwebTotalPreloadingFiles++;
						queued = true;
					}

				}
				else if ( params[0] == "audiopreloadfile" )
				{
					mandreel_webAudio_queueLoadPackedBuffers(params[1],mwebCallbackAsyncPreload);
					var size_pog_file = parseInt(params[2], 10);
					mandreel_total_pogfile_size = size_pog_file;
					mwebTotalPreloadingFiles++;
					queued = true;
				}
				else if ( params[0] == "audiopreloadasync" )
				{
					webAudioPreloadAsync = true;
				}
				mwebAudioCurrentPreloadAsset++;
			}
			else
				queued = true;

			if ( mwebAudioCurrentPreloadAsset >= mwebAudioPreloadAssets.length )
			{
				if (mwebCurrentPreloadingFiles == mwebTotalPreloadingFiles)
				{
					mwebAudioPreloadState = "done";
					mwebAudioPreloadAssets = 0;
				}
			}
		}
	}

	if ( mwebAudioPreloadState == "done" )
	{
		if ( mandreelAppPlatform == "nacl" )
			setTimeout("MandreelAudioStartedNacl()", 10);
		else
			setTimeout("MandreelAudioStarted()", 10);
	}
	else
		setTimeout("mandreel_webAudio_PreloadAssets()", 10);
}

var wa_mandreelMusicElement = null;
var wa_mandreelMusicElementFilename = "";
var wa_mandreelMusicElementVolume = 1.0;
function wa_imp_mandreel_audio_playMusic(fileName)
{
	var fileNameNoExt = wa_getFileNameNoExt(fileName);
	var fileNameFull = g_mandreel_working_folder + fileNameNoExt + ".ogg";

	if ( wa_mandreelMusicElementFilename != fileNameFull )
	{
		wa_imp_mandreel_audio_stopMusic(0);
		var audio = document.createElement("audio");
		var type = fileNameFull.slice(fileNameFull.lastIndexOf(".")+1);
		switch(type){
			case "mp3" : type = "mpeg"; break;
			case "ogg" : type = "ogg"; break;
			case "wav" : type = "wav"; break;
			default : throw("'" + fileNameFull + "' is not a recognized audio file");
		}

		// set correct id for lookup, loading method and data types
		audio.setAttribute("type", "audio/" + type);
		var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
		if ( is_chrome )
			audio.setAttribute("loop", "loop");
		else
			audio.addEventListener('ended', function(){this.currentTime = 0;}, false);
		audio.volume = wa_mandreelMusicElementVolume;
		audio.setAttribute("autoplay", "true");
		audio.setAttribute("src", fileNameFull);


		// include into list and document
		document.body.appendChild(audio);
		wa_mandreelMusicElement = audio;
		wa_mandreelMusicElementFilename = fileNameFull;
	}
}

function wa_imp_mandreel_audio_stopMusic()
{
	if ( wa_mandreelMusicElement != null )
	{
		document.body.removeChild(wa_mandreelMusicElement);
		wa_mandreelMusicElement = null;
		wa_mandreelMusicElementFilename = "";
	}
}

function wa_imp_mandreel_audio_setMusicVol(vol)
{
	wa_mandreelMusicElementVolume = vol;
	if ( wa_mandreelMusicElement != null )
	{
		wa_mandreelMusicElement.volume = wa_mandreelMusicElementVolume;
	}
}

var mandreel_audio_stream_func_ptr = 0;
function mandreel_audio_stream_process(e)
{
	var l = e.outputBuffer.getChannelData(0);
	var l2 = e.outputBuffer.getChannelData(1);
	var n = e.outputBuffer.length;

	var offset2 = 0;
	var inc = 44.1 / 48.0;
	while ( n > 0 )
	{
		var n2 = ((n*inc)|0)/4;
		if ( n2 > 1024 )
			n2 = 1024;

		var sp = g_stack_pointer+100*1024;
		var ptr = g_stack_pointer+200*1024;
		var _sp = sp>>2;
		heap32[_sp]=ptr;
		heap32[_sp+1]=n2*4;
		__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);

		var offset = ptr>>2;
		var size = n2*4;
		/*for (var i=0;i<size;++i)
		{
			l[i+offset2] = heapFloat[offset+(i*2)];
			l2[i+offset2] = heapFloat[offset+(i*2)+1];
		}*/
		var i = 0;
		var j = 0;
		while ( i < size )
		{
			l[j+offset2] = heapFloat[offset+((i|0)*2)];
			l2[j+offset2] = heapFloat[offset+((i|0)*2)+1];
			i += inc;
			j++;
		}

		//offset2 += n2*4;
		//n -= n2*4;
		offset2 += j;
		n -= j;
	}
}

function mandreel_Audio_requestSoundData(soundData)
{
	var n = soundData.length/2;
	var offset2 = 0;
	while ( n > 0 )
	{
		var n2 = n;
		if ( n2 > 1024 )
			n2 = 1024;
		var sp = g_stack_pointer+100*1024;
		var ptr = g_stack_pointer+200*1024;
		var _sp = sp>>2;
		heap32[_sp]=ptr;
		heap32[_sp+1]=n2;
		__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);

		var offset = ptr>>2;
		var size = n2*2;
		var buf = heapFloat.subarray(offset,offset+size);
		soundData.set(buf,offset2);
		/*for (var i=0; i<size; i++)
		  soundData[i+offset2] = heapFloat[offset+i];*/
		offset2 += n2*2;
		n -= n2;
	}
 }

var __Mandreel_Audio_CreateStream_created = false;
function Mandreel_Audio_CreateStream(sp)
{
	if ( !__Mandreel_Audio_CreateStream_created )
	{
		if (webAudioContext)
		{
			mandreel_audio_stream_func_ptr = heap32[sp>>2];
			var source =  webAudioContext.createJavaScriptNode(1024*4, 0, 2);
			source.connect(webAudioContext.destination);
			source.onaudioprocess = mandreel_audio_stream_process;
		}
		else
		{
			mandreel_audio_stream_func_ptr = heap32[sp>>2];
			AudioDataDestination(44100,mandreel_Audio_requestSoundData);
		}
		__Mandreel_Audio_CreateStream_created = true;
	}
}
function mandreel_webAudio_dummyStream()
{
	var sp = g_stack_pointer+100*1024;
	var ptr = g_stack_pointer+200*1024;
	var _sp = sp>>2;
	heap32[_sp]=ptr;
	heap32[_sp+1]=4096;
	__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);
	setTimeout("mandreel_webAudio_dummyStream()",10);
}

function AudioDataDestination(sampleRate, readFn)
{
	// Initialize the audio output.
	var audio = new Audio();
	if ( audio.mozSetup == null )
	{
		setTimeout("mandreel_webAudio_dummyStream()",10);
		return;
	}
	audio.mozSetup(2, sampleRate);

	var currentWritePosition = 0;
	var prebufferSize = sampleRate / 2; // buffer 500ms
	var tail = null, tailPosition;

	// The function called with regular interval to populate
	// the audio output buffer.
	setInterval(function() {
	  var written;
	  // Check if some data was not written in previous attempts.
	  if(tail) {
		written = audio.mozWriteAudio(tail.subarray(tailPosition));
		currentWritePosition += written;
		tailPosition += written;
		if(tailPosition < tail.length) {
		  // Not all the data was written, saving the tail...
		  return; // ... and exit the function.
		}
		tail = null;
	  }

	  // Check if we need add some data to the audio output.
	  var currentPosition = audio.mozCurrentSampleOffset();
	  var available = currentPosition + prebufferSize - currentWritePosition;
	  if(available > 0) {
		// Request some sound data from the callback function.
		var soundData = new Float32Array(available);
		readFn(soundData);

		// Writting the data.
		written = audio.mozWriteAudio(soundData);
		if(written < soundData.length) {
		  // Not all the data was written, saving the tail.
		  tail = soundData;
		  tailPosition = written;
		}
		currentWritePosition += written;
	  }
	}, 100);
}
var mandreel_flashaudio_server = "";
var mandreel_flashaudio_lite = false;
var mandreel_flashaudio_musicaudiotag = true;

function as3Error(str)
{
	var params = str.split(' ');
	if ( params[0] == "createdBuffer" )
		mandreel_audio_flash_lastBufferCreatedSwf = parseInt(params[1]);
	dump("as3Log: "+str);
}

function mandreel_audio_getFlashMovieObject(movieName)
{
	if (Mandreel_window.document[movieName])
	{
		return Mandreel_window.document[movieName];
	}
	if (navigator.appName.indexOf("Microsoft Internet")==-1)
	{
		if (document.embeds && document.embeds[movieName])
			return document.embeds[movieName];
	}
	else
	{
		return document.getElementById(movieName);
	}
}

function mandreel_sendmsg_flash(msg)
{
	if ( mandreel_flashaudio_server != "" )
	{
		var iframeWin = document.getElementById("ninja-iframe").contentWindow;
		iframeWin.postMessage(msg,mandreel_flashaudio_server);
	}
	else
	{
		var flashMovie=mandreel_audio_getFlashMovieObject("FlashDivAudio");
		if ( flashMovie != null )
			flashMovie.receiveMessage(msg);
		else
			dump("error: flashMovie not found");
	}
}

function fl_mandreel_audio_init(sp)
{
	mandreel_sendmsg_flash("init "+g_mandreel_working_folder);
}

function fl_mandreel_audio_end(sp)
{
}

function fl_mandreel_audio_update(sp)
{
}

function mandreel_flashaudiolite_createBuffer(fileName)
{
	mandreel_audio_flash_lastBufferCreated++;
	mandreel_sendmsg_flash("createBuffer "+wa_getFileNameNoExt(fileName)+" "+mandreel_audio_flash_lastBufferCreated);
}

var mandreel_audio_flash_lastBufferCreated = 0;
function fl_mandreel_audio_createBuffer(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
	mandreel_flashaudiolite_createBuffer(fileName);
}

function fl_internal_mandreel_audio_checkBuffersPending()
{
	return mandreel_flashaudio_lite && (mandreel_audio_flash_lastBufferCreatedSwf != mandreel_audio_flash_lastBufferCreated);
}

var mandreel_audio_flash_lastBufferCreatedSwf = 0;
function fl_mandreel_audio_checkBuffersPending(sp)
{
	r_g0 = 0;
	if ( fl_internal_mandreel_audio_checkBuffersPending() )
		r_g0 = 1;
	dump("fl_mandreel_audio_checkBuffersPending ("+r_g0+") ("+mandreel_audio_flash_lastBufferCreatedSwf+") ("+mandreel_audio_flash_lastBufferCreated+")");
}


function fl_mandreel_audio_playChannel(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var channel = heap32[sp>>2];sp+=4;
	var vol = heapFloat[sp>>2];sp+=4;
	var loop = heap32[sp>>2];sp+=4;
	var pitch = heapFloat[sp>>2];sp+=4;
	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
	mandreel_sendmsg_flash("playChannel "+fileName+" "+channel+" "+loop+" "+vol+" "+pitch);
	r_g0 = 0;
}

function fl_mandreel_audio_stopChannel(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var channel = heap32[sp>>2];sp+=4;
	var index = heapFloat[sp>>2];sp+=4;

	mandreel_sendmsg_flash("stopChannel "+channel);
}

function fl_mandreel_audio_setChannelVolume(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var vol = heapFloat[sp>>2];sp+=4;

	mandreel_sendmsg_flash("setChannelVolume "+channel+" "+vol);
}

function fl_mandreel_audio_setChannelPan(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var pan = heapFloat[sp>>2];sp+=4;
	mandreel_sendmsg_flash("setChannelPan "+channel+" "+pan);
}

function fl_mandreel_audio_setChannelPitch(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var pitch = heapFloat[sp>>2];sp+=4;
	mandreel_sendmsg_flash("setChannelPitch "+channel+" "+pitch);
}


function mandreel_audio_load_flash()
{
	var failed = "";


	try
	{
		var mandreelAudioSwf = g_mandreel_working_folder+"mandreelaudio.swf";
		if ( mandreel_flashaudio_lite )
			mandreelAudioSwf = g_mandreel_working_folder+"mandreelaudiolite.swf";
		var swf = swfobject.createSWF({ data:mandreelAudioSwf, width:"0", height:"0", allowScriptAccess:"always" }, { menu:"false" }, "FlashDivAudio");
		if ( !swf )
			failed  = "swfobject.js not avaiable or Unable to open "+mandreelAudioSwf;
	}
	catch(err)
	{
		failed  = err;
	}

	if (failed == "" && !swfobject.hasFlashPlayerVersion("9.0.0"))
		failed = "flash player not found";

	if ( failed != "" )
	{
		dump("Failed to create flash audio driver ("+failed+"). Null driver will be used.");
		MandreelAudioDriver = "null";
		null_MainAudioDriver();
	}
}

function fl_MainAudioDriver(audioServer, audioUrl)
{
	mandreel_flashaudio_server = audioServer;
	if ( mandreel_flashaudio_lite )
		mandreel_flashaudio_server = "";
	if ( mandreel_flashaudio_server != "" )
	{
		Mandreel_window.addEventListener("message", receiveMessage2, false);
		var el = document.createElement("iframe");
		el.setAttribute('id', 'ninja-iframe');
		el.setAttribute('width', '0');
		el.setAttribute('height', '0');
		el.setAttribute('frameborder', '0');
		document.body.appendChild(el);
		el.onerror = function(message) { alert(message); };
		el.setAttribute('src', audioServer+audioUrl+"/MandreelAudio.html");
		setTimeout("CheckNinjaFrameReady()", 1000);
	}
	else
	{
		setTimeout("mandreel_audio_load_flash()", 10);
	}
}
var ninjaLoaded = false;
function CheckNinjaFrameReady()
{
	try
	{
		mandreel_sendmsg_flash("loadFlash");
	}
	catch(err)
	{
	}
	if ( !ninjaLoaded )
		setTimeout("CheckNinjaFrameReady()", 1000);
}

function fl_map_mandreel_audio_functions()
{
	mandreel_audio_init = fl_mandreel_audio_init;
	mandreel_audio_end = fl_mandreel_audio_end;
	mandreel_audio_update = fl_mandreel_audio_update;
	mandreel_audio_createBuffer = fl_mandreel_audio_createBuffer;
	mandreel_audio_playChannel = fl_mandreel_audio_playChannel;
	mandreel_audio_stopChannel = fl_mandreel_audio_stopChannel;
	mandreel_audio_setChannelVolume = fl_mandreel_audio_setChannelVolume;
	mandreel_audio_setChannelPan = fl_mandreel_audio_setChannelPan;
	mandreel_audio_setChannelPitch = fl_mandreel_audio_setChannelPitch;
	if ( mandreel_flashaudio_musicaudiotag )
	{
		mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
		mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
		mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
		mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
	}
	else
		dump("WARNING: flash music functions not supported");
	mandreel_audio_checkBuffersPending = fl_mandreel_audio_checkBuffersPending;
}

function receiveMessage2(event)
{
	ninjaLoaded = true;
	fl_map_mandreel_audio_functions();
	setTimeout("MandreelAudioStarted()", 10);
}

function mandreel_flashlite_checkPreloadFinished()
{
	if ( !fl_internal_mandreel_audio_checkBuffersPending() )
		MandreelAudioStarted();
	else
		setTimeout("mandreel_flashlite_checkPreloadFinished()", 10);
}

function mandreel_flashlite_startPreload()
{
	mandreel_sendmsg_flash("init "+g_mandreel_working_folder);
	// preload sounds
	var FatLines = mandreelFatData.split('\n');
	for ( var i=0;i<FatLines.length;++i )
	{
		var params = FatLines[i].replace('\r','').split(',');
		if ( params[0] == "audiofile" && params[1] )
		{
			var sync_load = true;
			if (params[2] && (params[2]&1) == 0)
				sync_load = false;

			if (sync_load)
			{

				mandreel_flashaudiolite_createBuffer(params[1]);
			}
		}
	}
	setTimeout("mandreel_flashlite_checkPreloadFinished()", 10);
}

function flashReady()
{
	fl_map_mandreel_audio_functions();
	setTimeout("mandreel_flashlite_startPreload()",10);
}

function null_mandreel_audio(sp)
{
	r_g0 = 0;
}

function null_MainAudioDriver()
{
	mandreel_audio_init = null_mandreel_audio;
	mandreel_audio_end = null_mandreel_audio;
	mandreel_audio_update = null_mandreel_audio;
	mandreel_audio_createBuffer = null_mandreel_audio;
	mandreel_audio_playChannel = null_mandreel_audio;
	mandreel_audio_stopChannel = null_mandreel_audio;
	mandreel_audio_setChannelVolume = null_mandreel_audio;
	mandreel_audio_setChannelPan = null_mandreel_audio;
	mandreel_audio_setChannelPitch = null_mandreel_audio;
	mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
	setTimeout("MandreelAudioStarted()", 10);
}
function at_mandreel_audio_init(sp)
{
}

function at_mandreel_audio_end(sp)
{
}

function at_mandreel_audio_update(sp)
{
	for ( i = 0 ; i < 32 ; ++i )
	{
		var end = maudioChannelEnd[i];
		if ( end != null )
		{
			var sound = maudiotagChannels[i];
			if ( sound != null )
			{
				if ( sound.currentTime > end )
				{
					sound.pause();
					maudioChannelEnd[i] = null;
				}
			}
		}
	}
}

function at_mandreel_audio_checkBuffersPending(sp)
{
	r_g0 = 0;//wa_imp_mandreel_audio_checkBuffersPending();
}

function at_mandreel_audio_createBuffer(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var maxChannels = heap32[sp>>2];sp+=4;
	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
	//wa_imp_mandreel_audio_createBuffer(fileName);

	r_g0 = 0;
}

function at_mandreel_audio_playChannel(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var channel = heap32[sp>>2];sp+=4;
	var vol = heapFloat[sp>>2];sp+=4;
	var loop = heap32[sp>>2];sp+=4;
	var pitch = heapFloat[sp>>2];sp+=4;
	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
	at_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch);
	r_g0 = 0;
}

function at_mandreel_audio_stopChannel(sp)
{
	var ptr_fileName = heap32[sp>>2];sp+=4;
	var channel = heap32[sp>>2];sp+=4;
	var index = heapFloat[sp>>2];sp+=4;
	at_imp_mandreel_audio_stopChannel(channel);
}

function at_mandreel_audio_setChannelVolume(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var vol = heapFloat[sp>>2];sp+=4;
	//wa_imp_mandreel_audio_setChannelVolume(channel,vol);
}

function at_mandreel_audio_setChannelPan(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var pan = heapFloat[sp>>2];sp+=4;
	//wa_imp_mandreel_audio_setChannelPan(channel,pan);
}

function at_mandreel_audio_setChannelPitch(sp)
{
	var channel = heap32[sp>>2];sp+=4;
	var pitch = heapFloat[sp>>2];sp+=4;
	//wa_imp_mandreel_audio_setChannelPitch(channel,pitch);
}

function at_mandreel_audio_useMusicFunctions(sp)
{
	r_g0 = 1;
}

function at_MainAudioDriver()
{
	mandreel_audio_init = at_mandreel_audio_init;
	mandreel_audio_end = at_mandreel_audio_end;
	mandreel_audio_update = at_mandreel_audio_update;
	mandreel_audio_createBuffer = at_mandreel_audio_createBuffer;
	mandreel_audio_playChannel = at_mandreel_audio_playChannel;
	mandreel_audio_stopChannel = at_mandreel_audio_stopChannel;
	mandreel_audio_setChannelVolume = at_mandreel_audio_setChannelVolume;
	mandreel_audio_setChannelPan = at_mandreel_audio_setChannelPan;
	mandreel_audio_setChannelPitch = at_mandreel_audio_setChannelPitch;
	mandreel_audio_useMusicFunctions = at_mandreel_audio_useMusicFunctions;
	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
	mandreel_audio_checkBuffersPending = at_mandreel_audio_checkBuffersPending;
	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;

	setTimeout("mandreel_audiotag_PreloadAssets()", 10);
}

var maudiotagPreloadState = "start";
var maudiotagPreloadAssets = 0;
var maudiotagCurrentPreloadAsset = 0;
var maudiotagPreloadAsync = false;
var maudiotagDurations = Array();
var maudiotagChannelsCreated = 0;
var maudiotagChannels = Array();
var maudiotagChannelsLoaded = Array();
var maudiotagAudioSpriteFound = false;
var maudiotagAvailableChannels = new Array();
var maudioSecondsPos = new Array();
var maudioChannelEnd = new Array();

function mandreel_audiotag_PreloadAssets()
{
	if ( maudiotagPreloadState == "start" )
	{
		maudiotagPreloadAssets = mandreelFatData.split('\n');
		maudiotagCurrentPreloadAsset = 0;
		maudiotagPreloadState = "preloading";
	}
	else if ( maudiotagPreloadState == "preloading" )
	{
		var queued = false;
		while ( !queued && maudiotagPreloadState != "done" )
		{
			if ( maudiotagCurrentPreloadAsset < maudiotagPreloadAssets.length )
			{
				var params = maudiotagPreloadAssets[maudiotagCurrentPreloadAsset].split(',');
				if ( params[0] == "audiofile" && params[1])
				{
					var duration = params[3];
					var fileNameNoExt = wa_getFileNameNoExt(params[1]);
					maudiotagDurations[fileNameNoExt] = duration|0;
					dump("audiotag duration ("+params[1]+") "+duration);
				}
				else if ( params[0] == "audiotagfile" )
				{
					var type = params[1];
					var filesize = params[3];
					var numsounds = params[4];
					var at = new Audio();
					if ( !maudiotagAudioSpriteFound && at.canPlayType && at.canPlayType("audio/"+type) != "" )
					{
						maudiotagLoadPackFile(params[2],filesize,numsounds,type);
						maudiotagAudioSpriteFound = true;
						queued = true;
					}
				}
				else if ( params[0] == "audiopreloadasync" )
				{
					maudiotagPreloadAsync = true;
				}
				maudiotagCurrentPreloadAsset++;
			}
			else
				queued = true;

			if ( maudiotagCurrentPreloadAsset >= maudiotagPreloadAssets.length )
			{
				maudiotagPreloadState = "done";
				maudiotagPreloadAssets = 0;
			}
		}
	}

	if ( maudiotagPreloadState == "done" )
	{
		setTimeout("MandreelAudioStarted()", 10);
	}
	else
		setTimeout("mandreel_audiotag_PreloadAssets()", 10);
}

function maudiotagLoadPackFile(filename,filesize,numsounds,atype)
{
	dump("audiotag packfile ("+filename+") ("+filesize+") ("+numsounds+")");
	var url = g_mandreel_working_folder+filename;
	dump("audiotag: loading packed data ("+filename+") url("+url+")");
	var request = new XMLHttpRequest();
	request.open("GET", url, true);
	request.responseType = "arraybuffer";
	request.onreadystatechange = function()
	{
		if (request.readyState == 4)
		{
			if (request.status == 404)
				return;
			if ( request.response != null )
				audiotagParsePreloadFile(request.response,numsounds,atype);
		}
	}
	request.send();
}

function audiotagParsePreloadFile(response,numsounds,atype)
{
	var pos = 0;
	var bytes = new Uint8Array(response);
	var i = 0;
	if ( webAudioPreloadAsync )
		webAudioPreloadBytes = bytes;
	var secondsPos = 0.0;
	while ( pos < bytes.byteLength && i < numsounds)
	{
		// filename
		var fileName = "";
		while ( bytes[pos] != 0 )
		{
			fileName += String.fromCharCode(bytes[pos]);
			pos++;
		}
		pos++;
		// filesize
		var filesize = bytes[pos] | (bytes[pos+1]<<8) | (bytes[pos+2]<<16) | (bytes[pos+3]<<24);
		pos += 4;
		var fileNameNoExt = wa_getFileNameNoExt(fileName);
		var duration = maudiotagDurations[fileNameNoExt];
		dump("afile ("+fileName+") duration("+duration+") posseconds("+secondsPos+")");
		maudioSecondsPos[fileNameNoExt] = secondsPos;
		secondsPos += duration / 1000.0;
		secondsPos += 0.25;
		dump("second "+i+" "+secondsPos);

		i++;
	}

	// contents
	var contentSize = bytes.byteLength - pos;
	var bufferdata = new Uint8Array(contentSize);
	bufferdata.set(bytes.subarray(pos,pos+contentSize));
	var ascii = '';
	for (var i=0; i<bufferdata.length; i++)
		ascii += String.fromCharCode(bufferdata[i]);
	var base64 = btoa(ascii);
	audiotagAudioSprite = "data:audio/"+atype+";base64," + base64;

	if ( webAudioPreloadAsync )
	{
		dump("started preloading audio files async");
		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
	}

	audiotagCreateChannel(0);
}

function audiotagCreateChannel(index)
{
	console.log("audiotagCreateChannel "+index);
	var sound = new Audio();
	sound.addEventListener("canplaythrough",function()
	{
		if ( maudiotagChannelsLoaded[index] == null )
		{
			maudiotagChannelsLoaded[index] = sound;
			maudiotagAvailableChannels.push(sound);
			console.log("************** loaded channel "+index);
			if ( index < 8 )
				setTimeout("audiotagCreateChannel("+index+"+1)", 10);
		}
	}, false);
	sound.addEventListener("error",function()
	{
		console.log("************** error loading channel "+index);
	}, false);
	//sound.src = "data:audio/mp3;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAABFAAA0igAHDBERFhsbHyIiJioqLTE1NTk8PEBEREpPT1JWWlpeYmJmaWltcXF1eXl8gISEh4yMj5OTl5qanqGlpamsrK+ysra5ub3AwMTHysrN0NDU19fa3t7h5Ofn6+7u8vX1+fv7/f8AAAA5TEFNRTMuOThyAqUAAAAALjQAABRAJAXKQgAAQAAANIqLReuqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uAxAAACgjJYRQhAAN1ru+3N6ADNAEAASM2QkOAABKvqQjEIQjSE+pyEJ/5znoc5znP//QgAAEachCN85/oQDB9QIAg8oCEHAQcXfKBjEAIS4IAgclAQBA5BAMZQEHfgmD4fwf5HQ6HQ6HY7HQ7GQrDQPvZToNx37zcYsbgZnqEkTWnZsm+DxpKLDUMfs3A4zHKdzz8+wAWXmmL1KaHf35z0oOjnISA5pYpJmW9w/woDIDpmTxpDRYGwmDH/rUv97+xaWZ9eZkqAiZl+xsj8pszk1ZtY73/+UhDNvTHmxgMROhU0DBzwRq/MQ1Jbn///l4FEGHFFYIElBkORAUcAEZYRjfrSuiv1rWf6/e///Z8mnLXAgFiMOwakw0OepsaDVS5RdrxqT///////8hys3t58nrFS3lWt6/uXec73+46u0oA4ZEXCYUYY+p6C4/B89FZVEYXJqaW+eGCSYJfJOnpq7WadTtuzhoUjsP/+2DEFQOPrW1oPYMAAecorQmDIaE0qGThDsZRhGCCZyF03ZkXKRPVQEMTdeftOw84ncZ4XR/ZoO3JoyPFVtHePkemlrf5f740VGbMspMynd2NrG/h8//u58dsf2jWLnygUiASkXwFfQAw7MEGiSdlDDj7wJCnkpYu+0iqRU2SIo3RAkznFnYGqMYXMtXGhsYWLKMZzg4NSb1Jepcx7ohTx6PUlnSLHuY4vRK3VtWOymoix0TSesWjbseTdsYnvHf0v/Ks8NI0+O+Ge/Z4xkpZ/1rQS4QMHvMPSieYYfONUp/9VQBOCRaIS9okqeKzDCwz2wA0pok7D0mlEAxaelsP1uRm4hT/+2DEEQOQ5XtkLCRz2h00bImEjjlpio6TEqIL4ikSEeJRY1GhlJzTySOlrtqTXhIeh5vmvJqpiXFikoyd4tXBbGHzyo6hae6OHIxuoRjkJWu+okBoZoEDZvFrFN5LiAyxW9TEnnbyz/H/erAb3Ok2y9BVcOnGOv1kzQEgZxr0spQBWdNNJtvXQak+7mL2yf92oalcRhf0oCLJoWidC+awoNrOuFDy2UYNkk+X1a3VBuuTU604pNtS082afizat2f7nunbfdAnawhbPRmEEk5BKECSI7QPXcneTeHfYcEeUrhB0ReamhSlihEAA2DNS+LCVT8zyyPk7m1ml9iLJT5RfWoABPT/+2DEAYAO0V9oTBhvSckr7ejzDaFQT7CIuu6UuevrnRqQWnrosaeHIHIghzTLiApnBWKBykEGRpeaek5WfbQUGm4HvmEc0Z1cNji/jZ03yrg3dGpBRMPChoDGxkHJHP7VZTvlNkkJWY4SOeaqpKaEcrGeaOZFjmOK2LrMLo3/rolzs58SeHt/wAEwAASk5VsmKoQpfyl60V7xyRN9YRKhDS5djhmMfOuYFuxqX1zVE5QQourDCCMeGIHAIIUbK7yOTsRCQZHMruhiQ6ubRh3gIpxYGwfA+/SXh1Viy23s9cxzoKluDQyU+GSomumKPZMdvcKttEc5lxwsFgJAEElytfKhnMr/+2DEBQANdX9u7CRnyay0L7TDDHyX4Oe3pdCccMm/2jMqn6UihdVNPrGTu/Bj9Q3PQETiWC9S8qqOeSsLMp8BQQRIyZGPw2Ps9eVdSt+n+adikmCZSatTjtnZVhEcMzIoiCjdUztJftuGf+IcKZ/6jZjP+wMK6AwjI62203Lw5K7jYUcvoY0QuV6WVTGpKZEs2rKAmBHBArQ8zhvcKbPnoh/+ikScXJArWnwz0dRH02ADU83GEKXl9LQihFi4CPca2wmlvSyLvlVzdBi6p7pDrF7FQmbwjrv8MptOSnNYpWYKAQQQS3MVRtHIskSAIxmUqsMDbMzsMz+Ni4Ffzvr5Q9yTSQj/+0DEEYAKzMty55higVaSr3RgjgSW/8JJAbI8zlbL/t2+fNvGY4PAb3QOFQvSZoLuDsswgQShTAEXHWaY4JEgipiC1WKKOXUAMGOMtMpJOa0oG2pD4UpRq0awhk4dx07DMuCOEpePVSlwuybfziMR1YtHAB8NLRSswL0EVQk9rzoiPCrQbW4qJDYFc6RPsaskKrp1KS90BHdklWipyRV/jqVF0xGGVFm2s3wcwJl9iheX1CGxlP/7QMQMAAqVAYEklG6xVp4syYMNoFoBztJLiJErk7s7/ft/L6IUjCstJlNDOLTdacOt8LO8N/PmVLTiVF8UbwKJnIRTZHo6OsibDzCcv5F7U1AADT5grCxWpvZNskfeQ3o/g3KD5kMyRY7D1zEBZmvbnG7attnJEJGyJAw8pOUUioM3JxtTvZQhc/Sp7L9/Tzm/5+qHPmMKA6WFTryqnsjHP3SP6HWFqgIAAJJSTcH0nhFugclK//tAxAcBCsyvdUWEsNlDDO1M8wzgFJ121UStsnY5UgwO1jgVbsqChv1zojMpnddXBB27nidTTezt9utjvF2+1xUPI/Ey0X9uwe7XVbfR//+tI+W1Jwmcz9Qs/3b/gABKdodQEmZN1hwSr4WFFECvsmmpI4e5kjZKXVCXwRegXNTUxg4dDjow9OCc3JvDgsMvc5wGhRx59hDPA/QUNrr2R7C9am9r3ukxrJGc7Kal1QAAVJQIJCz/+1DEA4OKwPVoZ6RowUoWbIWGGOqbqsvVUvK6OV7AWklGA+pJ7Gw4ca1RiBPhqRr2HF4D8OjfMtXi5wtOwoXW1rfSEe+r2FCXH82z8zbufoKMwSD5wMGb6nuVm6fP3veVEYrpOCSJeL3jTiPov2HAJG0MZ0b1+4SW3YGG/HkPnllc8HPrdH/9CoZM1r6snzmMxGn6WfXz7ua/X/p9JtRzBsA0rFiibYj1jRSHKg0LOGxUkzv/+PUAAaCx0Aa2HcdVkRWwH1qaQeNn33jQOkWL//tAxAyACrRrZEwwxRFULG2o9JQowvUkzUH+pKox7BX+mE4aMztJ5bLGCZsBgpkiCyRSLBsXDzhAVJLP8zWOEbC735yposneBlNZ5LLMkvt4oAECgJJbu59jTGmHsHaGFNsY/kD7qQjkS5Gs6CBju7XoJK5N3I+7I9OyWVevVHnuOyt1S7dEWR1f+nCLyvIrIdWtQyk0zNejsiWIm2nv0sUa5tj/R1IAEAykii7wAQbhWMVBhxz/+0DEB4AKiG1xRhkAIVcULqTEDGaoGHbV4Xj9pl06dhBFNDriPVZrtHz0y7DhFQmfLAYTGL0HQyhOswFXtn4uJA0TFjbU3vCWHzJNQ6H16rRhY0SNUMvu8KuBRVYWUXCpwnvmKF2V6OCa+4xBi0yfQTXPjLrjfR0XhWBi97JhmvImhlbC3oFngKAZUnElyw0xaUOlzDQQNKBQEQKJGr4dULSJux1q3SRR5mjQH5vA6AEVG2q3I//7UMQDAAqw7YejDE/xTKzvKICLFmnKCn338dXIS04/UQUr/QREYmhCdS0v0iFGhKVEZ56wzPlYRdGK2OxfeuP+zpfdW22X7AwcQH4kFEGy4pdFRj1vNAYRUsESwpLqeBfSnyiAgeqKSJBUBUChJdReku5OStSYuNo3r4iXjboq+YVCuxmhyugjzIlbR6QrpXYXZidV9tqm7bWshCyl2O0zOo+/W/6nptP/7vkzAxrGqYAj+moJOJUFyRySySSOTP0NVxWTey+N2SzvTNz0b8b/+0DEDAAKpPWLowR4cVYiLA2DCbBMcCju992OtVI9P6eYSAVCsPDMOS5/qYpE9HLWGXKebH+uZ/qVBgDDRMNeAQyHBVr7t5hjP6QggRIZ7KcSgAEByF7QCVC1nTXajAXjiGcennLpq54XiiEz19DZx1Plm59L+9rmLfLsxPH7KyXRLuw70Itl/VV2X2foqUR/7XMDU2bUrM3EkDIaOYSKBpTP9ZV//1oAkoCCii5hbhGVWlD7qv/7QMQHAAp1NWtHmEbhOxEsTYSIcHonOiRI/atyhLVmNyqKuPt1Oz76Gal6mWZLiyqnoyNq6Kyu6m1WNuQtqzU6cHFHHKrWDqOjtVddjI/fcLaKfwPFTlN1P1AAFJ2gZJIAs3QJCIrgqJmVig/PNUabt5iyI7shRZgA2H7nc3WVv28thQLlVHCwcuCwFpIhfBNpEyTFVwKbJGzYGkYJM7aECVhL7+o+v/1VAQWYVUbGsl033UaF//tQxAYAixlpcSeMR/FeoexNgwkoEPUwTQlyR7yAARPpSHdyD7JYvBIX0z5UI4YgUFsxWYLzbIiaWa97AyuqJ3S3MO0EIaRilYMioZz1pQhL2mBIyKqshdPulW7ikY3q9aU7uD6oiLejkTgeBpfEaUzIuBnKdXuupcw1NdVCWDPaqb4oh20tXdlkZzXn3dpqsWqrWnroR3vdt7pYyoU45TujlTUUbFaALO3tGLpHzqYmKHCZ87y+yJ3KFD+tJtNOUPnhqUpmVk5ZLRt1j3VhEf/7UMQLAA0JaXlGFG8xoy2t6PMVfk0plEVrRyKjwmm6mKsc0HjnlzGO26EwoVnz0+DmCE21DBxd288LT+w9kdX5V6sDyc2ACBDmp5a1PPdkKhxnyHT73kWrcrrRTigOCjXE4vPR7YeAAWcpIkJQiWt3EpIu7t+a4ce3hRyEvn5xl2TU3YlPLMumKKmM1+Ue06Z3pPGLRhA97OqlEzOVmuwwY8lkbdGPs8utGrUYjkKgwxzOUJHVjiSNrVyvInZEsW3TTVdZGDxRxRRiGyQ5nBv/+2DEAAAOXT9vRiTB8aAs65z0jSgUKtyU0inA/MQ3azBbVKY6QFrPSI1gRdH+4JpZLwkcrK5e58ry6+5Vr35Vq3KoYZRwHtHxzrhGj7mKqzQJrO940WkVMc7wb1LfZz5t6/QzLHPnnzkv7J539vpaVN0Gd0LnaCNB8AsJhYRpvDoSZMpx/QwaAEApN3csIrwaRwHqziRqYl5/MmxEGjceGpD8J3rAwG663CuwpeQ6RhwitkVBK0D75hB7BQOuctyvacP4ouiEi0WZ5E3wZq3ND3NqUUgLRdqvod6DM6X+MnV+UtmIz//+TL+wh7tDfyUAoEKWgEAlAn5a9EkjnLaTPoQFZqr/+2DECoMM+WlcbBkJ4bUiak2UjbiCpVzs2UqxZsbtdrKOUzO+3TPbip6yaP+rhdbH1RFT3E/XeQ6FqhHE33jY+4Z/nnhuP6oIlea+tZaraCO6uri7ipifRUSe0/+q5hv3slTrEfmPoAAALsILTzDf5hsOOwFh2FCEZ6cIqrO0+OJNACEo3Fd0mAMhMja9FGVyBAZ65P6pJN+yykaj53njcXnoUlJIOKPkOExjtkvDIKHVGQ5iz8wyLXaedY5NjHJzhqxgnJWlE6yTnZFI0PVZQHvDKRUJpWOOuSSOWnFDZ9CgfJfVaB+mbSzG9zPSRrNQ+GHqlRLcoDRCoUBq2RX6Zcc2hsf/+0DEGAAMVTF/pIzVsYImq52EmGSh3MGANrxh2JPvBC5sZAlp6+a3yRAZ6gyVeI/u81hNX2Zu+mtTb+UtIbS0qwDhpm63/0AhCJJLgCl0Dk9lNxQXBGzJl1CO06ZcjHWy2XTa2VlRUlpI3906cx2aNZo1859dr/s4hWpy7crXzMb7O3219Zvl3mu2/czfv3t9IApxJKW8k/md5RTZ3/fuzu7dmXgdi3WqCcdktstsku1KCrwzUf/7UMQGgAsVN4WjGGPxXyautGGb1qsjAsRbKxruCj80UsQ2vLwAE/ChFSsEHY/nwb/woievMiDEf6u9p0s+nhXRxZF95k2ZmQAGYJu+Yy0hieg3lP+lsXyAhlELzHYBuKglOJuNNtJOAAgBJ0FqQBBGEZnnUgkZvVdmZ/mtHP3ePxvL1SX78ZTtvaf8ycvXiw+/H/w3/LfI/py9K00o5K38yhcchUr6XtJVvdxWdzlp9yZ1qDAcTfPVAABYlJJShiJO2M+XUsVH7VyKNTqmLbb/+0DEC4AKmRNjR5ip0Vam7ajDDD5SgUhRxz0rlIvk/e6R6E0Uotm86XdXUVI+5sg5LyjVsm1lP9dP++owHGkGM7KJIgprGuIsYdQGQUEQfO7IBBFbtJIoqAVBKAVHxBsmxHR6qtFK1b4MXJFbQDQ4LZHyK7RQhAsvzjn+vST6XmbFHVAcQX2WTIR1GUPI3/uxGRuC9Vzpsdmfhy/nSAz6P0yE1zz+gWJKACQSU7gfMF8E82sstv/7UMQGgAtlEVbsJGlBYCet6PQNvlNDDKiT/KlFBJExEihdVd9MTRpLhH6s87wdkbKQlM28sHkacu3mfDiFOajGakZ+QRzMicfZgRlkSqeZBBZg0U/VmJ/cGakUnlh2BHr9d4qNXpppJQEUlnCE0XgS3vnsSV6F130dxidKq6RmM6LPVbt44+5OmbRZyQpXSFOTN+b7GeVcly3kM7WwWiAIQCEjFHRiL9vbuXDlrfSbv/8hqrsARYQ3jxFVBGFtqZsCJVrjiaHnOoMt+qtrLzP/+0DECgALCTNpJ5ir8V+mbGTxlnble8QU2f4Dx3ELd6Qc/zfelQ7X1HNVCIZTrLoitiREMUhSse7K2VRIyFKrbVJlERwSDgyxkYcVF0Exd5MpNUezRV7WeggAVmVRwFcBuQ9qvZdWcrSeDNet64p6b+GsvQK4CiCzB61ygzo1wfPW3gcfy5FCCj3DQw9PN/KjE9LWPmr4ilvYy37gdms+dlTRDKjd4qisrxgfEods5gwqATVZVf/7UMQCAArVM2MnjQ/xR6KspJMM/0oHAjWLLFAQ20HWojbW+aM8U4RHBRBGuCYEhYW1KqeU8YjpXyrZd65FISloCTdGGNn/d/2n/bXPd3Wk/9nBUPnHDKWDR8XbFDCDGlb59o+IgepAASLNSliMDI+GG1SaZ2gAcLQrXXievH5yMsnu3Ik50kkcUhMXghfnIcMGe28D9HPXuwUjp51Ppl/H7x34+Ween+4IUB5tmcBXmzCCbmuMvfgDujAEaSSSKgMwZRKOosc1VCDiRTVCTjP/+0DECwAKuTVnR6RgcWAmbSjDIC9RxP1zFDgLtAyubnkky6n32yLh1xYcJVBVZQyFL0EwY3POBCBJMs+VEO+6f+oci9uERfeBf//44B6ow4lBHxWwCZaym0jICsLCgVacE7XsCYuylheYelWUq9cbGk+qio0bo9lBmYhm5TlMslXcgek3umWtw1ObxdIiXGvf2Puf+fib+ix4S72eNLT4vYWENmGTeMbjn/KlmgRVWKlbAZJuQP/7UMQEgArJNWEnjLPxXKYtKMMgH4s8efDDaDBg/5ixrX3bP1BFh1WwsL4cPy4hkNbwNLh4Vy+wnoCCQ7nTgLpH1FJTM+KGMlK0cZmHh5TCn2BwdxhdnLvuoTRVWmrN1MEqgVdrTbSTgFQzLhDQzlUli4YLjWSnWoxJvUnDi8VrjersRj7xm2Zpxc8jRNb90ww+/bh7FemTmSF4/vmuKdJitV47iObYqCw4SXqma4t5qm2nle4qOcjTdQBpraSSMgFhLI9fbfq/FWNjHv2O/bb/+0DECwAKkTVpRgjT8VQia6WHoAauT4wqpQEAO4x0IZnM6F2qrVfqVvorC1VqMEAlu7FCkIrU6/Oqt9CN8yQwySviU0aXkywrCkZdn3w8t5pHEIABAJWUkHlh0ClYwQs0aZAhjXH3Ewhsz3KFy8JAioUZcNNRjBl38ySc+l3i8U1Q4+vadnehptJc8TpMa8Tj7rhc2u/2u655JHEsrO9+PnsZiLRIXt6VBumtJtJOApdJWJR7B//7QMQGgApFNWdHmGf5YaItNJMh3yRBqMIEkn2PnrJ+pTdQ/kHnUBnJoUsaIECnzp3rvHZKWc1Wgm35Dxh8i/sLTgYh4SkV6ZEWTZOTNsRLfOi0+z8iks1Bc4BDSacabbUgBvAy9tvbJQEtFJrkrgzsa7wogFI10HGHWhX35BtPMztJnPFJvf42YLJ6uYiwl1Xn9rf+2kiedZNqI7/q1rlFCAOj1MRJmkdLnERET+n7nYClAIQw//tQxAGCCsD3UqwlAvFNompFgyE2ok/uTNcYJjqYVQWKUYoiUHAJixBU35R60nOVU30P6IHIsJ3BL1xcx47+3gsoypi+zhWuElBWB9ot/xVFNh04/ZoX04uqaBMcbJsiMDjWHz4nn+k1jVAoqXJUmxSUPnGb0D0hqgfHWTnG1oleTupqraymueBuVr7mrTom/Ymvvs9z1n61luazDhU8jimhKd+LgiKGb19wWzdWNCi1T1Pc6Q0IHp1vXWoAIKck/BvmgTNb0aTrd5pESpabkf/7QMQKAApo8U7sjK2BU6KsaMGifloZiaHCgT40DAzGcKDp4xBcol7HrcSuseyahzshlcBrysSgk2r1KKnKhJ2u+6uqKvsZeqACB1g6FUHRUMO+6oEar0201GAaAeP2DJ+1aZD6w29u+y78e05Irjw1fx+B2IwQAEKbwGLvKXc6TeKIfh2FNaoM5g2MC3V5GbN4w5Bsv5y39KAEFxdDu1jPT5xKLO8gW8fVAAAJJQQEMtWdnL9W//tAxAYCCpUVUS0gT/ldnmkNthjZIlUnaeG7nI5LsqtWtaHI+6DYc2ySpJaXWuKp2Fj2xxtVrXMqRNXTKUFzChi2W5QdvBNVM9u115kHBvt2RnuhQoN0ehiP9XBq2AknMAYpNGTEqmjkNhSShhMYrAdLR8E3NmSAtLrTvKM3GY9RIVW19f2lnd4c4gpnfv/A3/L1zGm+74/Lbdm7ZbTN79nG/azzqr78/q6be+BBRaFXvv/ACgD/+1DEAIIKrRVZLCTBsVqiqI2jIeAFbqqcBCVjQkcjOrIiOScUCilTHDohtN0QHOJ+cwxXpNe7EMY9xc9Sc43/ukd+us1WKhnk6GFbPxRp7z2f8xzJ+v91Ctjv/9rP7s0lBu/PLS396xlBFpOgAoAddoMDpM/TdKZUxMAqxl6YnZduGYxGbPL7GIhQ47jnxMUDZJJVXkWhM1NLosebvPCdF078LF32K91tAiLEJxt7dVCr8f/dzU/QUmu+P26+6NUFEN4AU0OFgLmoSXiZTNNT//tAxAgACqEVQmykq4Ffoquo8yG2UUnmkTQFnx2QaBBJEbUJmF0ibG9QwWSWr7Tr6WK7YwQYzr2FbFdHRbI/oPLIx0LFipXk6IVFf0xY7rwUejPJLlalxx0qAC6tONtMA5SYqCDSXMeDqFBRhbmkxCzao7Hu55svitIPsIq6ZxaBo8u9MHB578tRZHtDQYXI2XurwANttRRimz5DwTd28ZNK1pH31stKOMVVuV+av9hhsCSTJwD/+1DEAgAKwPlEbI0zyV2f6eWRmX/3+N2lSKRzBZIxd321pZRXfu1D9apailmks5b1ShnSqzwItoZCqAcOkh0UPJ/rqW/Pift8AjypDgJidTe2ijk0HKGhF2lPIgYIbfrE5Fl5r0H7ABQYWZgNqMQmwRInJlfYjFpdHLRAgMGESxPSDOihxuNClBk1M6a5Wiv69nlsPaWZZSMI1tO/hDwRgoJlx1MiRnah8yuv3jpx9ztWPJdDH1v2NqLGcDVklQAFeKTSUAMoEoHOjJwgifjN//tAxAiCCp0VV0wZA/lsImgNpiD1oGOg0/5u0NSk4bGfKww+44Ni2Ksme+W+T7i5JO9pOg85ut9omqW4qlTrv5RvkbWPt1+EU6Y0lh5kWlprCXeciBE0vEQBRKgB6F4CviUJWpe6kVBXEDR85N2TZEceHjZFRttt67HVe/zzBsUlaKQMqZhpqBG6MiZGWfV1DzY6n2jqTLRZmLV6mLpKn7i4F6rRuJeVjrMBcnKz8c/c48dMABD/+1DEAQAK+QFPLCTF+U6WZ02zDdgcqqwI3s0Ij3oIkDBjS6NpSSuaS1s8q2lhORoZPl/P1ZJrhqan8tZi8ufn/W37aUfasyHkvkNvaxsZU5jatqnuVS2SQxf/3rjtsoCzHp75cwgqmyuncAJUlAOKNzFCoWTBZaRUL/MUjCBsanoadBypuanXHJpjUjGBRRJZp0ZBROVV+tRgYVS9YnMuNIXzNhA08paZkJrwhQuljJgJPWKB4fjxWJRCE+utFQAirKB3rFoigBi72KKtfZpE//tAxAiCChjVQsykafFTFeaNt40xLD4th43M00oYihvyUQvarZHVz1Q4VajV5XPMwiwh/1gslMJgzDoXcF0HTZDhsENvLXfDJwUYxriUDmT5l/RYSABlwAOYmQqkmBg4GNAsGp5Bgo3QLBqbxdyUhij+cj9UROV2wQ2PbDdhIY/jYi0S3g3gmYvajI0KeN+Dm15fh5BFRSVc63fIgGPuLKHZalYCO6mdoOUAILbsABu5RnOhd5T/+0DEBgIJhL8+7TBnUVgWZk3MoDjJn9di0NpwKnBWE84SXWHyQ/r72XO0HAXmVfhAjjbmAggFVjHMoS4ARmJQ4Rm+X4mHvMcSEQTscUEcB9CEOsI0AF3YAGXLeYcP52RiSCNQGRECSOsuUOas7SmqlzPGav/BXXjik+H+HIKbD2Q9VVFCBAFcY8NjM27S6Pvs2lrs3i0uFSLh+1Oi/VZpFGNMrBLOZ5RcyMQqACdAAOmWPPlOwv/7QMQFAgpssyxtMG8JUZhmHaSOSPMwXJrgiDExM0J0wYIkApfpETKRTCV9p0QOAVUWBKsHIlkAwQCGY3jJ6gqwwRJfznXamZZmAlb7qh3yI8ODfriPk+o2F2CpfH4BALnoAPx+OmzMszX0HKhpiYQUBh7E2QL8V63JcixJlH51HfizXX1tU08o4IoH1E4KKH07z2Kkjlc4cOHVIAcpul38j/3IqRhgZiDCQviBnPQdOu+mADmo//tAxAGCCmSzLm2kbsE1GGddphiyAMZZDhbFkgOPlPpZJzDQOu0RgaBbWW5l7kFFTKONniRoiiekINBkxLRcsHyx1HKANVnEIcHfUU5d6WvmAw4ZvtkVzLWmwURB3MUeeqxM+7SUFOWAA3bs9AIt4BQLIlvC4Mi2VlDrZILKmR+VG4jX1qR5C0dB2pdFVpQva76xTvT9Cu9osfq8qYb0yezuu/uMdNinvnx8udsDwI+zxNUFXfD/+0DEAYMJYLMybbBswUSX5c22DagAFyBpY+mWrxhZaVc6ETFGl08UXKwCYYXjEVhXYrvfEdI/id4YQVhMEHvcEdRfAm6eCN2EthmzVlVKtuh+OUXYMLGGsKzUYq0BS+AA/0vNjNTLWJLwaAEqgEDEwHIC9kCOShyQUYkOQVjiOyYyJ1CbQpQYdoncXQyzfupf2VOnQ5Hgx5m0W0TGX+SyGvqpEj0gMPbacMEQdRQqBU/AAPecDf/7QMQDgwoIwS5tsG1JNhdljbYJ4WiYwJECDkEBSJAOHZMttPttX7Z7DLExSAIceNVzBW7YTrMNFKL22U97QPxLJYctbHIwNkpTw5fDaaBw1BG9qDJoRIIYkdVqQTFBUmAAOzhykiM1Lh5ISgSHMTCQMJpPrdZ1D69m8h2EqOvuO4LvSSbpROIqb2IH4Ngeu3W9KJPwiAnuw6GBBUaQtjPJs6tXfOyQdkoC4lIG8AOU/jTEI5IN//tAxAUDCTCVLE2kbxk2j6TNzCRxKqHHkeUBay2JJBvczBWyIpiQKpGLBkhLmQ8bgHxaC62xOroEcYnmviTdvunWHvSygnmXowvYGZxUAmga3cu/MAOQAA4KxTFjMEjSCicisanG1Js66oWOytu8BJ7I4v5FmgtycZXk5YoOCA3bQoPitEmeapQobr0+v9qPdv+1eVFpOqTkquvtbv31+GOu1QCnAADtRVMUOUzcBDI44AZZm8r/+zDECYIKJHckbmUDyRwVpx2mGN9QESCJIGKcVSwiBToIjZpcCF7CaVqMxTxeQp2ALALFKeEoaB4RRhiBid24ZS+dPefJzydMzFU++nhJxJP+iayXGwADllB5qRG1RJArgXyvwWGK59GkQHUxMTMLhcJsZUastOC/Tf/4s8cQ001DMzBIXkogTl+E61/M5qcan2y/JsyOWMajKgD/+zDEAIBISIVLrCTH+QuP5c28GC0BDE3JdaAATILYttbu1srFrEJrscMAWhxKoTZ6cqSVbGSSCjdn2k2uSwhFVmsjjGTMTeBliVv9gkXAGRMu1f/Lg4KWnLoIk1gtAsFgyVygwUQ6bM4/FKZ1m4iAgMAgUwMVJEmmz6xfMJM3ZF+Ufz3m1WZDybpeWMT4j2+u+OvuxmLvml1VADj/+0DEAQMI/FEibmUhyVETY83cIHnAANoYoylIgxU63lOmfm0wNcBQwAnJoLBlvGKKDOe5S75toLYZlsoBgFAkaKG0S9KKyRvdqMOhesadwNNJthPrUPvR3922AZEAAY5TaCEFM6CjMQw3AwBBhENOEueONAUltI1AYScTDK7J3oYQ0V3nQ3A6nIfBwHAYCEVD84MOUNCsSNg/Raq49bFSGqWds2aeqWDqgY8VDsz9qgLAA2jh4//7QMQDAwnsfxxO6MXJMI/kDcygeDgV0zfBUeGsMBcwpC44zYUBBmUVLNuJKxoQoKgSi7DmR3ptX7sOVHKdmKkJa3sfukVjao3gZRmsDPNRmsV/pB87MX8nkRV03pugKRgAH1h2ZLFA0vjBIdHlhFSxtEcwBEP23ayrVHVBGnMrhiTtdl9PFZTkqqCKFHiQaOKIIpBg5e9jpfqHheIH2xrHgcYcAgrgvrVc+gAAgSYnLGAAB4mY//swxAWACLCHO6ywxfkbjuSNthkZg0ZUi97wVRnpCHOJhJEh1drR1ynUKpEZ0Zl140f8MpMZhsyhplPZ6NuMXemWbckcNLwSazA8CH69/6Be1AANwLD9kAvAJAqw6dKV6XaaiM4KGYDxOHFoNDcsCGWF5E4EJI6CXtwmNnyQr8xXyMmMWNZ1mI82VXLka2IqQhbfsfvSlQuQA8k7//tAxAKDCaRrGE5lg4k2kONJ3SQ4xLxGoBOZ8AI6CZkJtnCZ5MSPIMvSLByAqQgpfjTwqqwKxNzgUXLScHpmc8XmUXv+xp+/l4Gf5qGN263hpQHkRj5VH7/39f79g/ABz2yxhiHJs+pqDCNqS4BDmRIN+VQMaXOgLR1EIB4FkIfylMpl73guFQRA8M4SkM3EkoQ8Qr1s+3ubl2xcPCoyq8l3txvDqXhQc+mpACEs0AAeSDoGyJn/+0DEBYJI+IUi7jzHaSuQ4oncsGiMTCMQoDkRS25fIkQGA/TkGw8W1EX9HM7KkJGDuJ0kbK1AkXn16CFo28ckVHdu3vpQlGOUed6Wa9PbLudsHT2FWzSQFzNUCAMCxzan+4YQqRyZQJNRdWQMGkwBeBR1RB0SUIo4llgXiITxgOKeGB012Djjj5621dg/tr0GW3bUm+1tm45acStaAGpdGAAaxfERmd0POoow4vyxAHRIfLI0Av/7MMQMgggQaybt4YChMw1iidykeGPlkNAbghZYZejZ22cx2bq9tnustgtbsn6NecCJ54eCciNSaoenToBoADU6HzWkdDLQNgAIxuDl1RQ8BSC9BokMSKwUEpKEGKP8wpl6OFG20acKWPe86GaNNAmOyWz2tLXwzGalng/pCBM2Bi8rE9YiJ+xyKhuQA/acDBIZMkjEw6IgG6dJiv/7MMQJAwjEbRZOZSOBHo0iid0wKKpmEGgEOEozxcucx4axkjCWhQK0x1nzWNiEkWYe1K5N5F9ptw93mS2t7muLBWKwBnXir/UPgAHChzGsyMG8OHjmjV0HbSKSZ4YW1HBCA6HEvUGELB/OggEQCyglFgrkgYnLBbVtxKObddmC1/rHzP7bGng2DATW8iE//6YGAAM/c7MXT/GgIP/7QMQFg0nwaxBO5SPBLAuiSdwYeMGhOFUDH/EiCdEILDGZ1QwKtAUYEAl3UqUi0x3XSwlsFzz0OEIUAaaISAI04xKKcq9vqV577sOmp8PERD+39//7f/2eoGTbGTDAoojEkHgEJZ5MWAlsAyh1SXaglkxQADCSTaGxhdynUMxV7I1EJVI/I5a6l0Zdl/KaekIhwqMQEBoqwZL3Pb/////////+6h9AA8Mdkw3Kow2JMxDEwwBA//swxAiCSMBrEk7lg0EMDSLZ3LAshwC0GtCGBiIFNRNNIouq/SwDVVWkcJFSxoOLauKmQ3XT/xduRbamR413s2fiGgUJNJD9lWkK+HKorGF5mhTEAxkRpqhGIdbe9Vagla1YvGD0SFwUFM3RoR1el1l2pSGsLNWsSTvy99vot+i8kOB0gRiwT1YtbfsoAAAAAgkjAAB6LNGViYcf//swxAeCSRxrF65lIYkxDWHF3CRypEkRRCSBjpIqO6u91WYMuXyt1gELiYCkjMcjAHBEKiQ0CMY6nCKOsS7ZSnRnOEWOVkBz0w3UufZH0mMa5zM5VkMTCPMeRSMpQxhq8Nfh5dC74gFAreCKLxZq/DgQ5doGBVombOHRdEpCcqq5wdls+8hvx0hdoImT7CSqtfxF9P9nb/q///XV//tAxAACychPDk7pIcENCeHV3Jg4GgADkOnDHgMj/STUCRUABVBiBRn2RMaSLgoLgy1zDSIKyh2mIsrfeJwkgGlVzPYacxO24WicCgwRg2NKCHRNJ/Rvd8q51H7rv/6v/+n6QnnSng52T5HAI4skQMroBZSF6mDS00gYC1sMBpG71HmkLV9880ACsutaMVeQmZATUmxwqwUQl5ER3f/////9GBf9fvUAAAl4AA7XJw03CAy6Daf/+zDEB4JIrF8PLuUhgRkNYdnMIHDUCLkgIIOnJji7zYWYqTYUv2Lwa7TZkBlD4noHhNEgMG4EMVc+XP+T+k8sFiYSZCbA2Hr9aaEhPg9RlDI5JFAsEJQLeHFAoIt9CJmLYJIlyz+HZNTuZAkzDtPJlAMzDQ/pOT5NkdVe6LvD7kjD6FSRL//////q/r6f/1eQaj5AAKymYkEocAn/+0DEBQNI6F0OTukhQSoMIYnMmHCaJWLQC14oDARtHJXz7MwWd79MCADQKhQEVGloiD6y+SVtw3wI5VHHtvYSKixCTsFBdSX////7//935X9zR0PR9Y1sNwNBSgYHEMIhQASDk3LUNQNfdHBZbOY3YfGBJdFsQAD0QdGdcqNNfzPZTRvLsBigw4kc15f9Hu42i/9fV/t7f/d7uzhGYA5QTcwJB85PTGAHlTseEbaOKnTxLvn2TP/7MMQMg0k0Zwou5MHRKg0hSd0YMEgbeOJp/pPD9Hwmfg+BZb0ZeXs7CzrpmZ20+VXcnvei7vpFv9qf/sv+izWxCvo/20roPgWZBlUbhQHyFKIoQDWYNxLmuS3rMLKeLbvC7IWE4tEyiCFz3fliL+ZT/Phu6QpCQSC6bI1Hr/09FFKLLuP/1I+zq6T73X9Py9UALUgAe82GmSZiyv/7QMQFgklIOQzN5MGBN4bhSbykKKHOyWlTfAwkbUqg94Iu4bLIw8DbD4CUmq7GnicEAWFmpDkChMOjzo4GSA1gu0WYBjikft/6un/1/o39F77e+hZDZj04wLPMEchCPl6sjAgBQEwN+YmvBxaUBRsUIKFdZuqsh954WLlV3gdhkXfHrF1Jj1u1uusFiiU1/kndSW3fWnr2nEWbEI6b61MFdKoAbUAAfChHevBsG8wYpeURSQbZ//swxAmCyIA1DM3hIMELi2FBvIw4wFlROygCwYM5SPVrpkCmwyokZIiQ0YQwksiJmqc9i1zH4p6vXPf0dHu/Zb7NlXq2aDzCoxVVMTY9TSIllKvChxlT1xrUESW9JZu/Zj/cMFA3VR5mRL0sGw20aBlmwMgghALv7Gt/9m7/ovq2Xf1r+28ZZ9MZAANHxTDlIWCKHUPCxVWF7ToJ//tAxAmDSmwrCE3h4IEkDeEJvBQoRI0DLViebmFUs7a8Ax4iZBfAhEakAkyQ0qDzWGCQaYm1pmKSTsa2voFd7C59NNcczoUxl5lLmr6YpbQ2S9iGLUUhr9QauLniwHGoOhwWQoK5kFwBLYYktdsPBAVTVDKuTfO53YjXIl3S4vUhqS9XPX2JurasU+6pl70i3jmHEPSjc30+a9F9Y3JqZQADlG0x5LQAI4KrssSoQEgyQGgaGxD/+zDEC4NJdHMITaRnARULYMmmDOCspDmloyhzQ96zWWlQYjM3TnlHhQGGWlZQoh0pOXsnUUInfQ+UehNbVrFn6l00UXs7/5zqWSh9TokeIliKCgaerGHvGRPNX0nrMs8is9cjVle7tElMOJwdWi0jlg6IwMaLB4KAdpJpze3wJVK7CUbW0xv//V/0Ju/o2xjEFiqXKIb6K8SGkYT/+0DEBoNKDEEEDTBmwS2QIIW3oFBKb6J5fNIW6VBhKX6CzIEBxABBQ8aBIc4mYEYaHBNUcYFgCGRY4liwHGKSlAVl3rbIkaEE7uw9Zc+511r2rQunR7WdXjcJtliCroK5IIohxDn+YDymsKmmsZF7vWN6i3OlxUebCPUWrTVZeYl1mPFmLPrLARTj1sLNUYW7ih+XsNDWvucCB1v91nZdt/0/oUAOdeC0iQMDN0XvDSVzr1ZoFf/7QMQJAko0ZwItmGiBMJRgWaYYSCKSNP5JQWsYWlWoCXEPj+muEUWOCAwMlYjWWEQ8cTEjECQxMvSfLJ1HWHjTklUy4Xfimp86QbwlI4vvs09er1hak+0kRExoGsriy+LyBJg5wk2DZlVWbi7EeCzabvJ5IV0q1I3T9fIedIn4Rfy3MTTwxvt1refeGI0WaRdS9+V2Jo2fFF7P0v3Zj9mlOKkBQ9mzuCLZAF5iibnjhBTIWkIS//tAxAqDygx0/g0wwwEyCd9BlhiQiTSyC9cimcnE0SbtiDvMvOu23layJQHRC8JqRCRsBzKxjAdHUiyBIfONSWqKtlkVbV7RSjT23apX6m3DZCZqAtNRi8GFV4shUW3oHESCqLCZxVwTKgwk0kkdj6mAwqyChgMJOkQMfEJ5oTOPlCKhaksNBO0e/ELiiJYclNa9+y7b3V7OtPb/1CAMMEooCVMbJgMgk4dPkoVYIUQpk9zS01v/+yDEDINJzG74LCRjwIIE3ISTGBUFVVlJloCUOOVnmMHEC0sgwEBwcJRw41CjQVFSoSSxgNXLKqktCjSpo09t6NvUmxTa/+/o/awKlCaC0SQKKAiaC1JInGlgaoMShu//qmWCagxYJKX/+0xBTUUzLjk4LjJVVVVVVVVVVVVVVVVV//sQxAuDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xDENQPAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==";
	sound.src = audiotagAudioSprite;
	sound.load();
	console.log("--audiotagCreateChannel "+index);
}

function at_imp_mandreel_audio_playChannel(filename,channel,vol,loop,pitch)
{
	at_imp_mandreel_audio_stopChannel(channel);
	var fileNameNoExt = wa_getFileNameNoExt(filename);
	var time = maudioSecondsPos[fileNameNoExt];
	if ( time != null )
	{
		console.log("play "+fileNameNoExt+" "+time);
		if ( maudiotagAvailableChannels.length > 0 )
		{
			var sound = maudiotagAvailableChannels.pop();
			var duration = maudiotagDurations[fileNameNoExt];
			sound.currentTime = time;
			console.log("OK "+sound.currentTime);
			sound.play();
			maudiotagChannels[channel] = sound;
			maudioChannelEnd[channel] = time+(duration/1000.0);
		}
	}
	else
	{
		console.log("not found play "+fileNameNoExt);
	}
}

function at_imp_mandreel_audio_stopChannel(channel)
{
	var sound = maudiotagChannels[channel];
	if ( sound != null )
	{
		sound.pause();
		maudiotagAvailableChannels.push(sound);
		maudiotagChannels[channel] = null;
	}
}

var mandreel_flash_socket_callback = null

function mandreel_flash_sockets_load_flash(callback)
{
	mandreel_flash_socket_callback = callback;
	var failed = "";
	try
	{
		var mandreelSocketsSwf = g_mandreel_working_folder+"mandreelflashsockets.swf";
		var swf = swfobject.createSWF({ data:mandreelSocketsSwf, width:"0", height:"0", allowScriptAccess:"always" }, { menu:"false" }, "FlashDivSockets");
		if ( !swf )
			failed  = "Unable to open MandreelFlashSockets.swf";
	}
	catch(err)
	{
		failed  = err;
	}
}

var js_mandreel_flash_socket_swf_loaded = false;

function js_mandreel_flash_socket_ready()
{
	js_mandreel_flash_socket_swf_loaded = true;
	if (mandreel_flash_socket_callback)
		mandreel_flash_socket_callback();
}


function Mandreel_Socket_InitLibrary(sp)
{
	//mandreel_flash_sockets_load_flash();
}


function mandreel_flash_sockets_getFlashMovieObject(movieName)
{
	if (Mandreel_window.document[movieName])
	{
		return Mandreel_window.document[movieName];
	}
	if (navigator.appName.indexOf("Microsoft Internet")==-1)
	{
		if (document.embeds && document.embeds[movieName])
			return document.embeds[movieName];
	}
	else
	{
		return document.getElementById(movieName);
	}
}

function js_mandreel_flash_socket_onError(message)
{
	var id = parseInt(message);

	var sp = g_stack_pointer+512*1024;

	dump('on error ' + id);

	heap32[sp>>2] = id;
	mandreel_flash_tcp_onError(sp);

}
function js_mandreel_flash_socket_onConnect(message)
{
	var id = parseInt(message);

	var sp = g_stack_pointer+512*1024;

	dump('connected ' + id);

	heap32[sp>>2] = id;
	mandreel_flash_tcp_onConnect(sp);
}

function js_mandreel_flash_tcp_receive_callbak(message)
{
	var strings = message.split(' ');

	var id = parseInt(strings[0]);
	var data = strings[1];

	var sp = g_stack_pointer+512*1024;

	var data_ptr = sp + 1024;
	fill_ptr_from_string(data_ptr,data);

	heap32[sp>>2] = id;
	heap32[(sp+4)>>2] = data_ptr;
	mandreel_flash_tcp_receive_callbak(sp);
}

function js_mandreel_flash_tcp_update(sp)
{
	var id = heap32[sp>>2];sp+=4;
	var size = heap32[sp>>2];sp+=4;

	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
	flashMovie.receiveMessage("receive " + id + " " + size);
}

function js_mandreel_flash_tcp_create(sp)
{
	var id = heap32[sp>>2];sp+=4;

	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
	flashMovie.receiveMessage("create " + id);
}

function js_mandreel_flash_tcp_connectTo(sp)
{
	var id = heap32[sp>>2];sp+=4;
	var ptr_string = heap32[sp>>2];sp+=4;
	var port = heap32[sp>>2];sp+=4;

	var server_name = get_string_from_ptr(ptr_string);

	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
	flashMovie.receiveMessage("connect " + id + " " + server_name + " " + port);
}

function js_mandreel_flash_tcp_close(sp)
{
	var id = heap32[sp>>2];sp+=4;


	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
	flashMovie.receiveMessage("close " + id);
	dump("js_mandreel_flash_tcp_close " + id);
}
function js_mandreel_flash_tcp_write(sp)
{
	var id = heap32[sp>>2];sp+=4;
	var ptr = heap32[sp>>2];sp+=4;

	var message = get_string_from_ptr(ptr);

	dump('js_mandreel_flash_tcp_write ' + message);

	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
	r_g0 = flashMovie.receiveMessage("send " + id + " " + message);
}



function js_mandreel_flash_tcp_dump(msg)
{
	dump(msg);
}

function _GLOBAL__I_Landscape02Vtx(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZL10raycastBar;
	heap32[(g0)] = 8;
	r0 = r0 >> 2;
	_Znwj(i7);
	heap32[(r0+10006)] = r_g0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = 0;
	gettimeofday(i7);
	heap32[(r0+10001)] = 0;
	heap32[(r0+10005)] = 0;
	heap32[(r0+10004)] = 9999;
	heap32[(r0+10003)] = 0;
	heap32[(r0+10002)] = 0;
	return;
}

function _GLOBAL__D_Landscape02Vtx(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZL10raycastBar;
	r0 = r0 >> 2;
	r0 = heap32[(r0+10006)];
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN15DemoApplication6myinitEv(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15DemoApplication16getDynamicsWorldEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r_g0 = r0;
	return;
}

function _ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heapU16[(r0+14)>>1];
	r3 = heapU16[(r1+4)>>1];
	r2 = r2 & r3;
	r2 = r2 & 65535;
	if(r2 ==0) //_LBB4_2
{
	r0 = 0;
	r_g0 = r0;
	return;
}
else{
	r1 = heapU16[(r1+6)>>1];
	r0 = heapU16[(r0+12)>>1];
	r0 = r1 & r0;
	r0 = r0 & 65535;
	r1 = 0;
	r0 = r0 != r1;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}
}

function _ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(fp)];
	f0 = heapFloat[(r0+6)];
	r1 = r1 >> 2;
	f1 = heapFloat[(r1+1)];
	if(f0 <=f1) //_LBB7_2
{
	r2 = heap32[(fp+2)];
	heapFloat[(r1+1)] = f0;
	r3 = heap32[(r0)];
	heap32[(r1+2)] = r3;
	if(r2 ==0) //_LBB7_4
{
	r2 = r3 >> 2;
	f0 = heapFloat[(r0+2)];
	f1 = heapFloat[(r2+1)];
	f2 = heapFloat[(r0+3)];
	f3 = heapFloat[(r2+2)];
	f4 = heapFloat[(r2+5)];
	f5 = heapFloat[(r2+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r0+4)];
	f7 = heapFloat[(r2+3)];
	f8 = heapFloat[(r2+9)];
	f9 = heapFloat[(r2+10)];
	f10 = heapFloat[(r2+11)];
	f11 = heapFloat[(r2+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f11*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f10*f6;
	f3 = f4+f5;
	heapFloat[(r1+13)] = f1;
	f0 = f0+f2;
	heapFloat[(r1+14)] = f3;
	heapFloat[(r1+15)] = f0;
	heap32[(r1+16)] = 0;
}
else{
	heap32[(r1+13)] = heap32[(r0+2)];
	heap32[(r1+14)] = heap32[(r0+3)];
	heap32[(r1+15)] = heap32[(r0+4)];
	heap32[(r1+16)] = heap32[(r0+5)];
}
	f0 =                         1;
	f1 = heapFloat[(r0+6)];
	f2 = heapFloat[(r1+9)];
	f3 = heapFloat[(r1+5)];
	f0 = f0-f1;
	f3 = f3*f0;
	f2 = f2*f1;
	f2 = f3+f2;
	heapFloat[(r1+17)] = f2;
	f2 = heapFloat[(r1+6)];
	f3 = heapFloat[(r1+10)];
	f2 = f2*f0;
	f3 = f3*f1;
	f2 = f2+f3;
	heapFloat[(r1+18)] = f2;
	f2 = heapFloat[(r1+7)];
	f3 = heapFloat[(r1+11)];
	f0 = f2*f0;
	f1 = f3*f1;
	f0 = f0+f1;
	heapFloat[(r1+19)] = f0;
	f0 = heapFloat[(r0+6)];
	f_g0 = f0;
	return;
}
else{
	r0 = _2E_str3;
	r1 = _2E_str4;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 250;
	_assert(i7);
}
}

function _ZN20btDefaultMotionStateD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV20btDefaultMotionState;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN20btDefaultMotionStateD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV20btDefaultMotionState;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZNK20btDefaultMotionState17getWorldTransformER11btTransform(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+17)];
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r0+21)];
	f3 = heapFloat[(r0+5)];
	f4 = heapFloat[(r0+2)];
	f5 = heapFloat[(r0+6)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r0+25)];
	f9 = heapFloat[(r0+9)];
	f10 = heapFloat[(r0+18)];
	f11 = heapFloat[(r0+22)];
	f12 = heapFloat[(r0+19)];
	f13 = heapFloat[(r0+13)];
	f14 = heapFloat[(r0+3)];
	f15 = heapFloat[(r0+23)];
	f16 = heapFloat[(r0+30)];
	f17 = heapFloat[(r0+14)];
	f18 = heapFloat[(r0+7)];
	r1 = heap32[(fp+1)];
	f19 = heapFloat[(r0+26)];
	f20 = heapFloat[(r0+31)];
	f21 = heapFloat[(r0+27)];
	f22 = heapFloat[(r0+15)];
	f23 = heapFloat[(r0+11)];
	f24 = heapFloat[(r0+10)];
	f25 = heapFloat[(r0+29)];
	f26 = f4*f0;
	f27 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	r0 = r1 >> 2;
	f28 = f14*f0;
	f29 = f18*f2;
	f26 = f26+f27;
	f27 = f24*f8;
	f6 = f6+f7;
	f7 = f28+f29;
	f28 = f23*f8;
	f26 = f26+f27;
	heapFloat[(r0)] = f6;
	f6 = f1*f10;
	f27 = f3*f11;
	f7 = f7+f28;
	heapFloat[(r0+1)] = f26;
	heapFloat[(r0+2)] = f7;
	f7 = f4*f10;
	f26 = f5*f11;
	f6 = f6+f27;
	f27 = f9*f19;
	f28 = f14*f10;
	f29 = f18*f11;
	f7 = f7+f26;
	f26 = f24*f19;
	f6 = f6+f27;
	heap32[(r0+3)] = 0;
	f27 = f28+f29;
	f28 = f23*f19;
	f7 = f7+f26;
	heapFloat[(r0+4)] = f6;
	f1 = f1*f12;
	f3 = f3*f15;
	f6 = f27+f28;
	heapFloat[(r0+5)] = f7;
	heapFloat[(r0+6)] = f6;
	f4 = f4*f12;
	f5 = f5*f15;
	f1 = f1+f3;
	f3 = f9*f21;
	f6 = -f25;
	f7 = f14*f12;
	f9 = f18*f15;
	f4 = f4+f5;
	f5 = f24*f21;
	f1 = f1+f3;
	heap32[(r0+7)] = 0;
	f3 = f0*f13;
	f14 = f2*f17;
	f0 = f0*f6;
	f2 = f2*f16;
	f7 = f7+f9;
	f9 = f23*f21;
	f4 = f4+f5;
	heapFloat[(r0+8)] = f1;
	f1 = f10*f13;
	f5 = f11*f17;
	f10 = f10*f6;
	f11 = f11*f16;
	f3 = f3+f14;
	f14 = f8*f22;
	f0 = f0-f2;
	f2 = f8*f20;
	f7 = f7+f9;
	heapFloat[(r0+9)] = f4;
	heapFloat[(r0+10)] = f7;
	f4 = f12*f13;
	f7 = f15*f17;
	f6 = f12*f6;
	f8 = f15*f16;
	f1 = f1+f5;
	f5 = f19*f22;
	f9 = f10-f11;
	f10 = f19*f20;
	f3 = f3+f14;
	f0 = f0-f2;
	f2 = f4+f7;
	f4 = f21*f22;
	f6 = f6-f8;
	f7 = f21*f20;
	f1 = f1+f5;
	f5 = f9-f10;
	f0 = f3+f0;
	heap32[(r0+11)] = 0;
	f2 = f2+f4;
	f3 = f6-f7;
	f1 = f1+f5;
	heapFloat[(r0+12)] = f0;
	f0 = f2+f3;
	heapFloat[(r0+13)] = f1;
	heapFloat[(r0+14)] = f0;
	heap32[(r0+15)] = 0;
	return;
}

function _ZN20btDefaultMotionState17setWorldTransformERK11btTransform(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r0+17)];
	f2 = heapFloat[(r1+1)];
	f3 = heapFloat[(r0+21)];
	f4 = heapFloat[(r0+18)];
	f5 = heapFloat[(r0+22)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r1+2)];
	f9 = heapFloat[(r0+25)];
	f10 = heapFloat[(r1+8)];
	f11 = heapFloat[(r0+29)];
	f12 = heapFloat[(r1+4)];
	f13 = heapFloat[(r0+19)];
	f14 = heapFloat[(r1+9)];
	f15 = heapFloat[(r0+30)];
	f16 = heapFloat[(r1+5)];
	f17 = heapFloat[(r0+23)];
	f18 = heapFloat[(r1+10)];
	f19 = heapFloat[(r0+31)];
	f20 = heapFloat[(r1+6)];
	f21 = heapFloat[(r0+27)];
	f22 = heapFloat[(r0+26)];
	f23 = f4*f0;
	f24 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	f25 = heapFloat[(r1+14)];
	f26 = heapFloat[(r1+13)];
	f27 = heapFloat[(r1+12)];
	f28 = f13*f0;
	f29 = f17*f2;
	f23 = f23+f24;
	f24 = f22*f8;
	f6 = f6+f7;
	f7 = f28+f29;
	f28 = f21*f8;
	f23 = f23+f24;
	heapFloat[(r0+1)] = f6;
	f6 = f1*f12;
	f24 = f3*f16;
	f7 = f7+f28;
	heapFloat[(r0+2)] = f23;
	heapFloat[(r0+3)] = f7;
	f7 = f4*f12;
	f23 = f5*f16;
	f6 = f6+f24;
	f24 = f9*f20;
	f28 = f13*f12;
	f29 = f17*f16;
	f7 = f7+f23;
	f23 = f22*f20;
	f6 = f6+f24;
	heap32[(r0+4)] = 0;
	f24 = f28+f29;
	f28 = f21*f20;
	f7 = f7+f23;
	heapFloat[(r0+5)] = f6;
	f1 = f1*f10;
	f3 = f3*f14;
	f6 = f24+f28;
	heapFloat[(r0+6)] = f7;
	heapFloat[(r0+7)] = f6;
	f4 = f4*f10;
	f5 = f5*f14;
	f1 = f1+f3;
	f3 = f9*f18;
	f6 = f13*f10;
	f7 = f17*f14;
	f4 = f4+f5;
	f5 = f22*f18;
	f1 = f1+f3;
	heap32[(r0+8)] = 0;
	f0 = f0*f11;
	f2 = f2*f15;
	f3 = f6+f7;
	f6 = f21*f18;
	f4 = f4+f5;
	heapFloat[(r0+9)] = f1;
	f1 = f12*f11;
	f5 = f16*f15;
	f0 = f0+f2;
	f2 = f8*f19;
	f3 = f3+f6;
	heapFloat[(r0+10)] = f4;
	f0 = f0+f2;
	heapFloat[(r0+11)] = f3;
	f2 = f10*f11;
	f3 = f14*f15;
	f1 = f1+f5;
	f4 = f20*f19;
	f1 = f1+f4;
	f2 = f2+f3;
	f3 = f18*f19;
	f0 = f0+f27;
	heap32[(r0+12)] = 0;
	f2 = f2+f3;
	f1 = f1+f26;
	heapFloat[(r0+13)] = f0;
	f0 = f2+f25;
	heapFloat[(r0+14)] = f1;
	heapFloat[(r0+15)] = f0;
	heap32[(r0+16)] = 0;
	return;
}

function _ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN13BenchmarkDemo15displayCallbackEv(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN13BenchmarkDemo11exitPhysicsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+9)];
if(!(r1 <1)) //_LBB15_5
{
	r1 = 0;
_3: while(true){
	r2 = heap32[(r0+11)];
	r3 = r1 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
if(!(r2 ==0)) //_LBB15_4
{
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+1)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
	r1 = (r1 + 1)|0;
	r2 = heap32[(r0+9)];
	if(r2 >r1) //_LBB15_2
{
continue _3;
}
else{
break _3;
}
}
}
	r1 = heap32[(r0+1)];
	r2 = r1 >> 2;
	r2 = heap32[(r2+2)];
	r3 = (r2 + -1)|0;
_9: do {
if(!(r3 <0)) //_LBB15_16
{
	r3 = 1;
	r2 = (r3 - r2)|0;
_11: while(true){
	r3 = r1 >> 2;
	r3 = heap32[(r3+4)];
	r4 = r2 << 2;
	r3 = (r3 - r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = heapU8[r3+232];
	r4 = r4 & 2;
if(!(r4 ==0)) //_LBB15_9
{
	if(r3 !=0) //_LBB15_10
{
	r4 = r3 >> 2;
	r4 = heap32[(r4+118)];
if(!(r4 ==0)) //_LBB15_9
{
	r1 = r4 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+1)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = heap32[(r0+1)];
}
}
}
	r4 = r1 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+9)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	if(r3 !=0) //_LBB15_15
{
	r1 = r3 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+2)];
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	if(r2 ==0) //_LBB15_16
{
break _9;
}
else{
	r2 = (r2 + 1)|0;
	r1 = heap32[(r0+1)];
continue _11;
}
}
}
} while(0);
	r1 = heap32[(r0+4)];
_23: do {
if(!(r1 <1)) //_LBB15_21
{
	r1 = 0;
_25: while(true){
	r2 = heap32[(r0+6)];
	r3 = r1 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
if(!(r2 ==0)) //_LBB15_20
{
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+1)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
	r1 = (r1 + 1)|0;
	r2 = heap32[(r0+4)];
	if(r2 >r1) //_LBB15_18
{
continue _25;
}
else{
break _23;
}
}
}
} while(0);
	r1 = heap32[(r0+1)];
if(!(r1 ==0)) //_LBB15_23
{
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
	r1 = heap32[(r0+15)];
if(!(r1 ==0)) //_LBB15_25
{
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
	r1 = heap32[(r0+13)];
if(!(r1 ==0)) //_LBB15_27
{
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
	r1 = heap32[(r0+14)];
if(!(r1 ==0)) //_LBB15_29
{
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
	r0 = heap32[(r0+16)];
if(!(r0 ==0)) //_LBB15_31
{
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	return;
}

function _ZN7RagDollD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV7RagDoll;
	r2 = 0;
	r3 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r3)] = r1;
	r1 = r2;
_1: while(true){
	r4 = heap32[(r3+1)];
	r5 = r1 << 2;
	r6 = r4 >> 2;
	r5 = (r0 - r5)|0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r6+14)];
	r7 = heap32[(r5+24)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r4 = heap32[(r5+24)];
if(!(r4 ==0)) //_LBB16_3
{
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+1)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
	r4 = (r2 - r1)|0;
	r4 = r4 << 2;
	r4 = (r0 + r4)|0;
	r1 = (r1 + -1)|0;
	r4 = r4 >> 2;
	heap32[(r4+24)] = 0;
	if(r1 !=-10) //_LBB16_1
{
continue _1;
}
else{
break _1;
}
}
	r1 = 2;
_7: while(true){
	r2 = heap32[(r3+1)];
	r4 = r2 >> 2;
	r5 = r1 << 2;
	r4 = heap32[(r4)];
	r5 = (r0 + r5)|0;
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	r4 = heap32[(r4+21)];
	r6 = heap32[(r5+11)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r2 = heap32[(r5+11)];
	r4 = r2 >> 2;
	r4 = heap32[(r4+118)];
	if(r4 !=0) //_LBB16_7
{
	r2 = r4 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = heap32[(r5+11)];
}
if(!(r2 ==0)) //_LBB16_10
{
	r4 = r2 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
	heap32[(r5+11)] = 0;
	r2 = heap32[(r5)];
if(!(r2 ==0)) //_LBB16_12
{
	r4 = r2 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+1)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
	r1 = (r1 + 1)|0;
	heap32[(r5)] = 0;
	if(r1 !=13) //_LBB16_5
{
continue _7;
}
else{
break _7;
}
}
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN7RagDollD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV7RagDoll;
	r2 = 0;
	r3 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r3)] = r1;
	r1 = r2;
_1: while(true){
	r4 = heap32[(r3+1)];
	r5 = r1 << 2;
	r6 = r4 >> 2;
	r5 = (r0 - r5)|0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r6+14)];
	r7 = heap32[(r5+24)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r4 = heap32[(r5+24)];
if(!(r4 ==0)) //_LBB17_3
{
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+1)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
	r4 = (r2 - r1)|0;
	r4 = r4 << 2;
	r4 = (r0 + r4)|0;
	r1 = (r1 + -1)|0;
	r4 = r4 >> 2;
	heap32[(r4+24)] = 0;
	if(r1 !=-10) //_LBB17_1
{
continue _1;
}
else{
break _1;
}
}
	r1 = 2;
_7: while(true){
	r2 = heap32[(r3+1)];
	r4 = r2 >> 2;
	r5 = r1 << 2;
	r4 = heap32[(r4)];
	r5 = (r0 + r5)|0;
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	r4 = heap32[(r4+21)];
	r6 = heap32[(r5+11)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r2 = heap32[(r5+11)];
	r4 = r2 >> 2;
	r4 = heap32[(r4+118)];
	if(r4 !=0) //_LBB17_7
{
	r2 = r4 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = heap32[(r5+11)];
}
if(!(r2 ==0)) //_LBB17_10
{
	r4 = r2 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
	heap32[(r5+11)] = 0;
	r2 = heap32[(r5)];
if(!(r2 ==0)) //_LBB17_12
{
	r4 = r2 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+1)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
	r1 = (r1 + 1)|0;
	heap32[(r5)] = 0;
	if(r1 !=13) //_LBB17_5
{
continue _7;
}
else{
break _7;
}
}
	return;
}

function _ZN13BenchmarkDemoD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13BenchmarkDemo;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
	r1 = heap32[(r2+11)];
if(!(r1 ==0)) //_LBB18_4
{
	r3 = heapU8[r0+48];
if(!(r3 ==0)) //_LBB18_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+11)] = 0;
}
	r1 = 1;
	heap8[r0+48] = r1;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	r3 = heap32[(r2+6)];
if(!(r3 ==0)) //_LBB18_8
{
	r4 = heapU8[r0+28];
if(!(r4 ==0)) //_LBB18_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+6)] = 0;
}
	heap8[r0+28] = r1;
	heap32[(r2+6)] = 0;
	heap32[(r2+4)] = 0;
	heap32[(r2+5)] = 0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -168;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
if(!(r0 ==0)) //_LBB19_3
{
	r1 = r0 >> 2;
	r1 = heap32[(r1+1)];
if(!(r1 !=35)) //_LBB19_3
{
	r0 = _2E_str5;
	r1 = _2E_str6;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1297;
	_assert(i7);
}
}
	f0 = heapFloat[(fp+1)];
	r1 = sp + -152;
	r2 = r1 >> 2;
	heap32[(fp+-38)] = 0;
	heap32[(r2+1)] = 0;
	heap32[(r2+2)] = 0;
	f1 =                         0;
	heap32[(r2+3)] = 0;
if(!(f0 ==f1)) //_LBB19_5
{
	r3 = r0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+8)];
	heap32[(g0)] = r0;
	heapFloat[(g0+1)] = f0;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
	r1 = heap32[(fp)];
	r3 = heap32[(fp+2)];
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	heap32[(r4)] = r5;
	heap32[(g0)] = 627;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB19_7
{
	r5 = 0;
	r6 = (r4 + 4)|0;
	r5 = (r5 - r6)|0;
	r5 = r5 & 15;
	r5 = (r4 + r5)|0;
	r6 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
	r4 = r6;
}
	r5 = r4 >> 2;
	heap32[(r5+41)] = 1065353216;
	heap32[(r5+42)] = 1065353216;
	heap32[(r5+43)] = 1065353216;
	heap32[(r5+44)] = 0;
	heap32[(r5+45)] = 0;
	heap32[(r5+46)] = 1566444395;
	heap32[(r5+47)] = 0;
	heap32[(r5+48)] = 0;
	heap32[(r5+49)] = 0;
	heap32[(r5+50)] = 0;
	heap32[(r5+51)] = 1;
	heap32[(r5+52)] = -1;
	heap32[(r5+53)] = -1;
	heap32[(r5+54)] = 1;
	heap32[(r5+55)] = 0;
	heap32[(r5+56)] = 1056964608;
	heap32[(r5+57)] = 0;
	heap32[(r5+58)] = 1;
	heap32[(r5+59)] = 0;
	heap32[(r5+60)] = 1065353216;
	heap32[(r5+61)] = 0;
	heap32[(r5+62)] = 0;
	heap32[(r5+63)] = 0;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	heap32[(r5+4)] = 0;
	heap32[(r5+5)] = 0;
	heap32[(r5+6)] = 1065353216;
	heap32[(r5+7)] = 0;
	heap32[(r5+8)] = 0;
	heap32[(r5+9)] = 0;
	heap32[(r5+10)] = 0;
	heap32[(r5+11)] = 1065353216;
	heap32[(r5+12)] = 0;
	heap32[(r5+13)] = 0;
	heap32[(r5+14)] = 0;
	r6 = _ZTV11btRigidBody;
	heap32[(r5+15)] = 0;
	r6 = (r6 + 8)|0;
	heap32[(r5+16)] = 0;
	r7 = 1;
	heap32[(r5)] = r6;
	heap8[r4+492] = r7;
	heap32[(r5+122)] = 0;
	heap32[(r5+120)] = 0;
	r6 = sp + -136;
	heap32[(r5+121)] = 0;
	r7 = r6 >> 2;
	heapFloat[(fp+-34)] = f0;
	heap32[(r7+1)] = 0;
	heap32[(r7+18)] = r0;
	heap32[(r7+19)] = heap32[(fp+-38)];
	heap32[(r7+20)] = heap32[(r2+1)];
	heap32[(r7+21)] = heap32[(r2+2)];
	heap32[(r7+22)] = heap32[(r2+3)];
	heap32[(r7+23)] = 0;
	heap32[(r7+24)] = 0;
	heap32[(r7+25)] = 1056964608;
	heap32[(r7+26)] = 0;
	heap32[(r7+27)] = 1061997773;
	r0 = 0;
	heap32[(r7+28)] = 1065353216;
	heap8[sp+-20] = r0;
	heap32[(r7+30)] = 1000593162;
	heap32[(r7+31)] = 1008981770;
	heap32[(r7+32)] = 1008981770;
	heap32[(r7+33)] = 1008981770;
	heap32[(r7+2)] = 1065353216;
	heap32[(r7+3)] = 0;
	heap32[(r7+4)] = 0;
	heap32[(r7+5)] = 0;
	heap32[(r7+6)] = 0;
	heap32[(r7+7)] = 1065353216;
	heap32[(r7+8)] = 0;
	heap32[(r7+9)] = 0;
	heap32[(r7+10)] = 0;
	heap32[(r7+11)] = 0;
	heap32[(r7+12)] = 1065353216;
	heap32[(r7+13)] = 0;
	heap32[(r7+14)] = 0;
	heap32[(r7+15)] = 0;
	heap32[(r7+16)] = 0;
	heap32[(r7+17)] = 0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r6;
	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
	r0 = r3 >> 2;
	heap32[(r5+1)] = heap32[(r0)];
	heap32[(r5+2)] = heap32[(r0+1)];
	heap32[(r5+3)] = heap32[(r0+2)];
	heap32[(r5+4)] = heap32[(r0+3)];
	heap32[(r5+5)] = heap32[(r0+4)];
	heap32[(r5+6)] = heap32[(r0+5)];
	heap32[(r5+7)] = heap32[(r0+6)];
	heap32[(r5+8)] = heap32[(r0+7)];
	heap32[(r5+9)] = heap32[(r0+8)];
	heap32[(r5+10)] = heap32[(r0+9)];
	heap32[(r5+11)] = heap32[(r0+10)];
	heap32[(r5+12)] = heap32[(r0+11)];
	heap32[(r5+13)] = heap32[(r0+12)];
	heap32[(r5+14)] = heap32[(r0+13)];
	heap32[(r5+15)] = heap32[(r0+14)];
	r1 = r1 >> 2;
	heap32[(r5+16)] = heap32[(r0+15)];
	heap32[(r5+46)] = heap32[(r1+2)];
	r0 = heap32[(r1+1)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+20)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r_g0 = r4;
	return;
}

function _ZN13BenchmarkDemoD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13BenchmarkDemo;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
	r1 = heap32[(r2+11)];
if(!(r1 ==0)) //_LBB20_4
{
	r3 = heapU8[r0+48];
if(!(r3 ==0)) //_LBB20_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+11)] = 0;
}
	r1 = 1;
	heap8[r0+48] = r1;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	r3 = heap32[(r2+6)];
if(!(r3 ==0)) //_LBB20_8
{
	r4 = heapU8[r0+28];
if(!(r4 ==0)) //_LBB20_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+6)] = 0;
}
	heap8[r0+28] = r1;
	heap32[(r2+6)] = 0;
	heap32[(r2+4)] = 0;
	heap32[(r2+5)] = 0;
	return;
}

function _ZN13BenchmarkDemo20clientMoveAndDisplayEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -128;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
if(!(r1 ==0)) //_LBB21_2
{
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 1015580809;
	heap32[(g0+2)] = 1;
	heap32[(g0+3)] = 1015580809;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(r0+1)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+5)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
	r1 = heap32[(r0+17)];
if(!(r1 !=7)) //_LBB21_10
{
	r1 = _ZL10raycastBar;
	r2 = r1 >> 2;
	r0 = heap32[(r0+1)];
	r3 = heap32[(r2+10006)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 0;
	r3 = 0;
	gettimeofday(i7);
_6: while(true){
	r4 = sp + -96;
	r5 = r4 >> 2;
	heap32[(r5+1)] = 1065353216;
	r6 = 1;
	heap32[(r5+2)] = 0;
	r7 = -1;
	heap16[(sp+-84)>>1] = r6;
	r6 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
	heap16[(sp+-82)>>1] = r7;
	r7 = (r1 + r3)|0;
	r6 = (r6 + 8)|0;
	heap32[(r5+4)] = 0;
	r8 = r7 >> 2;
	heap32[(fp+-24)] = r6;
	heap32[(r5+5)] = heap32[(r8)];
	heap32[(r5+6)] = heap32[(r8+1)];
	heap32[(r5+7)] = heap32[(r8+2)];
	heap32[(r5+8)] = heap32[(r8+3)];
	heap32[(r5+9)] = heap32[(r8+2000)];
	heap32[(r5+10)] = heap32[(r8+2001)];
	heap32[(r5+11)] = heap32[(r8+2002)];
	r9 = r0 >> 2;
	heap32[(r5+12)] = heap32[(r8+2003)];
	r9 = heap32[(r9)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+7)];
	r10 = (r7 + 8000)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r4 = heap32[(r5+2)];
	if(r4 ==0) //_LBB21_6
{
	r4 = r7 >> 2;
	r5 = r7 >> 2;
	r9 = r7 >> 2;
	r10 = r7 >> 2;
	heap32[(r4+6000)] = heap32[(r5+2000)];
	r4 = r7 >> 2;
	r5 = r7 >> 2;
	heap32[(r9+6001)] = heap32[(r10+2001)];
	r9 = r7 >> 2;
	r10 = r7 >> 2;
	heap32[(r4+6002)] = heap32[(r5+2002)];
	r4 = r7 >> 2;
	heap32[(r9+6003)] = heap32[(r10+2003)];
	r5 = r7 >> 2;
	heap32[(r4+8000)] = 1065353216;
	r4 = r7 >> 2;
	heap32[(r5+8001)] = 0;
	heap32[(r4+8002)] = 0;
	heap32[(r8+8003)] = 0;
}
else{
	r4 = r7 >> 2;
	r9 = r7 >> 2;
	heap32[(r4+6000)] = heap32[(r5+17)];
	r4 = r7 >> 2;
	heap32[(r9+6001)] = heap32[(r5+18)];
	r9 = r7 >> 2;
	heap32[(r4+6002)] = heap32[(r5+19)];
	heap32[(r9+6003)] = heap32[(r5+20)];
	f0 = heapFloat[(r5+13)];
	r4 = r7 >> 2;
	heapFloat[(r4+8000)] = f0;
	f1 = heapFloat[(r5+14)];
	r9 = r7 >> 2;
	heapFloat[(r9+8001)] = f1;
	f2 = heapFloat[(r5+15)];
	r7 = r7 >> 2;
	f0 = f0*f0;
	f1 = f1*f1;
	heapFloat[(r7+8002)] = f2;
	heap32[(r8+8003)] = heap32[(r5+16)];
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	f0 = f1/f_g0;
	f1 = heapFloat[(r4+8000)];
	f1 = f1*f0;
	heapFloat[(r4+8000)] = f1;
	f1 = heapFloat[(r9+8001)];
	f1 = f1*f0;
	heapFloat[(r9+8001)] = f1;
	f1 = heapFloat[(r7+8002)];
	f0 = f1*f0;
	heapFloat[(r7+8002)] = f0;
}
	r3 = (r3 + 16)|0;
	heap32[(fp+-24)] = r6;
if(!(r3 !=8000)) //_LBB21_4
{
break _6;
}
}
	r0 = heap32[(r2+10001)];
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	gettimeofday(i7);
	r3 = heap32[(r2+10006)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 - r5)|0;
	r1 = (r1 / 1000)|0;
	r3 = (r3 * 1000)|0;
	r1 = (r1 + r3)|0;
	r0 = (r1 + r0)|0;
	heap32[(r2+10001)] = r0;
	r1 = heap32[(r2+10000)];
	r1 = (r1 + 1)|0;
	heap32[(r2+10000)] = r1;
if(!(r1 <51)) //_LBB21_10
{
	r3 = heap32[(r2+10004)];
	r3 = r0 < r3 ? r0 : r3;
	heap32[(r2+10004)] = r3;
	r4 = heap32[(r2+10005)];
	r4 = r0 > r4 ? r0 : r4;
	heap32[(r2+10005)] = r4;
	r5 = heap32[(r2+10002)];
	r5 = (r0 + r5)|0;
	heap32[(r2+10002)] = r5;
	r6 = heap32[(r2+10003)];
	r6 = (r6 + 1)|0;
	f0 = r5; //fitos r5, f0
	f1 = r6; //fitos r6, f1
	f0 = f0/f1;
	heap32[(r2+10003)] = r6;
	r5 = _2E_str7;
	r1 = (r1 * 500)|0;
	f0 = f0; //fstod f0, f0
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	llvm_writeDouble((i7+24),f0);
	printf(i7);
	heap32[(r2+10001)] = 0;
	heap32[(r2+10000)] = 0;
}
}
	return;
}

function _ZN13BenchmarkDemo10createWallERK9btVector3iS2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
var __label__ = 0;
	i7 = sp + -96;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = gNumAlignedAllocs;
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	f0 = heapFloat[(r0+2)];
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r0)];
	r2 = (r2 + 1)|0;
	heap32[(r1)] = r2;
	heap32[(g0)] = 71;
	malloc(i7);
	r1 = r_g0;
	r2 = heap32[(fp)];
	if(r1 !=0) //_LBB22_2
{
	r3 = 0;
	r4 = (r1 + 4)|0;
	r3 = (r3 - r4)|0;
	r3 = r3 & 15;
	r3 = (r1 + r3)|0;
	r4 = (r3 + 4)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r1;
	r1 = r4;
}
	r3 = r1 >> 2;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 1065353216;
	heap32[(r3+4)] = 1065353216;
	heap32[(r3+5)] = 1065353216;
	r4 = _ZTV10btBoxShape;
	heap32[(r3+6)] = 0;
	r4 = (r4 + 8)|0;
	heap32[(r3+11)] = 1025758986;
	heap32[(r3)] = r4;
	f3 =     -0.039999999105930328;
	f2 = f2+f3;
	heap32[(r3+1)] = 0;
	f1 = f1+f3;
	heapFloat[(r3+7)] = f2;
	f0 = f0+f3;
	heapFloat[(r3+8)] = f1;
	heapFloat[(r3+9)] = f0;
	r4 = sp + -16;
	heap32[(r3+10)] = 0;
	r3 = r4 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r4;
	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
	f4 = heapFloat[(r0+1)];
	f0 = heapFloat[(r0+2)];
	r0 = sp + -80;
	r3 = r0 >> 2;
	heap32[(fp+-20)] = 1065353216;
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
	heap32[(r3+4)] = 0;
	heap32[(r3+5)] = 1065353216;
	heap32[(r3+6)] = 0;
	heap32[(r3+7)] = 0;
	heap32[(r3+8)] = 0;
	heap32[(r3+9)] = 0;
	heap32[(r3+10)] = 1065353216;
	heap32[(r3+11)] = 0;
	f1 = f0+f0;
	f2 =                       -12;
	heap32[(r3+12)] = 0;
	heap32[(r3+13)] = 0;
	f2 = f1*f2;
	f3 =                       0.5;
	f3 = f2*f3;
	f2 = f4+f4;
	r5 = 12;
	heap32[(r3+14)] = 0;
	heap32[(r3+15)] = 0;
_4: while(true){
if(!(r5 <1)) //_LBB22_4
{
	r4 = 0;
_8: while(true){
	r6 = r2 >> 2;
	f5 = r4; //fitos r4, f5
	f6 =                         0;
	f7 = heapFloat[(r6)];
	f8 = heapFloat[(r6+2)];
	f9 = heapFloat[(r6+1)];
	f5 = f5*f1;
	f6 = f7+f6;
	f5 = f5+f3;
	f7 = f9+f4;
	heapFloat[(r3+12)] = f6;
	f5 = f8+f5;
	heapFloat[(r3+13)] = f7;
	r6 = _ZL14benchmarkDemo4;
	heapFloat[(r3+14)] = f5;
	r7 = r6 >> 2;
	heap32[(r3+15)] = 0;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+2)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r1;
	r4 = (r4 + 1)|0;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	if(r5 !=r4) //_LBB22_3
{
continue _8;
}
else{
break _8;
}
}
}
	r5 = (r5 + -1)|0;
	f4 = f4+f2;
	f3 = f3+f0;
	if(r5 ==0) //_LBB22_8
{
break _4;
}
else{
continue _4;
}
}
	return;
}

function _ZN13BenchmarkDemo19createLargeMeshBodyEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
var __label__ = 0;
	i7 = sp + -80;var g0 = i7>>2; // save stack
	r0 = sp + -64;
	r1 = r0 >> 2;
	heap32[(fp+-16)] = 1065353216;
	heap32[(r1+1)] = 0;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 0;
	heap32[(r1+4)] = 0;
	heap32[(r1+5)] = 1065353216;
	heap32[(r1+6)] = 0;
	heap32[(r1+7)] = 0;
	heap32[(r1+8)] = 0;
	heap32[(r1+9)] = 0;
	heap32[(r1+10)] = 1065353216;
	heap32[(r1+11)] = 0;
	heap32[(r1+12)] = 0;
	heap32[(r1+13)] = 0;
	r2 = 0;
	heap32[(r1+14)] = 0;
	heap32[(r1+15)] = 0;
_1: while(true){
	r3 = gNumAlignedAllocs;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r5 = (r4 + 1)|0;
	heap32[(r3)] = r5;
	heap32[(g0)] = 103;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB23_3
{
	r6 = 0;
	r7 = (r5 + 4)|0;
	r6 = (r6 - r7)|0;
	r6 = r6 & 15;
	r6 = (r5 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r5;
	r5 = r7;
}
	r6 = r5 >> 2;
	heap32[(r6+1)] = 1065353216;
	heap32[(r6+2)] = 1065353216;
	r7 = _ZTV26btTriangleIndexVertexArray;
	heap32[(r6+3)] = 1065353216;
	r7 = (r7 + 8)|0;
	heap32[(r6+4)] = 0;
	r8 = 1;
	heap32[(r6)] = r7;
	heap8[r5+36] = r8;
	heap32[(r6+8)] = 0;
	heap32[(r6+6)] = 0;
	r7 = LandscapeVtx;
	r9 = r2 << 2;
	r10 = LandscapeVtxCount;
	r11 = LandscapeIdx;
	r12 = LandscapeIdxCount;
	r7 = (r7 + r9)|0;
	r10 = (r10 + r9)|0;
	r11 = (r11 + r9)|0;
	r9 = (r12 + r9)|0;
	heap32[(r6+7)] = 0;
	r7 = r7 >> 2;
	heap32[(r6+12)] = 0;
	r10 = r10 >> 2;
	r11 = r11 >> 2;
	r9 = r9 >> 2;
	r7 = heap32[(r7)];
	r10 = heap32[(r10)];
	r11 = heap32[(r11)];
	r9 = heap32[(r9)];
	r12 = (r4 + 2)|0;
	heap32[(r3)] = r12;
	heap32[(g0)] = 51;
	malloc(i7);
	r12 = r_g0;
	r9 = (r9 / 3)|0;
	if(r12 !=0) //_LBB23_6
{
	r13 = 0;
	r14 = (r12 + 4)|0;
	r13 = (r13 - r14)|0;
	r13 = r13 & 15;
	r13 = (r12 + r13)|0;
	r14 = (r13 + 4)|0;
	r13 = r13 >> 2;
	heap32[(r13)] = r12;
	r12 = r14;
}
	heap8[r5+36] = r8;
	heap32[(r6+8)] = r12;
	heap32[(r6+7)] = 1;
	r13 = heap32[(r6+6)];
	r13 = r13 << 5;
	r12 = (r12 + r13)|0;
	r12 = r12 >> 2;
	heap32[(r12)] = r9;
	heap32[(r12+1)] = r11;
	heap32[(r12+2)] = 6;
	heap32[(r12+3)] = r10;
	heap32[(r12+4)] = r7;
	heap32[(r12+5)] = 12;
	heap32[(r12+6)] = 3;
	heap32[(r12+7)] = 0;
	r7 = heap32[(r6+6)];
	r9 = (r7 + 1)|0;
	heap32[(r6+6)] = r9;
	r7 = r7 << 5;
	r9 = heap32[(r6+8)];
	r7 = (r9 + r7)|0;
	r7 = r7 >> 2;
	r4 = (r4 + 3)|0;
	heap32[(r7+6)] = 3;
	heap32[(r3)] = r4;
	heap32[(g0)] = 95;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB23_9
{
	r4 = 0;
	r7 = (r3 + 4)|0;
	r4 = (r4 - r7)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r7 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r7;
}
	r4 = r3 >> 2;
	r7 = _ZTV19btTriangleMeshShape;
	heap32[(r4+2)] = 0;
	r7 = (r7 + 8)|0;
	heap32[(r4+3)] = 0;
	heap32[(r4)] = r7;
	heap32[(r4+12)] = r5;
	heap32[(r4+1)] = 21;
	r7 = heap32[(r6)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+10)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r7 = r_g0;
	if(r7 ==0) //_LBB23_12
{
	heap32[(g0)] = r3;
	_ZN19btTriangleMeshShape15recalcLocalAabbEv(i7);
}
else{
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+12)];
	r7 = (r3 + 16)|0;
	r9 = (r3 + 32)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r9;
	__FUNCTION_TABLE__[(r6)>>2](i7);
}
	r5 = _ZTV22btBvhTriangleMeshShape;
	r5 = (r5 + 8)|0;
	heap32[(r4)] = r5;
	heap32[(r4+13)] = 0;
	heap32[(r4+14)] = 0;
	r5 = 0;
	heap8[r3+60] = r8;
	heap8[r3+61] = r5;
	heap32[(r4+1)] = 21;
	heap32[(g0)] = r3;
	_ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(i7);
	heap32[(r1+12)] = 0;
	heap32[(r1+13)] = -1043857408;
	r4 = _ZL14benchmarkDemo4;
	heap32[(r1+14)] = 0;
	r5 = r4 >> 2;
	heap32[(r1+15)] = 0;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+2)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r3;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r2 = (r2 + 1)|0;
	r3 = r_g0 >> 2;
	heap32[(r3+56)] = 1063675494;
	if(r2 !=8) //_LBB23_1
{
continue _1;
}
else{
break _1;
}
}
	return;
}

function _ZN13BenchmarkDemo11createTest6Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
var __label__ = 0;
	i7 = sp + -112;var g0 = i7>>2; // save stack
	r0 = gNumAlignedAllocs;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	heap32[(g0)] = 127;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB24_2
{
	r1 = 0;
	r2 = (r0 + 4)|0;
	r1 = (r1 - r2)|0;
	r1 = r1 & 15;
	r1 = (r0 + r1)|0;
	r2 = (r1 + 4)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = r0;
	r0 = r2;
}
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	r1 = 0;
	_ZN17btConvexHullShapeC1EPKfii(i7);
_4: while(true){
	r2 = (r1 * -3)|0;
	r3 = _ZL7TaruVtx;
	r2 = r2 << 2;
	r2 = (r3 + r2)|0;
	r3 = sp + -96;
	r2 = r2 >> 2;
	r4 = r3 >> 2;
	heap32[(fp+-24)] = heap32[(r2)];
	heap32[(r4+1)] = heap32[(r2+1)];
	heap32[(r4+2)] = heap32[(r2+2)];
	heap32[(r4+3)] = 0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	r1 = (r1 + -1)|0;
	_ZN17btConvexHullShape8addPointERK9btVector3(i7);
	if(r1 ==-43) //_LBB24_10
{
break _4;
}
else{
continue _4;
}
}
	r1 = sp + -64;
	r2 = r1 >> 2;
	heap32[(fp+-16)] = 1065353216;
	heap32[(r2+1)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	heap32[(r2+4)] = 0;
	heap32[(r2+5)] = 1065353216;
	heap32[(r2+6)] = 0;
	heap32[(r2+7)] = 0;
	heap32[(r2+8)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 1065353216;
	heap32[(r2+11)] = 0;
	heap32[(r2+12)] = 0;
	heap32[(r2+13)] = 0;
	heap32[(r2+14)] = 0;
	r3 = sp + -80;
	heap32[(r2+15)] = 0;
	r4 = r3 >> 2;
	heap32[(fp+-20)] = 0;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	r5 = r0 >> 2;
	heap32[(r4+3)] = 0;
	r4 = heap32[(r5)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+8)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r3;
	r3 = 10;
	f0 =                        20;
	f1 =                         2;
	f2 =                       -25;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r7 = _ZL14benchmarkDemo4;
_7: while(true){
	f3 =                         3;
	f4 =                        25;
	f5 = f1+f3;
	f4 = f0+f4;
	r4 = 0;
	r5 = r4;
_9: while(true){
	f6 = r5; //fitos r5, f6
	f6 = f6*f5;
	f6 = f6+f2;
	f7 =                         5;
	f6 = f6*f7;
	f8 =                         0;
	f6 = f6+f8;
	r6 = r4;
_11: while(true){
	f9 = r6; //fitos r6, f9
	f9 = f9*f5;
	f9 = f9+f2;
	f9 = f9*f7;
	f9 = f9+f8;
	heapFloat[(r2+12)] = f9;
	heapFloat[(r2+13)] = f4;
	heapFloat[(r2+14)] = f6;
	r8 = r7 >> 2;
	heap32[(r2+15)] = 0;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	heap32[(g0)] = r7;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r0;
	r6 = (r6 + 1)|0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	if(r6 !=10) //_LBB24_7
{
continue _11;
}
else{
break _11;
}
}
	r5 = (r5 + 1)|0;
	if(r5 !=10) //_LBB24_6
{
continue _9;
}
else{
break _9;
}
}
	f4 =        1.1000000238418579;
	f5 =      -0.05000000074505806;
	f4 = f1*f4;
	f1 = f1*f5;
	f5 =                         9;
	f3 = f4+f3;
	f1 = f1*f5;
	r3 = (r3 + -1)|0;
	f0 = f0+f3;
	f2 = f1+f2;
	f1 = f4;
	if(r3 ==0) //_LBB24_11
{
break _7;
}
else{
continue _7;
}
}
	_ZN13BenchmarkDemo19createLargeMeshBodyEv(i7);
	return;
}

function _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -168;var g0 = i7>>2; // save stack
	r0 = sp + -16;
	r1 = r0 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r1+1)] = 0;
	r2 = heap32[(fp+2)];
	heap32[(r1+2)] = 0;
	r3 = r2 >> 2;
	heap32[(r1+3)] = 0;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+8)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r0;
	r0 = _ZGVZN11btTransform11getIdentityEvE17identityTransform;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = heapU8[r0];
if(!(r3 !=0)) //_LBB25_4
{
	r3 = _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix;
	r4 = heapU8[r3];
if(!(r4 !=0)) //_LBB25_3
{
	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
	r5 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
	r4 = r4 >> 2;
	r6 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
	r5 = r5 >> 2;
	heap32[(r4)] = 1065353216;
	r4 = r6 >> 2;
	heap32[(r5)] = 1065353216;
	r5 = 1;
	heap32[(r4)] = 1065353216;
	heap8[r3] = r5;
}
	r3 = _ZZN11btTransform11getIdentityEvE17identityTransform;
	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
	r3 = r3 >> 2;
	r4 = r4 >> 2;
	heap32[(r3)] = heap32[(r4)];
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
	heap32[(r3+3)] = 0;
	r4 = r4 >> 2;
	heap32[(r3+4)] = 0;
	heap32[(r3+5)] = heap32[(r4)];
	heap32[(r3+6)] = 0;
	heap32[(r3+7)] = 0;
	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
	heap32[(r3+8)] = 0;
	r4 = r4 >> 2;
	heap32[(r3+9)] = 0;
	heap32[(r3+10)] = heap32[(r4)];
	heap32[(r3+11)] = 0;
	heap32[(r3+12)] = 0;
	heap32[(r3+13)] = 0;
	heap32[(r3+14)] = 0;
	r4 = 1;
	heap32[(r3+15)] = 0;
	heap8[r0] = r4;
}
	r0 = heap32[(fp)];
	r3 = heap32[(fp+1)];
	heap32[(g0)] = 200;
	r4 = _ZTV20btDefaultMotionState;
	_Znwj(i7);
	r6 = r_g0 >> 2;
	r4 = (r4 + 8)|0;
	r3 = r3 >> 2;
	heap32[(r6)] = r4;
	heap32[(r6+1)] = heap32[(r3)];
	heap32[(r6+2)] = heap32[(r3+1)];
	heap32[(r6+3)] = heap32[(r3+2)];
	heap32[(r6+4)] = heap32[(r3+3)];
	heap32[(r6+5)] = heap32[(r3+4)];
	heap32[(r6+6)] = heap32[(r3+5)];
	heap32[(r6+7)] = heap32[(r3+6)];
	heap32[(r6+8)] = heap32[(r3+7)];
	heap32[(r6+9)] = heap32[(r3+8)];
	heap32[(r6+10)] = heap32[(r3+9)];
	heap32[(r6+11)] = heap32[(r3+10)];
	heap32[(r6+12)] = heap32[(r3+11)];
	heap32[(r6+13)] = heap32[(r3+12)];
	heap32[(r6+14)] = heap32[(r3+13)];
	r4 = _ZZN11btTransform11getIdentityEvE17identityTransform;
	heap32[(r6+15)] = heap32[(r3+14)];
	r4 = r4 >> 2;
	heap32[(r6+16)] = heap32[(r3+15)];
	heap32[(r6+17)] = heap32[(r4)];
	heap32[(r6+18)] = heap32[(r4+1)];
	heap32[(r6+19)] = heap32[(r4+2)];
	heap32[(r6+20)] = heap32[(r4+3)];
	heap32[(r6+21)] = heap32[(r4+4)];
	heap32[(r6+22)] = heap32[(r4+5)];
	heap32[(r6+23)] = heap32[(r4+6)];
	heap32[(r6+24)] = heap32[(r4+7)];
	heap32[(r6+25)] = heap32[(r4+8)];
	heap32[(r6+26)] = heap32[(r4+9)];
	heap32[(r6+27)] = heap32[(r4+10)];
	heap32[(r6+28)] = heap32[(r4+11)];
	heap32[(r6+29)] = heap32[(r4+12)];
	heap32[(r6+30)] = heap32[(r4+13)];
	heap32[(r6+31)] = heap32[(r4+14)];
	heap32[(r6+32)] = heap32[(r4+15)];
	heap32[(r6+33)] = heap32[(r3)];
	heap32[(r6+34)] = heap32[(r3+1)];
	heap32[(r6+35)] = heap32[(r3+2)];
	heap32[(r6+36)] = heap32[(r3+3)];
	heap32[(r6+37)] = heap32[(r3+4)];
	heap32[(r6+38)] = heap32[(r3+5)];
	heap32[(r6+39)] = heap32[(r3+6)];
	heap32[(r6+40)] = heap32[(r3+7)];
	heap32[(r6+41)] = heap32[(r3+8)];
	heap32[(r6+42)] = heap32[(r3+9)];
	heap32[(r6+43)] = heap32[(r3+10)];
	heap32[(r6+44)] = heap32[(r3+11)];
	heap32[(r6+45)] = heap32[(r3+12)];
	heap32[(r6+46)] = heap32[(r3+13)];
	heap32[(r6+47)] = heap32[(r3+14)];
	heap32[(r6+48)] = heap32[(r3+15)];
	r3 = sp + -152;
	heap32[(r6+49)] = 0;
	r4 = r3 >> 2;
	heap32[(fp+-38)] = 1065353216;
	heap32[(r4+1)] = r_g0;
	heap32[(r4+18)] = r2;
	heap32[(r4+19)] = heap32[(fp+-4)];
	heap32[(r4+20)] = heap32[(r1+1)];
	heap32[(r4+21)] = heap32[(r1+2)];
	heap32[(r4+22)] = heap32[(r1+3)];
	heap32[(r4+23)] = 0;
	heap32[(r4+24)] = 0;
	heap32[(r4+25)] = 1056964608;
	heap32[(r4+26)] = 0;
	heap32[(r4+27)] = 1061997773;
	r1 = 0;
	heap32[(r4+28)] = 1065353216;
	heap8[sp+-36] = r1;
	heap32[(r4+30)] = 1000593162;
	heap32[(r4+31)] = 1008981770;
	heap32[(r4+32)] = 1008981770;
	heap32[(r4+33)] = 1008981770;
	heap32[(r4+2)] = 1065353216;
	heap32[(r4+3)] = 0;
	heap32[(r4+4)] = 0;
	heap32[(r4+5)] = 0;
	heap32[(r4+6)] = 0;
	heap32[(r4+7)] = 1065353216;
	heap32[(r4+8)] = 0;
	heap32[(r4+9)] = 0;
	heap32[(r4+10)] = 0;
	heap32[(r4+11)] = 0;
	heap32[(r4+12)] = 1065353216;
	heap32[(r4+13)] = 0;
	heap32[(r4+14)] = 0;
	heap32[(r4+15)] = 0;
	r2 = gNumAlignedAllocs;
	heap32[(r4+16)] = 0;
	r2 = r2 >> 2;
	heap32[(r4+17)] = 0;
	r4 = heap32[(r2)];
	r4 = (r4 + 1)|0;
	heap32[(r2)] = r4;
	heap32[(g0)] = 627;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB25_6
{
	r4 = (r2 + 4)|0;
	r1 = (r1 - r4)|0;
	r1 = r1 & 15;
	r1 = (r2 + r1)|0;
	r4 = (r1 + 4)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = r2;
	r2 = r4;
}
	r1 = r2 >> 2;
	heap32[(r1+41)] = 1065353216;
	heap32[(r1+42)] = 1065353216;
	heap32[(r1+43)] = 1065353216;
	heap32[(r1+44)] = 0;
	heap32[(r1+45)] = 0;
	heap32[(r1+46)] = 1566444395;
	heap32[(r1+47)] = 0;
	heap32[(r1+48)] = 0;
	heap32[(r1+49)] = 0;
	heap32[(r1+50)] = 0;
	heap32[(r1+51)] = 1;
	heap32[(r1+52)] = -1;
	heap32[(r1+53)] = -1;
	heap32[(r1+54)] = 1;
	heap32[(r1+55)] = 0;
	heap32[(r1+56)] = 1056964608;
	heap32[(r1+57)] = 0;
	heap32[(r1+58)] = 1;
	heap32[(r1+59)] = 0;
	heap32[(r1+60)] = 1065353216;
	heap32[(r1+61)] = 0;
	heap32[(r1+62)] = 0;
	heap32[(r1+63)] = 0;
	heap32[(r1+1)] = 1065353216;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 0;
	heap32[(r1+4)] = 0;
	heap32[(r1+5)] = 0;
	heap32[(r1+6)] = 1065353216;
	heap32[(r1+7)] = 0;
	heap32[(r1+8)] = 0;
	heap32[(r1+9)] = 0;
	heap32[(r1+10)] = 0;
	heap32[(r1+11)] = 1065353216;
	heap32[(r1+12)] = 0;
	heap32[(r1+13)] = 0;
	heap32[(r1+14)] = 0;
	r4 = _ZTV11btRigidBody;
	heap32[(r1+15)] = 0;
	r4 = (r4 + 8)|0;
	heap32[(r1+16)] = 0;
	r5 = 1;
	heap32[(r1)] = r4;
	heap8[r2+492] = r5;
	heap32[(r1+122)] = 0;
	heap32[(r1+120)] = 0;
	heap32[(r1+121)] = 0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+20)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r_g0 = r2;
	return;
}

function _ZN13BenchmarkDemo11initPhysicsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
var __label__ = 0;
	i7 = sp + -41432;var g0 = i7>>2; // save stack
	heap32[(g0)] = 88;
	_Znwj(i7);
	r0 = r_g0;
	r1 = _ZTV31btDefaultCollisionConfiguration;
	r2 = gNumAlignedAllocs;
	r3 = r0 >> 2;
	r1 = (r1 + 8)|0;
	r2 = r2 >> 2;
	heap32[(r3)] = r1;
	r1 = heap32[(r2)];
	r3 = (r1 + 1)|0;
	heap32[(r2)] = r3;
	heap32[(g0)] = 379;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_2
{
	r4 = 0;
	r5 = (r3 + 4)|0;
	r4 = (r4 - r5)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r5 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r5;
}
	r4 = r3 >> 2;
	heap32[(r4+77)] = 953267991;
	r4 = heapU8[r3+332];
	r4 = r4 & 240;
	r5 = r0 >> 2;
	heap8[r3+332] = r4;
	r4 = (r1 + 2)|0;
	heap32[(r5+8)] = r3;
	heap32[(r2)] = r4;
	heap32[(g0)] = 23;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_5
{
	r4 = 0;
	r6 = (r3 + 4)|0;
	r4 = (r4 - r6)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r6 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r6;
}
	r4 = _ZTV30btGjkEpaPenetrationDepthSolver;
	r6 = r3 >> 2;
	r4 = (r4 + 8)|0;
	heap32[(r6)] = r4;
	r4 = (r1 + 3)|0;
	heap32[(r5+9)] = r3;
	heap32[(r2)] = r4;
	heap32[(g0)] = 43;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB26_8
{
	r3 = 0;
	r6 = (r4 + 4)|0;
	r3 = (r3 - r6)|0;
	r3 = r3 & 15;
	r3 = (r4 + r3)|0;
	r6 = r3 >> 2;
	heap32[(r6)] = r4;
	r4 = (r3 + 4)|0;
	r3 = heap32[(r5+9)];
}
	r6 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
	r7 = heap32[(r5+8)];
	r8 = 0;
	r9 = r4 >> 2;
	r6 = (r6 + 8)|0;
	heap8[r4+4] = r8;
	heap32[(r9)] = r6;
	heap32[(r9+4)] = 0;
	heap32[(r9+5)] = 3;
	heap32[(r9+3)] = r7;
	heap32[(r9+2)] = r3;
	r3 = (r1 + 4)|0;
	heap32[(r5+10)] = r4;
	heap32[(r2)] = r3;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_11
{
	r4 = (r3 + 4)|0;
	r4 = (r8 - r4)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r6 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r6;
}
	r4 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE;
	r6 = r3 >> 2;
	r4 = (r4 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r6)] = r4;
	r4 = (r1 + 5)|0;
	heap32[(r5+11)] = r3;
	heap32[(r2)] = r4;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_14
{
	r4 = (r3 + 4)|0;
	r4 = (r8 - r4)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r6 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r6;
}
	r4 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE;
	r6 = r3 >> 2;
	r4 = (r4 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r6)] = r4;
	r4 = (r1 + 6)|0;
	heap32[(r5+12)] = r3;
	heap32[(r2)] = r4;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_17
{
	r4 = (r3 + 4)|0;
	r4 = (r8 - r4)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r6 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r6;
}
	r4 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE;
	r6 = r3 >> 2;
	r4 = (r4 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r6)] = r4;
	r4 = (r1 + 7)|0;
	heap32[(r5+13)] = r3;
	heap32[(r2)] = r4;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_20
{
	r4 = (r3 + 4)|0;
	r4 = (r8 - r4)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r6 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r6;
}
	r4 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE;
	r6 = r3 >> 2;
	r4 = (r4 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r6)] = r4;
	r4 = (r1 + 8)|0;
	heap32[(r5+14)] = r3;
	heap32[(r2)] = r4;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_23
{
	r4 = (r3 + 4)|0;
	r4 = (r8 - r4)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r6 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r6;
}
	r4 = _ZTVN16btEmptyAlgorithm10CreateFuncE;
	r6 = r3 >> 2;
	r4 = (r4 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r6)] = r4;
	r4 = (r1 + 9)|0;
	heap32[(r5+15)] = r3;
	heap32[(r2)] = r4;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_26
{
	r4 = (r3 + 4)|0;
	r4 = (r8 - r4)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r6 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r6;
}
	r4 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE;
	r6 = r3 >> 2;
	r4 = (r4 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r6)] = r4;
	r4 = (r1 + 10)|0;
	heap32[(r5+16)] = r3;
	heap32[(r2)] = r4;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_29
{
	r4 = (r3 + 4)|0;
	r4 = (r8 - r4)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r6 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r6;
}
	r4 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE;
	r6 = r3 >> 2;
	r4 = (r4 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r6)] = r4;
	r6 = (r1 + 11)|0;
	heap32[(r5+18)] = r3;
	heap32[(r2)] = r6;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_32
{
	r6 = (r3 + 4)|0;
	r6 = (r8 - r6)|0;
	r6 = r6 & 15;
	r6 = (r3 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r3;
	r3 = r7;
}
	r6 = r3 >> 2;
	heap8[r3+4] = r8;
	heap32[(r6)] = r4;
	r4 = 1;
	heap32[(r5+19)] = r3;
	r6 = (r1 + 12)|0;
	heap8[r3+4] = r4;
	heap32[(r2)] = r6;
	heap32[(g0)] = 27;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_35
{
	r6 = (r3 + 4)|0;
	r6 = (r8 - r6)|0;
	r6 = r6 & 15;
	r6 = (r3 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r3;
	r3 = r7;
}
	r6 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE;
	r7 = r3 >> 2;
	r6 = (r6 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r7)] = r6;
	r6 = (r1 + 13)|0;
	heap32[(r5+17)] = r3;
	heap32[(r2)] = r6;
	heap32[(g0)] = 35;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_38
{
	r6 = (r3 + 4)|0;
	r6 = (r8 - r6)|0;
	r6 = r6 & 15;
	r6 = (r3 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r3;
	r3 = r7;
}
	r6 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE;
	r7 = r3 >> 2;
	r6 = (r6 + 8)|0;
	heap8[r3+4] = r8;
	heap32[(r7)] = r6;
	heap32[(r7+2)] = 1;
	heap32[(r7+3)] = 1;
	r7 = (r1 + 14)|0;
	heap32[(r5+21)] = r3;
	heap32[(r2)] = r7;
	heap32[(g0)] = 35;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_41
{
	r7 = (r3 + 4)|0;
	r7 = (r8 - r7)|0;
	r7 = r7 & 15;
	r7 = (r3 + r7)|0;
	r9 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r3;
	r3 = r9;
}
	r7 = r3 >> 2;
	heap8[r3+4] = r8;
	heap32[(r7)] = r6;
	heap32[(r7+2)] = 1;
	heap32[(r7+3)] = 1;
	heap32[(r5+20)] = r3;
	heap8[r3+4] = r4;
	r3 = (r1 + 15)|0;
	heap8[r0+12] = r4;
	heap32[(r2)] = r3;
	heap32[(g0)] = 39;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_44
{
	r6 = (r3 + 4)|0;
	r6 = (r8 - r6)|0;
	r6 = r6 & 15;
	r6 = (r3 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r3;
	r3 = r7;
}
	r6 = r3 >> 2;
	heap32[(r6+1)] = 0;
	heap32[(r6+3)] = 0;
	heap8[r3+16] = r8;
	heap32[(r6)] = 0;
	r7 = (r1 + 16)|0;
	heap32[(r6+2)] = 0;
	heap32[(r2)] = r7;
	heap32[(g0)] = 19;
	malloc(i7);
	r7 = r_g0;
	if(r7 !=0) //_LBB26_47
{
	r9 = (r7 + 4)|0;
	r9 = (r8 - r9)|0;
	r9 = r9 & 15;
	r9 = (r7 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r7;
	r7 = r10;
}
	heap32[(r6)] = r7;
	heap32[(r6+1)] = 0;
	heap32[(r5+2)] = r3;
	r3 = (r1 + 17)|0;
	heap8[r0+20] = r4;
	heap32[(r2)] = r3;
	heap32[(g0)] = 39;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_50
{
	r6 = (r3 + 4)|0;
	r6 = (r8 - r6)|0;
	r6 = r6 & 15;
	r6 = (r3 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r3;
	r3 = r7;
}
	r6 = r3 >> 2;
	heap32[(r6)] = 1140;
	r7 = (r1 + 18)|0;
	heap32[(r6+1)] = 4096;
	heap32[(r2)] = r7;
	heap32[(g0)] = 4669459;
	malloc(i7);
	r7 = r_g0;
	if(r7 !=0) //_LBB26_53
{
	r9 = (r7 + 4)|0;
	r9 = (r8 - r9)|0;
	r9 = r9 & 15;
	r9 = (r7 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r7;
	r7 = r10;
}
	heap32[(r6+4)] = r7;
	r9 = 4095;
	r10 = 1140;
	heap32[(r6+3)] = r7;
	heap32[(r6+2)] = 4096;
	r11 = r7;
_55: while(true){
	r7 = r7 >> 2;
	r10 = (r11 + r10)|0;
	heap32[(r7)] = r10;
	r10 = heap32[(r6)];
	r7 = (r11 + r10)|0;
	r9 = (r9 + -1)|0;
	r11 = r7;
	if(r9 !=0) //_LBB26_55
{
continue _55;
}
else{
break _55;
}
}
	r6 = r7 >> 2;
	heap32[(r6)] = 0;
	heap32[(r5+4)] = r3;
	r3 = (r1 + 19)|0;
	heap8[r0+28] = r4;
	heap32[(r2)] = r3;
	heap32[(g0)] = 39;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_58
{
	r6 = (r3 + 4)|0;
	r6 = (r8 - r6)|0;
	r6 = r6 & 15;
	r6 = (r3 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r3;
	r3 = r7;
}
	r6 = r3 >> 2;
	heap32[(r6)] = 80;
	r1 = (r1 + 20)|0;
	heap32[(r6+1)] = 4096;
	heap32[(r2)] = r1;
	heap32[(g0)] = 327699;
	malloc(i7);
	r1 = r_g0;
	if(r1 !=0) //_LBB26_61
{
	r7 = (r1 + 4)|0;
	r7 = (r8 - r7)|0;
	r7 = r7 & 15;
	r7 = (r1 + r7)|0;
	r9 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r1;
	r1 = r9;
}
	heap32[(r6+4)] = r1;
	r7 = 4095;
	r9 = 80;
	heap32[(r6+3)] = r1;
	heap32[(r6+2)] = 4096;
	r10 = r1;
_64: while(true){
	r1 = r1 >> 2;
	r9 = (r10 + r9)|0;
	heap32[(r1)] = r9;
	r9 = heap32[(r6)];
	r1 = (r10 + r9)|0;
	r7 = (r7 + -1)|0;
	r10 = r1;
	if(r7 !=0) //_LBB26_63
{
continue _64;
}
else{
break _64;
}
}
	r1 = r1 >> 2;
	r6 = _ZL14benchmarkDemo4;
	heap32[(r1)] = 0;
	r1 = r6 >> 2;
	heap32[(r5+6)] = r3;
	heap32[(r1+16)] = r0;
	heap32[(g0)] = 5388;
	_Znwj(i7);
	r0 = r_g0;
	r3 = _ZTV21btCollisionDispatcher;
	r5 = heap32[(r1+16)];
	r3 = (r3 + 8)|0;
	r7 = r0 >> 2;
	heap32[(r7)] = r3;
	heap32[(r7+1)] = 2;
	heap8[r0+24] = r4;
	heap32[(r7+5)] = 0;
	r3 = _ZTV16btManifoldResult;
	heap32[(r7+3)] = 0;
	r3 = (r3 + 8)|0;
	heap32[(r7+4)] = 0;
	heap32[(r7+7)] = r3;
	r3 = _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo__index__;
	heap32[(r7+1346)] = r5;
	heap32[(r7+47)] = r3;
	r3 = r5 >> 2;
	r9 = heap32[(r3)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+3)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	heap32[(r7+48)] = r_g0;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+2)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r5 = (r0 + 200)|0;
	heap32[(r7+49)] = r_g0;
_67: while(true){
	if(r8 >35) //_LBB26_72
{
__label__ = 52;
break _67;
}
else{
	r3 = 0;
_70: while(true){
	if(r3 <36) //_LBB26_65
{
	r7 = r0 >> 2;
	r7 = heap32[(r7+1346)];
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+5)];
	r10 = r3 << 2;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r3;
	r7 = (r5 + r10)|0;
	r7 = r7 >> 2;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r9 = r_g0;
	heap32[(r7)] = r9;
	if(r9 !=0) //_LBB26_67
{
	r3 = (r3 + 1)|0;
}
else{
__label__ = 46;
break _67;
}
}
else{
break _70;
}
}
	r8 = (r8 + 1)|0;
	r5 = (r5 + 144)|0;
continue _67;
}
}
switch(__label__ ){//multiple entries
case 52:
	heap32[(r1+14)] = r0;
	heap32[(g0)] = 76;
	_Znwj(i7);
	r0 = r_g0;
	heap32[(g0)] = r0;
	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
	r3 = heap32[(r2)];
	r5 = (r3 + 1)|0;
	heap32[(r2)] = r5;
	heap32[(g0)] = 135;
	malloc(i7);
	r7 = r_g0;
	if(r7 !=0) //_LBB26_74
{
	r8 = 0;
	r9 = (r7 + 4)|0;
	r8 = (r8 - r9)|0;
	r8 = r8 & 15;
	r8 = (r7 + r8)|0;
	r9 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r7;
	r7 = r9;
}
	r8 = _ZTV20btAxisSweep3InternalItE;
	r9 = r7 >> 2;
	r8 = (r8 + 8)|0;
	r10 = -2;
	heap32[(r9)] = r8;
	r8 = -1;
	heap16[(r7+4)>>1] = r10;
	heap16[(r7+6)>>1] = r8;
	heap32[(r9+23)] = r0;
	r8 = 0;
	heap32[(r9+24)] = 0;
	heap8[r7+100] = r8;
	heap32[(r9+26)] = 0;
	heap32[(r9+27)] = 0;
	if(r0 ==0) //_LBB26_77
{
	r5 = (r3 + 2)|0;
	heap32[(r2)] = r5;
	heap32[(g0)] = 95;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB26_79
{
	r0 = 0;
	r3 = (r5 + 4)|0;
	r0 = (r0 - r3)|0;
	r0 = r0 & 15;
	r0 = (r5 + r0)|0;
	r3 = (r0 + 4)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r5;
	r5 = r3;
}
	heap32[(g0)] = r5;
	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
	heap32[(r9+23)] = r5;
	heap8[r7+100] = r4;
	r5 = heap32[(r2)];
}
	r0 = (r5 + 1)|0;
	heap32[(r2)] = r0;
	heap32[(g0)] = 43;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB26_83
{
	r3 = (r0 + 4)|0;
	r3 = (r8 - r3)|0;
	r3 = r3 & 15;
	r3 = (r0 + r3)|0;
	r10 = (r3 + 4)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r0;
	r0 = r10;
}
	r3 = _ZTV15btNullPairCache;
	r10 = r0 >> 2;
	r3 = (r3 + 8)|0;
	heap32[(r10)] = r3;
	heap8[r0+20] = r4;
	heap32[(r10+4)] = 0;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	r3 = (r5 + 2)|0;
	heap32[(r9+28)] = r0;
	heap32[(r2)] = r3;
	heap32[(g0)] = 175;
	malloc(i7);
	r10 = r_g0;
	if(r10 !=0) //_LBB26_86
{
	r11 = (r10 + 4)|0;
	r11 = (r8 - r11)|0;
	r11 = r11 & 15;
	r11 = (r10 + r11)|0;
	r12 = (r11 + 4)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r10;
	r10 = r12;
}
	r11 = _ZTV16btDbvtBroadphase;
	r12 = r10 >> 2;
	r11 = (r11 + 8)|0;
	heap32[(r12)] = r11;
_92: while(true){
	r11 = (r10 + r8)|0;
	r13 = r11 >> 2;
	heap8[r11+40] = r4;
	heap32[(r13+9)] = 0;
	heap32[(r13+7)] = 0;
	heap32[(r13+8)] = 0;
	heap32[(r13+1)] = 0;
	heap32[(r13+2)] = 0;
	heap32[(r13+3)] = -1;
	r8 = (r8 + 40)|0;
	heap32[(r13+4)] = 0;
	heap32[(r13+5)] = 0;
	if(r8 !=80) //_LBB26_88
{
continue _92;
}
else{
break _92;
}
}
	r8 = 0;
	r11 = r0 == r8;
	heap8[r10+153] = r8;
	r11 = r11 & 1;
	heap8[r10+154] = r4;
	heap8[r10+152] = r11;
	heap32[(r12+25)] = 0;
	heap32[(r12+26)] = 0;
	heap32[(r12+31)] = 0;
	heap32[(r12+27)] = 1;
	heap32[(r12+28)] = 0;
	heap32[(r12+29)] = 10;
	heap32[(r12+30)] = 1;
	heap32[(r12+32)] = 0;
	heap32[(r12+33)] = 0;
	heap32[(r12+34)] = 0;
	if(r0 ==0) //_LBB26_91
{
	r0 = (r5 + 3)|0;
	heap32[(r2)] = r0;
	heap32[(g0)] = 95;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB26_93
{
	r3 = 0;
	r5 = (r0 + 4)|0;
	r3 = (r3 - r5)|0;
	r3 = r3 & 15;
	r3 = (r0 + r3)|0;
	r5 = (r3 + 4)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r0;
	r0 = r5;
}
	heap32[(g0)] = r0;
	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
	r3 = heap32[(r2)];
}
	heap32[(r12+24)] = r0;
	heap32[(r12+37)] = 0;
	heap32[(r12+35)] = 0;
	heap32[(r12+36)] = 0;
	heap32[(r12+21)] = 0;
	heap32[(r12+22)] = 0;
	heap32[(r12+23)] = 0;
	heap32[(r9+27)] = r10;
	heap8[r10+153] = r4;
	heap32[(r9+2)] = -998637568;
	heap32[(r9+3)] = -998637568;
	heap32[(r9+4)] = -998637568;
	heap32[(r9+5)] = 0;
	heap32[(r9+6)] = 1148846080;
	heap32[(r9+7)] = 1148846080;
	heap32[(r9+8)] = 1148846080;
	heap32[(r9+9)] = 0;
	r0 = heapU16[(r7+6)>>1];
	f0 = uint(r0); //fuitos r0, f0
	f1 =                      2000;
	f0 = f0/f1;
	heapFloat[(r9+10)] = f0;
	heapFloat[(r9+11)] = f0;
	heapFloat[(r9+12)] = f0;
	r0 = (r3 + 1)|0;
	heap32[(r9+13)] = 0;
	heap32[(r2)] = r0;
	heap32[(g0)] = 224083;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB26_97
{
	r5 = (r0 + 4)|0;
	r5 = (r8 - r5)|0;
	r5 = r5 & 15;
	r5 = (r0 + r5)|0;
	r10 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r0;
	r0 = r10;
}
_103: while(true){
	r5 = r8 << 6;
	r5 = (r0 - r5)|0;
	r5 = r5 >> 2;
	r8 = (r8 + -1)|0;
	heap32[(r5)] = 0;
	heap32[(r5+2)] = 0;
	if(r8 !=-3501) //_LBB26_98
{
continue _103;
}
else{
break _103;
}
}
	r5 = 3501;
	heap32[(r9+15)] = r0;
	r8 = 0;
	heap16[(r7+58)>>1] = r5;
	r5 = -112;
	r10 = 2;
	heap16[(r7+56)>>1] = r8;
	heap16[(r7+64)>>1] = r4;
_106: while(true){
	r0 = (r0 - r5)|0;
	heap16[(r0)>>1] = r10;
	r5 = (r5 + -64)|0;
	r0 = heap32[(r9+15)];
	r10 = (r10 + 1)|0;
	if(r5 !=-224112) //_LBB26_100
{
continue _106;
}
else{
break _106;
}
}
	r3 = (r3 + 2)|0;
	heap16[(r0+224048)>>1] = r8;
_109: while(true){
	r0 = (r3 + r8)|0;
	heap32[(r2)] = r0;
	heap32[(g0)] = 28027;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB26_104
{
	r5 = 0;
	r10 = (r0 + 4)|0;
	r5 = (r5 - r10)|0;
	r5 = r5 & 15;
	r5 = (r0 + r5)|0;
	r10 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r0;
	r0 = r10;
}
	r5 = r8 << 2;
	r5 = (r7 + r5)|0;
	r5 = r5 >> 2;
	r8 = (r8 + 1)|0;
	heap32[(r5+20)] = r0;
	heap32[(r5+17)] = r0;
	if(r8 !=3) //_LBB26_102
{
continue _109;
}
else{
break _109;
}
}
	r0 = heap32[(r9+15)];
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	r0 = heap32[(r9+15)];
	r3 = 0;
	heap16[(r0+48)>>1] = r3;
	r0 = heap32[(r9+15)];
	heap16[(r0+54)>>1] = r4;
	r0 = heap32[(r9+17)];
	heap16[(r0)>>1] = r3;
	r0 = heap32[(r9+17)];
	heap16[(r0+2)>>1] = r3;
	r0 = heap32[(r9+17)];
	r5 = heapU16[(r7+6)>>1];
	heap16[(r0+4)>>1] = r5;
	r0 = heap32[(r9+17)];
	heap16[(r0+6)>>1] = r3;
	r0 = heap32[(r9+15)];
	heap16[(r0+50)>>1] = r3;
	r0 = heap32[(r9+15)];
	heap16[(r0+56)>>1] = r4;
	r0 = heap32[(r9+18)];
	heap16[(r0)>>1] = r3;
	r0 = heap32[(r9+18)];
	heap16[(r0+2)>>1] = r3;
	r0 = heap32[(r9+18)];
	r5 = heapU16[(r7+6)>>1];
	heap16[(r0+4)>>1] = r5;
	r0 = heap32[(r9+18)];
	heap16[(r0+6)>>1] = r3;
	r0 = heap32[(r9+15)];
	heap16[(r0+52)>>1] = r3;
	r0 = heap32[(r9+15)];
	heap16[(r0+58)>>1] = r4;
	r0 = heap32[(r9+19)];
	heap16[(r0)>>1] = r3;
	r0 = heap32[(r9+19)];
	heap16[(r0+2)>>1] = r3;
	r0 = heap32[(r9+19)];
	r5 = heapU16[(r7+6)>>1];
	heap16[(r0+4)>>1] = r5;
	r0 = heap32[(r9+19)];
	r5 = _ZTV12btAxisSweep3;
	r5 = (r5 + 8)|0;
	heap16[(r0+6)>>1] = r3;
	heap32[(r9)] = r5;
	heap32[(r1+13)] = r7;
	heap32[(g0)] = 128;
	r0 = _ZTV35btSequentialImpulseConstraintSolver;
	_Znwj(i7);
	r7 = r_g0 >> 2;
	r0 = (r0 + 8)|0;
	heap32[(r7)] = r0;
	heap8[r_g0+20] = r4;
	heap32[(r7+4)] = 0;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 0;
	heap8[r_g0+40] = r4;
	heap32[(r7+9)] = 0;
	heap32[(r7+7)] = 0;
	heap32[(r7+8)] = 0;
	heap8[r_g0+60] = r4;
	heap32[(r7+14)] = 0;
	heap32[(r7+12)] = 0;
	heap32[(r7+13)] = 0;
	heap8[r_g0+80] = r4;
	heap32[(r7+19)] = 0;
	heap32[(r7+17)] = 0;
	heap32[(r7+18)] = 0;
	heap8[r_g0+100] = r4;
	heap32[(r7+24)] = 0;
	heap32[(r7+22)] = 0;
	heap32[(r7+23)] = 0;
	heap8[r_g0+120] = r4;
	heap32[(r7+29)] = 0;
	heap32[(r7+27)] = 0;
	heap32[(r7+28)] = 0;
	heap32[(r7+31)] = 0;
	heap32[(r1+15)] = r_g0;
	heap32[(g0)] = 272;
	_Znwj(i7);
	r5 = r_g0;
	r7 = heap32[(r1+16)];
	r8 = _ZTV16btCollisionWorld;
	r9 = heap32[(r1+15)];
	r10 = heap32[(r1+13)];
	r11 = heap32[(r1+14)];
	r8 = (r8 + 8)|0;
	r12 = r5 >> 2;
	heap32[(r12)] = r8;
	heap8[r5+20] = r4;
	heap32[(r12+4)] = 0;
	heap32[(r12+2)] = 0;
	heap32[(r12+3)] = 0;
	heap32[(r12+6)] = r11;
	heap32[(r12+7)] = 0;
	heap32[(r12+8)] = 0;
	heap32[(r12+9)] = 1;
	heap32[(r12+10)] = 1065353216;
	heap8[r5+44] = r3;
	heap32[(r12+12)] = 0;
	heap8[r5+52] = r3;
	heap8[r5+53] = r4;
	heap8[r5+54] = r4;
	heap32[(r12+14)] = 1025758986;
	heap8[r5+60] = r3;
	heap32[(r12+16)] = 0;
	heap8[r5+68] = r3;
	heap32[(r12+18)] = 0;
	heap32[(r12+20)] = r10;
	heap32[(r12+21)] = 0;
	r8 = r7 >> 2;
	heap8[r5+88] = r4;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r7;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	heap32[(r12+19)] = r_g0;
	heap32[(r12+18)] = r_g0;
	heap32[(r12+23)] = 0;
	heap32[(r12+24)] = 0;
	heap32[(r12+25)] = 0;
	heap32[(r12+26)] = 1058642330;
	heap32[(r12+27)] = 1065353216;
	heap32[(r12+28)] = 1050253722;
	heap32[(r12+30)] = 0;
	heap32[(r12+32)] = 1101004800;
	heap32[(r12+31)] = 10;
	heap32[(r12+34)] = 1045220557;
	heap32[(r12+35)] = 1036831949;
	heap32[(r12+36)] = 0;
	heap32[(r12+33)] = 1065353216;
	heap32[(r12+37)] = 0;
	heap32[(r12+38)] = -1130113270;
	heap32[(r12+39)] = 0;
	heap32[(r12+40)] = 1062836634;
	heap32[(r12+41)] = 260;
	r7 = _ZTV23btDiscreteDynamicsWorld;
	heap32[(r12+42)] = 2;
	r7 = (r7 + 8)|0;
	heap32[(r12+43)] = 128;
	heap32[(r12)] = r7;
	heap32[(r12+44)] = r9;
	heap8[r5+200] = r4;
	heap32[(r12+49)] = 0;
	heap32[(r12+47)] = 0;
	heap32[(r12+48)] = 0;
	heap8[r5+220] = r4;
	heap32[(r12+54)] = 0;
	heap32[(r12+52)] = 0;
	heap32[(r12+53)] = 0;
	heap32[(r12+56)] = 0;
	heap32[(r12+57)] = -1054867456;
	heap32[(r12+58)] = 0;
	heap32[(r12+59)] = 0;
	heap32[(r12+60)] = 0;
	heap8[r5+246] = r3;
	heap8[r5+264] = r4;
	heap32[(r12+65)] = 0;
	heap32[(r12+63)] = 0;
	heap32[(r12+64)] = 0;
	heap32[(r12+67)] = 0;
	if(r9 !=0) //_LBB26_111
{
	heap8[r5+245] = r3;
	r7 = heap32[(r2)];
}
else{
	r7 = heap32[(r2)];
	r7 = (r7 + 1)|0;
	heap32[(r2)] = r7;
	heap32[(g0)] = 147;
	malloc(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB26_109
{
	r9 = 0;
	r10 = (r8 + 4)|0;
	r9 = (r9 - r10)|0;
	r9 = r9 & 15;
	r9 = (r8 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r8;
	r8 = r10;
}
	r9 = r8 >> 2;
	heap32[(r9)] = r0;
	heap8[r8+20] = r4;
	heap32[(r9+4)] = 0;
	heap32[(r9+2)] = 0;
	heap32[(r9+3)] = 0;
	heap8[r8+40] = r4;
	heap32[(r9+9)] = 0;
	heap32[(r9+7)] = 0;
	heap32[(r9+8)] = 0;
	heap8[r8+60] = r4;
	heap32[(r9+14)] = 0;
	heap32[(r9+12)] = 0;
	heap32[(r9+13)] = 0;
	heap8[r8+80] = r4;
	heap32[(r9+19)] = 0;
	heap32[(r9+17)] = 0;
	heap32[(r9+18)] = 0;
	heap8[r8+100] = r4;
	heap32[(r9+24)] = 0;
	heap32[(r9+22)] = 0;
	heap32[(r9+23)] = 0;
	heap8[r8+120] = r4;
	heap32[(r9+29)] = 0;
	heap32[(r9+27)] = 0;
	heap32[(r9+28)] = 0;
	r0 = r5 >> 2;
	heap32[(r9+31)] = 0;
	heap32[(r0+44)] = r8;
	heap8[r5+245] = r4;
}
	r0 = (r7 + 1)|0;
	heap32[(r2)] = r0;
	heap32[(g0)] = 87;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB26_114
{
	r7 = (r0 + 4)|0;
	r7 = (r3 - r7)|0;
	r7 = r7 & 15;
	r7 = (r0 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r0;
	r0 = r8;
}
	r7 = _ZTV25btSimulationIslandManager;
	r8 = r0 >> 2;
	r7 = (r7 + 8)|0;
	heap32[(r8)] = r7;
	heap8[r0+20] = r4;
	heap32[(r8+4)] = 0;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 0;
	heap8[r0+40] = r4;
	heap32[(r8+9)] = 0;
	heap32[(r8+7)] = 0;
	heap32[(r8+8)] = 0;
	heap8[r0+60] = r4;
	heap32[(r8+14)] = 0;
	heap32[(r8+12)] = 0;
	heap32[(r8+13)] = 0;
	r7 = r5 >> 2;
	heap8[r0+64] = r4;
	heap32[(r7+45)] = r0;
	heap8[r5+244] = r4;
	heap32[(r1+1)] = r5;
	r0 = heap32[(r7+41)];
	r0 = r0 | 32;
	heap32[(r7+41)] = r0;
	heap32[(r7+31)] = 5;
	heap32[(r1+2)] = 0;
	r0 = heap32[(r1+1)];
	r5 = r0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+17)];
	r7 = sp + -41280;
	r8 = r7 >> 2;
	heap32[(fp+-10320)] = 0;
	heap32[(r8+1)] = -1054867456;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r0 = heap32[(r1+17)];
	if(r0 <5) //_LBB26_117
{
	r0 = heap32[(r2)];
	r5 = (r0 + 1)|0;
	heap32[(r2)] = r5;
	heap32[(g0)] = 71;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB26_119
{
	r7 = 0;
	r8 = (r5 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r5 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r5;
	r5 = r8;
}
	r7 = r5 >> 2;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 1065353216;
	heap32[(r7+4)] = 1065353216;
	heap32[(r7+5)] = 1065353216;
	r8 = _ZTV10btBoxShape;
	heap32[(r7+6)] = 0;
	r8 = (r8 + 8)|0;
	heap32[(r7+11)] = 1025758986;
	heap32[(r7)] = r8;
	heap32[(r7+1)] = 0;
	heap32[(r7+7)] = 1132066243;
	heap32[(r7+8)] = 1112004362;
	heap32[(r7+9)] = 1132066243;
	heap32[(r7+10)] = 0;
	r7 = heap32[(r1+5)];
	r8 = heap32[(r1+4)];
	if(r7 ==r8) //_LBB26_122
{
	r9 = r8 << 1;
	r9 = r8 == 0 ? r4 : r9;
if(!(r7 >=r9)) //_LBB26_121
{
	if(r9 !=0) //_LBB26_125
{
	r7 = r9 << 2;
	r0 = (r0 + 2)|0;
	r7 = r7 | 3;
	heap32[(r2)] = r0;
	r0 = (r7 + 16)|0;
	heap32[(g0)] = r0;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB26_127
{
	r7 = 0;
	r10 = (r0 + 4)|0;
	r7 = (r7 - r10)|0;
	r7 = r7 & 15;
	r7 = (r0 + r7)|0;
	r10 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r0;
	r0 = r10;
}
}
else{
	r0 = 0;
}
_138: do {
	if(r8 <1) //_LBB26_130
{
	r10 = heap32[(r1+6)];
}
else{
	r7 = 0;
_141: while(true){
	r10 = heap32[(r1+6)];
	r11 = r7 << 2;
	r12 = (r10 + r11)|0;
	r12 = r12 >> 2;
	r11 = (r0 + r11)|0;
	r12 = heap32[(r12)];
	r7 = (r7 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r12;
if(!(r8 !=r7)) //_LBB26_131
{
break _138;
}
}
}
} while(0);
	if(r10 !=0) //_LBB26_134
{
	r7 = heapU8[r6+28];
	if(r7 !=0) //_LBB26_136
{
	r8 = gNumAlignedFree;
	r8 = r8 >> 2;
	r7 = heap32[(r8)];
	r7 = (r7 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r8)] = r7;
	r8 = heap32[(r10+-1)];
	heap32[(g0)] = r8;
	free(i7);
	r8 = heap32[(r1+4)];
}
	heap32[(r1+6)] = 0;
}
	heap8[r6+28] = r4;
	heap32[(r1+6)] = r0;
	heap32[(r1+5)] = r9;
}
}
	r0 = r8 << 2;
	r7 = heap32[(r1+6)];
	r0 = (r7 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r5;
	r0 = heap32[(r1+4)];
	r0 = (r0 + 1)|0;
	r7 = _ZGVZN11btTransform11getIdentityEvE17identityTransform;
	heap32[(r1+4)] = r0;
	r0 = heapU8[r7];
if(!(r0 !=0)) //_LBB26_143
{
	r0 = _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix;
	r8 = heapU8[r0];
if(!(r8 !=0)) //_LBB26_142
{
	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
	r9 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
	r8 = r8 >> 2;
	r10 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
	r9 = r9 >> 2;
	heap32[(r8)] = 1065353216;
	r8 = r10 >> 2;
	heap32[(r9)] = 1065353216;
	heap32[(r8)] = 1065353216;
	heap8[r0] = r4;
}
	r0 = _ZZN11btTransform11getIdentityEvE17identityTransform;
	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
	r0 = r0 >> 2;
	r8 = r8 >> 2;
	heap32[(r0)] = heap32[(r8)];
	heap32[(r0+1)] = 0;
	heap32[(r0+2)] = 0;
	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
	heap32[(r0+3)] = 0;
	r8 = r8 >> 2;
	heap32[(r0+4)] = 0;
	heap32[(r0+5)] = heap32[(r8)];
	heap32[(r0+6)] = 0;
	heap32[(r0+7)] = 0;
	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
	heap32[(r0+8)] = 0;
	r8 = r8 >> 2;
	heap32[(r0+9)] = 0;
	heap32[(r0+10)] = heap32[(r8)];
	heap32[(r0+11)] = 0;
	heap32[(r0+12)] = 0;
	heap32[(r0+13)] = 0;
	heap32[(r0+14)] = 0;
	heap32[(r0+15)] = 0;
	heap8[r7] = r4;
}
	heap32[(g0)] = 200;
	r0 = _ZTV20btDefaultMotionState;
	_Znwj(i7);
	r8 = r_g0 >> 2;
	r0 = (r0 + 8)|0;
	heap32[(r8)] = r0;
	heap32[(r8+1)] = 1065353216;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 0;
	heap32[(r8+4)] = 0;
	heap32[(r8+5)] = 0;
	heap32[(r8+6)] = 1065353216;
	heap32[(r8+7)] = 0;
	heap32[(r8+8)] = 0;
	heap32[(r8+9)] = 0;
	heap32[(r8+10)] = 0;
	heap32[(r8+11)] = 1065353216;
	heap32[(r8+12)] = 0;
	heap32[(r8+13)] = 0;
	heap32[(r8+14)] = -1035468800;
	r0 = _ZZN11btTransform11getIdentityEvE17identityTransform;
	heap32[(r8+15)] = 0;
	r0 = r0 >> 2;
	heap32[(r8+16)] = 0;
	heap32[(r8+17)] = heap32[(r0)];
	heap32[(r8+18)] = heap32[(r0+1)];
	heap32[(r8+19)] = heap32[(r0+2)];
	heap32[(r8+20)] = heap32[(r0+3)];
	heap32[(r8+21)] = heap32[(r0+4)];
	heap32[(r8+22)] = heap32[(r0+5)];
	heap32[(r8+23)] = heap32[(r0+6)];
	heap32[(r8+24)] = heap32[(r0+7)];
	heap32[(r8+25)] = heap32[(r0+8)];
	heap32[(r8+26)] = heap32[(r0+9)];
	heap32[(r8+27)] = heap32[(r0+10)];
	heap32[(r8+28)] = heap32[(r0+11)];
	heap32[(r8+29)] = heap32[(r0+12)];
	heap32[(r8+30)] = heap32[(r0+13)];
	heap32[(r8+31)] = heap32[(r0+14)];
	heap32[(r8+32)] = heap32[(r0+15)];
	heap32[(r8+33)] = 1065353216;
	heap32[(r8+34)] = 0;
	heap32[(r8+35)] = 0;
	heap32[(r8+36)] = 0;
	heap32[(r8+37)] = 0;
	heap32[(r8+38)] = 1065353216;
	heap32[(r8+39)] = 0;
	heap32[(r8+40)] = 0;
	heap32[(r8+41)] = 0;
	heap32[(r8+42)] = 0;
	heap32[(r8+43)] = 1065353216;
	heap32[(r8+44)] = 0;
	heap32[(r8+45)] = 0;
	heap32[(r8+46)] = -1035468800;
	heap32[(r8+47)] = 0;
	heap32[(r8+48)] = 0;
	r0 = sp + -41416;
	heap32[(r8+49)] = 0;
	r8 = r0 >> 2;
	heap32[(fp+-10354)] = 0;
	heap32[(r8+1)] = r_g0;
	heap32[(r8+18)] = r5;
	heap32[(r8+19)] = 0;
	heap32[(r8+20)] = 0;
	heap32[(r8+21)] = 0;
	heap32[(r8+22)] = 0;
	heap32[(r8+23)] = 0;
	heap32[(r8+24)] = 0;
	heap32[(r8+25)] = 1056964608;
	heap32[(r8+26)] = 0;
	heap32[(r8+27)] = 1061997773;
	r5 = 0;
	heap32[(r8+28)] = 1065353216;
	heap8[sp+-41300] = r5;
	heap32[(r8+30)] = 1000593162;
	heap32[(r8+31)] = 1008981770;
	heap32[(r8+32)] = 1008981770;
	heap32[(r8+33)] = 1008981770;
	heap32[(r8+2)] = 1065353216;
	heap32[(r8+3)] = 0;
	heap32[(r8+4)] = 0;
	heap32[(r8+5)] = 0;
	heap32[(r8+6)] = 0;
	heap32[(r8+7)] = 1065353216;
	heap32[(r8+8)] = 0;
	heap32[(r8+9)] = 0;
	heap32[(r8+10)] = 0;
	heap32[(r8+11)] = 0;
	heap32[(r8+12)] = 1065353216;
	heap32[(r8+13)] = 0;
	heap32[(r8+14)] = 0;
	heap32[(r8+15)] = 0;
	heap32[(r8+16)] = 0;
	heap32[(r8+17)] = 0;
	r7 = heap32[(r2)];
	r7 = (r7 + 1)|0;
	heap32[(r2)] = r7;
	heap32[(g0)] = 627;
	malloc(i7);
	r7 = r_g0;
	if(r7 !=0) //_LBB26_145
{
	r8 = (r7 + 4)|0;
	r5 = (r5 - r8)|0;
	r5 = r5 & 15;
	r5 = (r7 + r5)|0;
	r8 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r7;
	r7 = r8;
}
	r5 = r7 >> 2;
	heap32[(r5+41)] = 1065353216;
	heap32[(r5+42)] = 1065353216;
	heap32[(r5+43)] = 1065353216;
	heap32[(r5+44)] = 0;
	heap32[(r5+45)] = 0;
	heap32[(r5+46)] = 1566444395;
	heap32[(r5+47)] = 0;
	heap32[(r5+48)] = 0;
	heap32[(r5+49)] = 0;
	heap32[(r5+50)] = 0;
	heap32[(r5+51)] = 1;
	heap32[(r5+52)] = -1;
	heap32[(r5+53)] = -1;
	heap32[(r5+54)] = 1;
	heap32[(r5+55)] = 0;
	heap32[(r5+56)] = 1056964608;
	heap32[(r5+57)] = 0;
	heap32[(r5+58)] = 1;
	heap32[(r5+59)] = 0;
	heap32[(r5+60)] = 1065353216;
	heap32[(r5+61)] = 0;
	heap32[(r5+62)] = 0;
	heap32[(r5+63)] = 0;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	heap32[(r5+4)] = 0;
	heap32[(r5+5)] = 0;
	heap32[(r5+6)] = 1065353216;
	heap32[(r5+7)] = 0;
	heap32[(r5+8)] = 0;
	heap32[(r5+9)] = 0;
	heap32[(r5+10)] = 0;
	heap32[(r5+11)] = 1065353216;
	heap32[(r5+12)] = 0;
	heap32[(r5+13)] = 0;
	heap32[(r5+14)] = 0;
	r8 = _ZTV11btRigidBody;
	heap32[(r5+15)] = 0;
	r8 = (r8 + 8)|0;
	heap32[(r5+16)] = 0;
	heap32[(r5)] = r8;
	heap8[r7+492] = r4;
	heap32[(r5+122)] = 0;
	heap32[(r5+120)] = 0;
	heap32[(r5+121)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r0;
	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
	r0 = heap32[(r1+1)];
	r5 = r0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+20)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r0 = heap32[(r1+17)];
}
_161: do {
	if(r0 >3) //_LBB26_151
{
	if(r0 >5) //_LBB26_154
{
	if(r0 ==6) //_LBB26_325
{
	_ZN13BenchmarkDemo11createTest6Ev(i7);
	return;
}
else{
	if(r0 ==7) //_LBB26_326
{
	_ZN13BenchmarkDemo11createTest6Ev(i7);
	r0 = sp + -41264;
	heap32[(g0)] = 8;
	r1 = r0 >> 2;
	_Znwj(i7);
	heap32[(r1+10006)] = r_g0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = 0;
	gettimeofday(i7);
	heap32[(r1+10000)] = 0;
	heap32[(r1+10001)] = 0;
	heap32[(r1+10005)] = 0;
	heap32[(r1+10004)] = 9999;
	heap32[(r1+10003)] = 0;
	heap32[(r1+10002)] = 0;
	heap32[(r1+10007)] = 1092616192;
	heap32[(r1+10008)] = 0;
	heap32[(r1+10009)] = 0;
	heap32[(r1+10010)] = 1112014848;
	heap32[(r1+10011)] = 1065353216;
	f3 =                         0;
_169: while(true){
	f0 = r3; //fitos r3, f0
	f1 =      0.025132741779088974;
	f0 = f0*f1;
	f1 =                       0.5;
	f0 = f0*f1;
	heapFloat[(g0)] = f0;
	sinf(i7);
	f2 =                         1;
	f1 = f_g0/f2;
	f2 = f1*f3;
	heapFloat[(g0)] = f0;
	cosf(i7);
	f4 = -f2;
	f5 = f_g0*f3;
	f6 = f2*f3;
	f7 = f4-f2;
	f8 = f_g0+f2;
	f8 = f8-f6;
	f7 = f7-f6;
	f9 = f5+f2;
	f9 = f9-f6;
	f5 = f5+f6;
	f6 = f7*f4;
	f10 = f8*f_g0;
	f5 = f5-f1;
	f11 = f9*f_g0;
	f7 = f7*f1;
	f10 = f6+f10;
	f4 = f9*f4;
	r2 = r3 << 4;
	f0 = f5*f_g0;
	f7 = f11-f7;
	f9 = f5*f2;
	f10 = f10+f4;
	f5 = f5*f1;
	r2 = (r0 + r2)|0;
	f0 = f6+f0;
	f1 = f8*f1;
	f6 = f7-f9;
	f2 = f8*f2;
	f5 = f10+f5;
	f7 =                      2500;
	f0 = f0-f1;
	f1 = f6+f2;
	r2 = r2 >> 2;
	f2 = f5*f7;
	f0 = f0-f4;
	f1 = f1*f7;
	heapFloat[(r2+4000)] = f2;
	f0 = f0*f7;
	heapFloat[(r2+4001)] = f1;
	heapFloat[(r2+4002)] = f0;
	heap32[(r2+4003)] = 0;
	f1 = heapFloat[(r1+10008)];
	heapFloat[(r2)] = f1;
	heap32[(r2+1)] = 1112014848;
	heap32[(r2+2)] = 0;
	f1 = f1+f2;
	heap32[(r2+3)] = 0;
	f0 = f0+f3;
	heapFloat[(r2+2000)] = f1;
	heapFloat[(r2+2002)] = f0;
	heap32[(r2+2003)] = 0;
	heap32[(r2+2001)] = -998637568;
	heap32[(r2+8000)] = 1065353216;
	heap32[(r2+8001)] = 0;
	r3 = (r3 + 1)|0;
	heap32[(r2+8002)] = 0;
	heap32[(r2+8003)] = 0;
if(!(r3 !=500)) //_LBB26_327
{
break _169;
}
}
	r2 = _ZL10raycastBar;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 8000;
	memcpy(i7);
	r3 = (r2 + 8000)|0;
	r4 = (r0 + 8000)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = 8000;
	memcpy(i7);
	r3 = (r2 + 16000)|0;
	r4 = (r0 + 16000)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = 8000;
	memcpy(i7);
	r3 = (r2 + 24000)|0;
	r4 = (r0 + 24000)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = 8000;
	memcpy(i7);
	r3 = (r2 + 32000)|0;
	r0 = (r0 + 32000)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 8000;
	memcpy(i7);
	r0 = r2 >> 2;
	r2 = heap32[(r1+10000)];
	heap32[(r0+10000)] = r2;
	r2 = heap32[(r1+10001)];
	heap32[(r0+10001)] = r2;
	r2 = heap32[(r1+10002)];
	heap32[(r0+10002)] = r2;
	r2 = heap32[(r1+10003)];
	heap32[(r0+10003)] = r2;
	r2 = heap32[(r1+10004)];
	heap32[(r0+10004)] = r2;
	r2 = heap32[(r1+10005)];
	heap32[(r0+10005)] = r2;
	r2 = heap32[(r1+10006)];
	r2 = r2 >> 2;
	r3 = heap32[(r0+10006)];
	r4 = heap32[(r2+1)];
	r2 = heap32[(r2)];
	r3 = r3 >> 2;
	heap32[(r3)] = r2;
	heap32[(r3+1)] = r4;
	heap32[(r0+10007)] = heap32[(r1+10007)];
	heap32[(r0+10008)] = heap32[(r1+10008)];
	heap32[(r0+10009)] = heap32[(r1+10009)];
	heap32[(r0+10010)] = heap32[(r1+10010)];
	heap32[(r0+10011)] = heap32[(r1+10011)];
	r0 = heap32[(r1+10006)];
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}
else{
break _161;
}
}
}
else{
	if(r0 ==4) //_LBB26_291
{
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	heap32[(r2)] = r3;
	heap32[(g0)] = 127;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB26_293
{
	r3 = 0;
	r4 = (r2 + 4)|0;
	r3 = (r3 - r4)|0;
	r3 = r3 & 15;
	r3 = (r2 + r3)|0;
	r4 = (r3 + 4)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r2;
	r2 = r4;
}
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	r3 = r2 >> 2;
	_ZN17btConvexHullShapeC1EPKfii(i7);
	r4 = heap32[(r3)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+6)];
	r0 = sp + -96;
	r5 = r0 >> 2;
	heap32[(fp+-24)] = 1065353216;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 1065353216;
	heap32[(r5+3)] = 0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	r0 = 0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
_178: while(true){
	r4 = (r0 * -3)|0;
	r5 = _ZL7TaruVtx;
	r4 = r4 << 2;
	r4 = (r5 + r4)|0;
	r5 = sp + -80;
	r4 = r4 >> 2;
	r7 = r5 >> 2;
	heap32[(fp+-20)] = heap32[(r4)];
	heap32[(r7+1)] = heap32[(r4+1)];
	heap32[(r7+2)] = heap32[(r4+2)];
	heap32[(r7+3)] = 0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r5;
	r0 = (r0 + -1)|0;
	_ZN17btConvexHullShape8addPointERK9btVector3(i7);
	if(r0 ==-43) //_LBB26_301
{
break _178;
}
}
	r4 = sp + -160;
	r0 = r4 >> 2;
	heap32[(fp+-40)] = 1065353216;
	heap32[(r0+1)] = 0;
	heap32[(r0+2)] = 0;
	heap32[(r0+3)] = 0;
	heap32[(r0+4)] = 0;
	heap32[(r0+5)] = 1065353216;
	heap32[(r0+6)] = 0;
	heap32[(r0+7)] = 0;
	heap32[(r0+8)] = 0;
	heap32[(r0+9)] = 0;
	heap32[(r0+10)] = 1065353216;
	heap32[(r0+11)] = 0;
	heap32[(r0+12)] = 0;
	heap32[(r0+13)] = 0;
	heap32[(r0+14)] = 0;
	r5 = sp + -176;
	heap32[(r0+15)] = 0;
	r7 = r5 >> 2;
	heap32[(fp+-44)] = 0;
	heap32[(r7+1)] = 0;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 0;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r7 = heap32[(r3+8)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r5;
	r3 = 15;
	f0 =                         3;
	f2 =                       -18;
	f3 =                       1.5;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	f1 = f0;
_181: while(true){
	f4 = f3+f0;
	r5 = 0;
	r7 = r5;
_183: while(true){
	f5 = r7; //fitos r7, f5
	f5 = f5*f4;
	f5 = f5+f2;
	r8 = r5;
_185: while(true){
	f6 = r8; //fitos r8, f6
	f6 = f6*f4;
	f6 = f6+f2;
	heapFloat[(r0+12)] = f6;
	heapFloat[(r0+13)] = f1;
	heapFloat[(r0+14)] = f5;
	heap32[(r0+15)] = 0;
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+2)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r2;
	r8 = (r8 + 1)|0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
if(!(r8 !=8)) //_LBB26_298
{
break _185;
}
}
	r7 = (r7 + 1)|0;
if(!(r7 !=8)) //_LBB26_297
{
break _183;
}
}
	f4 =        1.0099999904632568;
	f5 =      -0.05000000074505806;
	f4 = f3*f4;
	f6 =                         3;
	f3 = f3*f5;
	f5 =                         7;
	f6 = f4+f6;
	f3 = f3*f5;
	r3 = (r3 + -1)|0;
	f1 = f1+f6;
	f2 = f3+f2;
	f3 = f4;
	if(r3 ==0) //_LBB26_165
{
break _161;
}
else{
continue _181;
}
}
}
else{
	if(r0 ==5) //_LBB26_302
{
	r3 = 10;
	f0 =                        20;
	f1 =                         2;
	f2 =                       -25;
_191: while(true){
	f3 =                         3;
	f4 =                        25;
	f5 = f1+f3;
	f4 = f0+f4;
	r0 = 0;
	r5 = r0;
_193: while(true){
	f6 = r5; //fitos r5, f6
	f6 = f6*f5;
	f6 = f6+f2;
	f7 =                         5;
	f6 = f6*f7;
	f8 =                         0;
	f6 = f6+f8;
	r7 = r0;
_195: while(true){
	r8 = _ZL8nextRand;
	r8 = r8 >> 2;
	r9 = heap32[(r8)];
	r9 = (r9 * 214013)|0;
	r9 = (r9 + 2531011)|0;
	r10 = sp + -64;
	heap32[(r8)] = r9;
	r8 = r10 >> 2;
	heap32[(fp+-16)] = 1065353216;
	heap32[(r8+1)] = 0;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 0;
	heap32[(r8+4)] = 0;
	heap32[(r8+5)] = 1065353216;
	heap32[(r8+6)] = 0;
	heap32[(r8+7)] = 0;
	f9 = r7; //fitos r7, f9
	heap32[(r8+8)] = 0;
	f9 = f9*f5;
	heap32[(r8+9)] = 0;
	f9 = f9+f2;
	heap32[(r8+10)] = 1065353216;
	f9 = f9*f7;
	f9 = f9+f8;
	heap32[(r8+11)] = 0;
	r9 = r9 >>> 16;
	heapFloat[(r8+12)] = f9;
	r9 = r9 & 32767;
	heapFloat[(r8+13)] = f4;
	r9 = Math.floor(uint(r9) % uint(9));
	heapFloat[(r8+14)] = f6;
	heap32[(r8+15)] = 0;
if(!(uint(r9) >uint(8))) //_LBB26_321
{
	r8 = r4 << r9;
	r11 = r8 & 7;
	if(r11 !=0) //_LBB26_309
{
	r8 = heap32[(r2)];
	r8 = (r8 + 1)|0;
	heap32[(r2)] = r8;
	r9 = (r9 + 1)|0;
	f9 = r9; //fitos r9, f9
	f10 =                       0.5;
	heap32[(g0)] = 71;
	f9 = f9*f10;
	f10 =                       1.5;
	malloc(i7);
	r9 = r_g0;
	f10 = f9*f10;
	if(r9 !=0) //_LBB26_311
{
	r8 = 0;
	r11 = (r9 + 4)|0;
	r8 = (r8 - r11)|0;
	r8 = r8 & 15;
	r8 = (r9 + r8)|0;
	r11 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r9;
	r9 = r11;
}
	r8 = r9 >> 2;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 1065353216;
	heap32[(r8+4)] = 1065353216;
	heap32[(r8+5)] = 1065353216;
	r11 = _ZTV10btBoxShape;
	heap32[(r8+6)] = 0;
	r11 = (r11 + 8)|0;
	heap32[(r8+11)] = 1025758986;
	heap32[(r8)] = r11;
	f11 =     -0.039999999105930328;
	f10 = f10+f11;
	heap32[(r8+1)] = 0;
	heapFloat[(r8+7)] = f10;
	heapFloat[(r8+8)] = f10;
	heapFloat[(r8+9)] = f10;
	heap32[(r8+10)] = 0;
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	heap32[(g0)] = r6;
	heapFloat[(g0+1)] = f9;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r9;
	__FUNCTION_TABLE__[(r8)>>2](i7);
}
else{
	r11 = r8 & 56;
	if(r11 !=0) //_LBB26_313
{
	r8 = heap32[(r2)];
	r8 = (r8 + 1)|0;
	heap32[(r2)] = r8;
	r9 = (r9 + -2)|0;
	heap32[(g0)] = 71;
	f9 = r9; //fitos r9, f9
	f10 =                       0.5;
	malloc(i7);
	r9 = r_g0;
	f9 = f9*f10;
	if(r9 !=0) //_LBB26_315
{
	r8 = 0;
	r11 = (r9 + 4)|0;
	r8 = (r8 - r11)|0;
	r8 = r8 & 15;
	r8 = (r9 + r8)|0;
	r11 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r9;
	r9 = r11;
}
	r8 = r9 >> 2;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 1065353216;
	heap32[(r8+4)] = 1065353216;
	r11 = _ZTV13btSphereShape;
	heap32[(r8+5)] = 1065353216;
	r11 = (r11 + 8)|0;
	heap32[(r8+6)] = 0;
	heap32[(r8)] = r11;
	f10 =                       1.5;
	f10 = f9*f10;
	heap32[(r8+1)] = 8;
	heapFloat[(r8+7)] = f10;
	heapFloat[(r8+11)] = f10;
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	heap32[(g0)] = r6;
	heapFloat[(g0+1)] = f9;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r9;
	__FUNCTION_TABLE__[(r8)>>2](i7);
}
else{
	r8 = r8 & 448;
	if(r8 !=0) //_LBB26_317
{
	r8 = heap32[(r2)];
	r8 = (r8 + 1)|0;
	heap32[(r2)] = r8;
	r8 = (r9 + -5)|0;
	heap32[(g0)] = 75;
	f9 = r8; //fitos r8, f9
	f10 =                       0.5;
	malloc(i7);
	r8 = r_g0;
	f9 = f9*f10;
	if(r8 !=0) //_LBB26_319
{
	r9 = 0;
	r11 = (r8 + 4)|0;
	r9 = (r9 - r11)|0;
	r9 = r9 & 15;
	r9 = (r8 + r9)|0;
	r11 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r8;
	r8 = r11;
}
	r9 = r8 >> 2;
	heap32[(r9+2)] = 0;
	heap32[(r9+3)] = 1065353216;
	heap32[(r9+4)] = 1065353216;
	heap32[(r9+5)] = 1065353216;
	r11 = _ZTV14btCapsuleShape;
	heap32[(r9+6)] = 0;
	r11 = (r11 + 8)|0;
	heap32[(r9+11)] = 1025758986;
	heap32[(r9)] = r11;
	heap32[(r9+1)] = 10;
	heap32[(r9+13)] = 1;
	f11 = f9+f9;
	f10 = f11*f10;
	heapFloat[(r9+7)] = f9;
	heapFloat[(r9+8)] = f10;
	heapFloat[(r9+9)] = f9;
	heap32[(r9+10)] = 0;
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+2)];
	heap32[(g0)] = r6;
	heapFloat[(g0+1)] = f9;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r8;
	__FUNCTION_TABLE__[(r9)>>2](i7);
}
}
}
}
	r7 = (r7 + 1)|0;
if(!(r7 !=10)) //_LBB26_305
{
break _195;
}
}
	r5 = (r5 + 1)|0;
if(!(r5 !=10)) //_LBB26_304
{
break _193;
}
}
	f4 =        1.1000000238418579;
	f5 =      -0.05000000074505806;
	f4 = f1*f4;
	f1 = f1*f5;
	f5 =                         9;
	f3 = f4+f3;
	f1 = f1*f5;
	r3 = (r3 + -1)|0;
	f0 = f0+f3;
	f2 = f1+f2;
	f1 = f4;
if(!(r3 !=0)) //_LBB26_303
{
break _191;
}
}
	_ZN13BenchmarkDemo19createLargeMeshBodyEv(i7);
	return;
}
else{
break _161;
}
}
}
}
else{
	if(r0 ==1) //_LBB26_156
{
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	heap32[(r2)] = r3;
	heap32[(g0)] = 71;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB26_158
{
	r3 = 0;
	r4 = (r2 + 4)|0;
	r3 = (r3 - r4)|0;
	r3 = r3 & 15;
	r3 = (r2 + r3)|0;
	r4 = (r3 + 4)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r2;
	r2 = r4;
}
	r3 = r2 >> 2;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 1065353216;
	heap32[(r3+4)] = 1065353216;
	heap32[(r3+5)] = 1065353216;
	r4 = _ZTV10btBoxShape;
	heap32[(r3+6)] = 0;
	r4 = (r4 + 8)|0;
	heap32[(r3+11)] = 1025758986;
	heap32[(r3)] = r4;
	heap32[(r3+1)] = 0;
	heap32[(r3+7)] = 1064682127;
	heap32[(r3+8)] = 1064682127;
	heap32[(r3+9)] = 1064682127;
	r4 = sp + -1152;
	heap32[(r3+10)] = 0;
	r3 = r4 >> 2;
	heap32[(fp+-288)] = 0;
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 1073741824;
	heap32[(g0+2)] = r4;
	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
	r3 = sp + -1216;
	r4 = r3 >> 2;
	heap32[(fp+-304)] = 1065353216;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	heap32[(r4+4)] = 0;
	heap32[(r4+5)] = 1065353216;
	heap32[(r4+6)] = 0;
	heap32[(r4+7)] = 0;
	heap32[(r4+8)] = 0;
	heap32[(r4+9)] = 0;
	heap32[(r4+10)] = 1065353216;
	heap32[(r4+11)] = 0;
	heap32[(r4+12)] = 0;
	heap32[(r4+13)] = 0;
	r0 = 47;
	f0 =                       -12;
	f1 =                         2;
	heap32[(r4+14)] = 0;
	heap32[(r4+15)] = 0;
_225: while(true){
	r5 = 0;
	r7 = r5;
_227: while(true){
	f2 = r7; //fitos r7, f2
	f3 =                         3;
	f2 = f2*f3;
	f2 = f2+f0;
	r8 = r5;
_229: while(true){
	f4 = r8; //fitos r8, f4
	f4 = f4*f3;
	f4 = f4+f0;
	heapFloat[(r4+12)] = f4;
	heapFloat[(r4+13)] = f1;
	heapFloat[(r4+14)] = f2;
	heap32[(r4+15)] = 0;
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+2)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = 1073741824;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r2;
	r8 = (r8 + 1)|0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
if(!(r8 !=8)) //_LBB26_161
{
break _229;
}
}
	r7 = (r7 + 1)|0;
if(!(r7 !=8)) //_LBB26_160
{
break _227;
}
}
	f2 =      -0.34999999403953552;
	r0 = (r0 + -1)|0;
	f1 = f1+f3;
	f0 = f0+f2;
	if(r0 ==0) //_LBB26_165
{
break _161;
}
else{
continue _225;
}
}
}
else{
	if(r0 ==2) //_LBB26_166
{
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	heap32[(r2)] = r3;
	heap32[(g0)] = 71;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB26_168
{
	r4 = 0;
	r0 = (r3 + 4)|0;
	r4 = (r4 - r0)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r0 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r0;
}
	r4 = r3 >> 2;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 1065353216;
	heap32[(r4+4)] = 1065353216;
	heap32[(r4+5)] = 1065353216;
	r0 = _ZTV10btBoxShape;
	heap32[(r4+6)] = 0;
	r0 = (r0 + 8)|0;
	heap32[(r4+11)] = 1025758986;
	heap32[(r4)] = r0;
	heap32[(r4+1)] = 0;
	heap32[(r4+7)] = 1064682127;
	heap32[(r4+8)] = 1064682127;
	heap32[(r4+9)] = 1064682127;
	r5 = sp + -1024;
	heap32[(r4+10)] = 0;
	r4 = r5 >> 2;
	heap32[(fp+-256)] = 1065353216;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	heap32[(r4+4)] = 0;
	heap32[(r4+5)] = 1065353216;
	heap32[(r4+6)] = 0;
	heap32[(r4+7)] = 0;
	heap32[(r4+8)] = 0;
	heap32[(r4+9)] = 0;
	heap32[(r4+10)] = 1065353216;
	heap32[(r4+11)] = 0;
	heap32[(r4+12)] = 0;
	heap32[(r4+13)] = 0;
	heap32[(r4+14)] = 0;
	r7 = sp + -1040;
	heap32[(r4+15)] = 0;
	r8 = r7 >> 2;
	heap32[(fp+-260)] = 0;
	heap32[(r8+1)] = 0;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r7;
	r7 = 12;
	f0 =       -12.240598678588867;
	f1 =                         1;
	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
	f2 = f0;
	f8 =                       -20;
_239: while(true){
if(!(r7 <1)) //_LBB26_173
{
	f4 =                         0;
	f3 = f1+f4;
	r8 = 0;
	r9 = r8;
_243: while(true){
	f5 = r9; //fitos r9, f5
	f6 =        2.0400998592376709;
	f5 = f5*f6;
	f5 = f5+f0;
	f5 = f5+f4;
	r10 = r8;
_245: while(true){
	f7 = r10; //fitos r10, f7
	f7 = f7*f6;
	f7 = f7+f2;
	f7 = f7+f8;
	heapFloat[(r4+12)] = f7;
	heapFloat[(r4+13)] = f3;
	heapFloat[(r4+14)] = f5;
	heap32[(r4+15)] = 0;
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+2)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r3;
	r10 = (r10 + 1)|0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
if(!(r7 !=r10)) //_LBB26_171
{
break _245;
}
}
	r9 = (r9 + 1)|0;
if(!(r7 !=r9)) //_LBB26_170
{
break _243;
}
}
}
	f3 =        2.0400998592376709;
	f4 =        1.0199999809265137;
	r7 = (r7 + -1)|0;
	f1 = f1+f3;
	f0 = f0+f4;
	f2 = f2+f4;
	if(r7 ==0) //_LBB26_176
{
break _239;
}
}
	r3 = sp + -1136;
	r4 = r3 >> 2;
	heap32[(fp+-284)] = 1065353216;
	heap32[(r4+1)] = 1065353216;
	heap32[(r4+2)] = 1065353216;
	r5 = sp + -1120;
	heap32[(r4+3)] = 0;
	r4 = r5 >> 2;
	heap32[(fp+-280)] = -1073741824;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r3;
	r3 = sp + -1104;
	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
	r4 = r3 >> 2;
	heap32[(fp+-276)] = 1065353216;
	heap32[(r4+1)] = 1065353216;
	heap32[(r4+2)] = 1065353216;
	r5 = sp + -1088;
	heap32[(r4+3)] = 0;
	r4 = r5 >> 2;
	heap32[(fp+-272)] = 1082130432;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r3;
	r3 = sp + -1072;
	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
	r4 = r3 >> 2;
	heap32[(fp+-268)] = 1065353216;
	heap32[(r4+1)] = 1065353216;
	heap32[(r4+2)] = 1065353216;
	r5 = sp + -1056;
	heap32[(r4+3)] = 0;
	r4 = r5 >> 2;
	heap32[(fp+-264)] = 1092616192;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r3;
	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	heap32[(r2)] = r3;
	heap32[(g0)] = 71;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB26_178
{
	r3 = 0;
	r4 = (r2 + 4)|0;
	r3 = (r3 - r4)|0;
	r3 = r3 & 15;
	r3 = (r2 + r3)|0;
	r4 = (r3 + 4)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r2;
	r2 = r4;
}
	r3 = r2 >> 2;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 1065353216;
	heap32[(r3+4)] = 1065353216;
	heap32[(r3+5)] = 1065353216;
	heap32[(r3+6)] = 0;
	heap32[(r3+11)] = 1025758986;
	heap32[(r3)] = r0;
	heap32[(r3+1)] = 0;
	heap32[(r3+7)] = 1064682127;
	heap32[(r3+8)] = 1064682127;
	heap32[(r3+9)] = 1064682127;
	r4 = sp + -944;
	heap32[(r3+10)] = 0;
	r3 = r4 >> 2;
	heap32[(fp+-236)] = 1065353216;
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
	heap32[(r3+4)] = 0;
	heap32[(r3+5)] = 1065353216;
	heap32[(r3+6)] = 0;
	heap32[(r3+7)] = 0;
	heap32[(r3+8)] = 0;
	heap32[(r3+9)] = 0;
	heap32[(r3+10)] = 1065353216;
	heap32[(r3+11)] = 0;
	heap32[(r3+12)] = 0;
	heap32[(r3+13)] = 0;
	heap32[(r3+14)] = 0;
	r0 = sp + -960;
	heap32[(r3+15)] = 0;
	r5 = r0 >> 2;
	heap32[(fp+-240)] = 0;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r0;
	r0 = 8;
	f0 =                         1;
	f1 =                         0;
	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
	f2 = f1;
	f3 = f0;
	f4 = f1;
_253: while(true){
	r5 = 24;
_255: while(true){
	f5 =        9.9312677383422852;
	f6 =                         0;
	f7 = f3*f0;
	f8 = f4*f6;
	f9 = f3*f5;
	f10 = f1*f6;
	f7 = f8+f7;
	f11 = f2*f5;
	f9 = f10+f9;
	f12 = f2*f0;
	f13 = f1*f0;
	f14 = f2*f6;
	f7 = f7+f11;
	f9 = f9-f12;
	f11 = f13+f14;
	f12 = f4*f5;
	f5 = f1*f5;
	f13 = f4*f0;
	f11 = f11-f12;
	f12 = f4*f4;
	f15 = f3*f3;
	f16 = f4*f7;
	f17 = f1*f9;
	f5 = f5+f13;
	f13 = f3*f6;
	f5 = f5-f13;
	f12 = f12+f15;
	f15 = f2*f2;
	f18 = f3*f7;
	f19 = f1*f11;
	f16 = f16+f17;
	f17 = f2*f11;
	f12 = f12+f15;
	f15 = f1*f1;
	f7 = f2*f7;
	f20 = f1*f5;
	f18 = f18+f19;
	f19 = f4*f5;
	f16 = f16-f17;
	f5 = f3*f5;
	f17 =                         2;
	f12 = f12+f15;
	f7 = f7+f20;
	f15 = f3*f9;
	f18 = f18-f19;
	f9 = f2*f9;
	f5 = f16+f5;
	f16 =                        25;
	f12 = f17/f12;
	f9 = f18+f9;
	f5 = f5+f16;
	f7 = f7-f15;
	f11 = f4*f11;
	f15 = f2*f12;
	f16 = f3*f12;
	f7 = f7+f11;
	f9 = f9+f6;
	heapFloat[(r3+12)] = f5;
	f5 = f3*f16;
	f11 = f2*f15;
	f7 = f7+f6;
	heapFloat[(r3+13)] = f9;
	heapFloat[(r3+14)] = f7;
	f7 =                         1;
	f9 = f5+f11;
	f18 = f4*f16;
	f19 = f1*f15;
	f9 = f7-f9;
	heap32[(r3+15)] = 0;
	f20 = f4*f15;
	f16 = f1*f16;
	f21 = f18-f19;
	heapFloat[(fp+-236)] = f9;
	f9 = f4*f12;
	f12 = f20+f16;
	heapFloat[(r3+1)] = f21;
	f21 = f4*f9;
	heapFloat[(r3+2)] = f12;
	f11 = f21+f11;
	f12 = f18+f19;
	heap32[(r3+3)] = 0;
	f15 = f3*f15;
	f9 = f1*f9;
	f11 = f7-f11;
	heapFloat[(r3+4)] = f12;
	f12 = f15-f9;
	heapFloat[(r3+5)] = f11;
	heapFloat[(r3+6)] = f12;
	f11 = f20-f16;
	heap32[(r3+7)] = 0;
	f5 = f21+f5;
	f9 = f15+f9;
	heapFloat[(r3+8)] = f11;
	f5 = f7-f5;
	heapFloat[(r3+9)] = f9;
	heapFloat[(r3+10)] = f5;
	heap32[(r3+11)] = 0;
	r7 = heap32[(r1)];
	r7 = r7 >> 2;
	f5 =       0.99144488573074341;
	f7 =       0.13052619993686676;
	r7 = heap32[(r7+2)];
	f9 = f1*f5;
	f11 = f2*f5;
	f12 = f4*f5;
	f1 = f1*f7;
	f5 = f3*f5;
	f1 = f1+f5;
	f5 = f10+f12;
	f9 = f9-f8;
	f3 = f3*f7;
	f10 = f10+f11;
	f4 = f4*f7;
	f3 = f9-f3;
	f4 = f10+f4;
	f9 = f1+f14;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = 1065353216;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r2;
	f5 = f5+f13;
	f7 = f2*f7;
	r5 = (r5 + -1)|0;
	f1 = f3-f14;
	f2 = f4-f13;
	f3 = f9-f8;
	f4 = f5-f7;
	__FUNCTION_TABLE__[(r7)>>2](i7);
if(!(r5 !=0)) //_LBB26_180
{
break _255;
}
}
	f5 =       0.99785894155502319;
	f7 =      0.065403133630752563;
	f8 = f4*f5;
	f9 = f1*f6;
	f10 = f2*f5;
	f11 = f1*f7;
	f12 = f3*f5;
	f1 = f1*f5;
	f5 = f4*f6;
	f8 = f9+f8;
	f13 = f3*f6;
	f11 = f11+f12;
	f6 = f2*f6;
	f9 = f9+f10;
	f4 = f4*f7;
	f1 = f1-f5;
	f3 = f3*f7;
	f10 = f11+f6;
	f9 = f9+f4;
	f1 = f1-f3;
	f3 = f8+f13;
	f2 = f2*f7;
	r0 = (r0 + -1)|0;
	f4 = f3-f2;
	f3 = f10-f5;
	f2 = f9-f13;
	f1 = f1-f6;
	f0 = f0+f17;
	if(r0 ==0) //_LBB26_165
{
break _161;
}
else{
continue _253;
}
}
}
else{
	if(r0 ==3) //_LBB26_183
{
	r3 = -16;
	r0 = 16;
	f0 =                         0;
	f1 =                         1;
	f2 = f0;
_260: while(true){
	f3 = r3; //fitos r3, f3
	f4 =                         6;
	f3 = f3*f4;
	f5 =                       0.5;
	f6 =                       3.5;
	f7 =        4.2000002861022949;
	f8 =        5.5999999046325684;
	f9 =        2.2749998569488525;
	f10 =       0.69999998807907104;
	f11 =        5.0750002861022949;
	f3 = f3*f5;
	f5 = f2+f0;
	f6 = f1+f6;
	f7 = f1+f7;
	f8 = f1+f8;
	f9 = f1+f9;
	f10 = f1+f10;
	f11 = f1+f11;
	r5 = 0;
_262: while(true){
	heap32[(g0)] = 136;
	_Znwj(i7);
	r7 = r_g0;
	r8 = _ZTV7RagDoll;
	r9 = r7 >> 2;
	r10 = heap32[(r1+1)];
	r8 = (r8 + 8)|0;
	heap32[(r9)] = r8;
	heap32[(r9+1)] = r10;
	r8 = heap32[(r2)];
	r9 = (r8 + 1)|0;
	heap32[(r2)] = r9;
	f12 = r5; //fitos r5, f12
	heap32[(g0)] = 75;
	f12 = f12*f4;
	malloc(i7);
	r9 = r_g0;
	f12 = f12+f3;
	if(r9 !=0) //_LBB26_187
{
	r10 = 0;
	r11 = (r9 + 4)|0;
	r10 = (r10 - r11)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r11 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r11;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	r11 = _ZTV14btCapsuleShape;
	heap32[(r10+6)] = 0;
	r11 = (r11 + 8)|0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1057384039;
	heap32[(r10+8)] = 1051931443;
	heap32[(r10+9)] = 1057384039;
	r12 = r7 >> 2;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 2)|0;
	heap32[(r12+2)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_190
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1057384039;
	heap32[(r10+8)] = 1056629064;
	heap32[(r10+9)] = 1057384039;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 3)|0;
	heap32[(r12+3)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_193
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1051931443;
	heap32[(r10+8)] = 1035154227;
	heap32[(r10+9)] = 1051931443;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 4)|0;
	heap32[(r12+4)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_196
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1048240456;
	heap32[(r10+8)] = 1061788057;
	heap32[(r10+9)] = 1048240456;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 5)|0;
	heap32[(r12+5)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_199
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1043542835;
	heap32[(r10+8)] = 1059439248;
	heap32[(r10+9)] = 1043542835;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 6)|0;
	heap32[(r12+6)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_202
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1048240456;
	heap32[(r10+8)] = 1061788057;
	heap32[(r10+9)] = 1048240456;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 7)|0;
	heap32[(r12+7)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_205
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1043542835;
	heap32[(r10+8)] = 1059439248;
	heap32[(r10+9)] = 1043542835;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 8)|0;
	heap32[(r12+8)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_208
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1043542835;
	heap32[(r10+8)] = 1058264843;
	heap32[(r10+9)] = 1043542835;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 9)|0;
	heap32[(r12+9)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_211
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1041194025;
	heap32[(r10+8)] = 1054867456;
	heap32[(r10+9)] = 1041194025;
	heap32[(r10+10)] = 0;
	r10 = (r8 + 10)|0;
	heap32[(r12+10)] = r9;
	heap32[(r2)] = r10;
	heap32[(g0)] = 75;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB26_214
{
	r10 = 0;
	r13 = (r9 + 4)|0;
	r10 = (r10 - r13)|0;
	r10 = r10 & 15;
	r10 = (r9 + r10)|0;
	r13 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r9;
	r9 = r13;
}
	r10 = r9 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+11)] = 1025758986;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = 10;
	heap32[(r10+13)] = 1;
	heap32[(r10+7)] = 1043542835;
	heap32[(r10+8)] = 1058264843;
	heap32[(r10+9)] = 1043542835;
	heap32[(r10+10)] = 0;
	r8 = (r8 + 11)|0;
	heap32[(r12+11)] = r9;
	heap32[(r2)] = r8;
	heap32[(g0)] = 75;
	malloc(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB26_217
{
	r9 = 0;
	r10 = (r8 + 4)|0;
	r9 = (r9 - r10)|0;
	r9 = r9 & 15;
	r9 = (r8 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r8;
	r8 = r10;
}
	r9 = r8 >> 2;
	heap32[(r9+2)] = 0;
	heap32[(r9+3)] = 1065353216;
	heap32[(r9+4)] = 1065353216;
	heap32[(r9+5)] = 1065353216;
	heap32[(r9+6)] = 0;
	heap32[(r9+11)] = 1025758986;
	heap32[(r9)] = r11;
	heap32[(r9+1)] = 10;
	heap32[(r9+13)] = 1;
	heap32[(r9+7)] = 1041194025;
	heap32[(r9+8)] = 1054867456;
	heap32[(r9+9)] = 1041194025;
	heap32[(r9+10)] = 0;
	heap32[(r12+12)] = r8;
	r8 = heap32[(r12+2)];
	r9 = sp + -880;
	r10 = r9 >> 2;
	heap32[(fp+-220)] = 1065353216;
	heap32[(r10+1)] = 0;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 0;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	heap32[(r10+10)] = 1065353216;
	f13 =                         0;
	f13 = f12+f13;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f6;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+13)] = r_g0;
	r8 = heap32[(r12+3)];
	r9 = sp + -816;
	r10 = r9 >> 2;
	heap32[(fp+-204)] = 1065353216;
	heap32[(r10+1)] = 0;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 0;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	heap32[(r10+10)] = 1065353216;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f7;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+14)] = r_g0;
	r8 = heap32[(r12+4)];
	r9 = sp + -752;
	r10 = r9 >> 2;
	heap32[(fp+-188)] = 1065353216;
	heap32[(r10+1)] = 0;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 0;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	heap32[(r10+10)] = 1065353216;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f8;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+15)] = r_g0;
	r8 = heap32[(r12+5)];
	r9 = sp + -688;
	r10 = r9 >> 2;
	heap32[(fp+-172)] = 1065353216;
	heap32[(r10+1)] = 0;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 0;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	f13 =      -0.62999999523162842;
	heap32[(r10+10)] = 1065353216;
	f13 = f12+f13;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f9;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+16)] = r_g0;
	r8 = heap32[(r12+6)];
	r9 = sp + -624;
	r10 = r9 >> 2;
	heap32[(fp+-156)] = 1065353216;
	heap32[(r10+1)] = 0;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 0;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	heap32[(r10+10)] = 1065353216;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f10;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+17)] = r_g0;
	r8 = heap32[(r12+7)];
	r9 = sp + -560;
	r10 = r9 >> 2;
	heap32[(fp+-140)] = 1065353216;
	heap32[(r10+1)] = 0;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 0;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	f13 =       0.62999999523162842;
	heap32[(r10+10)] = 1065353216;
	f13 = f12+f13;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f9;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+18)] = r_g0;
	r8 = heap32[(r12+8)];
	r9 = sp + -496;
	r10 = r9 >> 2;
	heap32[(fp+-124)] = 1065353216;
	heap32[(r10+1)] = 0;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 0;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	heap32[(r10+10)] = 1065353216;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f10;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+19)] = r_g0;
	r8 = heap32[(r12+9)];
	r9 = sp + -432;
	r10 = r9 >> 2;
	heap32[(fp+-108)] = -1287930578;
	heap32[(r10+1)] = -1082130432;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = -1287930578;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	f13 =       -1.2250000238418579;
	heap32[(r10+10)] = 1065353216;
	f13 = f12+f13;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f11;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+20)] = r_g0;
	r8 = heap32[(r12+10)];
	r9 = sp + -368;
	r10 = r9 >> 2;
	heap32[(fp+-92)] = -1287930578;
	heap32[(r10+1)] = -1082130432;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = -1287930578;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = 0;
	heap32[(r10+9)] = 0;
	f13 =       -2.4500000476837158;
	heap32[(r10+10)] = 1065353216;
	f13 = f12+f13;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f11;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+21)] = r_g0;
	r8 = heap32[(r12+11)];
	r9 = sp + -304;
	r10 = r9 >> 2;
	heap32[(fp+-76)] = -1287930578;
	heap32[(r10+1)] = 1065353216;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = -1082130432;
	heap32[(r10+5)] = -1287930578;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = -2147483648;
	heap32[(r10+9)] = 0;
	f13 =        1.2250000238418579;
	heap32[(r10+10)] = 1065353216;
	f13 = f12+f13;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f13;
	heapFloat[(r10+13)] = f11;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	heap32[(r12+22)] = r_g0;
	r8 = heap32[(r12+12)];
	r9 = sp + -240;
	r10 = r9 >> 2;
	heap32[(fp+-60)] = -1287930578;
	heap32[(r10+1)] = 1065353216;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = -1082130432;
	heap32[(r10+5)] = -1287930578;
	heap32[(r10+6)] = 0;
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = -2147483648;
	heap32[(r10+9)] = 0;
	f13 =        2.4500000476837158;
	heap32[(r10+10)] = 1065353216;
	f12 = f12+f13;
	heap32[(r10+11)] = 0;
	heapFloat[(r10+12)] = f12;
	heapFloat[(r10+13)] = f11;
	heapFloat[(r10+14)] = f5;
	heap32[(r10+15)] = 0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
	r9 = 0;
	heap32[(r12+23)] = r_g0;
_297: while(true){
	r8 = r9 << 2;
	r8 = (r7 - r8)|0;
	r8 = r8 >> 2;
	r10 = heap32[(r8+13)];
	r10 = r10 >> 2;
	heap32[(r10+109)] = 1028443341;
	heap32[(r10+110)] = 1062836634;
	r10 = heap32[(r8+13)];
	r10 = r10 >> 2;
	heap32[(r10+55)] = 1061997773;
	r8 = heap32[(r8+13)];
	r8 = r8 >> 2;
	r9 = (r9 + -1)|0;
	heap32[(r8+116)] = 1070386381;
	heap32[(r8+117)] = 1075838976;
if(!(r9 !=-11)) //_LBB26_219
{
break _297;
}
}
	heap32[(g0)] = 748;
	_Znwj(i7);
	r8 = r_g0;
	r9 = heap32[(r12+14)];
	r10 = heap32[(r12+13)];
	r11 = r8 >> 2;
	heap32[(r11+1)] = 4;
	heap32[(r11+2)] = -1;
	r13 = 0;
	heap32[(r11+3)] = -1;
	heap8[r8+16] = r13;
	heap32[(r11+5)] = r10;
	heap32[(r11+6)] = r9;
	r9 = _ZTV17btHingeConstraint;
	heap32[(r11+7)] = 0;
	r9 = (r9 + 8)|0;
	heap32[(r11+8)] = 1050253722;
	heap32[(r11)] = r9;
	heap32[(r11+135)] = -1287930578;
	heap32[(r11+136)] = 0;
	heap32[(r11+137)] = 1065353216;
	heap32[(r11+138)] = 0;
	heap32[(r11+139)] = -2147483648;
	heap32[(r11+140)] = 1065353216;
	heap32[(r11+141)] = 0;
	heap32[(r11+142)] = 0;
	heap32[(r11+143)] = -1082130432;
	heap32[(r11+144)] = -2147483648;
	heap32[(r11+145)] = -1287930578;
	heap32[(r11+146)] = 0;
	heap32[(r11+147)] = 0;
	heap32[(r11+148)] = 1057384039;
	heap32[(r11+149)] = 0;
	heap32[(r11+150)] = 0;
	heap32[(r11+151)] = -1287930578;
	heap32[(r11+152)] = 0;
	heap32[(r11+153)] = 1065353216;
	heap32[(r11+154)] = 0;
	heap32[(r11+155)] = -2147483648;
	heap32[(r11+156)] = 1065353216;
	heap32[(r11+157)] = 0;
	heap32[(r11+158)] = 0;
	heap32[(r11+159)] = -1082130432;
	heap32[(r11+160)] = -2147483648;
	heap32[(r11+161)] = -1287930578;
	heap32[(r11+162)] = 0;
	heap32[(r11+163)] = 0;
	heap32[(r11+164)] = -1090099609;
	heap32[(r11+165)] = 0;
	heap32[(r11+166)] = 0;
	heap8[r8+720] = r13;
	heap8[r8+721] = r13;
	heap8[r8+723] = r13;
	heap8[r8+724] = r4;
	heap8[r8+725] = r13;
	heap32[(r11+183)] = 0;
	heap32[(r11+172)] = 1065353216;
	heap32[(r11+173)] = -1082130432;
	heap32[(r11+170)] = 1050253722;
	heap32[(r11+171)] = 1065353216;
	heap32[(r11+169)] = 1063675494;
	heap8[r8+722] = r13;
	heap32[(r11+179)] = 1065353216;
	heap32[(g0)] = -1085730853;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	f13 =       -3.1415927410125732;
	if(f12 >=f13) //_LBB26_222
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_224
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	r10 = r8 >> 2;
	heapFloat[(r10+172)] = f12;
	heap32[(g0)] = 1070141403;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_227
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_229
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	heapFloat[(r10+173)] = f12;
	heap32[(r10+169)] = 1063675494;
	heap32[(r10+170)] = 1050253722;
	heap32[(r10+171)] = 1065353216;
	heap32[(r12+24)] = r8;
	r10 = heap32[(r12+1)];
	r11 = r10 >> 2;
	r11 = heap32[(r11)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+13)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	heap32[(g0)] = 596;
	_Znwj(i7);
	r10 = heap32[(r12+15)];
	r11 = heap32[(r12+14)];
	r14 = r_g0 >> 2;
	heap32[(r14+1)] = 5;
	heap32[(r14+2)] = -1;
	heap32[(r14+3)] = -1;
	heap8[r_g0+16] = r13;
	heap32[(r14+5)] = r11;
	heap32[(r14+6)] = r10;
	heap32[(r14+7)] = 0;
	r10 = _ZTV21btConeTwistConstraint;
	heap32[(r14+8)] = 1050253722;
	r10 = (r10 + 8)|0;
	heap32[(r14)] = r10;
	heap32[(r14+72)] = -1287930578;
	heap32[(r14+73)] = -1082130432;
	heap32[(r14+74)] = 0;
	heap32[(r14+75)] = 0;
	heap32[(r14+76)] = 1065353216;
	heap32[(r14+77)] = -1287930578;
	heap32[(r14+78)] = 0;
	heap32[(r14+79)] = 0;
	heap32[(r14+80)] = -2147483648;
	heap32[(r14+81)] = 0;
	heap32[(r14+82)] = 1065353216;
	heap32[(r14+83)] = 0;
	heap32[(r14+84)] = 0;
	heap32[(r14+85)] = 1065772647;
	heap32[(r14+86)] = 0;
	heap32[(r14+87)] = 0;
	heap32[(r14+88)] = -1287930578;
	heap32[(r14+89)] = -1082130432;
	heap32[(r14+90)] = 0;
	heap32[(r14+91)] = 0;
	heap32[(r14+92)] = 1065353216;
	heap32[(r14+93)] = -1287930578;
	heap32[(r14+94)] = 0;
	heap32[(r14+95)] = 0;
	heap32[(r14+96)] = -2147483648;
	heap32[(r14+97)] = 0;
	heap32[(r14+98)] = 1065353216;
	heap32[(r14+99)] = 0;
	heap32[(r14+100)] = 0;
	heap32[(r14+101)] = -1090854584;
	heap32[(r14+102)] = 0;
	heap32[(r14+103)] = 0;
	heap8[r_g0+540] = r13;
	heap32[(r14+128)] = 0;
	heap32[(r14+140)] = -1082130432;
	heap32[(r14+107)] = 1008981770;
	heap32[(r14+111)] = 1028443341;
	heap32[(r14+145)] = 0;
	heap32[(r14+146)] = 0;
	heap32[(r14+147)] = 1060320051;
	heap32[(r14+148)] = 0;
	heap32[(r14+108)] = 1061752795;
	heap32[(r14+109)] = 1061752795;
	heap32[(r14+110)] = 1070141403;
	heap32[(r14+104)] = 1065353216;
	heap32[(r14+105)] = 1050253722;
	heap32[(r14+106)] = 1065353216;
	heap32[(r12+25)] = r_g0;
	r11 = heap32[(r12+1)];
	r14 = r11 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+13)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	heap32[(g0)] = 596;
	_Znwj(i7);
	r11 = heap32[(r12+16)];
	r14 = heap32[(r12+13)];
	r15 = r_g0 >> 2;
	heap32[(r15+1)] = 5;
	heap32[(r15+2)] = -1;
	heap32[(r15+3)] = -1;
	heap8[r_g0+16] = r13;
	heap32[(r15+5)] = r14;
	heap32[(r15+6)] = r11;
	heap32[(r15+7)] = 0;
	heap32[(r15+8)] = 1050253722;
	heap32[(r15)] = r10;
	heap32[(r15+72)] = -1087044364;
	heap32[(r15+73)] = -1087044366;
	heap32[(r15+74)] = 0;
	heap32[(r15+75)] = 0;
	heap32[(r15+76)] = 1060439282;
	heap32[(r15+77)] = -1087044364;
	heap32[(r15+78)] = 0;
	heap32[(r15+79)] = 0;
	heap32[(r15+80)] = -2147483648;
	heap32[(r15+81)] = 0;
	heap32[(r15+82)] = 1065353216;
	heap32[(r15+83)] = 0;
	heap32[(r15+84)] = -1088338002;
	heap32[(r15+85)] = -1095552205;
	heap32[(r15+86)] = 0;
	heap32[(r15+87)] = 0;
	heap32[(r15+88)] = -1087044364;
	heap32[(r15+89)] = -1087044366;
	heap32[(r15+90)] = 0;
	heap32[(r15+91)] = 0;
	heap32[(r15+92)] = 1060439282;
	heap32[(r15+93)] = -1087044364;
	heap32[(r15+94)] = 0;
	heap32[(r15+95)] = 0;
	heap32[(r15+96)] = -2147483648;
	heap32[(r15+97)] = 0;
	heap32[(r15+98)] = 1065353216;
	heap32[(r15+99)] = 0;
	heap32[(r15+100)] = 0;
	heap32[(r15+101)] = 1061788057;
	heap32[(r15+102)] = 0;
	heap32[(r15+103)] = 0;
	heap8[r_g0+540] = r13;
	heap32[(r15+128)] = 0;
	heap32[(r15+140)] = -1082130432;
	heap32[(r15+107)] = 1008981770;
	heap32[(r15+111)] = 1028443341;
	heap32[(r15+145)] = 0;
	heap32[(r15+146)] = 0;
	heap32[(r15+147)] = 1060320051;
	heap32[(r15+148)] = 0;
	heap32[(r15+108)] = 1061752795;
	heap32[(r15+109)] = 1061752795;
	heap32[(r15+110)] = 0;
	heap32[(r15+104)] = 1065353216;
	heap32[(r15+105)] = 1050253722;
	heap32[(r15+106)] = 1065353216;
	heap32[(r12+26)] = r_g0;
	r11 = heap32[(r12+1)];
	r14 = r11 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+13)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	heap32[(g0)] = 748;
	_Znwj(i7);
	r8 = r_g0;
	r11 = heap32[(r12+17)];
	r14 = heap32[(r12+16)];
	r15 = r8 >> 2;
	heap32[(r15+1)] = 4;
	heap32[(r15+2)] = -1;
	heap32[(r15+3)] = -1;
	heap8[r8+16] = r13;
	heap32[(r15+5)] = r14;
	heap32[(r15+6)] = r11;
	heap32[(r15+7)] = 0;
	heap32[(r15+8)] = 1050253722;
	heap32[(r15)] = r9;
	heap32[(r15+135)] = -1287930578;
	heap32[(r15+136)] = 0;
	heap32[(r15+137)] = 1065353216;
	heap32[(r15+138)] = 0;
	heap32[(r15+139)] = -2147483648;
	heap32[(r15+140)] = 1065353216;
	heap32[(r15+141)] = 0;
	heap32[(r15+142)] = 0;
	heap32[(r15+143)] = -1082130432;
	heap32[(r15+144)] = -2147483648;
	heap32[(r15+145)] = -1287930578;
	heap32[(r15+146)] = 0;
	heap32[(r15+147)] = 0;
	heap32[(r15+148)] = -1085695591;
	heap32[(r15+149)] = 0;
	heap32[(r15+150)] = 0;
	heap32[(r15+151)] = -1287930578;
	heap32[(r15+152)] = 0;
	heap32[(r15+153)] = 1065353216;
	heap32[(r15+154)] = 0;
	heap32[(r15+155)] = -2147483648;
	heap32[(r15+156)] = 1065353216;
	heap32[(r15+157)] = 0;
	heap32[(r15+158)] = 0;
	heap32[(r15+159)] = -1082130432;
	heap32[(r15+160)] = -2147483648;
	heap32[(r15+161)] = -1287930578;
	heap32[(r15+162)] = 0;
	heap32[(r15+163)] = 0;
	heap32[(r15+164)] = 1059439248;
	heap32[(r15+165)] = 0;
	heap32[(r15+166)] = 0;
	heap8[r8+720] = r13;
	heap8[r8+721] = r13;
	heap8[r8+723] = r13;
	heap8[r8+724] = r4;
	heap8[r8+725] = r13;
	heap32[(r15+183)] = 0;
	heap32[(r15+172)] = 1065353216;
	heap32[(r15+173)] = -1082130432;
	heap32[(r15+170)] = 1050253722;
	heap32[(r15+171)] = 1065353216;
	heap32[(r15+169)] = 1063675494;
	heap8[r8+722] = r13;
	heap32[(r15+179)] = 1065353216;
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_232
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_234
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	r11 = r8 >> 2;
	heapFloat[(r11+172)] = f12;
	heap32[(g0)] = 1070141403;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_237
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_239
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	heapFloat[(r11+173)] = f12;
	heap32[(r11+169)] = 1063675494;
	heap32[(r11+170)] = 1050253722;
	heap32[(r11+171)] = 1065353216;
	heap32[(r12+27)] = r8;
	r11 = heap32[(r12+1)];
	r14 = r11 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+13)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	heap32[(g0)] = 596;
	_Znwj(i7);
	r11 = heap32[(r12+18)];
	r14 = heap32[(r12+13)];
	r15 = r_g0 >> 2;
	heap32[(r15+1)] = 5;
	heap32[(r15+2)] = -1;
	heap32[(r15+3)] = -1;
	heap8[r_g0+16] = r13;
	heap32[(r15+5)] = r14;
	heap32[(r15+6)] = r11;
	heap32[(r15+7)] = 0;
	heap32[(r15+8)] = 1050253722;
	heap32[(r15)] = r10;
	heap32[(r15+72)] = 1060439283;
	heap32[(r15+73)] = -1087044365;
	heap32[(r15+74)] = 0;
	heap32[(r15+75)] = 0;
	heap32[(r15+76)] = 1060439283;
	heap32[(r15+77)] = 1060439283;
	heap32[(r15+78)] = 0;
	heap32[(r15+79)] = 0;
	heap32[(r15+80)] = -2147483648;
	heap32[(r15+81)] = 0;
	heap32[(r15+82)] = 1065353216;
	heap32[(r15+83)] = 0;
	heap32[(r15+84)] = 1059145646;
	heap32[(r15+85)] = -1095552205;
	heap32[(r15+86)] = 0;
	heap32[(r15+87)] = 0;
	heap32[(r15+88)] = 1060439283;
	heap32[(r15+89)] = -1087044365;
	heap32[(r15+90)] = 0;
	heap32[(r15+91)] = 0;
	heap32[(r15+92)] = 1060439283;
	heap32[(r15+93)] = 1060439283;
	heap32[(r15+94)] = 0;
	heap32[(r15+95)] = 0;
	heap32[(r15+96)] = -2147483648;
	heap32[(r15+97)] = 0;
	heap32[(r15+98)] = 1065353216;
	heap32[(r15+99)] = 0;
	heap32[(r15+100)] = 0;
	heap32[(r15+101)] = 1061788057;
	heap32[(r15+102)] = 0;
	heap32[(r15+103)] = 0;
	heap8[r_g0+540] = r13;
	heap32[(r15+128)] = 0;
	heap32[(r15+140)] = -1082130432;
	heap32[(r15+107)] = 1008981770;
	heap32[(r15+111)] = 1028443341;
	heap32[(r15+145)] = 0;
	heap32[(r15+146)] = 0;
	heap32[(r15+147)] = 1060320051;
	heap32[(r15+148)] = 0;
	heap32[(r15+108)] = 1061752795;
	heap32[(r15+109)] = 1061752795;
	heap32[(r15+110)] = 0;
	heap32[(r15+104)] = 1065353216;
	heap32[(r15+105)] = 1050253722;
	heap32[(r15+106)] = 1065353216;
	heap32[(r12+28)] = r_g0;
	r11 = heap32[(r12+1)];
	r14 = r11 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+13)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	heap32[(g0)] = 748;
	_Znwj(i7);
	r8 = r_g0;
	r11 = heap32[(r12+19)];
	r14 = heap32[(r12+18)];
	r15 = r8 >> 2;
	heap32[(r15+1)] = 4;
	heap32[(r15+2)] = -1;
	heap32[(r15+3)] = -1;
	heap8[r8+16] = r13;
	heap32[(r15+5)] = r14;
	heap32[(r15+6)] = r11;
	heap32[(r15+7)] = 0;
	heap32[(r15+8)] = 1050253722;
	heap32[(r15)] = r9;
	heap32[(r15+135)] = -1287930578;
	heap32[(r15+136)] = 0;
	heap32[(r15+137)] = 1065353216;
	heap32[(r15+138)] = 0;
	heap32[(r15+139)] = -2147483648;
	heap32[(r15+140)] = 1065353216;
	heap32[(r15+141)] = 0;
	heap32[(r15+142)] = 0;
	heap32[(r15+143)] = -1082130432;
	heap32[(r15+144)] = -2147483648;
	heap32[(r15+145)] = -1287930578;
	heap32[(r15+146)] = 0;
	heap32[(r15+147)] = 0;
	heap32[(r15+148)] = -1085695591;
	heap32[(r15+149)] = 0;
	heap32[(r15+150)] = 0;
	heap32[(r15+151)] = -1287930578;
	heap32[(r15+152)] = 0;
	heap32[(r15+153)] = 1065353216;
	heap32[(r15+154)] = 0;
	heap32[(r15+155)] = -2147483648;
	heap32[(r15+156)] = 1065353216;
	heap32[(r15+157)] = 0;
	heap32[(r15+158)] = 0;
	heap32[(r15+159)] = -1082130432;
	heap32[(r15+160)] = -2147483648;
	heap32[(r15+161)] = -1287930578;
	heap32[(r15+162)] = 0;
	heap32[(r15+163)] = 0;
	heap32[(r15+164)] = 1059439248;
	heap32[(r15+165)] = 0;
	heap32[(r15+166)] = 0;
	heap8[r8+720] = r13;
	heap8[r8+721] = r13;
	heap8[r8+723] = r13;
	heap8[r8+724] = r4;
	heap8[r8+725] = r13;
	heap32[(r15+183)] = 0;
	heap32[(r15+172)] = 1065353216;
	heap32[(r15+173)] = -1082130432;
	heap32[(r15+170)] = 1050253722;
	heap32[(r15+171)] = 1065353216;
	heap32[(r15+169)] = 1063675494;
	heap8[r8+722] = r13;
	heap32[(r15+179)] = 1065353216;
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_242
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_244
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	r11 = r8 >> 2;
	heapFloat[(r11+172)] = f12;
	heap32[(g0)] = 1070141403;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_247
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_249
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	heapFloat[(r11+173)] = f12;
	heap32[(r11+169)] = 1063675494;
	heap32[(r11+170)] = 1050253722;
	heap32[(r11+171)] = 1065353216;
	heap32[(r12+29)] = r8;
	r11 = heap32[(r12+1)];
	r14 = r11 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+13)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	heap32[(g0)] = 596;
	_Znwj(i7);
	r11 = heap32[(r12+20)];
	r14 = heap32[(r12+14)];
	r15 = r_g0 >> 2;
	heap32[(r15+1)] = 5;
	heap32[(r15+2)] = -1;
	heap32[(r15+3)] = -1;
	heap8[r_g0+16] = r13;
	heap32[(r15+5)] = r14;
	heap32[(r15+6)] = r11;
	heap32[(r15+7)] = 0;
	heap32[(r15+8)] = 1050253722;
	heap32[(r15)] = r10;
	heap32[(r15+72)] = -1082130432;
	heap32[(r15+73)] = 867941678;
	heap32[(r15+74)] = -2147483648;
	heap32[(r15+75)] = 0;
	heap32[(r15+76)] = -1279541970;
	heap32[(r15+77)] = -1082130432;
	heap32[(r15+78)] = 0;
	heap32[(r15+79)] = 0;
	heap32[(r15+80)] = -2147483648;
	heap32[(r15+81)] = 0;
	heap32[(r15+82)] = 1065353216;
	heap32[(r15+83)] = 0;
	heap32[(r15+84)] = -1087163597;
	heap32[(r15+85)] = 1057384039;
	heap32[(r15+86)] = 0;
	heap32[(r15+87)] = 0;
	heap32[(r15+88)] = -1287930578;
	heap32[(r15+89)] = -1082130432;
	heap32[(r15+90)] = 0;
	heap32[(r15+91)] = 0;
	heap32[(r15+92)] = 1065353216;
	heap32[(r15+93)] = -1287930578;
	heap32[(r15+94)] = 0;
	heap32[(r15+95)] = 0;
	heap32[(r15+96)] = -2147483648;
	heap32[(r15+97)] = 0;
	heap32[(r15+98)] = 1065353216;
	heap32[(r15+99)] = 0;
	heap32[(r15+100)] = 0;
	heap32[(r15+101)] = -1088338002;
	heap32[(r15+102)] = 0;
	heap32[(r15+103)] = 0;
	heap8[r_g0+540] = r13;
	heap32[(r15+128)] = 0;
	heap32[(r15+140)] = -1082130432;
	heap32[(r15+107)] = 1008981770;
	heap32[(r15+111)] = 1028443341;
	heap32[(r15+145)] = 0;
	heap32[(r15+146)] = 0;
	heap32[(r15+147)] = 1060320051;
	heap32[(r15+148)] = 0;
	heap32[(r15+108)] = 1070141403;
	heap32[(r15+109)] = 1070141403;
	heap32[(r15+110)] = 0;
	heap32[(r15+104)] = 1065353216;
	heap32[(r15+105)] = 1050253722;
	heap32[(r15+106)] = 1065353216;
	heap32[(r12+30)] = r_g0;
	r11 = heap32[(r12+1)];
	r14 = r11 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+13)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	heap32[(g0)] = 748;
	_Znwj(i7);
	r8 = r_g0;
	r11 = heap32[(r12+21)];
	r14 = heap32[(r12+20)];
	r15 = r8 >> 2;
	heap32[(r15+1)] = 4;
	heap32[(r15+2)] = -1;
	heap32[(r15+3)] = -1;
	heap8[r8+16] = r13;
	heap32[(r15+5)] = r14;
	heap32[(r15+6)] = r11;
	heap32[(r15+7)] = 0;
	heap32[(r15+8)] = 1050253722;
	heap32[(r15)] = r9;
	heap32[(r15+135)] = -1287930578;
	heap32[(r15+136)] = 0;
	heap32[(r15+137)] = 1065353216;
	heap32[(r15+138)] = 0;
	heap32[(r15+139)] = -2147483648;
	heap32[(r15+140)] = 1065353216;
	heap32[(r15+141)] = 0;
	heap32[(r15+142)] = 0;
	heap32[(r15+143)] = -1082130432;
	heap32[(r15+144)] = -2147483648;
	heap32[(r15+145)] = -1287930578;
	heap32[(r15+146)] = 0;
	heap32[(r15+147)] = 0;
	heap32[(r15+148)] = 1059145646;
	heap32[(r15+149)] = 0;
	heap32[(r15+150)] = 0;
	heap32[(r15+151)] = -1287930578;
	heap32[(r15+152)] = 0;
	heap32[(r15+153)] = 1065353216;
	heap32[(r15+154)] = 0;
	heap32[(r15+155)] = -2147483648;
	heap32[(r15+156)] = 1065353216;
	heap32[(r15+157)] = 0;
	heap32[(r15+158)] = 0;
	heap32[(r15+159)] = -1082130432;
	heap32[(r15+160)] = -2147483648;
	heap32[(r15+161)] = -1287930578;
	heap32[(r15+162)] = 0;
	heap32[(r15+163)] = 0;
	heap32[(r15+164)] = -1090854584;
	heap32[(r15+165)] = 0;
	heap32[(r15+166)] = 0;
	heap8[r8+720] = r13;
	heap8[r8+721] = r13;
	heap8[r8+723] = r13;
	heap8[r8+724] = r4;
	heap8[r8+725] = r13;
	heap32[(r15+183)] = 0;
	heap32[(r15+172)] = 1065353216;
	heap32[(r15+173)] = -1082130432;
	heap32[(r15+170)] = 1050253722;
	heap32[(r15+171)] = 1065353216;
	heap32[(r15+169)] = 1063675494;
	heap8[r8+722] = r13;
	heap32[(r15+179)] = 1065353216;
	heap32[(g0)] = -1077342245;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_252
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_254
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	r11 = r8 >> 2;
	heapFloat[(r11+172)] = f12;
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_257
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_259
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	heapFloat[(r11+173)] = f12;
	heap32[(r11+169)] = 1063675494;
	heap32[(r11+170)] = 1050253722;
	heap32[(r11+171)] = 1065353216;
	heap32[(r12+31)] = r8;
	r11 = heap32[(r12+1)];
	r14 = r11 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+13)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	heap32[(g0)] = 596;
	_Znwj(i7);
	r11 = heap32[(r12+22)];
	r14 = heap32[(r12+14)];
	r15 = r_g0 >> 2;
	heap32[(r15+1)] = 5;
	heap32[(r15+2)] = -1;
	heap32[(r15+3)] = -1;
	heap8[r_g0+16] = r13;
	heap32[(r15+5)] = r14;
	heap32[(r15+6)] = r11;
	heap32[(r15+7)] = 0;
	heap32[(r15+8)] = 1050253722;
	heap32[(r15)] = r10;
	heap32[(r15+72)] = 1065353216;
	heap32[(r15+73)] = 0;
	heap32[(r15+74)] = 0;
	heap32[(r15+75)] = 0;
	heap32[(r15+76)] = 0;
	heap32[(r15+77)] = 1065353216;
	heap32[(r15+78)] = 0;
	heap32[(r15+79)] = 0;
	heap32[(r15+80)] = -2147483648;
	heap32[(r15+81)] = 0;
	heap32[(r15+82)] = 1065353216;
	heap32[(r15+83)] = 0;
	heap32[(r15+84)] = 1060320051;
	heap32[(r15+85)] = 1057384039;
	heap32[(r15+86)] = 0;
	heap32[(r15+87)] = 0;
	heap32[(r15+88)] = -1287930578;
	heap32[(r15+89)] = -1082130432;
	heap32[(r15+90)] = 0;
	heap32[(r15+91)] = 0;
	heap32[(r15+92)] = 1065353216;
	heap32[(r15+93)] = -1287930578;
	heap32[(r15+94)] = 0;
	heap32[(r15+95)] = 0;
	heap32[(r15+96)] = -2147483648;
	heap32[(r15+97)] = 0;
	heap32[(r15+98)] = 1065353216;
	heap32[(r15+99)] = 0;
	heap32[(r15+100)] = 0;
	heap32[(r15+101)] = -1088338002;
	heap32[(r15+102)] = 0;
	heap32[(r15+103)] = 0;
	heap8[r_g0+540] = r13;
	heap32[(r15+128)] = 0;
	heap32[(r15+140)] = -1082130432;
	heap32[(r15+107)] = 1008981770;
	heap32[(r15+111)] = 1028443341;
	heap32[(r15+145)] = 0;
	heap32[(r15+146)] = 0;
	heap32[(r15+147)] = 1060320051;
	heap32[(r15+148)] = 0;
	heap32[(r15+108)] = 1070141403;
	heap32[(r15+109)] = 1070141403;
	heap32[(r15+110)] = 0;
	heap32[(r15+104)] = 1065353216;
	heap32[(r15+105)] = 1050253722;
	heap32[(r15+106)] = 1065353216;
	heap32[(r12+32)] = r_g0;
	r10 = heap32[(r12+1)];
	r11 = r10 >> 2;
	r11 = heap32[(r11)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+13)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	heap32[(g0)] = 748;
	_Znwj(i7);
	r8 = r_g0;
	r10 = heap32[(r12+23)];
	r11 = heap32[(r12+22)];
	r14 = r8 >> 2;
	heap32[(r14+1)] = 4;
	heap32[(r14+2)] = -1;
	heap32[(r14+3)] = -1;
	heap8[r8+16] = r13;
	heap32[(r14+5)] = r11;
	heap32[(r14+6)] = r10;
	heap32[(r14+7)] = 0;
	heap32[(r14+8)] = 1050253722;
	heap32[(r14)] = r9;
	heap32[(r14+135)] = -1287930578;
	heap32[(r14+136)] = 0;
	heap32[(r14+137)] = 1065353216;
	heap32[(r14+138)] = 0;
	heap32[(r14+139)] = -2147483648;
	heap32[(r14+140)] = 1065353216;
	heap32[(r14+141)] = 0;
	heap32[(r14+142)] = 0;
	heap32[(r14+143)] = -1082130432;
	heap32[(r14+144)] = -2147483648;
	heap32[(r14+145)] = -1287930578;
	heap32[(r14+146)] = 0;
	heap32[(r14+147)] = 0;
	heap32[(r14+148)] = 1059145646;
	heap32[(r14+149)] = 0;
	heap32[(r14+150)] = 0;
	heap32[(r14+151)] = -1287930578;
	heap32[(r14+152)] = 0;
	heap32[(r14+153)] = 1065353216;
	heap32[(r14+154)] = 0;
	heap32[(r14+155)] = -2147483648;
	heap32[(r14+156)] = 1065353216;
	heap32[(r14+157)] = 0;
	heap32[(r14+158)] = 0;
	heap32[(r14+159)] = -1082130432;
	heap32[(r14+160)] = -2147483648;
	heap32[(r14+161)] = -1287930578;
	heap32[(r14+162)] = 0;
	heap32[(r14+163)] = 0;
	heap32[(r14+164)] = -1090854584;
	heap32[(r14+165)] = 0;
	heap32[(r14+166)] = 0;
	heap8[r8+720] = r13;
	heap8[r8+721] = r13;
	heap8[r8+723] = r13;
	heap8[r8+724] = r4;
	heap8[r8+725] = r13;
	heap32[(r14+183)] = 0;
	heap32[(r14+172)] = 1065353216;
	heap32[(r14+173)] = -1082130432;
	heap32[(r14+170)] = 1050253722;
	heap32[(r14+171)] = 1065353216;
	heap32[(r14+169)] = 1063675494;
	heap8[r8+722] = r13;
	heap32[(r14+179)] = 1065353216;
	heap32[(g0)] = -1077342245;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_262
{
	f14 =        3.1415927410125732;
	if(f12 >f14) //_LBB26_264
{
	f14 =       -6.2831854820251465;
	f12 = f12+f14;
}
}
else{
	f14 =        6.2831854820251465;
	f12 = f12+f14;
}
	r9 = r8 >> 2;
	heapFloat[(r9+172)] = f12;
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f12 = f_g0;
	if(f12 >=f13) //_LBB26_267
{
	f13 =        3.1415927410125732;
	if(f12 >f13) //_LBB26_269
{
	f13 =       -6.2831854820251465;
	f12 = f12+f13;
}
}
else{
	f13 =        6.2831854820251465;
	f12 = f12+f13;
}
	heapFloat[(r9+173)] = f12;
	heap32[(r9+169)] = 1063675494;
	heap32[(r9+170)] = 1050253722;
	heap32[(r9+171)] = 1065353216;
	heap32[(r12+33)] = r8;
	r9 = heap32[(r12+1)];
	r10 = r9 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+13)];
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r8 = heap32[(r1+10)];
	r9 = heap32[(r1+9)];
	if(r8 ==r9) //_LBB26_272
{
	r10 = r9 << 1;
	r10 = r9 == 0 ? r4 : r10;
if(!(r8 >=r10)) //_LBB26_271
{
	if(r10 !=0) //_LBB26_275
{
	r8 = heap32[(r2)];
	r11 = r10 << 2;
	r8 = (r8 + 1)|0;
	r11 = r11 | 3;
	heap32[(r2)] = r8;
	r8 = (r11 + 16)|0;
	heap32[(g0)] = r8;
	malloc(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB26_277
{
	r11 = (r8 + 4)|0;
	r11 = (r13 - r11)|0;
	r11 = r11 & 15;
	r11 = (r8 + r11)|0;
	r12 = (r11 + 4)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r8;
	r8 = r12;
}
}
else{
	r8 = 0;
}
_358: do {
	if(r9 <1) //_LBB26_280
{
	r11 = heap32[(r1+11)];
}
else{
_360: while(true){
	r11 = heap32[(r1+11)];
	r12 = r13 << 2;
	r14 = (r11 + r12)|0;
	r14 = r14 >> 2;
	r12 = (r8 + r12)|0;
	r14 = heap32[(r14)];
	r13 = (r13 + 1)|0;
	r12 = r12 >> 2;
	heap32[(r12)] = r14;
if(!(r9 !=r13)) //_LBB26_281
{
break _358;
}
}
}
} while(0);
	if(r11 !=0) //_LBB26_284
{
	r12 = heapU8[r6+48];
	if(r12 !=0) //_LBB26_286
{
	r9 = gNumAlignedFree;
	r9 = r9 >> 2;
	r12 = heap32[(r9)];
	r12 = (r12 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r9)] = r12;
	r9 = heap32[(r11+-1)];
	heap32[(g0)] = r9;
	free(i7);
	r9 = heap32[(r1+9)];
}
	heap32[(r1+11)] = 0;
}
	heap8[r6+48] = r4;
	heap32[(r1+11)] = r8;
	heap32[(r1+10)] = r10;
}
}
	r8 = r9 << 2;
	r9 = heap32[(r1+11)];
	r8 = (r9 + r8)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r7;
	r7 = heap32[(r1+9)];
	r5 = (r5 + 1)|0;
	r7 = (r7 + 1)|0;
	heap32[(r1+9)] = r7;
if(!(r0 !=r5)) //_LBB26_185
{
break _262;
}
}
	f3 =                         7;
	f4 =                        -2;
	r0 = (r0 + -1)|0;
	f1 = f1+f3;
	f2 = f2+f4;
	r3 = (r3 + 1)|0;
	if(r0 ==0) //_LBB26_165
{
break _161;
}
else{
continue _260;
}
}
}
}
}
}
} while(0);
	return;
break;
case 46:
	r0 = _2E_str674;
	r1 = _2E_str573;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 53;
	_assert(i7);
break;
}
}

function _GLOBAL__D__Z6mymainiPPc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZL14benchmarkDemo4;
	r1 = _ZTV13BenchmarkDemo;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
	r1 = heap32[(r2+11)];
if(!(r1 ==0)) //_LBB27_4
{
	r3 = heapU8[r0+48];
if(!(r3 ==0)) //_LBB27_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+11)] = 0;
}
	r1 = 1;
	heap8[r0+48] = r1;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	r3 = heap32[(r2+6)];
if(!(r3 ==0)) //_LBB27_8
{
	r4 = heapU8[r0+28];
if(!(r4 ==0)) //_LBB27_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+6)] = 0;
}
	heap8[r0+28] = r1;
	heap32[(r2+6)] = 0;
	heap32[(r2+4)] = 0;
	heap32[(r2+5)] = 0;
	return;
}

function _ZN14BenchmarkDemo4D1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14BenchmarkDemo4;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN13BenchmarkDemoD2Ev(i7);
	return;
}

function _ZN14BenchmarkDemo4D0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14BenchmarkDemo4;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN13BenchmarkDemoD2Ev(i7);
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function __draw(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZL14benchmarkDemo4;
	heap32[(g0)] = r0;
	_ZN13BenchmarkDemo20clientMoveAndDisplayEv(i7);
	return;
}

function _ZN13BenchmarkDemoD2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13BenchmarkDemo;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
	r1 = heap32[(r2+11)];
if(!(r1 ==0)) //_LBB31_4
{
	r3 = heapU8[r0+48];
if(!(r3 ==0)) //_LBB31_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+11)] = 0;
}
	r1 = 1;
	heap8[r0+48] = r1;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	r3 = heap32[(r2+6)];
if(!(r3 ==0)) //_LBB31_8
{
	r4 = heapU8[r0+28];
if(!(r4 ==0)) //_LBB31_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+6)] = 0;
}
	heap8[r0+28] = r1;
	heap32[(r2+6)] = 0;
	heap32[(r2+4)] = 0;
	heap32[(r2+5)] = 0;
	return;
}

function __init(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = gDisableDeactivation;
	r1 = 1;
	heap8[r0] = r1;
	_ZN13BenchmarkDemo11initPhysicsEv(i7);
	return;
}

function _ZN15btNullPairCache23getOverlappingPairArrayEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = (r0 + 4)|0;
	r_g0 = r0;
	return;
}

function _ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZNK15btNullPairCache22getNumOverlappingPairsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btNullPairCache18hasDeferredRemovalEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btNullPairCache26getOverlappingPairArrayPtrEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r_g0 = r0;
	return;
}

function _ZNK15btNullPairCache26getOverlappingPairArrayPtrEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r_g0 = r0;
	return;
}

function _ZN15btNullPairCacheD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV15btNullPairCache;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+4)];
if(!(r1 ==0)) //_LBB48_4
{
	r3 = heapU8[r0+20];
if(!(r3 ==0)) //_LBB48_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	r1 = 1;
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	return;
}

function _ZN15btNullPairCacheD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV15btNullPairCache;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+4)];
if(!(r1 ==0)) //_LBB49_4
{
	r3 = heapU8[r0+20];
if(!(r3 ==0)) //_LBB49_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	r1 = 1;
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r1)] = heap32[(r0+4)];
	heap32[(r1+1)] = heap32[(r0+5)];
	r2 = heap32[(fp+3)];
	heap32[(r1+2)] = heap32[(r0+6)];
	r2 = r2 >> 2;
	heap32[(r1+3)] = heap32[(r0+7)];
	heap32[(r2)] = heap32[(r0+8)];
	heap32[(r2+1)] = heap32[(r0+9)];
	heap32[(r2+2)] = heap32[(r0+10)];
	heap32[(r2+3)] = heap32[(r0+11)];
	return;
}

function _ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+23)];
	r_g0 = r0;
	return;
}

function _ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+23)];
	r_g0 = r0;
	return;
}

function _ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r1)] = heap32[(r0+2)];
	heap32[(r1+1)] = heap32[(r0+3)];
	r2 = heap32[(fp+2)];
	heap32[(r1+2)] = heap32[(r0+4)];
	r2 = r2 >> 2;
	heap32[(r1+3)] = heap32[(r0+5)];
	heap32[(r2)] = heap32[(r0+6)];
	heap32[(r2+1)] = heap32[(r0+7)];
	heap32[(r2+2)] = heap32[(r0+8)];
	heap32[(r2+3)] = heap32[(r0+9)];
	return;
}

function _ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU16[(r0+56)>>1];
if(!(r1 !=0)) //_LBB54_6
{
	r1 = 1;
	heap16[(r0+64)>>1] = r1;
	r2 = heapU16[(r0+58)>>1];
	if(uint(r2) >uint(1)) //_LBB54_3
{
	r3 = 2;
_5: while(true){
	r2 = r1 & 65535;
	r4 = r0 >> 2;
	r2 = r2 << 6;
	r4 = heap32[(r4+15)];
	r2 = (r4 + r2)|0;
	heap16[(r2+48)>>1] = r3;
	r1 = (r1 + 1)|0;
	r2 = heapU16[(r0+58)>>1];
	r3 = (r3 + 1)|0;
	r4 = r1 & 65535;
if(!(uint(r2) >uint(r4))) //_LBB54_4
{
break _5;
}
}
}
	r1 = r2 & 65535;
	r0 = r0 >> 2;
	r1 = r1 << 6;
	r0 = heap32[(r0+15)];
	r0 = (r1 + r0)|0;
	r1 = 0;
	heap16[(r0+-16)>>1] = r1;
}
	return;
}

function _ZN20btAxisSweep3InternalItE10printStatsEv(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+27)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	if(r2 !=0) //_LBB56_2
{
	r0 = r2 >> 2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+7)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	return;
}
else{
	r2 = heapU16[(r0+56)>>1];
	r2 = r2 << 1;
	r2 = r2 | 1;
if(!(r2 ==1)) //_LBB56_18
{
	r2 = 1;
	r6 = 2;
_6: while(true){
	r7 = r6;
	r6 = r2 & 65535;
	r8 = heap32[(r1+17)];
	r6 = r6 << 2;
	r9 = heapU8[r8+r6];
	r9 = r9 & 1;
if(!(r9 ==0)) //_LBB56_17
{
	r6 = (r8 + r6)|0;
	r6 = heapU16[(r6+2)>>1];
	r8 = heap32[(r1+15)];
	r6 = r6 << 6;
	r6 = (r8 + r6)|0;
	r8 = r3 >> 2;
	r9 = r6 >> 2;
	f0 = heapFloat[(r8)];
	f1 = heapFloat[(r9+8)];
	if(f0 >f1) //_LBB56_8
{
__label__ = 8;
}
else{
	r10 = r4 >> 2;
	f0 = heapFloat[(r10)];
	f1 = heapFloat[(r9+4)];
	if(f0 <f1) //_LBB56_8
{
__label__ = 8;
}
else{
	r10 = 1;
__label__ = 9;
}
}
if (__label__ == 8){
	r10 = 0;
}
	f0 = heapFloat[(r8+2)];
	f1 = heapFloat[(r9+10)];
	if(f0 >f1) //_LBB56_12
{
__label__ = 11;
}
else{
	r11 = r4 >> 2;
	f0 = heapFloat[(r11+2)];
	f1 = heapFloat[(r9+6)];
	if(f0 <f1) //_LBB56_12
{
__label__ = 11;
}
else{
__label__ = 12;
}
}
if (__label__ == 11){
	r10 = 0;
}
	f0 = heapFloat[(r8+1)];
	f1 = heapFloat[(r9+9)];
if(!(f0 >f1)) //_LBB56_17
{
	r8 = r4 >> 2;
	f0 = heapFloat[(r8+1)];
	f1 = heapFloat[(r9+5)];
if(!(f0 <f1)) //_LBB56_17
{
	r8 = r10 & 255;
if(!(r8 ==0)) //_LBB56_17
{
	r8 = r5 >> 2;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r8)>>2](i7);
}
}
}
}
	r8 = heapU16[(r0+56)>>1];
	r6 = (r7 + 1)|0;
	r2 = (r2 + 1)|0;
	r8 = r8 << 1;
	r7 = r7 & 65535;
	r8 = r8 | 1;
if(!(uint(r7) <uint(r8))) //_LBB56_4
{
break _6;
}
}
}
	return;
}
}

function _ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+27)];
	r3 = heap32[(fp+3)];
	if(r2 !=0) //_LBB57_2
{
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
	r4 = heap32[(fp+4)];
	r5 = heap32[(fp+5)];
	r6 = r2 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+6)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	return;
}
else{
	r2 = heapU16[(r0+56)>>1];
	r2 = r2 << 1;
	r2 = r2 | 1;
if(!(r2 ==1)) //_LBB57_7
{
	r2 = 1;
	r4 = 2;
_6: while(true){
	r5 = r2 & 65535;
	r6 = heap32[(r1+17)];
	r5 = r5 << 2;
	r7 = heapU8[r6+r5];
	r7 = r7 & 1;
if(!(r7 ==0)) //_LBB57_6
{
	r7 = r3 >> 2;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r5 = (r6 + r5)|0;
	r5 = heapU16[(r5+2)>>1];
	r6 = heap32[(r7+2)];
	r7 = heap32[(r1+15)];
	r5 = r5 << 6;
	r5 = (r7 + r5)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
}
	r5 = heapU16[(r0+56)>>1];
	r6 = (r4 + 1)|0;
	r2 = (r2 + 1)|0;
	r5 = r5 << 1;
	r7 = r4 & 65535;
	r5 = r5 | 1;
	r4 = r6;
if(!(uint(r7) <uint(r5))) //_LBB57_4
{
break _6;
}
}
}
	return;
}
}

function _ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	f0 = heapFloat[(fp+2)];
	f1 = heapFloat[(r1+2)];
	f2 = heapFloat[(fp+4)];
	f3 = heapFloat[(r1+4)];
	f4 = heapFloat[(fp+3)];
	f5 = heapFloat[(r1+3)];
	f0 = f0-f1;
	f1 = heapFloat[(r1+10)];
	f2 = f2-f3;
	f3 = heapFloat[(r1+12)];
	f4 = f4-f5;
	f5 = heapFloat[(r1+11)];
	f0 = f0*f1;
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+5)];
	f1 = f2*f3;
	f2 = f4*f5;
	f3 =                         0;
	if(f0 >f3) //_LBB58_2
{
	r3 = heapU16[(r0+6)>>1];
	f4 = r3; //fitos r3, f4
	if(f0 <f4) //_LBB58_4
{
	r3 = heapU16[(r0+4)>>1];
	r4 = Math.floor(f0);
	r3 = r3 & r4;
	r3 = r3 | r2;
}
else{
	r4 = heapU16[(r0+4)>>1];
	r3 = r4 & r3;
	r3 = r3 | r2;
}
}
else{
	r3 = r2;
}
	heap16[(r1)>>1] = r3;
	if(f2 >f3) //_LBB58_7
{
	r3 = heapU16[(r0+6)>>1];
	f0 = r3; //fitos r3, f0
	if(f2 <f0) //_LBB58_9
{
	r3 = heapU16[(r0+4)>>1];
	r4 = Math.floor(f2);
	r3 = r3 & r4;
	r3 = r3 | r2;
}
else{
	r4 = heapU16[(r0+4)>>1];
	r3 = r4 & r3;
	r3 = r3 | r2;
}
}
else{
	r3 = r2;
}
	heap16[(r1+2)>>1] = r3;
	if(f1 >f3) //_LBB58_12
{
	r3 = heapU16[(r0+6)>>1];
	f0 = r3; //fitos r3, f0
	if(f1 <f0) //_LBB58_14
{
	r0 = heapU16[(r0+4)>>1];
	r3 = Math.floor(f1);
	r0 = r0 & r3;
	r2 = r0 | r2;
}
else{
	r0 = heapU16[(r0+4)>>1];
	r0 = r0 & r3;
	r2 = r0 | r2;
}
}
	heap16[(r1+4)>>1] = r2;
	return;
}

function _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+1)];
	r2 = (r0 + r1)|0;
	r3 = r2 >>> 31;
	r4 = heap32[(fp)];
	r2 = (r2 + r3)|0;
	r3 = r4 >> 2;
	r2 = r2 & 536870910;
	r5 = heap32[(r3+3)];
	r2 = r2 << 3;
	r2 = (r5 + r2)|0;
	r2 = r2 >> 2;
	r5 = heap32[(r2)];
	r6 = heap32[(r2+1)];
	r2 = heap32[(r2+2)];
	r7 = r1;
	r8 = r0;
_1: while(true){
	r9 = heap32[(r3+3)];
	r10 = r7 << 4;
	r10 = (r9 + r10)|0;
	r11 = 0;
_3: while(true){
	r12 = r11 << 4;
	r12 = (r10 + r12)|0;
	r12 = r12 >> 2;
	r13 = r11 << 2;
	r14 = heap32[(r12)];
	if(r14 !=0) //_LBB59_5
{
	r15 = r14 >> 2;
	r15 = heap32[(r15+3)];
}
else{
	r15 = -1;
}
	if(r5 !=0) //_LBB59_8
{
	r16 = r5 >> 2;
	r16 = heap32[(r16+3)];
}
else{
	r16 = -1;
}
	r17 = r13 << 2;
	r17 = (r10 + r17)|0;
	r17 = r17 >> 2;
	r17 = heap32[(r17+1)];
	if(r17 !=0) //_LBB59_11
{
	r18 = r17 >> 2;
	r18 = heap32[(r18+3)];
}
else{
	r18 = -1;
}
	if(r6 !=0) //_LBB59_14
{
	r19 = r6 >> 2;
	r19 = heap32[(r19+3)];
}
else{
	r19 = -1;
}
_21: do {
if(!(r15 >r16)) //_LBB59_2
{
if(!(r14 !=r5)) //_LBB59_18
{
	if(r18 >r19) //_LBB59_2
{
break _21;
}
}
	if(r14 !=r5) //_LBB59_22
{
break _3;
}
else{
	if(r17 !=r6) //_LBB59_22
{
break _3;
}
else{
	r15 = r13 << 2;
	r15 = (r10 + r15)|0;
	r15 = r15 >> 2;
	r15 = heap32[(r15+2)];
if(!(uint(r15) >uint(r2))) //_LBB59_2
{
break _3;
}
}
}
}
} while(0);
	r11 = (r11 + 1)|0;
continue _3;
}
	r18 = r8 << 4;
	r15 = (r7 + r11)|0;
	r9 = (r9 + r18)|0;
	r16 = 0;
_30: while(true){
	r19 = r16 << 2;
	if(r5 !=0) //_LBB59_25
{
	r20 = r5 >> 2;
	r20 = heap32[(r20+3)];
}
else{
	r20 = -1;
}
	r21 = r19 << 2;
	r21 = (r9 + r21)|0;
	r21 = r21 >> 2;
	r21 = heap32[(r21)];
	if(r21 !=0) //_LBB59_28
{
	r22 = r21 >> 2;
	r22 = heap32[(r22+3)];
}
else{
	r22 = -1;
}
	if(r6 !=0) //_LBB59_31
{
	r23 = r6 >> 2;
	r23 = heap32[(r23+3)];
}
else{
	r23 = -1;
}
	r24 = r19 << 2;
	r24 = (r9 + r24)|0;
	r24 = r24 >> 2;
	r24 = heap32[(r24+1)];
	if(r24 !=0) //_LBB59_34
{
	r25 = r24 >> 2;
	r25 = heap32[(r25+3)];
}
else{
	r25 = -1;
}
_48: do {
if(!(r20 >r22)) //_LBB59_21
{
if(!(r5 !=r21)) //_LBB59_38
{
	if(r23 >r25) //_LBB59_21
{
break _48;
}
}
	if(r5 !=r21) //_LBB59_41
{
break _30;
}
else{
	if(r6 !=r24) //_LBB59_41
{
break _30;
}
else{
	r20 = r19 << 2;
	r20 = (r9 + r20)|0;
	r20 = r20 >> 2;
	r20 = heap32[(r20+2)];
if(!(uint(r2) >uint(r20))) //_LBB59_21
{
break _30;
}
}
}
}
} while(0);
	r16 = (r16 + -1)|0;
continue _30;
}
	r20 = (r8 + r16)|0;
	if(r15 <=r20) //_LBB59_43
{
	r13 = r13 << 2;
	r10 = (r10 + r13)|0;
	r10 = r10 >> 2;
	r13 = heap32[(r12+3)];
	r15 = heap32[(r10+2)];
	r19 = r19 << 2;
	r19 = (r9 + r19)|0;
	heap32[(r10)] = r21;
	r20 = r16 << 4;
	r19 = r19 >> 2;
	heap32[(r10+1)] = r24;
	r19 = heap32[(r19+2)];
	r9 = (r9 + r20)|0;
	r9 = r9 >> 2;
	heap32[(r10+2)] = r19;
	r9 = heap32[(r9+3)];
	heap32[(r12+3)] = r9;
	r9 = heap32[(r3+3)];
	r9 = (r9 + r18)|0;
	r9 = (r9 + r20)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r14;
	r7 = (r7 + r11)|0;
	r8 = (r8 + r16)|0;
	heap32[(r9+1)] = r17;
	r7 = (r7 + 1)|0;
	r8 = (r8 + -1)|0;
	heap32[(r9+2)] = r15;
	heap32[(r9+3)] = r13;
}
else{
	r7 = r15;
	r8 = r20;
}
	if(r7 <=r8) //_LBB59_1
{
continue _1;
}
else{
break _1;
}
}
if(!(r8 <=r1)) //_LBB59_47
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r8;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
}
if(!(r7 >=r0)) //_LBB59_49
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r0;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
}
	return;
}

function _ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = r0 << 2;
	r2 = (r1 + r2)|0;
	r3 = heap32[(fp+2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+17)];
	r3 = r3 << 2;
	r4 = (r2 + r3)|0;
	r2 = heapU16[(r2+r3)>>1];
	r3 = heapU16[(r4+-4)>>1];
if(!(uint(r2) >=uint(r3))) //_LBB60_14
{
	r1 = r1 >> 2;
	r2 = heap32[(fp+3)];
	r3 = heap32[(r1+15)];
	r5 = heapU16[(r4+2)>>1];
	r6 = 1;
	r7 = r6 << r0;
	r7 = r7 & 3;
	r6 = r6 << r7;
	r5 = r5 << 6;
	r5 = (r3 + r5)|0;
	r6 = r6 & 3;
	r0 = r0 << 1;
	r8 = (r5 + 48)|0;
	r7 = r7 << 1;
	r9 = (r5 + 54)|0;
	r6 = r6 << 1;
	r10 = (r8 + r0)|0;
	r11 = (r9 + r7)|0;
	r12 = (r8 + r7)|0;
	r9 = (r9 + r6)|0;
	r8 = (r8 + r6)|0;
	r4 = (r4 + 2)|0;
_3: while(true){
	r13 = heapU8[r4+-6];
	r14 = heapU16[(r4+-4)>>1];
	r13 = r13 & 1;
	if(r13 ==0) //_LBB60_11
{
	r13 = r14 << 6;
	r3 = (r3 + r13)|0;
	r3 = (r3 + r0)|0;
	r13 = heapU16[(r3+48)>>1];
	r13 = (r13 + 1)|0;
	heap16[(r3+48)>>1] = r13;
}
else{
if(!(r2 ==0)) //_LBB60_10
{
	r13 = r14 << 6;
	r13 = (r3 + r13)|0;
	r15 = (r13 + r7)|0;
	r16 = heapU16[(r11)>>1];
	r17 = heapU16[(r15+48)>>1];
if(!(uint(r16) <uint(r17))) //_LBB60_10
{
	r15 = heapU16[(r15+54)>>1];
	r16 = heapU16[(r12)>>1];
if(!(uint(r15) <uint(r16))) //_LBB60_10
{
	r15 = (r13 + r6)|0;
	r16 = heapU16[(r9)>>1];
	r17 = heapU16[(r15+48)>>1];
if(!(uint(r16) <uint(r17))) //_LBB60_10
{
	r15 = heapU16[(r15+54)>>1];
	r16 = heapU16[(r8)>>1];
if(!(uint(r15) <uint(r16))) //_LBB60_10
{
	r15 = heap32[(r1+23)];
	r16 = r15 >> 2;
	r16 = heap32[(r16)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+2)];
	heap32[(g0)] = r15;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r13;
	__FUNCTION_TABLE__[(r16)>>2](i7);
	r15 = heap32[(r1+24)];
if(!(r15 ==0)) //_LBB60_10
{
	r16 = r15 >> 2;
	r16 = heap32[(r16)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+2)];
	heap32[(g0)] = r15;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r13;
	__FUNCTION_TABLE__[(r16)>>2](i7);
}
}
}
}
}
}
	r14 = r14 << 6;
	r3 = (r3 + r14)|0;
	r3 = (r3 + r0)|0;
	r14 = heapU16[(r3+54)>>1];
	r14 = (r14 + 1)|0;
	heap16[(r3+54)>>1] = r14;
}
	r3 = heapU16[(r10)>>1];
	r3 = (r3 + -1)|0;
	heap16[(r10)>>1] = r3;
	r3 = heapU16[(r4+-2)>>1];
	r13 = heapU16[(r4)>>1];
	r14 = heapU16[(r4+-4)>>1];
	r15 = heapU16[(r4+-6)>>1];
	heap16[(r4+-2)>>1] = r15;
	heap16[(r4)>>1] = r14;
	heap16[(r4+-6)>>1] = r3;
	heap16[(r4+-4)>>1] = r13;
	r13 = heapU16[(r4+-10)>>1];
	if(uint(r3) >=uint(r13)) //_LBB60_14
{
break _3;
}
else{
	r3 = heap32[(r1+15)];
	r4 = (r4 + -4)|0;
continue _3;
}
}
}
	return;
}

function _ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = r0 << 2;
	r2 = (r1 + r2)|0;
	r2 = r2 >> 2;
	r3 = heap32[(fp+2)];
	r4 = 1;
	r2 = heap32[(r2+17)];
	r3 = r3 << 2;
	r2 = (r2 + r3)|0;
	r3 = r4 << r0;
	r3 = r3 & 3;
	r1 = r1 >> 2;
	r5 = heapU16[(r2+2)>>1];
	r4 = r4 << r3;
	r6 = heap32[(r1+15)];
	r5 = r5 << 6;
	r4 = r4 & 3;
	r5 = (r6 + r5)|0;
	r3 = r3 << 1;
	r6 = (r5 + 48)|0;
	r4 = r4 << 1;
	r5 = (r5 + 54)|0;
	r0 = r0 << 1;
	r7 = heap32[(fp+3)];
	r8 = (r5 + r3)|0;
	r9 = (r6 + r3)|0;
	r10 = (r5 + r4)|0;
	r6 = (r6 + r4)|0;
	r5 = (r5 + r0)|0;
	r2 = (r2 + 4)|0;
_1: while(true){
	r11 = heapU16[(r2+2)>>1];
	if(r11 ==0) //_LBB61_14
{
break _1;
}
else{
	r12 = heapU16[(r2)>>1];
	r13 = heapU16[(r2+-4)>>1];
	if(uint(r13) >=uint(r12)) //_LBB61_1
{
	r13 = heap32[(r1+15)];
	r11 = r11 & 65535;
	r12 = r12 & 1;
	if(r12 != 0) //_LBB61_10
{
	r11 = r11 << 6;
	r11 = (r13 + r11)|0;
	r11 = (r11 + r0)|0;
	r12 = heapU16[(r11+54)>>1];
	r12 = (r12 + -1)|0;
	heap16[(r11+54)>>1] = r12;
}
else{
if(!(r7 ==0)) //_LBB61_9
{
	r12 = r11 << 6;
	r12 = (r13 + r12)|0;
	r14 = (r12 + r3)|0;
	r15 = heapU16[(r8)>>1];
	r16 = heapU16[(r14+48)>>1];
if(!(uint(r15) <uint(r16))) //_LBB61_9
{
	r14 = heapU16[(r14+54)>>1];
	r15 = heapU16[(r9)>>1];
if(!(uint(r14) <uint(r15))) //_LBB61_9
{
	r14 = (r12 + r4)|0;
	r15 = heapU16[(r10)>>1];
	r16 = heapU16[(r14+48)>>1];
if(!(uint(r15) <uint(r16))) //_LBB61_9
{
	r14 = heapU16[(r14+54)>>1];
	r15 = heapU16[(r6)>>1];
if(!(uint(r14) <uint(r15))) //_LBB61_9
{
	r14 = heap32[(r1+23)];
	r15 = r14 >> 2;
	r15 = heap32[(r15)];
	r15 = r15 >> 2;
	r16 = heapU16[(r2+-2)>>1];
	r15 = heap32[(r15+2)];
	r16 = r16 << 6;
	r16 = (r13 + r16)|0;
	heap32[(g0)] = r14;
	heap32[(g0+1)] = r16;
	heap32[(g0+2)] = r12;
	__FUNCTION_TABLE__[(r15)>>2](i7);
	r14 = heap32[(r1+24)];
if(!(r14 ==0)) //_LBB61_9
{
	r15 = r14 >> 2;
	r15 = heap32[(r15)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+2)];
	heap32[(g0)] = r14;
	heap32[(g0+1)] = r16;
	heap32[(g0+2)] = r12;
	__FUNCTION_TABLE__[(r15)>>2](i7);
}
}
}
}
}
}
	r11 = r11 << 6;
	r11 = (r13 + r11)|0;
	r11 = (r11 + r0)|0;
	r12 = heapU16[(r11+48)>>1];
	r12 = (r12 + -1)|0;
	heap16[(r11+48)>>1] = r12;
}
	r11 = heapU16[(r5)>>1];
	r11 = (r11 + 1)|0;
	heap16[(r5)>>1] = r11;
	r11 = heapU16[(r2+-2)>>1];
	r12 = heapU16[(r2+-4)>>1];
	r13 = heapU16[(r2+2)>>1];
	r14 = heapU16[(r2)>>1];
	heap16[(r2+-4)>>1] = r14;
	heap16[(r2+-2)>>1] = r13;
	r13 = (r2 + 4)|0;
	heap16[(r2)>>1] = r12;
	heap16[(r2+2)>>1] = r11;
	r2 = r13;
continue _1;
}
else{
break _1;
}
}
}
	return;
}

function _ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = r0 << 2;
	r2 = (r1 + r2)|0;
	r2 = r2 >> 2;
	r3 = heap32[(fp+2)];
	r2 = heap32[(r2+17)];
	r3 = r3 << 2;
	r2 = (r2 + r3)|0;
	r1 = r1 >> 2;
	r3 = heapU16[(r2+2)>>1];
	r4 = 1;
	r5 = r4 << r0;
	r6 = heap32[(r1+15)];
	r3 = r3 << 6;
	r5 = r5 & 3;
	r3 = (r6 + r3)|0;
	r0 = r0 << 1;
	r3 = (r3 + r0)|0;
	r4 = r4 << r5;
	r6 = heap32[(fp+3)];
	r7 = heap32[(fp+4)];
	r3 = (r3 + 48)|0;
	r4 = r4 & 3;
	r2 = (r2 + 4)|0;
_1: while(true){
	r8 = heapU16[(r2+2)>>1];
	if(r8 ==0) //_LBB62_14
{
break _1;
}
else{
	r9 = heapU16[(r2)>>1];
	r10 = heapU16[(r2+-4)>>1];
	if(uint(r10) >=uint(r9)) //_LBB62_1
{
	r10 = heap32[(r1+15)];
	r8 = r8 & 65535;
	r9 = r9 & 1;
	if(r9 ==0) //_LBB62_10
{
	r8 = r8 << 6;
	r8 = (r10 + r8)|0;
	r8 = (r8 + r0)|0;
	r9 = heapU16[(r8+48)>>1];
	r9 = (r9 + -1)|0;
	heap16[(r8+48)>>1] = r9;
}
else{
if(!(r7 ==0)) //_LBB62_9
{
	r9 = heapU16[(r2+-2)>>1];
	r9 = r9 << 6;
	r11 = r8 << 6;
	r9 = (r10 + r9)|0;
	r12 = r5 << 1;
	r11 = (r10 + r11)|0;
	r13 = (r9 + r12)|0;
	r12 = (r11 + r12)|0;
	r14 = heapU16[(r13+54)>>1];
	r15 = heapU16[(r12+48)>>1];
if(!(uint(r14) <uint(r15))) //_LBB62_9
{
	r12 = heapU16[(r12+54)>>1];
	r13 = heapU16[(r13+48)>>1];
if(!(uint(r12) <uint(r13))) //_LBB62_9
{
	r12 = r4 << 1;
	r13 = (r9 + r12)|0;
	r12 = (r11 + r12)|0;
	r14 = heapU16[(r13+54)>>1];
	r15 = heapU16[(r12+48)>>1];
if(!(uint(r14) <uint(r15))) //_LBB62_9
{
	r12 = heapU16[(r12+54)>>1];
	r13 = heapU16[(r13+48)>>1];
if(!(uint(r12) <uint(r13))) //_LBB62_9
{
	r12 = heap32[(r1+23)];
	r13 = r12 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+3)];
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r12 = heap32[(r1+24)];
if(!(r12 ==0)) //_LBB62_9
{
	r13 = r12 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+3)];
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r13)>>2](i7);
}
}
}
}
}
}
	r8 = r8 << 6;
	r8 = (r10 + r8)|0;
	r8 = (r8 + r0)|0;
	r9 = heapU16[(r8+54)>>1];
	r9 = (r9 + -1)|0;
	heap16[(r8+54)>>1] = r9;
}
	r8 = heapU16[(r3)>>1];
	r8 = (r8 + 1)|0;
	heap16[(r3)>>1] = r8;
	r8 = heapU16[(r2+-2)>>1];
	r9 = heapU16[(r2+-4)>>1];
	r10 = heapU16[(r2+2)>>1];
	r11 = heapU16[(r2)>>1];
	heap16[(r2+-4)>>1] = r11;
	heap16[(r2+-2)>>1] = r10;
	r10 = (r2 + 4)|0;
	heap16[(r2)>>1] = r9;
	heap16[(r2+2)>>1] = r8;
	r2 = r10;
continue _1;
}
else{
break _1;
}
}
}
	return;
}

function _ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = r0 << 2;
	r2 = (r1 + r2)|0;
	r3 = heap32[(fp+2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+17)];
	r4 = r3 << 2;
	r5 = (r2 + r4)|0;
	r4 = heapU16[(r2+r4)>>1];
	r6 = heapU16[(r5+-4)>>1];
if(!(uint(r4) >=uint(r6))) //_LBB63_14
{
	r1 = r1 >> 2;
	r4 = heap32[(fp+3)];
	r6 = heap32[(fp+4)];
	r7 = heap32[(r1+15)];
	r3 = r3 << 2;
	r2 = (r2 + r3)|0;
	r2 = heapU16[(r2+2)>>1];
	r3 = 1;
	r8 = r3 << r0;
	r2 = r2 << 6;
	r8 = r8 & 3;
	r2 = (r7 + r2)|0;
	r0 = r0 << 1;
	r3 = r3 << r8;
	r2 = (r2 + r0)|0;
	r3 = r3 & 3;
	r2 = (r2 + 54)|0;
	r5 = (r5 + 2)|0;
_3: while(true){
	r9 = heapU8[r5+-6];
	r10 = heapU16[(r5+-4)>>1];
	r9 = r9 & 1;
	if(r9 != 0) //_LBB63_11
{
	r9 = r10 << 6;
	r7 = (r7 + r9)|0;
	r7 = (r7 + r0)|0;
	r9 = heapU16[(r7+54)>>1];
	r9 = (r9 + 1)|0;
	heap16[(r7+54)>>1] = r9;
}
else{
if(!(r6 ==0)) //_LBB63_10
{
	r9 = heapU16[(r5)>>1];
	r9 = r9 << 6;
	r11 = r10 << 6;
	r9 = (r7 + r9)|0;
	r12 = r8 << 1;
	r11 = (r7 + r11)|0;
	r13 = (r9 + r12)|0;
	r12 = (r11 + r12)|0;
	r14 = heapU16[(r13+54)>>1];
	r15 = heapU16[(r12+48)>>1];
if(!(uint(r14) <uint(r15))) //_LBB63_10
{
	r12 = heapU16[(r12+54)>>1];
	r13 = heapU16[(r13+48)>>1];
if(!(uint(r12) <uint(r13))) //_LBB63_10
{
	r12 = r3 << 1;
	r13 = (r9 + r12)|0;
	r12 = (r11 + r12)|0;
	r14 = heapU16[(r13+54)>>1];
	r15 = heapU16[(r12+48)>>1];
if(!(uint(r14) <uint(r15))) //_LBB63_10
{
	r12 = heapU16[(r12+54)>>1];
	r13 = heapU16[(r13+48)>>1];
if(!(uint(r12) <uint(r13))) //_LBB63_10
{
	r12 = heap32[(r1+23)];
	r13 = r12 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+3)];
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r12 = heap32[(r1+24)];
if(!(r12 ==0)) //_LBB63_10
{
	r13 = r12 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+3)];
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r13)>>2](i7);
}
}
}
}
}
}
	r10 = r10 << 6;
	r7 = (r7 + r10)|0;
	r7 = (r7 + r0)|0;
	r10 = heapU16[(r7+48)>>1];
	r10 = (r10 + 1)|0;
	heap16[(r7+48)>>1] = r10;
}
	r7 = heapU16[(r2)>>1];
	r7 = (r7 + -1)|0;
	heap16[(r2)>>1] = r7;
	r7 = heapU16[(r5+-2)>>1];
	r9 = heapU16[(r5)>>1];
	r10 = heapU16[(r5+-4)>>1];
	r11 = heapU16[(r5+-6)>>1];
	heap16[(r5+-2)>>1] = r11;
	heap16[(r5)>>1] = r10;
	heap16[(r5+-6)>>1] = r7;
	heap16[(r5+-4)>>1] = r9;
	r9 = heapU16[(r5+-10)>>1];
	if(uint(r7) >=uint(r9)) //_LBB63_14
{
break _3;
}
else{
	r7 = heap32[(r1+15)];
	r5 = (r5 + -4)|0;
continue _3;
}
}
}
	return;
}

function _ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+1)];
	r2 = r0 >> 2;
	r3 = r1 >> 2;
	heap32[(r3+4)] = heap32[(r2)];
	heap32[(r3+5)] = heap32[(r2+1)];
	r4 = heap32[(fp+3)];
	heap32[(r3+6)] = heap32[(r2+2)];
	heap32[(r3+7)] = heap32[(r2+3)];
	r5 = r4 >> 2;
	heap32[(r3+8)] = heap32[(r5)];
	heap32[(r3+9)] = heap32[(r5+1)];
	r6 = heap32[(fp)];
	heap32[(r3+10)] = heap32[(r5+2)];
	heap32[(r3+11)] = heap32[(r5+3)];
	r7 = r6 >> 2;
	r1 = heapU16[(r1+12)>>1];
	r8 = heap32[(r7+15)];
	f0 = heapFloat[(r2)];
	f1 = heapFloat[(r2+1)];
	f2 = heapFloat[(r2+2)];
	r2 = sp + -6;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r2;
	heapFloat[(g0+2)] = f0;
	heapFloat[(g0+3)] = f1;
	heapFloat[(g0+4)] = f2;
	heap32[(g0+5)] = 0;
	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
	f0 = heapFloat[(r5)];
	f1 = heapFloat[(r5+1)];
	f2 = heapFloat[(r5+2)];
	r1 = r1 << 6;
	r5 = sp + -12;
	r1 = (r8 + r1)|0;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	heapFloat[(g0+2)] = f0;
	heapFloat[(g0+3)] = f1;
	heapFloat[(g0+4)] = f2;
	heap32[(g0+5)] = 1;
	r8 = heap32[(fp+4)];
	r1 = (r1 + 48)|0;
	r9 = 0;
	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
	r10 = r9;
_1: while(true){
	r11 = r9 << 2;
	r12 = r9 << 1;
	r13 = (r1 - r12)|0;
	r11 = (r6 - r11)|0;
	r14 = heapU16[(r13)>>1];
	r13 = heapU16[(r13+6)>>1];
	r11 = r11 >> 2;
	r15 = (r2 - r12)|0;
	r12 = (r5 - r12)|0;
	r16 = heap32[(r11+17)];
	r17 = r14 << 2;
	r18 = r13 << 2;
	r15 = heapU16[(r15)>>1];
	r19 = heapU16[(r16+r17)>>1];
	r20 = heapU16[(r16+r18)>>1];
	r12 = heapU16[(r12)>>1];
	heap16[(r16+r17)>>1] = r15;
	r11 = heap32[(r11+17)];
	r15 = (r15 - r19)|0;
	heap16[(r11+r18)>>1] = r12;
if(!(r15 >-1)) //_LBB64_3
{
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r14;
	heap32[(g0+3)] = 1;
	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
}
	r11 = (r12 - r20)|0;
if(!(r11 <1)) //_LBB64_5
{
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = 1;
	_ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(i7);
}
if(!(r15 <1)) //_LBB64_7
{
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r14;
	heap32[(g0+3)] = r8;
	heap32[(g0+4)] = 1;
	_ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(i7);
}
if(!(r11 >-1)) //_LBB64_9
{
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r8;
	heap32[(g0+4)] = 1;
	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
}
	r9 = (r9 + -1)|0;
	r10 = (r10 + 1)|0;
	if(r9 !=-3) //_LBB64_1
{
continue _1;
}
else{
break _1;
}
}
	r1 = heap32[(r7+27)];
if(!(r1 ==0)) //_LBB64_12
{
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	r3 = heap32[(r3+15)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r8;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
	return;
}

function _ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+27)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
if(!(r2 ==0)) //_LBB65_2
{
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r6 = r3 >> 2;
	r5 = heap32[(r5+3)];
	r6 = heap32[(r6+15)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
	r2 = heap32[(r1+23)];
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r3 = r3 >> 2;
	r3 = heap32[(r3+3)];
	r6 = heap32[(r1+15)];
	r5 = heap32[(r5+14)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r2 = r_g0;
if(!(r2 !=0)) //_LBB65_4
{
	r2 = heap32[(r1+23)];
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+4)];
	r7 = r3 & 65535;
	r7 = r7 << 6;
	r7 = (r6 + r7)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
	r2 = heap32[(r1+15)];
	r5 = heapU16[(r0+56)>>1];
	r7 = heapU16[(r2+54)>>1];
	r7 = (r7 + -2)|0;
	heap16[(r2+54)>>1] = r7;
	r2 = heap32[(r1+15)];
	r7 = heapU16[(r2+56)>>1];
	r7 = (r7 + -2)|0;
	r8 = r3 & 65535;
	heap16[(r2+56)>>1] = r7;
	r2 = heap32[(r1+15)];
	r7 = r8 << 6;
	r9 = heapU16[(r2+58)>>1];
	r6 = (r6 + r7)|0;
	r5 = r5 << 1;
	r6 = (r6 + 54)|0;
	r10 = 0;
	r9 = (r9 + -2)|0;
	heap16[(r2+58)>>1] = r9;
	r2 = r10;
_7: while(true){
	r9 = r2 << 2;
	r9 = (r0 + r9)|0;
	r9 = r9 >> 2;
	r11 = heapU16[(r6)>>1];
	r12 = heapU16[(r0+6)>>1];
	r9 = heap32[(r9+17)];
	r13 = r11 << 2;
	heap16[(r9+r13)>>1] = r12;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = 0;
	_ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(i7);
	r11 = heapU16[(r6+-6)>>1];
	r12 = heapU16[(r0+6)>>1];
	r13 = r11 << 2;
	heap16[(r9+r13)>>1] = r12;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = 0;
	r11 = r5 << 2;
	_ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(i7);
	r9 = (r9 + r11)|0;
	heap16[(r9+-2)>>1] = r10;
	r11 = heapU16[(r0+6)>>1];
	r2 = (r2 + 1)|0;
	r6 = (r6 + 2)|0;
	heap16[(r9+-4)>>1] = r11;
	if(r2 !=3) //_LBB65_5
{
continue _7;
}
else{
break _7;
}
}
if(!(r8 ==0)) //_LBB65_8
{
	r2 = heapU16[(r0+58)>>1];
	if(uint(r2) >uint(r8)) //_LBB65_9
{
	r1 = heap32[(r1+15)];
	r2 = heapU16[(r0+64)>>1];
	r1 = (r1 + r7)|0;
	heap16[(r1+48)>>1] = r2;
	heap16[(r0+64)>>1] = r3;
	r1 = heapU16[(r0+56)>>1];
	r1 = (r1 + -1)|0;
	heap16[(r0+56)>>1] = r1;
	return;
}
}
	r0 = _2E_str11;
	r1 = _2E_str112;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 495;
	_assert(i7);
}

function _ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -56;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r1+1)];
	f2 = heapFloat[(r1+2)];
	r1 = heap32[(fp)];
	r2 = sp + -6;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heapFloat[(g0+2)] = f0;
	heapFloat[(g0+3)] = f1;
	heapFloat[(g0+4)] = f2;
	heap32[(g0+5)] = 0;
	r2 = heap32[(fp+2)];
	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
	r3 = r2 >> 2;
	f0 = heapFloat[(r3)];
	f1 = heapFloat[(r3+1)];
	f2 = heapFloat[(r3+2)];
	r3 = sp + -12;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	heapFloat[(g0+2)] = f0;
	heapFloat[(g0+3)] = f1;
	heapFloat[(g0+4)] = f2;
	heap32[(g0+5)] = 1;
	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
	r3 = heapU16[(r1+64)>>1];
	if(r3 !=0) //_LBB66_2
{
	r4 = heap32[(fp+4)];
	r5 = heap32[(fp+5)];
	r6 = heap32[(fp+6)];
	r7 = heap32[(fp+7)];
	r8 = heap32[(fp+8)];
	r9 = r1 >> 2;
	r10 = r3 << 6;
	r11 = heap32[(r9+15)];
	r10 = (r11 + r10)|0;
	r11 = heapU16[(r10+48)>>1];
	heap16[(r1+64)>>1] = r11;
	r11 = heapU16[(r1+56)>>1];
	r11 = (r11 + 1)|0;
	r12 = r10 >> 2;
	heap16[(r1+56)>>1] = r11;
	heap32[(r12+3)] = r3;
	heap32[(r12)] = r4;
	heap16[(r10+4)>>1] = r5;
	heap16[(r10+6)>>1] = r6;
	heap32[(r12+2)] = r8;
	r8 = heap32[(r9+15)];
	r11 = heapU16[(r1+56)>>1];
	r11 = r11 << 1;
	r12 = heapU16[(r8+54)>>1];
	r13 = r11 & 65534;
	r12 = (r12 + 2)|0;
	r14 = (r13 + -1)|0;
	heap16[(r8+54)>>1] = r12;
	r8 = r14 << 2;
	r12 = heap32[(r9+17)];
	r14 = (r12 + r8)|0;
	r15 = r13 | 1;
	r14 = heapU16[(r14+2)>>1];
	r16 = heapU16[(r12+r8)>>1];
	r15 = r15 << 2;
	r17 = (r12 + r15)|0;
	heap16[(r12+r15)>>1] = r16;
	heap16[(r17+2)>>1] = r14;
	r12 = heap32[(r9+17)];
	r14 = heapU16[(sp+-6)>>1];
	heap16[(r12+r8)>>1] = r14;
	r12 = heap32[(r9+17)];
	r12 = (r12 + r8)|0;
	heap16[(r12+2)>>1] = r3;
	r12 = heap32[(r9+17)];
	r14 = heapU16[(sp+-12)>>1];
	r13 = r13 << 2;
	heap16[(r12+r13)>>1] = r14;
	r12 = heap32[(r9+17)];
	r12 = (r12 + r13)|0;
	r14 = (r11 + -1)|0;
	heap16[(r12+2)>>1] = r3;
	heap16[(r10+48)>>1] = r14;
	heap16[(r10+54)>>1] = r11;
	r12 = heap32[(r9+15)];
	r16 = heapU16[(r12+56)>>1];
	r16 = (r16 + 2)|0;
	heap16[(r12+56)>>1] = r16;
	r12 = heap32[(r9+18)];
	r16 = (r12 + r8)|0;
	r16 = heapU16[(r16+2)>>1];
	r17 = heapU16[(r12+r8)>>1];
	r18 = (r12 + r15)|0;
	heap16[(r12+r15)>>1] = r17;
	heap16[(r18+2)>>1] = r16;
	r12 = heap32[(r9+18)];
	r16 = heapU16[(sp+-4)>>1];
	heap16[(r12+r8)>>1] = r16;
	r12 = heap32[(r9+18)];
	r12 = (r12 + r8)|0;
	heap16[(r12+2)>>1] = r3;
	r12 = heap32[(r9+18)];
	r16 = heapU16[(sp+-10)>>1];
	heap16[(r12+r13)>>1] = r16;
	r12 = heap32[(r9+18)];
	r12 = (r12 + r13)|0;
	heap16[(r12+2)>>1] = r3;
	heap16[(r10+50)>>1] = r14;
	heap16[(r10+56)>>1] = r11;
	r12 = heap32[(r9+15)];
	r16 = heapU16[(r12+58)>>1];
	r16 = (r16 + 2)|0;
	heap16[(r12+58)>>1] = r16;
	r12 = heap32[(r9+19)];
	r16 = (r12 + r8)|0;
	r16 = heapU16[(r16+2)>>1];
	r17 = heapU16[(r12+r8)>>1];
	r18 = (r12 + r15)|0;
	heap16[(r12+r15)>>1] = r17;
	heap16[(r18+2)>>1] = r16;
	r12 = heap32[(r9+19)];
	r15 = heapU16[(sp+-2)>>1];
	heap16[(r12+r8)>>1] = r15;
	r12 = heap32[(r9+19)];
	r8 = (r12 + r8)|0;
	heap16[(r8+2)>>1] = r3;
	r8 = heap32[(r9+19)];
	r12 = heapU16[(sp+-8)>>1];
	heap16[(r8+r13)>>1] = r12;
	r8 = heap32[(r9+19)];
	r8 = (r8 + r13)|0;
	heap16[(r8+2)>>1] = r3;
	heap16[(r10+52)>>1] = r14;
	heap16[(r10+58)>>1] = r11;
	r8 = heapU16[(r10+48)>>1];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = 0;
	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
	r8 = heapU16[(r10+54)>>1];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = 0;
	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
	r8 = heapU16[(r10+50)>>1];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 1;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = 0;
	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
	r8 = heapU16[(r10+56)>>1];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 1;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = 0;
	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
	r8 = heapU16[(r10+52)>>1];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 2;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = 1;
	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
	r8 = heapU16[(r10+58)>>1];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 2;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = 1;
	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
        updateMandreelStats(performance.now());
	r1 = heap32[(r9+27)];
	r8 = heap32[(r9+15)];
if(!(r1 ==0)) //_LBB66_4
{
	r9 = heap32[(fp+3)];
	r10 = r1 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+2)];
	r11 = r3 << 6;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r9;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = r6;
	heap32[(g0+7)] = r7;
	heap32[(g0+8)] = 0;
	r0 = (r8 + r11)|0;
	r0 = r0 >> 2;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	heap32[(r0+15)] = r_g0;
}
	r0 = r3 << 6;
	r0 = (r8 + r0)|0;
	r_g0 = r0;
	return;
}
else{
	r0 = _2E_str213;
	r1 = _2E_str112;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 483;
	_assert(i7);
}
}

function _ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+1)];
	r3 = heap32[(fp+1)];
_1: do {
if(!(r2 >r3)) //_LBB67_20
{
if(!(r2 >=r3)) //_LBB67_20
{
	r4 = heap32[(r1+2)];
if(!(r4 >=r3)) //_LBB67_18
{
	if(r3 !=0) //_LBB67_5
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r6 = r3 << 4;
	r5 = (r5 + 1)|0;
	r6 = r6 | 3;
	heap32[(r4)] = r5;
	r4 = (r6 + 16)|0;
	heap32[(g0)] = r4;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB67_7
{
	r5 = 0;
	r6 = (r4 + 4)|0;
	r5 = (r5 - r6)|0;
	r5 = r5 & 15;
	r5 = (r4 + r5)|0;
	r6 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
	r4 = r6;
}
}
else{
	r4 = 0;
}
	r5 = (r0 + 12)|0;
	if(r2 <1) //_LBB67_10
{
	r6 = r5 >> 2;
	r8 = heap32[(r6)];
}
else{
	r6 = 0;
	r7 = (r6 - r2)|0;
_14: while(true){
	r8 = r5 >> 2;
	r8 = heap32[(r8)];
	r9 = r6 << 4;
	r10 = (r8 - r9)|0;
	r10 = r10 >> 2;
	r9 = (r4 - r9)|0;
	r11 = heap32[(r10)];
	r9 = r9 >> 2;
	heap32[(r9)] = r11;
	r11 = heap32[(r10+1)];
	heap32[(r9+1)] = r11;
	r11 = heap32[(r10+2)];
	heap32[(r9+2)] = r11;
	r10 = heap32[(r10+3)];
	r6 = (r6 + -1)|0;
	heap32[(r9+3)] = r10;
if(!(r7 !=r6)) //_LBB67_11
{
break _14;
}
}
	r5 = (r0 + 12)|0;
}
if(!(r8 ==0)) //_LBB67_17
{
	r6 = heapU8[r0+16];
if(!(r6 ==0)) //_LBB67_16
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r6)] = r7;
	r6 = heap32[(r8+-1)];
	heap32[(g0)] = r6;
	free(i7);
}
	r6 = r5 >> 2;
	heap32[(r6)] = 0;
}
	r6 = 1;
	r5 = r5 >> 2;
	heap8[r0+16] = r6;
	heap32[(r5)] = r4;
	heap32[(r1+2)] = r3;
	if(r2 >=r3) //_LBB67_20
{
break _1;
}
}
	r0 = heap32[(fp+2)];
_25: while(true){
	r4 = r0 >> 2;
	r5 = r2 << 4;
	r6 = heap32[(r1+3)];
	r5 = (r6 + r5)|0;
	r6 = heap32[(r4)];
	r5 = r5 >> 2;
	heap32[(r5)] = r6;
	r6 = heap32[(r4+1)];
	heap32[(r5+1)] = r6;
	r6 = heap32[(r4+2)];
	heap32[(r5+2)] = r6;
	r4 = heap32[(r4+3)];
	r2 = (r2 + 1)|0;
	heap32[(r5+3)] = r4;
	if(r3 !=r2) //_LBB67_19
{
continue _25;
}
else{
break _1;
}
}
}
}
} while(0);
	heap32[(r1+1)] = r3;
	return;
}

function _ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+23)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+14)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = r_g0;
if(!(r1 ==0)) //_LBB68_22
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(r0+23)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+7)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r_g0;
	r3 = r2 >> 2;
	r3 = heap32[(r3+1)];
	if(r3 >1) //_LBB68_3
{
	r3 = (r3 + -1)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r3;
	r3 = r2 >> 2;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
	r3 = heap32[(r3+1)];
}
	r4 = sp + -32;
	r5 = r4 >> 2;
	heap32[(fp+-8)] = 0;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	r5 = heap32[(r0+26)];
	r3 = (r3 - r5)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	r3 = 0;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
	heap32[(r0+26)] = 0;
	r4 = r3;
	r5 = r3;
	r6 = r3;
	r7 = r3;
_6: while(true){
	r8 = r2 >> 2;
	r9 = heap32[(r8+1)];
	if(r9 >r7) //_LBB68_5
{
	r8 = heap32[(r8+3)];
	r9 = r7 << 4;
	r9 = (r8 + r9)|0;
	r9 = r9 >> 2;
	r10 = heap32[(r9)];
	r11 = r7 << 2;
	r12 = heap32[(r9+1)];
	if(r10 !=r5) //_LBB68_7
{
__label__ = 6;
}
else{
	if(r12 ==r6) //_LBB68_13
{
	r4 = heap32[(r9+2)];
	if(r4 ==0) //_LBB68_15
{
__label__ = 13;
}
else{
__label__ = 12;
break _6;
}
}
else{
__label__ = 6;
}
}
if (__label__ == 6){
	r5 = (r12 + 54)|0;
	r6 = (r10 + 48)|0;
	r9 = 0;
_14: while(true){
	if(r9 <3) //_LBB68_8
{
	r13 = heapU16[(r6+6)>>1];
	r14 = heapU16[(r5+-6)>>1];
	if(uint(r13) <uint(r14)) //_LBB68_15
{
__label__ = 13;
break _14;
}
else{
	r13 = heapU16[(r5)>>1];
	r14 = heapU16[(r6)>>1];
	if(uint(r13) <uint(r14)) //_LBB68_15
{
__label__ = 13;
break _14;
}
else{
	r9 = (r9 + 1)|0;
	r5 = (r5 + 2)|0;
	r6 = (r6 + 2)|0;
}
}
}
else{
__label__ = 14;
break _14;
}
}
}
if (__label__ == 13){
	r4 = heap32[(r0+23)];
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+8)];
	r6 = (r8 + r3)|0;
	r9 = r11 << 2;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r1;
	r4 = (r8 + r9)|0;
	r4 = r4 >> 2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	heap32[(r4)] = 0;
	heap32[(r4+1)] = 0;
	r4 = heap32[(r0+26)];
	r4 = (r4 + 1)|0;
	r5 = gOverlappingPairs;
	r5 = r5 >> 2;
	heap32[(r0+26)] = r4;
	r6 = heap32[(r5)];
	r6 = (r6 + -1)|0;
	heap32[(r5)] = r6;
}
	r7 = (r7 + 1)|0;
	r3 = (r3 + 16)|0;
	r5 = r10;
	r6 = r12;
}
else{
__label__ = 16;
break _6;
}
}
switch(__label__ ){//multiple entries
case 16:
	if(r9 >1) //_LBB68_20
{
	r4 = (r9 + -1)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r4;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
	r9 = heap32[(r8+1)];
	r4 = heap32[(r0+26)];
}
	r1 = sp + -16;
	r3 = r1 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
	r3 = (r9 - r4)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r1;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
	heap32[(r0+26)] = 0;
break;
case 12:
	r8 = _2E_str314;
	r0 = _2E_str112;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 687;
	_assert(i7);
break;
}
}
	return;
}

function _ZN20btAxisSweep3InternalItED2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV20btAxisSweep3InternalItE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+27)];
if(!(r1 ==0)) //_LBB69_5
{
	r1 = heap32[(r2+28)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+28)];
if(!(r1 ==0)) //_LBB69_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+27)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+27)];
if(!(r1 ==0)) //_LBB69_5
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = 0;
_8: while(true){
	r3 = r1 << 2;
	r3 = (r0 + r3)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3+22)];
if(!(r3 ==0)) //_LBB69_8
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	r1 = (r1 + -1)|0;
	if(r1 !=-3) //_LBB69_6
{
continue _8;
}
else{
break _8;
}
}
	r1 = heap32[(r2+15)];
if(!(r1 ==0)) //_LBB69_11
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r0 = heapU8[r0+100];
if(!(r0 ==0)) //_LBB69_14
{
	r0 = heap32[(r2+23)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+23)];
if(!(r0 ==0)) //_LBB69_14
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r2 = (r2 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r2;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	return;
}

function _ZN20btAxisSweep3InternalItED1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	heap32[(g0)] = r0;
	_ZN20btAxisSweep3InternalItED2Ev(i7);
	return;
}

function _ZN20btAxisSweep3InternalItED0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV20btAxisSweep3InternalItE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+27)];
if(!(r1 ==0)) //_LBB71_5
{
	r1 = heap32[(r2+28)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+28)];
if(!(r1 ==0)) //_LBB71_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+27)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+27)];
if(!(r1 ==0)) //_LBB71_5
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = 0;
_8: while(true){
	r3 = r1 << 2;
	r3 = (r0 + r3)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3+22)];
if(!(r3 ==0)) //_LBB71_8
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	r1 = (r1 + -1)|0;
	if(r1 !=-3) //_LBB71_6
{
continue _8;
}
else{
break _8;
}
}
	r1 = heap32[(r2+15)];
if(!(r1 ==0)) //_LBB71_11
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r0 = heapU8[r0+100];
if(!(r0 ==0)) //_LBB71_14
{
	r0 = heap32[(r2+23)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+23)];
if(!(r0 ==0)) //_LBB71_14
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
	return;
}

function _ZN12btAxisSweep3D0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btAxisSweep3;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN20btAxisSweep3InternalItED2Ev(i7);
if(!(r0 ==0)) //_LBB72_2
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN12btAxisSweep3D1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btAxisSweep3;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN20btAxisSweep3InternalItED2Ev(i7);
	return;
}

function _ZN20btCollisionAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV20btCollisionAlgorithm;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN20btCollisionAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV20btCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+3)];
	r2 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN6btDbvt8ICollide7DescentEPK10btDbvtNode(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+2)];
	r0 = r0 >> 2;
	r2 = heap32[(r0)];
	if(r2 !=0) //_LBB80_2
{
	r2 = heap32[(fp+1)];
	r3 = r2 >> 2;
	r3 = heap32[(r3+10)];
	if(r3 !=0) //_LBB80_4
{
	r4 = r1 >> 2;
	f0 = heapFloat[(r4+2)];
	f1 = heapFloat[(r4+6)];
	f2 = heapFloat[(r4+1)];
	f3 = heapFloat[(r4+5)];
	f4 = heapFloat[(r4)];
	f5 = heapFloat[(r4+4)];
	f0 = f0+f1;
	f1 = f2+f3;
	f2 = f4+f5;
_5: while(true){
	r4 = r2 >> 2;
	r4 = heap32[(r4+9)];
	r4 = r4 >> 2;
	f3 = heapFloat[(r4)];
	f4 = heapFloat[(r4+4)];
	f5 = heapFloat[(r4+2)];
	f6 = heapFloat[(r4+6)];
	f7 = heapFloat[(r4+1)];
	f8 = heapFloat[(r4+5)];
	f3 = f3+f4;
	f4 = f5+f6;
	f5 = f7+f8;
	f3 = f2-f3;
	f4 = f0-f4;
	f5 = f1-f5;
	f6 =                         0;
	if(f3 <f6) //_LBB80_7
{
	f3 = -f3;
}
	if(f5 <f6) //_LBB80_10
{
	f5 = -f5;
}
	f3 = f3+f5;
	if(f4 <f6) //_LBB80_13
{
	f4 = -f4;
}
	r3 = r3 >> 2;
	f5 = heapFloat[(r3)];
	f7 = heapFloat[(r3+4)];
	f8 = heapFloat[(r3+2)];
	f9 = heapFloat[(r3+6)];
	f10 = heapFloat[(r3+1)];
	f11 = heapFloat[(r3+5)];
	f5 = f5+f7;
	f7 = f8+f9;
	f8 = f10+f11;
	f5 = f2-f5;
	f3 = f3+f4;
	f4 = f0-f7;
	f7 = f1-f8;
	if(f5 <f6) //_LBB80_16
{
	f5 = -f5;
}
	if(f7 <f6) //_LBB80_19
{
	f7 = -f7;
}
	f5 = f5+f7;
	if(f4 <f6) //_LBB80_22
{
	f4 = -f4;
}
	f4 = f5+f4;
	r3 = f3 >= f4;
	r3 = r3 & 1;
	r3 = r3 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2+9)];
	r3 = r2 >> 2;
	r3 = heap32[(r3+10)];
if(!(r3 !=0)) //_LBB80_5
{
break _5;
}
}
}
	r3 = r2 >> 2;
	r4 = heap32[(r0+1)];
	r5 = heap32[(r3+8)];
	if(r4 ==0) //_LBB80_26
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r6 = heap32[(r4)];
	r6 = (r6 + 1)|0;
	heap32[(r4)] = r6;
	heap32[(g0)] = 63;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB80_28
{
	r6 = 0;
	r7 = (r4 + 4)|0;
	r6 = (r6 - r7)|0;
	r6 = r6 & 15;
	r6 = (r4 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r4;
	r4 = r7;
}
}
else{
	heap32[(r0+1)] = 0;
}
	r6 = r4 >> 2;
	heap32[(r6+8)] = r5;
	heap32[(r6+9)] = 0;
	heap32[(r6+10)] = 0;
	r7 = r1 >> 2;
	f0 = heapFloat[(r7)];
	f1 = heapFloat[(r3)];
	f0 = f0 < f1 ? f0 : f1;
	heapFloat[(r6)] = f0;
	f0 = heapFloat[(r7+4)];
	f1 = heapFloat[(r3+4)];
	f0 = f0 > f1 ? f0 : f1;
	heapFloat[(r6+4)] = f0;
	f0 = heapFloat[(r7+1)];
	f1 = heapFloat[(r3+1)];
	f0 = f0 < f1 ? f0 : f1;
	heapFloat[(r6+1)] = f0;
	f0 = heapFloat[(r7+5)];
	f1 = heapFloat[(r3+5)];
	f0 = f0 > f1 ? f0 : f1;
	heapFloat[(r6+5)] = f0;
	f0 = heapFloat[(r7+2)];
	f1 = heapFloat[(r3+2)];
	f0 = f0 < f1 ? f0 : f1;
	heapFloat[(r6+2)] = f0;
	f0 = heapFloat[(r7+6)];
	f1 = heapFloat[(r3+6)];
	f0 = f0 > f1 ? f0 : f1;
	heapFloat[(r6+6)] = f0;
_31: do {
	if(r5 ==0) //_LBB80_38
{
	heap32[(r6+9)] = r2;
	heap32[(r3+8)] = r4;
	heap32[(r6+10)] = r1;
	heap32[(r7+8)] = r4;
	heap32[(r0)] = r4;
}
else{
	r0 = heap32[(r3+8)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+10)];
	r0 = r0 == r2;
	r0 = r0 & 1;
	r0 = r0 << 2;
	r0 = (r5 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0+9)] = r4;
	heap32[(r6+9)] = r2;
	heap32[(r3+8)] = r4;
	heap32[(r6+10)] = r1;
	heap32[(r7+8)] = r4;
	f0 = heapFloat[(r6)];
_34: while(true){
	r0 = r5;
	r1 = r0 >> 2;
	f1 = heapFloat[(r1)];
if(!(f1 >f0)) //_LBB80_37
{
	r2 = r4 >> 2;
	f0 = heapFloat[(r1+1)];
	f1 = heapFloat[(r2+1)];
if(!(f0 >f1)) //_LBB80_37
{
	f0 = heapFloat[(r1+2)];
	f1 = heapFloat[(r2+2)];
if(!(f0 >f1)) //_LBB80_37
{
	f0 = heapFloat[(r1+4)];
	f1 = heapFloat[(r2+4)];
if(!(f0 <f1)) //_LBB80_37
{
	f0 = heapFloat[(r1+5)];
	f1 = heapFloat[(r2+5)];
if(!(f0 <f1)) //_LBB80_37
{
	f0 = heapFloat[(r1+6)];
	f1 = heapFloat[(r2+6)];
	if(f0 >=f1) //_LBB80_39
{
break _31;
}
}
}
}
}
}
	r2 = heap32[(r1+10)];
	r3 = heap32[(r1+9)];
	r2 = r2 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r3)];
	f1 = heapFloat[(r2)];
	f0 = f0 < f1 ? f0 : f1;
	heapFloat[(r1)] = f0;
	f1 = heapFloat[(r3+4)];
	f2 = heapFloat[(r2+4)];
	f1 = f1 > f2 ? f1 : f2;
	heapFloat[(r1+4)] = f1;
	f1 = heapFloat[(r3+1)];
	f2 = heapFloat[(r2+1)];
	f1 = f1 < f2 ? f1 : f2;
	heapFloat[(r1+1)] = f1;
	f1 = heapFloat[(r3+5)];
	f2 = heapFloat[(r2+5)];
	f1 = f1 > f2 ? f1 : f2;
	heapFloat[(r1+5)] = f1;
	f1 = heapFloat[(r3+2)];
	f2 = heapFloat[(r2+2)];
	f1 = f1 < f2 ? f1 : f2;
	heapFloat[(r1+2)] = f1;
	f1 = heapFloat[(r3+6)];
	f2 = heapFloat[(r2+6)];
	f1 = f1 > f2 ? f1 : f2;
	heapFloat[(r1+6)] = f1;
	r5 = heap32[(r1+8)];
	r4 = r0;
	if(r5 ==0) //_LBB80_39
{
break _31;
}
}
}
} while(0);
	return;
}
else{
	r2 = r1 >> 2;
	heap32[(r0)] = r1;
	heap32[(r2+8)] = 0;
	return;
}
}

function _ZL10removeleafP6btDbvtP10btDbvtNode(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r2 = heap32[(r0)];
	if(r2 !=r1) //_LBB81_2
{
	r2 = r1 >> 2;
	r2 = heap32[(r2+8)];
	r3 = r2 >> 2;
	r4 = heap32[(r3+10)];
	r1 = r4 != r1;
	r1 = r1 & 1;
	r1 = r1 << 2;
	r1 = (r2 + r1)|0;
	r1 = r1 >> 2;
	r3 = heap32[(r3+8)];
	r1 = heap32[(r1+9)];
_3: do {
	if(r3 ==0) //_LBB81_11
{
	r3 = r1 >> 2;
	heap32[(r0)] = r1;
	heap32[(r3+8)] = 0;
	r3 = heap32[(r0+1)];
if(!(r3 ==0)) //_LBB81_13
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r4 = heap32[(r1)];
	r4 = (r4 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r1)] = r4;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r0+1)] = r2;
	r3 = heap32[(r0)];
}
else{
	r4 = r3 >> 2;
	r4 = heap32[(r4+10)];
	r4 = r4 == r2;
	r4 = r4 & 1;
	r4 = r4 << 2;
	r4 = (r3 + r4)|0;
	r4 = r4 >> 2;
	r5 = r1 >> 2;
	heap32[(r4+9)] = r1;
	heap32[(r5+8)] = r3;
	r1 = heap32[(r0+1)];
if(!(r1 ==0)) //_LBB81_5
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r4)] = r5;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r0+1)] = r2;
_12: while(true){
	if(r3 !=0) //_LBB81_6
{
	r1 = r3 >> 2;
	r2 = heap32[(r1+10)];
	r4 = heap32[(r1+9)];
	r2 = r2 >> 2;
	r4 = r4 >> 2;
	f0 = heapFloat[(r1+6)];
	f1 = heapFloat[(r1)];
	f2 = heapFloat[(r1+1)];
	f3 = heapFloat[(r1+2)];
	f4 = heapFloat[(r1+4)];
	f5 = heapFloat[(r1+5)];
	f6 = heapFloat[(r4)];
	f7 = heapFloat[(r2)];
	f6 = f6 < f7 ? f6 : f7;
	heapFloat[(r1)] = f6;
	f7 = heapFloat[(r4+4)];
	f8 = heapFloat[(r2+4)];
	f7 = f7 > f8 ? f7 : f8;
	heapFloat[(r1+4)] = f7;
	f8 = heapFloat[(r4+1)];
	f9 = heapFloat[(r2+1)];
	f8 = f8 < f9 ? f8 : f9;
	heapFloat[(r1+1)] = f8;
	f9 = heapFloat[(r4+5)];
	f10 = heapFloat[(r2+5)];
	f9 = f9 > f10 ? f9 : f10;
	heapFloat[(r1+5)] = f9;
	f10 = heapFloat[(r4+2)];
	f11 = heapFloat[(r2+2)];
	f10 = f10 < f11 ? f10 : f11;
	heapFloat[(r1+2)] = f10;
	f11 = heapFloat[(r4+6)];
	f12 = heapFloat[(r2+6)];
	f11 = f11 > f12 ? f11 : f12;
	heapFloat[(r1+6)] = f11;
if(!(f0 !=f11)) //_LBB81_8
{
	r2 = f1 == f6;
	r4 = f2 == f8;
	r2 = r2 & r4;
	r4 = f3 == f10;
	r2 = r2 & r4;
	r4 = f4 == f7;
	r2 = r2 & r4;
	r4 = f5 == f9;
	r2 = r2 & r4;
	if(r2 != 0) //_LBB81_14
{
break _3;
}
}
	r3 = heap32[(r1+8)];
}
else{
break _12;
}
}
	r0 = heap32[(r0)];
	r_g0 = r0;
	return;
}
} while(0);
	r_g0 = r3;
	return;
}
else{
	heap32[(r0)] = 0;
	r0 = 0;
	r_g0 = r0;
	return;
}
}

function _ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	f0 = heapFloat[(r0)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+3)];
	f1 = heapFloat[(fp+4)];
	r4 = r1 >> 2;
	f2 = heapFloat[(r4)];
	if(f2 <=f0) //_LBB82_2
{
	f2 = heapFloat[(r0+1)];
	f3 = heapFloat[(r4+1)];
	if(f3 <=f2) //_LBB82_4
{
	f3 = heapFloat[(r4+2)];
	f4 = heapFloat[(r0+2)];
if(!(f3 >f4)) //_LBB82_3
{
	f3 = heapFloat[(r4+4)];
	f4 = heapFloat[(r0+4)];
if(!(f3 <f4)) //_LBB82_3
{
	f3 = heapFloat[(r4+5)];
	f4 = heapFloat[(r0+5)];
if(!(f3 <f4)) //_LBB82_3
{
	f3 = heapFloat[(r4+6)];
	f4 = heapFloat[(r0+6)];
if(!(f3 <f4)) //_LBB82_3
{
	r0 = 0;
	r_g0 = r0;
	return;
}
}
}
}
}
}
else{
	f2 = heapFloat[(r0+1)];
}
	f0 = f0-f1;
	f2 = f2-f1;
	heapFloat[(r0)] = f0;
	heapFloat[(r0+1)] = f2;
	f3 = heapFloat[(r0+2)];
	f3 = f3-f1;
	heapFloat[(r0+2)] = f3;
	f4 = heapFloat[(r0+4)];
	f4 = f4+f1;
	heapFloat[(r0+4)] = f4;
	f5 = heapFloat[(r0+5)];
	f5 = f5+f1;
	heapFloat[(r0+5)] = f5;
	f6 = heapFloat[(r0+6)];
	f1 = f6+f1;
	r3 = r3 >> 2;
	heapFloat[(r0+6)] = f1;
	f6 = heapFloat[(r3)];
	f7 =                         0;
	if(f6 <=f7) //_LBB82_10
{
	f0 = f0+f6;
	heapFloat[(r0)] = f0;
}
else{
	f0 = f4+f6;
	heapFloat[(r0+4)] = f0;
}
	f0 = heapFloat[(r3+1)];
	if(f0 <=f7) //_LBB82_13
{
	f0 = f2+f0;
	heapFloat[(r0+1)] = f0;
}
else{
	f0 = f5+f0;
	heapFloat[(r0+5)] = f0;
}
	f0 = heapFloat[(r3+2)];
	if(f0 <=f7) //_LBB82_16
{
	f0 = f3+f0;
	heapFloat[(r0+2)] = f0;
}
else{
	f0 = f1+f0;
	heapFloat[(r0+6)] = f0;
}
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
	r3 = r_g0;
_22: do {
	if(r3 !=0) //_LBB82_19
{
	r5 = r2 >> 2;
	r6 = heap32[(r5+2)];
	if(r6 <0) //_LBB82_24
{
	r5 = heap32[(r5)];
}
else{
	r7 = -1;
_27: while(true){
	r5 = r3;
	r7 = (r7 + 1)|0;
	if(r6 >r7) //_LBB82_23
{
	r3 = r5 >> 2;
	r3 = heap32[(r3+8)];
	if(r3 ==0) //_LBB82_22
{
break _22;
}
else{
continue _27;
}
}
else{
break _22;
}
}
}
}
else{
	r5 = 0;
}
} while(0);
	heap32[(r4)] = heap32[(r0)];
	heap32[(r4+1)] = heap32[(r0+1)];
	heap32[(r4+2)] = heap32[(r0+2)];
	heap32[(r4+3)] = heap32[(r0+3)];
	heap32[(r4+4)] = heap32[(r0+4)];
	heap32[(r4+5)] = heap32[(r0+5)];
	heap32[(r4+6)] = heap32[(r0+6)];
	heap32[(r4+7)] = heap32[(r0+7)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r1;
	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = r0 >> 2;
	r3 = heap32[(r2+10)];
if(!(r3 ==0)) //_LBB83_2
{
	r3 = heap32[(r2+9)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
	r2 = heap32[(r2+10)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
}
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
if(!(r2 !=r0)) //_LBB83_4
{
	heap32[(r1)] = 0;
}
	r2 = heap32[(r1+1)];
if(!(r2 ==0)) //_LBB83_6
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r2 = r2 >> 2;
	heap32[(r3)] = r4;
	r2 = heap32[(r2+-1)];
	heap32[(g0)] = r2;
	free(i7);
}
	heap32[(r1+1)] = r0;
	return;
}

function _ZN6btDbvt19optimizeIncrementalEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	if(r0 <0) //_LBB84_2
{
	r0 = r1 >> 2;
	r0 = heap32[(r0+3)];
}
	r2 = r1 >> 2;
	r3 = heap32[(r2)];
_4: do {
if(!(r3 ==0)) //_LBB84_20
{
if(!(r0 <1)) //_LBB84_20
{
_6: while(true){
	r3 = 0;
	r4 = r1;
_8: while(true){
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r5 = r4 >> 2;
	r6 = heap32[(r5+10)];
	if(r6 !=0) //_LBB84_6
{
	r6 = heap32[(r5+8)];
	if(uint(r6) >uint(r4)) //_LBB84_8
{
	r7 = r6 >> 2;
	r8 = heap32[(r7+10)];
	r8 = r8 == r4;
	r8 = r8 & 1;
	r9 = (r6 + 36)|0;
	r10 = r8 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r11 = heap32[(r11)];
	if(r11 ==r4) //_LBB84_10
{
	r8 = r8 ^ 1;
	r8 = r8 << 2;
	r9 = (r9 + r8)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	r11 = heap32[(r7+8)];
	if(r11 ==0) //_LBB84_12
{
	heap32[(r2)] = r4;
}
else{
	r12 = r11 >> 2;
	r12 = heap32[(r12+10)];
	r12 = r12 == r6;
	r12 = r12 & 1;
	r12 = r12 << 2;
	r12 = (r11 + r12)|0;
	r12 = r12 >> 2;
	heap32[(r12+9)] = r4;
}
	r12 = r9 >> 2;
	heap32[(r12+8)] = r4;
	heap32[(r7+8)] = r4;
	heap32[(r5+8)] = r11;
	r11 = heap32[(r5+9)];
	heap32[(r7+9)] = r11;
	r11 = heap32[(r5+10)];
	heap32[(r7+10)] = r11;
	r11 = heap32[(r5+9)];
	r11 = r11 >> 2;
	heap32[(r11+8)] = r6;
	r11 = heap32[(r5+10)];
	r4 = (r4 + 36)|0;
	r10 = (r4 + r10)|0;
	r11 = r11 >> 2;
	r4 = (r4 + r8)|0;
	r8 = r10 >> 2;
	heap32[(r11+8)] = r6;
	r4 = r4 >> 2;
	heap32[(r8)] = r6;
	heap32[(r4)] = r9;
	f0 = heapFloat[(r7+7)];
	f1 = heapFloat[(r7+6)];
	f2 = heapFloat[(r7+5)];
	f3 = heapFloat[(r7+4)];
	f4 = heapFloat[(r7+3)];
	f5 = heapFloat[(r7+2)];
	f6 = heapFloat[(r7+1)];
	f7 = heapFloat[(r7)];
	heap32[(r7)] = heap32[(r5)];
	heap32[(r7+1)] = heap32[(r5+1)];
	heap32[(r7+2)] = heap32[(r5+2)];
	heap32[(r7+3)] = heap32[(r5+3)];
	heap32[(r7+4)] = heap32[(r5+4)];
	heap32[(r7+5)] = heap32[(r5+5)];
	heap32[(r7+6)] = heap32[(r5+6)];
	heap32[(r7+7)] = heap32[(r5+7)];
	heapFloat[(r5)] = f7;
	heapFloat[(r5+1)] = f6;
	heapFloat[(r5+2)] = f5;
	heapFloat[(r5+3)] = f4;
	heapFloat[(r5+4)] = f3;
	heapFloat[(r5+5)] = f2;
	heapFloat[(r5+6)] = f1;
	heapFloat[(r5+7)] = f0;
}
else{
break _6;
}
}
else{
	r6 = r4;
}
	r4 = heap32[(r2+4)];
	r4 = r4 >>> r3;
	r4 = r4 & 1;
	r4 = r4 << 2;
	r4 = (r6 + r4)|0;
	r3 = (r3 + 1)|0;
	r4 = (r4 + 36)|0;
	r3 = r3 & 31;
}
else{
break _8;
}
}
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB84_18
{
	r3 = heap32[(r2)];
}
else{
	r3 = 0;
}
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
	r3 = heap32[(r2+4)];
	r0 = (r0 + -1)|0;
	r3 = (r3 + 1)|0;
	heap32[(r2+4)] = r3;
if(!(r0 !=0)) //_LBB84_5
{
break _4;
}
}
	r4 = _2E_str22;
	r0 = _2E_str1118;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 379;
	_assert(i7);
}
}
} while(0);
	return;
}

function _ZN18btDbvtTreeColliderD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btDbvtTreeCollider;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN18btDbvtTreeColliderD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btDbvtTreeCollider;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
if(!(r0 ==r1)) //_LBB87_2
{
	r2 = heap32[(fp)];
	r2 = r2 >> 2;
	r3 = heap32[(r2+1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+24)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	r4 = heap32[(r4+2)];
	r1 = heap32[(r1+9)];
	r0 = heap32[(r0+9)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r0 = heap32[(r2+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+30)];
	r1 = (r1 + 1)|0;
	heap32[(r0+30)] = r1;
}
	return;
}

function _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r1 = heap32[(r1+2)];
	r2 = r2 >> 2;
	r1 = r1 >> 2;
	r2 = heap32[(r2+2)];
	r1 = heap32[(r1+12)];
	r3 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}

function _ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r1)] = heap32[(r0+4)];
	heap32[(r1+1)] = heap32[(r0+5)];
	r2 = heap32[(fp+3)];
	heap32[(r1+2)] = heap32[(r0+6)];
	r2 = r2 >> 2;
	heap32[(r1+3)] = heap32[(r0+7)];
	heap32[(r2)] = heap32[(r0+8)];
	heap32[(r2+1)] = heap32[(r0+9)];
	heap32[(r2+2)] = heap32[(r0+10)];
	heap32[(r2+3)] = heap32[(r0+11)];
	return;
}

function _ZN19BroadphaseRayTesterD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV19BroadphaseRayTester;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN19BroadphaseRayTesterD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV19BroadphaseRayTester;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	r1 = heap32[(r1+2)];
	r2 = heap32[(r2+9)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN20BroadphaseAabbTesterD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV20BroadphaseAabbTester;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN20BroadphaseAabbTesterD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV20BroadphaseAabbTester;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	r1 = heap32[(r1+2)];
	r2 = heap32[(r2+9)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN16btDbvtBroadphase23getOverlappingPairCacheEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+24)];
	r_g0 = r0;
	return;
}

function _ZNK16btDbvtBroadphase23getOverlappingPairCacheEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+24)];
	r_g0 = r0;
	return;
}

function _ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r0 = heap32[(r0+11)];
	if(r1 ==0) //_LBB98_4
{
	if(r0 !=0) //_LBB98_6
{
	r0 = r0 >> 2;
	f0 = heapFloat[(r0)];
	f2 = heapFloat[(r0+1)];
	f4 = heapFloat[(r0+2)];
	f6 = heapFloat[(r0+3)];
	f1 = heapFloat[(r0+4)];
	f3 = heapFloat[(r0+5)];
	f5 = heapFloat[(r0+6)];
	f7 = heapFloat[(r0+7)];
}
else{
	f6 =                         0;
	f4 = f6;
	f2 = f6;
	f0 = f6;
	f1 = f6;
	f3 = f6;
	f5 = f6;
	f7 = f6;
}
}
else{
	if(r0 ==0) //_LBB98_3
{
	r0 = r1 >> 2;
	f0 = heapFloat[(r0)];
	f2 = heapFloat[(r0+1)];
	f4 = heapFloat[(r0+2)];
	f6 = heapFloat[(r0+3)];
	f1 = heapFloat[(r0+4)];
	f3 = heapFloat[(r0+5)];
	f5 = heapFloat[(r0+6)];
	f7 = heapFloat[(r0+7)];
}
else{
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r0)];
	f2 = heapFloat[(r1+4)];
	f3 = heapFloat[(r0+4)];
	f4 = heapFloat[(r1+1)];
	f5 = heapFloat[(r0+1)];
	f6 = heapFloat[(r1+5)];
	f7 = heapFloat[(r0+5)];
	f8 = heapFloat[(r1+2)];
	f9 = heapFloat[(r0+2)];
	f10 = heapFloat[(r1+6)];
	f11 = heapFloat[(r0+6)];
	f0 = f0 < f1 ? f0 : f1;
	f1 = f2 > f3 ? f2 : f3;
	f2 = f4 < f5 ? f4 : f5;
	f3 = f6 > f7 ? f6 : f7;
	f4 = f8 < f9 ? f8 : f9;
	f5 = f10 > f11 ? f10 : f11;
}
}
	r0 = r2 >> 2;
	heapFloat[(r0)] = f0;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f4;
	r1 = r3 >> 2;
	heapFloat[(r0+3)] = f6;
	heapFloat[(r1)] = f1;
	heapFloat[(r1+1)] = f3;
	heapFloat[(r1+2)] = f5;
	heapFloat[(r1+3)] = f7;
	return;
}

function _ZN16btDbvtBroadphase10printStatsEv(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN16btDbvtBroadphase9resetPoolEP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = 0;
	r3 = heap32[(r1+14)];
	r4 = heap32[(r1+4)];
	r3 = (r2 - r3)|0;
if(!(r4 !=r3)) //_LBB100_18
{
	r3 = heap32[(r1+1)];
if(!(r3 ==0)) //_LBB100_3
{
	r4 = (r0 + 4)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
}
	r3 = heap32[(r1+2)];
if(!(r3 ==0)) //_LBB100_5
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = -1;
	r3 = heap32[(r1+9)];
if(!(r3 ==0)) //_LBB100_9
{
	r4 = heapU8[r0+40];
if(!(r4 ==0)) //_LBB100_8
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r1+9)] = 0;
}
	r3 = 1;
	heap8[r0+40] = r3;
	heap32[(r1+9)] = 0;
	heap32[(r1+7)] = 0;
	heap32[(r1+8)] = 0;
	heap32[(r1+5)] = 0;
	r4 = heap32[(r1+11)];
if(!(r4 ==0)) //_LBB100_11
{
	r5 = (r0 + 44)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
}
	r4 = heap32[(r1+12)];
if(!(r4 ==0)) //_LBB100_13
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r6 = (r6 + 1)|0;
	r4 = r4 >> 2;
	heap32[(r5)] = r6;
	r4 = heap32[(r4+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	heap32[(r1+12)] = 0;
	heap32[(r1+13)] = -1;
	r4 = heap32[(r1+19)];
if(!(r4 ==0)) //_LBB100_17
{
	r5 = heapU8[r0+80];
if(!(r5 ==0)) //_LBB100_16
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r6 = (r6 + 1)|0;
	r4 = r4 >> 2;
	heap32[(r5)] = r6;
	r4 = heap32[(r4+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	heap32[(r1+19)] = 0;
}
	heap8[r0+80] = r3;
	heap32[(r1+19)] = 0;
	heap32[(r1+17)] = 0;
	heap32[(r1+18)] = 0;
	heap32[(r1+15)] = 0;
	heap8[r0+153] = r2;
	heap8[r0+154] = r3;
	heap32[(r1+26)] = 0;
	heap32[(r1+31)] = 0;
	heap32[(r1+27)] = 1;
	heap32[(r1+28)] = 0;
	heap32[(r1+29)] = 10;
	heap32[(r1+30)] = 1;
	heap32[(r1+32)] = 0;
	heap32[(r1+33)] = 0;
	heap32[(r1+34)] = 0;
	heap32[(r1+37)] = 0;
	heap32[(r1+35)] = 0;
	heap32[(r1+36)] = 0;
	heap32[(r1+21)] = 0;
	heap32[(r1+22)] = 0;
	heap32[(r1+23)] = 0;
}
	return;
}

function _ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
_1: do {
if(!(r0 ==0)) //_LBB101_57
{
	r1 = heap32[(fp+2)];
if(!(r1 ==0)) //_LBB101_57
{
	r2 = heap32[(fp)];
	r3 = r2 >> 2;
	r4 = heap32[(r3+6)];
if(!(r4 >127)) //_LBB101_17
{
	r5 = heap32[(r3+7)];
if(!(r5 >127)) //_LBB101_17
{
	r5 = gNumAlignedAllocs;
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r6 = (r6 + 1)|0;
	heap32[(r5)] = r6;
	heap32[(g0)] = 1043;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB101_6
{
	r6 = 0;
	r7 = (r5 + 4)|0;
	r6 = (r6 - r7)|0;
	r6 = r6 & 15;
	r6 = (r5 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r5;
	r5 = r7;
}
	r6 = (r2 + 32)|0;
	if(r4 <1) //_LBB101_9
{
	r4 = r6 >> 2;
	r8 = heap32[(r4)];
}
else{
	r7 = 0;
_13: while(true){
	r8 = r6 >> 2;
	r8 = heap32[(r8)];
	r9 = r7 << 3;
	r10 = (r8 + r9)|0;
	r10 = r10 >> 2;
	r9 = (r5 + r9)|0;
	r11 = heap32[(r10+1)];
	r10 = heap32[(r10)];
	r9 = r9 >> 2;
	r7 = (r7 + 1)|0;
	heap32[(r9)] = r10;
	heap32[(r9+1)] = r11;
if(!(r4 !=r7)) //_LBB101_10
{
break _13;
}
}
	r6 = (r2 + 32)|0;
}
if(!(r8 ==0)) //_LBB101_16
{
	r4 = heapU8[r2+36];
if(!(r4 ==0)) //_LBB101_15
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r7 = heap32[(r4)];
	r7 = (r7 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r4)] = r7;
	r4 = heap32[(r8+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	r4 = r6 >> 2;
	heap32[(r4)] = 0;
}
	r4 = 1;
	r6 = r6 >> 2;
	heap8[r2+36] = r4;
	heap32[(r6)] = r5;
	heap32[(r3+7)] = 128;
}
}
	r4 = heap32[(fp+3)];
	heap32[(r3+6)] = 128;
	r5 = heap32[(r3+8)];
	r5 = r5 >> 2;
	r6 = 1;
	r7 = 124;
	heap32[(r5)] = r0;
	heap32[(r5+1)] = r1;
_24: while(true){
	r0 = r6;
	r6 = (r0 + -1)|0;
	r1 = heap32[(r3+8)];
	r5 = r6 << 3;
	r5 = (r1 + r5)|0;
	r5 = r5 >> 2;
	r8 = heap32[(r5)];
	r5 = heap32[(r5+1)];
	if(r6 >r7) //_LBB101_20
{
	r7 = heap32[(r3+6)];
	r9 = r7 << 1;
_28: do {
if(!(r7 >r9)) //_LBB101_38
{
if(!(r7 >=r9)) //_LBB101_38
{
	r10 = heap32[(r3+7)];
	if(r10 <r9) //_LBB101_24
{
	if(r9 !=0) //_LBB101_26
{
	r10 = gNumAlignedAllocs;
	r10 = r10 >> 2;
	r11 = heap32[(r10)];
	r12 = r7 << 4;
	r11 = (r11 + 1)|0;
	r12 = r12 | 3;
	heap32[(r10)] = r11;
	r10 = (r12 + 16)|0;
	heap32[(g0)] = r10;
	malloc(i7);
	r10 = r_g0;
	if(r10 !=0) //_LBB101_28
{
	r11 = 0;
	r12 = (r10 + 4)|0;
	r11 = (r11 - r12)|0;
	r11 = r11 & 15;
	r11 = (r10 + r11)|0;
	r12 = (r11 + 4)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r10;
	r10 = r12;
}
}
else{
	r10 = 0;
}
if(!(r7 <1)) //_LBB101_32
{
	r11 = (r1 + 4)|0;
	r12 = (r10 + 4)|0;
	r13 = r7;
_40: while(true){
	r14 = r11 >> 2;
	r15 = heap32[(r14)];
	r14 = heap32[(r14+-1)];
	r16 = r12 >> 2;
	r13 = (r13 + -1)|0;
	r11 = (r11 + 8)|0;
	r12 = (r12 + 8)|0;
	heap32[(r16+-1)] = r14;
	heap32[(r16)] = r15;
if(!(r13 !=0)) //_LBB101_31
{
break _40;
}
}
}
if(!(r1 ==0)) //_LBB101_36
{
	r11 = heapU8[r2+36];
if(!(r11 ==0)) //_LBB101_35
{
	r11 = gNumAlignedFree;
	r11 = r11 >> 2;
	r12 = heap32[(r11)];
	r12 = (r12 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r11)] = r12;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r3+8)] = 0;
}
	r1 = 1;
	heap8[r2+36] = r1;
	heap32[(r3+8)] = r10;
	heap32[(r3+7)] = r9;
if(!(r7 <r9)) //_LBB101_23
{
break _28;
}
}
_49: while(true){
	r7 = (r7 + -1)|0;
if(!(r7 !=0)) //_LBB101_37
{
break _28;
}
}
}
}
} while(0);
	r7 = (r9 + -4)|0;
	heap32[(r3+6)] = r9;
}
	if(r8 !=r5) //_LBB101_43
{
	r1 = r8 >> 2;
	r9 = r5 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r9+4)];
if(!(f0 >f1)) //_LBB101_41
{
	f0 = heapFloat[(r1+4)];
	f1 = heapFloat[(r9)];
if(!(f0 <f1)) //_LBB101_41
{
	f0 = heapFloat[(r1+1)];
	f1 = heapFloat[(r9+5)];
if(!(f0 >f1)) //_LBB101_41
{
	f0 = heapFloat[(r1+5)];
	f1 = heapFloat[(r9+1)];
if(!(f0 <f1)) //_LBB101_41
{
	f0 = heapFloat[(r1+2)];
	f1 = heapFloat[(r9+6)];
if(!(f0 >f1)) //_LBB101_41
{
	f0 = heapFloat[(r1+6)];
	f1 = heapFloat[(r9+2)];
if(!(f0 <f1)) //_LBB101_41
{
	r10 = heap32[(r9+10)];
	r11 = heap32[(r1+10)];
	if(r11 ==0) //_LBB101_53
{
	if(r10 ==0) //_LBB101_55
{
	r0 = r4 >> 2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+2)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r5;
	__FUNCTION_TABLE__[(r0)>>2](i7);
}
else{
	r5 = r0 << 3;
	r6 = heap32[(r3+8)];
	r6 = (r6 + r5)|0;
	r1 = heap32[(r9+9)];
	r6 = r6 >> 2;
	heap32[(r6+-2)] = r8;
	heap32[(r6+-1)] = r1;
	r6 = heap32[(r3+8)];
	r5 = (r6 + r5)|0;
	r1 = heap32[(r9+10)];
	r5 = r5 >> 2;
	r6 = (r0 + 1)|0;
	heap32[(r5)] = r8;
	heap32[(r5+1)] = r1;
}
}
else{
	r6 = heap32[(r3+8)];
	if(r10 ==0) //_LBB101_52
{
	r8 = r0 << 3;
	r6 = (r6 + r8)|0;
	r6 = r6 >> 2;
	r9 = heap32[(r1+9)];
	heap32[(r6+-2)] = r9;
	heap32[(r6+-1)] = r5;
	r6 = heap32[(r3+8)];
	r6 = (r6 + r8)|0;
	r8 = heap32[(r1+10)];
	r9 = r6 >> 2;
	r6 = (r0 + 1)|0;
	heap32[(r9)] = r8;
	heap32[(r9+1)] = r5;
}
else{
	r5 = r0 << 3;
	r6 = (r6 + r5)|0;
	r8 = heap32[(r9+9)];
	r10 = heap32[(r1+9)];
	r6 = r6 >> 2;
	heap32[(r6+-2)] = r10;
	heap32[(r6+-1)] = r8;
	r6 = heap32[(r3+8)];
	r6 = (r6 + r5)|0;
	r8 = heap32[(r9+9)];
	r10 = heap32[(r1+10)];
	r6 = r6 >> 2;
	heap32[(r6)] = r10;
	heap32[(r6+1)] = r8;
	r6 = heap32[(r3+8)];
	r6 = (r5 + r6)|0;
	r8 = heap32[(r9+10)];
	r10 = heap32[(r1+9)];
	r6 = r6 >> 2;
	heap32[(r6+2)] = r10;
	heap32[(r6+3)] = r8;
	r6 = heap32[(r3+8)];
	r6 = (r5 + r6)|0;
	r5 = heap32[(r9+10)];
	r1 = heap32[(r1+10)];
	r8 = r6 >> 2;
	r6 = (r0 + 3)|0;
	heap32[(r8+4)] = r1;
	heap32[(r8+5)] = r5;
}
}
}
}
}
}
}
}
}
else{
	r5 = r8 >> 2;
	r8 = heap32[(r5+10)];
	if(r8 !=0) //_LBB101_42
{
	r6 = r0 << 3;
	r8 = heap32[(r3+8)];
	r8 = (r8 + r6)|0;
	r1 = heap32[(r5+9)];
	r8 = r8 >> 2;
	heap32[(r8+-2)] = r1;
	heap32[(r8+-1)] = r1;
	r8 = heap32[(r3+8)];
	r8 = (r8 + r6)|0;
	r1 = heap32[(r5+10)];
	r8 = r8 >> 2;
	heap32[(r8)] = r1;
	heap32[(r8+1)] = r1;
	r8 = heap32[(r3+8)];
	r6 = (r6 + r8)|0;
	r8 = heap32[(r5+10)];
	r5 = heap32[(r5+9)];
	r1 = r6 >> 2;
	r6 = (r0 + 2)|0;
	heap32[(r1+2)] = r5;
	heap32[(r1+3)] = r8;
}
}
	if(r6 !=0) //_LBB101_18
{
continue _24;
}
else{
break _1;
}
}
}
}
} while(0);
	return;
}

function _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
if(!(r0 ==0)) //_LBB102_46
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = gNumAlignedAllocs;
	r1 = r1 >> 2;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r1+1)];
	f2 = heapFloat[(r1+2)];
	f3 = heapFloat[(r1+4)];
	f4 = heapFloat[(r1+5)];
	f5 = heapFloat[(r1+6)];
	r1 = (r4 + 1)|0;
	heap32[(r3)] = r1;
	heap32[(g0)] = 275;
	malloc(i7);
	r1 = r_g0;
	if(r1 !=0) //_LBB102_3
{
	r4 = 0;
	r5 = (r1 + 4)|0;
	r4 = (r4 - r5)|0;
	r4 = r4 & 15;
	r4 = (r1 + r4)|0;
	r5 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r1;
	r1 = r5;
}
	r4 = 1;
	r5 = 64;
	r6 = r1 >> 2;
	heap32[(r6)] = r0;
_6: while(true){
	r0 = r4;
	r4 = (r0 + -1)|0;
	r6 = r4 << 2;
	r6 = (r1 + r6)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	r7 = r6 >> 2;
	f6 = heapFloat[(r7)];
	if(f6 <=f3) //_LBB102_7
{
	f6 = heapFloat[(r7+4)];
if(!(f6 <f0)) //_LBB102_6
{
	f6 = heapFloat[(r7+1)];
if(!(f6 >f4)) //_LBB102_6
{
	f6 = heapFloat[(r7+5)];
if(!(f6 <f1)) //_LBB102_6
{
	f6 = heapFloat[(r7+2)];
if(!(f6 >f5)) //_LBB102_6
{
	f6 = heapFloat[(r7+6)];
if(!(f6 <f2)) //_LBB102_6
{
	r8 = heap32[(r7+10)];
	if(r8 ==0) //_LBB102_42
{
	r0 = r2 >> 2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+3)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r0)>>2](i7);
}
else{
	r6 = heap32[(r7+9)];
	if(r5 ==r4) //_LBB102_15
{
	r8 = 1;
	r9 = r4 << 1;
	r8 = r4 == 0 ? r8 : r9;
if(!(r5 >=r8)) //_LBB102_14
{
	if(r8 !=0) //_LBB102_18
{
	r5 = heap32[(r3)];
	r9 = r8 << 2;
	r5 = (r5 + 1)|0;
	r9 = r9 | 3;
	heap32[(r3)] = r5;
	r5 = (r9 + 16)|0;
	heap32[(g0)] = r5;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB102_20
{
	r5 = 0;
	r10 = (r9 + 4)|0;
	r5 = (r5 - r10)|0;
	r5 = r5 & 15;
	r5 = (r9 + r5)|0;
	r10 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r9;
	r9 = r10;
}
}
else{
	r9 = 0;
}
if(!(r4 <1)) //_LBB102_24
{
	r4 = (r0 + -1)|0;
	r5 = r1;
	r10 = r9;
_28: while(true){
	r11 = r5 >> 2;
	r4 = (r4 + -1)|0;
	r12 = (r10 + 4)|0;
	r5 = (r5 + 4)|0;
	r10 = r10 >> 2;
	r11 = heap32[(r11)];
	heap32[(r10)] = r11;
	r10 = r12;
if(!(r4 !=0)) //_LBB102_23
{
break _28;
}
}
}
	if(r1 !=0) //_LBB102_26
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r4)] = r5;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
	r5 = r8;
	r1 = r9;
}
else{
	r5 = r8;
	r1 = r9;
}
}
}
	r4 = r0 << 2;
	r8 = (r1 + r4)|0;
	r8 = r8 >> 2;
	heap32[(r8+-1)] = r6;
	r6 = heap32[(r7+10)];
	if(r5 ==r0) //_LBB102_29
{
	r7 = 1;
	r8 = r0 << 1;
	r7 = r0 == 0 ? r7 : r8;
if(!(r5 >=r7)) //_LBB102_28
{
	if(r7 !=0) //_LBB102_32
{
	r5 = heap32[(r3)];
	r8 = r7 << 2;
	r5 = (r5 + 1)|0;
	r8 = r8 | 3;
	heap32[(r3)] = r5;
	r5 = (r8 + 16)|0;
	heap32[(g0)] = r5;
	malloc(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB102_34
{
	r5 = 0;
	r9 = (r8 + 4)|0;
	r5 = (r5 - r9)|0;
	r5 = r5 & 15;
	r5 = (r8 + r5)|0;
	r9 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r8;
	r8 = r9;
}
}
else{
	r8 = 0;
}
_43: do {
if(!(r0 <1)) //_LBB102_38
{
	r5 = r1;
	r9 = r8;
	r10 = r0;
_45: while(true){
	r11 = r5 >> 2;
	r10 = (r10 + -1)|0;
	r12 = (r9 + 4)|0;
	r5 = (r5 + 4)|0;
	r9 = r9 >> 2;
	r11 = heap32[(r11)];
	heap32[(r9)] = r11;
	r9 = r12;
if(!(r10 !=0)) //_LBB102_37
{
break _43;
}
}
}
} while(0);
	if(r1 !=0) //_LBB102_40
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r9 = heap32[(r5)];
	r9 = (r9 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r5)] = r9;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
	r5 = r7;
	r1 = r8;
}
else{
	r5 = r7;
	r1 = r8;
}
}
}
	r7 = (r1 + r4)|0;
	r4 = (r0 + 1)|0;
	r0 = r7 >> 2;
	heap32[(r0)] = r6;
}
}
}
}
}
}
}
if(!(r4 >0)) //_LBB102_5
{
break _6;
}
}
if(!(r1 ==0)) //_LBB102_46
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r2 = heap32[(r0)];
	r2 = (r2 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r1+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	return;
}

function _ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -56;var g0 = i7>>2; // save stack
	r0 = _ZTV20BroadphaseAabbTester;
	r1 = sp + -8;
	r0 = (r0 + 8)|0;
	r2 = heap32[(fp+1)];
	r3 = r1 >> 2;
	r4 = heap32[(fp+3)];
	heap32[(fp+-2)] = r0;
	r0 = sp + -40;
	r2 = r2 >> 2;
	heap32[(r3+1)] = r4;
	r3 = r0 >> 2;
	heap32[(fp+-10)] = heap32[(r2)];
	heap32[(r3+1)] = heap32[(r2+1)];
	r4 = heap32[(fp+2)];
	heap32[(r3+2)] = heap32[(r2+2)];
	r4 = r4 >> 2;
	heap32[(r3+3)] = heap32[(r2+3)];
	heap32[(r3+4)] = heap32[(r4)];
	heap32[(r3+5)] = heap32[(r4+1)];
	r2 = heap32[(fp)];
	heap32[(r3+6)] = heap32[(r4+2)];
	r2 = r2 >> 2;
	heap32[(r3+7)] = heap32[(r4+3)];
	r3 = heap32[(r2+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
	return;
}

function _ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -64;var g0 = i7>>2; // save stack
	r0 = gNumAlignedAllocs;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = (r1 + 1)|0;
	heap32[(r0)] = r2;
	heap32[(g0)] = 83;
	malloc(i7);
	r2 = r_g0;
	r3 = heap32[(fp)];
	r4 = heap32[(fp+1)];
	r5 = heap32[(fp+2)];
	r6 = heap32[(fp+4)];
	r7 = heap32[(fp+5)];
	r8 = heap32[(fp+6)];
	if(r2 !=0) //_LBB104_2
{
	r9 = 0;
	r10 = (r2 + 4)|0;
	r9 = (r9 - r10)|0;
	r9 = r9 & 15;
	r9 = (r2 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r2;
	r2 = r10;
}
	r9 = r2 >> 2;
	heap32[(r9)] = r6;
	heap16[(r2+4)>>1] = r7;
	r4 = r4 >> 2;
	heap16[(r2+6)>>1] = r8;
	f0 = heapFloat[(r4)];
	heapFloat[(r9+4)] = f0;
	f1 = heapFloat[(r4+1)];
	heapFloat[(r9+5)] = f1;
	f2 = heapFloat[(r4+2)];
	heapFloat[(r9+6)] = f2;
	f3 = heapFloat[(r4+3)];
	r4 = r5 >> 2;
	heapFloat[(r9+7)] = f3;
	f4 = heapFloat[(r4)];
	heapFloat[(r9+8)] = f4;
	f5 = heapFloat[(r4+1)];
	heapFloat[(r9+9)] = f5;
	f6 = heapFloat[(r4+2)];
	heapFloat[(r9+10)] = f6;
	f7 = heapFloat[(r4+3)];
	heapFloat[(r9+11)] = f7;
	heap32[(r9+2)] = 0;
	heap32[(r9+14)] = 0;
	r4 = sp + -32;
	heap32[(r9+13)] = 0;
	r5 = r4 >> 2;
	heapFloat[(fp+-8)] = f0;
	heapFloat[(r5+1)] = f1;
	heapFloat[(r5+2)] = f2;
	heapFloat[(r5+3)] = f3;
	heapFloat[(r5+4)] = f4;
	heapFloat[(r5+5)] = f5;
	heapFloat[(r5+6)] = f6;
	r6 = r3 >> 2;
	heapFloat[(r5+7)] = f7;
	r5 = heap32[(r6+26)];
	heap32[(r9+15)] = r5;
	r5 = heap32[(r6+37)];
	r5 = (r5 + 1)|0;
	heap32[(r6+37)] = r5;
	heap32[(r9+3)] = r5;
	r5 = heap32[(r6+2)];
	r7 = (r3 + 4)|0;
	if(r5 ==0) //_LBB104_5
{
	r5 = (r1 + 2)|0;
	heap32[(r0)] = r5;
	heap32[(g0)] = 63;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB104_7
{
	r0 = 0;
	r1 = (r5 + 4)|0;
	r0 = (r0 - r1)|0;
	r0 = r0 & 15;
	r0 = (r5 + r0)|0;
	r1 = (r0 + 4)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r5;
	r5 = r1;
}
}
else{
	heap32[(r6+2)] = 0;
}
	r0 = r5 >> 2;
	heap32[(r0+8)] = 0;
	heap32[(r0+9)] = r2;
	heap32[(r0+10)] = 0;
	heapFloat[(r0)] = f0;
	heapFloat[(r0+1)] = f1;
	heapFloat[(r0+2)] = f2;
	heapFloat[(r0+3)] = f3;
	heapFloat[(r0+4)] = f4;
	heapFloat[(r0+5)] = f5;
	heapFloat[(r0+6)] = f6;
	heapFloat[(r0+7)] = f7;
	r0 = heap32[(r6+1)];
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r5;
	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
	r0 = heap32[(r6+4)];
	r0 = (r0 + 1)|0;
	heap32[(r6+4)] = r0;
	heap32[(r9+12)] = r5;
	r0 = heap32[(r6+26)];
	r0 = r0 << 2;
	r0 = (r3 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r9+13)] = 0;
	r1 = heap32[(r0+21)];
	heap32[(r9+14)] = r1;
if(!(r1 ==0)) //_LBB104_10
{
	r1 = r1 >> 2;
	heap32[(r1+13)] = r2;
}
	heap32[(r0+21)] = r2;
	r0 = heapU8[r3+153];
if(!(r0 !=0)) //_LBB104_12
{
	r0 = _ZTV18btDbvtTreeCollider;
	r0 = (r0 + 8)|0;
	r1 = sp + -48;
	r5 = r1 >> 2;
	heap32[(fp+-12)] = r0;
	heap32[(r5+1)] = r3;
	heap32[(r5+2)] = r2;
	r3 = heap32[(r6+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
	r3 = heap32[(r6+11)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
	heap32[(fp+-12)] = r0;
}
	r_g0 = r2;
	return;
}

function _ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
if(!(r0 ==0)) //_LBB105_43
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	f0 = heapFloat[(fp+4)];
	r4 = heap32[(fp+5)];
	r5 = heap32[(fp+6)];
	r6 = heap32[(fp+7)];
	r7 = gNumAlignedAllocs;
	r7 = r7 >> 2;
	r8 = heap32[(r7)];
	r8 = (r8 + 1)|0;
	heap32[(r7)] = r8;
	heap32[(g0)] = 531;
	malloc(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB105_3
{
	r9 = 0;
	r10 = (r8 + 4)|0;
	r9 = (r9 - r10)|0;
	r9 = r9 & 15;
	r9 = (r8 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r8;
	r8 = r10;
}
	r9 = 0;
_6: while(true){
	r10 = r9 << 2;
	r10 = (r8 + r10)|0;
	r9 = (r9 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = 0;
if(!(r9 !=128)) //_LBB105_5
{
break _6;
}
}
	r9 = 128;
	r10 = 1;
	r11 = 126;
	r12 = r8 >> 2;
	heap32[(r12)] = r0;
	r0 = r9;
	r12 = r10;
_9: while(true){
	r13 = r12;
	r12 = (r13 + -1)|0;
	r14 = r12 << 2;
	r14 = (r8 + r14)|0;
	r14 = r14 >> 2;
	r14 = heap32[(r14)];
	r15 = r14 >> 2;
	r16 = r5 >> 2;
	f1 = heapFloat[(r15+2)];
	f2 = heapFloat[(r16+2)];
	f3 = heapFloat[(r15+1)];
	f4 = heapFloat[(r16+1)];
	f5 = heapFloat[(r15)];
	f6 = heapFloat[(r16)];
	r16 = sp + -32;
	f5 = f5-f6;
	r17 = r16 >> 2;
	f3 = f3-f4;
	heapFloat[(fp+-8)] = f5;
	f1 = f1-f2;
	heapFloat[(r17+1)] = f3;
	heapFloat[(r17+2)] = f1;
	heap32[(r17+3)] = 0;
	r18 = r4 >> 2;
	f1 = heapFloat[(r15+6)];
	f2 = heapFloat[(r18+2)];
	f3 = heapFloat[(r15+5)];
	f4 = heapFloat[(r18+1)];
	f5 = heapFloat[(r15+4)];
	f6 = heapFloat[(r18)];
	f5 = f5-f6;
	f3 = f3-f4;
	heapFloat[(r17+4)] = f5;
	f1 = f1-f2;
	heapFloat[(r17+5)] = f3;
	heapFloat[(r17+6)] = f1;
	r18 = r3 >> 2;
	heap32[(r17+7)] = 0;
	r17 = heap32[(r18)];
	r19 = heap32[(r18+1)];
	r20 = (r10 - r19)|0;
	r21 = r17 << 4;
	r20 = r20 << 4;
	r21 = (r16 + r21)|0;
	r20 = (r16 + r20)|0;
	r22 = r1 >> 2;
	r21 = r21 >> 2;
	r20 = r20 >> 2;
	r23 = r2 >> 2;
	f1 = heapFloat[(r21)];
	f2 = heapFloat[(r22)];
	f3 = heapFloat[(r20+1)];
	f4 = heapFloat[(r22+1)];
	f1 = f1-f2;
	f5 = heapFloat[(r23)];
	f3 = f3-f4;
	f6 = heapFloat[(r23+1)];
	f1 = f1*f5;
	f3 = f3*f6;
if(!(f1 >f3)) //_LBB105_9
{
	r17 = (r10 - r17)|0;
	r17 = r17 << 4;
	r19 = r19 << 4;
	r17 = (r16 + r17)|0;
	r19 = (r16 + r19)|0;
	r17 = r17 >> 2;
	r19 = r19 >> 2;
	f7 = heapFloat[(r17)];
	f8 = heapFloat[(r19+1)];
	f2 = f7-f2;
	f4 = f8-f4;
	f2 = f2*f5;
	f4 = f4*f6;
	if(f4 <=f2) //_LBB105_10
{
	r17 = heap32[(r18+2)];
	r18 = 1;
	r18 = (r18 - r17)|0;
	r18 = r18 << 4;
	r18 = (r16 + r18)|0;
	r18 = r18 >> 2;
	f5 = heapFloat[(r18+2)];
	f6 = heapFloat[(r22+2)];
	f5 = f5-f6;
	f7 = heapFloat[(r23+2)];
	f1 = f1 < f4 ? f4 : f1;
	f4 = f5*f7;
if(!(f1 >f4)) //_LBB105_9
{
	r17 = r17 << 4;
	r16 = (r16 + r17)|0;
	r16 = r16 >> 2;
	f5 = heapFloat[(r16+2)];
	f5 = f5-f6;
	f2 = f3 < f2 ? f3 : f2;
	f3 = f5*f7;
if(!(f3 >f2)) //_LBB105_9
{
	f1 = f1 < f3 ? f3 : f1;
if(!(f1 >=f0)) //_LBB105_9
{
	f1 = f4 < f2 ? f4 : f2;
	f2 =                         0;
if(!(f1 <=f2)) //_LBB105_9
{
	r16 = heap32[(r15+10)];
	if(r16 ==0) //_LBB105_39
{
	r13 = r6 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+3)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r14;
	__FUNCTION_TABLE__[(r13)>>2](i7);
}
else{
	if(r12 >r11) //_LBB105_17
{
	r14 = r0 << 1;
_23: do {
	if(r0 <=r14) //_LBB105_19
{
if(!(r0 >=r14)) //_LBB105_18
{
	if(r9 <r14) //_LBB105_22
{
	if(r14 !=0) //_LBB105_24
{
	r9 = heap32[(r7)];
	r11 = r0 << 3;
	r9 = (r9 + 1)|0;
	r11 = r11 | 3;
	heap32[(r7)] = r9;
	r9 = (r11 + 16)|0;
	heap32[(g0)] = r9;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB105_26
{
	r11 = 0;
	r12 = (r9 + 4)|0;
	r11 = (r11 - r12)|0;
	r11 = r11 & 15;
	r11 = (r9 + r11)|0;
	r12 = (r11 + 4)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r9;
	r9 = r12;
}
}
else{
	r9 = 0;
}
if(!(r0 <1)) //_LBB105_30
{
	r11 = r8;
	r12 = r9;
	r16 = r0;
_35: while(true){
	r17 = r11 >> 2;
	r16 = (r16 + -1)|0;
	r18 = (r12 + 4)|0;
	r11 = (r11 + 4)|0;
	r12 = r12 >> 2;
	r17 = heap32[(r17)];
	heap32[(r12)] = r17;
	r12 = r18;
if(!(r16 !=0)) //_LBB105_29
{
break _35;
}
}
}
if(!(r8 ==0)) //_LBB105_32
{
	r11 = gNumAlignedFree;
	r11 = r11 >> 2;
	r12 = heap32[(r11)];
	r12 = (r12 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r11)] = r12;
	r8 = heap32[(r8+-1)];
	heap32[(g0)] = r8;
	free(i7);
}
	if(r0 <r14) //_LBB105_34
{
	r8 = r9;
	r9 = r14;
}
else{
	r8 = r9;
	r9 = r14;
break _23;
}
}
	r11 = r0;
_45: while(true){
	r12 = r0 << 2;
	r12 = (r8 + r12)|0;
	r11 = (r11 + -1)|0;
	r0 = (r0 + 1)|0;
	r12 = r12 >> 2;
	heap32[(r12)] = 0;
if(!(r11 !=0)) //_LBB105_36
{
break _23;
}
}
}
}
} while(0);
	r11 = (r14 + -2)|0;
}
else{
	r14 = r0;
}
	r0 = r13 << 2;
	r0 = (r8 + r0)|0;
	r0 = r0 >> 2;
	r12 = heap32[(r15+9)];
	heap32[(r0+-1)] = r12;
	r15 = heap32[(r15+10)];
	r12 = (r13 + 1)|0;
	heap32[(r0)] = r15;
	r0 = r14;
}
}
}
}
}
}
}
if(!(r12 !=0)) //_LBB105_7
{
break _9;
}
}
if(!(r8 ==0)) //_LBB105_43
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	r2 = r8 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	return;
}

function _ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var f0;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = _ZTV19BroadphaseRayTester;
	r1 = sp + -8;
	r0 = (r0 + 8)|0;
	r2 = heap32[(fp+3)];
	r3 = heap32[(fp)];
	r4 = r1 >> 2;
	heap32[(fp+-2)] = r0;
	heap32[(r4+1)] = r2;
	r0 = r2 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r0+8)];
	r4 = heap32[(r3+1)];
	r5 = heap32[(fp+1)];
	r6 = (r2 + 4)|0;
	r2 = (r2 + 20)|0;
	r7 = heap32[(fp+4)];
	r8 = heap32[(fp+5)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r2;
	heapFloat[(g0+4)] = f0;
	heap32[(g0+5)] = r7;
	heap32[(g0+6)] = r8;
	heap32[(g0+7)] = r1;
	_ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i7);
	f0 = heapFloat[(r0+8)];
	r0 = heap32[(r3+11)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r2;
	heapFloat[(g0+4)] = f0;
	heap32[(g0+5)] = r7;
	heap32[(g0+6)] = r8;
	heap32[(g0+7)] = r1;
	_ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i7);
	return;
}

function _ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(fp)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(r1+12)];
	r5 = heap32[(r1+15)];
	if(r5 !=2) //_LBB107_4
{
	r5 = (r2 + 4)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	r5 = r2 >> 2;
	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
	r6 = heap32[(r5+2)];
if(!(r6 ==0)) //_LBB107_6
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r8 = heap32[(r7)];
	r8 = (r8 + 1)|0;
	r6 = r6 >> 2;
	heap32[(r7)] = r8;
	r6 = heap32[(r6+-1)];
	heap32[(g0)] = r6;
	free(i7);
}
	heap32[(r5+2)] = r4;
	r4 = heap32[(r5+4)];
	r4 = (r4 + -1)|0;
	heap32[(r5+4)] = r4;
}
else{
	r5 = (r2 + 44)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	r5 = r2 >> 2;
	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
	r6 = heap32[(r5+12)];
if(!(r6 ==0)) //_LBB107_3
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r8 = heap32[(r7)];
	r8 = (r8 + 1)|0;
	r6 = r6 >> 2;
	heap32[(r7)] = r8;
	r6 = heap32[(r6+-1)];
	heap32[(g0)] = r6;
	free(i7);
}
	heap32[(r5+12)] = r4;
	r4 = heap32[(r5+14)];
	r4 = (r4 + -1)|0;
	heap32[(r5+14)] = r4;
}
	r4 = heap32[(r1+13)];
	r5 = heap32[(r1+14)];
	if(r4 ==0) //_LBB107_9
{
	r4 = heap32[(r1+15)];
	r4 = r4 << 2;
	r4 = (r2 + r4)|0;
	r4 = r4 >> 2;
	heap32[(r4+21)] = r5;
}
else{
	r4 = r4 >> 2;
	heap32[(r4+14)] = r5;
}
	r4 = heap32[(r1+14)];
if(!(r4 ==0)) //_LBB107_12
{
	r4 = r4 >> 2;
	r5 = heap32[(r1+13)];
	heap32[(r4+13)] = r5;
}
	r4 = r2 >> 2;
	r4 = heap32[(r4+24)];
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+4)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r5)>>2](i7);
if(!(r0 ==0)) //_LBB107_14
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r3 = heap32[(r0)];
	r3 = (r3 + 1)|0;
	heap32[(r0)] = r3;
	r0 = heap32[(r1+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = 1;
	heap8[r2+154] = r0;
	return;
}

function _ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+4)];
	r3 = heap32[(r1+28)];
	r2 = (r3 * r2)|0;
	r2 = (r2 / 100)|0;
	r3 = (r0 + 4)|0;
	r2 = (r2 + 1)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	_ZN6btDbvt19optimizeIncrementalEi(i7);
	r2 = heap32[(r1+31)];
if(!(r2 ==0)) //_LBB108_2
{
	r2 = heap32[(r1+14)];
	r4 = heap32[(r1+27)];
	r2 = (r4 * r2)|0;
	r4 = (r2 / 100)|0;
	r5 = (r0 + 44)|0;
	r4 = (r4 + 1)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	_ZN6btDbvt19optimizeIncrementalEi(i7);
	r2 = (r2 / -100)|0;
	r4 = heap32[(r1+31)];
	r2 = (r2 + r4)|0;
	r2 = (r2 + -1)|0;
	r4 = 0;
	r2 = r2 < 0 ? r4 : r2;
	heap32[(r1+31)] = r2;
}
	r2 = heap32[(r1+26)];
	r2 = (r2 + 1)|0;
	r4 = r2 >>> 31;
	r4 = (r2 + r4)|0;
	r4 = r4 & -2;
	r2 = (r2 - r4)|0;
	r4 = r2 << 2;
	r4 = (r0 + r4)|0;
	r4 = r4 >> 2;
	heap32[(r1+26)] = r2;
	r2 = heap32[(r4+21)];
if(!(r2 ==0)) //_LBB108_20
{
	r4 = (r0 + 44)|0;
_6: while(true){
	r5 = r2 >> 2;
	r6 = heap32[(r5+13)];
	r7 = heap32[(r5+14)];
	if(r6 ==0) //_LBB108_6
{
	r6 = heap32[(r5+15)];
	r6 = r6 << 2;
	r6 = (r0 + r6)|0;
	r6 = r6 >> 2;
	heap32[(r6+21)] = r7;
}
else{
	r6 = r6 >> 2;
	heap32[(r6+14)] = r7;
}
	r6 = heap32[(r5+14)];
if(!(r6 ==0)) //_LBB108_9
{
	r6 = r6 >> 2;
	r8 = heap32[(r5+13)];
	heap32[(r6+13)] = r8;
}
	heap32[(r5+13)] = 0;
	r6 = heap32[(r1+23)];
	heap32[(r5+14)] = r6;
	r6 = heap32[(r1+23)];
if(!(r6 ==0)) //_LBB108_11
{
	r6 = r6 >> 2;
	heap32[(r6+13)] = r2;
}
	heap32[(r1+23)] = r2;
	r6 = heap32[(r5+12)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r6;
	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
	r8 = heap32[(r1+2)];
if(!(r8 ==0)) //_LBB108_13
{
	r9 = gNumAlignedFree;
	r9 = r9 >> 2;
	r10 = heap32[(r9)];
	r10 = (r10 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r9)] = r10;
	r8 = heap32[(r8+-1)];
	heap32[(g0)] = r8;
	free(i7);
}
	heap32[(r1+2)] = r6;
	r6 = heap32[(r1+4)];
	r6 = (r6 + -1)|0;
	heap32[(r1+4)] = r6;
	r6 = heap32[(r1+12)];
	f0 = heapFloat[(r5+4)];
	f1 = heapFloat[(r5+5)];
	f2 = heapFloat[(r5+6)];
	f3 = heapFloat[(r5+7)];
	f4 = heapFloat[(r5+8)];
	f5 = heapFloat[(r5+9)];
	f6 = heapFloat[(r5+10)];
	f7 = heapFloat[(r5+11)];
	if(r6 ==0) //_LBB108_15
{
	r6 = gNumAlignedAllocs;
	r6 = r6 >> 2;
	r8 = heap32[(r6)];
	r8 = (r8 + 1)|0;
	heap32[(r6)] = r8;
	heap32[(g0)] = 63;
	malloc(i7);
	r6 = r_g0;
	if(r6 !=0) //_LBB108_17
{
	r8 = 0;
	r9 = (r6 + 4)|0;
	r8 = (r8 - r9)|0;
	r8 = r8 & 15;
	r8 = (r6 + r8)|0;
	r9 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r6;
	r6 = r9;
}
}
else{
	heap32[(r1+12)] = 0;
}
	r8 = r6 >> 2;
	heap32[(r8+8)] = 0;
	heap32[(r8+9)] = r2;
	heap32[(r8+10)] = 0;
	heapFloat[(r8)] = f0;
	heapFloat[(r8+1)] = f1;
	heapFloat[(r8+2)] = f2;
	heapFloat[(r8+3)] = f3;
	heapFloat[(r8+4)] = f4;
	heapFloat[(r8+5)] = f5;
	heapFloat[(r8+6)] = f6;
	heapFloat[(r8+7)] = f7;
	r2 = heap32[(r1+11)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r6;
	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
	r2 = heap32[(r1+14)];
	r2 = (r2 + 1)|0;
	heap32[(r1+14)] = r2;
	heap32[(r5+12)] = r6;
	heap32[(r5+15)] = 2;
	r2 = r7;
if(!(r7 !=0)) //_LBB108_4
{
break _6;
}
}
	r2 = heap32[(r1+14)];
	r4 = 1;
	heap32[(r1+31)] = r2;
	heap8[r0+154] = r4;
}
	r2 = _ZTV18btDbvtTreeCollider;
	r4 = sp + -32;
	r2 = (r2 + 8)|0;
	r5 = r4 >> 2;
	heap32[(fp+-8)] = r2;
	heap32[(r5+1)] = r0;
	r5 = heapU8[r0+153];
if(!(r5 ==0)) //_LBB108_23
{
	r5 = heap32[(r1+11)];
	r6 = heap32[(r1+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r4;
	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
	r5 = heapU8[r0+153];
if(!(r5 ==0)) //_LBB108_23
{
	r5 = heap32[(r1+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r4;
	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
}
}
	r3 = heap32[(fp+1)];
	heap32[(fp+-8)] = r2;
	r2 = heapU8[r0+154];
_32: do {
if(!(r2 ==0)) //_LBB108_40
{
	r2 = heap32[(r1+24)];
	r4 = r2 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r2 = r_g0;
	r4 = r2 >> 2;
	r4 = heap32[(r4+1)];
if(!(r4 <1)) //_LBB108_40
{
	r5 = heap32[(r1+29)];
	r5 = (r5 * r4)|0;
	r6 = heap32[(r1+30)];
	r5 = (r5 / 100)|0;
	r5 = r6 > r5 ? r6 : r5;
	r5 = r4 < r5 ? r4 : r5;
	if(r5 >0) //_LBB108_27
{
	r4 = 0;
_37: while(true){
	r6 = r2 >> 2;
	r7 = heap32[(r1+36)];
	r7 = (r7 + r4)|0;
	r8 = heap32[(r6+1)];
	r7 = (r7 % r8)|0;
	r8 = heap32[(r6+3)];
	r7 = r7 << 4;
	r7 = (r8 + r7)|0;
	r7 = r7 >> 2;
	r8 = heap32[(r7+1)];
	r7 = heap32[(r7)];
	r9 = r8 >> 2;
	r10 = r7 >> 2;
	r9 = heap32[(r9+12)];
	r10 = heap32[(r10+12)];
	r10 = r10 >> 2;
	r9 = r9 >> 2;
	f0 = heapFloat[(r10)];
	f1 = heapFloat[(r9+4)];
	if(f0 >f1) //_LBB108_35
{
__label__ = 32;
}
else{
	f0 = heapFloat[(r10+4)];
	f1 = heapFloat[(r9)];
	if(f0 <f1) //_LBB108_35
{
__label__ = 32;
}
else{
	f0 = heapFloat[(r10+1)];
	f1 = heapFloat[(r9+5)];
	if(f0 >f1) //_LBB108_35
{
__label__ = 32;
}
else{
	f0 = heapFloat[(r10+5)];
	f1 = heapFloat[(r9+1)];
	if(f0 <f1) //_LBB108_35
{
__label__ = 32;
}
else{
	f0 = heapFloat[(r10+2)];
	f1 = heapFloat[(r9+6)];
	if(f0 >f1) //_LBB108_35
{
__label__ = 32;
}
else{
	f0 = heapFloat[(r10+6)];
	f1 = heapFloat[(r9+2)];
	if(f0 <f1) //_LBB108_35
{
__label__ = 32;
}
else{
__label__ = 33;
}
}
}
}
}
}
if (__label__ == 32){
	r9 = heap32[(r1+24)];
	r10 = r9 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+3)];
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r3;
	r5 = (r5 + -1)|0;
	r4 = (r4 + -1)|0;
	__FUNCTION_TABLE__[(r10)>>2](i7);
}
	r4 = (r4 + 1)|0;
if(!(r4 <r5)) //_LBB108_28
{
break _37;
}
}
	r4 = heap32[(r6+1)];
	if(r4 <1) //_LBB108_39
{
	heap32[(r1+36)] = 0;
break _32;
}
}
	r2 = heap32[(r1+36)];
	r2 = (r2 + r5)|0;
	r2 = (r2 % r4)|0;
	heap32[(r1+36)] = r2;
}
}
} while(0);
	r2 = heap32[(r1+35)];
	r2 = (r2 + 1)|0;
	heap32[(r1+35)] = r2;
	r2 = 0;
	heap32[(r1+30)] = 1;
	heap8[r0+154] = r2;
	r0 = heap32[(r1+32)];
	if(r0 ==0) //_LBB108_42
{
	heap32[(r1+34)] = 0;
	r4 = heap32[(r1+33)];
}
else{
	r4 = heap32[(r1+33)];
	f0 = uint(r4); //fuitos r4, f0
	f1 = uint(r0); //fuitos r0, f1
	f0 = f0/f1;
	heapFloat[(r1+34)] = f0;
}
	r4 = r4 >>> 1;
	r0 = r0 >>> 1;
	heap32[(r1+33)] = r4;
	heap32[(r1+32)] = r0;
	r0 = heap32[(r1+24)];
	r4 = r0 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+14)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB108_65
{
	r0 = heap32[(r1+24)];
	r4 = r0 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r0 = r_g0;
	r4 = r0 >> 2;
	r4 = heap32[(r4+1)];
if(!(r4 <2)) //_LBB108_46
{
	r4 = (r4 + -1)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r4;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
}
	r4 = r2;
	r5 = r2;
	r6 = r2;
	r7 = r2;
_61: while(true){
	r8 = r0 >> 2;
	r9 = heap32[(r8+1)];
	if(r9 >r7) //_LBB108_47
{
	r8 = heap32[(r8+3)];
	r9 = r7 << 4;
	r9 = (r8 + r9)|0;
	r9 = r9 >> 2;
	r10 = heap32[(r9)];
	r11 = r7 << 2;
	r12 = heap32[(r9+1)];
	if(r10 !=r4) //_LBB108_49
{
__label__ = 46;
}
else{
	if(r12 ==r5) //_LBB108_56
{
	r4 = heap32[(r9+2)];
	if(r4 ==0) //_LBB108_58
{
__label__ = 54;
}
else{
__label__ = 53;
break _61;
}
}
else{
__label__ = 46;
}
}
if (__label__ == 46){
	r4 = r12 >> 2;
	r5 = r10 >> 2;
	r4 = heap32[(r4+12)];
	r5 = heap32[(r5+12)];
	r5 = r5 >> 2;
	r4 = r4 >> 2;
	f0 = heapFloat[(r5)];
	f1 = heapFloat[(r4+4)];
	if(f0 >f1) //_LBB108_58
{
__label__ = 54;
}
else{
	f0 = heapFloat[(r5+4)];
	f1 = heapFloat[(r4)];
	if(f0 <f1) //_LBB108_58
{
__label__ = 54;
}
else{
	f0 = heapFloat[(r5+1)];
	f1 = heapFloat[(r4+5)];
	if(f0 >f1) //_LBB108_58
{
__label__ = 54;
}
else{
	f0 = heapFloat[(r5+5)];
	f1 = heapFloat[(r4+1)];
	if(f0 <f1) //_LBB108_58
{
__label__ = 54;
}
else{
	f0 = heapFloat[(r5+2)];
	f1 = heapFloat[(r4+6)];
	if(f0 >f1) //_LBB108_58
{
__label__ = 54;
}
else{
	f0 = heapFloat[(r5+6)];
	f1 = heapFloat[(r4+2)];
	if(f0 <f1) //_LBB108_58
{
__label__ = 54;
}
else{
__label__ = 55;
}
}
}
}
}
}
}
if (__label__ == 54){
	r4 = heap32[(r1+24)];
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+8)];
	r9 = (r8 + r2)|0;
	r11 = r11 << 2;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r3;
	r4 = (r8 + r11)|0;
	r4 = r4 >> 2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r6 = (r6 + 1)|0;
	heap32[(r4)] = 0;
	heap32[(r4+1)] = 0;
}
	r7 = (r7 + 1)|0;
	r2 = (r2 + 16)|0;
	r4 = r10;
	r5 = r12;
}
else{
__label__ = 57;
break _61;
}
}
switch(__label__ ){//multiple entries
case 57:
	if(r9 >1) //_LBB108_63
{
	r9 = (r9 + -1)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r9;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
	r9 = heap32[(r8+1)];
}
	r1 = sp + -16;
	r2 = r1 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r2+1)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	r2 = (r9 - r6)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
break;
case 53:
	r8 = _2E_str314;
	r0 = _2E_str18;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 469;
	_assert(i7);
break;
}
}
	return;
}

function _ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
var __label__ = 0;
	i7 = sp + -88;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0)];
	r1 = sp + -32;
	heapFloat[(fp+-8)] = f0;
	f1 = heapFloat[(r0+1)];
	r2 = r1 >> 2;
	heapFloat[(r2+1)] = f1;
	f2 = heapFloat[(r0+2)];
	heapFloat[(r2+2)] = f2;
	f3 = heapFloat[(r0+3)];
	r3 = heap32[(fp+3)];
	r3 = r3 >> 2;
	heapFloat[(r2+3)] = f3;
	f4 = heapFloat[(r3)];
	heapFloat[(r2+4)] = f4;
	f5 = heapFloat[(r3+1)];
	heapFloat[(r2+5)] = f5;
	f6 = heapFloat[(r3+2)];
	heapFloat[(r2+6)] = f6;
	f7 = heapFloat[(r3+3)];
	r4 = heap32[(fp+1)];
	r5 = heap32[(fp)];
	r6 = r4 >> 2;
	heapFloat[(r2+7)] = f7;
	r7 = heap32[(r6+15)];
_1: do {
	if(r7 !=2) //_LBB109_9
{
	r2 = r5 >> 2;
	r8 = heap32[(r2+32)];
	r8 = (r8 + 1)|0;
	heap32[(r2+32)] = r8;
	r8 = heap32[(r6+12)];
	r7 = r8 >> 2;
	f8 = heapFloat[(r7)];
if(!(f8 >f4)) //_LBB109_24
{
	f8 = heapFloat[(r7+4)];
if(!(f8 <f0)) //_LBB109_24
{
	f8 = heapFloat[(r7+1)];
if(!(f8 >f5)) //_LBB109_24
{
	f8 = heapFloat[(r7+5)];
if(!(f8 <f1)) //_LBB109_24
{
	f8 = heapFloat[(r7+2)];
if(!(f8 >f6)) //_LBB109_24
{
	f8 = heapFloat[(r7+6)];
if(!(f8 <f2)) //_LBB109_24
{
	f0 = heapFloat[(r6+4)];
	f1 = heapFloat[(r6+8)];
	f1 = f1-f0;
	f2 =                       0.5;
	f3 = heapFloat[(r6+5)];
	f4 = heapFloat[(r6+9)];
	f4 = f4-f3;
	f5 = heapFloat[(r0+1)];
	f6 = heapFloat[(r0)];
	f1 = f1*f2;
	f7 = heapFloat[(r2+25)];
	f8 = heapFloat[(r0+2)];
	f9 = heapFloat[(r6+6)];
	f10 = heapFloat[(r6+10)];
	r7 = sp + -48;
	f10 = f10-f9;
	f4 = f4*f2;
	f1 = f1*f7;
	f2 = f10*f2;
	f4 = f4*f7;
	r9 = r7 >> 2;
	heapFloat[(fp+-12)] = f1;
	f2 = f2*f7;
	heapFloat[(r9+1)] = f4;
	heapFloat[(r9+2)] = f2;
	heap32[(r9+3)] = 0;
	f0 = f6-f0;
	f6 =                         0;
if(!(f0 >=f6)) //_LBB109_17
{
	f0 = -f1;
	heapFloat[(fp+-12)] = f0;
}
	f0 = f5-f3;
if(!(f0 >=f6)) //_LBB109_19
{
	f0 = -f4;
	heapFloat[(r9+1)] = f0;
}
	f0 = f8-f9;
if(!(f0 >=f6)) //_LBB109_21
{
	f0 = -f2;
	heapFloat[(r9+2)] = f0;
}
	r9 = (r5 + 4)|0;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = 1028443341;
	_ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB109_23
{
	r7 = heap32[(r2+33)];
	r8 = 1;
	r7 = (r7 + 1)|0;
	heap32[(r2+33)] = r7;
break _1;
}
else{
	r8 = 0;
break _1;
}
}
}
}
}
}
}
	r1 = (r5 + 4)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r8;
	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
	r9 = r_g0;
_23: do {
	if(r9 !=0) //_LBB109_26
{
	r11 = heap32[(r2+3)];
	if(r11 <0) //_LBB109_31
{
	r10 = heap32[(r2+1)];
}
else{
	r12 = -1;
_28: while(true){
	r10 = r9;
	r12 = (r12 + 1)|0;
	if(r11 >r12) //_LBB109_30
{
	r9 = r10 >> 2;
	r9 = heap32[(r9+8)];
	if(r9 ==0) //_LBB109_29
{
break _23;
}
}
else{
break _23;
}
}
}
}
else{
	r10 = 0;
}
} while(0);
	heapFloat[(r7)] = f0;
	heapFloat[(r7+1)] = f1;
	heapFloat[(r7+2)] = f2;
	heapFloat[(r7+3)] = f3;
	heapFloat[(r7+4)] = f4;
	heapFloat[(r7+5)] = f5;
	heapFloat[(r7+6)] = f6;
	heapFloat[(r7+7)] = f7;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r8;
	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
	r1 = heap32[(r2+33)];
	r8 = 1;
	r1 = (r1 + 1)|0;
	heap32[(r2+33)] = r1;
}
else{
	r1 = heap32[(r6+12)];
	r7 = (r5 + 44)|0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r1;
	r7 = r5 >> 2;
	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
	r8 = heap32[(r7+12)];
if(!(r8 ==0)) //_LBB109_3
{
	r9 = gNumAlignedFree;
	r9 = r9 >> 2;
	r10 = heap32[(r9)];
	r10 = (r10 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r9)] = r10;
	r8 = heap32[(r8+-1)];
	heap32[(g0)] = r8;
	free(i7);
}
	heap32[(r7+12)] = r1;
	r1 = heap32[(r7+14)];
	r1 = (r1 + -1)|0;
	heap32[(r7+14)] = r1;
	r1 = heap32[(r7+2)];
	r8 = (r5 + 4)|0;
	if(r1 ==0) //_LBB109_5
{
	r1 = gNumAlignedAllocs;
	r1 = r1 >> 2;
	r9 = heap32[(r1)];
	r9 = (r9 + 1)|0;
	heap32[(r1)] = r9;
	heap32[(g0)] = 63;
	malloc(i7);
	r1 = r_g0;
	if(r1 !=0) //_LBB109_7
{
	r9 = 0;
	r10 = (r1 + 4)|0;
	r9 = (r9 - r10)|0;
	r9 = r9 & 15;
	r9 = (r1 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r1;
	r1 = r10;
}
}
else{
	heap32[(r7+2)] = 0;
}
	r9 = r1 >> 2;
	heap32[(r9+8)] = 0;
	heap32[(r9+9)] = r4;
	heap32[(r9+10)] = 0;
	heap32[(r9)] = heap32[(fp+-8)];
	heap32[(r9+1)] = heap32[(r2+1)];
	heap32[(r9+2)] = heap32[(r2+2)];
	heap32[(r9+3)] = heap32[(r2+3)];
	heapFloat[(r9+4)] = f4;
	heapFloat[(r9+5)] = f5;
	heapFloat[(r9+6)] = f6;
	heapFloat[(r9+7)] = f7;
	r2 = heap32[(r7+1)];
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
	r2 = heap32[(r7+4)];
	r2 = (r2 + 1)|0;
	r8 = 1;
	heap32[(r7+4)] = r2;
	heap32[(r6+12)] = r1;
}
} while(0);
	r1 = heap32[(r6+13)];
	r2 = heap32[(r6+14)];
	if(r1 ==0) //_LBB109_35
{
	r1 = heap32[(r6+15)];
	r1 = r1 << 2;
	r1 = (r5 + r1)|0;
	r1 = r1 >> 2;
	heap32[(r1+21)] = r2;
}
else{
	r1 = r1 >> 2;
	heap32[(r1+14)] = r2;
}
	r1 = heap32[(r6+14)];
if(!(r1 ==0)) //_LBB109_38
{
	r1 = r1 >> 2;
	r2 = heap32[(r6+13)];
	heap32[(r1+13)] = r2;
}
	heap32[(r6+4)] = heap32[(r0)];
	heap32[(r6+5)] = heap32[(r0+1)];
	heap32[(r6+6)] = heap32[(r0+2)];
	heap32[(r6+7)] = heap32[(r0+3)];
	heap32[(r6+8)] = heap32[(r3)];
	heap32[(r6+9)] = heap32[(r3+1)];
	heap32[(r6+10)] = heap32[(r3+2)];
	r0 = r5 >> 2;
	heap32[(r6+11)] = heap32[(r3+3)];
	r1 = heap32[(r0+26)];
	heap32[(r6+15)] = r1;
	r1 = heap32[(r0+26)];
	r1 = r1 << 2;
	r1 = (r5 + r1)|0;
	r1 = r1 >> 2;
	heap32[(r6+13)] = 0;
	r2 = heap32[(r1+21)];
	heap32[(r6+14)] = r2;
	r2 = heap32[(r1+21)];
if(!(r2 ==0)) //_LBB109_40
{
	r2 = r2 >> 2;
	heap32[(r2+13)] = r4;
}
	r2 = r8 & 1;
	heap32[(r1+21)] = r4;
if(!(r2 ==0)) //_LBB109_43
{
	r1 = 1;
	heap8[r5+154] = r1;
	r1 = heapU8[r5+153];
if(!(r1 !=0)) //_LBB109_43
{
	r1 = _ZTV18btDbvtTreeCollider;
	r2 = sp + -64;
	r1 = (r1 + 8)|0;
	r3 = r2 >> 2;
	heap32[(fp+-16)] = r1;
	heap32[(r3+1)] = r5;
	r1 = heap32[(r6+12)];
	r3 = heap32[(r0+11)];
	r4 = (r5 + 44)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r2;
	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
	r1 = heap32[(r6+12)];
	r0 = heap32[(r0+1)];
	r3 = (r5 + 4)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r2;
	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
}
}
	return;
}

function _ZN16btDbvtBroadphaseD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btDbvtBroadphase;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+152];
if(!(r1 ==0)) //_LBB110_3
{
	r1 = heap32[(r2+24)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+24)];
if(!(r1 ==0)) //_LBB110_3
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r2)] = r3;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = (r0 + 4)|0;
if(!(r1 ==0)) //_LBB110_15
{
	r2 = (r1 + 80)|0;
if(!(r2 ==r1)) //_LBB110_15
{
	r1 = (r0 + 44)|0;
	r2 = 0;
_8: while(true){
	r3 = (r0 + r2)|0;
	r4 = r3 >> 2;
	r5 = heap32[(r4+11)];
if(!(r5 ==0)) //_LBB110_8
{
	r6 = (r1 + r2)|0;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
}
	r5 = heap32[(r4+12)];
if(!(r5 ==0)) //_LBB110_10
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r6)] = r7;
	r5 = heap32[(r5+-1)];
	heap32[(g0)] = r5;
	free(i7);
}
	heap32[(r4+12)] = 0;
	heap32[(r4+13)] = -1;
	r5 = heap32[(r4+19)];
if(!(r5 ==0)) //_LBB110_14
{
	r6 = heapU8[r3+80];
if(!(r6 ==0)) //_LBB110_13
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r6)] = r7;
	r5 = heap32[(r5+-1)];
	heap32[(g0)] = r5;
	free(i7);
}
	heap32[(r4+19)] = 0;
}
	r5 = 1;
	heap32[(r4+15)] = 0;
	heap8[r3+80] = r5;
	heap32[(r4+19)] = 0;
	r2 = (r2 + -40)|0;
	heap32[(r4+17)] = 0;
	heap32[(r4+18)] = 0;
	if(r2 !=-80) //_LBB110_6
{
continue _8;
}
else{
break _8;
}
}
}
}
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btDbvtBroadphaseD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btDbvtBroadphase;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+152];
if(!(r1 ==0)) //_LBB111_3
{
	r1 = heap32[(r2+24)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+24)];
if(!(r1 ==0)) //_LBB111_3
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r2)] = r3;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = (r0 + 4)|0;
if(!(r1 ==0)) //_LBB111_15
{
	r2 = (r1 + 80)|0;
if(!(r2 ==r1)) //_LBB111_15
{
	r1 = (r0 + 44)|0;
	r2 = 0;
_8: while(true){
	r3 = (r0 + r2)|0;
	r4 = r3 >> 2;
	r5 = heap32[(r4+11)];
if(!(r5 ==0)) //_LBB111_8
{
	r6 = (r1 + r2)|0;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
}
	r5 = heap32[(r4+12)];
if(!(r5 ==0)) //_LBB111_10
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r6)] = r7;
	r5 = heap32[(r5+-1)];
	heap32[(g0)] = r5;
	free(i7);
}
	heap32[(r4+12)] = 0;
	heap32[(r4+13)] = -1;
	r5 = heap32[(r4+19)];
if(!(r5 ==0)) //_LBB111_14
{
	r6 = heapU8[r3+80];
if(!(r6 ==0)) //_LBB111_13
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r6)] = r7;
	r5 = heap32[(r5+-1)];
	heap32[(g0)] = r5;
	free(i7);
}
	heap32[(r4+19)] = 0;
}
	r5 = 1;
	heap32[(r4+15)] = 0;
	heap8[r3+80] = r5;
	heap32[(r4+19)] = 0;
	r2 = (r2 + -40)|0;
	heap32[(r4+17)] = 0;
	heap32[(r4+18)] = 0;
	if(r2 !=-80) //_LBB111_6
{
continue _8;
}
else{
break _8;
}
}
}
}
	return;
}

function _ZN12btDispatcherD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btDispatcher;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN12btDispatcherD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btDispatcher;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+60];
	if(r1 !=0) //_LBB114_2
{
	r1 = heap32[(fp+2)];
	r1 = r1 >> 2;
	f0 = heapFloat[(r1)];
	r0 = r0 >> 2;
	f1 = heapFloat[(r0+5)];
	if(f0 <=f1) //_LBB114_4
{
	f1 = heapFloat[(r1+1)];
	f2 = heapFloat[(r0+6)];
	if(f1 <=f2) //_LBB114_6
{
	f2 = heapFloat[(r1+2)];
	f3 = heapFloat[(r0+7)];
	if(f2 <=f3) //_LBB114_8
{
	f3 = heapFloat[(r0+1)];
	if(f0 >=f3) //_LBB114_10
{
	f4 = heapFloat[(r0+2)];
	if(f1 >=f4) //_LBB114_12
{
	f5 = heapFloat[(r0+3)];
	if(f2 >=f5) //_LBB114_14
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+3)];
	f2 = f2-f5;
	f5 = heapFloat[(r0+11)];
	f1 = f1-f4;
	f4 = heapFloat[(r0+10)];
	f0 = f0-f3;
	f3 = heapFloat[(r0+9)];
	f2 = f2*f5;
	f1 = f1*f4;
	f0 = f0*f3;
	if(r2 ==0) //_LBB114_16
{
	r0 = Math.floor(f0);
	r2 = Math.floor(f1);
	r0 = r0 & 65534;
	r3 = Math.floor(f2);
	r2 = r2 & 65534;
	heap16[(r1)>>1] = r0;
	r0 = r3 & 65534;
}
else{
	f3 =                         1;
	f0 = f0+f3;
	f1 = f1+f3;
	r0 = Math.floor(f0);
	f0 = f2+f3;
	r2 = Math.floor(f1);
	r0 = r0 | 1;
	r3 = Math.floor(f0);
	r2 = r2 | 1;
	heap16[(r1)>>1] = r0;
	r0 = r3 | 1;
}
	heap16[(r1+2)>>1] = r2;
	heap16[(r1+4)>>1] = r0;
	return;
}
else{
	r0 = _2E_str9;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 361;
	_assert(i7);
}
}
else{
	r0 = _2E_str820;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 360;
	_assert(i7);
}
}
else{
	r0 = _2E_str717;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 359;
	_assert(i7);
}
}
else{
	r0 = _2E_str616;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 357;
	_assert(i7);
}
}
else{
	r0 = _2E_str515;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 356;
	_assert(i7);
}
}
else{
	r0 = _2E_str414;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 355;
	_assert(i7);
}
}
else{
	r0 = _2E_str212;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 353;
	_assert(i7);
}
}

function _ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r0 >> 2;
	r3 = heap32[(r2+2)];
if(!(r3 >=r1)) //_LBB115_16
{
	if(r1 !=0) //_LBB115_3
{
	r3 = gNumAlignedAllocs;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r5 = r1 << 4;
	r4 = (r4 + 1)|0;
	r5 = r5 | 3;
	heap32[(r3)] = r4;
	r3 = (r5 + 16)|0;
	heap32[(g0)] = r3;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB115_5
{
	r4 = 0;
	r5 = (r3 + 4)|0;
	r4 = (r4 - r5)|0;
	r4 = r4 & 15;
	r4 = (r3 + r4)|0;
	r5 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = r5;
}
}
else{
	r3 = 0;
}
	r4 = heap32[(r2+1)];
	r5 = (r0 + 12)|0;
	if(r4 <1) //_LBB115_8
{
	r4 = r5 >> 2;
	r7 = heap32[(r4)];
}
else{
	r6 = 0;
_11: while(true){
	r7 = r5 >> 2;
	r7 = heap32[(r7)];
	r8 = r6 << 4;
	r9 = heapU16[(r7+r8)>>1];
	r10 = (r7 + r8)|0;
	heap16[(r3+r8)>>1] = r9;
	r8 = (r3 + r8)|0;
	r9 = heapU16[(r10+2)>>1];
	heap16[(r8+2)>>1] = r9;
	r9 = heapU16[(r10+4)>>1];
	heap16[(r8+4)>>1] = r9;
	r9 = heapU16[(r10+6)>>1];
	heap16[(r8+6)>>1] = r9;
	r9 = heapU16[(r10+8)>>1];
	heap16[(r8+8)>>1] = r9;
	r9 = heapU16[(r10+10)>>1];
	r10 = r10 >> 2;
	heap16[(r8+10)>>1] = r9;
	r6 = (r6 + 1)|0;
	r8 = r8 >> 2;
	r9 = heap32[(r10+3)];
	heap32[(r8+3)] = r9;
if(!(r4 !=r6)) //_LBB115_9
{
break _11;
}
}
	r5 = (r0 + 12)|0;
}
if(!(r7 ==0)) //_LBB115_15
{
	r4 = heapU8[r0+16];
if(!(r4 ==0)) //_LBB115_14
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r6 = heap32[(r4)];
	r6 = (r6 + 1)|0;
	r7 = r7 >> 2;
	heap32[(r4)] = r6;
	r4 = heap32[(r7+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	r4 = r5 >> 2;
	heap32[(r4)] = 0;
}
	r4 = 1;
	r5 = r5 >> 2;
	heap8[r0+16] = r4;
	heap32[(r5)] = r3;
	heap32[(r2+2)] = r1;
}
	return;
}

function _ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = (r0 + 4)|0;
	r_g0 = r0;
	return;
}

function _ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	heap32[(r0+6)] = r1;
	return;
}

function _ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	heap32[(r0+18)] = r1;
	return;
}

function _ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+2)];
if(!(r1 ==0)) //_LBB120_2
{
	r2 = heap32[(fp+2)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = r2 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+13)];
	r3 = heap32[(r0+2)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	heap32[(r0+2)] = 0;
}
	return;
}

function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r2 = heap32[(r0+1)];
	r3 = r1 >> 2;
	r4 = heap32[(r3)];
	if(r4 ==r2) //_LBB123_2
{
__label__ = 2;
}
else{
	r3 = heap32[(r3+1)];
	if(r3 !=r2) //_LBB123_3
{
__label__ = 3;
}
else{
__label__ = 2;
}
}
if (__label__ == 2){
	r2 = heap32[(r0+2)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+8)];
	r0 = heap32[(r0+3)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r0 = heap32[(r0+1)];
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	if(r2 ==r0) //_LBB126_2
{
	r0 = 1;
	r_g0 = r0;
	return;
}
else{
	r1 = heap32[(r1+1)];
	r0 = r1 == r0;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}
}

function _ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r_g0 = r0;
	return;
}

function _ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r_g0 = r0;
	return;
}

function _ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+2)];
	r_g0 = r0;
	return;
}

function _ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = 0;
	r4 = r3;
_1: while(true){
	r5 = r4 << 2;
_3: while(true){
	r6 = r0 >> 2;
	r7 = heap32[(r6+2)];
	if(r7 >r4) //_LBB130_1
{
	r7 = r1 >> 2;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r8 = heap32[(r6+4)];
	r7 = heap32[(r7+2)];
	r9 = (r8 + r3)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r9;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r7 = r_g0;
	if(r7 ==0) //_LBB130_3
{
break _3;
}
else{
	r7 = r5 << 2;
	r6 = heap32[(r6)];
	r7 = (r8 + r7)|0;
	r7 = r7 >> 2;
	r6 = r6 >> 2;
	r6 = heap32[(r6+3)];
	r8 = heap32[(r7+1)];
	r7 = heap32[(r7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r2;
	r7 = gOverlappingPairs;
	r7 = r7 >> 2;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = heap32[(r7)];
	r6 = (r6 + -1)|0;
	heap32[(r7)] = r6;
continue _3;
}
}
else{
break _1;
}
}
	r4 = (r4 + 1)|0;
	r3 = (r3 + 16)|0;
continue _1;
}
	return;
}

function _ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
	r1 = sp + -8;
	r0 = (r0 + 8)|0;
	r2 = heap32[(fp)];
	r3 = r1 >> 2;
	r4 = heap32[(fp+1)];
	heap32[(fp+-2)] = r0;
	r0 = r2 >> 2;
	heap32[(r3+1)] = r4;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+12)];
	r3 = heap32[(fp+2)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	return;
}

function _ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
	r1 = sp + -16;
	r0 = (r0 + 8)|0;
	r2 = r1 >> 2;
	r3 = heap32[(fp+1)];
	heap32[(fp+-4)] = r0;
	r0 = heap32[(fp)];
	heap32[(r2+1)] = r3;
	r3 = heap32[(fp+2)];
	heap32[(r2+2)] = r0;
	r4 = r0 >> 2;
	heap32[(r2+3)] = r3;
	r2 = heap32[(r4)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}

function _ZN28btHashedOverlappingPairCacheD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV28btHashedOverlappingPairCache;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+16)];
if(!(r1 ==0)) //_LBB133_4
{
	r3 = heapU8[r0+68];
if(!(r3 ==0)) //_LBB133_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+16)] = 0;
}
	r1 = 1;
	heap8[r0+68] = r1;
	heap32[(r2+16)] = 0;
	heap32[(r2+14)] = 0;
	heap32[(r2+15)] = 0;
	r3 = heap32[(r2+11)];
if(!(r3 ==0)) //_LBB133_8
{
	r4 = heapU8[r0+48];
if(!(r4 ==0)) //_LBB133_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+11)] = 0;
}
	heap8[r0+48] = r1;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	r3 = heap32[(r2+4)];
if(!(r3 ==0)) //_LBB133_12
{
	r4 = heapU8[r0+20];
if(!(r4 ==0)) //_LBB133_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN28btHashedOverlappingPairCacheD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV28btHashedOverlappingPairCache;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+16)];
if(!(r1 ==0)) //_LBB134_4
{
	r3 = heapU8[r0+68];
if(!(r3 ==0)) //_LBB134_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+16)] = 0;
}
	r1 = 1;
	heap8[r0+68] = r1;
	heap32[(r2+16)] = 0;
	heap32[(r2+14)] = 0;
	heap32[(r2+15)] = 0;
	r3 = heap32[(r2+11)];
if(!(r3 ==0)) //_LBB134_8
{
	r4 = heapU8[r0+48];
if(!(r4 ==0)) //_LBB134_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+11)] = 0;
}
	heap8[r0+48] = r1;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	r3 = heap32[(r2+4)];
if(!(r3 ==0)) //_LBB134_12
{
	r4 = heapU8[r0+20];
if(!(r4 ==0)) //_LBB134_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	return;
}

function _ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = gAddedPairs;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = heap32[(fp)];
	r1 = (r1 + 1)|0;
	r3 = r2 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r3+6)];
	r1 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	if(r0 ==0) //_LBB135_2
{
	r0 = heapU16[(r4+6)>>1];
	r5 = heapU16[(r1+4)>>1];
	r0 = r0 & r5;
	r0 = r0 & 65535;
	if(r0 ==0) //_LBB135_25
{
__label__ = 23;
}
else{
	r0 = heapU16[(r1+6)>>1];
	r5 = heapU16[(r4+4)>>1];
	r0 = r0 & r5;
	r0 = r0 & 65535;
	r5 = 0;
	r0 = r0 != r5;
	r0 = r0 & 1;
__label__ = 4;
}
}
else{
	r5 = r0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r0 = r_g0;
__label__ = 4;
}
if (__label__ == 4){
	r0 = r0 & 255;
if(!(r0 ==0)) //_LBB135_25
{
	r0 = r1 >> 2;
	r5 = r4 >> 2;
	r0 = heap32[(r0+3)];
	r5 = heap32[(r5+3)];
	r6 = r0 > r5 ? r1 : r4;
	r0 = r0 > r5 ? r4 : r1;
	r1 = r6 >> 2;
	r4 = heap32[(r1+3)];
	r5 = r0 >> 2;
	r7 = heap32[(r5+3)];
	r8 = r4 << 16;
	r8 = r8 | r7;
	r9 = r8 << 15;
	r9 = r9 ^ -1;
	r8 = (r8 + r9)|0;
	r9 = r8 >> 10;
	r8 = r9 ^ r8;
	r8 = (r8 * 9)|0;
	r9 = r8 >> 6;
	r8 = r9 ^ r8;
	r9 = r8 << 11;
	r9 = r9 ^ -1;
	r8 = (r8 + r9)|0;
	r9 = heap32[(r3+3)];
	r10 = r8 >> 16;
	r8 = r10 ^ r8;
	r10 = (r9 + -1)|0;
	r10 = r8 & r10;
	r11 = heap32[(r3+11)];
	r12 = r10 << 2;
	r11 = (r11 + r12)|0;
_8: while(true){
	r11 = r11 >> 2;
	r11 = heap32[(r11)];
	if(r11 ==-1) //_LBB135_14
{
__label__ = 13;
break _8;
}
else{
	r12 = heap32[(r3+4)];
	r13 = r11 << 4;
	r12 = (r12 + r13)|0;
	r13 = r12 >> 2;
	r14 = heap32[(r13)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+3)];
if(!(r14 !=r7)) //_LBB135_6
{
	r13 = heap32[(r13+1)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+3)];
if(!(r13 !=r4)) //_LBB135_6
{
__label__ = 10;
break _8;
}
}
	r12 = heap32[(r3+16)];
	r11 = r11 << 2;
	r11 = (r12 + r11)|0;
}
}
_14: do {
switch(__label__ ){//multiple entries
case 13:
	r4 = heap32[(r3+2)];
__label__ = 14;
break _14;
break;
case 10:
	r4 = heap32[(r3+2)];
	if(r4 >r11) //_LBB135_12
{
	if(r12 !=0) //_LBB135_24
{
__label__ = 22;
}
else{
__label__ = 14;
}
}
else{
	r0 = _2E_str222;
	r1 = _2E_str323;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 250;
	_assert(i7);
}
break;
}
} while(0);
if (__label__ == 14){
	r12 = (r2 + 4)|0;
	heap32[(g0)] = r12;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(i7);
	r12 = r_g0;
	r7 = heap32[(r3+18)];
if(!(r7 ==0)) //_LBB135_17
{
	r11 = r7 >> 2;
	r11 = heap32[(r11)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+2)];
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r6;
	__FUNCTION_TABLE__[(r11)>>2](i7);
}
	r7 = heap32[(r3+3)];
	if(r9 <r7) //_LBB135_19
{
	heap32[(g0)] = r2;
	_ZN28btHashedOverlappingPairCache10growTablesEv(i7);
	r10 = heap32[(r3+3)];
	r10 = (r10 + -1)|0;
	r10 = r10 & r8;
}
	r2 = heap32[(r5+3)];
	r1 = heap32[(r1+3)];
	if(r2 >=r1) //_LBB135_22
{
	r1 = r12 >> 2;
	heap32[(r1)] = r6;
	heap32[(r1+1)] = r0;
}
else{
	r1 = r12 >> 2;
	heap32[(r1)] = r0;
	heap32[(r1+1)] = r6;
}
	r0 = r12 >> 2;
	heap32[(r0+2)] = 0;
	heap32[(r0+3)] = 0;
	r0 = r10 << 2;
	r1 = heap32[(r3+11)];
	r1 = (r1 + r0)|0;
	r1 = r1 >> 2;
	r2 = r4 << 2;
	r5 = heap32[(r3+16)];
	r2 = (r5 + r2)|0;
	r1 = heap32[(r1)];
	r2 = r2 >> 2;
	heap32[(r2)] = r1;
	r1 = heap32[(r3+11)];
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r4;
}
	r_g0 = r12;
	return;
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = gRemovePairs;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+1)];
	r1 = (r1 + 1)|0;
	r4 = r3 >> 2;
	heap32[(r0)] = r1;
	r0 = r2 >> 2;
	r1 = heap32[(r4+3)];
	r0 = heap32[(r0+3)];
	r4 = r1 > r0 ? r3 : r2;
	r0 = r1 > r0 ? r2 : r3;
	r1 = r4 >> 2;
	r1 = heap32[(r1+3)];
	r2 = r0 >> 2;
	r2 = heap32[(r2+3)];
	r3 = r1 << 16;
	r3 = r3 | r2;
	r5 = r3 << 15;
	r5 = r5 ^ -1;
	r3 = (r3 + r5)|0;
	r5 = r3 >> 10;
	r3 = r5 ^ r3;
	r3 = (r3 * 9)|0;
	r5 = r3 >> 6;
	r3 = r5 ^ r3;
	r5 = r3 << 11;
	r6 = heap32[(fp)];
	r5 = r5 ^ -1;
	r7 = r6 >> 2;
	r3 = (r3 + r5)|0;
	r5 = r3 >> 16;
	r8 = heap32[(r7+3)];
	r3 = r5 ^ r3;
	r5 = (r8 + -1)|0;
	r3 = r3 & r5;
	r5 = heap32[(r7+11)];
	r3 = r3 << 2;
	r8 = heap32[(fp+3)];
	r5 = (r5 + r3)|0;
_1: while(true){
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	if(r5 ==-1) //_LBB136_35
{
__label__ = 33;
break _1;
}
else{
	r9 = heap32[(r7+4)];
	r10 = r5 << 4;
	r9 = (r9 + r10)|0;
	r10 = r9 >> 2;
	r11 = heap32[(r10)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+3)];
if(!(r11 !=r2)) //_LBB136_1
{
	r11 = heap32[(r10+1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+3)];
if(!(r11 !=r1)) //_LBB136_1
{
__label__ = 5;
break _1;
}
}
	r9 = heap32[(r7+16)];
	r5 = r5 << 2;
	r5 = (r9 + r5)|0;
continue _1;
}
}
if (__label__ == 5){
	r11 = heap32[(r7+2)];
	if(r11 >r5) //_LBB136_7
{
if(!(r9 ==0)) //_LBB136_35
{
	r5 = heap32[(r7)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+8)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = heap32[(r10)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+3)];
	if(r5 ==r2) //_LBB136_10
{
	r2 = heap32[(r10+1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+3)];
	if(r2 ==r1) //_LBB136_12
{
	r1 = heap32[(r7+4)];
	r1 = (r9 - r1)|0;
	r1 = r1 >> 4;
	r2 = heap32[(r7+2)];
	if(r2 >r1) //_LBB136_14
{
	r2 = heap32[(r7+11)];
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	if(r3 ==-1) //_LBB136_17
{
	r0 = _2E_str727;
	r1 = _2E_str121;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 304;
	_assert(i7);
}
else{
	r5 = heap32[(r10+3)];
	r6 = heap32[(r7+16)];
	if(r3 ==r1) //_LBB136_21
{
__label__ = 20;
}
else{
_22: while(true){
	r9 = r3;
	r3 = r9 << 2;
	r3 = (r6 + r3)|0;
	r10 = r3 >> 2;
	r3 = heap32[(r10)];
if(!(r3 !=r1)) //_LBB136_18
{
break _22;
}
}
	if(r9 ==-1) //_LBB136_21
{
__label__ = 20;
}
else{
	r2 = r1 << 2;
	r2 = (r6 + r2)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	heap32[(r10)] = r2;
__label__ = 21;
}
}
if (__label__ == 20){
	r3 = r1 << 2;
	r3 = (r6 + r3)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(r2)] = r3;
}
	r2 = heap32[(r7+2)];
	r3 = heap32[(r7+18)];
if(!(r3 ==0)) //_LBB136_24
{
	r6 = r3 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+3)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r8;
	__FUNCTION_TABLE__[(r6)>>2](i7);
}
	r0 = (r2 + -1)|0;
	if(r0 !=r1) //_LBB136_26
{
	r3 = heap32[(r7+4)];
	r4 = r2 << 4;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r6 = heap32[(r3+-3)];
	r3 = heap32[(r3+-4)];
	r6 = r6 >> 2;
	r3 = r3 >> 2;
	r6 = heap32[(r6+3)];
	r3 = heap32[(r3+3)];
	r6 = r6 << 16;
	r3 = r3 | r6;
	r6 = r3 << 15;
	r6 = r6 ^ -1;
	r3 = (r3 + r6)|0;
	r6 = r3 >> 10;
	r3 = r6 ^ r3;
	r3 = (r3 * 9)|0;
	r6 = r3 >> 6;
	r3 = r6 ^ r3;
	r6 = r3 << 11;
	r6 = r6 ^ -1;
	r3 = (r3 + r6)|0;
	r6 = r3 >> 16;
	r8 = heap32[(r7+3)];
	r3 = r6 ^ r3;
	r6 = (r8 + -1)|0;
	r3 = r3 & r6;
	r6 = heap32[(r7+11)];
	r3 = r3 << 2;
	r6 = (r6 + r3)|0;
	r6 = r6 >> 2;
	r8 = heap32[(r6)];
	if(r8 ==-1) //_LBB136_29
{
	r0 = _2E_str727;
	r1 = _2E_str121;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 345;
	_assert(i7);
}
else{
	r9 = heap32[(r7+16)];
	if(r8 ==r0) //_LBB136_33
{
__label__ = 31;
}
else{
_38: while(true){
	r10 = r8;
	r8 = r10 << 2;
	r8 = (r9 + r8)|0;
	r11 = r8 >> 2;
	r8 = heap32[(r11)];
if(!(r8 !=r0)) //_LBB136_30
{
break _38;
}
}
	if(r10 ==-1) //_LBB136_33
{
__label__ = 31;
}
else{
	r2 = r2 << 2;
	r2 = (r9 + r2)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2+-1)];
	heap32[(r11)] = r2;
__label__ = 32;
}
}
if (__label__ == 31){
	r0 = r2 << 2;
	r0 = (r9 + r0)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+-1)];
	heap32[(r6)] = r0;
}
	r0 = heap32[(r7+4)];
	r2 = (r0 + r4)|0;
	r4 = r1 << 4;
	r2 = r2 >> 2;
	r0 = (r0 + r4)|0;
	r4 = heap32[(r2+-4)];
	r0 = r0 >> 2;
	heap32[(r0)] = r4;
	r4 = heap32[(r2+-3)];
	heap32[(r0+1)] = r4;
	r4 = heap32[(r2+-2)];
	heap32[(r0+2)] = r4;
	r2 = heap32[(r2+-1)];
	heap32[(r0+3)] = r2;
	r0 = heap32[(r7+11)];
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	r2 = r1 << 2;
	r4 = heap32[(r7+16)];
	r2 = (r4 + r2)|0;
	r0 = heap32[(r0)];
	r2 = r2 >> 2;
	heap32[(r2)] = r0;
	r0 = heap32[(r7+11)];
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r1;
}
}
	r0 = heap32[(r7+2)];
	r0 = (r0 + -1)|0;
	heap32[(r7+2)] = r0;
	r_g0 = r5;
	return;
}
}
else{
	r0 = _2E_str626;
	r1 = _2E_str121;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 300;
	_assert(i7);
}
}
else{
	r0 = _2E_str525;
	r3 = _2E_str121;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 297;
	_assert(i7);
}
}
else{
	r0 = _2E_str424;
	r1 = _2E_str121;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 296;
	_assert(i7);
}
}
}
else{
	r0 = _2E_str222;
	r1 = _2E_str323;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 250;
	_assert(i7);
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = gFindPairs;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r1 = (r1 + 1)|0;
	r4 = r2 >> 2;
	heap32[(r0)] = r1;
	r0 = r3 >> 2;
	r1 = heap32[(r4+3)];
	r0 = heap32[(r0+3)];
	r4 = r1 > r0 ? r2 : r3;
	r0 = r1 > r0 ? r3 : r2;
	r1 = r4 >> 2;
	r1 = heap32[(r1+3)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+3)];
	r2 = r1 << 16;
	r2 = r2 | r0;
	r3 = r2 << 15;
	r3 = r3 ^ -1;
	r2 = (r2 + r3)|0;
	r3 = r2 >> 10;
	r2 = r3 ^ r2;
	r2 = (r2 * 9)|0;
	r3 = r2 >> 6;
	r2 = r3 ^ r2;
	r3 = r2 << 11;
	r4 = heap32[(fp)];
	r3 = r3 ^ -1;
	r4 = r4 >> 2;
	r2 = (r2 + r3)|0;
	r3 = r2 >> 16;
	r5 = heap32[(r4+3)];
	r2 = r3 ^ r2;
	r3 = (r5 + -1)|0;
	r2 = r2 & r3;
	r3 = heap32[(r4+9)];
_1: do {
if(!(r3 <=r2)) //_LBB137_9
{
	r3 = heap32[(r4+11)];
	r2 = r2 << 2;
	r2 = (r3 + r2)|0;
_3: while(true){
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	if(r2 ==-1) //_LBB137_9
{
break _1;
}
else{
	r3 = heap32[(r4+4)];
	r5 = r2 << 4;
	r3 = (r3 + r5)|0;
	r5 = r3 >> 2;
	r6 = heap32[(r5)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+3)];
if(!(r6 !=r0)) //_LBB137_2
{
	r5 = heap32[(r5+1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+3)];
if(!(r5 !=r1)) //_LBB137_2
{
break _3;
}
}
	r3 = heap32[(r4+16)];
	r2 = r2 << 2;
	r2 = (r3 + r2)|0;
}
}
	r0 = heap32[(r4+2)];
	if(r0 >r2) //_LBB137_8
{
	r_g0 = r3;
	return;
}
else{
	r3 = _2E_str222;
	r0 = _2E_str121;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 165;
	_assert(i7);
}
}
} while(0);
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = sp + -24;
	r1 = 1;
	r2 = r0 >> 2;
	heap8[sp+-8] = r1;
	heap32[(r2+3)] = 0;
	r3 = heap32[(fp)];
	heap32[(r2+1)] = 0;
	r4 = r3 >> 2;
	heap32[(r2+2)] = 0;
	r5 = heap32[(r4+2)];
_1: do {
	if(r5 >0) //_LBB138_2
{
	r6 = heap32[(fp+1)];
	r7 = 0;
	r5 = r7;
_3: while(true){
	r8 = heap32[(r4+4)];
	if(r7 ==r5) //_LBB138_5
{
	r9 = 1;
	r10 = r5 << 1;
	r10 = r5 == 0 ? r9 : r10;
if(!(r7 >=r10)) //_LBB138_4
{
	if(r10 !=0) //_LBB138_8
{
	r7 = gNumAlignedAllocs;
	r7 = r7 >> 2;
	r11 = heap32[(r7)];
	r12 = r10 << 4;
	r11 = (r11 + 1)|0;
	r12 = r12 | 3;
	heap32[(r7)] = r11;
	r7 = (r12 + 16)|0;
	heap32[(g0)] = r7;
	malloc(i7);
	r7 = r_g0;
	if(r7 !=0) //_LBB138_10
{
	r11 = 0;
	r12 = (r7 + 4)|0;
	r11 = (r11 - r12)|0;
	r11 = r11 & 15;
	r11 = (r7 + r11)|0;
	r12 = (r11 + 4)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r7;
	r7 = r12;
}
}
else{
	r7 = 0;
}
	if(r5 <1) //_LBB138_13
{
	r13 = heap32[(r2+3)];
}
else{
	r11 = 0;
	r12 = (r11 - r5)|0;
_16: while(true){
	r13 = heap32[(r2+3)];
	r14 = r11 << 4;
	r15 = (r13 - r14)|0;
	r15 = r15 >> 2;
	r14 = (r7 - r14)|0;
	r16 = heap32[(r15)];
	r14 = r14 >> 2;
	heap32[(r14)] = r16;
	r16 = heap32[(r15+1)];
	heap32[(r14+1)] = r16;
	r16 = heap32[(r15+2)];
	heap32[(r14+2)] = r16;
	r15 = heap32[(r15+3)];
	r11 = (r11 + -1)|0;
	heap32[(r14+3)] = r15;
if(!(r12 !=r11)) //_LBB138_14
{
break _16;
}
}
}
	if(r13 !=0) //_LBB138_17
{
	r11 = heapU8[sp+-8];
	if(r11 !=0) //_LBB138_19
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r11 = heap32[(r5)];
	r11 = (r11 + 1)|0;
	r12 = r13 >> 2;
	heap32[(r5)] = r11;
	r5 = heap32[(r12+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r2+1)];
}
	heap32[(r2+3)] = 0;
}
	heap8[sp+-8] = r9;
	heap32[(r2+3)] = r7;
	heap32[(r2+2)] = r10;
}
}
	r7 = r1 << 4;
	r7 = (r8 + r7)|0;
	r7 = r7 >> 2;
	r5 = r5 << 4;
	r8 = heap32[(r2+3)];
	r5 = (r8 + r5)|0;
	r8 = heap32[(r7+-4)];
	r5 = r5 >> 2;
	heap32[(r5)] = r8;
	r8 = heap32[(r7+-3)];
	heap32[(r5+1)] = r8;
	r8 = heap32[(r7+-2)];
	heap32[(r5+2)] = r8;
	r7 = heap32[(r7+-1)];
	heap32[(r5+3)] = r7;
	r5 = heap32[(r2+1)];
	r5 = (r5 + 1)|0;
	heap32[(r2+1)] = r5;
	r7 = heap32[(r4+2)];
	if(r7 <=r1) //_LBB138_24
{
break _3;
}
else{
	r7 = heap32[(r2+2)];
	r1 = (r1 + 1)|0;
}
}
	if(r5 >0) //_LBB138_26
{
	r1 = 0;
_29: while(true){
	r5 = heap32[(r2+3)];
	r7 = r1 << 4;
	r8 = heap32[(r4)];
	r5 = (r5 + r7)|0;
	r5 = r5 >> 2;
	r7 = r8 >> 2;
	r7 = heap32[(r7+3)];
	r8 = heap32[(r5+1)];
	r5 = heap32[(r5)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r5 = heap32[(r2+1)];
	r1 = (r1 + 1)|0;
	if(r5 >r1) //_LBB138_27
{
continue _29;
}
else{
break _1;
}
}
}
}
else{
	r5 = 0;
}
} while(0);
	r1 = heap32[(r4+14)];
	if(r1 >0) //_LBB138_30
{
	r5 = 0;
_35: while(true){
	r1 = r5 << 2;
	r6 = heap32[(r4+16)];
	r1 = (r6 + r1)|0;
	r5 = (r5 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = -1;
	r1 = heap32[(r4+14)];
if(!(r1 >r5)) //_LBB138_31
{
break _35;
}
}
	r5 = heap32[(r2+1)];
}
	if(r5 >1) //_LBB138_35
{
	r5 = (r5 + -1)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r5;
	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
	r5 = heap32[(r2+1)];
}
_42: do {
if(!(r5 <1)) //_LBB138_39
{
	r0 = 0;
_44: while(true){
	r1 = heap32[(r2+3)];
	r5 = r0 << 4;
	r6 = heap32[(r4)];
	r1 = (r1 + r5)|0;
	r1 = r1 >> 2;
	r5 = r6 >> 2;
	r5 = heap32[(r5+2)];
	r6 = heap32[(r1+1)];
	r1 = heap32[(r1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r6;
	r0 = (r0 + 1)|0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r1 = heap32[(r2+1)];
	if(r1 >r0) //_LBB138_38
{
continue _44;
}
else{
break _42;
}
}
}
} while(0);
	r0 = heap32[(r2+3)];
if(!(r0 ==0)) //_LBB138_42
{
	r1 = heapU8[sp+-8];
if(!(r1 ==0)) //_LBB138_42
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r2 = (r2 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r2;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	return;
}

function _ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+2)];
	r3 = heap32[(r1+1)];
	if(r2 ==r3) //_LBB139_2
{
	r4 = 1;
	r5 = r3 << 1;
	r5 = r3 == 0 ? r4 : r5;
	if(r2 >=r5) //_LBB139_1
{
__label__ = 1;
}
else{
	if(r5 !=0) //_LBB139_5
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r6 = heap32[(r2)];
	r7 = r5 << 4;
	r6 = (r6 + 1)|0;
	r7 = r7 | 3;
	heap32[(r2)] = r6;
	r2 = (r7 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r6 = r_g0;
	if(r6 !=0) //_LBB139_7
{
	r2 = 0;
	r7 = (r6 + 4)|0;
	r2 = (r2 - r7)|0;
	r2 = r2 & 15;
	r2 = (r6 + r2)|0;
	r7 = (r2 + 4)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = r6;
	r6 = r7;
}
}
else{
	r6 = 0;
}
	r7 = (r0 + 12)|0;
	if(r3 <1) //_LBB139_10
{
	r2 = r7 >> 2;
	r9 = heap32[(r2)];
}
else{
	r2 = 0;
	r8 = (r2 - r3)|0;
_12: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = r2 << 4;
	r11 = (r9 - r10)|0;
	r11 = r11 >> 2;
	r10 = (r6 - r10)|0;
	r12 = heap32[(r11)];
	r10 = r10 >> 2;
	heap32[(r10)] = r12;
	r12 = heap32[(r11+1)];
	heap32[(r10+1)] = r12;
	r12 = heap32[(r11+2)];
	heap32[(r10+2)] = r12;
	r11 = heap32[(r11+3)];
	r2 = (r2 + -1)|0;
	heap32[(r10+3)] = r11;
if(!(r8 !=r2)) //_LBB139_11
{
break _12;
}
}
	r7 = (r0 + 12)|0;
}
	if(r9 !=0) //_LBB139_15
{
	r2 = heapU8[r0+16];
	if(r2 !=0) //_LBB139_17
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r8 = heap32[(r2)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r2)] = r8;
	r2 = heap32[(r9+-1)];
	heap32[(g0)] = r2;
	free(i7);
	r2 = heap32[(r1+1)];
}
else{
	r2 = r3;
}
	r8 = r7 >> 2;
	heap32[(r8)] = 0;
}
else{
	r2 = r3;
}
	r7 = r7 >> 2;
	heap8[r0+16] = r4;
	heap32[(r7)] = r6;
	heap32[(r1+2)] = r5;
__label__ = 19;
}
}
else{
__label__ = 1;
}
if (__label__ == 1){
	r2 = r3;
}
	r0 = (r2 + 1)|0;
	heap32[(r1+1)] = r0;
	r0 = heap32[(r1+3)];
	r1 = r3 << 4;
	r0 = (r0 + r1)|0;
	r_g0 = r0;
	return;
}

function _ZN28btHashedOverlappingPairCache10growTablesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+9)];
	r3 = heap32[(r1+3)];
_1: do {
if(!(r2 >=r3)) //_LBB140_48
{
_3: do {
if(!(r2 >r3)) //_LBB140_20
{
	r4 = heap32[(r1+10)];
if(!(r4 >=r3)) //_LBB140_18
{
	if(r3 !=0) //_LBB140_5
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r6 = r3 << 2;
	r5 = (r5 + 1)|0;
	r6 = r6 | 3;
	heap32[(r4)] = r5;
	r4 = (r6 + 16)|0;
	heap32[(g0)] = r4;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB140_7
{
	r5 = 0;
	r6 = (r4 + 4)|0;
	r5 = (r5 - r6)|0;
	r5 = r5 & 15;
	r5 = (r4 + r5)|0;
	r6 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
	r4 = r6;
}
}
else{
	r4 = 0;
}
	r5 = (r0 + 44)|0;
	if(r2 <1) //_LBB140_10
{
	r6 = r5 >> 2;
	r7 = heap32[(r6)];
}
else{
	r6 = 0;
_15: while(true){
	r7 = r5 >> 2;
	r7 = heap32[(r7)];
	r8 = r6 << 2;
	r9 = (r7 + r8)|0;
	r9 = r9 >> 2;
	r8 = (r4 + r8)|0;
	r9 = heap32[(r9)];
	r6 = (r6 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r9;
if(!(r2 !=r6)) //_LBB140_11
{
break _15;
}
}
	r5 = (r0 + 44)|0;
}
if(!(r7 ==0)) //_LBB140_17
{
	r6 = heapU8[r0+48];
if(!(r6 ==0)) //_LBB140_16
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r8 = heap32[(r6)];
	r8 = (r8 + 1)|0;
	r7 = r7 >> 2;
	heap32[(r6)] = r8;
	r6 = heap32[(r7+-1)];
	heap32[(g0)] = r6;
	free(i7);
}
	r6 = r5 >> 2;
	heap32[(r6)] = 0;
}
	r6 = 1;
	r5 = r5 >> 2;
	heap8[r0+48] = r6;
	heap32[(r5)] = r4;
	heap32[(r1+10)] = r3;
}
	r4 = r2;
_26: while(true){
	r5 = r4 << 2;
	r6 = heap32[(r1+11)];
	r5 = (r6 + r5)|0;
	r4 = (r4 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = 0;
if(!(r3 !=r4)) //_LBB140_19
{
break _3;
}
}
}
} while(0);
	heap32[(r1+9)] = r3;
	r4 = heap32[(r1+14)];
_29: do {
if(!(r4 >r3)) //_LBB140_39
{
if(!(r4 >=r3)) //_LBB140_39
{
	r5 = heap32[(r1+15)];
if(!(r5 >=r3)) //_LBB140_38
{
	if(r3 !=0) //_LBB140_25
{
	r5 = gNumAlignedAllocs;
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r7 = r3 << 2;
	r6 = (r6 + 1)|0;
	r7 = r7 | 3;
	heap32[(r5)] = r6;
	r5 = (r7 + 16)|0;
	heap32[(g0)] = r5;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB140_27
{
	r6 = 0;
	r7 = (r5 + 4)|0;
	r6 = (r6 - r7)|0;
	r6 = r6 & 15;
	r6 = (r5 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r5;
	r5 = r7;
}
}
else{
	r5 = 0;
}
	r6 = (r0 + 64)|0;
	if(r4 <1) //_LBB140_30
{
	r7 = r6 >> 2;
	r8 = heap32[(r7)];
}
else{
	r7 = 0;
_42: while(true){
	r8 = r6 >> 2;
	r8 = heap32[(r8)];
	r9 = r7 << 2;
	r10 = (r8 + r9)|0;
	r10 = r10 >> 2;
	r9 = (r5 + r9)|0;
	r10 = heap32[(r10)];
	r7 = (r7 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r10;
if(!(r4 !=r7)) //_LBB140_31
{
break _42;
}
}
	r6 = (r0 + 64)|0;
}
if(!(r8 ==0)) //_LBB140_37
{
	r7 = heapU8[r0+68];
if(!(r7 ==0)) //_LBB140_36
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r9 = heap32[(r7)];
	r9 = (r9 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r7)] = r9;
	r7 = heap32[(r8+-1)];
	heap32[(g0)] = r7;
	free(i7);
}
	r7 = r6 >> 2;
	heap32[(r7)] = 0;
}
	r7 = 1;
	r6 = r6 >> 2;
	heap8[r0+68] = r7;
	heap32[(r6)] = r5;
	heap32[(r1+15)] = r3;
	if(r4 >=r3) //_LBB140_39
{
break _29;
}
}
_52: while(true){
	r0 = r4 << 2;
	r5 = heap32[(r1+16)];
	r0 = (r5 + r0)|0;
	r4 = (r4 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
if(!(r3 !=r4)) //_LBB140_38
{
break _29;
}
}
}
}
} while(0);
	heap32[(r1+14)] = r3;
_55: do {
if(!(r3 <1)) //_LBB140_45
{
	r0 = 0;
_57: while(true){
	r4 = r0 << 2;
	r5 = heap32[(r1+11)];
	r4 = (r5 + r4)|0;
	r0 = (r0 + 1)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = -1;
if(!(r3 !=r0)) //_LBB140_41
{
break _57;
}
}
if(!(r3 <1)) //_LBB140_45
{
	r0 = 0;
_61: while(true){
	r4 = r0 << 2;
	r5 = heap32[(r1+16)];
	r4 = (r5 + r4)|0;
	r0 = (r0 + 1)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = -1;
if(!(r3 !=r0)) //_LBB140_44
{
break _55;
}
}
}
}
} while(0);
if(!(r2 <1)) //_LBB140_48
{
	r0 = 0;
_65: while(true){
	r3 = heap32[(r1+4)];
	r4 = r0 << 4;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r4 = heap32[(r3+1)];
	r3 = heap32[(r3)];
	r4 = r4 >> 2;
	r3 = r3 >> 2;
	r4 = heap32[(r4+3)];
	r4 = r4 << 16;
	r3 = heap32[(r3+3)];
	r3 = r4 | r3;
	r4 = r3 << 15;
	r4 = r4 ^ -1;
	r3 = (r3 + r4)|0;
	r4 = r3 >> 10;
	r3 = r4 ^ r3;
	r3 = (r3 * 9)|0;
	r4 = r3 >> 6;
	r3 = r4 ^ r3;
	r4 = r3 << 11;
	r4 = r4 ^ -1;
	r3 = (r3 + r4)|0;
	r4 = r3 >> 16;
	r5 = heap32[(r1+3)];
	r3 = r4 ^ r3;
	r4 = (r5 + -1)|0;
	r3 = r3 & r4;
	r3 = r3 << 2;
	r4 = heap32[(r1+11)];
	r4 = (r4 + r3)|0;
	r4 = r4 >> 2;
	r5 = r0 << 2;
	r6 = heap32[(r1+16)];
	r5 = (r6 + r5)|0;
	r4 = heap32[(r4)];
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
	r4 = heap32[(r1+11)];
	r3 = (r4 + r3)|0;
	r4 = (r0 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r0;
	r0 = r4;
	if(r2 !=r4) //_LBB140_47
{
continue _65;
}
else{
break _1;
}
}
}
}
} while(0);
	return;
}

function _ZN28btHashedOverlappingPairCacheC1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV28btHashedOverlappingPairCache;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	r3 = 1;
	heap32[(r2)] = r1;
	heap8[r0+20] = r3;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	r1 = 0;
	heap32[(r2+6)] = 0;
	heap8[r0+28] = r1;
	heap8[r0+48] = r3;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	heap8[r0+68] = r3;
	heap32[(r2+16)] = 0;
	heap32[(r2+14)] = 0;
	r4 = gNumAlignedAllocs;
	heap32[(r2+15)] = 0;
	r4 = r4 >> 2;
	heap32[(r2+18)] = 0;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	heap32[(r4)] = r5;
	heap32[(g0)] = 51;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB141_2
{
	r5 = (r4 + 4)|0;
	r1 = (r1 - r5)|0;
	r1 = r1 & 15;
	r1 = (r4 + r1)|0;
	r5 = (r1 + 4)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = r4;
	r4 = r5;
}
	heap8[r0+20] = r3;
	heap32[(r2+4)] = r4;
	heap32[(r2+3)] = 2;
	heap32[(g0)] = r0;
	_ZN28btHashedOverlappingPairCache10growTablesEv(i7);
	return;
}

function _ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 84;
	r_g0 = r0;
	return;
}

function _ZNK14btQuantizedBvh9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r0 = r0 >> 2;
	r2 = r1 >> 2;
	heap32[(r0+4)] = heap32[(r2+5)];
	heap32[(r0+5)] = heap32[(r2+6)];
	heap32[(r0+6)] = heap32[(r2+7)];
	heap32[(r0+7)] = heap32[(r2+8)];
	heap32[(r0)] = heap32[(r2+1)];
	heap32[(r0+1)] = heap32[(r2+2)];
	heap32[(r0+2)] = heap32[(r2+3)];
	heap32[(r0+3)] = heap32[(r2+4)];
	heap32[(r0+8)] = heap32[(r2+9)];
	heap32[(r0+9)] = heap32[(r2+10)];
	heap32[(r0+10)] = heap32[(r2+11)];
	heap32[(r0+11)] = heap32[(r2+12)];
	r3 = heap32[(r2+14)];
	heap32[(r0+12)] = r3;
	r1 = heapU8[r1+60];
	heap32[(r0+13)] = r1;
	r1 = heap32[(r2+22)];
	r3 = heap32[(fp+2)];
	heap32[(r0+14)] = r1;
	r1 = heap32[(r2+22)];
	if(r1 !=0) //_LBB143_2
{
	r1 = r3 >> 2;
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	r5 = heap32[(r2+24)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	heap32[(r0+16)] = r4;
if(!(r4 ==0)) //_LBB143_7
{
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r5 = heap32[(r2+22)];
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 48;
	heap32[(g0+2)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
if(!(r5 <1)) //_LBB143_6
{
	r6 = r4 >> 2;
	r7 = 0;
	r6 = heap32[(r6+2)];
	r5 = (r7 - r5)|0;
_6: while(true){
	r8 = (r7 * -12)|0;
	r8 = r8 << 2;
	r9 = r7 << 6;
	r10 = heap32[(r2+24)];
	r8 = (r6 + r8)|0;
	r10 = (r10 - r9)|0;
	r8 = r8 >> 2;
	r10 = r10 >> 2;
	heap32[(r8+4)] = heap32[(r10+4)];
	heap32[(r8+5)] = heap32[(r10+5)];
	heap32[(r8+6)] = heap32[(r10+6)];
	heap32[(r8+7)] = heap32[(r10+7)];
	r10 = heap32[(r2+24)];
	r10 = (r10 - r9)|0;
	r10 = r10 >> 2;
	heap32[(r8)] = heap32[(r10)];
	heap32[(r8+1)] = heap32[(r10+1)];
	heap32[(r8+2)] = heap32[(r10+2)];
	heap32[(r8+3)] = heap32[(r10+3)];
	r10 = heap32[(r2+24)];
	r10 = (r10 - r9)|0;
	r10 = r10 >> 2;
	r10 = heap32[(r10+8)];
	heap32[(r8+8)] = r10;
	r10 = heap32[(r2+24)];
	r10 = (r10 - r9)|0;
	r10 = r10 >> 2;
	r10 = heap32[(r10+9)];
	heap32[(r8+9)] = r10;
	r10 = heap32[(r2+24)];
	r9 = (r10 - r9)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9+10)];
	r7 = (r7 + -1)|0;
	heap32[(r8+10)] = r9;
if(!(r5 !=r7)) //_LBB143_5
{
break _6;
}
}
}
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	r5 = heap32[(r2+24)];
	r6 = _2E_str32;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r5;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
}
else{
	heap32[(r0+16)] = 0;
}
	r1 = heap32[(r2+32)];
	heap32[(r0+15)] = r1;
	r1 = heap32[(r2+32)];
	if(r1 !=0) //_LBB143_9
{
	r1 = r3 >> 2;
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	r5 = heap32[(r2+34)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	heap32[(r0+17)] = r4;
if(!(r4 ==0)) //_LBB143_14
{
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r5 = heap32[(r2+32)];
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 16;
	heap32[(g0+2)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
_14: do {
if(!(r5 <1)) //_LBB143_13
{
	r6 = r4 >> 2;
	r7 = 0;
	r6 = heap32[(r6+2)];
	r5 = (r7 - r5)|0;
_16: while(true){
	r8 = r7 << 4;
	r9 = heap32[(r2+34)];
	r9 = (r9 - r8)|0;
	r9 = r9 >> 2;
	r10 = (r6 - r8)|0;
	r9 = heap32[(r9+3)];
	r11 = r10 >> 2;
	heap32[(r11+3)] = r9;
	r9 = heap32[(r2+34)];
	r9 = (r9 - r8)|0;
	r9 = heapU16[(r9+6)>>1];
	heap16[(r10+6)>>1] = r9;
	r9 = heap32[(r2+34)];
	r9 = (r9 - r8)|0;
	r9 = heapU16[(r9+8)>>1];
	heap16[(r10+8)>>1] = r9;
	r9 = heap32[(r2+34)];
	r9 = (r9 - r8)|0;
	r9 = heapU16[(r9+10)>>1];
	heap16[(r10+10)>>1] = r9;
	r9 = heap32[(r2+34)];
	r9 = (r9 - r8)|0;
	r9 = heapU16[(r9)>>1];
	heap16[(r10)>>1] = r9;
	r9 = heap32[(r2+34)];
	r9 = (r9 - r8)|0;
	r9 = heapU16[(r9+2)>>1];
	heap16[(r10+2)>>1] = r9;
	r9 = heap32[(r2+34)];
	r8 = (r9 - r8)|0;
	r8 = heapU16[(r8+4)>>1];
	r7 = (r7 + -1)|0;
	heap16[(r10+4)>>1] = r8;
if(!(r5 !=r7)) //_LBB143_12
{
break _14;
}
}
}
} while(0);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	r5 = heap32[(r2+34)];
	r6 = _2E_str133;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r5;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
}
else{
	heap32[(r0+17)] = 0;
}
	r1 = heap32[(r2+36)];
	heap32[(r0+19)] = r1;
	r1 = heap32[(r2+38)];
	heap32[(r0+20)] = r1;
	r1 = heap32[(r2+38)];
	if(r1 !=0) //_LBB143_16
{
	r1 = r3 >> 2;
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	r5 = heap32[(r2+40)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	heap32[(r0+18)] = r4;
if(!(r4 ==0)) //_LBB143_21
{
	r0 = heap32[(r1)];
	r0 = r0 >> 2;
	r4 = heap32[(r2+38)];
	r0 = heap32[(r0+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 20;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	r0 = r_g0;
_24: do {
if(!(r4 <1)) //_LBB143_20
{
	r5 = r0 >> 2;
	r6 = 0;
	r5 = heap32[(r5+2)];
	r4 = (r6 - r4)|0;
_26: while(true){
	r7 = r6 << 5;
	r8 = heap32[(r2+40)];
	r9 = (r6 * -10)|0;
	r8 = (r8 - r7)|0;
	r8 = heapU16[(r8+6)>>1];
	r9 = r9 << 1;
	r9 = (r5 + r9)|0;
	heap16[(r9+14)>>1] = r8;
	r8 = heap32[(r2+40)];
	r8 = (r8 - r7)|0;
	r8 = heapU16[(r8+8)>>1];
	heap16[(r9+16)>>1] = r8;
	r8 = heap32[(r2+40)];
	r8 = (r8 - r7)|0;
	r8 = heapU16[(r8+10)>>1];
	heap16[(r9+18)>>1] = r8;
	r8 = heap32[(r2+40)];
	r8 = (r8 - r7)|0;
	r8 = heapU16[(r8)>>1];
	heap16[(r9+8)>>1] = r8;
	r8 = heap32[(r2+40)];
	r8 = (r8 - r7)|0;
	r8 = heapU16[(r8+2)>>1];
	heap16[(r9+10)>>1] = r8;
	r8 = heap32[(r2+40)];
	r8 = (r8 - r7)|0;
	r8 = heapU16[(r8+4)>>1];
	heap16[(r9+12)>>1] = r8;
	r8 = heap32[(r2+40)];
	r9 = (r6 * -5)|0;
	r8 = (r8 - r7)|0;
	r9 = r9 << 2;
	r8 = r8 >> 2;
	r9 = (r5 + r9)|0;
	r8 = heap32[(r8+3)];
	r9 = r9 >> 2;
	heap32[(r9)] = r8;
	r8 = heap32[(r2+40)];
	r7 = (r8 - r7)|0;
	r7 = r7 >> 2;
	r7 = heap32[(r7+4)];
	r6 = (r6 + -1)|0;
	heap32[(r9+1)] = r7;
if(!(r4 !=r6)) //_LBB143_19
{
break _24;
}
}
}
} while(0);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	r2 = heap32[(r2+40)];
	r4 = _2E_str234;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
}
else{
	heap32[(r0+18)] = 0;
}
	r0 = _2E_str335;
	r_g0 = r0;
	return;
}

function _ZN14btQuantizedBvhD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	heap32[(g0)] = r0;
	_ZN14btQuantizedBvhD2Ev(i7);
	return;
}

function _ZN14btQuantizedBvhD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14btQuantizedBvh;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+40)];
if(!(r1 ==0)) //_LBB145_4
{
	r3 = heapU8[r0+164];
if(!(r3 ==0)) //_LBB145_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+40)] = 0;
}
	r1 = 1;
	heap8[r0+164] = r1;
	heap32[(r2+40)] = 0;
	heap32[(r2+38)] = 0;
	heap32[(r2+39)] = 0;
	r3 = heap32[(r2+34)];
if(!(r3 ==0)) //_LBB145_8
{
	r4 = heapU8[r0+140];
if(!(r4 ==0)) //_LBB145_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+34)] = 0;
}
	heap8[r0+140] = r1;
	heap32[(r2+34)] = 0;
	heap32[(r2+32)] = 0;
	heap32[(r2+33)] = 0;
	r3 = heap32[(r2+29)];
if(!(r3 ==0)) //_LBB145_12
{
	r4 = heapU8[r0+120];
if(!(r4 ==0)) //_LBB145_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+29)] = 0;
}
	heap8[r0+120] = r1;
	heap32[(r2+29)] = 0;
	heap32[(r2+27)] = 0;
	heap32[(r2+28)] = 0;
	r3 = heap32[(r2+24)];
if(!(r3 ==0)) //_LBB145_16
{
	r4 = heapU8[r0+100];
if(!(r4 ==0)) //_LBB145_15
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+24)] = 0;
}
	heap8[r0+100] = r1;
	heap32[(r2+24)] = 0;
	heap32[(r2+22)] = 0;
	heap32[(r2+23)] = 0;
	r3 = heap32[(r2+19)];
if(!(r3 ==0)) //_LBB145_20
{
	r4 = heapU8[r0+80];
if(!(r4 ==0)) //_LBB145_19
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+19)] = 0;
}
	heap8[r0+80] = r1;
	heap32[(r2+19)] = 0;
	heap32[(r2+17)] = 0;
	heap32[(r2+18)] = 0;
if(!(r0 ==0)) //_LBB145_22
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZNK14btQuantizedBvh9serializeEPvjb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+38)];
	r3 = heap32[(r1+42)];
	if(r3 ==r2) //_LBB146_2
{
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+3)];
	r5 = _ZTV14btQuantizedBvh;
	r6 = r3 >> 2;
	r5 = (r5 + 8)|0;
	heap32[(r1+42)] = r2;
	heap32[(r6)] = r5;
	r2 = 0;
	heap32[(r6+13)] = 277;
	r5 = 1;
	heap8[r3+60] = r2;
	heap8[r3+80] = r5;
	heap32[(r6+19)] = 0;
	heap32[(r6+17)] = 0;
	heap32[(r6+18)] = 0;
	heap8[r3+100] = r5;
	heap32[(r6+24)] = 0;
	heap32[(r6+22)] = 0;
	heap32[(r6+23)] = 0;
	heap8[r3+120] = r5;
	heap32[(r6+29)] = 0;
	heap32[(r6+27)] = 0;
	heap32[(r6+28)] = 0;
	heap8[r3+140] = r5;
	heap32[(r6+34)] = 0;
	heap32[(r6+32)] = 0;
	heap32[(r6+33)] = 0;
	heap32[(r6+36)] = 0;
	heap8[r3+164] = r5;
	heap32[(r6+40)] = 0;
	heap32[(r6+38)] = 0;
	heap32[(r6+39)] = 0;
	heap32[(r6+42)] = 0;
	heap32[(r6+1)] = -8388609;
	heap32[(r6+2)] = -8388609;
	heap32[(r6+3)] = -8388609;
	heap32[(r6+4)] = 0;
	heap32[(r6+5)] = 2139095039;
	heap32[(r6+6)] = 2139095039;
	heap32[(r6+7)] = 2139095039;
	heap32[(r6+8)] = 0;
	r7 = heap32[(r1+14)];
	if(r4 ==0) //_LBB146_4
{
	heap32[(r6+14)] = r7;
	heap32[(r6+1)] = heap32[(r1+1)];
	heap32[(r6+2)] = heap32[(r1+2)];
	heap32[(r6+3)] = heap32[(r1+3)];
	heap32[(r6+4)] = heap32[(r1+4)];
	heap32[(r6+5)] = heap32[(r1+5)];
	heap32[(r6+6)] = heap32[(r1+6)];
	heap32[(r6+7)] = heap32[(r1+7)];
	heap32[(r6+8)] = heap32[(r1+8)];
	heap32[(r6+9)] = heap32[(r1+9)];
	heap32[(r6+10)] = heap32[(r1+10)];
	heap32[(r6+11)] = heap32[(r1+11)];
	heap32[(r6+12)] = heap32[(r1+12)];
	r7 = heap32[(r1+36)];
	heap32[(r6+36)] = r7;
	r7 = heap32[(r1+42)];
}
else{
	r8 = r7 << 8;
	r9 = r7 >>> 8;
	r10 = r7 << 24;
	r8 = r8 & 16711680;
	r9 = r9 & 65280;
	r7 = r7 >>> 24;
	r8 = r10 | r8;
	r7 = r9 | r7;
	r7 = r8 | r7;
	heap32[(r6+14)] = r7;
	r7 = heapU8[r0+7];
	heap8[r3+4] = r7;
	r7 = heapU8[r0+6];
	heap8[r3+5] = r7;
	r7 = heapU8[r0+5];
	heap8[r3+6] = r7;
	r7 = heapU8[r0+4];
	heap8[r3+7] = r7;
	r7 = heapU8[r0+11];
	heap8[r3+8] = r7;
	r7 = heapU8[r0+10];
	heap8[r3+9] = r7;
	r7 = heapU8[r0+9];
	heap8[r3+10] = r7;
	r7 = heapU8[r0+8];
	heap8[r3+11] = r7;
	r7 = heapU8[r0+15];
	heap8[r3+12] = r7;
	r7 = heapU8[r0+14];
	heap8[r3+13] = r7;
	r7 = heapU8[r0+13];
	heap8[r3+14] = r7;
	r7 = heapU8[r0+12];
	heap8[r3+15] = r7;
	r7 = heapU8[r0+19];
	heap8[r3+16] = r7;
	r7 = heapU8[r0+18];
	heap8[r3+17] = r7;
	r7 = heapU8[r0+17];
	heap8[r3+18] = r7;
	r7 = heapU8[r0+16];
	heap8[r3+19] = r7;
	r7 = heapU8[r0+23];
	heap8[r3+20] = r7;
	r7 = heapU8[r0+22];
	heap8[r3+21] = r7;
	r7 = heapU8[r0+21];
	heap8[r3+22] = r7;
	r7 = heapU8[r0+20];
	heap8[r3+23] = r7;
	r7 = heapU8[r0+27];
	heap8[r3+24] = r7;
	r7 = heapU8[r0+26];
	heap8[r3+25] = r7;
	r7 = heapU8[r0+25];
	heap8[r3+26] = r7;
	r7 = heapU8[r0+24];
	heap8[r3+27] = r7;
	r7 = heapU8[r0+31];
	heap8[r3+28] = r7;
	r7 = heapU8[r0+30];
	heap8[r3+29] = r7;
	r7 = heapU8[r0+29];
	heap8[r3+30] = r7;
	r7 = heapU8[r0+28];
	heap8[r3+31] = r7;
	r7 = heapU8[r0+35];
	heap8[r3+32] = r7;
	r7 = heapU8[r0+34];
	heap8[r3+33] = r7;
	r7 = heapU8[r0+33];
	heap8[r3+34] = r7;
	r7 = heapU8[r0+32];
	heap8[r3+35] = r7;
	r7 = heapU8[r0+39];
	heap8[r3+36] = r7;
	r7 = heapU8[r0+38];
	heap8[r3+37] = r7;
	r7 = heapU8[r0+37];
	heap8[r3+38] = r7;
	r7 = heapU8[r0+36];
	heap8[r3+39] = r7;
	r7 = heapU8[r0+43];
	heap8[r3+40] = r7;
	r7 = heapU8[r0+42];
	heap8[r3+41] = r7;
	r7 = heapU8[r0+41];
	heap8[r3+42] = r7;
	r7 = heapU8[r0+40];
	heap8[r3+43] = r7;
	r7 = heapU8[r0+47];
	heap8[r3+44] = r7;
	r7 = heapU8[r0+46];
	heap8[r3+45] = r7;
	r7 = heapU8[r0+45];
	heap8[r3+46] = r7;
	r7 = heapU8[r0+44];
	heap8[r3+47] = r7;
	r7 = heapU8[r0+51];
	heap8[r3+48] = r7;
	r7 = heapU8[r0+50];
	heap8[r3+49] = r7;
	r7 = heapU8[r0+49];
	heap8[r3+50] = r7;
	r7 = heapU8[r0+48];
	heap8[r3+51] = r7;
	r7 = heap32[(r1+36)];
	r8 = r7 << 8;
	r9 = r7 >>> 8;
	r10 = r7 << 24;
	r8 = r8 & 16711680;
	r9 = r9 & 65280;
	r7 = r7 >>> 24;
	r8 = r10 | r8;
	r7 = r9 | r7;
	r7 = r8 | r7;
	heap32[(r6+36)] = r7;
	r7 = heap32[(r1+42)];
	r8 = r7 << 8;
	r9 = r7 >>> 8;
	r10 = r7 << 24;
	r8 = r8 & 16711680;
	r9 = r9 & 65280;
	r7 = r7 >>> 24;
	r8 = r10 | r8;
	r7 = r9 | r7;
	r7 = r8 | r7;
}
	heap32[(r6+42)] = r7;
	r7 = heapU8[r0+60];
	heap8[r3+60] = r7;
	r7 = (r3 + 172)|0;
	r8 = heap32[(r1+14)];
	r0 = heapU8[r0+60];
	if(r0 ==0) //_LBB146_20
{
	r0 = 0;
	heap8[r3+100] = r0;
	heap32[(r6+24)] = r7;
	heap32[(r6+22)] = r8;
	heap32[(r6+23)] = r8;
_9: do {
	if(r4 !=0) //_LBB146_22
{
if(!(r8 <1)) //_LBB146_29
{
	r5 = (r5 - r8)|0;
_12: while(true){
	r2 = r0 << 6;
	r9 = heap32[(r1+24)];
	r9 = (r9 - r2)|0;
	r10 = heapU8[r9+3];
	r7 = (r7 - r2)|0;
	heap8[r7] = r10;
	r10 = heapU8[r9+2];
	heap8[r7+1] = r10;
	r10 = heapU8[r9+1];
	heap8[r7+2] = r10;
	r10 = heapU8[r9];
	heap8[r7+3] = r10;
	r10 = heapU8[r9+7];
	heap8[r7+4] = r10;
	r10 = heapU8[r9+6];
	heap8[r7+5] = r10;
	r10 = heapU8[r9+5];
	heap8[r7+6] = r10;
	r10 = heapU8[r9+4];
	heap8[r7+7] = r10;
	r10 = heapU8[r9+11];
	heap8[r7+8] = r10;
	r10 = heapU8[r9+10];
	heap8[r7+9] = r10;
	r10 = heapU8[r9+9];
	heap8[r7+10] = r10;
	r10 = heapU8[r9+8];
	heap8[r7+11] = r10;
	r10 = heapU8[r9+15];
	heap8[r7+12] = r10;
	r10 = heapU8[r9+14];
	heap8[r7+13] = r10;
	r10 = heapU8[r9+13];
	heap8[r7+14] = r10;
	r9 = heapU8[r9+12];
	heap8[r7+15] = r9;
	r7 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r9 = heap32[(r6+24)];
	r10 = heapU8[r7+19];
	r9 = (r9 - r2)|0;
	heap8[r9+16] = r10;
	r10 = heapU8[r7+18];
	heap8[r9+17] = r10;
	r10 = heapU8[r7+17];
	heap8[r9+18] = r10;
	r10 = heapU8[r7+16];
	heap8[r9+19] = r10;
	r10 = heapU8[r7+23];
	heap8[r9+20] = r10;
	r10 = heapU8[r7+22];
	heap8[r9+21] = r10;
	r10 = heapU8[r7+21];
	heap8[r9+22] = r10;
	r10 = heapU8[r7+20];
	heap8[r9+23] = r10;
	r10 = heapU8[r7+27];
	heap8[r9+24] = r10;
	r10 = heapU8[r7+26];
	heap8[r9+25] = r10;
	r10 = heapU8[r7+25];
	heap8[r9+26] = r10;
	r10 = heapU8[r7+24];
	heap8[r9+27] = r10;
	r10 = heapU8[r7+31];
	heap8[r9+28] = r10;
	r10 = heapU8[r7+30];
	heap8[r9+29] = r10;
	r10 = heapU8[r7+29];
	heap8[r9+30] = r10;
	r7 = heapU8[r7+28];
	heap8[r9+31] = r7;
	r7 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r7 = r7 >> 2;
	r7 = heap32[(r7+8)];
	r9 = r7 << 8;
	r10 = r7 >>> 8;
	r11 = heap32[(r6+24)];
	r12 = r7 << 24;
	r9 = r9 & 16711680;
	r10 = r10 & 65280;
	r7 = r7 >>> 24;
	r11 = (r11 - r2)|0;
	r9 = r12 | r9;
	r7 = r10 | r7;
	r10 = r11 >> 2;
	r7 = r9 | r7;
	heap32[(r10+8)] = r7;
	r7 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r7 = r7 >> 2;
	r7 = heap32[(r7+9)];
	r9 = r7 << 8;
	r10 = r7 >>> 8;
	r11 = heap32[(r6+24)];
	r12 = r7 << 24;
	r9 = r9 & 16711680;
	r10 = r10 & 65280;
	r7 = r7 >>> 24;
	r11 = (r11 - r2)|0;
	r9 = r12 | r9;
	r7 = r10 | r7;
	r10 = r11 >> 2;
	r7 = r9 | r7;
	heap32[(r10+9)] = r7;
	r7 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r7 = r7 >> 2;
	r7 = heap32[(r7+10)];
	r9 = r7 << 8;
	r10 = r7 >>> 8;
	r11 = heap32[(r6+24)];
	r12 = r7 << 24;
	r9 = r9 & 16711680;
	r10 = r10 & 65280;
	r7 = r7 >>> 24;
	r2 = (r11 - r2)|0;
	r9 = r12 | r9;
	r7 = r10 | r7;
	r2 = r2 >> 2;
	r7 = r9 | r7;
	heap32[(r2+10)] = r7;
	if(r5 ==r0) //_LBB146_29
{
break _9;
}
else{
	r7 = heap32[(r6+24)];
	r0 = (r0 + -1)|0;
}
}
}
}
else{
	if(r8 >0) //_LBB146_26
{
	r5 = (r5 - r8)|0;
	r0 = 0;
_17: while(true){
	r2 = r0 << 6;
	r9 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r9 = (r9 - r2)|0;
	r7 = r7 >> 2;
	r9 = r9 >> 2;
	heap32[(r7)] = heap32[(r9)];
	heap32[(r7+1)] = heap32[(r9+1)];
	heap32[(r7+2)] = heap32[(r9+2)];
	heap32[(r7+3)] = heap32[(r9+3)];
	r7 = heap32[(r6+24)];
	r9 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r9 = (r9 - r2)|0;
	r7 = r7 >> 2;
	r9 = r9 >> 2;
	heap32[(r7+4)] = heap32[(r9+4)];
	heap32[(r7+5)] = heap32[(r9+5)];
	heap32[(r7+6)] = heap32[(r9+6)];
	heap32[(r7+7)] = heap32[(r9+7)];
	r7 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r7 = r7 >> 2;
	r9 = heap32[(r6+24)];
	r9 = (r9 - r2)|0;
	r7 = heap32[(r7+8)];
	r9 = r9 >> 2;
	heap32[(r9+8)] = r7;
	r7 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r7 = r7 >> 2;
	r9 = heap32[(r6+24)];
	r9 = (r9 - r2)|0;
	r7 = heap32[(r7+9)];
	r9 = r9 >> 2;
	heap32[(r9+9)] = r7;
	r7 = heap32[(r1+24)];
	r7 = (r7 - r2)|0;
	r7 = r7 >> 2;
	r9 = heap32[(r6+24)];
	r2 = (r9 - r2)|0;
	r7 = heap32[(r7+10)];
	r2 = r2 >> 2;
	heap32[(r2+10)] = r7;
	if(r5 ==r0) //_LBB146_29
{
break _9;
}
else{
	r7 = heap32[(r6+24)];
	r0 = (r0 + -1)|0;
}
}
}
}
} while(0);
	r5 = heap32[(r6+24)];
if(!(r5 ==0)) //_LBB146_33
{
	r0 = heapU8[r3+100];
if(!(r0 ==0)) //_LBB146_32
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r2 = heap32[(r0)];
	r2 = (r2 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r0)] = r2;
	r5 = heap32[(r5+-1)];
	heap32[(g0)] = r5;
	free(i7);
}
	heap32[(r6+24)] = 0;
}
	r5 = r8 << 6;
	r0 = 0;
	heap8[r3+100] = r0;
	heap32[(r6+24)] = 0;
	heap32[(r6+22)] = 0;
	heap32[(r6+23)] = 0;
}
else{
	heap8[r3+140] = r2;
	heap32[(r6+34)] = r7;
	heap32[(r6+32)] = r8;
	heap32[(r6+33)] = r8;
_28: do {
	if(r4 !=0) //_LBB146_8
{
if(!(r8 <1)) //_LBB146_15
{
	r5 = (r5 - r8)|0;
_31: while(true){
	r0 = heap32[(r1+34)];
	r9 = r2 << 4;
	r0 = (r0 - r9)|0;
	r0 = heapU16[(r0)>>1];
	r10 = r0 << 8;
	r0 = r0 << 24;
	r10 = r10 & 16711680;
	r0 = r0 | r10;
	r7 = (r7 - r9)|0;
	r0 = r0 >>> 16;
	heap16[(r7)>>1] = r0;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r9)|0;
	r7 = heapU16[(r7+2)>>1];
	r0 = r7 << 8;
	r7 = r7 << 24;
	r0 = r0 & 16711680;
	r10 = heap32[(r6+34)];
	r7 = r7 | r0;
	r0 = (r10 - r9)|0;
	r7 = r7 >>> 16;
	heap16[(r0+2)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r9)|0;
	r7 = heapU16[(r7+4)>>1];
	r0 = r7 << 8;
	r7 = r7 << 24;
	r0 = r0 & 16711680;
	r10 = heap32[(r6+34)];
	r7 = r7 | r0;
	r0 = (r10 - r9)|0;
	r7 = r7 >>> 16;
	heap16[(r0+4)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r9)|0;
	r7 = heapU16[(r7+6)>>1];
	r0 = r7 << 8;
	r7 = r7 << 24;
	r0 = r0 & 16711680;
	r10 = heap32[(r6+34)];
	r7 = r7 | r0;
	r0 = (r10 - r9)|0;
	r7 = r7 >>> 16;
	heap16[(r0+6)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r9)|0;
	r7 = heapU16[(r7+8)>>1];
	r0 = r7 << 8;
	r7 = r7 << 24;
	r0 = r0 & 16711680;
	r10 = heap32[(r6+34)];
	r7 = r7 | r0;
	r0 = (r10 - r9)|0;
	r7 = r7 >>> 16;
	heap16[(r0+8)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r9)|0;
	r7 = heapU16[(r7+10)>>1];
	r0 = r7 << 8;
	r7 = r7 << 24;
	r0 = r0 & 16711680;
	r10 = heap32[(r6+34)];
	r7 = r7 | r0;
	r0 = (r10 - r9)|0;
	r7 = r7 >>> 16;
	heap16[(r0+10)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r9)|0;
	r7 = r7 >> 2;
	r7 = heap32[(r7+3)];
	r0 = r7 << 8;
	r10 = r7 >>> 8;
	r11 = heap32[(r6+34)];
	r12 = r7 << 24;
	r0 = r0 & 16711680;
	r10 = r10 & 65280;
	r7 = r7 >>> 24;
	r9 = (r11 - r9)|0;
	r0 = r12 | r0;
	r7 = r10 | r7;
	r9 = r9 >> 2;
	r7 = r0 | r7;
	heap32[(r9+3)] = r7;
	if(r5 ==r2) //_LBB146_15
{
break _28;
}
else{
	r7 = heap32[(r6+34)];
	r2 = (r2 + -1)|0;
}
}
}
}
else{
	if(r8 >0) //_LBB146_12
{
	r5 = (r5 - r8)|0;
	r0 = 0;
_36: while(true){
	r2 = r0 << 4;
	r9 = heap32[(r1+34)];
	r9 = (r9 - r2)|0;
	r9 = heapU16[(r9)>>1];
	r7 = (r7 - r2)|0;
	heap16[(r7)>>1] = r9;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r2)|0;
	r9 = heap32[(r6+34)];
	r7 = heapU16[(r7+2)>>1];
	r9 = (r9 - r2)|0;
	heap16[(r9+2)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r2)|0;
	r9 = heap32[(r6+34)];
	r7 = heapU16[(r7+4)>>1];
	r9 = (r9 - r2)|0;
	heap16[(r9+4)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r2)|0;
	r9 = heap32[(r6+34)];
	r7 = heapU16[(r7+6)>>1];
	r9 = (r9 - r2)|0;
	heap16[(r9+6)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r2)|0;
	r9 = heap32[(r6+34)];
	r7 = heapU16[(r7+8)>>1];
	r9 = (r9 - r2)|0;
	heap16[(r9+8)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r2)|0;
	r9 = heap32[(r6+34)];
	r7 = heapU16[(r7+10)>>1];
	r9 = (r9 - r2)|0;
	heap16[(r9+10)>>1] = r7;
	r7 = heap32[(r1+34)];
	r7 = (r7 - r2)|0;
	r7 = r7 >> 2;
	r9 = heap32[(r6+34)];
	r2 = (r9 - r2)|0;
	r7 = heap32[(r7+3)];
	r2 = r2 >> 2;
	heap32[(r2+3)] = r7;
	if(r5 ==r0) //_LBB146_15
{
break _28;
}
else{
	r7 = heap32[(r6+34)];
	r0 = (r0 + -1)|0;
}
}
}
}
} while(0);
	r5 = heap32[(r6+34)];
if(!(r5 ==0)) //_LBB146_19
{
	r7 = heapU8[r3+140];
if(!(r7 ==0)) //_LBB146_18
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r0 = heap32[(r7)];
	r0 = (r0 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r7)] = r0;
	r5 = heap32[(r5+-1)];
	heap32[(g0)] = r5;
	free(i7);
}
	heap32[(r6+34)] = 0;
}
	r5 = r8 << 4;
	r7 = 0;
	heap8[r3+140] = r7;
	heap32[(r6+34)] = 0;
	heap32[(r6+32)] = 0;
	heap32[(r6+33)] = 0;
}
	r0 = heap32[(r6+40)];
	r2 = heap32[(r1+42)];
if(!(r0 ==0)) //_LBB146_38
{
	r7 = heapU8[r3+164];
if(!(r7 ==0)) //_LBB146_37
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r8 = heap32[(r7)];
	r8 = (r8 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r7)] = r8;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	heap32[(r6+40)] = 0;
}
	r0 = (r5 + r3)|0;
	r0 = (r0 + 172)|0;
	r5 = 0;
	heap8[r3+164] = r5;
	heap32[(r6+40)] = r0;
	heap32[(r6+38)] = r2;
	heap32[(r6+39)] = r2;
	r2 = heap32[(r1+42)];
_53: do {
	if(r4 !=0) //_LBB146_40
{
if(!(r2 <1)) //_LBB146_46
{
__label__ = 41; //SET chanka
_55: while(true){
	r2 = r5 << 5;
	r4 = heap32[(r1+40)];
	r4 = heapU16[(r4+r2)>>1];
	r7 = r4 << 8;
	r4 = r4 << 24;
	r7 = r7 & 16711680;
	r4 = r4 | r7;
	r4 = r4 >>> 16;
	heap16[(r0+r2)>>1] = r4;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r2)|0;
	r0 = heapU16[(r0+2)>>1];
	r4 = r0 << 8;
	r0 = r0 << 24;
	r4 = r4 & 16711680;
	r7 = heap32[(r6+40)];
	r0 = r0 | r4;
	r4 = (r7 + r2)|0;
	r0 = r0 >>> 16;
	heap16[(r4+2)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r2)|0;
	r0 = heapU16[(r0+4)>>1];
	r4 = r0 << 8;
	r0 = r0 << 24;
	r4 = r4 & 16711680;
	r7 = heap32[(r6+40)];
	r0 = r0 | r4;
	r4 = (r7 + r2)|0;
	r0 = r0 >>> 16;
	heap16[(r4+4)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r2)|0;
	r0 = heapU16[(r0+6)>>1];
	r4 = r0 << 8;
	r0 = r0 << 24;
	r4 = r4 & 16711680;
	r7 = heap32[(r6+40)];
	r0 = r0 | r4;
	r4 = (r7 + r2)|0;
	r0 = r0 >>> 16;
	heap16[(r4+6)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r2)|0;
	r0 = heapU16[(r0+8)>>1];
	r4 = r0 << 8;
	r0 = r0 << 24;
	r4 = r4 & 16711680;
	r7 = heap32[(r6+40)];
	r0 = r0 | r4;
	r4 = (r7 + r2)|0;
	r0 = r0 >>> 16;
	heap16[(r4+8)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r2)|0;
	r0 = heapU16[(r0+10)>>1];
	r4 = r0 << 8;
	r0 = r0 << 24;
	r4 = r4 & 16711680;
	r7 = heap32[(r6+40)];
	r0 = r0 | r4;
	r4 = (r7 + r2)|0;
	r0 = r0 >>> 16;
	heap16[(r4+10)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r2)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+3)];
	r4 = r0 << 8;
	r7 = r0 >>> 8;
	r8 = heap32[(r6+40)];
	r9 = r0 << 24;
	r4 = r4 & 16711680;
	r7 = r7 & 65280;
	r0 = r0 >>> 24;
	r8 = (r8 + r2)|0;
	r4 = r9 | r4;
	r0 = r7 | r0;
	r7 = r8 >> 2;
	r0 = r4 | r0;
	heap32[(r7+3)] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r2)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r4 = r0 << 8;
	r7 = r0 >>> 8;
	r8 = heap32[(r6+40)];
	r9 = r0 << 24;
	r4 = r4 & 16711680;
	r7 = r7 & 65280;
	r0 = r0 >>> 24;
	r2 = (r8 + r2)|0;
	r4 = r9 | r4;
	r0 = r7 | r0;
	r5 = (r5 + 1)|0;
	r2 = r2 >> 2;
	r0 = r4 | r0;
	heap32[(r2+4)] = r0;
	r0 = heap32[(r1+42)];
	if(r0 <=r5) //_LBB146_46
{
break _53;
}
else{
	r0 = heap32[(r6+40)];
}
}
}
}
else{
	if(r2 >0) //_LBB146_43
{
	r2 = 0;
_60: while(true){
	r4 = r2 << 5;
	r5 = heap32[(r1+40)];
	r5 = heapU16[(r5+r4)>>1];
	heap16[(r0+r4)>>1] = r5;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r4)|0;
	r5 = heap32[(r6+40)];
	r0 = heapU16[(r0+2)>>1];
	r5 = (r5 + r4)|0;
	heap16[(r5+2)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r4)|0;
	r5 = heap32[(r6+40)];
	r0 = heapU16[(r0+4)>>1];
	r5 = (r5 + r4)|0;
	heap16[(r5+4)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r4)|0;
	r5 = heap32[(r6+40)];
	r0 = heapU16[(r0+6)>>1];
	r5 = (r5 + r4)|0;
	heap16[(r5+6)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r4)|0;
	r5 = heap32[(r6+40)];
	r0 = heapU16[(r0+8)>>1];
	r5 = (r5 + r4)|0;
	heap16[(r5+8)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r4)|0;
	r5 = heap32[(r6+40)];
	r0 = heapU16[(r0+10)>>1];
	r5 = (r5 + r4)|0;
	heap16[(r5+10)>>1] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r4)|0;
	r0 = r0 >> 2;
	r5 = heap32[(r6+40)];
	r5 = (r5 + r4)|0;
	r0 = heap32[(r0+3)];
	r5 = r5 >> 2;
	heap32[(r5+3)] = r0;
	r0 = heap32[(r1+40)];
	r0 = (r0 + r4)|0;
	r0 = r0 >> 2;
	r5 = heap32[(r6+40)];
	r5 = (r5 + r4)|0;
	r0 = heap32[(r0+4)];
	r5 = r5 >> 2;
	heap32[(r5+4)] = r0;
	r0 = heap32[(r6+40)];
	r0 = (r0 + r4)|0;
	r0 = r0 >> 2;
	heap32[(r0+5)] = 0;
	r0 = heap32[(r6+40)];
	r0 = (r0 + r4)|0;
	r0 = r0 >> 2;
	heap32[(r0+6)] = 0;
	r0 = heap32[(r6+40)];
	r0 = (r0 + r4)|0;
	r2 = (r2 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r0+7)] = 0;
	r0 = heap32[(r1+42)];
	if(r0 <=r2) //_LBB146_46
{
break _53;
}
else{
	r0 = heap32[(r6+40)];
}
}
}
}
} while(0);
	r0 = heap32[(r6+40)];
if(!(r0 ==0)) //_LBB146_50
{
	r1 = heapU8[r3+164];
if(!(r1 ==0)) //_LBB146_49
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r2 = (r2 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r2;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	heap32[(r6+40)] = 0;
}
	r0 = 0;
	heap8[r3+164] = r0;
	heap32[(r6+40)] = 0;
	heap32[(r6+38)] = 0;
	heap32[(r6+39)] = 0;
	heap32[(r6)] = 0;
	r0 = 1;
	r_g0 = r0;
	return;
}
else{
	r0 = _2E_str638;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 847;
	_assert(i7);
}
}

function _ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r1 = r1 >> 2;
	r2 = r0 >> 2;
	heap32[(r2+5)] = heap32[(r1+4)];
	heap32[(r2+6)] = heap32[(r1+5)];
	heap32[(r2+7)] = heap32[(r1+6)];
	heap32[(r2+8)] = heap32[(r1+7)];
	heap32[(r2+1)] = heap32[(r1)];
	heap32[(r2+2)] = heap32[(r1+1)];
	heap32[(r2+3)] = heap32[(r1+2)];
	heap32[(r2+4)] = heap32[(r1+3)];
	heap32[(r2+9)] = heap32[(r1+8)];
	heap32[(r2+10)] = heap32[(r1+9)];
	heap32[(r2+11)] = heap32[(r1+10)];
	heap32[(r2+12)] = heap32[(r1+11)];
	r3 = heap32[(r1+12)];
	heap32[(r2+14)] = r3;
	r3 = 0;
	r4 = heap32[(r1+13)];
	r4 = r4 != r3;
	r4 = r4 & 1;
	heap8[r0+60] = r4;
	r4 = heap32[(r2+22)];
	r5 = heap32[(r1+14)];
if(!(r4 >=r5)) //_LBB147_17
{
	r6 = heap32[(r2+23)];
if(!(r6 >=r5)) //_LBB147_17
{
	if(r5 !=0) //_LBB147_4
{
	r6 = gNumAlignedAllocs;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r8 = r5 << 6;
	heap32[(r6)] = r7;
	r6 = r8 | 19;
	heap32[(g0)] = r6;
	malloc(i7);
	r6 = r_g0;
	if(r6 !=0) //_LBB147_6
{
	r7 = 0;
	r8 = (r6 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r6 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r6;
	r6 = r8;
}
}
else{
	r6 = 0;
}
	r7 = (r0 + 96)|0;
	if(r4 <1) //_LBB147_9
{
	r4 = r7 >> 2;
	r9 = heap32[(r4)];
}
else{
	r8 = 0;
_12: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = (r6 + r8)|0;
	r11 = (r9 + r8)|0;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = 64;
	r4 = (r4 + -1)|0;
	r8 = (r8 + 64)|0;
	memcpy(i7);
if(!(r4 !=0)) //_LBB147_10
{
break _12;
}
}
	r7 = (r0 + 96)|0;
}
if(!(r9 ==0)) //_LBB147_16
{
	r4 = heapU8[r0+100];
if(!(r4 ==0)) //_LBB147_15
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r8 = heap32[(r4)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r4)] = r8;
	r4 = heap32[(r9+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	r4 = r7 >> 2;
	heap32[(r4)] = 0;
}
	r4 = 1;
	r7 = r7 >> 2;
	heap8[r0+100] = r4;
	heap32[(r7)] = r6;
	heap32[(r2+23)] = r5;
}
}
	heap32[(r2+22)] = r5;
_23: do {
if(!(r5 <1)) //_LBB147_20
{
	r4 = 0;
	r6 = heap32[(r1+16)];
	r5 = (r4 - r5)|0;
_25: while(true){
	r7 = (r4 * -12)|0;
	r7 = r7 << 2;
	r8 = r4 << 6;
	r9 = heap32[(r2+24)];
	r7 = (r6 + r7)|0;
	r9 = (r9 - r8)|0;
	r7 = r7 >> 2;
	r9 = r9 >> 2;
	heap32[(r9+4)] = heap32[(r7+4)];
	heap32[(r9+5)] = heap32[(r7+5)];
	heap32[(r9+6)] = heap32[(r7+6)];
	heap32[(r9+7)] = heap32[(r7+7)];
	r9 = heap32[(r2+24)];
	r9 = (r9 - r8)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = heap32[(r7)];
	heap32[(r9+1)] = heap32[(r7+1)];
	heap32[(r9+2)] = heap32[(r7+2)];
	heap32[(r9+3)] = heap32[(r7+3)];
	r9 = heap32[(r2+24)];
	r9 = (r9 - r8)|0;
	r10 = heap32[(r7+8)];
	r9 = r9 >> 2;
	heap32[(r9+8)] = r10;
	r9 = heap32[(r2+24)];
	r9 = (r9 - r8)|0;
	r10 = heap32[(r7+9)];
	r9 = r9 >> 2;
	heap32[(r9+9)] = r10;
	r9 = heap32[(r2+24)];
	r8 = (r9 - r8)|0;
	r7 = heap32[(r7+10)];
	r4 = (r4 + -1)|0;
	r8 = r8 >> 2;
	heap32[(r8+10)] = r7;
	if(r5 !=r4) //_LBB147_19
{
continue _25;
}
else{
break _23;
}
}
}
} while(0);
	r4 = heap32[(r2+32)];
	r5 = heap32[(r1+15)];
_28: do {
if(!(r4 >=r5)) //_LBB147_23
{
	r6 = (r0 + 124)|0;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	r6 = (r5 - r4)|0;
	r4 = r4 << 4;
	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
_30: while(true){
	r7 = heap32[(r2+34)];
	r7 = (r7 + r4)|0;
	r7 = r7 >> 2;
	r6 = (r6 + -1)|0;
	r4 = (r4 + 16)|0;
	heap32[(r7)] = 0;
	heap32[(r7+1)] = 0;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 0;
	if(r6 !=0) //_LBB147_22
{
continue _30;
}
else{
break _28;
}
}
}
} while(0);
	heap32[(r2+32)] = r5;
_33: do {
if(!(r5 <1)) //_LBB147_26
{
	r4 = 0;
	r6 = heap32[(r1+17)];
	r5 = (r4 - r5)|0;
_35: while(true){
	r7 = r4 << 4;
	r8 = (r6 - r7)|0;
	r9 = r8 >> 2;
	r10 = heap32[(r2+34)];
	r10 = (r10 - r7)|0;
	r9 = heap32[(r9+3)];
	r10 = r10 >> 2;
	heap32[(r10+3)] = r9;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8+6)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9+6)>>1] = r10;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8+8)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9+8)>>1] = r10;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8+10)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9+10)>>1] = r10;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9)>>1] = r10;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8+2)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9+2)>>1] = r10;
	r9 = heap32[(r2+34)];
	r8 = heapU16[(r8+4)>>1];
	r4 = (r4 + -1)|0;
	r7 = (r9 - r7)|0;
	heap16[(r7+4)>>1] = r8;
	if(r5 !=r4) //_LBB147_25
{
continue _35;
}
else{
break _33;
}
}
}
} while(0);
	r4 = heap32[(r1+19)];
	heap32[(r2+36)] = r4;
	r4 = heap32[(r2+38)];
	r5 = heap32[(r1+20)];
if(!(r4 >=r5)) //_LBB147_43
{
	r6 = heap32[(r2+39)];
if(!(r6 >=r5)) //_LBB147_43
{
	if(r5 !=0) //_LBB147_30
{
	r6 = gNumAlignedAllocs;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r8 = r5 << 5;
	heap32[(r6)] = r7;
	r6 = r8 | 19;
	heap32[(g0)] = r6;
	malloc(i7);
	r6 = r_g0;
	if(r6 !=0) //_LBB147_32
{
	r7 = 0;
	r8 = (r6 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r6 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r6;
	r6 = r8;
}
}
else{
	r6 = 0;
}
	r7 = (r0 + 160)|0;
	if(r4 <1) //_LBB147_35
{
	r4 = r7 >> 2;
	r9 = heap32[(r4)];
}
else{
	r8 = 0;
_49: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = (r9 + r8)|0;
	r10 = r10 >> 2;
	r11 = (r6 + r8)|0;
	r4 = (r4 + -1)|0;
	r8 = (r8 + 32)|0;
	r12 = heap32[(r10)];
	r11 = r11 >> 2;
	r13 = heap32[(r10+1)];
	r14 = heap32[(r10+2)];
	r15 = heap32[(r10+3)];
	r16 = heap32[(r10+4)];
	r17 = heap32[(r10+5)];
	r18 = heap32[(r10+6)];
	r10 = heap32[(r10+7)];
	heap32[(r11)] = r12;
	heap32[(r11+1)] = r13;
	heap32[(r11+2)] = r14;
	heap32[(r11+3)] = r15;
	heap32[(r11+4)] = r16;
	heap32[(r11+5)] = r17;
	heap32[(r11+6)] = r18;
	heap32[(r11+7)] = r10;
if(!(r4 !=0)) //_LBB147_36
{
break _49;
}
}
	r7 = (r0 + 160)|0;
}
if(!(r9 ==0)) //_LBB147_42
{
	r4 = heapU8[r0+164];
if(!(r4 ==0)) //_LBB147_41
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r8 = heap32[(r4)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r4)] = r8;
	r4 = heap32[(r9+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	r4 = r7 >> 2;
	heap32[(r4)] = 0;
}
	r4 = 1;
	r7 = r7 >> 2;
	heap8[r0+164] = r4;
	heap32[(r7)] = r6;
	heap32[(r2+39)] = r5;
}
}
	heap32[(r2+38)] = r5;
_60: do {
if(!(r5 <1)) //_LBB147_46
{
	r0 = heap32[(r1+18)];
	r1 = (r3 - r5)|0;
_62: while(true){
	r4 = (r3 * -10)|0;
	r4 = r4 << 1;
	r4 = (r0 + r4)|0;
	r5 = r3 << 5;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+14)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6+6)>>1] = r7;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+16)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6+8)>>1] = r7;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+18)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6+10)>>1] = r7;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+8)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6)>>1] = r7;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+10)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6+2)>>1] = r7;
	r6 = (r3 * -5)|0;
	r7 = heap32[(r2+40)];
	r4 = heapU16[(r4+12)>>1];
	r6 = r6 << 2;
	r7 = (r7 - r5)|0;
	r6 = (r0 + r6)|0;
	heap16[(r7+4)>>1] = r4;
	r4 = r6 >> 2;
	r6 = heap32[(r2+40)];
	r6 = (r6 - r5)|0;
	r7 = heap32[(r4)];
	r6 = r6 >> 2;
	heap32[(r6+3)] = r7;
	r6 = heap32[(r2+40)];
	r5 = (r6 - r5)|0;
	r4 = heap32[(r4+1)];
	r3 = (r3 + -1)|0;
	r5 = r5 >> 2;
	heap32[(r5+4)] = r4;
	if(r1 !=r3) //_LBB147_45
{
continue _62;
}
else{
break _60;
}
}
}
} while(0);
	return;
}

function _ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var f0;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	f0 = llvm_readDouble((r0+32));
	r2 = r1 >> 2;
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+5)] = f0;
	f0 = llvm_readDouble((r0+40));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+6)] = f0;
	f0 = llvm_readDouble((r0+48));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+7)] = f0;
	f0 = llvm_readDouble((r0+56));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+8)] = f0;
	f0 = llvm_readDouble((r0));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+1)] = f0;
	f0 = llvm_readDouble((r0+8));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+2)] = f0;
	f0 = llvm_readDouble((r0+16));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+3)] = f0;
	f0 = llvm_readDouble((r0+24));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+4)] = f0;
	f0 = llvm_readDouble((r0+64));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+9)] = f0;
	f0 = llvm_readDouble((r0+72));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+10)] = f0;
	f0 = llvm_readDouble((r0+80));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r2+11)] = f0;
	f0 = llvm_readDouble((r0+88));
	f0 = f0; //fdtos f0, f0
	r0 = r0 >> 2;
	heapFloat[(r2+12)] = f0;
	r3 = heap32[(r0+24)];
	heap32[(r2+14)] = r3;
	r3 = 0;
	r4 = heap32[(r0+25)];
	r4 = r4 != r3;
	r4 = r4 & 1;
	heap8[r1+60] = r4;
	r4 = heap32[(r2+22)];
	r5 = heap32[(r0+26)];
if(!(r4 >=r5)) //_LBB148_17
{
	r6 = heap32[(r2+23)];
if(!(r6 >=r5)) //_LBB148_17
{
	if(r5 !=0) //_LBB148_4
{
	r6 = gNumAlignedAllocs;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r8 = r5 << 6;
	heap32[(r6)] = r7;
	r6 = r8 | 19;
	heap32[(g0)] = r6;
	malloc(i7);
	r6 = r_g0;
	if(r6 !=0) //_LBB148_6
{
	r7 = 0;
	r8 = (r6 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r6 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r6;
	r6 = r8;
}
}
else{
	r6 = 0;
}
	r7 = (r1 + 96)|0;
	if(r4 <1) //_LBB148_9
{
	r4 = r7 >> 2;
	r9 = heap32[(r4)];
}
else{
	r8 = 0;
_12: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = (r6 + r8)|0;
	r11 = (r9 + r8)|0;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = 64;
	r4 = (r4 + -1)|0;
	r8 = (r8 + 64)|0;
	memcpy(i7);
if(!(r4 !=0)) //_LBB148_10
{
break _12;
}
}
	r7 = (r1 + 96)|0;
}
if(!(r9 ==0)) //_LBB148_16
{
	r4 = heapU8[r1+100];
if(!(r4 ==0)) //_LBB148_15
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r8 = heap32[(r4)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r4)] = r8;
	r4 = heap32[(r9+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	r4 = r7 >> 2;
	heap32[(r4)] = 0;
}
	r4 = 1;
	r7 = r7 >> 2;
	heap8[r1+100] = r4;
	heap32[(r7)] = r6;
	heap32[(r2+23)] = r5;
}
}
	heap32[(r2+22)] = r5;
_23: do {
if(!(r5 <1)) //_LBB148_20
{
	r4 = 0;
	r6 = heap32[(r0+28)];
	r5 = (r4 - r5)|0;
_25: while(true){
	r7 = (r4 * -10)|0;
	r7 = r7 << 3;
	r8 = (r6 + r7)|0;
	r9 = r4 << 6;
	r10 = heap32[(r2+24)];
	f0 = llvm_readDouble((r8+32));
	r10 = (r10 - r9)|0;
	r10 = r10 >> 2;
	f0 = f0; //fdtos f0, f0
	heapFloat[(r10+4)] = f0;
	f0 = llvm_readDouble((r8+40));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r10+5)] = f0;
	f0 = llvm_readDouble((r8+48));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r10+6)] = f0;
	f0 = llvm_readDouble((r8+56));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r10+7)] = f0;
	r10 = heap32[(r2+24)];
	f0 = llvm_readDouble((r6+r7));
	r7 = (r10 - r9)|0;
	r7 = r7 >> 2;
	f0 = f0; //fdtos f0, f0
	heapFloat[(r7)] = f0;
	f0 = llvm_readDouble((r8+8));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r7+1)] = f0;
	f0 = llvm_readDouble((r8+16));
	f0 = f0; //fdtos f0, f0
	heapFloat[(r7+2)] = f0;
	r10 = (r4 * -20)|0;
	f0 = llvm_readDouble((r8+24));
	r8 = r10 << 2;
	f0 = f0; //fdtos f0, f0
	r8 = (r6 + r8)|0;
	heapFloat[(r7+3)] = f0;
	r7 = r8 >> 2;
	r8 = heap32[(r2+24)];
	r8 = (r8 - r9)|0;
	r10 = heap32[(r7+16)];
	r8 = r8 >> 2;
	heap32[(r8+8)] = r10;
	r8 = heap32[(r2+24)];
	r8 = (r8 - r9)|0;
	r10 = heap32[(r7+17)];
	r8 = r8 >> 2;
	heap32[(r8+9)] = r10;
	r8 = heap32[(r2+24)];
	r8 = (r8 - r9)|0;
	r7 = heap32[(r7+18)];
	r4 = (r4 + -1)|0;
	r8 = r8 >> 2;
	heap32[(r8+10)] = r7;
	if(r5 !=r4) //_LBB148_19
{
continue _25;
}
else{
break _23;
}
}
}
} while(0);
	r4 = heap32[(r2+32)];
	r5 = heap32[(r0+27)];
_28: do {
if(!(r4 >=r5)) //_LBB148_23
{
	r6 = (r1 + 124)|0;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	r6 = (r5 - r4)|0;
	r4 = r4 << 4;
	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
_30: while(true){
	r7 = heap32[(r2+34)];
	r7 = (r7 + r4)|0;
	r7 = r7 >> 2;
	r6 = (r6 + -1)|0;
	r4 = (r4 + 16)|0;
	heap32[(r7)] = 0;
	heap32[(r7+1)] = 0;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 0;
	if(r6 !=0) //_LBB148_22
{
continue _30;
}
else{
break _28;
}
}
}
} while(0);
	heap32[(r2+32)] = r5;
_33: do {
if(!(r5 <1)) //_LBB148_26
{
	r4 = 0;
	r6 = heap32[(r0+29)];
	r5 = (r4 - r5)|0;
_35: while(true){
	r7 = r4 << 4;
	r8 = (r6 - r7)|0;
	r9 = r8 >> 2;
	r10 = heap32[(r2+34)];
	r10 = (r10 - r7)|0;
	r9 = heap32[(r9+3)];
	r10 = r10 >> 2;
	heap32[(r10+3)] = r9;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8+6)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9+6)>>1] = r10;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8+8)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9+8)>>1] = r10;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8+10)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9+10)>>1] = r10;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9)>>1] = r10;
	r9 = heap32[(r2+34)];
	r10 = heapU16[(r8+2)>>1];
	r9 = (r9 - r7)|0;
	heap16[(r9+2)>>1] = r10;
	r9 = heap32[(r2+34)];
	r8 = heapU16[(r8+4)>>1];
	r4 = (r4 + -1)|0;
	r7 = (r9 - r7)|0;
	heap16[(r7+4)>>1] = r8;
	if(r5 !=r4) //_LBB148_25
{
continue _35;
}
else{
break _33;
}
}
}
} while(0);
	r4 = heap32[(r0+30)];
	heap32[(r2+36)] = r4;
	r4 = heap32[(r2+38)];
	r5 = heap32[(r0+31)];
if(!(r4 >=r5)) //_LBB148_43
{
	r6 = heap32[(r2+39)];
if(!(r6 >=r5)) //_LBB148_43
{
	if(r5 !=0) //_LBB148_30
{
	r6 = gNumAlignedAllocs;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r8 = r5 << 5;
	heap32[(r6)] = r7;
	r6 = r8 | 19;
	heap32[(g0)] = r6;
	malloc(i7);
	r6 = r_g0;
	if(r6 !=0) //_LBB148_32
{
	r7 = 0;
	r8 = (r6 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r6 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r6;
	r6 = r8;
}
}
else{
	r6 = 0;
}
	r7 = (r1 + 160)|0;
	if(r4 <1) //_LBB148_35
{
	r4 = r7 >> 2;
	r9 = heap32[(r4)];
}
else{
	r8 = 0;
_49: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = (r9 + r8)|0;
	r10 = r10 >> 2;
	r11 = (r6 + r8)|0;
	r4 = (r4 + -1)|0;
	r8 = (r8 + 32)|0;
	r12 = heap32[(r10)];
	r11 = r11 >> 2;
	r13 = heap32[(r10+1)];
	r14 = heap32[(r10+2)];
	r15 = heap32[(r10+3)];
	r16 = heap32[(r10+4)];
	r17 = heap32[(r10+5)];
	r18 = heap32[(r10+6)];
	r10 = heap32[(r10+7)];
	heap32[(r11)] = r12;
	heap32[(r11+1)] = r13;
	heap32[(r11+2)] = r14;
	heap32[(r11+3)] = r15;
	heap32[(r11+4)] = r16;
	heap32[(r11+5)] = r17;
	heap32[(r11+6)] = r18;
	heap32[(r11+7)] = r10;
if(!(r4 !=0)) //_LBB148_36
{
break _49;
}
}
	r7 = (r1 + 160)|0;
}
if(!(r9 ==0)) //_LBB148_42
{
	r4 = heapU8[r1+164];
if(!(r4 ==0)) //_LBB148_41
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r8 = heap32[(r4)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r4)] = r8;
	r4 = heap32[(r9+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	r4 = r7 >> 2;
	heap32[(r4)] = 0;
}
	r4 = 1;
	r7 = r7 >> 2;
	heap8[r1+164] = r4;
	heap32[(r7)] = r6;
	heap32[(r2+39)] = r5;
}
}
	heap32[(r2+38)] = r5;
_60: do {
if(!(r5 <1)) //_LBB148_46
{
	r0 = heap32[(r0+32)];
	r1 = (r3 - r5)|0;
_62: while(true){
	r4 = (r3 * -10)|0;
	r4 = r4 << 1;
	r4 = (r0 + r4)|0;
	r5 = r3 << 5;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+14)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6+6)>>1] = r7;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+16)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6+8)>>1] = r7;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+18)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6+10)>>1] = r7;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+8)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6)>>1] = r7;
	r6 = heap32[(r2+40)];
	r7 = heapU16[(r4+10)>>1];
	r6 = (r6 - r5)|0;
	heap16[(r6+2)>>1] = r7;
	r6 = (r3 * -5)|0;
	r7 = heap32[(r2+40)];
	r4 = heapU16[(r4+12)>>1];
	r6 = r6 << 2;
	r7 = (r7 - r5)|0;
	r6 = (r0 + r6)|0;
	heap16[(r7+4)>>1] = r4;
	r4 = r6 >> 2;
	r6 = heap32[(r2+40)];
	r6 = (r6 - r5)|0;
	r7 = heap32[(r4)];
	r6 = r6 >> 2;
	heap32[(r6+3)] = r7;
	r6 = heap32[(r2+40)];
	r5 = (r6 - r5)|0;
	r4 = heap32[(r4+1)];
	r3 = (r3 + -1)|0;
	r5 = r5 >> 2;
	heap32[(r5+4)] = r4;
	if(r1 !=r3) //_LBB148_45
{
continue _62;
}
else{
break _60;
}
}
}
} while(0);
	return;
}

function _ZN14btQuantizedBvhD2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14btQuantizedBvh;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+40)];
if(!(r1 ==0)) //_LBB149_4
{
	r3 = heapU8[r0+164];
if(!(r3 ==0)) //_LBB149_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+40)] = 0;
}
	r1 = 1;
	heap8[r0+164] = r1;
	heap32[(r2+40)] = 0;
	heap32[(r2+38)] = 0;
	heap32[(r2+39)] = 0;
	r3 = heap32[(r2+34)];
if(!(r3 ==0)) //_LBB149_8
{
	r4 = heapU8[r0+140];
if(!(r4 ==0)) //_LBB149_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+34)] = 0;
}
	heap8[r0+140] = r1;
	heap32[(r2+34)] = 0;
	heap32[(r2+32)] = 0;
	heap32[(r2+33)] = 0;
	r3 = heap32[(r2+29)];
if(!(r3 ==0)) //_LBB149_12
{
	r4 = heapU8[r0+120];
if(!(r4 ==0)) //_LBB149_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+29)] = 0;
}
	heap8[r0+120] = r1;
	heap32[(r2+29)] = 0;
	heap32[(r2+27)] = 0;
	heap32[(r2+28)] = 0;
	r3 = heap32[(r2+24)];
if(!(r3 ==0)) //_LBB149_16
{
	r4 = heapU8[r0+100];
if(!(r4 ==0)) //_LBB149_15
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+24)] = 0;
}
	heap8[r0+100] = r1;
	heap32[(r2+24)] = 0;
	heap32[(r2+22)] = 0;
	heap32[(r2+23)] = 0;
	r3 = heap32[(r2+19)];
if(!(r3 ==0)) //_LBB149_20
{
	r4 = heapU8[r0+80];
if(!(r4 ==0)) //_LBB149_19
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+19)] = 0;
}
	heap8[r0+80] = r1;
	heap32[(r2+19)] = 0;
	heap32[(r2+17)] = 0;
	heap32[(r2+18)] = 0;
	return;
}

function _ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+60];
	if(r1 !=0) //_LBB150_2
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = heap32[(fp+4)];
	r5 = heap32[(fp+5)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+34)];
	r6 = r4 << 4;
	r7 = (r5 - r4)|0;
	r0 = (r0 + r6)|0;
	r6 = 0;
_3: while(true){
	if(r4 <r5) //_LBB150_3
{
	if(r6 <r7) //_LBB150_5
{
	r8 = heapU16[(r2)>>1];
	r9 = heapU16[(r0+6)>>1];
	r10 = heapU16[(r3)>>1];
	r11 = heapU16[(r0)>>1];
	r8 = uint(r8) > uint(r9);
	r9 = uint(r10) < uint(r11);
	r10 = heapU16[(r2+4)>>1];
	r11 = heapU16[(r0+10)>>1];
	r8 = r8 | r9;
	r9 = uint(r10) > uint(r11);
	r10 = heapU16[(r3+4)>>1];
	r11 = heapU16[(r0+4)>>1];
	r8 = r8 | r9;
	r9 = uint(r10) < uint(r11);
	r10 = heapU16[(r2+2)>>1];
	r11 = heapU16[(r0+8)>>1];
	r8 = r8 | r9;
	r9 = uint(r10) > uint(r11);
	r10 = heapU16[(r3+2)>>1];
	r11 = heapU16[(r0+2)>>1];
	r12 = r0 >> 2;
	r8 = r8 | r9;
	r9 = uint(r10) < uint(r11);
	r10 = heap32[(r12+3)];
	r6 = (r6 + 1)|0;
	r8 = r8 | r9;
	if(r10 <0) //_LBB150_10
{
__label__ = 10;
}
else{
	if(r8 != 0) //_LBB150_10
{
__label__ = 10;
}
else{
	if(r10 >-1) //_LBB150_9
{
	r8 = r1 >> 2;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	r12 = r10 >> 21;
	r10 = r10 & 2097151;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r10;
	__FUNCTION_TABLE__[(r8)>>2](i7);
__label__ = 11;
}
else{
__label__ = 8;
break _3;
}
}
}
if (__label__ == 10){
	r9 = 0;
	r9 = r10 < r9;
	r8 = r9 & r8;
	if(r8 != 0) //_LBB150_12
{
	r8 = heap32[(r12+3)];
	if(r8 <0) //_LBB150_14
{
	r9 = r8 << 4;
	r0 = (r0 - r9)|0;
	r4 = (r4 - r8)|0;
continue _3;
}
else{
__label__ = 13;
break _3;
}
}
}
	r0 = (r0 + 16)|0;
	r4 = (r4 + 1)|0;
}
else{
__label__ = 4;
break _3;
}
}
else{
__label__ = 16;
break _3;
}
}
switch(__label__ ){//multiple entries
case 16:
	r0 = maxIterations;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
if(!(r1 >=r6)) //_LBB150_18
{
	heap32[(r0)] = r6;
}
	return;
break;
case 13:
	r0 = _2E_str941;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 75;
	_assert(i7);
break;
case 8:
	r0 = _2E_str739;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 80;
	_assert(i7);
break;
case 4:
	r0 = _2E_str1143;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 703;
	_assert(i7);
break;
}
}
else{
	r0 = _2E_str212;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 669;
	_assert(i7);
}
}

function _ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+60];
	if(r1 !=0) //_LBB151_2
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r2 = r2 >> 2;
	f0 = heapFloat[(r2)];
	r4 = sp + -16;
	heapFloat[(fp+-4)] = f0;
	f1 = heapFloat[(r2+1)];
	r5 = r4 >> 2;
	heapFloat[(r5+1)] = f1;
	f2 = heapFloat[(r2+2)];
	heapFloat[(r5+2)] = f2;
	f3 = heapFloat[(r2+3)];
	r2 = r0 >> 2;
	heapFloat[(r5+3)] = f3;
	f4 = heapFloat[(r2+1)];
	if(f0 <f4) //_LBB151_4
{
	heapFloat[(fp+-4)] = f4;
	f0 = f4;
}
	f4 = heapFloat[(r2+2)];
	if(f1 <f4) //_LBB151_7
{
	heapFloat[(r5+1)] = f4;
	f1 = f4;
}
	f4 = heapFloat[(r2+3)];
	if(f2 <f4) //_LBB151_10
{
	heapFloat[(r5+2)] = f4;
	f2 = f4;
}
	f4 = heapFloat[(r2+4)];
	if(f3 <f4) //_LBB151_13
{
	heapFloat[(r5+3)] = f4;
	f3 = f4;
}
	f4 = heapFloat[(r2+5)];
if(!(f4 >=f0)) //_LBB151_16
{
	heapFloat[(fp+-4)] = f4;
}
	f0 = heapFloat[(r2+6)];
if(!(f0 >=f1)) //_LBB151_18
{
	heapFloat[(r5+1)] = f0;
}
	f0 = heapFloat[(r2+7)];
if(!(f0 >=f2)) //_LBB151_20
{
	heapFloat[(r5+2)] = f0;
}
	f0 = heapFloat[(r2+8)];
if(!(f0 >=f3)) //_LBB151_22
{
	heapFloat[(r5+3)] = f0;
}
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r3;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
	return;
}
else{
	r0 = _2E_str212;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 420;
	_assert(i7);
}
}

function _ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = heap32[(fp+4)];
_1: while(true){
	r5 = heapU8[r0+60];
	if(r5 !=0) //_LBB152_3
{
	r5 = heapU16[(r3)>>1];
	r6 = heapU16[(r1+6)>>1];
	if(uint(r5) >uint(r6)) //_LBB152_14
{
__label__ = 14;
break _1;
}
else{
	r5 = heapU16[(r4)>>1];
	r6 = heapU16[(r1)>>1];
	r5 = r5 & 65535;
	r6 = r6 & 65535;
	if(uint(r5) <uint(r6)) //_LBB152_14
{
__label__ = 14;
break _1;
}
else{
	r5 = heapU16[(r3+4)>>1];
	r6 = heapU16[(r1+10)>>1];
	r5 = r5 & 65535;
	r6 = r6 & 65535;
	if(uint(r5) >uint(r6)) //_LBB152_14
{
__label__ = 14;
break _1;
}
else{
	r5 = heapU16[(r4+4)>>1];
	r6 = heapU16[(r1+4)>>1];
	r5 = r5 & 65535;
	r6 = r6 & 65535;
	if(uint(r5) <uint(r6)) //_LBB152_14
{
__label__ = 14;
break _1;
}
else{
	r5 = heapU16[(r3+2)>>1];
	r6 = heapU16[(r1+8)>>1];
	r5 = r5 & 65535;
	r6 = r6 & 65535;
	if(uint(r5) >uint(r6)) //_LBB152_14
{
__label__ = 14;
break _1;
}
else{
	r5 = heapU16[(r4+2)>>1];
	r6 = heapU16[(r1+2)>>1];
	r5 = r5 & 65535;
	r6 = r6 & 65535;
	if(uint(r5) <uint(r6)) //_LBB152_14
{
__label__ = 14;
break _1;
}
else{
	r5 = r1 >> 2;
	r6 = heap32[(r5+3)];
	if(r6 <0) //_LBB152_11
{
	r6 = (r1 + 16)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	_ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(i7);
	r5 = heap32[(r5+7)];
	if(r5 <0) //_LBB152_13
{
	r6 = 1;
	r5 = (r6 - r5)|0;
	r5 = r5 << 4;
	r1 = (r1 + r5)|0;
continue _1;
}
else{
	r1 = (r1 + 32)|0;
continue _1;
}
}
else{
__label__ = 10;
break _1;
}
}
}
}
}
}
}
}
else{
__label__ = 2;
break _1;
}
}
switch(__label__ ){//multiple entries
case 14:
	return;
break;
case 2:
	r0 = _2E_str212;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 419;
	_assert(i7);
break;
case 10:
	r0 = r2 >> 2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+2)];
	r1 = r6 >> 21;
	r3 = r6 & 2097151;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	return;
break;
}
}

function _ZNK14btQuantizedBvh26reportAabbOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = heapU8[r0+60];
_1: do {
	if(r4 ==0) //_LBB153_20
{
	r0 = r0 >> 2;
	r4 = heap32[(r0+24)];
	r5 = 0;
	r6 = r5;
_3: while(true){
	r7 = heap32[(r0+14)];
	if(r7 >r5) //_LBB153_21
{
	if(r7 >r6) //_LBB153_23
{
	r7 = r2 >> 2;
	r8 = r4 >> 2;
	r6 = (r6 + 1)|0;
	f0 = heapFloat[(r7)];
	f1 = heapFloat[(r8+4)];
	if(f0 >f1) //_LBB153_26
{
__label__ = 26;
}
else{
	r9 = r3 >> 2;
	f0 = heapFloat[(r9)];
	f1 = heapFloat[(r8)];
	if(f0 <f1) //_LBB153_26
{
__label__ = 26;
}
else{
	r9 = 1;
__label__ = 27;
}
}
if (__label__ == 26){
	r9 = 0;
}
	f0 = heapFloat[(r7+2)];
	f1 = heapFloat[(r8+6)];
	if(f0 >f1) //_LBB153_30
{
__label__ = 29;
}
else{
	r10 = r3 >> 2;
	f0 = heapFloat[(r10+2)];
	f1 = heapFloat[(r8+2)];
	if(f0 <f1) //_LBB153_30
{
__label__ = 29;
}
else{
__label__ = 30;
}
}
if (__label__ == 29){
	r9 = 0;
}
	f0 = heapFloat[(r7+1)];
	f1 = heapFloat[(r8+5)];
	if(f0 <=f1) //_LBB153_33
{
	r7 = r3 >> 2;
	f0 = heapFloat[(r7+1)];
	f1 = heapFloat[(r8+1)];
	r7 = 0;
	r10 = heap32[(r8+8)];
	r11 = -1;
	r9 = f0 < f1 ? r7 : r9;
	r7 = r10 == r11;
	r12 = r9 & 255;
if(!(r12 ==0)) //_LBB153_35
{
	r10 = r10 != r11;
	r10 = r10 & 1;
	if(r10 ==0) //_LBB153_36
{
	r10 = r1 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+2)];
	r11 = heap32[(r8+10)];
	r12 = heap32[(r8+9)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r11;
	__FUNCTION_TABLE__[(r10)>>2](i7);
}
}
}
else{
	r7 = heap32[(r8+8)];
	r9 = -1;
	r7 = r7 == r9;
	r9 = 0;
}
	r9 = r9 & 255;
if(!(r9 !=0)) //_LBB153_39
{
	r7 = r7 & 1;
	if(r7 ==0) //_LBB153_40
{
	r7 = heap32[(r8+8)];
	r8 = r7 << 6;
	r4 = (r4 + r8)|0;
	r5 = (r7 + r5)|0;
continue _3;
}
}
	r4 = (r4 + 64)|0;
	r5 = (r5 + 1)|0;
}
else{
__label__ = 22;
break _3;
}
}
else{
__label__ = 40;
break _3;
}
}
switch(__label__ ){//multiple entries
case 40:
	r0 = maxIterations;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	if(r1 >=r6) //_LBB153_17
{
break _1;
}
else{
	heap32[(r0)] = r6;
	return;
}
break;
case 22:
	r0 = _2E_str1921;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 367;
	_assert(i7);
break;
}
}
else{
	r4 = sp + -6;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = 0;
	_ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(i7);
	r2 = sp + -12;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = 1;
	r3 = r0 >> 2;
	_ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(i7);
	r5 = heap32[(r3+36)];
	if(r5 ==2) //_LBB153_18
{
	r3 = heap32[(r3+34)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r2;
	_ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(i7);
	return;
}
else{
	if(r5 ==1) //_LBB153_5
{
	r5 = heapU8[r0+60];
	if(r5 ==0) //_LBB153_7
{
	r2 = _2E_str212;
	r3 = _2E_str537;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 735;
	_assert(i7);
}
else{
	r5 = heap32[(r3+38)];
	if(r5 >0) //_LBB153_8
{
	r5 = 0;
_42: while(true){
	r6 = heap32[(r3+40)];
	r7 = r5 << 5;
	r8 = (r6 + r7)|0;
	r9 = heapU16[(sp+-6)>>1];
	r10 = heapU16[(r8+6)>>1];
if(!(uint(r9) >uint(r10))) //_LBB153_16
{
	r9 = heapU16[(sp+-12)>>1];
	r6 = heapU16[(r6+r7)>>1];
	r7 = r9 & 65535;
	r6 = r6 & 65535;
if(!(uint(r7) <uint(r6))) //_LBB153_16
{
	r6 = heapU16[(sp+-2)>>1];
	r7 = heapU16[(r8+10)>>1];
	r6 = r6 & 65535;
	r7 = r7 & 65535;
if(!(uint(r6) >uint(r7))) //_LBB153_16
{
	r6 = heapU16[(sp+-8)>>1];
	r7 = heapU16[(r8+4)>>1];
	r6 = r6 & 65535;
	r7 = r7 & 65535;
if(!(uint(r6) <uint(r7))) //_LBB153_16
{
	r6 = heapU16[(sp+-4)>>1];
	r7 = heapU16[(r8+8)>>1];
	r6 = r6 & 65535;
	r7 = r7 & 65535;
if(!(uint(r6) >uint(r7))) //_LBB153_16
{
	r6 = heapU16[(sp+-10)>>1];
	r7 = heapU16[(r8+2)>>1];
	r6 = r6 & 65535;
	r7 = r7 & 65535;
if(!(uint(r6) <uint(r7))) //_LBB153_16
{
	r6 = r8 >> 2;
	r7 = heap32[(r6+3)];
	r6 = heap32[(r6+4)];
	r6 = (r6 + r7)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r2;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r6;
	_ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(i7);
}
}
}
}
}
}
	r5 = (r5 + 1)|0;
	r6 = heap32[(r3+38)];
	if(r6 >r5) //_LBB153_9
{
continue _42;
}
else{
break _1;
}
}
}
else{
break _1;
}
}
}
else{
	if(r5 !=0) //_LBB153_19
{
	r0 = _2E_str10;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 341;
	_assert(i7);
}
else{
	r3 = heap32[(r3+14)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r2;
	heap32[(g0+4)] = 0;
	heap32[(g0+5)] = r3;
	_ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(i7);
	return;
}
}
}
}
} while(0);
	return;
}

function _ZN14btQuantizedBvh9buildTreeEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
var __label__ = 0;
	i7 = sp + -112;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
	r2 = (r1 - r0)|0;
	if(r2 >0) //_LBB154_2
{
	r3 = heap32[(fp)];
	r4 = r3 >> 2;
	r5 = heap32[(r4+14)];
	if(r2 !=1) //_LBB154_7
{
_5: do {
	if(r0 <r1) //_LBB154_9
{
	r6 = heapU8[r3+60];
	f1 =                         0;
	r7 = r0;
	f2 = f1;
	f3 = f1;
_7: while(true){
	r8 = r6 & 255;
	if(r8 ==0) //_LBB154_12
{
	r9 = heap32[(r4+19)];
	r10 = r7 << 6;
	r9 = (r9 + r10)|0;
	r9 = r9 >> 2;
	f0 = heapFloat[(r9)];
	f5 = heapFloat[(r9+1)];
	f8 = heapFloat[(r9+2)];
	f4 = heapFloat[(r9+4)];
	f6 = heapFloat[(r9+5)];
	f7 = heapFloat[(r9+6)];
}
else{
	r9 = heap32[(r4+29)];
	r10 = r7 << 4;
	r11 = (r9 + r10)|0;
	r9 = heapU16[(r9+r10)>>1];
	r10 = heapU16[(r11+2)>>1];
	r12 = heapU16[(r11+4)>>1];
	r13 = heapU16[(r11+6)>>1];
	r14 = heapU16[(r11+8)>>1];
	r11 = heapU16[(r11+10)>>1];
	f0 = uint(r9); //fuitos r9, f0
	f4 = heapFloat[(r4+9)];
	f5 = uint(r13); //fuitos r13, f5
	f6 = uint(r10); //fuitos r10, f6
	f7 = heapFloat[(r4+10)];
	f8 = uint(r14); //fuitos r14, f8
	f9 = uint(r12); //fuitos r12, f9
	f10 = heapFloat[(r4+11)];
	f11 = uint(r11); //fuitos r11, f11
	f0 = f0/f4;
	f12 = heapFloat[(r4+1)];
	f4 = f5/f4;
	f5 = f6/f7;
	f6 = heapFloat[(r4+2)];
	f7 = f8/f7;
	f8 = f9/f10;
	f9 = heapFloat[(r4+3)];
	f10 = f11/f10;
	f0 = f0+f12;
	f5 = f5+f6;
	f8 = f8+f9;
	f4 = f4+f12;
	f6 = f7+f6;
	f7 = f10+f9;
}
	f0 = f4+f0;
	f4 =                       0.5;
	f5 = f6+f5;
	f6 = f7+f8;
	f0 = f0*f4;
	f5 = f5*f4;
	f6 = f6*f4;
	r7 = (r7 + 1)|0;
	f3 = f3+f0;
	f2 = f2+f5;
	f1 = f1+f6;
if(!(r1 !=r7)) //_LBB154_10
{
break _7;
}
}
	f0 = r2; //fitos r2, f0
	if(r0 <r1) //_LBB154_16
{
	f5 =                         1;
	f5 = f5/f0;
	f6 = f3*f5;
	f7 = f2*f5;
	f5 = f1*f5;
	f1 =                         0;
	r6 = r0;
	f2 = f1;
	f3 = f1;
_16: while(true){
	if(r8 ==0) //_LBB154_19
{
	r7 = heap32[(r4+19)];
	r9 = r6 << 6;
	r7 = (r7 + r9)|0;
	r7 = r7 >> 2;
	f8 = heapFloat[(r7)];
	f10 = heapFloat[(r7+1)];
	f13 = heapFloat[(r7+2)];
	f9 = heapFloat[(r7+4)];
	f11 = heapFloat[(r7+5)];
	f12 = heapFloat[(r7+6)];
}
else{
	r7 = heap32[(r4+29)];
	r9 = r6 << 4;
	r10 = (r7 + r9)|0;
	r7 = heapU16[(r7+r9)>>1];
	r9 = heapU16[(r10+2)>>1];
	r11 = heapU16[(r10+4)>>1];
	r12 = heapU16[(r10+6)>>1];
	r13 = heapU16[(r10+8)>>1];
	r10 = heapU16[(r10+10)>>1];
	f8 = uint(r7); //fuitos r7, f8
	f9 = heapFloat[(r4+9)];
	f10 = uint(r12); //fuitos r12, f10
	f11 = uint(r9); //fuitos r9, f11
	f12 = heapFloat[(r4+10)];
	f13 = uint(r13); //fuitos r13, f13
	f14 = uint(r11); //fuitos r11, f14
	f15 = heapFloat[(r4+11)];
	f16 = uint(r10); //fuitos r10, f16
	f8 = f8/f9;
	f17 = heapFloat[(r4+1)];
	f9 = f10/f9;
	f10 = f11/f12;
	f11 = heapFloat[(r4+2)];
	f12 = f13/f12;
	f13 = f14/f15;
	f14 = heapFloat[(r4+3)];
	f15 = f16/f15;
	f8 = f8+f17;
	f10 = f10+f11;
	f13 = f13+f14;
	f9 = f9+f17;
	f11 = f12+f11;
	f12 = f15+f14;
}
	f8 = f9+f8;
	f9 = f11+f10;
	f10 = f12+f13;
	f8 = f8*f4;
	f9 = f9*f4;
	f10 = f10*f4;
	f8 = f8-f6;
	f9 = f9-f7;
	f10 = f10-f5;
	f8 = f8*f8;
	f9 = f9*f9;
	f10 = f10*f10;
	r6 = (r6 + 1)|0;
	f3 = f3+f8;
	f2 = f2+f9;
	f1 = f1+f10;
if(!(r1 !=r6)) //_LBB154_17
{
break _5;
}
}
}
else{
	f1 =                         0;
	f2 = f1;
	f3 = f1;
}
}
else{
	f0 = r2; //fitos r2, f0
	f1 =                         0;
	f2 = f1;
	f3 = f1;
}
} while(0);
	f4 =                        -1;
	f5 =                         1;
	f0 = f0+f4;
	f0 = f5/f0;
	f3 = f3*f0;
	f2 = f2*f0;
	f0 = f1*f0;
	if(f3 >=f2) //_LBB154_23
{
	r6 = 2;
	r7 = 0;
	r6 = f3 < f0 ? r6 : r7;
}
else{
	r6 = 2;
	r7 = 1;
	r6 = f2 < f0 ? r6 : r7;
}
	r7 = sp + -32;
	r8 = r7 >> 2;
	heap32[(fp+-8)] = 0;
	heap32[(r8+1)] = 0;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 0;
	if(r0 <r1) //_LBB154_26
{
	r9 = heapU8[r3+60];
	f0 =                         0;
	r10 = r0;
	f1 = f0;
	f2 = f0;
_31: while(true){
	r11 = r9 & 255;
	if(r11 ==0) //_LBB154_29
{
	r11 = heap32[(r4+19)];
	r12 = r10 << 6;
	r11 = (r11 + r12)|0;
	r11 = r11 >> 2;
	f3 = heapFloat[(r11)];
	f6 = heapFloat[(r11+1)];
	f9 = heapFloat[(r11+2)];
	f4 = heapFloat[(r11+4)];
	f7 = heapFloat[(r11+5)];
	f8 = heapFloat[(r11+6)];
}
else{
	r11 = heap32[(r4+29)];
	r12 = r10 << 4;
	r13 = (r11 + r12)|0;
	r11 = heapU16[(r11+r12)>>1];
	r12 = heapU16[(r13+2)>>1];
	r14 = heapU16[(r13+4)>>1];
	r15 = heapU16[(r13+6)>>1];
	r16 = heapU16[(r13+8)>>1];
	r13 = heapU16[(r13+10)>>1];
	f3 = uint(r11); //fuitos r11, f3
	f4 = heapFloat[(r4+9)];
	f6 = uint(r15); //fuitos r15, f6
	f7 = uint(r12); //fuitos r12, f7
	f8 = heapFloat[(r4+10)];
	f9 = uint(r16); //fuitos r16, f9
	f10 = uint(r14); //fuitos r14, f10
	f11 = heapFloat[(r4+11)];
	f12 = uint(r13); //fuitos r13, f12
	f3 = f3/f4;
	f13 = heapFloat[(r4+1)];
	f4 = f6/f4;
	f6 = f7/f8;
	f7 = heapFloat[(r4+2)];
	f8 = f9/f8;
	f9 = f10/f11;
	f10 = heapFloat[(r4+3)];
	f11 = f12/f11;
	f3 = f3+f13;
	f6 = f6+f7;
	f9 = f9+f10;
	f4 = f4+f13;
	f7 = f8+f7;
	f8 = f11+f10;
}
	f3 = f4+f3;
	f4 =                       0.5;
	f6 = f7+f6;
	f7 = f8+f9;
	f3 = f3*f4;
	f6 = f6*f4;
	f4 = f7*f4;
	r10 = (r10 + 1)|0;
	f2 = f2+f3;
	f1 = f1+f6;
	f0 = f0+f4;
if(!(r1 !=r10)) //_LBB154_27
{
break _31;
}
}
	heapFloat[(r8+2)] = f0;
	heapFloat[(r8+1)] = f1;
	heapFloat[(fp+-8)] = f2;
}
else{
	f0 =                         0;
	f1 = f0;
	f2 = f0;
}
	f3 = r2; //fitos r2, f3
	f3 = f5/f3;
	f2 = f2*f3;
	f1 = f1*f3;
	heapFloat[(fp+-8)] = f2;
	f0 = f0*f3;
	heapFloat[(r8+1)] = f1;
	heapFloat[(r8+2)] = f0;
_40: do {
	if(r0 <r1) //_LBB154_34
{
	r8 = r6 << 2;
	r6 = (r7 + r8)|0;
	r6 = r6 >> 2;
	f0 = heapFloat[(r6)];
	r6 = r0 << 4;
	r7 = (r0 - r1)|0;
	r9 = r0 << 6;
	r10 = r6 | 12;
	r11 = 0;
	r12 = r9;
	r6 = r0;
_42: while(true){
	r13 = heapU8[r3+60];
	if(r13 ==0) //_LBB154_37
{
	r14 = r11 << 4;
	r15 = heap32[(r4+19)];
	r15 = (r15 + r9)|0;
	r14 = r14 << 2;
	r14 = (r15 - r14)|0;
	r14 = r14 >> 2;
	f1 = heapFloat[(r14)];
	f3 = heapFloat[(r14+1)];
	f6 = heapFloat[(r14+2)];
	f2 = heapFloat[(r14+4)];
	f4 = heapFloat[(r14+5)];
	f5 = heapFloat[(r14+6)];
}
else{
	r14 = heap32[(r4+29)];
	r14 = (r14 + r10)|0;
	r15 = r11 << 4;
	r14 = (r14 - r15)|0;
	r15 = heapU16[(r14+-12)>>1];
	r16 = heapU16[(r14+-10)>>1];
	r17 = heapU16[(r14+-8)>>1];
	r18 = heapU16[(r14+-6)>>1];
	r19 = heapU16[(r14+-4)>>1];
	r14 = heapU16[(r14+-2)>>1];
	f1 = uint(r15); //fuitos r15, f1
	f2 = heapFloat[(r4+9)];
	f3 = uint(r18); //fuitos r18, f3
	f4 = uint(r16); //fuitos r16, f4
	f5 = heapFloat[(r4+10)];
	f6 = uint(r19); //fuitos r19, f6
	f7 = uint(r17); //fuitos r17, f7
	f8 = heapFloat[(r4+11)];
	f9 = uint(r14); //fuitos r14, f9
	f1 = f1/f2;
	f10 = heapFloat[(r4+1)];
	f2 = f3/f2;
	f3 = f4/f5;
	f4 = heapFloat[(r4+2)];
	f5 = f6/f5;
	f6 = f7/f8;
	f7 = heapFloat[(r4+3)];
	f8 = f9/f8;
	f1 = f1+f10;
	f3 = f3+f4;
	f6 = f6+f7;
	f2 = f2+f10;
	f4 = f5+f4;
	f5 = f8+f7;
}
	f1 = f2+f1;
	f2 =                       0.5;
	r14 = sp + -48;
	f3 = f4+f3;
	f1 = f1*f2;
	f4 = f5+f6;
	r15 = r14 >> 2;
	f3 = f3*f2;
	heapFloat[(fp+-12)] = f1;
	f1 = f4*f2;
	heapFloat[(r15+1)] = f3;
	r14 = (r14 + r8)|0;
	heapFloat[(r15+2)] = f1;
	r14 = r14 >> 2;
	heap32[(r15+3)] = 0;
	f1 = heapFloat[(r14)];
	if(f1 >f0) //_LBB154_40
{
	if(r13 ==0) //_LBB154_42
{
	r13 = r11 << 4;
	r14 = heap32[(r4+19)];
	r15 = (r14 + r9)|0;
	r13 = r13 << 2;
	r13 = (r15 - r13)|0;
	r13 = r13 >> 2;
	r15 = heap32[(r13+15)];
	r16 = heap32[(r13+14)];
	r17 = heap32[(r13+13)];
	r18 = heap32[(r13+12)];
	r19 = heap32[(r13+11)];
	r20 = heap32[(r13+10)];
	r21 = heap32[(r13+9)];
	r22 = heap32[(r13+8)];
	f1 = heapFloat[(r13+7)];
	f2 = heapFloat[(r13+6)];
	f3 = heapFloat[(r13+5)];
	f4 = heapFloat[(r13+4)];
	f5 = heapFloat[(r13+3)];
	f6 = heapFloat[(r13+2)];
	f7 = heapFloat[(r13+1)];
	f8 = heapFloat[(r13)];
	r13 = r6 << 6;
	r23 = (r14 + r12)|0;
	r14 = (r14 + r13)|0;
	heap32[(g0)] = r23;
	heap32[(g0+1)] = r14;
	heap32[(g0+2)] = 64;
	memcpy(i7);
	r14 = heap32[(r4+19)];
	r13 = (r14 + r13)|0;
	r13 = r13 >> 2;
	heapFloat[(r13)] = f8;
	heapFloat[(r13+1)] = f7;
	heapFloat[(r13+2)] = f6;
	heapFloat[(r13+3)] = f5;
	heapFloat[(r13+4)] = f4;
	heapFloat[(r13+5)] = f3;
	heapFloat[(r13+6)] = f2;
	heapFloat[(r13+7)] = f1;
	heap32[(r13+8)] = r22;
	heap32[(r13+9)] = r21;
	heap32[(r13+10)] = r20;
	heap32[(r13+11)] = r19;
	heap32[(r13+12)] = r18;
	heap32[(r13+13)] = r17;
	heap32[(r13+14)] = r16;
	heap32[(r13+15)] = r15;
}
else{
	r13 = heap32[(r4+29)];
	r14 = (r13 + r10)|0;
	r15 = r11 << 4;
	r14 = (r14 - r15)|0;
	r15 = r6 << 4;
	r16 = r14 >> 2;
	r17 = heap32[(r16)];
	r18 = heapU16[(r14+-2)>>1];
	r19 = heapU16[(r14+-4)>>1];
	r20 = heapU16[(r14+-6)>>1];
	r21 = heapU16[(r14+-8)>>1];
	r22 = heapU16[(r14+-10)>>1];
	r23 = heapU16[(r13+r15)>>1];
	r24 = heapU16[(r14+-12)>>1];
	r13 = (r13 + r15)|0;
	heap16[(r14+-12)>>1] = r23;
	r23 = heapU16[(r13+2)>>1];
	heap16[(r14+-10)>>1] = r23;
	r23 = heapU16[(r13+4)>>1];
	heap16[(r14+-8)>>1] = r23;
	r23 = heapU16[(r13+6)>>1];
	heap16[(r14+-6)>>1] = r23;
	r23 = heapU16[(r13+8)>>1];
	heap16[(r14+-4)>>1] = r23;
	r23 = heapU16[(r13+10)>>1];
	r13 = r13 >> 2;
	heap16[(r14+-2)>>1] = r23;
	r13 = heap32[(r13+3)];
	heap32[(r16)] = r13;
	r13 = heap32[(r4+29)];
	r14 = (r13 + r15)|0;
	heap16[(r13+r15)>>1] = r24;
	heap16[(r14+2)>>1] = r22;
	heap16[(r14+4)>>1] = r21;
	heap16[(r14+6)>>1] = r20;
	heap16[(r14+8)>>1] = r19;
	r13 = r14 >> 2;
	heap16[(r14+10)>>1] = r18;
	heap32[(r13+3)] = r17;
}
	r6 = (r6 + 1)|0;
}
	r11 = (r11 + -1)|0;
	r12 = (r12 + 64)|0;
if(!(r7 !=r11)) //_LBB154_35
{
break _40;
}
}
}
else{
	r6 = r0;
}
} while(0);
	r7 = (r2 / 3)|0;
	r8 = (r7 + r0)|0;
	if(r8 >=r6) //_LBB154_48
{
__label__ = 46;
}
else{
	r8 = (r1 + -1)|0;
	r7 = (r8 - r7)|0;
	if(r7 <=r6) //_LBB154_48
{
__label__ = 46;
}
else{
__label__ = 47;
}
}
if (__label__ == 46){
	r6 = r2 >> 1;
	r6 = (r6 + r0)|0;
}
if(!(r6 ==r0)) //_LBB154_51
{
	if(r6 !=r1) //_LBB154_52
{
	r2 = heap32[(r4+14)];
	heap32[(fp+-21)] = r2;
	r2 = heapU8[r3+60];
	if(r2 ==0) //_LBB154_54
{
	r2 = heap32[(fp+-21)];
	r2 = r2 << 6;
	r7 = heap32[(r4+24)];
	r2 = (r7 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = heap32[(r4+5)];
	heap32[(r2+1)] = heap32[(r4+6)];
	heap32[(r2+2)] = heap32[(r4+7)];
	heap32[(r2+3)] = heap32[(r4+8)];
}
else{
	r2 = heap32[(r4+34)];
	r7 = heap32[(fp+-21)];
	r7 = r7 << 4;
	r2 = (r2 + r7)|0;
	r7 = (r3 + 20)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = 0;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
}
	r2 = heap32[(r4+14)];
	r7 = heapU8[r3+60];
	if(r7 ==0) //_LBB154_57
{
	r2 = r2 << 6;
	r7 = heap32[(r4+24)];
	r2 = (r7 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2+4)] = heap32[(r4+1)];
	heap32[(r2+5)] = heap32[(r4+2)];
	heap32[(r2+6)] = heap32[(r4+3)];
	heap32[(r2+7)] = heap32[(r4+4)];
}
else{
	r7 = heap32[(r4+34)];
	r2 = r2 << 4;
	r2 = (r7 + r2)|0;
	r2 = (r2 + 6)|0;
	r7 = (r3 + 4)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = 1;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
}
_73: do {
if(!(r0 >=r1)) //_LBB154_95
{
	r2 = r0;
_75: while(true){
	r7 = heapU8[r3+60];
_77: do {
	if(r7 ==0) //_LBB154_69
{
	r7 = heap32[(r4+19)];
	r8 = r2 << 6;
	r7 = (r7 + r8)|0;
	r7 = r7 >> 2;
	f0 = heapFloat[(r7+4)];
	r8 = sp + -80;
	heapFloat[(fp+-20)] = f0;
	f1 = heapFloat[(r7+5)];
	r8 = r8 >> 2;
	heapFloat[(r8+1)] = f1;
	f2 = heapFloat[(r7+6)];
	heapFloat[(r8+2)] = f2;
	f3 = heapFloat[(r7+7)];
	heapFloat[(r8+3)] = f3;
	f4 = heapFloat[(r7)];
	r8 = sp + -64;
	heapFloat[(fp+-16)] = f4;
	f5 = heapFloat[(r7+1)];
	r8 = r8 >> 2;
	heapFloat[(r8+1)] = f5;
	f6 = heapFloat[(r7+2)];
	heapFloat[(r8+2)] = f6;
	f7 = heapFloat[(r7+3)];
	heapFloat[(r8+3)] = f7;
	r7 = heap32[(r4+14)];
	r8 = heap32[(r4+24)];
	r7 = r7 << 6;
	r8 = (r8 + r7)|0;
	r8 = r8 >> 2;
	f8 = heapFloat[(r8)];
if(!(f4 >=f8)) //_LBB154_71
{
	heapFloat[(r8)] = f4;
}
	f4 = heapFloat[(r8+1)];
if(!(f5 >=f4)) //_LBB154_73
{
	heapFloat[(r8+1)] = f5;
}
	f4 = heapFloat[(r8+2)];
if(!(f6 >=f4)) //_LBB154_75
{
	heapFloat[(r8+2)] = f6;
}
	f4 = heapFloat[(r8+3)];
if(!(f7 >=f4)) //_LBB154_77
{
	heapFloat[(r8+3)] = f7;
}
	r8 = heap32[(r4+24)];
	r7 = (r8 + r7)|0;
	r7 = r7 >> 2;
	f4 = heapFloat[(r7+4)];
if(!(f4 >=f0)) //_LBB154_79
{
	heapFloat[(r7+4)] = f0;
}
	f0 = heapFloat[(r7+5)];
if(!(f0 >=f1)) //_LBB154_81
{
	heapFloat[(r7+5)] = f1;
}
	f0 = heapFloat[(r7+6)];
if(!(f0 >=f2)) //_LBB154_83
{
	heapFloat[(r7+6)] = f2;
}
	f0 = heapFloat[(r7+7)];
	if(f0 >=f3) //_LBB154_94
{
break _77;
}
else{
	heapFloat[(r7+7)] = f3;
}
}
else{
	r7 = heap32[(r4+29)];
	r8 = r2 << 4;
	r9 = (r7 + r8)|0;
	r10 = sp + -80;
	r11 = heapU16[(r9+10)>>1];
	r12 = heapU16[(r9+8)>>1];
	r13 = heapU16[(r9+6)>>1];
	f0 = heapFloat[(r4+11)];
	f1 = heapFloat[(r4+10)];
	f2 = heapFloat[(r4+9)];
	r14 = r10 >> 2;
	f3 = uint(r13); //fuitos r13, f3
	heap32[(r14+3)] = 0;
	f3 = f3/f2;
	f4 = heapFloat[(r4+1)];
	f3 = f3+f4;
	f5 = uint(r12); //fuitos r12, f5
	heapFloat[(fp+-20)] = f3;
	f3 = f5/f1;
	f5 = heapFloat[(r4+2)];
	f3 = f3+f5;
	f6 = uint(r11); //fuitos r11, f6
	heapFloat[(r14+1)] = f3;
	f3 = f6/f0;
	f6 = heapFloat[(r4+3)];
	f3 = f3+f6;
	heapFloat[(r14+2)] = f3;
	r7 = heapU16[(r7+r8)>>1];
	r8 = sp + -64;
	f3 = uint(r7); //fuitos r7, f3
	r7 = heapU16[(r9+4)>>1];
	r9 = heapU16[(r9+2)>>1];
	f7 = uint(r9); //fuitos r9, f7
	f2 = f3/f2;
	r9 = r8 >> 2;
	f3 = uint(r7); //fuitos r7, f3
	f1 = f7/f1;
	f2 = f2+f4;
	heap32[(r9+3)] = 0;
	f0 = f3/f0;
	f1 = f1+f5;
	heapFloat[(fp+-16)] = f2;
	f0 = f0+f6;
	heapFloat[(r9+1)] = f1;
	heapFloat[(r9+2)] = f0;
	r7 = heap32[(r4+14)];
	r9 = sp + -6;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = 0;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
	r8 = sp + -12;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = 1;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
	r8 = heapU16[(sp+-6)>>1];
	r9 = heap32[(r4+34)];
	r7 = r7 << 4;
	r10 = heapU16[(r9+r7)>>1];
	if(uint(r10) >uint(r8)) //_LBB154_63
{
	heap16[(r9+r7)>>1] = r8;
	r9 = heap32[(r4+34)];
}
	r8 = (r9 + r7)|0;
	r10 = heapU16[(sp+-12)>>1];
	r11 = heapU16[(r8+6)>>1];
	if(uint(r11) <uint(r10)) //_LBB154_66
{
	heap16[(r8+6)>>1] = r10;
	r9 = heap32[(r4+34)];
}
	r8 = (r9 + r7)|0;
	r10 = heapU16[(sp+-4)>>1];
	r11 = heapU16[(r8+2)>>1];
	if(uint(r11) >uint(r10)) //_LBB154_89
{
	heap16[(r8+2)>>1] = r10;
	r9 = heap32[(r4+34)];
}
	r8 = (r9 + r7)|0;
	r10 = heapU16[(sp+-10)>>1];
	r11 = heapU16[(r8+8)>>1];
	if(uint(r11) <uint(r10)) //_LBB154_90
{
	heap16[(r8+8)>>1] = r10;
	r9 = heap32[(r4+34)];
}
	r8 = (r9 + r7)|0;
	r10 = heapU16[(sp+-2)>>1];
	r11 = heapU16[(r8+4)>>1];
	if(uint(r11) >uint(r10)) //_LBB154_92
{
	heap16[(r8+4)>>1] = r10;
	r9 = heap32[(r4+34)];
}
	r7 = (r9 + r7)|0;
	r8 = heapU16[(sp+-8)>>1];
	r9 = heapU16[(r7+10)>>1];
	if(uint(r9) <uint(r8)) //_LBB154_93
{
	heap16[(r7+10)>>1] = r8;
}
}
} while(0);
	r2 = (r2 + 1)|0;
if(!(r1 !=r2)) //_LBB154_60
{
break _73;
}
}
}
} while(0);
	r2 = heap32[(r4+14)];
	r7 = (r2 + 1)|0;
	heap32[(r4+14)] = r7;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r6;
	_ZN14btQuantizedBvh9buildTreeEii(i7);
	r0 = heap32[(r4+14)];
	heap32[(fp+-23)] = r0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r1;
	_ZN14btQuantizedBvh9buildTreeEii(i7);
	r0 = heap32[(r4+14)];
	r0 = (r0 - r5)|0;
	heap32[(fp+-22)] = r0;
	r0 = heapU8[r3+60];
_120: do {
if(!(r0 ==0)) //_LBB154_143
{
	r0 = heap32[(fp+-22)];
	r0 = r0 << 4;
if(!(r0 <2049)) //_LBB154_142
{
	r0 = heap32[(r4+34)];
	r1 = heap32[(fp+-23)];
	r1 = r1 << 4;
	heap32[(fp+-24)] = r1;
	r2 = r2 << 4;
	r1 = (r0 + r1)|0;
	r2 = (r0 + r2)|0;
	r5 = r1 >> 2;
	r6 = r2 >> 2;
	r5 = heap32[(r5+3)];
	r8 = 0;
	r6 = heap32[(r6+7)];
	r9 = 1;
	r10 = (r8 - r6)|0;
	r6 = r6 < 0 ? r10 : r9;
	r10 = r6 << 4;
if(!(r10 >2048)) //_LBB154_119
{
	r10 = heap32[(r4+39)];
	r11 = heap32[(r4+38)];
	if(r10 ==r11) //_LBB154_100
{
	r12 = r11 << 1;
	r12 = r11 == 0 ? r9 : r12;
	if(r10 >=r12) //_LBB154_99
{
__label__ = 92;
}
else{
	if(r12 !=0) //_LBB154_103
{
	r10 = gNumAlignedAllocs;
	r10 = r10 >> 2;
	r13 = heap32[(r10)];
	r13 = (r13 + 1)|0;
	r14 = r12 << 5;
	heap32[(r10)] = r13;
	r10 = r14 | 19;
	heap32[(g0)] = r10;
	malloc(i7);
	r13 = r_g0;
	if(r13 !=0) //_LBB154_105
{
	r10 = 0;
	r14 = (r13 + 4)|0;
	r10 = (r10 - r14)|0;
	r10 = r10 & 15;
	r10 = (r13 + r10)|0;
	r14 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r13;
	r13 = r14;
}
}
else{
	r13 = 0;
}
	r14 = (r3 + 160)|0;
	if(r11 <1) //_LBB154_108
{
	r10 = r14 >> 2;
	r16 = heap32[(r10)];
}
else{
	r10 = 0;
	r15 = r11;
_137: while(true){
	r16 = r14 >> 2;
	r16 = heap32[(r16)];
	r17 = (r16 + r10)|0;
	r17 = r17 >> 2;
	r18 = (r13 + r10)|0;
	r15 = (r15 + -1)|0;
	r10 = (r10 + 32)|0;
	r19 = heap32[(r17)];
	r18 = r18 >> 2;
	r20 = heap32[(r17+1)];
	r21 = heap32[(r17+2)];
	r22 = heap32[(r17+3)];
	r23 = heap32[(r17+4)];
	r24 = heap32[(r17+5)];
	r25 = heap32[(r17+6)];
	r17 = heap32[(r17+7)];
	heap32[(r18)] = r19;
	heap32[(r18+1)] = r20;
	heap32[(r18+2)] = r21;
	heap32[(r18+3)] = r22;
	heap32[(r18+4)] = r23;
	heap32[(r18+5)] = r24;
	heap32[(r18+6)] = r25;
	heap32[(r18+7)] = r17;
if(!(r15 !=0)) //_LBB154_109
{
break _137;
}
}
	r14 = (r3 + 160)|0;
}
	if(r16 !=0) //_LBB154_113
{
	r10 = heapU8[r3+164];
	if(r10 !=0) //_LBB154_115
{
	r10 = gNumAlignedFree;
	r10 = r10 >> 2;
	r15 = heap32[(r10)];
	r15 = (r15 + 1)|0;
	r16 = r16 >> 2;
	heap32[(r10)] = r15;
	r10 = heap32[(r16+-1)];
	heap32[(g0)] = r10;
	free(i7);
	r10 = heap32[(r4+38)];
}
else{
	r10 = r11;
}
	r15 = r14 >> 2;
	heap32[(r15)] = 0;
}
else{
	r10 = r11;
}
	r14 = r14 >> 2;
	heap8[r3+164] = r9;
	heap32[(r14)] = r13;
	heap32[(r4+39)] = r12;
__label__ = 110;
}
}
else{
__label__ = 92;
}
if (__label__ == 92){
	r10 = r11;
}
	r10 = (r10 + 1)|0;
	heap32[(r4+38)] = r10;
	r10 = heap32[(r4+40)];
	r12 = heapU16[(r2+16)>>1];
	r11 = r11 << 5;
	heap16[(r10+r11)>>1] = r12;
	r10 = (r10 + r11)|0;
	r11 = heapU16[(r2+18)>>1];
	heap16[(r10+2)>>1] = r11;
	r11 = heapU16[(r2+20)>>1];
	heap16[(r10+4)>>1] = r11;
	r11 = heapU16[(r2+22)>>1];
	heap16[(r10+6)>>1] = r11;
	r11 = heapU16[(r2+24)>>1];
	heap16[(r10+8)>>1] = r11;
	r2 = heapU16[(r2+26)>>1];
	r11 = r10 >> 2;
	heap16[(r10+10)>>1] = r2;
	heap32[(r11+3)] = r7;
	heap32[(r11+4)] = r6;
}
	r2 = (r8 - r5)|0;
	r2 = r5 < 0 ? r2 : r9;
	r5 = r2 << 4;
if(!(r5 >2048)) //_LBB154_141
{
	r5 = heap32[(r4+39)];
	r6 = heap32[(r4+38)];
	if(r5 ==r6) //_LBB154_122
{
	r7 = r6 << 1;
	r7 = r6 == 0 ? r9 : r7;
	if(r5 >=r7) //_LBB154_121
{
__label__ = 113;
}
else{
	if(r7 !=0) //_LBB154_125
{
	r5 = gNumAlignedAllocs;
	r5 = r5 >> 2;
	r10 = heap32[(r5)];
	r10 = (r10 + 1)|0;
	r11 = r7 << 5;
	heap32[(r5)] = r10;
	r5 = r11 | 19;
	heap32[(g0)] = r5;
	malloc(i7);
	r10 = r_g0;
	if(r10 !=0) //_LBB154_127
{
	r5 = (r10 + 4)|0;
	r5 = (r8 - r5)|0;
	r5 = r5 & 15;
	r5 = (r10 + r5)|0;
	r11 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r10;
	r10 = r11;
}
}
else{
	r10 = 0;
}
	r11 = (r3 + 160)|0;
	if(r6 <1) //_LBB154_130
{
	r5 = r11 >> 2;
	r12 = heap32[(r5)];
}
else{
	r5 = r6;
_166: while(true){
	r12 = r11 >> 2;
	r12 = heap32[(r12)];
	r13 = (r12 + r8)|0;
	r13 = r13 >> 2;
	r14 = (r10 + r8)|0;
	r5 = (r5 + -1)|0;
	r8 = (r8 + 32)|0;
	r15 = heap32[(r13)];
	r14 = r14 >> 2;
	r16 = heap32[(r13+1)];
	r17 = heap32[(r13+2)];
	r18 = heap32[(r13+3)];
	r19 = heap32[(r13+4)];
	r20 = heap32[(r13+5)];
	r21 = heap32[(r13+6)];
	r13 = heap32[(r13+7)];
	heap32[(r14)] = r15;
	heap32[(r14+1)] = r16;
	heap32[(r14+2)] = r17;
	heap32[(r14+3)] = r18;
	heap32[(r14+4)] = r19;
	heap32[(r14+5)] = r20;
	heap32[(r14+6)] = r21;
	heap32[(r14+7)] = r13;
if(!(r5 !=0)) //_LBB154_131
{
break _166;
}
}
	r11 = (r3 + 160)|0;
}
	if(r12 !=0) //_LBB154_135
{
	r5 = heapU8[r3+164];
	if(r5 !=0) //_LBB154_137
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r8 = heap32[(r5)];
	r8 = (r8 + 1)|0;
	r12 = r12 >> 2;
	heap32[(r5)] = r8;
	r5 = heap32[(r12+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r4+38)];
}
else{
	r5 = r6;
}
	r8 = r11 >> 2;
	heap32[(r8)] = 0;
}
else{
	r5 = r6;
}
	r8 = r11 >> 2;
	heap8[r3+164] = r9;
	heap32[(r8)] = r10;
	heap32[(r4+39)] = r7;
__label__ = 131;
}
}
else{
__label__ = 113;
}
if (__label__ == 113){
	r5 = r6;
}
	r5 = (r5 + 1)|0;
	heap32[(r4+38)] = r5;
	r5 = heap32[(r4+40)];
	r7 = heap32[(fp+-24)];
	r0 = heapU16[(r0+r7)>>1];
	r6 = r6 << 5;
	heap16[(r5+r6)>>1] = r0;
	r0 = (r5 + r6)|0;
	r5 = heapU16[(r1+2)>>1];
	heap16[(r0+2)>>1] = r5;
	r5 = heapU16[(r1+4)>>1];
	heap16[(r0+4)>>1] = r5;
	r5 = heapU16[(r1+6)>>1];
	heap16[(r0+6)>>1] = r5;
	r5 = heapU16[(r1+8)>>1];
	heap16[(r0+8)>>1] = r5;
	r1 = heapU16[(r1+10)>>1];
	r5 = r0 >> 2;
	heap16[(r0+10)>>1] = r1;
	r0 = heap32[(fp+-23)];
	heap32[(r5+3)] = r0;
	heap32[(r5+4)] = r2;
}
	r0 = heap32[(r4+38)];
	heap32[(r4+42)] = r0;
	r0 = heapU8[r3+60];
	if(r0 ==0) //_LBB154_143
{
break _120;
}
}
	r0 = heap32[(fp+-21)];
	r0 = r0 << 4;
	r4 = heap32[(r4+34)];
	r4 = (r4 + r0)|0;
	r0 = 0;
	r4 = r4 >> 2;
	r1 = heap32[(fp+-22)];
	r0 = (r0 - r1)|0;
	heap32[(r4+3)] = r0;
	return;
}
} while(0);
	r0 = heap32[(fp+-21)];
	r0 = r0 << 6;
	r1 = heap32[(r4+24)];
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	r1 = heap32[(fp+-22)];
	heap32[(r0+8)] = r1;
	return;
}
}
	r0 = _2E_str21;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 278;
	_assert(i7);
}
else{
	r1 = heapU8[r3+60];
	if(r1 ==0) //_LBB154_5
{
	r1 = heap32[(r4+24)];
	r2 = heap32[(r4+19)];
	r3 = r5 << 6;
	r0 = r0 << 6;
	r1 = (r1 + r3)|0;
	r0 = (r2 + r0)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 64;
	memcpy(i7);
}
else{
	r0 = r0 << 4;
	r1 = heap32[(r4+29)];
	r2 = heap32[(r4+34)];
	r3 = heapU16[(r1+r0)>>1];
	r5 = r5 << 4;
	r0 = (r1 + r0)|0;
	heap16[(r2+r5)>>1] = r3;
	r1 = (r2 + r5)|0;
	r2 = heapU16[(r0+2)>>1];
	heap16[(r1+2)>>1] = r2;
	r2 = heapU16[(r0+4)>>1];
	heap16[(r1+4)>>1] = r2;
	r2 = heapU16[(r0+6)>>1];
	heap16[(r1+6)>>1] = r2;
	r2 = heapU16[(r0+8)>>1];
	heap16[(r1+8)>>1] = r2;
	r2 = heapU16[(r0+10)>>1];
	r0 = r0 >> 2;
	heap16[(r1+10)>>1] = r2;
	r1 = r1 >> 2;
	r0 = heap32[(r0+3)];
	heap32[(r1+3)] = r0;
}
	r0 = heap32[(r4+14)];
	r0 = (r0 + 1)|0;
	heap32[(r4+14)] = r0;
	return;
}
}
else{
	r0 = _2E_str2246;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 127;
	_assert(i7);
}
}

function _ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
var __label__ = 0;
	i7 = sp + -96;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+60];
	if(r1 !=0) //_LBB155_2
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = heap32[(fp+4)];
	r5 = heap32[(fp+5)];
	r6 = heap32[(fp+6)];
	r3 = r3 >> 2;
	r2 = r2 >> 2;
	f0 = heapFloat[(r3)];
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r3+1)];
	f3 = heapFloat[(r2+1)];
	f0 = f0-f1;
	r7 = r0 >> 2;
	f1 = f2-f3;
	f2 = heapFloat[(r3+2)];
	f3 = heapFloat[(r2+2)];
	r8 = heap32[(r7+34)];
	f2 = f2-f3;
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f4 =                         1;
	f3 = f4/f_g0;
	f5 = heapFloat[(r3)];
	f6 = heapFloat[(r2)];
	f7 = heapFloat[(r3+1)];
	f8 = heapFloat[(r2+1)];
	f0 = f0*f3;
	f9 = f5-f6;
	f1 = f1*f3;
	f10 = f7-f8;
	f11 = heapFloat[(r3+2)];
	f12 = heapFloat[(r2+2)];
	f2 = f2*f3;
	f3 = f11-f12;
	f9 = f0*f9;
	f10 = f1*f10;
	f9 = f9+f10;
	f3 = f2*f3;
	f3 = f9+f3;
	f9 =                         0;
	if(f0 !=f9) //_LBB155_4
{
	f0 = f4/f0;
}
else{
	f0 =        999999984306749440;
}
	if(f1 !=f9) //_LBB155_7
{
	f1 = f4/f1;
}
else{
	f1 =        999999984306749440;
}
	if(f2 !=f9) //_LBB155_10
{
	f2 = f4/f2;
}
else{
	f2 =        999999984306749440;
}
	r9 = heapU8[r0+60];
	if(r9 !=0) //_LBB155_13
{
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	r9 = f0 < f9;
	r10 = f1 < f9;
	r11 = f2 < f9;
	f4 = heapFloat[(r2+3)];
	f10 = heapFloat[(r3+3)];
	f13 = f5 < f6 ? f5 : f6;
	f14 = heapFloat[(r4)];
	f15 = f7 < f8 ? f7 : f8;
	f16 = heapFloat[(r4+1)];
	f17 = f11 < f12 ? f11 : f12;
	f18 = heapFloat[(r4+2)];
	f5 = f6 < f5 ? f5 : f6;
	f6 = heapFloat[(r5)];
	f7 = f8 < f7 ? f7 : f8;
	f8 = heapFloat[(r5+1)];
	f11 = f12 < f11 ? f11 : f12;
	f12 = heapFloat[(r5+2)];
	r3 = r9 & 1;
	r9 = r10 & 1;
	r10 = r11 & 1;
	f19 = f10 < f4 ? f10 : f4;
	f4 = f4 < f10 ? f10 : f4;
	f10 = f13+f14;
	f13 = f15+f16;
	f14 = f17+f18;
	f5 = f5+f6;
	f6 = f7+f8;
	f7 = f11+f12;
	r11 = sp + -16;
	r12 = r11 >> 2;
	heapFloat[(fp+-4)] = f10;
	heapFloat[(r12+1)] = f13;
	heapFloat[(r12+2)] = f14;
	heapFloat[(r12+3)] = f19;
	f8 = heapFloat[(r7+1)];
	if(f10 <f8) //_LBB155_15
{
	heapFloat[(fp+-4)] = f8;
	f10 = f8;
}
	f8 = heapFloat[(r7+2)];
	if(f13 <f8) //_LBB155_18
{
	heapFloat[(r12+1)] = f8;
	f13 = f8;
}
	f8 = heapFloat[(r7+3)];
	if(f14 <f8) //_LBB155_21
{
	heapFloat[(r12+2)] = f8;
	f14 = f8;
}
	f8 = heapFloat[(r7+4)];
	if(f19 <f8) //_LBB155_24
{
	heapFloat[(r12+3)] = f8;
	f19 = f8;
}
	f8 = heapFloat[(r7+5)];
if(!(f8 >=f10)) //_LBB155_27
{
	heapFloat[(fp+-4)] = f8;
}
	f8 = heapFloat[(r7+6)];
if(!(f8 >=f13)) //_LBB155_29
{
	heapFloat[(r12+1)] = f8;
}
	f8 = heapFloat[(r7+7)];
if(!(f8 >=f14)) //_LBB155_31
{
	heapFloat[(r12+2)] = f8;
}
	f8 = heapFloat[(r7+8)];
if(!(f8 >=f19)) //_LBB155_33
{
	heapFloat[(r12+3)] = f8;
}
	r12 = sp + -38;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = 0;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
	r11 = heapU8[r0+60];
	if(r11 !=0) //_LBB155_35
{
	r11 = sp + -32;
	r12 = r11 >> 2;
	heapFloat[(fp+-8)] = f5;
	heapFloat[(r12+1)] = f6;
	heapFloat[(r12+2)] = f7;
	heapFloat[(r12+3)] = f4;
	f8 = heapFloat[(r7+1)];
	if(f5 <f8) //_LBB155_37
{
	heapFloat[(fp+-8)] = f8;
	f5 = f8;
}
	f8 = heapFloat[(r7+2)];
	if(f6 <f8) //_LBB155_40
{
	heapFloat[(r12+1)] = f8;
	f6 = f8;
}
	f8 = heapFloat[(r7+3)];
	if(f7 <f8) //_LBB155_43
{
	heapFloat[(r12+2)] = f8;
	f7 = f8;
}
	f8 = heapFloat[(r7+4)];
	if(f4 <f8) //_LBB155_46
{
	heapFloat[(r12+3)] = f8;
	f4 = f8;
}
	f8 = heapFloat[(r7+5)];
if(!(f8 >=f5)) //_LBB155_49
{
	heapFloat[(fp+-8)] = f8;
}
	f5 = heapFloat[(r7+6)];
if(!(f5 >=f6)) //_LBB155_51
{
	heapFloat[(r12+1)] = f5;
}
	f5 = heapFloat[(r7+7)];
if(!(f5 >=f7)) //_LBB155_53
{
	heapFloat[(r12+2)] = f5;
}
	f5 = heapFloat[(r7+8)];
if(!(f5 >=f4)) //_LBB155_55
{
	heapFloat[(r12+3)] = f5;
}
	r12 = sp + -44;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = 1;
	r0 = r3 ^ 1;
	r11 = r9 ^ 1;
	r12 = r10 ^ 1;
	r13 = 0;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
	r14 = r13;
_66: while(true){
	if(r13 <r6) //_LBB155_56
{
	if(r14 <r6) //_LBB155_58
{
	r15 = r8 >> 2;
	r16 = heap32[(r15+3)];
	r14 = (r14 + 1)|0;
	r16 = r16 >>> 31;
	r17 = heapU16[(sp+-38)>>1];
	r18 = heapU16[(r8+6)>>1];
	if(uint(r17) >uint(r18)) //_LBB155_64
{
__label__ = 55;
}
else{
	r17 = heapU16[(r8)>>1];
	r18 = heapU16[(sp+-44)>>1];
	r18 = r18 & 65535;
	r17 = r17 & 65535;
	if(uint(r18) <uint(r17)) //_LBB155_64
{
__label__ = 55;
}
else{
	r18 = heapU16[(sp+-34)>>1];
	r19 = heapU16[(r8+10)>>1];
	r18 = r18 & 65535;
	r19 = r19 & 65535;
	if(uint(r18) >uint(r19)) //_LBB155_64
{
__label__ = 55;
}
else{
	r18 = heapU16[(r8+4)>>1];
	r19 = heapU16[(sp+-40)>>1];
	r19 = r19 & 65535;
	r18 = r18 & 65535;
	if(uint(r19) <uint(r18)) //_LBB155_64
{
__label__ = 55;
}
else{
	r19 = heapU16[(sp+-36)>>1];
	r20 = heapU16[(r8+8)>>1];
	r19 = r19 & 65535;
	r20 = r20 & 65535;
	if(uint(r19) >uint(r20)) //_LBB155_64
{
__label__ = 55;
}
else{
	r19 = heapU16[(r8+2)>>1];
	r20 = heapU16[(sp+-42)>>1];
	r20 = r20 & 65535;
	r19 = r19 & 65535;
	if(uint(r20) >=uint(r19)) //_LBB155_65
{
	f4 = uint(r17); //fuitos r17, f4
	f5 = heapFloat[(r7+9)];
	f6 = uint(r19); //fuitos r19, f6
	f7 = heapFloat[(r7+10)];
	f4 = f4/f5;
	f8 = heapFloat[(r7+1)];
	f10 = heapFloat[(r7+11)];
	f11 = heapFloat[(r7+2)];
	f12 = heapFloat[(r7+3)];
	r17 = sp + -80;
	f13 = uint(r18); //fuitos r18, f13
	f6 = f6/f7;
	f4 = f4+f8;
	f13 = f13/f10;
	r18 = r17 >> 2;
	f6 = f6+f11;
	heapFloat[(fp+-20)] = f4;
	f13 = f13+f12;
	heapFloat[(r18+1)] = f6;
	heapFloat[(r18+2)] = f13;
	heap32[(r18+3)] = 0;
	r19 = heapU16[(r8+10)>>1];
	r20 = heapU16[(r8+8)>>1];
	r21 = heapU16[(r8+6)>>1];
	heap32[(r18+7)] = 0;
	f14 = heapFloat[(r5)];
	f4 = f4-f14;
	heapFloat[(fp+-20)] = f4;
	f4 = heapFloat[(r5+1)];
	f4 = f6-f4;
	heapFloat[(r18+1)] = f4;
	f4 = heapFloat[(r5+2)];
	f6 = uint(r21); //fuitos r21, f6
	f4 = f13-f4;
	f5 = f6/f5;
	heapFloat[(r18+2)] = f4;
	f4 = f5+f8;
	f5 = heapFloat[(r4)];
	f6 = uint(r20); //fuitos r20, f6
	f4 = f4-f5;
	f5 = f6/f7;
	heapFloat[(r18+4)] = f4;
	f4 = f5+f11;
	f5 = heapFloat[(r4+1)];
	f6 = uint(r19); //fuitos r19, f6
	f4 = f4-f5;
	f5 = f6/f10;
	heapFloat[(r18+5)] = f4;
	r19 = r3 << 4;
	r20 = r11 << 4;
	f4 = f5+f12;
	f5 = heapFloat[(r4+2)];
	r19 = (r17 + r19)|0;
	r20 = (r17 + r20)|0;
	f4 = f4-f5;
	r19 = r19 >> 2;
	heapFloat[(r18+6)] = f4;
	r18 = r20 >> 2;
	f4 = heapFloat[(r19)];
	f5 = heapFloat[(r2)];
	f6 = heapFloat[(r18+1)];
	f7 = heapFloat[(r2+1)];
	f4 = f4-f5;
	f6 = f6-f7;
	f4 = f4*f0;
	f6 = f6*f1;
	if(f4 >f6) //_LBB155_64
{
__label__ = 55;
}
else{
	r18 = r0 << 4;
	r19 = r9 << 4;
	r18 = (r17 + r18)|0;
	r19 = (r17 + r19)|0;
	r18 = r18 >> 2;
	r19 = r19 >> 2;
	f8 = heapFloat[(r18)];
	f10 = heapFloat[(r19+1)];
	f5 = f8-f5;
	f7 = f10-f7;
	f5 = f5*f0;
	f7 = f7*f1;
	if(f7 >f5) //_LBB155_64
{
__label__ = 55;
}
else{
	r18 = r12 << 4;
	r18 = (r17 + r18)|0;
	r18 = r18 >> 2;
	f8 = heapFloat[(r18+2)];
	f10 = heapFloat[(r2+2)];
	f8 = f8-f10;
	f4 = f4 < f7 ? f7 : f4;
	f7 = f8*f2;
	if(f4 >f7) //_LBB155_64
{
__label__ = 55;
}
else{
	r18 = r10 << 4;
	r17 = (r17 + r18)|0;
	r17 = r17 >> 2;
	f8 = heapFloat[(r17+2)];
	f8 = f8-f10;
	f5 = f6 < f5 ? f6 : f5;
	f6 = f8*f2;
	if(f6 >f5) //_LBB155_64
{
__label__ = 55;
}
else{
	f4 = f4 < f6 ? f6 : f4;
	f5 = f7 < f5 ? f7 : f5;
	r17 = f4 >= f3;
	r18 = f5 <= f9;
	r17 = r17 | r18;
	r18 = r17 & 1;
	r17 = r18 ^ 1;
	if(r16 != 0) //_LBB155_71
{
__label__ = 65;
}
else{
	if(r18 ==0) //_LBB155_72
{
	r18 = heap32[(r15+3)];
	if(r18 >-1) //_LBB155_74
{
	r19 = r1 >> 2;
	r19 = heap32[(r19)];
	r19 = r19 >> 2;
	r19 = heap32[(r19+2)];
	r20 = r18 >> 21;
	r18 = r18 & 2097151;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r20;
	heap32[(g0+2)] = r18;
	__FUNCTION_TABLE__[(r19)>>2](i7);
__label__ = 65;
}
else{
__label__ = 63;
break _66;
}
}
else{
__label__ = 65;
}
}
}
}
}
}
}
else{
__label__ = 55;
}
}
}
}
}
}
if (__label__ == 55){
	r17 = 0;
}
if(!(r17 !=0)) //_LBB155_77
{
	if(r16 != 0) //_LBB155_78
{
	r15 = heap32[(r15+3)];
	if(r15 <0) //_LBB155_80
{
	r16 = r15 << 4;
	r8 = (r8 - r16)|0;
	r13 = (r13 - r15)|0;
continue _66;
}
else{
__label__ = 69;
break _66;
}
}
}
	r8 = (r8 + 16)|0;
	r13 = (r13 + 1)|0;
}
else{
__label__ = 48;
break _66;
}
}
else{
__label__ = 72;
break _66;
}
}
switch(__label__ ){//multiple entries
case 72:
	r0 = maxIterations;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
if(!(r1 >=r14)) //_LBB155_84
{
	heap32[(r0)] = r14;
}
	return;
break;
case 69:
	r0 = _2E_str941;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 75;
	_assert(i7);
break;
case 63:
	r0 = _2E_str739;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 80;
	_assert(i7);
break;
case 48:
	r0 = _2E_str1143;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 606;
	_assert(i7);
break;
}
}
}
	r0 = _2E_str212;
	r1 = _2E_str313;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 420;
	_assert(i7);
}
else{
	r0 = _2E_str212;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 543;
	_assert(i7);
}
}

function _ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+60];
	if(r1 ==0) //_LBB156_2
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = heap32[(fp+4)];
	r5 = heap32[(fp+5)];
	r3 = r3 >> 2;
	r2 = r2 >> 2;
	f0 = heapFloat[(r2)];
	f1 = heapFloat[(r3)];
	f2 = heapFloat[(r3+1)];
	f3 = heapFloat[(r2+1)];
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	f4 = f1-f0;
	r0 = r0 >> 2;
	f5 = f2-f3;
	f6 = heapFloat[(r3+2)];
	f7 = heapFloat[(r2+2)];
	r6 = heap32[(r0+24)];
	f8 = f6-f7;
	f9 = f4*f4;
	f10 = f5*f5;
	f11 = heapFloat[(r4)];
	f12 = heapFloat[(r4+1)];
	f13 = heapFloat[(r4+2)];
	f14 = heapFloat[(r5)];
	f15 = heapFloat[(r5+1)];
	f16 = heapFloat[(r5+2)];
	f9 = f9+f10;
	f10 = f8*f8;
	f9 = f9+f10;
	heapFloat[(g0)] = f9;
	sqrtf(i7);
	f10 =                         1;
	f9 = f10/f_g0;
	f17 = heapFloat[(r3)];
	f18 = heapFloat[(r2)];
	f19 = heapFloat[(r3+1)];
	f20 = heapFloat[(r2+1)];
	f4 = f4*f9;
	f17 = f17-f18;
	f5 = f5*f9;
	f18 = f19-f20;
	f19 = heapFloat[(r3+2)];
	f20 = heapFloat[(r2+2)];
	f8 = f8*f9;
	f9 = f19-f20;
	f17 = f4*f17;
	f18 = f5*f18;
	f19 = f1 < f0 ? f1 : f0;
	f20 = f2 < f3 ? f2 : f3;
	f21 = f6 < f7 ? f6 : f7;
	f0 = f0 < f1 ? f1 : f0;
	f1 = f3 < f2 ? f2 : f3;
	f2 = f7 < f6 ? f6 : f7;
	f3 = f17+f18;
	f6 = f8*f9;
	f7 = f19+f11;
	f9 = f20+f12;
	f11 = f21+f13;
	f0 = f0+f14;
	f1 = f1+f15;
	f2 = f2+f16;
	f3 = f3+f6;
	f6 =                         0;
	if(f4 !=f6) //_LBB156_4
{
	f4 = f10/f4;
}
else{
	f4 =        999999984306749440;
}
	if(f5 !=f6) //_LBB156_7
{
	f5 = f10/f5;
}
else{
	f5 =        999999984306749440;
}
	if(f8 !=f6) //_LBB156_10
{
	f8 = f10/f8;
}
else{
	f8 =        999999984306749440;
}
	r3 = f4 < f6;
	r7 = f5 < f6;
	r8 = f8 < f6;
	r3 = r3 & 1;
	r7 = r7 & 1;
	r8 = r8 & 1;
	r9 = r3 ^ 1;
	r10 = r7 ^ 1;
	r11 = r8 ^ 1;
	r12 = 0;
	r13 = r12;
_15: while(true){
	r14 = heap32[(r0+14)];
	if(r14 >r12) //_LBB156_12
{
	if(r14 >r13) //_LBB156_14
{
	r14 = r6 >> 2;
	f10 = heapFloat[(r14)];
	r15 = sp + -32;
	heapFloat[(fp+-8)] = f10;
	r16 = r15 >> 2;
	f12 = heapFloat[(r14+1)];
	heapFloat[(r16+1)] = f12;
	f13 = heapFloat[(r14+2)];
	heapFloat[(r16+2)] = f13;
	heap32[(r16+3)] = heap32[(r14+3)];
	f14 = heapFloat[(r14+4)];
	heapFloat[(r16+4)] = f14;
	f15 = heapFloat[(r14+5)];
	heapFloat[(r16+5)] = f15;
	f16 = heapFloat[(r14+6)];
	heapFloat[(r16+6)] = f16;
	heap32[(r16+7)] = heap32[(r14+7)];
	f17 = heapFloat[(r5)];
	f10 = f10-f17;
	heapFloat[(fp+-8)] = f10;
	f10 = heapFloat[(r5+1)];
	f10 = f12-f10;
	heapFloat[(r16+1)] = f10;
	f10 = heapFloat[(r5+2)];
	f10 = f13-f10;
	heapFloat[(r16+2)] = f10;
	f10 = heapFloat[(r4)];
	f10 = f14-f10;
	heapFloat[(r16+4)] = f10;
	f10 = heapFloat[(r4+1)];
	f10 = f15-f10;
	heapFloat[(r16+5)] = f10;
	f10 = heapFloat[(r4+2)];
	r13 = (r13 + 1)|0;
	f10 = f16-f10;
	heapFloat[(r16+6)] = f10;
	f10 = heapFloat[(r14+4)];
	if(f7 >f10) //_LBB156_17
{
__label__ = 17;
}
else{
	f10 = heapFloat[(r14)];
	if(f0 <f10) //_LBB156_17
{
__label__ = 17;
}
else{
	r16 = 1;
__label__ = 18;
}
}
if (__label__ == 17){
	r16 = 0;
}
	f10 = heapFloat[(r14+6)];
	if(f11 >f10) //_LBB156_21
{
__label__ = 20;
}
else{
	f10 = heapFloat[(r14+2)];
	if(f2 <f10) //_LBB156_21
{
__label__ = 20;
}
else{
__label__ = 21;
}
}
if (__label__ == 20){
	r16 = 0;
}
	f10 = heapFloat[(r14+5)];
	if(f9 >f10) //_LBB156_32
{
__label__ = 30;
}
else{
	f10 = heapFloat[(r14+1)];
	if(f1 <f10) //_LBB156_32
{
__label__ = 30;
}
else{
	r16 = r16 & 255;
	if(r16 ==0) //_LBB156_32
{
__label__ = 30;
}
else{
	r16 = r3 << 4;
	r17 = r10 << 4;
	r16 = (r15 + r16)|0;
	r17 = (r15 + r17)|0;
	r16 = r16 >> 2;
	r17 = r17 >> 2;
	f10 = heapFloat[(r16)];
	f12 = heapFloat[(r2)];
	f13 = heapFloat[(r17+1)];
	f14 = heapFloat[(r2+1)];
	f10 = f10-f12;
	f13 = f13-f14;
	f10 = f10*f4;
	f13 = f13*f5;
	if(f10 >f13) //_LBB156_32
{
__label__ = 30;
}
else{
	r16 = r9 << 4;
	r17 = r7 << 4;
	r16 = (r15 + r16)|0;
	r17 = (r15 + r17)|0;
	r16 = r16 >> 2;
	r17 = r17 >> 2;
	f15 = heapFloat[(r16)];
	f16 = heapFloat[(r17+1)];
	f12 = f15-f12;
	f14 = f16-f14;
	f12 = f12*f4;
	f14 = f14*f5;
	if(f14 >f12) //_LBB156_32
{
__label__ = 30;
}
else{
	r16 = r11 << 4;
	r16 = (r15 + r16)|0;
	r16 = r16 >> 2;
	f15 = heapFloat[(r16+2)];
	f16 = heapFloat[(r2+2)];
	f15 = f15-f16;
	f10 = f10 < f14 ? f14 : f10;
	f14 = f15*f8;
	if(f10 >f14) //_LBB156_32
{
__label__ = 30;
}
else{
	r16 = r8 << 4;
	r15 = (r15 + r16)|0;
	r15 = r15 >> 2;
	f15 = heapFloat[(r15+2)];
	f15 = f15-f16;
	f12 = f13 < f12 ? f13 : f12;
	f13 = f15*f8;
	if(f13 >f12) //_LBB156_32
{
__label__ = 30;
}
else{
	f10 = f10 < f13 ? f13 : f10;
	f12 = f14 < f12 ? f14 : f12;
	r15 = f10 >= f3;
	r16 = f12 <= f6;
	r15 = r15 | r16;
	r16 = r15 & 1;
	r17 = heap32[(r14+8)];
	r18 = -1;
	r16 = r16 ^ 1;
	r19 = r17 == r18;
	if(r15 != 0) //_LBB156_31
{
__label__ = 32;
}
else{
	r15 = r17 != r18;
	r15 = r15 & 1;
	if(r15 ==0) //_LBB156_33
{
	r15 = r1 >> 2;
	r15 = heap32[(r15)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+2)];
	r17 = heap32[(r14+10)];
	r18 = heap32[(r14+9)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r18;
	heap32[(g0+2)] = r17;
	__FUNCTION_TABLE__[(r15)>>2](i7);
__label__ = 32;
}
else{
__label__ = 32;
}
}
}
}
}
}
}
}
}
if (__label__ == 30){
	r16 = heap32[(r14+8)];
	r19 = -1;
	r19 = r16 == r19;
	r16 = 0;
}
if(!(r16 !=0)) //_LBB156_36
{
	r15 = r19 & 1;
	if(r15 ==0) //_LBB156_37
{
	r14 = heap32[(r14+8)];
	r15 = r14 << 6;
	r6 = (r6 + r15)|0;
	r12 = (r14 + r12)|0;
continue _15;
}
}
	r6 = (r6 + 64)|0;
	r12 = (r12 + 1)|0;
}
else{
__label__ = 13;
break _15;
}
}
else{
__label__ = 37;
break _15;
}
}
switch(__label__ ){//multiple entries
case 37:
	r0 = maxIterations;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
if(!(r1 >=r13)) //_LBB156_41
{
	heap32[(r0)] = r13;
}
	return;
break;
case 13:
	r0 = _2E_str1921;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 490;
	_assert(i7);
break;
}
}
else{
	r0 = _2E_str1844;
	r1 = _2E_str537;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 451;
	_assert(i7);
}
}

function _ZN30btActivatingCollisionAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV30btActivatingCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN30btActivatingCollisionAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV30btActivatingCollisionAlgorithm;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var f0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	f0 =                         1;
	f_g0 = f0;
	return;
}

function _ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+3)];
if(!(r2 ==0)) //_LBB160_23
{
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB160_23
{
	r0 = heap32[(fp+1)];
	r3 = r0 >> 2;
	r4 = heap32[(r3+2)];
	r5 = heap32[(r3+1)];
	if(r4 ==r5) //_LBB160_4
{
	r6 = 1;
	r7 = r5 << 1;
	r7 = r5 == 0 ? r6 : r7;
if(!(r4 >=r7)) //_LBB160_3
{
	if(r7 !=0) //_LBB160_7
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r4 = heap32[(r2)];
	r8 = r7 << 2;
	r4 = (r4 + 1)|0;
	r8 = r8 | 3;
	heap32[(r2)] = r4;
	r2 = (r8 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB160_9
{
	r4 = 0;
	r8 = (r2 + 4)|0;
	r4 = (r4 - r8)|0;
	r4 = r4 & 15;
	r4 = (r2 + r4)|0;
	r8 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r2;
	r2 = r8;
}
}
else{
	r2 = 0;
}
	r4 = (r0 + 12)|0;
	if(r5 <1) //_LBB160_12
{
	r8 = r4 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_15: while(true){
	r9 = r4 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r2 + r10)|0;
	r11 = heap32[(r11)];
	r8 = (r8 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r5 !=r8)) //_LBB160_13
{
break _15;
}
}
	r4 = (r0 + 12)|0;
}
	if(r9 !=0) //_LBB160_17
{
	r8 = heapU8[r0+16];
	if(r8 !=0) //_LBB160_19
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r8 = heap32[(r5)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r5)] = r8;
	r5 = heap32[(r9+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r3+1)];
}
	r8 = r4 >> 2;
	heap32[(r8)] = 0;
}
	r4 = r4 >> 2;
	heap8[r0+16] = r6;
	heap32[(r4)] = r2;
	heap32[(r3+2)] = r7;
	r2 = heap32[(r1+3)];
}
}
	r0 = r5 << 2;
	r1 = heap32[(r3+3)];
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r3+1)];
	r0 = (r0 + 1)|0;
	heap32[(r3+1)] = r0;
}
}
	return;
}

function _ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + -176;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1+3)];
if(!(r1 ==0)) //_LBB161_8
{
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	r5 = heap32[(fp+4)];
	r3 = r3 >> 2;
	r2 = r2 >> 2;
	r6 = heap32[(r3+48)];
	r7 = heap32[(r2+48)];
	r8 = sp + -136;
	r9 = r5 >> 2;
	r10 = r8 >> 2;
	heap32[(r9+1)] = r1;
	heap32[(r10+33)] = 0;
	heap32[(r10+32)] = 1566444395;
	heap32[(fp+-34)] = heap32[(r2+1)];
	heap32[(r10+1)] = heap32[(r2+2)];
	heap32[(r10+2)] = heap32[(r2+3)];
	heap32[(r10+3)] = heap32[(r2+4)];
	heap32[(r10+4)] = heap32[(r2+5)];
	heap32[(r10+5)] = heap32[(r2+6)];
	heap32[(r10+6)] = heap32[(r2+7)];
	heap32[(r10+7)] = heap32[(r2+8)];
	heap32[(r10+8)] = heap32[(r2+9)];
	heap32[(r10+9)] = heap32[(r2+10)];
	heap32[(r10+10)] = heap32[(r2+11)];
	heap32[(r10+11)] = heap32[(r2+12)];
	heap32[(r10+12)] = heap32[(r2+13)];
	heap32[(r10+13)] = heap32[(r2+14)];
	heap32[(r10+14)] = heap32[(r2+15)];
	heap32[(r10+15)] = heap32[(r2+16)];
	heap32[(r10+16)] = heap32[(r3+1)];
	heap32[(r10+17)] = heap32[(r3+2)];
	heap32[(r10+18)] = heap32[(r3+3)];
	heap32[(r10+19)] = heap32[(r3+4)];
	heap32[(r10+20)] = heap32[(r3+5)];
	heap32[(r10+21)] = heap32[(r3+6)];
	heap32[(r10+22)] = heap32[(r3+7)];
	heap32[(r10+23)] = heap32[(r3+8)];
	heap32[(r10+24)] = heap32[(r3+9)];
	heap32[(r10+25)] = heap32[(r3+10)];
	heap32[(r10+26)] = heap32[(r3+11)];
	heap32[(r10+27)] = heap32[(r3+12)];
	heap32[(r10+28)] = heap32[(r3+13)];
	heap32[(r10+29)] = heap32[(r3+14)];
	r1 = _ZTV16btBoxBoxDetector;
	heap32[(r10+30)] = heap32[(r3+15)];
	r2 = sp + -152;
	r1 = (r1 + 8)|0;
	heap32[(r10+31)] = heap32[(r3+16)];
	r3 = r2 >> 2;
	heap32[(fp+-38)] = r1;
	heap32[(r3+1)] = r7;
	r1 = r4 >> 2;
	heap32[(r3+2)] = r6;
	r1 = heap32[(r1+5)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = 0;
	_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB161_8
{
	r0 = heap32[(r9+1)];
	if(r0 !=0) //_LBB161_4
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
if(!(r2 ==0)) //_LBB161_8
{
	r1 = heap32[(r1+277)];
	r2 = heap32[(r9+34)];
	if(r1 ==r2) //_LBB161_7
{
	r1 = (r5 + 8)|0;
	r2 = (r5 + 72)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
}
else{
	r1 = (r5 + 72)|0;
	r5 = (r5 + 8)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r5;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
	return;
}
}
}
else{
	r0 = _2E_str59;
	r5 = _2E_str160;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = 101;
	_assert(i7);
}
}
}
	return;
}

function _ZN26btBoxBoxCollisionAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV26btBoxBoxCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+8];
if(!(r1 ==0)) //_LBB162_3
{
	r1 = heap32[(r2+3)];
if(!(r1 ==0)) //_LBB162_3
{
	r3 = heap32[(r2+1)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
}
	r1 = _ZTV30btActivatingCollisionAlgorithm;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN26btBoxBoxCollisionAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV26btBoxBoxCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB163_3
{
	r0 = heap32[(r2+3)];
if(!(r0 ==0)) //_LBB163_3
{
	r1 = heap32[(r2+1)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
}
	r0 = _ZTV30btActivatingCollisionAlgorithm;
	r0 = (r0 + 8)|0;
	heap32[(r2)] = r0;
	return;
}

function _ZN16btBoxBoxDetectorD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btBoxBoxDetector;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN16btBoxBoxDetectorD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btBoxBoxDetector;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -808;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = sp + -640;
	heap32[(fp+-160)] = heap32[(r1)];
	r3 = sp + -688;
	heap32[(fp+-172)] = heap32[(r1+16)];
	r4 = r2 >> 2;
	r5 = r3 >> 2;
	heap32[(r4+1)] = heap32[(r1+1)];
	heap32[(r5+1)] = heap32[(r1+17)];
	heap32[(r4+2)] = heap32[(r1+2)];
	heap32[(r5+2)] = heap32[(r1+18)];
	heap32[(r4+4)] = heap32[(r1+4)];
	heap32[(r5+4)] = heap32[(r1+20)];
	heap32[(r4+5)] = heap32[(r1+5)];
	heap32[(r5+5)] = heap32[(r1+21)];
	heap32[(r4+6)] = heap32[(r1+6)];
	heap32[(r5+6)] = heap32[(r1+22)];
	heap32[(r4+8)] = heap32[(r1+8)];
	heap32[(r5+8)] = heap32[(r1+24)];
	heap32[(r4+9)] = heap32[(r1+9)];
	heap32[(r5+9)] = heap32[(r1+25)];
	r6 = heap32[(fp)];
	heap32[(r4+10)] = heap32[(r1+10)];
	r6 = r6 >> 2;
	heap32[(r5+10)] = heap32[(r1+26)];
	r7 = heap32[(r6+2)];
	r8 = r7 >> 2;
	r9 = heap32[(r8)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+11)];
	f0 = heapFloat[(r8+7)];
	f1 = heapFloat[(r8+8)];
	f2 = heapFloat[(r8+9)];
	heap32[(g0)] = r7;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	f3 = f_g0;
	r9 = heap32[(r8)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+11)];
	heap32[(g0)] = r7;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	f4 = f_g0;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+11)];
	heap32[(g0)] = r7;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	f5 = f_g0;
	r6 = heap32[(r6+1)];
	r7 = r6 >> 2;
	r8 = heap32[(r7)];
	r8 = r8 >> 2;
	f6 = heapFloat[(r7+8)];
	r8 = heap32[(r8+11)];
	f7 = heapFloat[(r7+9)];
	f8 = heapFloat[(r7+7)];
	heap32[(g0)] = r6;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	f9 = f_g0;
	r8 = heap32[(r7)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+11)];
	heap32[(g0)] = r6;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	f10 = f_g0;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+11)];
	heap32[(g0)] = r6;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	f8 = f8+f_g0;
	f6 = f6+f10;
	f8 = f8+f8;
	f10 =                       0.5;
	heapFloat[(fp+-187)] = f10;
	f11 = heapFloat[(r1+30)];
	f12 = heapFloat[(r1+14)];
	f13 = heapFloat[(r1+29)];
	f14 = heapFloat[(r1+13)];
	f15 = heapFloat[(r1+28)];
	f16 = heapFloat[(r1+12)];
	f17 = heapFloat[(fp+-160)];
	f18 = heapFloat[(r4+4)];
	f19 = heapFloat[(r4+8)];
	f20 = heapFloat[(r4+1)];
	f21 = heapFloat[(r4+5)];
	f22 = heapFloat[(r4+9)];
	f23 = heapFloat[(r4+2)];
	f24 = heapFloat[(r4+6)];
	f25 = heapFloat[(r4+10)];
	r4 = sp + -236;
	f7 = f7+f9;
	f6 = f6+f6;
	f8 = f8*f10;
	heapFloat[(fp+-179)] = f8;
	f0 = f0+f5;
	f5 = f7+f7;
	f6 = f6*f10;
	heapFloat[(fp+-178)] = f6;
	r6 = r4 >> 2;
	heapFloat[(fp+-59)] = f8;
	f1 = f1+f4;
	f0 = f0+f0;
	f4 = f5*f10;
	heapFloat[(fp+-177)] = f4;
	heapFloat[(r6+1)] = f6;
	r7 = sp + -248;
	heap32[(fp+-186)] = r7;
	f2 = f2+f3;
	f1 = f1+f1;
	f0 = f0*f10;
	heapFloat[(fp+-181)] = f0;
	heapFloat[(r6+2)] = f4;
	f2 = f2+f2;
	f1 = f1*f10;
	heapFloat[(fp+-182)] = f1;
	r6 = r7 >> 2;
	heapFloat[(fp+-62)] = f0;
	f0 = f2*f10;
	heapFloat[(fp+-180)] = f0;
	heapFloat[(r6+1)] = f1;
	heapFloat[(r6+2)] = f0;
	f0 = f15-f16;
	heapFloat[(fp+-183)] = f0;
	f1 = f13-f14;
	heapFloat[(fp+-184)] = f1;
	f2 = heapFloat[(fp+-172)];
	heapFloat[(fp+-194)] = f2;
	f3 = heapFloat[(r5+4)];
	heapFloat[(fp+-195)] = f3;
	f4 = heapFloat[(r5+1)];
	heapFloat[(fp+-191)] = f4;
	f5 = heapFloat[(r5+5)];
	heapFloat[(fp+-192)] = f5;
	f6 = heapFloat[(r5+2)];
	heapFloat[(fp+-188)] = f6;
	f7 = heapFloat[(r5+6)];
	heapFloat[(fp+-189)] = f7;
	f8 = f11-f12;
	heapFloat[(fp+-185)] = f8;
	f9 = heapFloat[(r5+8)];
	heapFloat[(fp+-196)] = f9;
	f10 = heapFloat[(r5+9)];
	heapFloat[(fp+-193)] = f10;
	f11 = heapFloat[(r5+10)];
	heapFloat[(fp+-190)] = f11;
	f12 = f17*f2;
	f13 = f18*f3;
	f14 = f17*f0;
	f15 = f18*f1;
	f16 = f20*f0;
	f26 = f21*f1;
	f0 = f23*f0;
	heapFloat[(fp+-198)] = f0;
	f1 = f24*f1;
	f27 = f17*f4;
	f28 = f18*f5;
	f17 = f17*f6;
	f18 = f18*f7;
	f29 = f20*f2;
	f30 = f21*f3;
	f0 = f20*f4;
	heapFloat[(fp+-197)] = f0;
	f0 = f21*f5;
	f20 = f20*f6;
	f21 = f21*f7;
	f2 = f23*f2;
	f3 = f24*f3;
	f4 = f23*f4;
	f5 = f24*f5;
	f6 = f23*f6;
	f7 = f24*f7;
	f12 = f12+f13;
	f13 = f19*f9;
	f14 = f14+f15;
	f15 = f19*f8;
	f16 = f16+f26;
	f23 = f22*f8;
	f24 = heapFloat[(fp+-198)];
	f1 = f24+f1;
	f8 = f25*f8;
	f24 = f27+f28;
	f26 = f19*f10;
	f17 = f17+f18;
	f18 = f19*f11;
	f19 = f29+f30;
	f27 = f22*f9;
	f28 = heapFloat[(fp+-197)];
	f0 = f28+f0;
	f28 = f22*f10;
	f20 = f20+f21;
	f21 = f22*f11;
	f2 = f2+f3;
	f3 = f25*f9;
	f4 = f4+f5;
	f5 = f25*f10;
	f6 = f6+f7;
	f7 = f25*f11;
	f9 = f12+f13;
	r5 = heap32[(fp+2)];
	r6 = (r2 + 4)|0;
	r7 = (r3 + 4)|0;
	r8 = (r2 + 8)|0;
	r9 = (r3 + 8)|0;
	r10 = (r0 + 112)|0;
	r0 = (r0 + 48)|0;
	f10 = f14+f15;
	f11 = f16+f23;
	f1 = f1+f8;
	f8 = f24+f26;
	f12 = f17+f18;
	f13 = f19+f27;
	f0 = f0+f28;
	f14 = f20+f21;
	f2 = f2+f3;
	f3 = f4+f5;
	f4 = f6+f7;
	f5 =                         0;
	if(f9 <f5) //_LBB166_2
{
	f6 = -f9;
}
else{
	f6 = f9;
}
	if(f8 <f5) //_LBB166_5
{
	f7 = -f8;
}
else{
	f7 = f8;
}
	if(f12 <f5) //_LBB166_8
{
	f15 = -f12;
}
else{
	f15 = f12;
}
	if(f13 <f5) //_LBB166_11
{
	f16 = -f13;
}
else{
	f16 = f13;
}
	if(f0 <f5) //_LBB166_14
{
	f17 = -f0;
}
else{
	f17 = f0;
}
	if(f14 <f5) //_LBB166_17
{
	f18 = -f14;
}
else{
	f18 = f14;
}
	if(f2 <f5) //_LBB166_20
{
	f19 = -f2;
}
else{
	f19 = f2;
}
	if(f3 <f5) //_LBB166_23
{
	f20 = -f3;
}
else{
	f20 = f3;
}
	if(f4 <f5) //_LBB166_26
{
	f21 = -f4;
}
else{
	f21 = f4;
}
	if(f10 <f5) //_LBB166_29
{
	f22 = -f10;
}
else{
	f22 = f10;
}
	f23 = heapFloat[(fp+-181)];
	f23 = f23*f6;
	f24 = heapFloat[(fp+-179)];
	f23 = f24+f23;
	f24 = heapFloat[(fp+-182)];
	f24 = f24*f7;
	f23 = f23+f24;
	f24 = heapFloat[(fp+-180)];
	f24 = f24*f15;
	f23 = f23+f24;
	f22 = f22-f23;
_41: do {
if(!(f22 >f5)) //_LBB166_268
{
	f23 =  -3.4028234663852886e+038;
	if(f22 >f23) //_LBB166_33
{
	f23 =                         0;
	r11 = f10 < f23;
	r13 = sp + -640;
	r11 = r11 & 1;
	r12 = 1;
	f23 = f22;
}
else{
	r11 = 0;
	r12 = r11;
	r13 = r11;
}
	if(f11 <f5) //_LBB166_36
{
	f22 = -f11;
}
else{
	f22 = f11;
}
	f24 = heapFloat[(fp+-181)];
	f24 = f24*f16;
	f25 = heapFloat[(fp+-178)];
	f24 = f25+f24;
	f25 = heapFloat[(fp+-182)];
	f25 = f25*f17;
	f24 = f24+f25;
	f25 = heapFloat[(fp+-180)];
	f25 = f25*f18;
	f24 = f24+f25;
	f22 = f22-f24;
if(!(f22 >f5)) //_LBB166_268
{
	if(f22 >f23) //_LBB166_40
{
	f23 =                         0;
	r11 = f11 < f23;
	r11 = r11 & 1;
	r12 = 2;
	f23 = f22;
	r13 = r6;
}
	if(f1 <f5) //_LBB166_43
{
	f22 = -f1;
}
else{
	f22 = f1;
}
	f24 = heapFloat[(fp+-181)];
	f24 = f24*f19;
	f25 = heapFloat[(fp+-177)];
	f24 = f25+f24;
	f25 = heapFloat[(fp+-182)];
	f25 = f25*f20;
	f24 = f24+f25;
	f25 = heapFloat[(fp+-180)];
	f25 = f25*f21;
	f24 = f24+f25;
	f22 = f22-f24;
if(!(f22 >f5)) //_LBB166_268
{
	if(f22 >f23) //_LBB166_47
{
	f23 =                         0;
	r11 = f1 < f23;
	r11 = r11 & 1;
	r12 = 3;
	f23 = f22;
	r13 = r8;
}
	f24 = heapFloat[(fp+-183)];
	f22 = heapFloat[(fp+-194)];
	f22 = f22*f24;
	f25 = heapFloat[(fp+-184)];
	f24 = heapFloat[(fp+-195)];
	f24 = f24*f25;
	f22 = f22+f24;
	f25 = heapFloat[(fp+-185)];
	f24 = heapFloat[(fp+-196)];
	f24 = f24*f25;
	f22 = f22+f24;
	if(f22 <f5) //_LBB166_50
{
	f24 = -f22;
}
else{
	f24 = f22;
}
	f25 = heapFloat[(fp+-179)];
	f25 = f25*f6;
	f26 = heapFloat[(fp+-178)];
	f26 = f26*f16;
	f25 = f25+f26;
	f26 = heapFloat[(fp+-177)];
	f26 = f26*f19;
	f25 = f25+f26;
	f26 = heapFloat[(fp+-181)];
	f25 = f25+f26;
	f24 = f24-f25;
if(!(f24 >f5)) //_LBB166_268
{
	if(f24 >f23) //_LBB166_54
{
	f23 =                         0;
	r11 = f22 < f23;
	r13 = sp + -688;
	r11 = r11 & 1;
	r12 = 4;
	f23 = f24;
}
	f24 = heapFloat[(fp+-183)];
	f22 = heapFloat[(fp+-191)];
	f22 = f22*f24;
	f25 = heapFloat[(fp+-184)];
	f24 = heapFloat[(fp+-192)];
	f24 = f24*f25;
	f22 = f22+f24;
	f25 = heapFloat[(fp+-185)];
	f24 = heapFloat[(fp+-193)];
	f24 = f24*f25;
	f22 = f22+f24;
	if(f22 <f5) //_LBB166_57
{
	f24 = -f22;
}
else{
	f24 = f22;
}
	f25 = heapFloat[(fp+-179)];
	f25 = f25*f7;
	f26 = heapFloat[(fp+-178)];
	f26 = f26*f17;
	f25 = f25+f26;
	f26 = heapFloat[(fp+-177)];
	f26 = f26*f20;
	f25 = f25+f26;
	f26 = heapFloat[(fp+-182)];
	f25 = f25+f26;
	f24 = f24-f25;
if(!(f24 >f5)) //_LBB166_268
{
	if(f24 >f23) //_LBB166_61
{
	f23 =                         0;
	r11 = f22 < f23;
	r11 = r11 & 1;
	r12 = 5;
	f23 = f24;
	r13 = r7;
}
	f24 = heapFloat[(fp+-183)];
	f22 = heapFloat[(fp+-188)];
	f22 = f22*f24;
	f25 = heapFloat[(fp+-184)];
	f24 = heapFloat[(fp+-189)];
	f24 = f24*f25;
	f22 = f22+f24;
	f25 = heapFloat[(fp+-185)];
	f24 = heapFloat[(fp+-190)];
	f24 = f24*f25;
	f22 = f22+f24;
	if(f22 <f5) //_LBB166_64
{
	f24 = -f22;
}
else{
	f24 = f22;
}
	f25 = heapFloat[(fp+-179)];
	f25 = f25*f15;
	f26 = heapFloat[(fp+-178)];
	f26 = f26*f18;
	f25 = f25+f26;
	f26 = heapFloat[(fp+-177)];
	f26 = f26*f21;
	f25 = f25+f26;
	f26 = heapFloat[(fp+-180)];
	f25 = f25+f26;
	f24 = f24-f25;
if(!(f24 >f5)) //_LBB166_268
{
	if(f24 >f23) //_LBB166_68
{
	f23 =                         0;
	r11 = f22 < f23;
	r11 = r11 & 1;
	r12 = 6;
	f23 = f24;
	r13 = r9;
}
	f22 = f1*f13;
	f24 = f11*f2;
	f25 =   9.9999997473787516e-006;
	f22 = f22-f24;
	f6 = f6+f25;
	f7 = f7+f25;
	f15 = f15+f25;
	heapFloat[(fp+-183)] = f15;
	f15 = f16+f25;
	f16 = f17+f25;
	f17 = f18+f25;
	f18 = f19+f25;
	heapFloat[(fp+-184)] = f18;
	f18 = f20+f25;
	heapFloat[(fp+-185)] = f18;
	f18 = f21+f25;
	if(f22 <f5) //_LBB166_71
{
	f19 = -f22;
}
else{
	f19 = f22;
}
	f21 = heapFloat[(fp+-184)];
	f20 = heapFloat[(fp+-178)];
	f20 = f20*f21;
	f21 = heapFloat[(fp+-177)];
	f21 = f21*f15;
	f20 = f20+f21;
	f24 = heapFloat[(fp+-183)];
	f21 = heapFloat[(fp+-182)];
	f21 = f21*f24;
	f20 = f20+f21;
	f21 = heapFloat[(fp+-180)];
	f21 = f21*f7;
	f20 = f20+f21;
	f19 = f19-f20;
	f20 =   1.1920928955078125e-007;
if(!(f19 >f20)) //_LBB166_268
{
	f21 = f2*f2;
	f21 = f21+f5;
	f24 = f13*f13;
	heapFloat[(fp+-188)] = f24;
	f24 = f21+f24;
	heapFloat[(g0)] = f24;
	sqrtf(i7);
	f24 = f_g0;
	if(f24 >f20) //_LBB166_75
{
	f25 = f19/f24;
	f19 =        1.0499999523162842;
	f19 = f25*f19;
	if(f19 <=f23) //_LBB166_74
{
__label__ = 69;
}
else{
	f19 =                         0;
	f23 = -f2;
	r11 = f22 < f19;
	f19 = f19/f24;
	f22 = f23/f24;
	f24 = f13/f24;
	r11 = r11 & 1;
	r12 = 7;
	r13 = 0;
	f23 = f25;
__label__ = 72;
}
}
else{
__label__ = 69;
}
if (__label__ == 69){
	f19 = f5;
	f22 = f5;
	f24 = f5;
}
	f25 = f1*f0;
	f26 = f11*f3;
	f25 = f25-f26;
	if(f25 <f5) //_LBB166_79
{
	f5 = -f25;
}
else{
	f5 = f25;
}
	f27 = heapFloat[(fp+-185)];
	f26 = heapFloat[(fp+-178)];
	f26 = f26*f27;
	f27 = heapFloat[(fp+-177)];
	f27 = f27*f16;
	f26 = f26+f27;
	f28 = heapFloat[(fp+-183)];
	f27 = heapFloat[(fp+-181)];
	f27 = f27*f28;
	f26 = f26+f27;
	f27 = heapFloat[(fp+-180)];
	f27 = f27*f6;
	f26 = f26+f27;
	f5 = f5-f26;
if(!(f5 >f20)) //_LBB166_268
{
	f26 = f3*f3;
	f27 =                         0;
	f26 = f26+f27;
	f28 = f0*f0;
	heapFloat[(fp+-189)] = f28;
	f28 = f26+f28;
	heapFloat[(g0)] = f28;
	sqrtf(i7);
	f28 = f_g0;
	if(f28 >f20) //_LBB166_83
{
	f5 = f5/f28;
	f29 =        1.0499999523162842;
	f29 = f5*f29;
if(!(f29 <=f23)) //_LBB166_82
{
	f19 =                         0;
	f22 = -f3;
	r11 = f25 < f19;
	f19 = f19/f28;
	f22 = f22/f28;
	f24 = f0/f28;
	r11 = r11 & 1;
	r12 = 8;
	r13 = 0;
	f23 = f5;
}
}
	f5 = f1*f14;
	f25 = f11*f4;
	f5 = f5-f25;
	if(f5 <f27) //_LBB166_87
{
	f25 = -f5;
}
else{
	f25 = f5;
}
	f28 = heapFloat[(fp+-178)];
	f28 = f28*f18;
	f29 = heapFloat[(fp+-177)];
	f29 = f29*f17;
	f28 = f28+f29;
	f29 = heapFloat[(fp+-181)];
	f29 = f29*f7;
	f28 = f28+f29;
	f29 = heapFloat[(fp+-182)];
	f29 = f29*f6;
	f28 = f28+f29;
	f25 = f25-f28;
if(!(f25 >f20)) //_LBB166_268
{
	f28 = f4*f4;
	f28 = f28+f27;
	f29 = f14*f14;
	heapFloat[(fp+-190)] = f29;
	f29 = f28+f29;
	heapFloat[(g0)] = f29;
	sqrtf(i7);
	f29 = f_g0;
	if(f29 >f20) //_LBB166_91
{
	f25 = f25/f29;
	f30 =        1.0499999523162842;
	f30 = f25*f30;
if(!(f30 <=f23)) //_LBB166_90
{
	f19 =                         0;
	f22 = -f4;
	r11 = f5 < f19;
	f19 = f19/f29;
	f22 = f22/f29;
	f24 = f14/f29;
	r11 = r11 & 1;
	r12 = 9;
	r13 = 0;
	f23 = f25;
}
}
	f5 = f10*f2;
	f25 = f1*f9;
	f5 = f5-f25;
	if(f5 <f27) //_LBB166_95
{
	f25 = -f5;
}
else{
	f25 = f5;
}
	f30 = heapFloat[(fp+-184)];
	f29 = heapFloat[(fp+-179)];
	f29 = f29*f30;
	f30 = heapFloat[(fp+-177)];
	f30 = f30*f6;
	f29 = f29+f30;
	f30 = heapFloat[(fp+-182)];
	f30 = f30*f17;
	f29 = f29+f30;
	f30 = heapFloat[(fp+-180)];
	f30 = f30*f16;
	f29 = f29+f30;
	f25 = f25-f29;
if(!(f25 >f20)) //_LBB166_268
{
	f29 = f9*f9;
	f21 = f21+f29;
	heapFloat[(g0)] = f21;
	sqrtf(i7);
	f21 = f_g0;
	if(f21 >f20) //_LBB166_99
{
	f25 = f25/f21;
	f30 =        1.0499999523162842;
	f30 = f25*f30;
if(!(f30 <=f23)) //_LBB166_98
{
	f22 =                         0;
	f23 = -f9;
	r11 = f5 < f22;
	f19 = f2/f21;
	f22 = f22/f21;
	f24 = f23/f21;
	r11 = r11 & 1;
	r12 = 10;
	r13 = 0;
	f23 = f25;
}
}
	f2 = f10*f3;
	f5 = f1*f8;
	f2 = f2-f5;
	if(f2 <f27) //_LBB166_103
{
	f5 = -f2;
}
else{
	f5 = f2;
}
	f25 = heapFloat[(fp+-185)];
	f21 = heapFloat[(fp+-179)];
	f21 = f21*f25;
	f25 = heapFloat[(fp+-177)];
	f25 = f25*f7;
	f21 = f21+f25;
	f25 = heapFloat[(fp+-181)];
	f25 = f25*f17;
	f21 = f21+f25;
	f25 = heapFloat[(fp+-180)];
	f25 = f25*f15;
	f21 = f21+f25;
	f5 = f5-f21;
if(!(f5 >f20)) //_LBB166_268
{
	f21 = f8*f8;
	f25 = f26+f21;
	heapFloat[(g0)] = f25;
	sqrtf(i7);
	f25 = f_g0;
	if(f25 >f20) //_LBB166_107
{
	f5 = f5/f25;
	f26 =        1.0499999523162842;
	f26 = f5*f26;
if(!(f26 <=f23)) //_LBB166_106
{
	f22 =                         0;
	f23 = -f8;
	r11 = f2 < f22;
	f19 = f3/f25;
	f22 = f22/f25;
	f24 = f23/f25;
	r11 = r11 & 1;
	r12 = 11;
	r13 = 0;
	f23 = f5;
}
}
	f2 = f10*f4;
	f1 = f1*f12;
	f1 = f2-f1;
	if(f1 <f27) //_LBB166_111
{
	f2 = -f1;
}
else{
	f2 = f1;
}
	f3 = heapFloat[(fp+-179)];
	f3 = f3*f18;
	f25 = heapFloat[(fp+-183)];
	f5 = heapFloat[(fp+-177)];
	f5 = f5*f25;
	f3 = f3+f5;
	f5 = heapFloat[(fp+-181)];
	f5 = f5*f16;
	f3 = f3+f5;
	f5 = heapFloat[(fp+-182)];
	f5 = f5*f15;
	f3 = f3+f5;
	f2 = f2-f3;
if(!(f2 >f20)) //_LBB166_268
{
	f3 = f12*f12;
	f5 = f28+f3;
	heapFloat[(g0)] = f5;
	sqrtf(i7);
	f5 = f_g0;
	if(f5 >f20) //_LBB166_115
{
	f2 = f2/f5;
	f25 =        1.0499999523162842;
	f25 = f2*f25;
if(!(f25 <=f23)) //_LBB166_114
{
	f22 =                         0;
	f23 = -f12;
	r11 = f1 < f22;
	f19 = f4/f5;
	f22 = f22/f5;
	f24 = f23/f5;
	r11 = r11 & 1;
	r12 = 12;
	r13 = 0;
	f23 = f2;
}
}
	f1 = f11*f9;
	f2 = f10*f13;
	f1 = f1-f2;
	if(f1 <f27) //_LBB166_119
{
	f2 = -f1;
}
else{
	f2 = f1;
}
	f4 = heapFloat[(fp+-179)];
	f4 = f4*f15;
	f5 = heapFloat[(fp+-178)];
	f5 = f5*f6;
	f4 = f4+f5;
	f5 = heapFloat[(fp+-182)];
	f5 = f5*f18;
	f4 = f4+f5;
	f6 = heapFloat[(fp+-185)];
	f5 = heapFloat[(fp+-180)];
	f5 = f5*f6;
	f4 = f4+f5;
	f2 = f2-f4;
if(!(f2 >f20)) //_LBB166_268
{
	f4 = heapFloat[(fp+-188)];
	f4 = f4+f29;
	f4 = f4+f27;
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	f4 = f_g0;
	if(f4 >f20) //_LBB166_123
{
	f2 = f2/f4;
	f5 =        1.0499999523162842;
	f5 = f2*f5;
if(!(f5 <=f23)) //_LBB166_122
{
	f23 =                         0;
	f19 = -f13;
	r11 = f1 < f23;
	f19 = f19/f4;
	f22 = f9/f4;
	f24 = f23/f4;
	r11 = r11 & 1;
	r12 = 13;
	r13 = 0;
	f23 = f2;
}
}
	f1 = f11*f8;
	f2 = f10*f0;
	f1 = f1-f2;
	if(f1 <f27) //_LBB166_127
{
	f2 = -f1;
}
else{
	f2 = f1;
}
	f4 = heapFloat[(fp+-179)];
	f4 = f4*f16;
	f5 = heapFloat[(fp+-178)];
	f5 = f5*f7;
	f4 = f4+f5;
	f5 = heapFloat[(fp+-181)];
	f5 = f5*f18;
	f4 = f4+f5;
	f6 = heapFloat[(fp+-184)];
	f5 = heapFloat[(fp+-180)];
	f5 = f5*f6;
	f4 = f4+f5;
	f2 = f2-f4;
if(!(f2 >f20)) //_LBB166_268
{
	f4 = heapFloat[(fp+-189)];
	f4 = f4+f21;
	f4 = f4+f27;
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	f4 = f_g0;
	if(f4 >f20) //_LBB166_131
{
	f2 = f2/f4;
	f5 =        1.0499999523162842;
	f5 = f2*f5;
if(!(f5 <=f23)) //_LBB166_130
{
	f23 =                         0;
	f19 = -f0;
	r11 = f1 < f23;
	f19 = f19/f4;
	f22 = f8/f4;
	f24 = f23/f4;
	r11 = r11 & 1;
	r12 = 14;
	r13 = 0;
	f23 = f2;
}
}
	f0 = f11*f12;
	f1 = f10*f14;
	f0 = f0-f1;
	if(f0 <f27) //_LBB166_135
{
	f1 = -f0;
}
else{
	f1 = f0;
}
	f2 = heapFloat[(fp+-179)];
	f2 = f2*f17;
	f5 = heapFloat[(fp+-183)];
	f4 = heapFloat[(fp+-178)];
	f4 = f4*f5;
	f2 = f2+f4;
	f5 = heapFloat[(fp+-185)];
	f4 = heapFloat[(fp+-181)];
	f4 = f4*f5;
	f2 = f2+f4;
	f5 = heapFloat[(fp+-184)];
	f4 = heapFloat[(fp+-182)];
	f4 = f4*f5;
	f2 = f2+f4;
	f1 = f1-f2;
if(!(f1 >f20)) //_LBB166_268
{
	f2 = heapFloat[(fp+-190)];
	f2 = f2+f3;
	f2 = f2+f27;
	heapFloat[(g0)] = f2;
	sqrtf(i7);
	f2 = f_g0;
	if(f2 <=f20) //_LBB166_140
{
__label__ = 128;
}
else{
	f1 = f1/f2;
	heapFloat[(fp+-183)] = f1;
	f3 =        1.0499999523162842;
	f1 = f1*f3;
	if(f1 <=f23) //_LBB166_140
{
__label__ = 128;
}
else{
	f23 =                         0;
	f19 = -f14;
	r11 = f0 < f23;
	f19 = f19/f2;
	f22 = f12/f2;
	f24 = f23/f2;
	r11 = r11 & 1;
	r13 = sp + -704;
	r12 = 15;
__label__ = 132;
}
}
if (__label__ == 128){
	if(r12 ==0) //_LBB166_268
{
break _41;
}
else{
	if(r13 !=0) //_LBB166_143
{
	r13 = r13 >> 2;
	f0 = heapFloat[(r13)];
	r6 = sp + -704;
	heapFloat[(fp+-176)] = f0;
	f1 = heapFloat[(r13+4)];
	r6 = r6 >> 2;
	heapFloat[(r6+1)] = f1;
	f19 = heapFloat[(r13+8)];
	heapFloat[(r6+2)] = f19;
	heapFloat[(fp+-183)] = f23;
__label__ = 133;
}
else{
	r13 = sp + -704;
	heapFloat[(fp+-183)] = f23;
__label__ = 132;
}
}
}
if (__label__ == 132){
	r6 = sp + -640;
	r6 = r6 >> 2;
	f0 = heapFloat[(fp+-160)];
	f1 = heapFloat[(r6+1)];
	f2 = heapFloat[(r6+2)];
	f0 = f0*f19;
	f1 = f1*f22;
	f0 = f0+f1;
	f1 = f2*f24;
	f0 = f0+f1;
	r7 = r13 >> 2;
	heapFloat[(r7)] = f0;
	f1 = heapFloat[(r6+4)];
	f2 = heapFloat[(r6+5)];
	f3 = heapFloat[(r6+6)];
	f1 = f1*f19;
	f2 = f2*f22;
	r7 = sp + -704;
	f1 = f1+f2;
	f2 = f3*f24;
	f1 = f1+f2;
	r7 = r7 >> 2;
	heapFloat[(r7+1)] = f1;
	f2 = heapFloat[(r6+8)];
	f3 = heapFloat[(r6+9)];
	f4 = heapFloat[(r6+10)];
	f19 = f2*f19;
	f2 = f3*f22;
	f19 = f19+f2;
	f2 = f4*f24;
	f19 = f19+f2;
	heapFloat[(r7+2)] = f19;
}
	if(r11 !=0) //_LBB166_147
{
	f0 = -f0;
	r6 = sp + -704;
	f1 = -f1;
	r6 = r6 >> 2;
	heapFloat[(fp+-176)] = f0;
	f19 = -f19;
	heapFloat[(r6+1)] = f1;
	heapFloat[(r6+2)] = f19;
}
	if(r12 <7) //_LBB166_153
{
	if(r12 >3) //_LBB166_155
{
	f0 = -f0;
	f1 = -f1;
	f19 = -f19;
	r1 = r0;
	r0 = r10;
}
else{
	r3 = sp + -640;
	r2 = sp + -688;
	r4 = sp + -236;
	heap32[(fp+-186)] = r4;
	r4 = sp + -248;
	r1 = r10;
}
	r6 = r2 >> 2;
	f2 = heapFloat[(r6)];
	f3 = heapFloat[(r6+4)];
	f4 = heapFloat[(r6+8)];
	f2 = f2*f0;
	f3 = f3*f1;
	f2 = f2+f3;
	f3 = f4*f19;
	f2 = f2+f3;
	heapFloat[(fp+-66)] = f2;
	f3 = heapFloat[(r6+1)];
	f4 = heapFloat[(r6+5)];
	f5 = heapFloat[(r6+9)];
	f3 = f3*f0;
	f4 = f4*f1;
	r7 = sp + -264;
	f3 = f3+f4;
	f4 = f5*f19;
	f3 = f3+f4;
	r8 = r7 >> 2;
	heapFloat[(r8+1)] = f3;
	f4 = heapFloat[(r6+2)];
	f5 = heapFloat[(r6+6)];
	f6 = heapFloat[(r6+10)];
	f4 = f4*f0;
	f5 = f5*f1;
	f4 = f4+f5;
	f5 = f6*f19;
	f4 = f4+f5;
	heapFloat[(r8+2)] = f4;
	if(f2 <f27) //_LBB166_158
{
	f2 = -f2;
}
	if(f3 <f27) //_LBB166_161
{
	f3 = -f3;
}
	if(f4 <f27) //_LBB166_164
{
	f4 = -f4;
}
	if(f3 <=f2) //_LBB166_169
{
	if(f2 <=f4) //_LBB166_171
{
	r6 = 2;
	r8 = 0;
	r9 = 1;
}
else{
	r6 = 0;
	r8 = 1;
	r9 = 2;
}
}
else{
	if(f3 <=f4) //_LBB166_168
{
	r6 = 2;
	r8 = 0;
	r9 = 1;
}
else{
	r6 = 1;
	r8 = 0;
	r9 = 2;
}
}
	r10 = r6 << 2;
	r11 = (r4 + r10)|0;
	r13 = (r2 + r10)|0;
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	r11 = r11 >> 2;
	r13 = r13 >> 2;
	f2 = heapFloat[(r11)];
	f3 = heapFloat[(r13)];
	f4 = heapFloat[(r1)];
	f5 = heapFloat[(r0)];
	r7 = (r7 + r10)|0;
	f4 = f4-f5;
	f3 = f2*f3;
	r7 = r7 >> 2;
	f5 = heapFloat[(r7)];
	if(f5 <f27) //_LBB166_174
{
	r7 = r6 | 4;
	r6 = r6 | 8;
	r7 = r7 << 2;
	r6 = r6 << 2;
	r7 = (r2 + r7)|0;
	r6 = (r2 + r6)|0;
	r7 = r7 >> 2;
	r6 = r6 >> 2;
	f5 = heapFloat[(r1+1)];
	f6 = heapFloat[(r0+1)];
	f7 = heapFloat[(r7)];
	f8 = heapFloat[(r6)];
	f9 = heapFloat[(r1+2)];
	f10 = heapFloat[(r0+2)];
	f5 = f5-f6;
	f6 = f2*f7;
	f7 = f9-f10;
	f2 = f2*f8;
	f3 = f4+f3;
	f4 = f5+f6;
	f2 = f7+f2;
}
else{
	r7 = r6 | 4;
	r6 = r6 | 8;
	r7 = r7 << 2;
	r6 = r6 << 2;
	r7 = (r2 + r7)|0;
	r6 = (r2 + r6)|0;
	r7 = r7 >> 2;
	r6 = r6 >> 2;
	f5 = heapFloat[(r1+1)];
	f6 = heapFloat[(r0+1)];
	f7 = heapFloat[(r7)];
	f8 = heapFloat[(r6)];
	f9 = heapFloat[(r1+2)];
	f10 = heapFloat[(r0+2)];
	f5 = f5-f6;
	f6 = f2*f7;
	f7 = f9-f10;
	f2 = f2*f8;
	f3 = f4-f3;
	f4 = f5-f6;
	f2 = f7-f2;
}
	r1 = -1;
	r6 = -4;
	r6 = r12 < 4 ? r1 : r6;
	r6 = (r6 + r12)|0;
	if(r6 ==1) //_LBB166_178
{
	r7 = 0;
	r10 = 2;
}
else{
	if(r6 !=0) //_LBB166_179
{
	r7 = 0;
	r10 = 1;
}
else{
	r7 = 1;
	r10 = 2;
}
}
	r11 = r8 | 4;
	r13 = r7 | 4;
	r14 = r8 | 8;
	r15 = r9 | 4;
	r16 = r7 | 8;
	r17 = r10 | 4;
	r7 = r7 << 2;
	r13 = r13 << 2;
	r11 = r11 << 2;
	r8 = r8 << 2;
	r18 = r9 | 8;
	r19 = (r3 + r7)|0;
	r13 = (r3 + r13)|0;
	r16 = r16 << 2;
	r20 = r10 << 2;
	r17 = r17 << 2;
	r10 = r10 | 8;
	r21 = (r2 + r8)|0;
	r11 = (r2 + r11)|0;
	r14 = r14 << 2;
	r15 = r15 << 2;
	r9 = r9 << 2;
	r19 = r19 >> 2;
	r13 = r13 >> 2;
	r16 = (r3 + r16)|0;
	r22 = (r3 + r20)|0;
	r17 = (r3 + r17)|0;
	r10 = r10 << 2;
	r21 = r21 >> 2;
	heap32[(fp+-178)] = r21;
	r11 = r11 >> 2;
	heap32[(fp+-177)] = r11;
	r14 = (r2 + r14)|0;
	r23 = (r2 + r9)|0;
	r15 = (r2 + r15)|0;
	r18 = r18 << 2;
	r16 = r16 >> 2;
	r22 = r22 >> 2;
	r17 = r17 >> 2;
	r3 = (r3 + r10)|0;
	r10 = r14 >> 2;
	heap32[(fp+-179)] = r10;
	r14 = r23 >> 2;
	heap32[(fp+-180)] = r14;
	r15 = r15 >> 2;
	r2 = (r2 + r18)|0;
	f5 = heapFloat[(r19)];
	f6 = heapFloat[(r21)];
	f7 = heapFloat[(r13)];
	f8 = heapFloat[(r11)];
	f9 = heapFloat[(r22)];
	f10 = heapFloat[(r14)];
	f11 = heapFloat[(r17)];
	f12 = heapFloat[(r15)];
	r3 = r3 >> 2;
	r2 = r2 >> 2;
	r8 = (r4 + r8)|0;
	f13 = f5*f6;
	f14 = f7*f8;
	f15 = heapFloat[(r16)];
	f16 = heapFloat[(r10)];
	f17 = heapFloat[(r3)];
	f18 = heapFloat[(r2)];
	r3 = r8 >> 2;
	r4 = (r4 + r9)|0;
	f6 = f9*f6;
	f8 = f11*f8;
	f21 = f3*f5;
	f22 = f4*f7;
	f13 = f13+f14;
	f14 = f15*f16;
	f5 = f5*f10;
	f7 = f7*f12;
	f13 = f13+f14;
	f14 = heapFloat[(r3)];
	r3 = r4 >> 2;
	f23 = f3*f9;
	f24 = f4*f11;
	f6 = f6+f8;
	f8 = f17*f16;
	f9 = f9*f10;
	f10 = f11*f12;
	f11 = f21+f22;
	f12 = f2*f15;
	f5 = f5+f7;
	f7 = f15*f18;
	f6 = f6+f8;
	f8 = f11+f12;
	f11 = f14*f13;
	f5 = f5+f7;
	f7 = heapFloat[(r3)];
	f12 = f23+f24;
	f15 = f2*f17;
	f9 = f9+f10;
	f10 = f17*f18;
	f9 = f9+f10;
	f10 = f12+f15;
	f12 = f14*f6;
	f14 = f8-f11;
	f15 = f7*f5;
	r3 = sp + -296;
	f16 = f10-f12;
	f7 = f7*f9;
	f17 = f14-f15;
	r4 = r3 >> 2;
	f18 = f16-f7;
	heapFloat[(fp+-74)] = f17;
	f14 = f14+f15;
	heapFloat[(r4+1)] = f18;
	f11 = f8+f11;
	f16 = f16+f7;
	heapFloat[(r4+2)] = f14;
	f12 = f10+f12;
	f14 = f11+f15;
	heapFloat[(r4+3)] = f16;
	f16 = f12+f7;
	heapFloat[(r4+4)] = f14;
	f11 = f11-f15;
	heapFloat[(r4+5)] = f16;
	r8 = heap32[(fp+-186)];
	r7 = (r8 + r7)|0;
	f7 = f12-f7;
	heapFloat[(r4+6)] = f11;
	r9 = sp + -304;
	r8 = (r8 + r20)|0;
	r7 = r7 >> 2;
	heapFloat[(r4+7)] = f7;
	r4 = sp + -368;
	r10 = 0;
	r11 = 4;
	r13 = r9 >> 2;
	r8 = r8 >> 2;
	heap32[(fp+-76)] = heap32[(r7)];
	heap32[(r13+1)] = heap32[(r8)];
	r7 = r10;
_217: while(true){
	if(r7 <2) //_LBB166_199
{
	r18 = 0;
	r17 = (r18 - r7)|0;
	r14 = r1;
	r8 = r4;
_220: while(true){
	r4 = r8;
	if(r14 >1) //_LBB166_196
{
break _220;
}
else{
	f7 = r14; //fitos r14, f7
	r16 = (r3 + 8)|0;
	r8 = r18;
	r10 = r18;
	r13 = r4;
_223: while(true){
	if(r11 >0) //_LBB166_181
{
	r19 = (r3 + r8)|0;
	r20 = (r16 + r8)|0;
	r21 = r7 << 2;
	r22 = (r9 + r21)|0;
	r23 = (r19 + r21)|0;
	r22 = r22 >> 2;
	r23 = r23 >> 2;
	f11 = heapFloat[(r22)];
	f12 = heapFloat[(r23)];
	f14 = f7*f12;
	if(f14 <f11) //_LBB166_183
{
	r24 = r13 >> 2;
	r25 = r19 >> 2;
	r10 = (r10 + 1)|0;
	heap32[(r24)] = heap32[(r25)];
	heap32[(r24+1)] = heap32[(r25+1)];
	r24 = r10 & 8;
	if(r24 ==0) //_LBB166_185
{
	r13 = (r13 + 8)|0;
	f12 = heapFloat[(r23)];
	f11 = heapFloat[(r22)];
}
else{
__label__ = 179;
break _217;
}
}
	r20 = r11 > 1 ? r20 : r3;
	r23 = (r20 + r21)|0;
	r23 = r23 >> 2;
	f14 = heapFloat[(r23)];
	f15 = f7*f12;
	f16 = f7*f14;
	r23 = f15 < f11;
	r24 = f16 < f11;
	r23 = r23 ^ r24;
	if(r23 != 0) //_LBB166_188
{
	r23 = r17 << 2;
	r19 = (r19 + r23)|0;
	r20 = (r20 + r23)|0;
	r19 = r19 >> 2;
	r20 = r20 >> 2;
	f15 = heapFloat[(r19+1)];
	f16 = heapFloat[(r20+1)];
	f11 = f7*f11;
	f16 = f16-f15;
	f14 = f14-f12;
	f14 = f16/f14;
	f11 = f11-f12;
	r19 = (r13 + r23)|0;
	f11 = f14*f11;
	r19 = r19 >> 2;
	f11 = f15+f11;
	heapFloat[(r19+1)] = f11;
	r19 = (r13 + r21)|0;
	f11 = heapFloat[(r22)];
	r10 = (r10 + 1)|0;
	r19 = r19 >> 2;
	f11 = f7*f11;
	heapFloat[(r19)] = f11;
	r19 = r10 & 8;
	if(r19 ==0) //_LBB166_190
{
	r13 = (r13 + 8)|0;
}
else{
__label__ = 179;
break _217;
}
}
	r11 = (r11 + -1)|0;
	r8 = (r8 + 8)|0;
}
else{
break _223;
}
}
	r3 = sp + -368;
	r8 = sp + -128;
	r8 = r4 == r3 ? r8 : r3;
	r14 = (r14 + 2)|0;
	r3 = r4;
	r11 = r10;
}
}
	r7 = (r7 + 1)|0;
}
else{
__label__ = 177;
break _217;
}
}
if (__label__ == 177){
	r4 = r3;
}
	r1 = sp + -368;
if(!(r4 ==r1)) //_LBB166_202
{
	r3 = r10 << 3;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r3;
	memcpy(i7);
}
	if(r10 <1) //_LBB166_268
{
break _41;
}
else{
	f7 = f13*f9;
	f11 = f5*f6;
	f12 =                         1;
	f7 = f7-f11;
	r3 = r6 << 2;
	f7 = f12/f7;
	r4 = heap32[(fp+-186)];
	r3 = (r4 + r3)|0;
	f6 = f6*f7;
	r3 = r3 >> 2;
	f11 = f13*f7;
	f5 = f5*f7;
	f7 = f9*f7;
	f6 = -f6;
	f9 = heapFloat[(r3)];
	r3 = heap32[(fp+-178)];
	f13 = heapFloat[(r3)];
	r3 = heap32[(fp+-180)];
	f14 = heapFloat[(r3)];
	r3 = heap32[(fp+-177)];
	f15 = heapFloat[(r3)];
	f16 = heapFloat[(r15)];
	r3 = heap32[(fp+-179)];
	f17 = heapFloat[(r3)];
	f18 = heapFloat[(r2)];
	r2 = (r1 + 4)|0;
	r3 = 0;
_243: while(true){
	r4 = r2 >> 2;
	f21 = heapFloat[(r4+-1)];
	f22 = heapFloat[(r4)];
	f23 = f21-f8;
	f24 = f22-f10;
	f25 = f23*f7;
	f26 = f24*f5;
	f25 = f25-f26;
	f23 = f23*f6;
	f24 = f24*f11;
	r4 = (r3 * 3)|0;
	f26 = f15*f25;
	f23 = f23+f24;
	f24 = f13*f25;
	r6 = sp + -464;
	r4 = r4 << 2;
	f25 = f17*f25;
	f26 = f4+f26;
	f28 = f16*f23;
	f24 = f3+f24;
	f29 = f14*f23;
	r4 = (r6 + r4)|0;
	f24 = f24+f29;
	f26 = f26+f28;
	f25 = f2+f25;
	f23 = f18*f23;
	f28 = f0*f24;
	f29 = f1*f26;
	f23 = f25+f23;
	r4 = r4 >> 2;
	heapFloat[(r4)] = f24;
	f24 = f28+f29;
	f25 = f19*f23;
	r7 = sp + -496;
	r8 = r3 << 2;
	r8 = (r7 + r8)|0;
	heapFloat[(r4+1)] = f26;
	f24 = f24+f25;
	f24 = f9-f24;
	r8 = r8 >> 2;
	heapFloat[(r4+2)] = f23;
	heapFloat[(r8)] = f24;
	if(f24 >=f27) //_LBB166_206
{
	r4 = r3 << 3;
	r8 = r4 | 4;
	r4 = (r1 + r4)|0;
	r8 = (r1 + r8)|0;
	r4 = r4 >> 2;
	r3 = (r3 + 1)|0;
	r8 = r8 >> 2;
	heapFloat[(r4)] = f21;
	heapFloat[(r8)] = f22;
}
	r10 = (r10 + -1)|0;
	r2 = (r2 + 8)|0;
if(!(r10 !=0)) //_LBB166_204
{
break _243;
}
}
	if(r3 <1) //_LBB166_268
{
break _41;
}
else{
	r2 = 4;
	r2 = r3 < 4 ? r3 : r2;
	r4 = 1;
	r8 = r2 < 1 ? r4 : r2;
	if(r3 >r8) //_LBB166_215
{
_252: do {
	if(r3 >1) //_LBB166_217
{
	f0 = heapFloat[(fp+-124)];
	r9 = 1;
	r7 = 0;
_254: while(true){
	r10 = sp + -496;
	r11 = r9 << 2;
	r10 = (r10 + r11)|0;
	r10 = r10 >> 2;
	f1 = heapFloat[(r10)];
	r10 = (r9 + 1)|0;
	r7 = f1 > f0 ? r9 : r7;
	f0 = f1 > f0 ? f1 : f0;
	r9 = r10;
if(!(r3 !=r10)) //_LBB166_218
{
break _252;
}
}
}
else{
	r7 = 0;
}
} while(0);
_258: do {
	if(r3 ==1) //_LBB166_224
{
	r9 = r1 >> 2;
	f0 = heapFloat[(fp+-92)];
	f1 = heapFloat[(r9+1)];
__label__ = 214;
break _258;
}
else{
	if(r3 ==2) //_LBB166_225
{
	r9 = r1 >> 2;
	f0 = heapFloat[(fp+-92)];
	f1 = heapFloat[(r9+2)];
	f2 = heapFloat[(r9+1)];
	f12 = heapFloat[(r9+3)];
	f0 = f0+f1;
	f1 = f2+f12;
	f2 = heapFloat[(fp+-187)];
	f0 = f0*f2;
	f1 = f1*f2;
__label__ = 214;
break _258;
}
else{
	r9 = (r3 + -1)|0;
_264: do {
	if(r9 >0) //_LBB166_223
{
	r10 = (r1 + 8)|0;
	f0 =                         0;
	f1 = f0;
	f2 = f0;
_266: while(true){
	r11 = r10 >> 2;
	f3 = heapFloat[(r11+-2)];
	f4 = heapFloat[(r11+1)];
	f5 = heapFloat[(r11)];
	f6 = heapFloat[(r11+-1)];
	f7 = f3*f4;
	f8 = f5*f6;
	f3 = f3+f5;
	f5 = f7-f8;
	f4 = f6+f4;
	f3 = f3*f5;
	f4 = f4*f5;
	r9 = (r9 + -1)|0;
	f2 = f2+f5;
	f1 = f3+f1;
	f0 = f4+f0;
	r10 = (r10 + 8)|0;
if(!(r9 !=0)) //_LBB166_226
{
break _264;
}
}
}
else{
	f0 = f27;
	f1 = f27;
	f2 = f27;
}
} while(0);
	r9 = r3 << 3;
	r9 = (r9 + r1)|0;
	r9 = r9 >> 2;
	r10 = r1 >> 2;
	f3 = heapFloat[(r9+-2)];
	f4 = heapFloat[(r10+1)];
	f5 = heapFloat[(fp+-92)];
	f6 = heapFloat[(r9+-1)];
	f7 = f3*f4;
	f8 = f5*f6;
	f7 = f7-f8;
	f2 = f2+f7;
	if(f2 <f27) //_LBB166_229
{
	f8 = -f2;
}
else{
	f8 = f2;
}
	if(f8 >f20) //_LBB166_232
{
	f8 =                         3;
	f2 = f2*f8;
	f2 = f12/f2;
}
else{
	f2 =        999999984306749440;
}
	if(r3 >0) //_LBB166_235
{
	f3 = f3+f5;
	f4 = f6+f4;
	f3 = f3*f7;
	f4 = f4*f7;
	f1 = f3+f1;
	f3 = f4+f0;
	f0 = f1*f2;
	f1 = f3*f2;
__label__ = 214;
}
else{
	r1 = 0;
__label__ = 219;
}
}
}
} while(0);
if (__label__ == 214){
	r1 = (r1 + 4)|0;
	r9 = sp + -32;
	r10 = r3;
_283: while(true){
	r11 = r1 >> 2;
	f2 = heapFloat[(r11+-1)];
	f3 = heapFloat[(r11)];
	f3 = f3-f1;
	f2 = f2-f0;
	heapFloat[(g0)] = f3;
	heapFloat[(g0+1)] = f2;
	r10 = (r10 + -1)|0;
	r1 = (r1 + 8)|0;
	r11 = (r9 + 4)|0;
	r9 = r9 >> 2;
	atan2f(i7);
	heapFloat[(r9)] = f_g0;
	r9 = r11;
if(!(r10 !=0)) //_LBB166_237
{
break _283;
}
}
	r1 = sp + -64;
	r9 = r3;
_286: while(true){
	r9 = (r9 + -1)|0;
	r10 = (r1 + 4)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = 1;
	r1 = r10;
if(!(r9 !=0)) //_LBB166_239
{
break _286;
}
}
	r1 = 1;
}
	r9 = sp + -64;
	r10 = r7 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	f0 =        6.2831854820251465;
	f1 = r8; //fitos r8, f1
	f1 = f0/f1;
	heap32[(r11)] = 0;
	heap32[(fp+-144)] = r7;
	f6 =                         0;
_290: while(true){
	if(r4 <r8) //_LBB166_242
{
	r11 = sp + -32;
	r13 = (r11 + r10)|0;
	r13 = r13 >> 2;
	f2 = r4; //fitos r4, f2
	f2 = f2*f1;
	f3 = heapFloat[(r13)];
	f2 = f2+f3;
	f3 =        3.1415927410125732;
	if(f2 >f3) //_LBB166_244
{
	f4 =       -6.2831854820251465;
	f2 = f2+f4;
}
	r13 = sp + -576;
	r14 = r4 << 2;
	r13 = (r13 + r14)|0;
	r13 = r13 >> 2;
	r14 = r1 & 1;
	heap32[(r13)] = r7;
	if(r14 ==0) //_LBB166_259
{
__label__ = 233;
break _290;
}
else{
	f4 =                1000000000;
	r14 = 0;
	r15 = r7;
_297: while(true){
	r16 = r14 << 2;
	r17 = (r9 + r16)|0;
	r17 = r17 >> 2;
	r17 = heap32[(r17)];
	if(r17 !=0) //_LBB166_249
{
	r16 = (r11 + r16)|0;
	r16 = r16 >> 2;
	f5 = heapFloat[(r16)];
	f5 = f5-f2;
	if(f5 <f6) //_LBB166_251
{
	f5 = -f5;
}
	if(f5 >f3) //_LBB166_254
{
	f5 = f0-f5;
}
if(!(f5 >=f4)) //_LBB166_248
{
	heap32[(r13)] = r14;
	r15 = r14;
	f4 = f5;
}
}
	r14 = (r14 + 1)|0;
if(!(r3 !=r14)) //_LBB166_247
{
break _297;
}
}
	if(r15 !=r7) //_LBB166_260
{
	r11 = r15 << 2;
	r11 = (r9 + r11)|0;
	r4 = (r4 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = 0;
}
else{
__label__ = 233;
break _290;
}
}
}
else{
__label__ = 236;
break _290;
}
}
switch(__label__ ){//multiple entries
case 233:
	r0 = _2E_str65;
	r1 = _2E_str166;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 248;
	_assert(i7);
break;
case 236:
	if(r8 >0) //_LBB166_267
{
	r1 = 0;
_315: while(true){
	r3 = sp + -576;
	r4 = r1 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = (r3 * 3)|0;
	r4 = r4 << 2;
	r4 = (r6 + r4)|0;
	r4 = r4 >> 2;
	f0 = heapFloat[(r4)];
	f1 = heapFloat[(r0)];
	f0 = f0+f1;
	heapFloat[(fp+-148)] = f0;
	r7 = sp + -592;
	f1 = heapFloat[(r4+1)];
	f2 = heapFloat[(r0+1)];
	f1 = f1+f2;
	r8 = r7 >> 2;
	heapFloat[(r8+1)] = f1;
	f2 = heapFloat[(r4+2)];
	f3 = heapFloat[(r0+2)];
	f2 = f2+f3;
	r4 = sp + -496;
	r3 = r3 << 2;
	r3 = (r4 + r3)|0;
	r4 = r5 >> 2;
	heapFloat[(r8+2)] = f2;
	r4 = heap32[(r4)];
	r3 = r3 >> 2;
	r8 = sp + -704;
	f3 = heapFloat[(r3)];
	r3 = r4 >> 2;
	r4 = r8 >> 2;
	r3 = heap32[(r3+4)];
	f4 = -f3;
	f5 = heapFloat[(r4+2)];
	if(r12 >3) //_LBB166_265
{
	f6 = heapFloat[(fp+-176)];
	f7 = heapFloat[(r4+1)];
	f8 = f6*f3;
	r4 = sp + -160;
	f9 = f7*f3;
	f0 = f0-f8;
	r7 = r4 >> 2;
	f3 = f5*f3;
	f1 = f1-f9;
	heapFloat[(fp+-40)] = f0;
	f0 = f2-f3;
	heapFloat[(r7+1)] = f1;
	heapFloat[(r7+2)] = f0;
	r8 = sp + -144;
	f0 = -f6;
	heap32[(r7+3)] = 0;
	r7 = r8 >> 2;
	f1 = -f7;
	heapFloat[(fp+-36)] = f0;
	f0 = -f5;
	heapFloat[(r7+1)] = f1;
	heapFloat[(r7+2)] = f0;
	heap32[(r7+3)] = 0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r4;
	heapFloat[(g0+3)] = f4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
else{
	f0 = heapFloat[(r4+1)];
	f1 = heapFloat[(fp+-176)];
	r4 = sp + -176;
	f1 = -f1;
	r8 = r4 >> 2;
	f0 = -f0;
	heapFloat[(fp+-44)] = f1;
	f1 = -f5;
	heapFloat[(r8+1)] = f0;
	heapFloat[(r8+2)] = f1;
	heap32[(r8+3)] = 0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r7;
	heapFloat[(g0+3)] = f4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
	r1 = (r1 + 1)|0;
	if(r1 >=r2) //_LBB166_268
{
break _41;
}
else{
continue _315;
}
}
}
else{
break _41;
}
break;
}
}
else{
	if(r12 <4) //_LBB166_212
{
	r1 = (r6 + 8)|0;
	r2 = sp + -496;
_324: while(true){
	r4 = r1 >> 2;
	f12 = heapFloat[(r4+-2)];
	f20 = heapFloat[(r0)];
	f12 = f12+f20;
	heapFloat[(fp+-132)] = f12;
	r6 = sp + -528;
	f12 = heapFloat[(r4+-1)];
	f20 = heapFloat[(r0+1)];
	r7 = r6 >> 2;
	f12 = f12+f20;
	heapFloat[(r7+1)] = f12;
	f12 = heapFloat[(r4)];
	f20 = heapFloat[(r0+2)];
	f12 = f12+f20;
	heapFloat[(r7+2)] = f12;
	r4 = r5 >> 2;
	r4 = heap32[(r4)];
	r7 = sp + -704;
	r7 = r7 >> 2;
	r4 = r4 >> 2;
	r8 = r2 >> 2;
	f12 = heapFloat[(r8)];
	f20 = heapFloat[(r7+2)];
	f27 = heapFloat[(r7+1)];
	f0 = heapFloat[(fp+-176)];
	r4 = heap32[(r4+4)];
	r7 = sp + -208;
	f0 = -f0;
	r8 = r7 >> 2;
	f27 = -f27;
	heapFloat[(fp+-52)] = f0;
	f20 = -f20;
	heapFloat[(r8+1)] = f27;
	heapFloat[(r8+2)] = f20;
	heap32[(r8+3)] = 0;
	f12 = -f12;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r6;
	heapFloat[(g0+3)] = f12;
	r3 = (r3 + -1)|0;
	r2 = (r2 + 4)|0;
	r1 = (r1 + 12)|0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	if(r3 ==0) //_LBB166_268
{
break _41;
}
else{
continue _324;
}
}
}
else{
	r1 = (r6 + 8)|0;
_327: while(true){
	r2 = r7 >> 2;
	r4 = r1 >> 2;
	f12 = heapFloat[(r2)];
	f20 = heapFloat[(fp+-176)];
	f27 = heapFloat[(r4+-2)];
	f0 = heapFloat[(r0)];
	f27 = f27+f0;
	f0 = f20*f12;
	r2 = sp + -704;
	f27 = f27-f0;
	heapFloat[(fp+-136)] = f27;
	r2 = r2 >> 2;
	f27 = heapFloat[(r2+1)];
	f0 = heapFloat[(r4+-1)];
	f1 = heapFloat[(r0+1)];
	r6 = sp + -544;
	f0 = f0+f1;
	f1 = f27*f12;
	r8 = r6 >> 2;
	f0 = f0-f1;
	heapFloat[(r8+1)] = f0;
	f0 = heapFloat[(r2+2)];
	f1 = heapFloat[(r4)];
	f2 = heapFloat[(r0+2)];
	f1 = f1+f2;
	f2 = f0*f12;
	f1 = f1-f2;
	r2 = r5 >> 2;
	heapFloat[(r8+2)] = f1;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	r4 = sp + -192;
	f20 = -f20;
	r8 = r4 >> 2;
	f27 = -f27;
	heapFloat[(fp+-48)] = f20;
	f20 = -f0;
	heapFloat[(r8+1)] = f27;
	heapFloat[(r8+2)] = f20;
	heap32[(r8+3)] = 0;
	f12 = -f12;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r6;
	heapFloat[(g0+3)] = f12;
	r3 = (r3 + -1)|0;
	r7 = (r7 + 4)|0;
	r1 = (r1 + 12)|0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	if(r3 ==0) //_LBB166_268
{
break _41;
}
else{
continue _327;
}
}
}
}
}
}
}
else{
	r0 = sp + -688;
	r2 = r0 >> 2;
	f20 = heapFloat[(fp+-172)];
	f27 = heapFloat[(r2+4)];
	f2 = heapFloat[(r2+5)];
	f3 = heapFloat[(r2+1)];
	f4 = f0*f20;
	f5 = f1*f27;
	f6 = heapFloat[(r2+8)];
	f7 = heapFloat[(r2+9)];
	f8 = heapFloat[(r2+6)];
	f9 = heapFloat[(r2+2)];
	f4 = f4+f5;
	f5 = f19*f6;
	f10 = f0*f3;
	f11 = f1*f2;
	f12 = heapFloat[(r2+10)];
	f4 = f4+f5;
	f5 = f10+f11;
	f10 = f19*f7;
	f11 = f0*f9;
	f13 = f1*f8;
	f14 =                         0;
	f15 =                        -1;
	f16 =                         1;
	f5 = f5+f10;
	f4 = f4 > f14 ? f15 : f16;
	f10 = f11+f13;
	f11 = f19*f12;
	f13 = heapFloat[(fp+-181)];
	f4 = f13*f4;
	f10 = f10+f11;
	f5 = f5 > f14 ? f15 : f16;
	f11 = heapFloat[(fp+-182)];
	f5 = f11*f5;
	r2 = sp + -640;
	f20 = f4*f20;
	f11 = heapFloat[(r1+28)];
	f10 = f10 > f14 ? f15 : f16;
	r3 = r2 >> 2;
	f13 = heapFloat[(fp+-180)];
	f10 = f13*f10;
	f27 = f4*f27;
	f13 = heapFloat[(r1+29)];
	f20 = f11+f20;
	f3 = f5*f3;
	r4 = (r12 + -7)|0;
	f11 = heapFloat[(r3+4)];
	f17 = heapFloat[(fp+-160)];
	f18 = heapFloat[(r3+8)];
	f21 = heapFloat[(r3+5)];
	f22 = heapFloat[(r3+1)];
	f23 = heapFloat[(r3+9)];
	f24 = heapFloat[(r3+6)];
	f25 = heapFloat[(r3+2)];
	f26 = heapFloat[(r3+10)];
	f4 = f4*f6;
	f6 = heapFloat[(r1+30)];
	f27 = f13+f27;
	f2 = f5*f2;
	f20 = f20+f3;
	f3 = f10*f9;
	f9 = heapFloat[(r1+12)];
	heapFloat[(fp+-182)] = f9;
	f9 = heapFloat[(r1+13)];
	heapFloat[(fp+-181)] = f9;
	f9 = heapFloat[(r1+14)];
	heapFloat[(fp+-180)] = f9;
	r3 = (r4 / 3)|0;
	r4 = (r4 % 3)|0;
	r10 = sp + -512;
	f20 = f20+f3;
	f3 = f6+f4;
	f4 = f5*f7;
	f27 = f27+f2;
	f2 = f10*f8;
	r3 = r3 << 2;
	r4 = r4 << 2;
	f27 = f27+f2;
	r12 = r10 >> 2;
	heapFloat[(fp+-128)] = f20;
	f2 = f3+f4;
	f3 = f10*f12;
	r2 = (r2 + r3)|0;
	r0 = (r0 + r4)|0;
	f2 = f2+f3;
	heapFloat[(r12+1)] = f27;
	r2 = r2 >> 2;
	heapFloat[(r12+2)] = f2;
	r0 = r0 >> 2;
	f3 = heapFloat[(r2)];
	f4 = heapFloat[(r0)];
	f5 = heapFloat[(r2+4)];
	f6 = heapFloat[(r0+4)];
	f7 = heapFloat[(r2+8)];
	f8 = heapFloat[(r0+8)];
	f9 = f3*f4;
	f10 = f5*f6;
	f9 = f9+f10;
	f10 = f7*f8;
	f9 = f9+f10;
	f10 = f9*f9;
	f10 = f16-f10;
	f12 =   9.9999997473787516e-005;
	if(f10 >f12) //_LBB166_151
{
	f12 = f0*f17;
	f13 = f1*f11;
	f12 = f12+f13;
	f13 = f19*f18;
	f28 = f0*f22;
	f29 = f1*f21;
	f12 = f12+f13;
	f13 = f28+f29;
	f28 = f19*f23;
	f29 = f0*f25;
	f30 = f1*f24;
	f13 = f13+f28;
	f12 = f12 > f14 ? f16 : f15;
	f28 = f29+f30;
	f29 = f19*f26;
	f30 = heapFloat[(fp+-179)];
	f12 = f30*f12;
	f28 = f28+f29;
	f13 = f13 > f14 ? f16 : f15;
	f29 = heapFloat[(fp+-178)];
	f13 = f29*f13;
	f17 = f12*f17;
	f11 = f12*f11;
	f12 = f12*f18;
	f14 = f28 > f14 ? f16 : f15;
	f15 = heapFloat[(fp+-177)];
	f14 = f15*f14;
	f15 = heapFloat[(fp+-182)];
	f15 = f15+f17;
	f17 = f13*f22;
	f18 = heapFloat[(fp+-181)];
	f11 = f18+f11;
	f18 = f13*f21;
	f21 = heapFloat[(fp+-180)];
	f12 = f21+f12;
	f13 = f13*f23;
	f15 = f15+f17;
	f17 = f14*f25;
	f11 = f11+f18;
	f18 = f14*f24;
	f12 = f12+f13;
	f14 = f14*f26;
	f13 = f15+f17;
	f11 = f11+f18;
	f14 = f12+f14;
	f12 = f20-f13;
	f11 = f27-f11;
	f14 = f2-f14;
	f3 = f3*f12;
	f5 = f5*f11;
	f3 = f3+f5;
	f5 = f7*f14;
	f7 = f4*f12;
	f11 = f6*f11;
	f3 = f3+f5;
	f5 = f7+f11;
	f14 = f8*f14;
	f3 = f9*f3;
	f14 = f5+f14;
	f14 = f3-f14;
	f3 = f16/f10;
	f14 = f14*f3;
}
	f3 = f4*f14;
	f20 = f20+f3;
	f3 = f6*f14;
	f4 = f8*f14;
	f27 = f27+f3;
	heapFloat[(fp+-128)] = f20;
	f20 = f2+f4;
	heapFloat[(r12+1)] = f27;
	r0 = r5 >> 2;
	heapFloat[(r12+2)] = f20;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r2 = sp + -224;
	f0 = -f0;
	r3 = r2 >> 2;
	f1 = -f1;
	heapFloat[(fp+-56)] = f0;
	f0 = -f19;
	heapFloat[(r3+1)] = f1;
	heapFloat[(r3+2)] = f0;
	heap32[(r3+3)] = 0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r10;
	f0 = heapFloat[(fp+-183)];
	heapFloat[(g0+3)] = f0;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	return;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
} while(0);
	return;
}

function _ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = sp + -8;
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
	r3 = r0 >> 2;
	r4 = heap32[(fp+3)];
	heap32[(fp+-2)] = r1;
	r5 = heap32[(fp+2)];
	r6 = r2 >> 2;
	heap32[(r3+1)] = r4;
	r3 = heap32[(r6+48)];
	r4 = r5 >> 2;
	r3 = r3 >> 2;
	r4 = heap32[(r4+48)];
	r3 = heap32[(r3+1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+1)];
	r3 = (r3 * 144)|0;
	r1 = (r1 + r3)|0;
	r3 = r4 << 2;
	r1 = (r1 + r3)|0;
	r1 = r1 >> 2;
	r1 = heap32[(r1+50)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+2)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	return;
}

function _ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+51)];
	r1 = r0 & 4;
if(!(r1 !=0)) //_LBB168_4
{
	r1 = heap32[(fp+2)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+51)];
	r2 = r1 & 4;
if(!(r2 !=0)) //_LBB168_4
{
	r0 = r0 & 3;
	if(r0 ==0) //_LBB168_5
{
	r0 = 1;
	r_g0 = r0;
	return;
}
else{
	r0 = r1 & 3;
	r1 = 0;
	r0 = r0 == r1;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN23btCollisionPairCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV23btCollisionPairCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN23btCollisionPairCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV23btCollisionPairCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+2)];
	r2 = r1 >> 2;
	r2 = heap32[(r2+47)];
	r0 = heap32[(r0+1)];
	r3 = heap32[(fp+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = _ZTV23btCollisionPairCallback;
	r1 = sp + -16;
	r0 = (r0 + 8)|0;
	r2 = r1 >> 2;
	r3 = heap32[(fp+2)];
	heap32[(fp+-4)] = r0;
	r0 = heap32[(fp+1)];
	r4 = heap32[(fp)];
	heap32[(r2+1)] = r3;
	r3 = r0 >> 2;
	heap32[(r2+2)] = r4;
	r2 = heap32[(r3)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	r3 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}

function _ZNK21btCollisionDispatcher15getNumManifoldsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+3)];
	r_g0 = r0;
	return;
}

function _ZN21btCollisionDispatcher26getInternalManifoldPointerEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
	r_g0 = r0;
	return;
}

function _ZN21btCollisionDispatcher26getManifoldByIndexInternalEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r0 = heap32[(r0+5)];
	r1 = r1 << 2;
	r0 = (r0 + r1)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	r_g0 = r0;
	return;
}

function _ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
if(!(r0 ==0)) //_LBB176_5
{
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+48)];
	r1 = r1 >> 2;
	r2 = heap32[(r1+4)];
if(!(uint(r2) >uint(r0))) //_LBB176_4
{
	r3 = heap32[(r1)];
	r4 = heap32[(r1+1)];
	r3 = (r3 * r4)|0;
	r2 = (r2 + r3)|0;
if(!(uint(r2) <=uint(r0))) //_LBB176_4
{
	r2 = r0 >> 2;
	r3 = heap32[(r1+3)];
	heap32[(r2)] = r3;
	heap32[(r1+3)] = r0;
	r0 = heap32[(r1+2)];
	r0 = (r0 + 1)|0;
	heap32[(r1+2)] = r0;
	return;
}
}
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r2 = (r2 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r2;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = gNumManifold;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = heap32[(fp)];
	r1 = (r1 + -1)|0;
	r3 = r2 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r3)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
	r1 = heap32[(fp+1)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	r0 = r1 >> 2;
	r2 = heap32[(r3+3)];
	r4 = heap32[(r0+284)];
	if(r2 >r4) //_LBB177_2
{
	r2 = (r2 + -1)|0;
	r5 = r4 << 2;
	r6 = heap32[(r3+5)];
	r2 = r2 << 2;
	r7 = (r6 + r5)|0;
	r6 = (r6 + r2)|0;
	r7 = r7 >> 2;
	r6 = r6 >> 2;
	r8 = heap32[(r7)];
	r6 = heap32[(r6)];
	heap32[(r7)] = r6;
	r6 = heap32[(r3+5)];
	r2 = (r6 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = r8;
	r2 = heap32[(r3+5)];
	r2 = (r2 + r5)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	heap32[(r2+284)] = r4;
	r2 = heap32[(r3+3)];
	r2 = (r2 + -1)|0;
	heap32[(r3+3)] = r2;
if(!(r1 ==0)) //_LBB177_7
{
	r2 = heap32[(r3+49)];
	r2 = r2 >> 2;
	r3 = heap32[(r2+4)];
if(!(uint(r3) >uint(r1))) //_LBB177_6
{
	r4 = heap32[(r2)];
	r5 = heap32[(r2+1)];
	r4 = (r4 * r5)|0;
	r3 = (r3 + r4)|0;
if(!(uint(r3) <=uint(r1))) //_LBB177_6
{
	r3 = heap32[(r2+3)];
	heap32[(r0)] = r3;
	heap32[(r2+3)] = r1;
	r0 = heap32[(r2+2)];
	r0 = (r0 + 1)|0;
	heap32[(r2+2)] = r0;
	return;
}
}
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r2 = (r2 + 1)|0;
	heap32[(r1)] = r2;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}
else{
	r0 = _2E_str472;
	r1 = _2E_str573;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 120;
	_assert(i7);
}
}

function _ZN21btCollisionDispatcherD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV21btCollisionDispatcher;
	r2 = _ZTV16btManifoldResult;
	r3 = r0 >> 2;
	r1 = (r1 + 8)|0;
	r2 = (r2 + 8)|0;
	heap32[(r3)] = r1;
	heap32[(r3+7)] = r2;
	r1 = heap32[(r3+5)];
if(!(r1 ==0)) //_LBB178_4
{
	r2 = heapU8[r0+24];
if(!(r2 ==0)) //_LBB178_3
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r4 = heap32[(r2)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r2)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r3+5)] = 0;
}
	r1 = 1;
	heap8[r0+24] = r1;
	heap32[(r3+5)] = 0;
	r0 = _ZTV12btDispatcher;
	heap32[(r3+3)] = 0;
	r0 = (r0 + 8)|0;
	heap32[(r3+4)] = 0;
	heap32[(r3)] = r0;
	return;
}

function _ZN21btCollisionDispatcherD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV21btCollisionDispatcher;
	r2 = _ZTV16btManifoldResult;
	r3 = r0 >> 2;
	r1 = (r1 + 8)|0;
	r2 = (r2 + 8)|0;
	heap32[(r3)] = r1;
	heap32[(r3+7)] = r2;
	r1 = heap32[(r3+5)];
if(!(r1 ==0)) //_LBB179_4
{
	r2 = heapU8[r0+24];
if(!(r2 ==0)) //_LBB179_3
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r4 = heap32[(r2)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r2)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r3+5)] = 0;
}
	r1 = 1;
	heap8[r0+24] = r1;
	heap32[(r3+5)] = 0;
	r1 = _ZTV12btDispatcher;
	heap32[(r3+3)] = 0;
	r1 = (r1 + 8)|0;
	heap32[(r3+4)] = 0;
	heap32[(r3)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN21btCollisionDispatcher14getNewManifoldEPvS0_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = gNumManifold;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	r2 = heap32[(fp)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	heap32[(r0)] = r1;
	r0 = heapU8[r2+4];
	r0 = r0 & 2;
	if(r0 !=0) //_LBB180_2
{
	r0 = r4 >> 2;
	r0 = heap32[(r0+48)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 1017370378;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f0 = f_g0;
	r0 = r3 >> 2;
	heapFloat[(fp+-2)] = f0;
	r0 = heap32[(r0+48)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 1017370378;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = sp + -4;
	r1 = sp + -8;
	r0 = f_g0 < f0 ? r0 : r1;
	heapFloat[(fp+-1)] = f_g0;
}
else{
	r0 = gContactBreakingThreshold;
}
	r1 = r2 >> 2;
	r5 = heap32[(r1+49)];
	r6 = r3 >> 2;
	r7 = r4 >> 2;
	r5 = r5 >> 2;
	r0 = r0 >> 2;
	f0 = heapFloat[(r6+46)];
	f1 = heapFloat[(r7+46)];
	r6 = heap32[(r5+2)];
	f2 = heapFloat[(r0)];
	f0 = f0 < f1 ? f0 : f1;
_5: do {
	if(r6 ==0) //_LBB180_9
{
	r0 = gNumAlignedAllocs;
	r0 = r0 >> 2;
	r5 = heap32[(r0)];
	r5 = (r5 + 1)|0;
	heap32[(r0)] = r5;
	heap32[(g0)] = 1159;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB180_11
{
	r5 = 0;
	r6 = (r0 + 4)|0;
	r5 = (r5 - r6)|0;
	r5 = r5 & 15;
	r5 = (r0 + r5)|0;
	r6 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r0;
	r0 = r6;
}
else{
break _5;
}
}
else{
	r0 = heap32[(r5)];
	if(r0 >1139) //_LBB180_6
{
	if(r6 >0) //_LBB180_8
{
	r0 = heap32[(r5+3)];
	r7 = r0 >> 2;
	r7 = heap32[(r7)];
	r6 = (r6 + -1)|0;
	heap32[(r5+3)] = r7;
	heap32[(r5+2)] = r6;
}
else{
	r1 = _2E_str371;
	r2 = _2E_str169;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 70;
	_assert(i7);
}
}
else{
	r1 = _2E_str270;
	r2 = _2E_str169;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 69;
	_assert(i7);
}
}
} while(0);
	r5 = r0 >> 2;
	heap32[(r5)] = 1;
	heap32[(r5+28)] = 0;
	r6 = 0;
	heap32[(r5+29)] = 0;
	heap8[r0+120] = r6;
	heap32[(r5+31)] = 0;
	heap32[(r5+32)] = 0;
	heap32[(r5+33)] = 0;
	heap32[(r5+34)] = 0;
	heap32[(r5+35)] = 0;
	heap32[(r5+36)] = 0;
	heap32[(r5+37)] = 0;
	heap32[(r5+97)] = 0;
	heap32[(r5+98)] = 0;
	heap8[r0+396] = r6;
	heap32[(r5+100)] = 0;
	heap32[(r5+101)] = 0;
	heap32[(r5+102)] = 0;
	heap32[(r5+103)] = 0;
	heap32[(r5+104)] = 0;
	heap32[(r5+105)] = 0;
	heap32[(r5+106)] = 0;
	heap32[(r5+166)] = 0;
	heap32[(r5+167)] = 0;
	heap8[r0+672] = r6;
	heap32[(r5+169)] = 0;
	heap32[(r5+170)] = 0;
	heap32[(r5+171)] = 0;
	heap32[(r5+172)] = 0;
	heap32[(r5+173)] = 0;
	heap32[(r5+174)] = 0;
	heap32[(r5+175)] = 0;
	heap32[(r5+235)] = 0;
	heap32[(r5+236)] = 0;
	heap8[r0+948] = r6;
	heap32[(r5+238)] = 0;
	heap32[(r5+239)] = 0;
	heap32[(r5+240)] = 0;
	heap32[(r5+241)] = 0;
	heap32[(r5+242)] = 0;
	heap32[(r5+243)] = 0;
	heap32[(r5+244)] = 0;
	heap32[(r5+277)] = r3;
	heap32[(r5+278)] = r4;
	heap32[(r5+279)] = 0;
	heapFloat[(r5+280)] = f2;
	heapFloat[(r5+281)] = f0;
	r3 = heap32[(r1+3)];
	heap32[(r5+284)] = r3;
	r3 = heap32[(r1+4)];
	r4 = heap32[(r1+3)];
	if(r3 ==r4) //_LBB180_14
{
	r5 = 1;
	r7 = r4 << 1;
	r7 = r4 == 0 ? r5 : r7;
if(!(r3 >=r7)) //_LBB180_13
{
	if(r7 !=0) //_LBB180_17
{
	r3 = gNumAlignedAllocs;
	r3 = r3 >> 2;
	r8 = heap32[(r3)];
	r9 = r7 << 2;
	r8 = (r8 + 1)|0;
	r9 = r9 | 3;
	heap32[(r3)] = r8;
	r3 = (r9 + 16)|0;
	heap32[(g0)] = r3;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB180_19
{
	r8 = (r3 + 4)|0;
	r8 = (r6 - r8)|0;
	r8 = r8 & 15;
	r8 = (r3 + r8)|0;
	r9 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r3;
	r3 = r9;
}
}
else{
	r3 = 0;
}
	r8 = (r2 + 20)|0;
	if(r4 <1) //_LBB180_22
{
	r6 = r8 >> 2;
	r9 = heap32[(r6)];
}
else{
_26: while(true){
	r9 = r8 >> 2;
	r9 = heap32[(r9)];
	r10 = r6 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r3 + r10)|0;
	r11 = heap32[(r11)];
	r6 = (r6 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r4 !=r6)) //_LBB180_23
{
break _26;
}
}
	r8 = (r2 + 20)|0;
}
	if(r9 !=0) //_LBB180_27
{
	r6 = heapU8[r2+24];
	if(r6 !=0) //_LBB180_29
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r6 = heap32[(r4)];
	r6 = (r6 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r4)] = r6;
	r4 = heap32[(r9+-1)];
	heap32[(g0)] = r4;
	free(i7);
	r4 = heap32[(r1+3)];
}
	r6 = r8 >> 2;
	heap32[(r6)] = 0;
}
	r6 = r8 >> 2;
	heap8[r2+24] = r5;
	heap32[(r6)] = r3;
	heap32[(r1+4)] = r7;
}
}
	r2 = r4 << 2;
	r3 = heap32[(r1+5)];
	r2 = (r3 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = r0;
	r2 = heap32[(r1+3)];
	r2 = (r2 + 1)|0;
	heap32[(r1+3)] = r2;
	r_g0 = r0;
	return;
}

function _ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+279)];
if(!(r1 <1)) //_LBB181_3
{
	r2 = 0;
_3: while(true){
	r2 = (r2 + 1)|0;
	if(r1 >r2) //_LBB181_2
{
continue _3;
}
else{
break _3;
}
}
}
	heap32[(r0+279)] = 0;
	return;
}

function _ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	if(r0 !=0) //_LBB182_2
{
	r1 = heap32[(fp+2)];
	if(r1 !=0) //_LBB182_4
{
	r2 = heap32[(fp)];
	r2 = r2 >> 2;
	r3 = heap32[(r2+1)];
	r4 = r3 & 1;
if(!(r4 != 0)) //_LBB182_8
{
	r4 = heapU8[r0+204];
	r4 = r4 & 3;
if(!(r4 ==0)) //_LBB182_8
{
	r4 = heapU8[r1+204];
	r4 = r4 & 3;
if(!(r4 ==0)) //_LBB182_8
{
	r3 = r3 | 1;
	heap32[(r2+1)] = r3;
	r2 = _2E_str977;
	heap32[(g0)] = r2;
	printf(i7);
}
}
}
	r2 = r0 >> 2;
	r3 = heap32[(r2+54)];
	if(r3 ==2) //_LBB182_10
{
__label__ = 10;
}
else{
	if(r3 !=5) //_LBB182_12
{
__label__ = 12;
}
else{
__label__ = 10;
}
}
_12: do {
if (__label__ == 10){
	r3 = r1 >> 2;
	r3 = heap32[(r3+54)];
if(!(r3 ==2)) //_LBB182_16
{
if(!(r3 ==5)) //_LBB182_16
{
break _12;
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}
} while(0);
	r3 = heap32[(r2+63)];
	if(r3 !=0) //_LBB182_14
{
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	r0 = 0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = r_g0 == r0;
}
else{
	r0 = 0;
}
	r0 = r0 & 1;
	r0 = r0 ^ 1;
	r_g0 = r0;
	return;
}
else{
	r0 = _2E_str876;
	r1 = _2E_str573;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 167;
	_assert(i7);
}
}
else{
	r0 = _2E_str775;
	r1 = _2E_str573;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 166;
	_assert(i7);
}
}

function _ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+48)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+2)];
	r2 = heap32[(fp+1)];
	if(r1 ==0) //_LBB183_7
{
	r0 = gNumAlignedAllocs;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = (r2 + 19)|0;
	heap32[(g0)] = r0;
	malloc(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB183_9
{
	r1 = 0;
	r2 = (r0 + 4)|0;
	r1 = (r1 - r2)|0;
	r1 = r1 & 15;
	r1 = (r0 + r1)|0;
	r2 = r1 >> 2;
	heap32[(r2)] = r0;
	r0 = (r1 + 4)|0;
}
	r_g0 = r0;
	return;
}
else{
if(!(r2 ==0)) //_LBB183_4
{
	r3 = heap32[(r0)];
if(!(r3 >=r2)) //_LBB183_4
{
	r0 = _2E_str270;
	r1 = _2E_str169;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 69;
	_assert(i7);
}
}
	if(r1 >0) //_LBB183_6
{
	r2 = heap32[(r0+3)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r1 = (r1 + -1)|0;
	heap32[(r0+3)] = r3;
	heap32[(r0+2)] = r1;
	r_g0 = r2;
	return;
}
else{
	r0 = _2E_str371;
	r1 = _2E_str169;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 70;
	_assert(i7);
}
}
}

function _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -184;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r2 = r0 >> 2;
	r3 = heap32[(r2)];
	r4 = heap32[(r1)];
	r5 = heap32[(r1+1)];
	r3 = r3 >> 2;
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	r4 = heap32[(r4)];
	r5 = heap32[(r5)];
	r3 = heap32[(r3+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r_g0;
_1: do {
if(!(r3 ==0)) //_LBB184_8
{
	r3 = heap32[(fp+2)];
	r6 = heap32[(r1+2)];
	if(r6 ==0) //_LBB184_3
{
	r6 = heap32[(r2)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = 0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = r_g0;
	heap32[(r1+2)] = r6;
	if(r6 ==0) //_LBB184_8
{
break _1;
}
}
	r0 = _ZTV16btManifoldResult;
	r1 = sp + -160;
	r0 = (r0 + 8)|0;
	r2 = r1 >> 2;
	heap32[(fp+-40)] = r0;
	heap32[(r2+1)] = 0;
	heap32[(r2+34)] = r4;
	r0 = r4 >> 2;
	heap32[(r2+35)] = r5;
	heap32[(r2+2)] = heap32[(r0+1)];
	heap32[(r2+3)] = heap32[(r0+2)];
	heap32[(r2+4)] = heap32[(r0+3)];
	heap32[(r2+5)] = heap32[(r0+4)];
	heap32[(r2+6)] = heap32[(r0+5)];
	heap32[(r2+7)] = heap32[(r0+6)];
	heap32[(r2+8)] = heap32[(r0+7)];
	heap32[(r2+9)] = heap32[(r0+8)];
	heap32[(r2+10)] = heap32[(r0+9)];
	heap32[(r2+11)] = heap32[(r0+10)];
	heap32[(r2+12)] = heap32[(r0+11)];
	heap32[(r2+13)] = heap32[(r0+12)];
	heap32[(r2+14)] = heap32[(r0+13)];
	heap32[(r2+15)] = heap32[(r0+14)];
	heap32[(r2+16)] = heap32[(r0+15)];
	r7 = r5 >> 2;
	heap32[(r2+17)] = heap32[(r0+16)];
	heap32[(r2+18)] = heap32[(r7+1)];
	heap32[(r2+19)] = heap32[(r7+2)];
	heap32[(r2+20)] = heap32[(r7+3)];
	heap32[(r2+21)] = heap32[(r7+4)];
	heap32[(r2+22)] = heap32[(r7+5)];
	heap32[(r2+23)] = heap32[(r7+6)];
	heap32[(r2+24)] = heap32[(r7+7)];
	heap32[(r2+25)] = heap32[(r7+8)];
	heap32[(r2+26)] = heap32[(r7+9)];
	heap32[(r2+27)] = heap32[(r7+10)];
	heap32[(r2+28)] = heap32[(r7+11)];
	heap32[(r2+29)] = heap32[(r7+12)];
	heap32[(r2+30)] = heap32[(r7+13)];
	heap32[(r2+31)] = heap32[(r7+14)];
	heap32[(r2+32)] = heap32[(r7+15)];
	r0 = r6 >> 2;
	heap32[(r2+33)] = heap32[(r7+16)];
	r0 = heap32[(r0)];
	r2 = r3 >> 2;
	r7 = heap32[(r2+2)];
	if(r7 !=1) //_LBB184_6
{
	r0 = r0 >> 2;
	r0 = heap32[(r0+3)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r1;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	f0 = f_g0;
	f1 = heapFloat[(r2+3)];
if(!(f1 <=f0)) //_LBB184_8
{
	heapFloat[(r2+3)] = f0;
}
}
else{
	r0 = r0 >> 2;
	r0 = heap32[(r0+2)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r1;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	return;
}
}
} while(0);
	return;
}

function _ZN17btCollisionObject24checkCollideWithOverrideEPS_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	heap32[(r0+48)] = r1;
	heap32[(r0+50)] = r1;
	return;
}

function _ZNK17btCollisionObject28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 248;
	r_g0 = r0;
	return;
}

function _ZN17btCollisionObjectD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17btCollisionObject;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN17btCollisionObjectD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17btCollisionObject;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB189_2
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZNK17btCollisionObject9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r1+4)] = heap32[(r2+1)];
	heap32[(r1+5)] = heap32[(r2+2)];
	heap32[(r1+6)] = heap32[(r2+3)];
	heap32[(r1+7)] = heap32[(r2+4)];
	heap32[(r1+8)] = heap32[(r2+5)];
	heap32[(r1+9)] = heap32[(r2+6)];
	heap32[(r1+10)] = heap32[(r2+7)];
	heap32[(r1+11)] = heap32[(r2+8)];
	heap32[(r1+12)] = heap32[(r2+9)];
	heap32[(r1+13)] = heap32[(r2+10)];
	heap32[(r1+14)] = heap32[(r2+11)];
	heap32[(r1+15)] = heap32[(r2+12)];
	heap32[(r1+16)] = heap32[(r2+13)];
	heap32[(r1+17)] = heap32[(r2+14)];
	heap32[(r1+18)] = heap32[(r2+15)];
	heap32[(r1+19)] = heap32[(r2+16)];
	heap32[(r1+20)] = heap32[(r2+17)];
	heap32[(r1+21)] = heap32[(r2+18)];
	heap32[(r1+22)] = heap32[(r2+19)];
	heap32[(r1+23)] = heap32[(r2+20)];
	heap32[(r1+24)] = heap32[(r2+21)];
	heap32[(r1+25)] = heap32[(r2+22)];
	heap32[(r1+26)] = heap32[(r2+23)];
	heap32[(r1+27)] = heap32[(r2+24)];
	heap32[(r1+28)] = heap32[(r2+25)];
	heap32[(r1+29)] = heap32[(r2+26)];
	heap32[(r1+30)] = heap32[(r2+27)];
	heap32[(r1+31)] = heap32[(r2+28)];
	heap32[(r1+32)] = heap32[(r2+29)];
	heap32[(r1+33)] = heap32[(r2+30)];
	heap32[(r1+34)] = heap32[(r2+31)];
	heap32[(r1+35)] = heap32[(r2+32)];
	heap32[(r1+36)] = heap32[(r2+33)];
	heap32[(r1+37)] = heap32[(r2+34)];
	heap32[(r1+38)] = heap32[(r2+35)];
	heap32[(r1+39)] = heap32[(r2+36)];
	heap32[(r1+40)] = heap32[(r2+37)];
	heap32[(r1+41)] = heap32[(r2+38)];
	heap32[(r1+42)] = heap32[(r2+39)];
	heap32[(r1+43)] = heap32[(r2+40)];
	heap32[(r1+44)] = heap32[(r2+41)];
	heap32[(r1+45)] = heap32[(r2+42)];
	heap32[(r1+46)] = heap32[(r2+43)];
	heap32[(r1+47)] = heap32[(r2+44)];
	r3 = heap32[(r2+45)];
	heap32[(r1+55)] = r3;
	r3 = heap32[(fp+2)];
	heap32[(r1+48)] = heap32[(r2+46)];
	heap32[(r1)] = 0;
	r4 = r3 >> 2;
	r5 = heap32[(r4)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+7)];
	r6 = heap32[(r2+48)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	heap32[(r1+1)] = r_g0;
	heap32[(r1+2)] = 0;
	r5 = heap32[(r2+51)];
	heap32[(r1+56)] = r5;
	r5 = heap32[(r2+52)];
	heap32[(r1+57)] = r5;
	r5 = heap32[(r2+53)];
	heap32[(r1+58)] = r5;
	r5 = heap32[(r2+54)];
	heap32[(r1+59)] = r5;
	r5 = heap32[(r2+54)];
	heap32[(r1+59)] = r5;
	heap32[(r1+49)] = heap32[(r2+55)];
	heap32[(r1+50)] = heap32[(r2+56)];
	heap32[(r1+51)] = heap32[(r2+57)];
	r5 = heap32[(r2+58)];
	heap32[(r1+60)] = r5;
	r5 = heap32[(r4)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+10)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r0 = r_g0;
	r5 = heap32[(r4)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+7)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = r_g0;
	heap32[(r1+3)] = r5;
if(!(r5 ==0)) //_LBB190_2
{
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+12)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
	heap32[(r1+52)] = heap32[(r2+60)];
	heap32[(r1+53)] = heap32[(r2+61)];
	heap32[(r1+54)] = heap32[(r2+62)];
	heap32[(r1+54)] = heap32[(r2+62)];
	r0 = heap32[(r2+63)];
	heap32[(r1+61)] = r0;
	r0 = _2E_str78;
	r_g0 = r0;
	return;
}

function _ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	r3 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r4 = r3 >> 2;
	r5 = heap32[(r4)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r2 = r_g0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r5 = r2 >> 2;
	r1 = heap32[(r1+5)];
	r5 = heap32[(r5+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+5)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1245859651;
	heap32[(g0+4)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	return;
}

function _ZN16btManifoldResult20setShapeIdentifiersAEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	heap32[(r0+36)] = r1;
	heap32[(r0+38)] = r2;
	return;
}

function _ZN16btManifoldResult20setShapeIdentifiersBEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	heap32[(r0+37)] = r1;
	heap32[(r0+39)] = r2;
	return;
}

function _ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	heap32[(r0+21)] = r1;
	return;
}

function _ZN16btCollisionWorld14getDebugDrawerEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+21)];
	r_g0 = r0;
	return;
}

function _ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heapU16[(r0+10)>>1];
	r3 = heapU16[(r1+4)>>1];
	r2 = r2 & r3;
	r2 = r2 & 65535;
	if(r2 ==0) //_LBB196_2
{
	r0 = 0;
	r_g0 = r0;
	return;
}
else{
	r1 = heapU16[(r1+6)>>1];
	r0 = heapU16[(r0+8)>>1];
	r0 = r1 & r0;
	r0 = r0 & 65535;
	r1 = 0;
	r0 = r0 != r1;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}
}

function _ZN12btConvexCast10CastResult9DebugDrawEf(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN12btConvexCast10CastResultD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN12btConvexCast10CastResultE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN12btConvexCast10CastResultD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN12btConvexCast10CastResultE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -56;var g0 = i7>>2; // save stack
	r0 = sp + -8;
	r1 = heap32[(fp+3)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp)];
	r4 = r0 >> 2;
	r5 = heap32[(fp+4)];
	heap32[(fp+-2)] = r1;
	r1 = r2 >> 2;
	heap32[(r4+1)] = r5;
	r2 = r3 >> 2;
	r3 = heap32[(r2+12)];
	f0 = heapFloat[(r2+22)];
	f1 = heapFloat[(r1)];
	f2 = heapFloat[(r2+18)];
	f3 = heapFloat[(r2+14)];
	f4 = heapFloat[(r2+23)];
	f5 = heapFloat[(r1+1)];
	f6 = heapFloat[(r2+19)];
	f7 = heapFloat[(r2+15)];
	f8 = heapFloat[(r2+24)];
	f9 = heapFloat[(r1+2)];
	f10 = heapFloat[(r2+20)];
	f11 = heapFloat[(r2+16)];
	r1 = sp + -40;
	f3 = f3*f1;
	f7 = f7*f5;
	r4 = r1 >> 2;
	heap32[(fp+-10)] = r3;
	f2 = f2*f1;
	f6 = f6*f5;
	f3 = f3+f7;
	f7 = f11*f9;
	f0 = f0*f1;
	f1 = f4*f5;
	f2 = f2+f6;
	f4 = f10*f9;
	f3 = f3+f7;
	heap32[(r4+1)] = r0;
	f0 = f0+f1;
	f1 = f8*f9;
	f2 = f2+f4;
	heapFloat[(r4+2)] = f3;
	f0 = f0+f1;
	heapFloat[(r4+3)] = f2;
	heapFloat[(r4+4)] = f0;
	heap32[(r4+5)] = 0;
	heap32[(r4+6)] = heap32[(fp+2)];
	r0 = heap32[(r2+11)];
	r2 = r0 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -56;var g0 = i7>>2; // save stack
	r0 = sp + -8;
	r1 = heap32[(fp+3)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp)];
	r4 = r0 >> 2;
	r5 = heap32[(fp+4)];
	heap32[(fp+-2)] = r1;
	r1 = r2 >> 2;
	heap32[(r4+1)] = r5;
	r2 = r3 >> 2;
	r3 = heap32[(r2+12)];
	f0 = heapFloat[(r2+22)];
	f1 = heapFloat[(r1)];
	f2 = heapFloat[(r2+18)];
	f3 = heapFloat[(r2+14)];
	f4 = heapFloat[(r2+23)];
	f5 = heapFloat[(r1+1)];
	f6 = heapFloat[(r2+19)];
	f7 = heapFloat[(r2+15)];
	f8 = heapFloat[(r2+24)];
	f9 = heapFloat[(r1+2)];
	f10 = heapFloat[(r2+20)];
	f11 = heapFloat[(r2+16)];
	r1 = sp + -40;
	f3 = f3*f1;
	f7 = f7*f5;
	r4 = r1 >> 2;
	heap32[(fp+-10)] = r3;
	f2 = f2*f1;
	f6 = f6*f5;
	f3 = f3+f7;
	f7 = f11*f9;
	f0 = f0*f1;
	f1 = f4*f5;
	f2 = f2+f6;
	f4 = f10*f9;
	f3 = f3+f7;
	heap32[(r4+1)] = r0;
	f0 = f0+f1;
	f1 = f8*f9;
	f2 = f2+f4;
	heapFloat[(r4+2)] = f3;
	f0 = f0+f1;
	heapFloat[(r4+3)] = f2;
	heapFloat[(r4+4)] = f0;
	heap32[(r4+5)] = 0;
	heap32[(r4+6)] = heap32[(fp+2)];
	r0 = heap32[(r2+11)];
	r2 = r0 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = sp + -8;
	r0 = r0 >> 2;
	heap32[(fp+-2)] = -1;
	r2 = heap32[(fp+1)];
	r3 = r1 >> 2;
	r4 = heap32[(r0+6)];
	r5 = r2 >> 2;
	heap32[(r3+1)] = r4;
	r3 = heap32[(r5+1)];
if(!(r3 !=0)) //_LBB205_2
{
	heap32[(r5+1)] = r1;
}
	r1 = heap32[(fp+2)];
	r3 = heap32[(r0+5)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+3)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r1 = heap32[(r0+5)];
	r1 = r1 >> 2;
	heap32[(r0+1)] = heap32[(r1+1)];
	return;
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -72;var g0 = i7>>2; // save stack
	r0 = sp + -8;
	r1 = heap32[(fp+4)];
	r2 = heap32[(fp)];
	r3 = r0 >> 2;
	r4 = heap32[(fp+5)];
	heap32[(fp+-2)] = r1;
	r1 = r2 >> 2;
	heap32[(r3+1)] = r4;
	r2 = heap32[(r1+52)];
	f0 = heapFloat[(fp+3)];
	r3 = r2 >> 2;
	f1 = heapFloat[(r3+1)];
	if(f1 <f0) //_LBB206_2
{
	f_g0 = f0;
	return;
}
else{
	r4 = heap32[(fp+1)];
	r5 = heap32[(fp+2)];
	r1 = heap32[(r1+53)];
	r6 = sp + -56;
	r7 = r6 >> 2;
	heap32[(fp+-14)] = r1;
	r1 = r4 >> 2;
	heap32[(r7+1)] = r0;
	heap32[(r7+2)] = heap32[(r1)];
	heap32[(r7+3)] = heap32[(r1+1)];
	heap32[(r7+4)] = heap32[(r1+2)];
	r0 = r5 >> 2;
	heap32[(r7+5)] = heap32[(r1+3)];
	heap32[(r7+6)] = heap32[(r0)];
	heap32[(r7+7)] = heap32[(r0+1)];
	heap32[(r7+8)] = heap32[(r0+2)];
	heap32[(r7+9)] = heap32[(r0+3)];
	heapFloat[(r7+10)] = f0;
	r0 = heap32[(r3)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+3)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	return;
}
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -72;var g0 = i7>>2; // save stack
	r0 = sp + -8;
	r1 = heap32[(fp+4)];
	r2 = heap32[(fp)];
	r3 = r0 >> 2;
	r4 = heap32[(fp+5)];
	heap32[(fp+-2)] = r1;
	r1 = r2 >> 2;
	heap32[(r3+1)] = r4;
	r2 = heap32[(r1+52)];
	f0 = heapFloat[(fp+3)];
	r3 = r2 >> 2;
	f1 = heapFloat[(r3+1)];
	if(f1 <f0) //_LBB207_2
{
	f_g0 = f0;
	return;
}
else{
	r4 = heap32[(fp+1)];
	r5 = heap32[(fp+2)];
	r1 = heap32[(r1+53)];
	r6 = sp + -56;
	r7 = r6 >> 2;
	heap32[(fp+-14)] = r1;
	r1 = r4 >> 2;
	heap32[(r7+1)] = r0;
	heap32[(r7+2)] = heap32[(r1)];
	heap32[(r7+3)] = heap32[(r1+1)];
	heap32[(r7+4)] = heap32[(r1+2)];
	r0 = r5 >> 2;
	heap32[(r7+5)] = heap32[(r1+3)];
	heap32[(r7+6)] = heap32[(r0)];
	heap32[(r7+7)] = heap32[(r0+1)];
	heap32[(r7+8)] = heap32[(r0+2)];
	heap32[(r7+9)] = heap32[(r0+3)];
	heapFloat[(r7+10)] = f0;
	r0 = heap32[(r3)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+3)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = 0;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	return;
}
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = sp + -8;
	r0 = r0 >> 2;
	heap32[(fp+-2)] = -1;
	r2 = heap32[(fp+1)];
	r3 = r1 >> 2;
	r4 = heap32[(r0+4)];
	r5 = r2 >> 2;
	heap32[(r3+1)] = r4;
	r3 = heap32[(r5+1)];
if(!(r3 !=0)) //_LBB210_2
{
	heap32[(r5+1)] = r1;
}
	r1 = heap32[(fp+2)];
	r3 = heap32[(r0+3)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+3)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r1 = heap32[(r0+3)];
	r1 = r1 >> 2;
	heap32[(r0+1)] = heap32[(r1+1)];
	return;
}

function _ZN17DebugDrawcallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _ZTV17DebugDrawcallback;
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r2 = (r0 + 8)|0;
	r3 = _ZTV31btInternalTriangleIndexCallback;
	r0 = (r0 + 32)|0;
	heap32[(r1)] = r2;
	r2 = _ZTV18btTriangleCallback;
	r3 = (r3 + 8)|0;
	heap32[(r1+1)] = r0;
	r0 = (r2 + 8)|0;
	heap32[(r1+1)] = r3;
	heap32[(r1)] = r0;
	return;
}

function _ZN17DebugDrawcallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZTV17DebugDrawcallback;
	r1 = heap32[(fp)];
	r2 = r1 >> 2;
	r3 = (r0 + 8)|0;
	r4 = _ZTV31btInternalTriangleIndexCallback;
	r0 = (r0 + 32)|0;
	heap32[(r2)] = r3;
	r3 = _ZTV18btTriangleCallback;
	r4 = (r4 + 8)|0;
	heap32[(r2+1)] = r0;
	r0 = (r3 + 8)|0;
	heap32[(r2+1)] = r4;
	heap32[(r2)] = r0;
	heap32[(g0)] = r1;
	_ZdlPv(i7);
	return;
}

function _ZN17DebugDrawcallback15processTriangleEP9btVector3ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
var __label__ = 0;
	i7 = sp + -112;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r0 >> 2;
	r1 = r1 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r2+7)];
	f2 = heapFloat[(r1+1)];
	f3 = heapFloat[(r2+8)];
	f4 = heapFloat[(r2+11)];
	f5 = heapFloat[(r2+12)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r1+2)];
	f9 = heapFloat[(r2+9)];
	f10 = heapFloat[(r2+15)];
	f11 = heapFloat[(r2+16)];
	f12 = heapFloat[(r2+13)];
	f13 = f4*f0;
	f14 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	f15 = heapFloat[(r2+17)];
	f0 = f10*f0;
	f2 = f11*f2;
	f13 = f13+f14;
	f14 = f12*f8;
	f6 = f6+f7;
	f7 = heapFloat[(r2+19)];
	f16 = heapFloat[(r2+21)];
	f17 = heapFloat[(r2+20)];
	r3 = sp + -32;
	f13 = f13+f14;
	f0 = f0+f2;
	f2 = f15*f8;
	f6 = f6+f7;
	f0 = f0+f2;
	r4 = r3 >> 2;
	f2 = f13+f17;
	heapFloat[(fp+-8)] = f6;
	f0 = f0+f16;
	heapFloat[(r4+1)] = f2;
	heapFloat[(r4+2)] = f0;
	heap32[(r4+3)] = 0;
	f8 = heapFloat[(r1+4)];
	f13 = heapFloat[(r1+5)];
	f14 = heapFloat[(r1+6)];
	f18 = f1*f8;
	f19 = f3*f13;
	f20 = f4*f8;
	f21 = f5*f13;
	f18 = f18+f19;
	f19 = f9*f14;
	f18 = f18+f19;
	f8 = f10*f8;
	f13 = f11*f13;
	f19 = f20+f21;
	f20 = f12*f14;
	f18 = f18+f7;
	r4 = sp + -48;
	f19 = f19+f20;
	f8 = f8+f13;
	f13 = f15*f14;
	f14 = f19+f17;
	f8 = f8+f13;
	r5 = r4 >> 2;
	heapFloat[(fp+-12)] = f18;
	f8 = f8+f16;
	heapFloat[(r5+1)] = f14;
	heapFloat[(r5+2)] = f8;
	heap32[(r5+3)] = 0;
	f13 = heapFloat[(r1+8)];
	f19 = heapFloat[(r1+9)];
	f20 = heapFloat[(r1+10)];
	f1 = f1*f13;
	f3 = f3*f19;
	f4 = f4*f13;
	f5 = f5*f19;
	f1 = f1+f3;
	f3 = f9*f20;
	f1 = f1+f3;
	f3 = f10*f13;
	f9 = f11*f19;
	f4 = f4+f5;
	f5 = f12*f20;
	r1 = sp + -64;
	f4 = f4+f5;
	f1 = f1+f7;
	f3 = f3+f9;
	f5 = f15*f20;
	f3 = f3+f5;
	f4 = f4+f17;
	r5 = r1 >> 2;
	heapFloat[(fp+-16)] = f1;
	f5 = f6+f18;
	f3 = f3+f16;
	heapFloat[(r5+1)] = f4;
	f7 = f2+f14;
	heapFloat[(r5+2)] = f3;
	f5 = f5+f1;
	f9 =        0.3333333432674408;
	r6 = sp + -80;
	f10 = f0+f8;
	f7 = f7+f4;
	f8 = f8-f0;
	f4 = f4-f2;
	f11 = f18-f6;
	f0 = f3-f0;
	f2 = f14-f2;
	f1 = f1-f6;
	f5 = f5*f9;
	heap32[(r5+3)] = 0;
	f3 = f10+f3;
	f6 = f2*f0;
	f10 = f8*f4;
	f8 = f8*f1;
	f0 = f11*f0;
	r5 = r6 >> 2;
	f7 = f7*f9;
	heapFloat[(fp+-20)] = f5;
	f5 = f6-f10;
	f0 = f8-f0;
	f4 = f11*f4;
	f1 = f2*f1;
	f2 = f3*f9;
	heapFloat[(r5+1)] = f7;
	f1 = f4-f1;
	heapFloat[(r5+2)] = f2;
	f2 = f5*f5;
	f3 = f0*f0;
	heap32[(r5+3)] = 0;
	f2 = f2+f3;
	f3 = f1*f1;
	f2 = f2+f3;
	heapFloat[(g0)] = f2;
	r7 = sp + -96;
	sqrtf(i7);
	r8 = r7 >> 2;
	heap32[(fp+-24)] = 1065353216;
	heap32[(r8+1)] = 1065353216;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 0;
	r8 = heap32[(r2+2)];
	r9 = r8 >> 2;
	f3 =                         1;
	r9 = heap32[(r9)];
	f2 = f3/f_g0;
	r9 = r9 >> 2;
	r9 = heap32[(r9+2)];
	f3 = f5*f2;
	f4 = heapFloat[(fp+-20)];
	f5 = heapFloat[(r5+2)];
	f6 = heapFloat[(r5+1)];
	r5 = sp + -16;
	f0 = f0*f2;
	f3 = f4+f3;
	f1 = f1*f2;
	r10 = r5 >> 2;
	f0 = f6+f0;
	heapFloat[(fp+-4)] = f3;
	f1 = f5+f1;
	heapFloat[(r10+1)] = f0;
	heapFloat[(r10+2)] = f1;
	heap32[(r10+3)] = 0;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r7;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r5 = heap32[(r2+2)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	r0 = (r0 + 12)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r5 = heap32[(r2+2)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r2 = heap32[(r2+2)];
	r4 = r2 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	return;
}

function _ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+2)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZThn4_N17DebugDrawcallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _ZTV17DebugDrawcallback;
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r2 = (r0 + 8)|0;
	r3 = _ZTV31btInternalTriangleIndexCallback;
	r0 = (r0 + 32)|0;
	heap32[(r1+-1)] = r2;
	r2 = _ZTV18btTriangleCallback;
	r3 = (r3 + 8)|0;
	heap32[(r1)] = r0;
	r0 = (r2 + 8)|0;
	heap32[(r1)] = r3;
	heap32[(r1+-1)] = r0;
	return;
}

function _ZThn4_N17DebugDrawcallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17DebugDrawcallback;
	r2 = r0 >> 2;
	r3 = (r1 + 8)|0;
	r4 = _ZTV31btInternalTriangleIndexCallback;
	r1 = (r1 + 32)|0;
	heap32[(r2+-1)] = r3;
	r3 = _ZTV18btTriangleCallback;
	r4 = (r4 + 8)|0;
	heap32[(r2)] = r1;
	r1 = (r3 + 8)|0;
	heap32[(r2)] = r4;
	heap32[(r2+-1)] = r1;
	r0 = (r0 + -4)|0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1+-1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+2)];
	r0 = (r0 + -4)|0;
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN16btCollisionWorldD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	heap32[(g0)] = r0;
	_ZN16btCollisionWorldD2Ev(i7);
	return;
}

function _ZN16btCollisionWorldD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btCollisionWorld;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+4)];
	r3 = heap32[(r2+2)];
	if(r3 >0) //_LBB219_2
{
	r3 = 0;
_3: while(true){
	r4 = r3 << 2;
	r1 = (r1 + r4)|0;
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r4 = heap32[(r1+47)];
if(!(r4 ==0)) //_LBB219_5
{
	r5 = heap32[(r2+20)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+9)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = r_g0 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+10)];
	r7 = heap32[(r2+6)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r5 = heap32[(r2+20)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+3)];
	r7 = heap32[(r2+6)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	heap32[(r1+47)] = 0;
}
	r3 = (r3 + 1)|0;
	r1 = heap32[(r2+4)];
	r4 = heap32[(r2+2)];
	if(r4 >r3) //_LBB219_3
{
continue _3;
}
else{
break _3;
}
}
}
if(!(r1 ==0)) //_LBB219_10
{
	r3 = heapU8[r0+20];
if(!(r3 ==0)) //_LBB219_9
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	r1 = 1;
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btCollisionWorld11updateAabbsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
var __label__ = 0;
	i7 = sp + -64;var g0 = i7>>2; // save stack
	r0 = _2E_str1998;
	r1 = heap32[(fp)];
	heap32[(g0)] = r0;
	r0 = r1 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r2 = heap32[(r0+2)];
if(!(r2 <1)) //_LBB220_14
{
	r2 = 0;
_3: while(true){
	r3 = heap32[(r0+4)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r2 = (r2 + 1)|0;
	r3 = heap32[(r3)];
	r4 = heapU8[r1+88];
	if(r4 !=0) //_LBB220_5
{
__label__ = 5;
}
else{
	r4 = r3 >> 2;
	r4 = heap32[(r4+54)];
	if(r4 ==2) //_LBB220_13
{
__label__ = 13;
}
else{
	if(r4 ==5) //_LBB220_13
{
__label__ = 13;
}
else{
__label__ = 5;
}
}
}
_8: do {
if (__label__ == 5){
	r4 = r3 >> 2;
	r5 = heap32[(r4+48)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	r7 = sp + -40;
	r8 = sp + -24;
	r9 = (r3 + 4)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	f0 =     -0.019999999552965164;
	f1 = heapFloat[(fp+-6)];
	f1 = f1+f0;
	r5 = r8 >> 2;
	heapFloat[(fp+-6)] = f1;
	f2 = heapFloat[(r5+1)];
	f2 = f2+f0;
	heapFloat[(r5+1)] = f2;
	f3 = heapFloat[(r5+2)];
	f0 = f3+f0;
	heapFloat[(r5+2)] = f0;
	f3 =      0.019999999552965164;
	f4 = heapFloat[(fp+-10)];
	f4 = f4+f3;
	r5 = r7 >> 2;
	heapFloat[(fp+-10)] = f4;
	f5 = heapFloat[(r5+1)];
	f5 = f5+f3;
	heapFloat[(r5+1)] = f5;
	f6 = heapFloat[(r5+2)];
	f3 = f6+f3;
	heapFloat[(r5+2)] = f3;
	r5 = heap32[(r0+20)];
	r3 = heapU8[r3+204];
	r3 = r3 & 1;
if(!(r3 != 0)) //_LBB220_10
{
	f1 = f4-f1;
	f2 = f5-f2;
	f0 = f3-f0;
	f1 = f1*f1;
	f2 = f2*f2;
	f1 = f1+f2;
	f0 = f0*f0;
	f0 = f1+f0;
	f1 =              999999995904;
if(!(f0 <f1)) //_LBB220_10
{
	r5 = heap32[(r4+54)];
	r5 = (r5 + -4)|0;
if(!(uint(r5) <uint(2))) //_LBB220_9
{
	heap32[(r4+54)] = 5;
}
	r4 = _ZZN16btCollisionWorld16updateSingleAabbEP17btCollisionObjectE8reportMe_2E_b;
	r5 = heapU8[r4];
	if(r5 != 0) //_LBB220_13
{
break _8;
}
else{
	r3 = heap32[(r0+21)];
	if(r3 ==0) //_LBB220_13
{
break _8;
}
else{
	r5 = 1;
	r6 = r3 >> 2;
	heap8[r4] = r5;
	r4 = heap32[(r6)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+9)];
	r5 = _2E_str1594;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = heap32[(r0+21)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+9)];
	r5 = _2E_str1695;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = heap32[(r0+21)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+9)];
	r5 = _2E_str1796;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = heap32[(r0+21)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+9)];
	r5 = _2E_str1897;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
break _8;
}
}
}
}
	r3 = r5 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	r6 = heap32[(r0+6)];
	r4 = heap32[(r4+47)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r6;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
} while(0);
	r3 = heap32[(r0+2)];
	if(r3 >r2) //_LBB220_2
{
continue _3;
}
else{
break _3;
}
}
}
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_21: do {
if(!(r3 !=0)) //_LBB220_20
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB220_17
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB220_20
{
break _21;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZN16btCollisionWorld14debugDrawWorldEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var f0;
var __label__ = 0;
	i7 = sp + -104;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
_1: do {
if(!(r2 ==0)) //_LBB221_10
{
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r3 = r_g0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r_g0 & 8;
if(!(r2 ==0)) //_LBB221_10
{
	r2 = heap32[(r1+6)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+9)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r_g0;
	r3 = sp + -16;
	r4 = r3 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r4+1)] = 0;
	r5 = 0;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
_4: while(true){
	if(r5 <r2) //_LBB221_3
{
	r4 = heap32[(r1+6)];
	r6 = r4 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+10)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r4 = r_g0;
	r6 = r4 >> 2;
	r6 = heap32[(r6+279)];
	r7 = 36;
	r8 = 68;
	r9 = 0;
_7: while(true){
	if(r9 <r6) //_LBB221_4
{
	r10 = r4 >> 2;
	r10 = heap32[(r10+279)];
	if(r10 >r9) //_LBB221_6
{
	r10 = (r9 * 69)|0;
	r11 = (r4 + r7)|0;
	r12 = (r4 + r8)|0;
	r13 = heap32[(r1)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r14 = r_g0 >> 2;
	r15 = r10 << 2;
	r10 = r10 << 2;
	r14 = heap32[(r14)];
	r15 = (r4 + r15)|0;
	r10 = (r4 + r10)|0;
	r14 = r14 >> 2;
	r15 = r15 >> 2;
	r10 = r10 >> 2;
	r14 = heap32[(r14+8)];
	r15 = heap32[(r15+37)];
	f0 = heapFloat[(r10+21)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r12;
	heapFloat[(g0+3)] = f0;
	heap32[(g0+4)] = r15;
	heap32[(g0+5)] = r3;
	r9 = (r9 + 1)|0;
	r8 = (r8 + 276)|0;
	r7 = (r7 + 276)|0;
	__FUNCTION_TABLE__[(r14)>>2](i7);
}
else{
break _4;
}
}
else{
break _7;
}
}
	r5 = (r5 + 1)|0;
}
else{
break _1;
}
}
	r0 = _2E_str382;
	r1 = _2E_str483;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 122;
	_assert(i7);
}
}
} while(0);
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
_14: do {
if(!(r2 ==0)) //_LBB221_13
{
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r3 = r_g0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r_g0 & 3;
if(!(r2 ==0)) //_LBB221_13
{
	r2 = heap32[(r1+2)];
	if(r2 >0) //_LBB221_14
{
	r2 = 0;
_18: while(true){
	r3 = heap32[(r1+4)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = heapU8[r3+204];
	r4 = r4 & 32;
if(!(r4 !=0)) //_LBB221_34
{
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
if(!(r4 ==0)) //_LBB221_31
{
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r5 = r_g0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r4 = r_g0 & 1;
if(!(r4 ==0)) //_LBB221_31
{
	r4 = sp + -32;
	r5 = r4 >> 2;
	heap32[(fp+-8)] = 1065353216;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 1065353216;
	r6 = r3 >> 2;
	heap32[(r5+3)] = 0;
	r7 = heap32[(r6+54)];
_25: do {
	if(r7 >2) //_LBB221_21
{
	if(r7 ==3) //_LBB221_26
{
	heap32[(fp+-8)] = 0;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 1065353216;
	heap32[(r5+3)] = 0;
__label__ = 30;
break _25;
}
else{
	if(r7 ==4) //_LBB221_27
{
	heap32[(fp+-8)] = 1065353216;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
__label__ = 30;
break _25;
}
else{
	if(r7 ==5) //_LBB221_28
{
	heap32[(fp+-8)] = 1065353216;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
__label__ = 30;
break _25;
}
else{
__label__ = 29;
break _25;
}
}
}
}
else{
	if(r7 ==1) //_LBB221_24
{
	heap32[(fp+-8)] = 1065353216;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 1065353216;
	heap32[(r5+3)] = 0;
__label__ = 30;
}
else{
	if(r7 ==2) //_LBB221_25
{
	heap32[(fp+-8)] = 0;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
__label__ = 30;
}
else{
__label__ = 29;
}
}
}
} while(0);
if (__label__ == 29){
	heap32[(fp+-8)] = 1065353216;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
}
	r5 = heap32[(r1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+6)];
	r6 = heap32[(r6+48)];
	r7 = (r3 + 4)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
}
	r4 = heap32[(r1+21)];
if(!(r4 ==0)) //_LBB221_34
{
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+12)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r4 = r_g0 & 2;
if(!(r4 ==0)) //_LBB221_34
{
	r4 = sp + -80;
	r5 = r4 >> 2;
	heap32[(fp+-20)] = 1065353216;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	r6 = r3 >> 2;
	heap32[(r5+3)] = 0;
	r5 = heap32[(r6+48)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	r3 = (r3 + 4)|0;
	r7 = sp + -48;
	r8 = sp + -64;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r8;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r3 = heap32[(r1+21)];
	r5 = r3 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+13)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
}
}
	r2 = (r2 + 1)|0;
	r3 = heap32[(r1+2)];
	if(r3 >r2) //_LBB221_15
{
continue _18;
}
else{
break _14;
}
}
}
}
}
} while(0);
	return;
}

function _ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
var __label__ = 0;
	i7 = sp + -1376;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r3 = r_g0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+14)];
	r4 = heap32[(fp+1)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = 1065353216;
	r2 = heap32[(fp+2)];
	r5 = r2 >> 2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = heap32[(r5+1)];
	r6 = heap32[(fp+3)];
_1: do {
	if(r3 >10) //_LBB222_6
{
	if(r3 >27) //_LBB222_9
{
	if(r3 ==28) //_LBB222_23
{
	f0 = heapFloat[(r5+14)];
	f1 = heapFloat[(r5+13)];
	f2 = heapFloat[(r5+16)];
	f3 = heapFloat[(r5+12)];
	f4 = f0*f2;
	f5 = f1*f2;
	f2 = f3*f2;
	f6 =                         0;
	if(f0 <f6) //_LBB222_25
{
	f7 = -f0;
}
else{
	f7 = f0;
}
	f8 =       0.70710676908493042;
	if(f7 <=f8) //_LBB222_28
{
	f0 = f3*f3;
	f1 = f1*f1;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f3 =                         1;
	f7 = heapFloat[(r5+13)];
	f9 = heapFloat[(r5+14)];
	f10 = f3/f_g0;
	f1 = heapFloat[(r5+12)];
	f3 = -f7;
	f8 = f1*f10;
	f1 = -f9;
	f11 = f10*f3;
	f12 =                       100;
	f1 = f8*f1;
	f3 = f9*f11;
	f7 = f0*f10;
	f0 = f11*f12;
}
else{
	f1 = f1*f1;
	f3 = f0*f0;
	f1 = f1+f3;
	heapFloat[(g0)] = f1;
	sqrtf(i7);
	f6 = heapFloat[(r5+14)];
	f0 =                         1;
	f7 = heapFloat[(r5+12)];
	f3 = f0/f_g0;
	f6 = -f6;
	f0 = heapFloat[(r5+13)];
	f8 = f3*f6;
	f6 = -f7;
	f0 = f0*f3;
	f9 =                       100;
	f1 = f1*f3;
	f3 = f0*f6;
	f7 = f7*f8;
	f6 = f0*f9;
	f0 =                         0;
}
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	f9 =                       100;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r3 = r4 >> 2;
	f8 = f8*f9;
	r4 = r_g0 >> 2;
	f10 = f2-f0;
	f11 = heapFloat[(r3)];
	f12 = f5-f8;
	f13 = heapFloat[(r3+1)];
	r4 = heap32[(r4)];
	f14 = heapFloat[(r3+4)];
	f15 = heapFloat[(r3+5)];
	f16 = f11*f10;
	f17 = f13*f12;
	f18 = f4-f6;
	f19 = heapFloat[(r3+2)];
	r4 = r4 >> 2;
	f20 = heapFloat[(r3+8)];
	f21 = heapFloat[(r3+9)];
	f22 = heapFloat[(r3+6)];
	f23 = f14*f10;
	f24 = f15*f12;
	f16 = f16+f17;
	f17 = f19*f18;
	f25 = heapFloat[(r3+10)];
	r4 = heap32[(r4+2)];
	f10 = f20*f10;
	f12 = f21*f12;
	f23 = f23+f24;
	f24 = f22*f18;
	f16 = f16+f17;
	f17 = heapFloat[(r3+12)];
	f26 = heapFloat[(r3+14)];
	f27 = heapFloat[(r3+13)];
	f0 = f2+f0;
	f8 = f5+f8;
	r5 = sp + -64;
	f23 = f23+f24;
	f10 = f10+f12;
	f12 = f25*f18;
	f16 = f16+f17;
	f6 = f4+f6;
	f10 = f10+f12;
	f11 = f11*f0;
	f12 = f13*f8;
	r7 = r5 >> 2;
	f13 = f23+f27;
	heapFloat[(fp+-16)] = f16;
	f14 = f14*f0;
	f15 = f15*f8;
	f11 = f11+f12;
	f12 = f19*f6;
	f10 = f10+f26;
	heapFloat[(r7+1)] = f13;
	f11 = f11+f12;
	heapFloat[(r7+2)] = f10;
	f0 = f20*f0;
	f8 = f21*f8;
	f10 = f14+f15;
	f12 = f22*f6;
	r8 = sp + -48;
	f10 = f10+f12;
	f0 = f0+f8;
	f6 = f25*f6;
	f8 = f11+f17;
	heap32[(r7+3)] = 0;
	f0 = f0+f6;
	r7 = r8 >> 2;
	f6 = f10+f27;
	heapFloat[(fp+-12)] = f8;
	f0 = f0+f26;
	heapFloat[(r7+1)] = f6;
	heapFloat[(r7+2)] = f0;
	heap32[(r7+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f0 = f1*f9;
	f1 = f3*f9;
	f3 = f7*f9;
	r1 = r_g0 >> 2;
	f6 = f2-f0;
	f7 = heapFloat[(r3)];
	f8 = f5-f1;
	f9 = heapFloat[(r3+1)];
	r1 = heap32[(r1)];
	f10 = heapFloat[(r3+4)];
	f11 = heapFloat[(r3+5)];
	f12 = f7*f6;
	f13 = f9*f8;
	f14 = f4-f3;
	f15 = heapFloat[(r3+2)];
	r1 = r1 >> 2;
	f16 = heapFloat[(r3+8)];
	f17 = heapFloat[(r3+9)];
	f18 = heapFloat[(r3+6)];
	f19 = f10*f6;
	f20 = f11*f8;
	f12 = f12+f13;
	f13 = f15*f14;
	f21 = heapFloat[(r3+10)];
	r1 = heap32[(r1+2)];
	f6 = f16*f6;
	f8 = f17*f8;
	f19 = f19+f20;
	f20 = f18*f14;
	f12 = f12+f13;
	f13 = heapFloat[(r3+12)];
	f22 = heapFloat[(r3+14)];
	f23 = heapFloat[(r3+13)];
	f0 = f2+f0;
	f1 = f5+f1;
	r2 = sp + -32;
	f2 = f19+f20;
	f5 = f6+f8;
	f6 = f21*f14;
	f8 = f12+f13;
	f3 = f4+f3;
	f4 = f5+f6;
	f5 = f7*f0;
	f6 = f9*f1;
	r3 = r2 >> 2;
	f2 = f2+f23;
	heapFloat[(fp+-8)] = f8;
	f7 = f10*f0;
	f8 = f11*f1;
	f5 = f5+f6;
	f6 = f15*f3;
	f4 = f4+f22;
	heapFloat[(r3+1)] = f2;
	f2 = f5+f6;
	heapFloat[(r3+2)] = f4;
	f0 = f16*f0;
	f1 = f17*f1;
	f4 = f7+f8;
	f5 = f18*f3;
	r4 = sp + -16;
	f4 = f4+f5;
	f0 = f0+f1;
	f1 = f21*f3;
	f2 = f2+f13;
	heap32[(r3+3)] = 0;
	f0 = f0+f1;
	r3 = r4 >> 2;
	f1 = f4+f23;
	heapFloat[(fp+-4)] = f2;
	f0 = f0+f22;
	heapFloat[(r3+1)] = f1;
	heapFloat[(r3+2)] = f0;
	heap32[(r3+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r4;
__label__ = 30;
break _1;
}
else{
	if(r3 !=31) //_LBB222_32
{
__label__ = 32;
break _1;
}
else{
	r2 = heap32[(r5+4)];
	r3 = (r2 + -1)|0;
	if(r3 <0) //_LBB222_42
{
__label__ = 40;
break _1;
}
else{
	r3 = 1;
	r2 = (r3 - r2)|0;
_18: while(true){
	r3 = r2;
	r2 = (r3 * -20)|0;
	r7 = heap32[(r5+6)];
	r2 = r2 << 2;
	r2 = (r7 + r2)|0;
	r2 = r2 >> 2;
	r7 = r4 >> 2;
	r8 = heap32[(r1)];
	f0 = heapFloat[(r2)];
	f1 = heapFloat[(r7)];
	f2 = heapFloat[(r2+4)];
	f3 = heapFloat[(r7+1)];
	r8 = r8 >> 2;
	f4 = heapFloat[(r2+1)];
	f5 = heapFloat[(r2+5)];
	f6 = f0*f1;
	f7 = f2*f3;
	f8 = heapFloat[(r2+8)];
	f9 = heapFloat[(r7+2)];
	f10 = heapFloat[(r7+8)];
	f11 = heapFloat[(r2+2)];
	f12 = heapFloat[(r7+4)];
	f13 = heapFloat[(r2+12)];
	f14 = heapFloat[(r7+9)];
	f15 = heapFloat[(r2+6)];
	f16 = heapFloat[(r7+5)];
	f17 = heapFloat[(r2+13)];
	f18 = heapFloat[(r2+9)];
	f19 = heapFloat[(r7+10)];
	f20 = heapFloat[(r2+10)];
	f21 = heapFloat[(r7+6)];
	f22 = heapFloat[(r2+14)];
	r8 = heap32[(r8+6)];
	f23 = f4*f1;
	f24 = f5*f3;
	f6 = f6+f7;
	f7 = f8*f9;
	r2 = heap32[(r2+16)];
	f25 = heapFloat[(r7+14)];
	f26 = heapFloat[(r7+13)];
	f27 = heapFloat[(r7+12)];
	r7 = sp + -688;
	f28 = f11*f1;
	f29 = f15*f3;
	f23 = f23+f24;
	f24 = f18*f9;
	f6 = f6+f7;
	r9 = r7 >> 2;
	f7 = f28+f29;
	f28 = f20*f9;
	f23 = f23+f24;
	heapFloat[(fp+-172)] = f6;
	f6 = f0*f12;
	f24 = f2*f16;
	f7 = f7+f28;
	heapFloat[(r9+1)] = f23;
	heapFloat[(r9+2)] = f7;
	f7 = f4*f12;
	f23 = f5*f16;
	f6 = f6+f24;
	f24 = f8*f21;
	f28 = f11*f12;
	f29 = f15*f16;
	f7 = f7+f23;
	f23 = f18*f21;
	f6 = f6+f24;
	heap32[(r9+3)] = 0;
	f24 = f28+f29;
	f28 = f20*f21;
	f7 = f7+f23;
	heapFloat[(r9+4)] = f6;
	f0 = f0*f10;
	f2 = f2*f14;
	f6 = f24+f28;
	heapFloat[(r9+5)] = f7;
	heapFloat[(r9+6)] = f6;
	f4 = f4*f10;
	f5 = f5*f14;
	f0 = f0+f2;
	f2 = f8*f19;
	f6 = f11*f10;
	f7 = f15*f14;
	f4 = f4+f5;
	f5 = f18*f19;
	f0 = f0+f2;
	heap32[(r9+7)] = 0;
	f1 = f1*f13;
	f2 = f3*f17;
	f3 = f6+f7;
	f6 = f20*f19;
	f4 = f4+f5;
	heapFloat[(r9+8)] = f0;
	f0 = f12*f13;
	f5 = f16*f17;
	f1 = f1+f2;
	f2 = f9*f22;
	f3 = f3+f6;
	heapFloat[(r9+9)] = f4;
	f1 = f1+f2;
	heapFloat[(r9+10)] = f3;
	f2 = f10*f13;
	f3 = f14*f17;
	f0 = f0+f5;
	f4 = f21*f22;
	f0 = f0+f4;
	f2 = f2+f3;
	f3 = f19*f22;
	f1 = f1+f27;
	heap32[(r9+11)] = 0;
	f2 = f2+f3;
	f0 = f0+f26;
	heapFloat[(r9+12)] = f1;
	f1 = f2+f25;
	heapFloat[(r9+13)] = f0;
	heapFloat[(r9+14)] = f1;
	heap32[(r9+15)] = 0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r6;
	r2 = (r3 + 1)|0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	if(r3 ==0) //_LBB222_42
{
__label__ = 40;
break _1;
}
else{
continue _18;
}
}
}
}
}
}
else{
	if(r3 ==11) //_LBB222_20
{
	r2 = r4 >> 2;
	r3 = heap32[(r5+17)];
	f0 = heapFloat[(r5+14)];
	f1 = heapFloat[(r5+15)];
	f2 = heapFloat[(r2+12)];
	f3 = heapFloat[(r2+13)];
	f4 = heapFloat[(r2+14)];
	r4 = sp + -880;
	r5 = r4 >> 2;
	heap32[(fp+-220)] = 0;
	heap32[(r5+1)] = 0;
	r7 = r3 << 2;
	r4 = (r4 + r7)|0;
	f5 =                       0.5;
	heap32[(r5+2)] = 0;
	r4 = r4 >> 2;
	f1 = f1*f5;
	heap32[(r5+3)] = 0;
	r8 = sp + -896;
	heapFloat[(r4)] = f1;
	r4 = (r3 + 1)|0;
	r4 = (r4 % 3)|0;
	r9 = r8 >> 2;
	heap32[(fp+-224)] = 0;
	heap32[(r9+1)] = 0;
	r4 = r4 << 2;
	r8 = (r8 + r4)|0;
	heap32[(r9+2)] = 0;
	r8 = r8 >> 2;
	heap32[(r9+3)] = 0;
	r3 = (r3 + 2)|0;
	r10 = sp + -912;
	heapFloat[(r8)] = f0;
	r3 = (r3 % 3)|0;
	r8 = r10 >> 2;
	heap32[(fp+-228)] = 0;
	r3 = r3 << 2;
	heap32[(r8+1)] = 0;
	r3 = (r10 + r3)|0;
	heap32[(r8+2)] = 0;
	r3 = r3 >> 2;
	heap32[(r8+3)] = 0;
	heapFloat[(r3)] = f0;
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	f1 = heapFloat[(r5+1)];
	f5 = heapFloat[(fp+-220)];
	f6 = heapFloat[(r9+1)];
	f7 = heapFloat[(fp+-224)];
	r10 = r_g0 >> 2;
	f8 = heapFloat[(r5+2)];
	f9 = heapFloat[(r9+2)];
	f10 = heapFloat[(r2)];
	f11 = f7-f5;
	f12 = heapFloat[(r2+1)];
	f13 = f6-f1;
	f14 = heapFloat[(r2+4)];
	f15 = heapFloat[(r2+5)];
	r5 = heap32[(r10)];
	f16 = heapFloat[(r2+2)];
	f17 = f9-f8;
	f18 = f10*f11;
	f19 = f12*f13;
	f20 = heapFloat[(r2+8)];
	f21 = heapFloat[(r2+9)];
	f22 = heapFloat[(r2+6)];
	r5 = r5 >> 2;
	f23 = f14*f11;
	f24 = f15*f13;
	f18 = f18+f19;
	f19 = f16*f17;
	f25 = heapFloat[(r2+10)];
	r5 = heap32[(r5+2)];
	f18 = f18+f19;
	f11 = f20*f11;
	f13 = f21*f13;
	f19 = f23+f24;
	f23 = f22*f17;
	r9 = sp + -416;
	f19 = f19+f23;
	f11 = f11+f13;
	f13 = f25*f17;
	f17 = f2+f18;
	f11 = f11+f13;
	f10 = f10*f5;
	f12 = f12*f1;
	r10 = r9 >> 2;
	f13 = f3+f19;
	heapFloat[(fp+-104)] = f17;
	f14 = f14*f5;
	f15 = f15*f1;
	f10 = f10+f12;
	f12 = f16*f8;
	f11 = f4+f11;
	heapFloat[(r10+1)] = f13;
	f10 = f10+f12;
	heapFloat[(r10+2)] = f11;
	f11 = f20*f5;
	f12 = f21*f1;
	f13 = f14+f15;
	f14 = f22*f8;
	r11 = sp + -400;
	f13 = f13+f14;
	f11 = f11+f12;
	f12 = f25*f8;
	f10 = f2+f10;
	heap32[(r10+3)] = 0;
	f11 = f11+f12;
	r10 = r11 >> 2;
	f12 = f3+f13;
	heapFloat[(fp+-100)] = f10;
	f10 = f4+f11;
	heapFloat[(r10+1)] = f12;
	heapFloat[(r10+2)] = f10;
	heap32[(r10+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	f10 = -f5;
	f11 = -f1;
	f12 = -f8;
	r5 = r_g0 >> 2;
	f13 = heapFloat[(r2)];
	f7 = f10-f7;
	f14 = heapFloat[(r2+1)];
	f6 = f11-f6;
	f15 = heapFloat[(r2+4)];
	f16 = heapFloat[(r2+5)];
	r5 = heap32[(r5)];
	f17 = heapFloat[(r2+2)];
	f9 = f12-f9;
	f18 = f13*f7;
	f19 = f14*f6;
	f20 = heapFloat[(r2+8)];
	f21 = heapFloat[(r2+9)];
	f22 = heapFloat[(r2+6)];
	r5 = r5 >> 2;
	f23 = f15*f7;
	f24 = f16*f6;
	f18 = f18+f19;
	f19 = f17*f9;
	f25 = heapFloat[(r2+10)];
	r5 = heap32[(r5+2)];
	f18 = f18+f19;
	f7 = f20*f7;
	f6 = f21*f6;
	f19 = f23+f24;
	f23 = f22*f9;
	r9 = sp + -384;
	f19 = f19+f23;
	f6 = f7+f6;
	f7 = f25*f9;
	f9 = f2+f18;
	f6 = f6+f7;
	f7 = f13*f5;
	f13 = f14*f1;
	r10 = r9 >> 2;
	f14 = f3+f19;
	heapFloat[(fp+-96)] = f9;
	f9 = f15*f5;
	f15 = f16*f1;
	f7 = f7+f13;
	f13 = f17*f8;
	f6 = f4+f6;
	heapFloat[(r10+1)] = f14;
	f7 = f7+f13;
	heapFloat[(r10+2)] = f6;
	f6 = f20*f5;
	f13 = f21*f1;
	f9 = f9+f15;
	f14 = f22*f8;
	r11 = sp + -368;
	f9 = f9+f14;
	f6 = f6+f13;
	f13 = f25*f8;
	f7 = f2+f7;
	heap32[(r10+3)] = 0;
	f6 = f6+f13;
	r10 = r11 >> 2;
	f9 = f3+f9;
	heapFloat[(fp+-92)] = f7;
	f6 = f4+f6;
	heapFloat[(r10+1)] = f9;
	heapFloat[(r10+2)] = f6;
	heap32[(r10+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	f6 = heapFloat[(r8+1)];
	f7 = heapFloat[(fp+-228)];
	f9 = heapFloat[(r8+2)];
	r5 = r_g0 >> 2;
	f13 = heapFloat[(r2)];
	f14 = f7-f5;
	f15 = heapFloat[(r2+1)];
	f16 = f6-f1;
	f17 = heapFloat[(r2+4)];
	f18 = heapFloat[(r2+5)];
	r5 = heap32[(r5)];
	f19 = heapFloat[(r2+2)];
	f20 = f9-f8;
	f21 = f13*f14;
	f22 = f15*f16;
	f23 = heapFloat[(r2+8)];
	f24 = heapFloat[(r2+9)];
	f25 = heapFloat[(r2+6)];
	r5 = r5 >> 2;
	f26 = f17*f14;
	f27 = f18*f16;
	f21 = f21+f22;
	f22 = f19*f20;
	f28 = heapFloat[(r2+10)];
	r5 = heap32[(r5+2)];
	f21 = f21+f22;
	f14 = f23*f14;
	f16 = f24*f16;
	f22 = f26+f27;
	f26 = f25*f20;
	r8 = sp + -352;
	f22 = f22+f26;
	f14 = f14+f16;
	f16 = f28*f20;
	f20 = f2+f21;
	f14 = f14+f16;
	f13 = f13*f5;
	f15 = f15*f1;
	r9 = r8 >> 2;
	f16 = f3+f22;
	heapFloat[(fp+-88)] = f20;
	f17 = f17*f5;
	f18 = f18*f1;
	f13 = f13+f15;
	f15 = f19*f8;
	f14 = f4+f14;
	heapFloat[(r9+1)] = f16;
	f13 = f13+f15;
	heapFloat[(r9+2)] = f14;
	f14 = f23*f5;
	f15 = f24*f1;
	f16 = f17+f18;
	f17 = f25*f8;
	r10 = sp + -336;
	f16 = f16+f17;
	f14 = f14+f15;
	f15 = f28*f8;
	f13 = f2+f13;
	heap32[(r9+3)] = 0;
	f14 = f14+f15;
	r9 = r10 >> 2;
	f15 = f3+f16;
	heapFloat[(fp+-84)] = f13;
	f13 = f4+f14;
	heapFloat[(r9+1)] = f15;
	heapFloat[(r9+2)] = f13;
	heap32[(r9+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r5 = r_g0 >> 2;
	f13 = heapFloat[(r2)];
	f7 = f10-f7;
	f10 = heapFloat[(r2+1)];
	f6 = f11-f6;
	f11 = heapFloat[(r2+4)];
	f14 = heapFloat[(r2+5)];
	r5 = heap32[(r5)];
	f15 = heapFloat[(r2+2)];
	f9 = f12-f9;
	f12 = f13*f7;
	f16 = f10*f6;
	f17 = heapFloat[(r2+8)];
	f18 = heapFloat[(r2+9)];
	f19 = heapFloat[(r2+6)];
	r5 = r5 >> 2;
	f20 = f11*f7;
	f21 = f14*f6;
	f12 = f12+f16;
	f16 = f15*f9;
	f22 = heapFloat[(r2+10)];
	r5 = heap32[(r5+2)];
	f12 = f12+f16;
	f7 = f17*f7;
	f6 = f18*f6;
	f16 = f20+f21;
	f20 = f19*f9;
	r8 = sp + -320;
	f16 = f16+f20;
	f6 = f7+f6;
	f7 = f22*f9;
	f9 = f2+f12;
	f6 = f6+f7;
	f7 = f13*f5;
	f10 = f10*f1;
	r9 = r8 >> 2;
	f12 = f3+f16;
	heapFloat[(fp+-80)] = f9;
	f9 = f11*f5;
	f11 = f14*f1;
	f7 = f7+f10;
	f10 = f15*f8;
	f6 = f4+f6;
	heapFloat[(r9+1)] = f12;
	f7 = f7+f10;
	heapFloat[(r9+2)] = f6;
	f6 = f17*f5;
	f10 = f18*f1;
	f9 = f9+f11;
	f11 = f19*f8;
	r10 = sp + -304;
	f9 = f9+f11;
	f6 = f6+f10;
	f10 = f22*f8;
	f7 = f2+f7;
	heap32[(r9+3)] = 0;
	f6 = f6+f10;
	r9 = r10 >> 2;
	f9 = f3+f9;
	heapFloat[(fp+-76)] = f7;
	f6 = f4+f6;
	heapFloat[(r9+1)] = f9;
	heapFloat[(r9+2)] = f6;
	heap32[(r9+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r6;
	r3 = sp + -928;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = r3 >> 2;
	heap32[(fp+-232)] = 0;
	heap32[(r5+1)] = 0;
	r3 = (r3 + r7)|0;
	heap32[(r5+2)] = 0;
	r3 = r3 >> 2;
	heap32[(r5+3)] = 0;
	r7 = sp + -944;
	heap32[(r3)] = 1065353216;
	r3 = r7 >> 2;
	heap32[(fp+-236)] = 0;
	heap32[(r3+1)] = 0;
	r4 = (r7 + r4)|0;
	heap32[(r3+2)] = 0;
	r4 = r4 >> 2;
	heap32[(r3+3)] = 0;
	heap32[(r4)] = 1065353216;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = r_g0 >> 2;
	r1 = heap32[(r1)];
	f6 = heapFloat[(r2)];
	f7 = heapFloat[(fp+-236)];
	f9 = heapFloat[(r2+1)];
	f10 = heapFloat[(r3+1)];
	f11 = heapFloat[(r2+4)];
	f12 = heapFloat[(r2+5)];
	r1 = r1 >> 2;
	f13 = heapFloat[(r2+2)];
	f14 = heapFloat[(r3+2)];
	f15 = f6*f7;
	f16 = f9*f10;
	f17 = heapFloat[(r2+8)];
	f18 = heapFloat[(r2+9)];
	f19 = heapFloat[(r2+10)];
	f20 = heapFloat[(r2+6)];
	r1 = heap32[(r1+15)];
	f21 = f11*f7;
	f22 = f12*f10;
	f15 = f15+f16;
	f16 = f13*f14;
	r2 = sp + -288;
	f7 = f17*f7;
	f10 = f18*f10;
	f21 = f21+f22;
	f22 = f20*f14;
	f15 = f15+f16;
	r3 = r2 >> 2;
	f7 = f7+f10;
	f10 = f19*f14;
	f14 = f21+f22;
	heapFloat[(fp+-72)] = f15;
	f7 = f7+f10;
	heapFloat[(r3+1)] = f14;
	heapFloat[(r3+2)] = f7;
	heap32[(r3+3)] = 0;
	f7 = heapFloat[(fp+-232)];
	f10 = heapFloat[(r5+1)];
	f14 = heapFloat[(r5+2)];
	f15 = f6*f7;
	f16 = f9*f10;
	f21 = f11*f7;
	f22 = f12*f10;
	f15 = f15+f16;
	f16 = f13*f14;
	r3 = sp + -272;
	f7 = f17*f7;
	f10 = f18*f10;
	f21 = f21+f22;
	f22 = f20*f14;
	f15 = f15+f16;
	f6 = f6*f5;
	f9 = f9*f1;
	r4 = r3 >> 2;
	f7 = f7+f10;
	f10 = f19*f14;
	f14 = f21+f22;
	heapFloat[(fp+-68)] = f15;
	f11 = f11*f5;
	f12 = f12*f1;
	f6 = f6+f9;
	f9 = f13*f8;
	f7 = f7+f10;
	heapFloat[(r4+1)] = f14;
	f6 = f6+f9;
	heapFloat[(r4+2)] = f7;
	f5 = f17*f5;
	f1 = f18*f1;
	f7 = f11+f12;
	f9 = f20*f8;
	r5 = sp + -256;
	f7 = f7+f9;
	f1 = f5+f1;
	f5 = f19*f8;
	f2 = f2-f6;
	heap32[(r4+3)] = 0;
	f1 = f1+f5;
	r4 = r5 >> 2;
	f3 = f3-f7;
	heapFloat[(fp+-64)] = f2;
	f1 = f4-f1;
	heapFloat[(r4+1)] = f3;
	heapFloat[(r4+2)] = f1;
	heap32[(r4+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r3;
}
else{
	if(r3 ==13) //_LBB222_21
{
	r3 = heap32[(r5)];
	r3 = r3 >> 2;
	r7 = heap32[(r5+13)];
	r3 = heap32[(r3+21)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	f0 = f_g0;
	r3 = sp + -240;
	f1 = heapFloat[(r5+8)];
	f2 = heapFloat[(r5+9)];
	f3 = heapFloat[(r5+7)];
	r8 = r3 >> 2;
	heap32[(r8+3)] = heap32[(r5+10)];
	r9 = heap32[(r5)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+11)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	f4 = f_g0;
	r9 = heap32[(r5)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+11)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	f5 = f_g0;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+11)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	f3 = f3+f_g0;
	r2 = r7 << 2;
	f1 = f1+f5;
	heapFloat[(fp+-60)] = f3;
	r3 = (r3 + r2)|0;
	f2 = f2+f4;
	heapFloat[(r8+1)] = f1;
	r3 = r3 >> 2;
	heapFloat[(r8+2)] = f2;
	r4 = r4 >> 2;
	f1 = heapFloat[(r3)];
	f2 = heapFloat[(r4+12)];
	f3 = heapFloat[(r4+13)];
	f4 = heapFloat[(r4+14)];
	r3 = sp + -960;
	r5 = r3 >> 2;
	heap32[(fp+-240)] = 0;
	heap32[(r5+1)] = 0;
	r3 = (r3 + r2)|0;
	heap32[(r5+2)] = 0;
	r3 = r3 >> 2;
	heap32[(r5+3)] = 0;
	r8 = sp + -976;
	heapFloat[(r3)] = f1;
	r3 = (r7 + 1)|0;
	r3 = (r3 % 3)|0;
	r7 = r8 >> 2;
	heap32[(fp+-244)] = 0;
	heap32[(r7+1)] = 0;
	r3 = r3 << 2;
	r8 = (r8 + r3)|0;
	heap32[(r7+2)] = 0;
	r8 = r8 >> 2;
	heap32[(r7+3)] = 0;
	heapFloat[(r8)] = f0;
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	f1 = heapFloat[(r5+1)];
	f5 = heapFloat[(r7+1)];
	f6 = heapFloat[(fp+-240)];
	f7 = heapFloat[(fp+-244)];
	r9 = r_g0 >> 2;
	f8 = heapFloat[(r5+2)];
	f9 = heapFloat[(r7+2)];
	f10 = f7-f6;
	f11 = heapFloat[(r4)];
	f12 = f5-f1;
	f13 = heapFloat[(r4+1)];
	r5 = heap32[(r9)];
	f14 = heapFloat[(r4+4)];
	f15 = heapFloat[(r4+5)];
	f16 = f11*f10;
	f17 = f13*f12;
	f18 = f9-f8;
	f19 = heapFloat[(r4+2)];
	r5 = r5 >> 2;
	f20 = heapFloat[(r4+8)];
	f21 = heapFloat[(r4+9)];
	f22 = heapFloat[(r4+6)];
	f23 = f14*f10;
	f24 = f15*f12;
	f16 = f16+f17;
	f17 = f19*f18;
	f16 = f16+f17;
	f17 = heapFloat[(r4+10)];
	r5 = heap32[(r5+2)];
	f10 = f20*f10;
	f12 = f21*f12;
	f23 = f23+f24;
	f24 = f22*f18;
	f25 = f6+f7;
	f26 = f1+f5;
	r7 = sp + -224;
	f23 = f23+f24;
	f10 = f10+f12;
	f12 = f17*f18;
	f16 = f2+f16;
	f18 = f8+f9;
	f10 = f10+f12;
	f11 = f11*f25;
	f12 = f13*f26;
	r9 = r7 >> 2;
	f13 = f3+f23;
	heapFloat[(fp+-56)] = f16;
	f14 = f14*f25;
	f15 = f15*f26;
	f11 = f11+f12;
	f12 = f19*f18;
	f10 = f4+f10;
	heapFloat[(r9+1)] = f13;
	f11 = f11+f12;
	heapFloat[(r9+2)] = f10;
	f10 = f20*f25;
	f12 = f21*f26;
	f13 = f14+f15;
	f14 = f22*f18;
	r10 = sp + -208;
	f13 = f13+f14;
	f10 = f10+f12;
	f12 = f17*f18;
	f11 = f2+f11;
	heap32[(r9+3)] = 0;
	f10 = f10+f12;
	r9 = r10 >> 2;
	f12 = f3+f13;
	heapFloat[(fp+-52)] = f11;
	f10 = f4+f10;
	heapFloat[(r9+1)] = f12;
	heapFloat[(r9+2)] = f10;
	heap32[(r9+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = heap32[(r1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	f10 = -f6;
	f11 = -f1;
	f12 = -f8;
	r7 = r_g0 >> 2;
	f10 = f10-f7;
	f13 = heapFloat[(r4)];
	f11 = f11-f5;
	f14 = heapFloat[(r4+1)];
	r7 = heap32[(r7)];
	f15 = heapFloat[(r4+4)];
	f16 = heapFloat[(r4+5)];
	f17 = f13*f10;
	f18 = f14*f11;
	f12 = f12-f9;
	f19 = heapFloat[(r4+2)];
	r7 = r7 >> 2;
	f20 = heapFloat[(r4+8)];
	f21 = heapFloat[(r4+9)];
	f22 = heapFloat[(r4+6)];
	f23 = f15*f10;
	f24 = f16*f11;
	f17 = f17+f18;
	f18 = f19*f12;
	f17 = f17+f18;
	f18 = heapFloat[(r4+10)];
	r7 = heap32[(r7+2)];
	f10 = f20*f10;
	f11 = f21*f11;
	f23 = f23+f24;
	f24 = f22*f12;
	f7 = f6-f7;
	f5 = f1-f5;
	r8 = sp + -192;
	f23 = f23+f24;
	f10 = f10+f11;
	f11 = f18*f12;
	f12 = f2+f17;
	f9 = f8-f9;
	f10 = f10+f11;
	f11 = f13*f7;
	f13 = f14*f5;
	r9 = r8 >> 2;
	f14 = f3+f23;
	heapFloat[(fp+-48)] = f12;
	f12 = f15*f7;
	f15 = f16*f5;
	f11 = f11+f13;
	f13 = f19*f9;
	f10 = f4+f10;
	heapFloat[(r9+1)] = f14;
	f11 = f11+f13;
	heapFloat[(r9+2)] = f10;
	f7 = f20*f7;
	f5 = f21*f5;
	f10 = f12+f15;
	f12 = f22*f9;
	r10 = sp + -176;
	f10 = f10+f12;
	f5 = f7+f5;
	f7 = f18*f9;
	f9 = f2+f11;
	heap32[(r9+3)] = 0;
	f5 = f5+f7;
	r9 = r10 >> 2;
	f7 = f3+f10;
	heapFloat[(fp+-44)] = f9;
	f5 = f4+f5;
	heapFloat[(r9+1)] = f7;
	heapFloat[(r9+2)] = f5;
	heap32[(r9+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r6;
	r5 = sp + -992;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r7 = r5 >> 2;
	heap32[(fp+-248)] = 0;
	heap32[(r7+1)] = 0;
	r2 = (r5 + r2)|0;
	heap32[(r7+2)] = 0;
	r2 = r2 >> 2;
	heap32[(r7+3)] = 0;
	r5 = sp + -1008;
	heap32[(r2)] = 1065353216;
	r2 = r5 >> 2;
	heap32[(fp+-252)] = 0;
	heap32[(r2+1)] = 0;
	r3 = (r5 + r3)|0;
	heap32[(r2+2)] = 0;
	r3 = r3 >> 2;
	heap32[(r2+3)] = 0;
	heap32[(r3)] = 1065353216;
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r5 = r_g0 >> 2;
	r5 = heap32[(r5)];
	f5 = heapFloat[(r4)];
	f7 = heapFloat[(fp+-252)];
	f9 = heapFloat[(r4+1)];
	f10 = heapFloat[(r2+1)];
	f11 = heapFloat[(r4+4)];
	f12 = heapFloat[(r4+5)];
	r5 = r5 >> 2;
	f13 = heapFloat[(r4+2)];
	f14 = heapFloat[(r2+2)];
	f15 = f5*f7;
	f16 = f9*f10;
	f17 = heapFloat[(r4+8)];
	f18 = heapFloat[(r4+9)];
	f19 = heapFloat[(r4+10)];
	f20 = heapFloat[(r4+6)];
	r2 = heap32[(r5+15)];
	f21 = f11*f7;
	f22 = f12*f10;
	f15 = f15+f16;
	f16 = f13*f14;
	r5 = sp + -160;
	f23 = f17*f7;
	f24 = f18*f10;
	f21 = f21+f22;
	f22 = f20*f14;
	f15 = f15+f16;
	r8 = r5 >> 2;
	f16 = f23+f24;
	f23 = f19*f14;
	f21 = f21+f22;
	heapFloat[(fp+-40)] = f15;
	f15 = f16+f23;
	heapFloat[(r8+1)] = f21;
	heapFloat[(r8+2)] = f15;
	heap32[(r8+3)] = 0;
	f15 = heapFloat[(fp+-248)];
	f16 = heapFloat[(r7+1)];
	f21 = heapFloat[(r7+2)];
	f22 = f5*f15;
	f23 = f9*f16;
	f24 = f11*f15;
	f25 = f12*f16;
	f22 = f22+f23;
	f23 = f13*f21;
	r7 = sp + -144;
	f26 = f17*f15;
	f27 = f18*f16;
	f24 = f24+f25;
	f25 = f20*f21;
	f22 = f22+f23;
	f5 = f5*f6;
	f9 = f9*f1;
	r8 = r7 >> 2;
	f23 = f26+f27;
	f26 = f19*f21;
	f24 = f24+f25;
	heapFloat[(fp+-36)] = f22;
	f11 = f11*f6;
	f12 = f12*f1;
	f5 = f5+f9;
	f9 = f13*f8;
	f13 = f23+f26;
	heapFloat[(r8+1)] = f24;
	f5 = f5+f9;
	heapFloat[(r8+2)] = f13;
	f9 = f17*f6;
	f13 = f18*f1;
	f11 = f11+f12;
	f12 = f20*f8;
	r9 = sp + -128;
	f11 = f11+f12;
	f9 = f9+f13;
	f12 = f19*f8;
	f5 = f2-f5;
	heap32[(r8+3)] = 0;
	f9 = f9+f12;
	r8 = r9 >> 2;
	f11 = f3-f11;
	heapFloat[(fp+-32)] = f5;
	f5 = f4-f9;
	heapFloat[(r8+1)] = f11;
	heapFloat[(r8+2)] = f5;
	heap32[(r8+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r5;
	heapFloat[(g0+4)] = f0;
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = 0;
	heap32[(g0+7)] = 1086918619;
	heap32[(g0+8)] = r6;
	heap32[(g0+9)] = 0;
	heap32[(g0+10)] = 1092616192;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = r_g0 >> 2;
	f5 = heapFloat[(r4)];
	f9 = heapFloat[(r4+1)];
	r1 = heap32[(r1)];
	f11 = heapFloat[(r4+4)];
	f12 = heapFloat[(r4+5)];
	f13 = heapFloat[(r4+2)];
	r1 = r1 >> 2;
	f17 = f5*f7;
	f18 = f9*f10;
	f19 = heapFloat[(r4+8)];
	f20 = heapFloat[(r4+9)];
	f22 = heapFloat[(r4+10)];
	f23 = heapFloat[(r4+6)];
	r1 = heap32[(r1+15)];
	f24 = f11*f7;
	f25 = f12*f10;
	f17 = f17+f18;
	f18 = f13*f14;
	r2 = sp + -112;
	f7 = f19*f7;
	f10 = f20*f10;
	f24 = f24+f25;
	f25 = f23*f14;
	f17 = f17+f18;
	r3 = r2 >> 2;
	f7 = f7+f10;
	f10 = f22*f14;
	f14 = f24+f25;
	heapFloat[(fp+-28)] = f17;
	f17 = f5*f15;
	f18 = f9*f16;
	f7 = f7+f10;
	heapFloat[(r3+1)] = f14;
	heapFloat[(r3+2)] = f7;
	f7 = f11*f15;
	f10 = f12*f16;
	f14 = f17+f18;
	f17 = f13*f21;
	r4 = sp + -96;
	f15 = f19*f15;
	f16 = f20*f16;
	f7 = f7+f10;
	f10 = f23*f21;
	f14 = f14+f17;
	heap32[(r3+3)] = 0;
	f5 = f5*f6;
	f9 = f9*f1;
	r3 = r4 >> 2;
	f15 = f15+f16;
	f16 = f22*f21;
	f7 = f7+f10;
	heapFloat[(fp+-24)] = f14;
	f10 = f11*f6;
	f11 = f12*f1;
	f5 = f5+f9;
	f9 = f13*f8;
	f12 = f15+f16;
	heapFloat[(r3+1)] = f7;
	f5 = f5+f9;
	heapFloat[(r3+2)] = f12;
	f6 = f19*f6;
	f1 = f20*f1;
	f7 = f10+f11;
	f9 = f23*f8;
	r5 = sp + -80;
	f7 = f7+f9;
	f1 = f6+f1;
	f6 = f22*f8;
	f2 = f2+f5;
	heap32[(r3+3)] = 0;
	f1 = f1+f6;
	r3 = r5 >> 2;
	f3 = f3+f7;
	heapFloat[(fp+-20)] = f2;
	f1 = f4+f1;
	heapFloat[(r3+1)] = f3;
	heapFloat[(r3+2)] = f1;
	heap32[(r3+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r4;
}
else{
__label__ = 32;
break _1;
}
}
	heap32[(g0+3)] = r2;
	heapFloat[(g0+4)] = f0;
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = 0;
	heap32[(g0+7)] = 1086918619;
	heap32[(g0+8)] = r6;
	heap32[(g0+9)] = 0;
	heap32[(g0+10)] = 1092616192;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}
}
else{
	if(r3 >8) //_LBB222_4
{
	if(r3 ==9) //_LBB222_16
{
	r2 = heap32[(r5+23)];
	r3 = (r2 + -1)|0;
	if(r3 <0) //_LBB222_42
{
__label__ = 40;
break _1;
}
else{
	r3 = 1;
	r2 = (r3 - r2)|0;
_32: while(true){
	r3 = r2;
	r2 = heap32[(r5+25)];
	r7 = r3 << 4;
	r8 = heap32[(r1)];
	r2 = (r2 - r7)|0;
	r2 = r2 >> 2;
	r7 = r8 >> 2;
	r7 = heap32[(r7+4)];
	f0 = heapFloat[(r2)];
	f1 = heapFloat[(r2+1)];
	f2 = heapFloat[(r2+2)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r7 = r4 >> 2;
	r8 = r_g0 >> 2;
	r8 = heap32[(r8)];
	f3 = heapFloat[(r7+1)];
	f4 =                         0;
	f5 = heapFloat[(r7)];
	f6 = heapFloat[(r7+2)];
	r8 = r8 >> 2;
	f7 = f3*f4;
	f8 = f5*f4;
	f9 = heapFloat[(r7+8)];
	f10 = heapFloat[(r7+9)];
	f11 = heapFloat[(r7+10)];
	f12 = heapFloat[(r7+4)];
	f13 = heapFloat[(r7+5)];
	f14 = heapFloat[(r7+6)];
	r8 = heap32[(r8+4)];
	f15 = f5+f7;
	f16 = f6*f4;
	f17 = heapFloat[(r7+14)];
	f18 = heapFloat[(r7+13)];
	f19 = heapFloat[(r7+12)];
	r7 = sp + -608;
	f20 = f8+f3;
	f15 = f15+f16;
	f7 = f8+f7;
	r9 = r7 >> 2;
	f8 = f20+f16;
	heapFloat[(fp+-152)] = f15;
	f15 = f13*f4;
	f7 = f7+f6;
	heapFloat[(r9+1)] = f8;
	f8 = f12*f4;
	heapFloat[(r9+2)] = f7;
	f7 = f12+f15;
	f16 = f14*f4;
	f20 = f8+f13;
	f7 = f7+f16;
	heap32[(r9+3)] = 0;
	f8 = f8+f15;
	f15 = f20+f16;
	heapFloat[(r9+4)] = f7;
	f7 = f10*f4;
	f8 = f8+f14;
	heapFloat[(r9+5)] = f15;
	f15 = f9*f4;
	heapFloat[(r9+6)] = f8;
	f8 = f9+f7;
	f4 = f11*f4;
	f16 = f15+f10;
	f8 = f8+f4;
	heap32[(r9+7)] = 0;
	f7 = f15+f7;
	f5 = f5*f0;
	f3 = f3*f1;
	f4 = f16+f4;
	heapFloat[(r9+8)] = f8;
	f8 = f12*f0;
	f12 = f13*f1;
	f3 = f5+f3;
	f5 = f6*f2;
	f6 = f7+f11;
	heapFloat[(r9+9)] = f4;
	f3 = f3+f5;
	heapFloat[(r9+10)] = f6;
	f0 = f9*f0;
	f1 = f10*f1;
	f4 = f8+f12;
	f5 = f14*f2;
	f4 = f4+f5;
	f0 = f0+f1;
	f1 = f11*f2;
	f2 = f3+f19;
	heap32[(r9+11)] = 0;
	f0 = f0+f1;
	f1 = f4+f18;
	heapFloat[(r9+12)] = f2;
	f0 = f0+f17;
	heapFloat[(r9+13)] = f1;
	heapFloat[(r9+14)] = f0;
	heap32[(r9+15)] = 0;
	r9 = heap32[(r5+30)];
	r10 = r3 << 2;
	r9 = (r9 - r10)|0;
	r9 = r9 >> 2;
	f0 = heapFloat[(r9)];
	heap32[(g0)] = r_g0;
	heapFloat[(g0+1)] = f0;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r6;
	r2 = (r3 + 1)|0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	if(r3 ==0) //_LBB222_42
{
__label__ = 40;
break _1;
}
else{
continue _32;
}
}
}
}
else{
	if(r3 ==10) //_LBB222_19
{
	r3 = heap32[(r5+13)];
	r5 = (r3 + 2)|0;
	r5 = (r5 % 3)|0;
	r7 = r3 << 2;
	r2 = (r2 + 28)|0;
	r5 = r5 << 2;
	r8 = (r2 + r7)|0;
	r2 = (r2 + r5)|0;
	r8 = r8 >> 2;
	r2 = r2 >> 2;
	f0 = heapFloat[(r8)];
	f1 = heapFloat[(r2)];
	r2 = sp + -720;
	r8 = r2 >> 2;
	heap32[(fp+-180)] = 0;
	heap32[(r8+1)] = 0;
	r9 = (r2 + r7)|0;
	heap32[(r8+2)] = 0;
	r9 = r9 >> 2;
	f2 = -f0;
	heap32[(r8+3)] = 0;
	r10 = sp + -736;
	heapFloat[(r9)] = f2;
	heap32[(fp+-184)] = 0;
	r9 = r10 >> 2;
	heap32[(r9+1)] = 0;
	r7 = (r10 + r7)|0;
	heap32[(r9+2)] = 0;
	r7 = r7 >> 2;
	heap32[(r9+3)] = 0;
	heapFloat[(r7)] = f0;
	r4 = r4 >> 2;
	f0 = heapFloat[(r4)];
	r7 = sp + -800;
	heapFloat[(fp+-200)] = f0;
	r11 = r7 >> 2;
	f2 = heapFloat[(r4+1)];
	heapFloat[(r11+1)] = f2;
	f3 = heapFloat[(r4+2)];
	heapFloat[(r11+2)] = f3;
	heap32[(r11+3)] = heap32[(r4+3)];
	f4 = heapFloat[(r4+4)];
	heapFloat[(r11+4)] = f4;
	f5 = heapFloat[(r4+5)];
	heapFloat[(r11+5)] = f5;
	f6 = heapFloat[(r4+6)];
	heapFloat[(r11+6)] = f6;
	heap32[(r11+7)] = heap32[(r4+7)];
	f7 = heapFloat[(r4+8)];
	heapFloat[(r11+8)] = f7;
	f8 = heapFloat[(r4+9)];
	heapFloat[(r11+9)] = f8;
	f9 = heapFloat[(r4+10)];
	heapFloat[(r11+10)] = f9;
	heap32[(r11+11)] = heap32[(r4+11)];
	f10 = heapFloat[(fp+-180)];
	f11 = heapFloat[(r8+1)];
	f12 = heapFloat[(r8+2)];
	f0 = f0*f10;
	f2 = f2*f11;
	f4 = f4*f10;
	f5 = f5*f11;
	f0 = f0+f2;
	f2 = f3*f12;
	f3 = f7*f10;
	f7 = f8*f11;
	f4 = f4+f5;
	f5 = f6*f12;
	f0 = f0+f2;
	f2 = heapFloat[(r4+12)];
	f6 = heapFloat[(r4+13)];
	f8 = heapFloat[(r4+14)];
	f4 = f4+f5;
	f3 = f3+f7;
	f5 = f9*f12;
	f0 = f0+f2;
	f2 = f3+f5;
	f3 = f4+f6;
	heapFloat[(r11+12)] = f0;
	f0 = f2+f8;
	heapFloat[(r11+13)] = f3;
	heapFloat[(r11+14)] = f0;
	heap32[(r11+15)] = 0;
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r12 = r_g0 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+4)];
	heap32[(g0)] = r_g0;
	heapFloat[(g0+1)] = f1;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	f0 = heapFloat[(r4)];
	r7 = sp + -864;
	heapFloat[(fp+-216)] = f0;
	r11 = r7 >> 2;
	f2 = heapFloat[(r4+1)];
	heapFloat[(r11+1)] = f2;
	f3 = heapFloat[(r4+2)];
	heapFloat[(r11+2)] = f3;
	heap32[(r11+3)] = heap32[(r4+3)];
	f4 = heapFloat[(r4+4)];
	heapFloat[(r11+4)] = f4;
	f5 = heapFloat[(r4+5)];
	heapFloat[(r11+5)] = f5;
	f6 = heapFloat[(r4+6)];
	heapFloat[(r11+6)] = f6;
	heap32[(r11+7)] = heap32[(r4+7)];
	f7 = heapFloat[(r4+8)];
	heapFloat[(r11+8)] = f7;
	f8 = heapFloat[(r4+9)];
	heapFloat[(r11+9)] = f8;
	f9 = heapFloat[(r4+10)];
	heapFloat[(r11+10)] = f9;
	heap32[(r11+11)] = heap32[(r4+11)];
	f10 = heapFloat[(fp+-184)];
	f11 = heapFloat[(r9+1)];
	f12 = heapFloat[(r9+2)];
	f0 = f0*f10;
	f2 = f2*f11;
	f4 = f4*f10;
	f5 = f5*f11;
	f0 = f0+f2;
	f2 = f3*f12;
	f3 = f7*f10;
	f7 = f8*f11;
	f4 = f4+f5;
	f5 = f6*f12;
	f0 = f0+f2;
	f2 = heapFloat[(r4+12)];
	f6 = heapFloat[(r4+13)];
	f8 = heapFloat[(r4+14)];
	f4 = f4+f5;
	f3 = f3+f7;
	f5 = f9*f12;
	f0 = f0+f2;
	f2 = f3+f5;
	f3 = f4+f6;
	heapFloat[(r11+12)] = f0;
	f0 = f2+f8;
	heapFloat[(r11+13)] = f3;
	heapFloat[(r11+14)] = f0;
	heap32[(r11+15)] = 0;
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r12 = r_g0 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+4)];
	r3 = (r3 + 1)|0;
	heap32[(g0)] = r_g0;
	heapFloat[(g0+1)] = f1;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r6;
	r3 = (r3 % 3)|0;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	r3 = r3 << 2;
	r7 = (r2 + r3)|0;
	f0 = heapFloat[(r4+12)];
	f2 = heapFloat[(r4+13)];
	f3 = heapFloat[(r4+14)];
	r3 = (r10 + r3)|0;
	r7 = r7 >> 2;
	heapFloat[(r7)] = f1;
	r3 = r3 >> 2;
	heapFloat[(r3)] = f1;
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r12 = r_g0 >> 2;
	f4 = heapFloat[(fp+-184)];
	f5 = heapFloat[(r4)];
	f6 = heapFloat[(r9+1)];
	f7 = heapFloat[(r4+1)];
	r12 = heap32[(r12)];
	f8 = heapFloat[(r4+4)];
	f9 = heapFloat[(r4+5)];
	f10 = f5*f4;
	f11 = f7*f6;
	f12 = heapFloat[(r9+2)];
	f13 = heapFloat[(r4+2)];
	r12 = r12 >> 2;
	f14 = heapFloat[(r4+8)];
	f15 = heapFloat[(r4+9)];
	f16 = heapFloat[(r4+6)];
	f17 = f8*f4;
	f18 = f9*f6;
	f10 = f10+f11;
	f11 = f13*f12;
	f10 = f10+f11;
	f11 = heapFloat[(r4+10)];
	r12 = heap32[(r12+2)];
	f4 = f14*f4;
	f6 = f15*f6;
	f17 = f17+f18;
	f18 = f16*f12;
	r13 = sp + -544;
	f17 = f17+f18;
	f4 = f4+f6;
	f6 = f11*f12;
	f10 = f0+f10;
	f4 = f4+f6;
	r14 = r13 >> 2;
	f6 = f2+f17;
	heapFloat[(fp+-136)] = f10;
	f4 = f3+f4;
	heapFloat[(r14+1)] = f6;
	heapFloat[(r14+2)] = f4;
	heap32[(r14+3)] = 0;
	f4 = heapFloat[(fp+-180)];
	f6 = heapFloat[(r8+1)];
	f10 = heapFloat[(r8+2)];
	f5 = f5*f4;
	f7 = f7*f6;
	f8 = f8*f4;
	f9 = f9*f6;
	f5 = f5+f7;
	f7 = f13*f10;
	f5 = f5+f7;
	f4 = f14*f4;
	f6 = f15*f6;
	f7 = f8+f9;
	f8 = f16*f10;
	r14 = sp + -528;
	f7 = f7+f8;
	f4 = f4+f6;
	f6 = f11*f10;
	f5 = f0+f5;
	f4 = f4+f6;
	r15 = r14 >> 2;
	f6 = f2+f7;
	heapFloat[(fp+-132)] = f5;
	f4 = f3+f4;
	heapFloat[(r15+1)] = f6;
	heapFloat[(r15+2)] = f4;
	heap32[(r15+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r14;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	f4 = -f1;
	heapFloat[(r7)] = f4;
	heapFloat[(r3)] = f4;
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r12 = r_g0 >> 2;
	f5 = heapFloat[(fp+-184)];
	f6 = heapFloat[(r4)];
	f7 = heapFloat[(r9+1)];
	f8 = heapFloat[(r4+1)];
	r12 = heap32[(r12)];
	f9 = heapFloat[(r4+4)];
	f10 = heapFloat[(r4+5)];
	f11 = f6*f5;
	f12 = f8*f7;
	f13 = heapFloat[(r9+2)];
	f14 = heapFloat[(r4+2)];
	r12 = r12 >> 2;
	f15 = heapFloat[(r4+8)];
	f16 = heapFloat[(r4+9)];
	f17 = heapFloat[(r4+6)];
	f18 = f9*f5;
	f19 = f10*f7;
	f11 = f11+f12;
	f12 = f14*f13;
	f11 = f11+f12;
	f12 = heapFloat[(r4+10)];
	r12 = heap32[(r12+2)];
	f5 = f15*f5;
	f7 = f16*f7;
	f18 = f18+f19;
	f19 = f17*f13;
	r13 = sp + -512;
	f18 = f18+f19;
	f5 = f5+f7;
	f7 = f12*f13;
	f11 = f0+f11;
	f5 = f5+f7;
	r14 = r13 >> 2;
	f7 = f2+f18;
	heapFloat[(fp+-128)] = f11;
	f5 = f3+f5;
	heapFloat[(r14+1)] = f7;
	heapFloat[(r14+2)] = f5;
	heap32[(r14+3)] = 0;
	f5 = heapFloat[(fp+-180)];
	f7 = heapFloat[(r8+1)];
	f11 = heapFloat[(r8+2)];
	f6 = f6*f5;
	f8 = f8*f7;
	f9 = f9*f5;
	f10 = f10*f7;
	f6 = f6+f8;
	f8 = f14*f11;
	f6 = f6+f8;
	f5 = f15*f5;
	f7 = f16*f7;
	f8 = f9+f10;
	f9 = f17*f11;
	r14 = sp + -496;
	f8 = f8+f9;
	f5 = f5+f7;
	f7 = f12*f11;
	f6 = f0+f6;
	f5 = f5+f7;
	r15 = r14 >> 2;
	f7 = f2+f8;
	heapFloat[(fp+-124)] = f6;
	f5 = f3+f5;
	heapFloat[(r15+1)] = f7;
	heapFloat[(r15+2)] = f5;
	heap32[(r15+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r14;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	heap32[(r7)] = 0;
	r2 = (r2 + r5)|0;
	r5 = (r10 + r5)|0;
	heap32[(r3)] = 0;
	r2 = r2 >> 2;
	heapFloat[(r2)] = f1;
	r3 = r5 >> 2;
	heapFloat[(r3)] = f1;
	r5 = heap32[(r1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r7 = r_g0 >> 2;
	f1 = heapFloat[(fp+-184)];
	f5 = heapFloat[(r4)];
	f6 = heapFloat[(r9+1)];
	f7 = heapFloat[(r4+1)];
	r7 = heap32[(r7)];
	f8 = heapFloat[(r4+4)];
	f9 = heapFloat[(r4+5)];
	f10 = f5*f1;
	f11 = f7*f6;
	f12 = heapFloat[(r9+2)];
	f13 = heapFloat[(r4+2)];
	r7 = r7 >> 2;
	f14 = heapFloat[(r4+8)];
	f15 = heapFloat[(r4+9)];
	f16 = heapFloat[(r4+6)];
	f17 = f8*f1;
	f18 = f9*f6;
	f10 = f10+f11;
	f11 = f13*f12;
	f10 = f10+f11;
	f11 = heapFloat[(r4+10)];
	r7 = heap32[(r7+2)];
	f1 = f14*f1;
	f6 = f15*f6;
	f17 = f17+f18;
	f18 = f16*f12;
	r10 = sp + -480;
	f17 = f17+f18;
	f1 = f1+f6;
	f6 = f11*f12;
	f10 = f0+f10;
	f1 = f1+f6;
	r11 = r10 >> 2;
	f6 = f2+f17;
	heapFloat[(fp+-120)] = f10;
	f1 = f3+f1;
	heapFloat[(r11+1)] = f6;
	heapFloat[(r11+2)] = f1;
	heap32[(r11+3)] = 0;
	f1 = heapFloat[(fp+-180)];
	f6 = heapFloat[(r8+1)];
	f10 = heapFloat[(r8+2)];
	f5 = f5*f1;
	f7 = f7*f6;
	f8 = f8*f1;
	f9 = f9*f6;
	f5 = f5+f7;
	f7 = f13*f10;
	f5 = f5+f7;
	f1 = f14*f1;
	f6 = f15*f6;
	f7 = f8+f9;
	f8 = f16*f10;
	r11 = sp + -464;
	f7 = f7+f8;
	f1 = f1+f6;
	f6 = f11*f10;
	f5 = f0+f5;
	f1 = f1+f6;
	r12 = r11 >> 2;
	f6 = f2+f7;
	heapFloat[(fp+-116)] = f5;
	f1 = f3+f1;
	heapFloat[(r12+1)] = f6;
	heapFloat[(r12+2)] = f1;
	heap32[(r12+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	heapFloat[(r2)] = f4;
	heapFloat[(r3)] = f4;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = r_g0 >> 2;
	f1 = heapFloat[(fp+-184)];
	f4 = heapFloat[(r4)];
	f5 = heapFloat[(r9+1)];
	f6 = heapFloat[(r4+1)];
	r1 = heap32[(r1)];
	f7 = heapFloat[(r4+4)];
	f8 = heapFloat[(r4+5)];
	f9 = f4*f1;
	f10 = f6*f5;
	f11 = heapFloat[(r9+2)];
	f12 = heapFloat[(r4+2)];
	r1 = r1 >> 2;
	f13 = heapFloat[(r4+8)];
	f14 = heapFloat[(r4+9)];
	f15 = heapFloat[(r4+6)];
	f16 = f7*f1;
	f17 = f8*f5;
	f9 = f9+f10;
	f10 = f12*f11;
	f9 = f9+f10;
	f10 = heapFloat[(r4+10)];
	r1 = heap32[(r1+2)];
	f1 = f13*f1;
	f5 = f14*f5;
	f16 = f16+f17;
	f17 = f15*f11;
	r2 = sp + -448;
	f16 = f16+f17;
	f1 = f1+f5;
	f5 = f10*f11;
	f9 = f0+f9;
	f1 = f1+f5;
	r3 = r2 >> 2;
	f5 = f2+f16;
	heapFloat[(fp+-112)] = f9;
	f1 = f3+f1;
	heapFloat[(r3+1)] = f5;
	heapFloat[(r3+2)] = f1;
	heap32[(r3+3)] = 0;
	f1 = heapFloat[(fp+-180)];
	f5 = heapFloat[(r8+1)];
	f9 = heapFloat[(r8+2)];
	f4 = f4*f1;
	f6 = f6*f5;
	f7 = f7*f1;
	f8 = f8*f5;
	f4 = f4+f6;
	f6 = f12*f9;
	f4 = f4+f6;
	f1 = f13*f1;
	f5 = f14*f5;
	f6 = f7+f8;
	f7 = f15*f9;
	r3 = sp + -432;
	f6 = f6+f7;
	f1 = f1+f5;
	f5 = f10*f9;
	f0 = f0+f4;
	f1 = f1+f5;
	r4 = r3 >> 2;
	f2 = f2+f6;
	heapFloat[(fp+-108)] = f0;
	f0 = f3+f1;
	heapFloat[(r4+1)] = f2;
	heapFloat[(r4+2)] = f0;
	heap32[(r4+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r3;
__label__ = 30;
break _1;
}
else{
__label__ = 32;
break _1;
}
}
}
else{
	if(r3 ==0) //_LBB222_14
{
	r3 = sp + -704;
	f0 = heapFloat[(r5+8)];
	f1 = heapFloat[(r5+9)];
	f2 = heapFloat[(r5+7)];
	r7 = r3 >> 2;
	heap32[(r7+3)] = heap32[(r5+10)];
	r8 = heap32[(r5)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+11)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	f3 = f_g0;
	r8 = heap32[(r5)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+11)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	f4 = f_g0;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+11)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	f2 = f2+f_g0;
	f0 = f0+f4;
	heapFloat[(fp+-176)] = f2;
	f1 = f1+f3;
	heapFloat[(r7+1)] = f0;
	heapFloat[(r7+2)] = f1;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = r_g0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	f0 = heapFloat[(r7+2)];
	f1 = heapFloat[(r7+1)];
	f2 = heapFloat[(fp+-176)];
	r1 = heap32[(r1+18)];
	r2 = sp + -624;
	f2 = -f2;
	r5 = r2 >> 2;
	f1 = -f1;
	heapFloat[(fp+-156)] = f2;
	f0 = -f0;
	heapFloat[(r5+1)] = f1;
	heapFloat[(r5+2)] = f0;
	heap32[(r5+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r6;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}
else{
	if(r3 ==8) //_LBB222_15
{
	r3 = heap32[(r5)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+11)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	f0 = f_g0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = r_g0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r_g0;
	heapFloat[(g0+1)] = f0;
	heap32[(g0+2)] = r4;
__label__ = 31;
}
else{
__label__ = 32;
}
}
}
}
} while(0);
_41: do {
switch(__label__ ){//multiple entries
case 30:
	heap32[(g0+2)] = r2;
__label__ = 31;
break _41;
break;
case 32:
	r7 = (r3 + -21)|0;
	if(uint(r7) <uint(9)) //_LBB222_34
{
	r3 = sp + -1024;
	r7 = r3 >> 2;
	heap32[(fp+-256)] = 1566444395;
	heap32[(r7+1)] = 1566444395;
	heap32[(r7+2)] = 1566444395;
	r8 = sp + -1040;
	heap32[(r7+3)] = 0;
	r7 = r8 >> 2;
	heap32[(fp+-260)] = -581039253;
	heap32[(r7+1)] = -581039253;
	heap32[(r7+2)] = -581039253;
	heap32[(r7+3)] = 0;
	r7 = heap32[(r1)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+4)];
	r9 = _ZTV17DebugDrawcallback;
	heap32[(g0)] = r0;
	r10 = sp + -1136;
	r11 = (r9 + 8)|0;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r12 = r10 >> 2;
	r9 = (r9 + 32)|0;
	heap32[(fp+-284)] = r11;
	heap32[(r12+1)] = r9;
	r13 = r6 >> 2;
	heap32[(r12+2)] = r_g0;
	heap32[(r12+3)] = heap32[(r13)];
	heap32[(r12+4)] = heap32[(r13+1)];
	heap32[(r12+5)] = heap32[(r13+2)];
	r7 = r4 >> 2;
	heap32[(r12+6)] = heap32[(r13+3)];
	heap32[(r12+7)] = heap32[(r7)];
	heap32[(r12+8)] = heap32[(r7+1)];
	heap32[(r12+9)] = heap32[(r7+2)];
	heap32[(r12+10)] = heap32[(r7+3)];
	heap32[(r12+11)] = heap32[(r7+4)];
	heap32[(r12+12)] = heap32[(r7+5)];
	heap32[(r12+13)] = heap32[(r7+6)];
	heap32[(r12+14)] = heap32[(r7+7)];
	heap32[(r12+15)] = heap32[(r7+8)];
	heap32[(r12+16)] = heap32[(r7+9)];
	heap32[(r12+17)] = heap32[(r7+10)];
	heap32[(r12+18)] = heap32[(r7+11)];
	heap32[(r12+19)] = heap32[(r7+12)];
	heap32[(r12+20)] = heap32[(r7+13)];
	heap32[(r12+21)] = heap32[(r7+14)];
	heap32[(r12+22)] = heap32[(r7+15)];
	r7 = heap32[(r5)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+15)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r3;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r3 = r10 | 4;
	r7 = _ZTV31btInternalTriangleIndexCallback;
	heap32[(fp+-284)] = r11;
	r8 = _ZTV18btTriangleCallback;
	r3 = r3 >> 2;
	r7 = (r7 + 8)|0;
	heap32[(r12+1)] = r9;
	r8 = (r8 + 8)|0;
	heap32[(r3)] = r7;
	heap32[(fp+-284)] = r8;
	r3 = heap32[(r5+1)];
}
	if(r3 ==3) //_LBB222_37
{
	r3 = sp + -1152;
	r7 = r3 >> 2;
	heap32[(fp+-288)] = 1566444395;
	heap32[(r7+1)] = 1566444395;
	heap32[(r7+2)] = 1566444395;
	r8 = sp + -1168;
	heap32[(r7+3)] = 0;
	r7 = r8 >> 2;
	heap32[(fp+-292)] = -581039253;
	heap32[(r7+1)] = -581039253;
	heap32[(r7+2)] = -581039253;
	heap32[(r7+3)] = 0;
	r7 = heap32[(r1)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+4)];
	r9 = _ZTV17DebugDrawcallback;
	heap32[(g0)] = r0;
	r10 = sp + -1264;
	r11 = (r9 + 8)|0;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r12 = r10 >> 2;
	r9 = (r9 + 32)|0;
	heap32[(fp+-316)] = r11;
	heap32[(r12+1)] = r9;
	r13 = r6 >> 2;
	heap32[(r12+2)] = r_g0;
	heap32[(r12+3)] = heap32[(r13)];
	heap32[(r12+4)] = heap32[(r13+1)];
	heap32[(r12+5)] = heap32[(r13+2)];
	r7 = r4 >> 2;
	heap32[(r12+6)] = heap32[(r13+3)];
	heap32[(r12+7)] = heap32[(r7)];
	heap32[(r12+8)] = heap32[(r7+1)];
	heap32[(r12+9)] = heap32[(r7+2)];
	heap32[(r12+10)] = heap32[(r7+3)];
	heap32[(r12+11)] = heap32[(r7+4)];
	heap32[(r12+12)] = heap32[(r7+5)];
	heap32[(r12+13)] = heap32[(r7+6)];
	heap32[(r12+14)] = heap32[(r7+7)];
	heap32[(r12+15)] = heap32[(r7+8)];
	heap32[(r12+16)] = heap32[(r7+9)];
	heap32[(r12+17)] = heap32[(r7+10)];
	heap32[(r12+18)] = heap32[(r7+11)];
	heap32[(r12+19)] = heap32[(r7+12)];
	heap32[(r12+20)] = heap32[(r7+13)];
	heap32[(r12+21)] = heap32[(r7+14)];
	heap32[(r12+22)] = heap32[(r7+15)];
	r7 = heap32[(r5+22)];
	r13 = r7 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+2)];
	r14 = (r10 + 4)|0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r14;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r3;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r3 = r10 | 4;
	r7 = _ZTV31btInternalTriangleIndexCallback;
	heap32[(fp+-316)] = r11;
	r8 = _ZTV18btTriangleCallback;
	r3 = r3 >> 2;
	r7 = (r7 + 8)|0;
	heap32[(r12+1)] = r9;
	r8 = (r8 + 8)|0;
	heap32[(r3)] = r7;
	heap32[(fp+-316)] = r8;
	r3 = heap32[(r5+1)];
}
	if(r3 >6) //_LBB222_42
{
__label__ = 40;
}
else{
	r3 = heap32[(r5)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+22)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r_g0;
	if(r3 <1) //_LBB222_42
{
__label__ = 40;
}
else{
	r3 = 0;
_52: while(true){
	r7 = heap32[(r5)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+23)];
	r8 = sp + -1296;
	r9 = sp + -1280;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r8;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r7 = r4 >> 2;
	r9 = r9 >> 2;
	f0 = heapFloat[(fp+-320)];
	f1 = heapFloat[(r7)];
	f2 = heapFloat[(r9+1)];
	f3 = heapFloat[(r7+1)];
	f4 = heapFloat[(r7+4)];
	f5 = heapFloat[(r7+5)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r9+2)];
	f9 = heapFloat[(r7+2)];
	f10 = heapFloat[(r7+8)];
	f11 = heapFloat[(r7+9)];
	f12 = heapFloat[(r7+6)];
	f13 = f4*f0;
	f14 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	f15 = heapFloat[(r7+10)];
	f0 = f10*f0;
	f2 = f11*f2;
	f13 = f13+f14;
	f14 = f12*f8;
	f6 = f6+f7;
	f7 = heapFloat[(r7+12)];
	f16 = heapFloat[(r7+14)];
	f17 = heapFloat[(r7+13)];
	r7 = sp + -1312;
	f13 = f13+f14;
	f0 = f0+f2;
	f2 = f15*f8;
	f6 = f6+f7;
	f0 = f0+f2;
	r9 = r7 >> 2;
	f2 = f13+f17;
	heapFloat[(fp+-328)] = f6;
	f0 = f0+f16;
	heapFloat[(r9+1)] = f2;
	heapFloat[(r9+2)] = f0;
	heap32[(r9+3)] = 0;
	r8 = r8 >> 2;
	f0 = heapFloat[(fp+-324)];
	f2 = heapFloat[(r8+1)];
	f6 = heapFloat[(r8+2)];
	f1 = f1*f0;
	f3 = f3*f2;
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f9*f6;
	f1 = f1+f3;
	f0 = f10*f0;
	f2 = f11*f2;
	f3 = f4+f5;
	f4 = f12*f6;
	r8 = sp + -1328;
	f3 = f3+f4;
	f0 = f0+f2;
	f2 = f15*f6;
	f1 = f1+f7;
	f0 = f0+f2;
	r9 = r8 >> 2;
	f2 = f3+f17;
	heapFloat[(fp+-332)] = f1;
	f0 = f0+f16;
	heapFloat[(r9+1)] = f2;
	heapFloat[(r9+2)] = f0;
	heap32[(r9+3)] = 0;
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r10 = r_g0 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+2)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r7 = heap32[(r5)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+22)];
	r3 = (r3 + 1)|0;
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r7 = r_g0;
	if(r7 >r3) //_LBB222_41
{
continue _52;
}
else{
__label__ = 40;
break _41;
}
}
}
}
break;
}
} while(0);
switch(__label__ ){//multiple entries
case 31:
	heap32[(g0+3)] = r6;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
break;
case 40:
	return;
break;
}
}

function _ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -280;var g0 = i7>>2; // save stack
	r0 = _ZTV19btSingleRayCallback;
	r1 = heap32[(fp+1)];
	r0 = (r0 + 8)|0;
	r2 = sp + -256;
	r3 = r1 >> 2;
	heap32[(fp+-64)] = r0;
	r0 = r2 >> 2;
	f0 = heapFloat[(r3)];
	heapFloat[(r0+9)] = f0;
	f1 = heapFloat[(r3+1)];
	heapFloat[(r0+10)] = f1;
	f2 = heapFloat[(r3+2)];
	heapFloat[(r0+11)] = f2;
	r4 = heap32[(fp+2)];
	f3 = heapFloat[(r3+3)];
	r3 = r4 >> 2;
	heapFloat[(r0+12)] = f3;
	f4 = heapFloat[(r3)];
	heapFloat[(r0+13)] = f4;
	f5 = heapFloat[(r3+1)];
	heapFloat[(r0+14)] = f5;
	f6 = heapFloat[(r3+2)];
	heapFloat[(r0+15)] = f6;
	f7 = heapFloat[(r3+3)];
	r3 = heap32[(fp)];
	heapFloat[(r0+16)] = f7;
	r5 = heap32[(fp+3)];
	heap32[(r0+53)] = r3;
	heap32[(r0+54)] = r5;
	heap32[(r0+17)] = 1065353216;
	heap32[(r0+18)] = 0;
	heap32[(r0+19)] = 0;
	heap32[(r0+20)] = 0;
	heap32[(r0+21)] = 0;
	heap32[(r0+22)] = 1065353216;
	heap32[(r0+23)] = 0;
	heap32[(r0+24)] = 0;
	heap32[(r0+25)] = 0;
	heap32[(r0+26)] = 0;
	heap32[(r0+27)] = 1065353216;
	heap32[(r0+28)] = 0;
	heapFloat[(r0+29)] = f0;
	heapFloat[(r0+30)] = f1;
	heapFloat[(r0+31)] = f2;
	heapFloat[(r0+32)] = f3;
	heap32[(r0+33)] = 1065353216;
	heap32[(r0+34)] = 0;
	heap32[(r0+35)] = 0;
	heap32[(r0+36)] = 0;
	heap32[(r0+37)] = 0;
	heap32[(r0+38)] = 1065353216;
	heap32[(r0+39)] = 0;
	heap32[(r0+40)] = 0;
	heap32[(r0+41)] = 0;
	heap32[(r0+42)] = 0;
	heap32[(r0+43)] = 1065353216;
	heap32[(r0+44)] = 0;
	heapFloat[(r0+45)] = f4;
	f0 = f4-f0;
	heapFloat[(r0+46)] = f5;
	f1 = f5-f1;
	heapFloat[(r0+47)] = f6;
	f2 = f6-f2;
	f3 = f0*f0;
	f4 = f1*f1;
	heapFloat[(r0+48)] = f7;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	f3 =                         1;
	sqrtf(i7);
	f4 = f3/f_g0;
	f0 = f0*f4;
	f1 = f1*f4;
	f2 = f2*f4;
	f4 =                         0;
	if(f0 !=f4) //_LBB223_2
{
	f5 = f3/f0;
}
else{
	f5 =        999999984306749440;
}
	heapFloat[(r0+1)] = f5;
	if(f1 !=f4) //_LBB223_5
{
	f6 = f3/f1;
}
else{
	f6 =        999999984306749440;
}
	heapFloat[(r0+2)] = f6;
	if(f2 !=f4) //_LBB223_8
{
	f3 = f3/f2;
}
else{
	f3 =        999999984306749440;
}
	r5 = f5 < f4;
	r6 = f6 < f4;
	r5 = r5 & 1;
	heapFloat[(r0+3)] = f3;
	r7 = f3 < f4;
	r6 = r6 & 1;
	heap32[(r0+5)] = r5;
	r5 = r7 & 1;
	heap32[(r0+6)] = r6;
	heap32[(r0+7)] = r5;
	f3 = heapFloat[(r0+14)];
	f4 = heapFloat[(r0+10)];
	f5 = heapFloat[(r0+13)];
	f6 = heapFloat[(r0+9)];
	f5 = f5-f6;
	f3 = f3-f4;
	f4 = heapFloat[(r0+15)];
	f6 = heapFloat[(r0+11)];
	f0 = f0*f5;
	f1 = f1*f3;
	f3 = f4-f6;
	f0 = f0+f1;
	f1 = f2*f3;
	f0 = f0+f1;
	r3 = r3 >> 2;
	heapFloat[(r0+8)] = f0;
	r0 = heap32[(r3+20)];
	r3 = r0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+6)];
	r5 = sp + -32;
	r6 = r5 >> 2;
	heap32[(fp+-8)] = 0;
	heap32[(r6+1)] = 0;
	heap32[(r6+2)] = 0;
	r7 = sp + -16;
	heap32[(r6+3)] = 0;
	r6 = r7 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r6+1)] = 0;
	heap32[(r6+2)] = 0;
	heap32[(r6+3)] = 0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r2;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r5;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	return;
}

function _ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + -136;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	if(r0 !=0) //_LBB224_2
{
	r1 = heap32[(fp)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = r1 >> 2;
	r5 = heap32[(r4+2)];
	r6 = 0;
_3: while(true){
	if(r5 >r6) //_LBB224_3
{
	r7 = heap32[(r4+4)];
	r8 = r6 << 2;
	r7 = (r7 + r8)|0;
	r7 = r7 >> 2;
	r7 = heap32[(r7)];
	if(r7 ==r0) //_LBB224_6
{
__label__ = 6;
break _3;
}
else{
	r6 = (r6 + 1)|0;
}
}
else{
__label__ = 8;
break _3;
}
}
if (__label__ == 6){
if(!(r5 ==r6)) //_LBB224_8
{
	r0 = _2E_str988;
	r1 = _2E_str887;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 114;
	_assert(i7);
}
}
	r6 = heap32[(r4+3)];
	if(r6 ==r5) //_LBB224_10
{
	r7 = 1;
	r8 = r5 << 1;
	r8 = r5 == 0 ? r7 : r8;
if(!(r6 >=r8)) //_LBB224_9
{
	if(r8 !=0) //_LBB224_13
{
	r6 = gNumAlignedAllocs;
	r6 = r6 >> 2;
	r9 = heap32[(r6)];
	r10 = r8 << 2;
	r9 = (r9 + 1)|0;
	r10 = r10 | 3;
	heap32[(r6)] = r9;
	r6 = (r10 + 16)|0;
	heap32[(g0)] = r6;
	malloc(i7);
	r6 = r_g0;
	if(r6 !=0) //_LBB224_15
{
	r9 = 0;
	r10 = (r6 + 4)|0;
	r9 = (r9 - r10)|0;
	r9 = r9 & 15;
	r9 = (r6 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r6;
	r6 = r10;
}
}
else{
	r6 = 0;
}
_19: do {
	if(r5 <1) //_LBB224_18
{
	r10 = heap32[(r4+4)];
}
else{
	r9 = 0;
_22: while(true){
	r10 = heap32[(r4+4)];
	r11 = r9 << 2;
	r12 = (r10 + r11)|0;
	r12 = r12 >> 2;
	r11 = (r6 + r11)|0;
	r12 = heap32[(r12)];
	r9 = (r9 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r12;
if(!(r5 !=r9)) //_LBB224_19
{
break _19;
}
}
}
} while(0);
	if(r10 !=0) //_LBB224_22
{
	r9 = heapU8[r1+20];
	if(r9 !=0) //_LBB224_24
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r9 = heap32[(r5)];
	r9 = (r9 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r5)] = r9;
	r5 = heap32[(r10+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r4+2)];
}
	heap32[(r4+4)] = 0;
}
	heap8[r1+20] = r7;
	heap32[(r4+4)] = r6;
	heap32[(r4+3)] = r8;
}
}
	r1 = r5 << 2;
	r5 = heap32[(r4+4)];
	r1 = (r5 + r1)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = r0;
	r1 = heap32[(r4+2)];
	r1 = (r1 + 1)|0;
	r5 = sp + -64;
	r6 = r0 >> 2;
	heap32[(r4+2)] = r1;
	r1 = r5 >> 2;
	heap32[(fp+-16)] = heap32[(r6+1)];
	heap32[(r1+1)] = heap32[(r6+2)];
	heap32[(r1+2)] = heap32[(r6+3)];
	heap32[(r1+3)] = heap32[(r6+4)];
	heap32[(r1+4)] = heap32[(r6+5)];
	heap32[(r1+5)] = heap32[(r6+6)];
	heap32[(r1+6)] = heap32[(r6+7)];
	heap32[(r1+7)] = heap32[(r6+8)];
	heap32[(r1+8)] = heap32[(r6+9)];
	heap32[(r1+9)] = heap32[(r6+10)];
	heap32[(r1+10)] = heap32[(r6+11)];
	heap32[(r1+11)] = heap32[(r6+12)];
	heap32[(r1+12)] = heap32[(r6+13)];
	heap32[(r1+13)] = heap32[(r6+14)];
	heap32[(r1+14)] = heap32[(r6+15)];
	heap32[(r1+15)] = heap32[(r6+16)];
	r1 = heap32[(r6+48)];
	r7 = r1 >> 2;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+2)];
	r8 = sp + -80;
	r9 = sp + -96;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r9;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r1 = heap32[(r4+20)];
	r5 = r1 >> 2;
	r7 = heap32[(r6+48)];
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r7 = r7 >> 2;
	r5 = heap32[(r5+2)];
	r7 = heap32[(r7+1)];
	r4 = heap32[(r4+6)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r0;
	heap32[(g0+5)] = r2;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r4;
	heap32[(g0+8)] = 0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	heap32[(r6+47)] = r_g0;
	return;
}
else{
	r0 = _2E_str786;
	r1 = _2E_str887;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 111;
	_assert(i7);
}
}

function _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+47)];
	r3 = heap32[(fp)];
if(!(r2 ==0)) //_LBB225_2
{
	r4 = r3 >> 2;
	r5 = heap32[(r4+20)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+9)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = r_g0 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+10)];
	r7 = heap32[(r4+6)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r5 = heap32[(r4+20)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+3)];
	r4 = heap32[(r4+6)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	heap32[(r1+47)] = 0;
}
	r1 = r3 >> 2;
	r2 = heap32[(r1+2)];
	r3 = 0;
_4: while(true){
	if(r2 >r3) //_LBB225_3
{
	r4 = heap32[(r1+4)];
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	if(r4 !=r0) //_LBB225_5
{
	r3 = (r3 + 1)|0;
continue _4;
}
else{
__label__ = 7;
break _4;
}
}
else{
__label__ = 6;
break _4;
}
}
if (__label__ == 6){
	r3 = r2;
}
if(!(r2 <=r3)) //_LBB225_10
{
	r0 = (r2 + -1)|0;
	r2 = r3 << 2;
	r3 = heap32[(r1+4)];
	r0 = r0 << 2;
	r2 = (r3 + r2)|0;
	r3 = (r3 + r0)|0;
	r2 = r2 >> 2;
	r3 = r3 >> 2;
	r4 = heap32[(r2)];
	r3 = heap32[(r3)];
	heap32[(r2)] = r3;
	r2 = heap32[(r1+4)];
	r0 = (r2 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r4;
	r0 = heap32[(r1+2)];
	r0 = (r0 + -1)|0;
	heap32[(r1+2)] = r0;
}
	return;
}

function _ZN16btCollisionWorld33performDiscreteCollisionDetectionEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = _2E_str1190;
	r1 = heap32[(fp)];
	heap32[(g0)] = r0;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r0 = r1 >> 2;
	r2 = heap32[(r0)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+2)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = _2E_str1291;
	heap32[(g0)] = r2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r2 = heap32[(r0+20)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+8)];
	r4 = heap32[(r0+6)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	r2 = _ZN15CProfileManager11CurrentNodeE;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r4 = r3 >> 2;
	r5 = heap32[(r4+4)];
	r5 = (r5 + -1)|0;
	heap32[(r4+4)] = r5;
_1: do {
if(!(r5 !=0)) //_LBB226_6
{
	r5 = heap32[(r4+1)];
	if(r5 !=0) //_LBB226_3
{
	r3 = sp + -24;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 0;
	r5 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r3 = r3 >> 2;
	r6 = heap32[(fp+-6)];
	r7 = heap32[(r5)];
	r6 = (r6 - r7)|0;
	r3 = heap32[(r3+1)];
	r5 = heap32[(r5+1)];
	r3 = (r3 - r5)|0;
	r5 = (r6 * 1000000)|0;
	r3 = (r3 + r5)|0;
	r5 = heap32[(r4+3)];
	r3 = (r3 - r5)|0;
	f0 = uint(r3); //fuitos r3, f0
	f1 =                      1000;
	f2 = heapFloat[(r4+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r4+2)] = f0;
	r3 = heap32[(r4+4)];
	if(r3 !=0) //_LBB226_6
{
break _1;
}
else{
	r3 = heap32[(r2)];
}
}
	r3 = r3 >> 2;
	r3 = heap32[(r3+5)];
	heap32[(r2)] = r3;
}
} while(0);
	r3 = heap32[(r0+6)];
	r4 = _2E_str1392;
	heap32[(g0)] = r4;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
if(!(r3 ==0)) //_LBB226_8
{
	r4 = heap32[(r0+20)];
	r5 = r3 >> 2;
	r6 = r4 >> 2;
	r5 = heap32[(r5)];
	r6 = heap32[(r6)];
	r5 = r5 >> 2;
	r6 = r6 >> 2;
	r5 = heap32[(r5+8)];
	r0 = heap32[(r0+6)];
	r6 = heap32[(r6+9)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r1 = (r1 + 28)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
	r0 = heap32[(r2)];
	r1 = r0 >> 2;
	r3 = heap32[(r1+4)];
	r3 = (r3 + -1)|0;
	heap32[(r1+4)] = r3;
_11: do {
	if(r3 ==0) //_LBB226_10
{
	r3 = heap32[(r1+1)];
	if(r3 !=0) //_LBB226_12
{
	r0 = sp + -16;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r0 = r0 >> 2;
	r4 = heap32[(fp+-4)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r0 = heap32[(r0+1)];
	r3 = heap32[(r3+1)];
	r0 = (r0 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r0 = (r0 + r3)|0;
	r3 = heap32[(r1+3)];
	r0 = (r0 - r3)|0;
	f0 = uint(r0); //fuitos r0, f0
	f1 =                      1000;
	f2 = heapFloat[(r1+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r1+2)] = f0;
	r0 = heap32[(r2)];
	r1 = heap32[(r1+4)];
if(!(r1 ==0)) //_LBB226_14
{
break _11;
}
}
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
	heap32[(r2)] = r0;
}
} while(0);
	r1 = r0 >> 2;
	r3 = heap32[(r1+4)];
	r3 = (r3 + -1)|0;
	heap32[(r1+4)] = r3;
_17: do {
if(!(r3 !=0)) //_LBB226_21
{
	r3 = heap32[(r1+1)];
	if(r3 !=0) //_LBB226_18
{
	r0 = sp + -8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r0 = r0 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r0 = heap32[(r0+1)];
	r3 = heap32[(r3+1)];
	r0 = (r0 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r0 = (r0 + r3)|0;
	r3 = heap32[(r1+3)];
	r0 = (r0 - r3)|0;
	f0 = uint(r0); //fuitos r0, f0
	f1 =                      1000;
	f2 = heapFloat[(r1+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r1+2)] = f0;
	r0 = heap32[(r1+4)];
	if(r0 !=0) //_LBB226_21
{
break _17;
}
else{
	r0 = heap32[(r2)];
}
}
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
	heap32[(r2)] = r0;
}
} while(0);
	return;
}

function _ZN16btCollisionWorld9serializeEP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+8)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = heap32[(fp)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	_ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+9)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN21btSingleSweepCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV21btSingleSweepCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN21btSingleSweepCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV21btSingleSweepCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+46)];
	r3 = r2 >> 2;
	f0 = heapFloat[(r3+1)];
	f1 =                         0;
	if(f0 !=f1) //_LBB230_2
{
	r4 = heap32[(fp+1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r5 = r4 >> 2;
	r3 = heap32[(r3+2)];
	r6 = heap32[(r5+47)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB230_4
{
	f0 = heapFloat[(r1+47)];
	r2 = heap32[(r1+46)];
	r3 = heap32[(r5+48)];
	r1 = heap32[(r1+48)];
	r5 = (r0 + 36)|0;
	r0 = (r0 + 100)|0;
	r6 = (r4 + 4)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r3;
	heap32[(g0+5)] = r6;
	heap32[(g0+6)] = r2;
	heapFloat[(g0+7)] = f0;
	_ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i7);
	r0 = 1;
	r_g0 = r0;
	return;
}
else{
	r0 = 1;
}
}
else{
	r0 = 0;
}
	r0 = r0 & 255;
	r_g0 = r0;
	return;
}

function _ZN19btSingleRayCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV19btSingleRayCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN19btSingleRayCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV19btSingleRayCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN19btSingleRayCallback7processEPK17btBroadphaseProxy(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+54)];
	r3 = r2 >> 2;
	f0 = heapFloat[(r3+1)];
	f1 =                         0;
	if(f0 !=f1) //_LBB233_2
{
	r4 = heap32[(fp+1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r5 = r4 >> 2;
	r3 = heap32[(r3+2)];
	r6 = heap32[(r5+47)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB233_4
{
	r1 = heap32[(r1+54)];
	r2 = heap32[(r5+48)];
	r3 = (r0 + 68)|0;
	r0 = (r0 + 132)|0;
	r5 = (r4 + 4)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r2;
	heap32[(g0+4)] = r5;
	heap32[(g0+5)] = r1;
	_ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i7);
	r0 = 1;
	r_g0 = r0;
	return;
}
else{
	r0 = 1;
}
}
else{
	r0 = 0;
}
	r0 = r0 & 255;
	r_g0 = r0;
	return;
}

function _ZN16btCollisionWorldD2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btCollisionWorld;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+4)];
	r3 = heap32[(r2+2)];
	if(r3 >0) //_LBB234_2
{
	r3 = 0;
_3: while(true){
	r4 = r3 << 2;
	r1 = (r1 + r4)|0;
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r4 = heap32[(r1+47)];
if(!(r4 ==0)) //_LBB234_5
{
	r5 = heap32[(r2+20)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+9)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = r_g0 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+10)];
	r7 = heap32[(r2+6)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r5 = heap32[(r2+20)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+3)];
	r7 = heap32[(r2+6)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	heap32[(r1+47)] = 0;
}
	r3 = (r3 + 1)|0;
	r1 = heap32[(r2+4)];
	r4 = heap32[(r2+2)];
	if(r4 >r3) //_LBB234_3
{
continue _3;
}
else{
break _3;
}
}
}
if(!(r1 ==0)) //_LBB234_10
{
	r3 = heapU8[r0+20];
if(!(r3 ==0)) //_LBB234_9
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	r1 = 1;
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	return;
}

function _ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+2)];
if(!(r1 <1)) //_LBB235_110
{
	r1 = heap32[(fp+1)];
	heap32[(fp+-2)] = r1;
	r1 = 0;
_3: while(true){
	r2 = heap32[(r0+4)];
	r3 = r1 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r3 = r2 >> 2;
	r4 = heap32[(r3+58)];
if(!(r4 !=1)) //_LBB235_4
{
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+6)];
	heap32[(g0)] = r2;
	r2 = heap32[(fp+-2)];
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
	r1 = (r1 + 1)|0;
	r2 = heap32[(r0+2)];
if(!(r2 >r1)) //_LBB235_2
{
break _3;
}
}
if(!(r2 <1)) //_LBB235_110
{
	r1 = 0;
	r2 = r1;
	r3 = r1;
	r4 = r1;
	r5 = r1;
	r6 = r1;
	heap32[(fp+-1)] = r1;
	r7 = r1;
	r8 = r1;
	r9 = r1;
	r10 = r1;
	r11 = r1;
	r12 = r1;
_10: while(true){
	r13 = heap32[(r0+4)];
	r14 = r12 << 2;
	r13 = (r13 + r14)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+48)];
	r14 = r13 << 15;
	r14 = r14 ^ -1;
	r14 = (r13 + r14)|0;
	r15 = r14 >> 10;
	r14 = r15 ^ r14;
	r14 = (r14 * 9)|0;
	r15 = r14 >> 6;
	r14 = r15 ^ r14;
	r15 = r14 << 11;
	r15 = r15 ^ -1;
	r14 = (r14 + r15)|0;
	r15 = r14 >> 16;
	r14 = r15 ^ r14;
	r15 = (r4 + -1)|0;
	r15 = r14 & r15;
	r12 = (r12 + 1)|0;
_12: do {
	if(uint(r10) <=uint(r15)) //_LBB235_20
{
__label__ = 19;
}
else{
	r16 = r15 << 2;
	r17 = (r8 + r16)|0;
_14: while(true){
	r17 = r17 >> 2;
	r17 = heap32[(r17)];
	if(r17 ==-1) //_LBB235_14
{
__label__ = 13;
break _14;
}
else{
	r18 = r17 << 3;
	r18 = (r11 + r18)|0;
	r18 = r18 >> 2;
	r18 = heap32[(r18)];
	if(r13 !=r18) //_LBB235_9
{
	r17 = r17 << 2;
	r17 = (r6 + r17)|0;
}
else{
__label__ = 12;
break _14;
}
}
}
if (__label__ == 12){
	r17 = r17 << 2;
	r17 = (r3 + r17)|0;
if(!(r17 ==0)) //_LBB235_14
{
__label__ = 89;
break _12;
}
}
	if(uint(r10) <=uint(r15)) //_LBB235_20
{
__label__ = 19;
}
else{
	r16 = (r8 + r16)|0;
_22: while(true){
	r16 = r16 >> 2;
	r16 = heap32[(r16)];
	if(r16 ==-1) //_LBB235_20
{
__label__ = 19;
break _12;
}
else{
	r17 = r16 << 3;
	r17 = (r11 + r17)|0;
	r17 = r17 >> 2;
	r17 = heap32[(r17)];
	if(r13 !=r17) //_LBB235_16
{
	r16 = r16 << 2;
	r16 = (r6 + r16)|0;
}
else{
break _22;
}
}
}
	r14 = r16 << 2;
	r14 = (r3 + r14)|0;
	r14 = r14 >> 2;
	heap32[(r14)] = r13;
	r16 = r4;
	r17 = r5;
__label__ = 88;
}
}
} while(0);
if (__label__ == 19){
	if(r4 ==r5) //_LBB235_22
{
	r16 = 1;
	r17 = r5 << 1;
	r16 = r5 == 0 ? r16 : r17;
	if(r4 >=r16) //_LBB235_21
{
__label__ = 20;
}
else{
	if(r16 !=0) //_LBB235_25
{
	r17 = gNumAlignedAllocs;
	r17 = r17 >> 2;
	r18 = heap32[(r17)];
	r19 = r16 << 2;
	r18 = (r18 + 1)|0;
	r19 = r19 | 3;
	heap32[(r17)] = r18;
	r17 = (r19 + 16)|0;
	heap32[(g0)] = r17;
	malloc(i7);
	r17 = r_g0;
	if(r17 !=0) //_LBB235_27
{
	r18 = 0;
	r19 = (r17 + 4)|0;
	r18 = (r18 - r19)|0;
	r18 = r18 & 15;
	r18 = (r17 + r18)|0;
	r19 = (r18 + 4)|0;
	r18 = r18 >> 2;
	heap32[(r18)] = r17;
	r17 = r19;
}
}
else{
	r17 = 0;
}
_37: do {
if(!(r5 <1)) //_LBB235_31
{
	r18 = r17;
	r19 = r3;
	r20 = r5;
_39: while(true){
	r21 = r19 >> 2;
	r20 = (r20 + -1)|0;
	r19 = (r19 + 4)|0;
	r22 = (r18 + 4)|0;
	r18 = r18 >> 2;
	r21 = heap32[(r21)];
	heap32[(r18)] = r21;
	r18 = r22;
if(!(r20 !=0)) //_LBB235_30
{
break _37;
}
}
}
} while(0);
	if(r3 !=0) //_LBB235_33
{
	r18 = gNumAlignedFree;
	r18 = r18 >> 2;
	r19 = heap32[(r18)];
	r19 = (r19 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r18)] = r19;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
	r3 = r17;
__label__ = 32;
}
else{
	r3 = r17;
__label__ = 32;
}
}
}
else{
__label__ = 20;
}
if (__label__ == 20){
	r16 = r4;
}
	r18 = r5 << 2;
	r19 = (r3 + r18)|0;
	r17 = (r5 + 1)|0;
	r19 = r19 >> 2;
	heap32[(r19)] = r13;
	if(r1 ==r2) //_LBB235_36
{
	r19 = 1;
	r20 = r2 << 1;
	r19 = r2 == 0 ? r19 : r20;
if(!(r1 >=r19)) //_LBB235_35
{
	if(r19 !=0) //_LBB235_39
{
	r1 = gNumAlignedAllocs;
	r1 = r1 >> 2;
	r20 = heap32[(r1)];
	r21 = r19 << 3;
	r20 = (r20 + 1)|0;
	r21 = r21 | 3;
	heap32[(r1)] = r20;
	r1 = (r21 + 16)|0;
	heap32[(g0)] = r1;
	malloc(i7);
	r20 = r_g0;
	if(r20 !=0) //_LBB235_41
{
	r1 = 0;
	r21 = (r20 + 4)|0;
	r1 = (r1 - r21)|0;
	r1 = r1 & 15;
	r1 = (r20 + r1)|0;
	r21 = (r1 + 4)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = r20;
	r20 = r21;
}
}
else{
	r20 = 0;
}
_56: do {
if(!(r2 <1)) //_LBB235_45
{
	r1 = (r11 + 4)|0;
	r21 = (r20 + 4)|0;
	r22 = r2;
_58: while(true){
	r23 = r1 >> 2;
	r24 = heap32[(r23)];
	r23 = heap32[(r23+-1)];
	r25 = r21 >> 2;
	r22 = (r22 + -1)|0;
	r1 = (r1 + 8)|0;
	r21 = (r21 + 8)|0;
	heap32[(r25+-1)] = r23;
	heap32[(r25)] = r24;
if(!(r22 !=0)) //_LBB235_44
{
break _56;
}
}
}
} while(0);
	if(r11 !=0) //_LBB235_47
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r21 = heap32[(r1)];
	r21 = (r21 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r1)] = r21;
	r1 = heap32[(r11+-1)];
	heap32[(g0)] = r1;
	free(i7);
	r1 = r19;
	r11 = r20;
}
else{
	r1 = r19;
	r11 = r20;
}
}
}
	r19 = r2 << 3;
	r19 = (r11 + r19)|0;
	r2 = (r2 + 1)|0;
	r19 = r19 >> 2;
	heap32[(r19)] = r13;
	if(r4 <r16) //_LBB235_50
{
	if(r10 <r16) //_LBB235_52
{
_69: do {
	if(r10 <=r16) //_LBB235_54
{
	if(r9 <r16) //_LBB235_56
{
	if(r16 !=0) //_LBB235_58
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r9 = heap32[(r4)];
	r15 = r16 << 2;
	r9 = (r9 + 1)|0;
	r15 = r15 | 3;
	heap32[(r4)] = r9;
	r4 = (r15 + 16)|0;
	heap32[(g0)] = r4;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB235_60
{
	r9 = 0;
	r15 = (r4 + 4)|0;
	r9 = (r9 - r15)|0;
	r9 = r9 & 15;
	r9 = (r4 + r9)|0;
	r15 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r4;
	r4 = r15;
}
}
else{
	r4 = 0;
}
_78: do {
if(!(r10 <1)) //_LBB235_64
{
	r9 = r4;
	r15 = r8;
	r19 = r10;
_80: while(true){
	r20 = r15 >> 2;
	r19 = (r19 + -1)|0;
	r15 = (r15 + 4)|0;
	r21 = (r9 + 4)|0;
	r9 = r9 >> 2;
	r20 = heap32[(r20)];
	heap32[(r9)] = r20;
	r9 = r21;
if(!(r19 !=0)) //_LBB235_63
{
break _78;
}
}
}
} while(0);
	if(r8 !=0) //_LBB235_66
{
	r9 = gNumAlignedFree;
	r9 = r9 >> 2;
	r15 = heap32[(r9)];
	r15 = (r15 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r9)] = r15;
	r8 = heap32[(r8+-1)];
	heap32[(g0)] = r8;
	free(i7);
	r8 = r4;
	r9 = r16;
}
else{
	r8 = r4;
	r9 = r16;
}
}
	r4 = r10;
_87: while(true){
	r15 = r4 << 2;
	r15 = (r8 + r15)|0;
	r4 = (r4 + 1)|0;
	r15 = r15 >> 2;
	heap32[(r15)] = 0;
if(!(r16 !=r4)) //_LBB235_68
{
break _69;
}
}
}
} while(0);
_90: do {
	if(r7 <=r16) //_LBB235_71
{
if(!(r7 >=r16)) //_LBB235_70
{
	r4 = heap32[(fp+-1)];
	if(r4 <r16) //_LBB235_74
{
	if(r16 !=0) //_LBB235_76
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r15 = heap32[(r4)];
	r19 = r16 << 2;
	r15 = (r15 + 1)|0;
	r19 = r19 | 3;
	heap32[(r4)] = r15;
	r4 = (r19 + 16)|0;
	heap32[(g0)] = r4;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB235_78
{
	r15 = 0;
	r19 = (r4 + 4)|0;
	r15 = (r15 - r19)|0;
	r15 = r15 & 15;
	r15 = (r4 + r15)|0;
	r19 = (r15 + 4)|0;
	r15 = r15 >> 2;
	heap32[(r15)] = r4;
	r4 = r19;
}
}
else{
	r4 = 0;
}
_100: do {
if(!(r7 <1)) //_LBB235_82
{
	r15 = r4;
	r19 = r6;
	r20 = r7;
_102: while(true){
	r21 = r19 >> 2;
	r20 = (r20 + -1)|0;
	r19 = (r19 + 4)|0;
	r22 = (r15 + 4)|0;
	r15 = r15 >> 2;
	r21 = heap32[(r21)];
	heap32[(r15)] = r21;
	r15 = r22;
if(!(r20 !=0)) //_LBB235_81
{
break _100;
}
}
}
} while(0);
if(!(r6 ==0)) //_LBB235_84
{
	r15 = gNumAlignedFree;
	r15 = r15 >> 2;
	r19 = heap32[(r15)];
	r19 = (r19 + 1)|0;
	r6 = r6 >> 2;
	heap32[(r15)] = r19;
	r6 = heap32[(r6+-1)];
	heap32[(g0)] = r6;
	free(i7);
}
	if(r7 <r16) //_LBB235_86
{
	r6 = r4;
	heap32[(fp+-1)] = r16;
}
else{
	r6 = r4;
	heap32[(fp+-1)] = r16;
break _90;
}
}
_111: while(true){
	r4 = r7 << 2;
	r4 = (r6 + r4)|0;
	r7 = (r7 + 1)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = 0;
if(!(r16 !=r7)) //_LBB235_87
{
break _90;
}
}
}
}
} while(0);
_114: do {
if(!(r16 <1)) //_LBB235_94
{
	r4 = r8;
	r7 = r16;
_116: while(true){
	r7 = (r7 + -1)|0;
	r15 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = -1;
	r4 = r15;
if(!(r7 !=0)) //_LBB235_90
{
break _116;
}
}
if(!(r16 <1)) //_LBB235_94
{
	r4 = r6;
	r7 = r16;
_120: while(true){
	r7 = (r7 + -1)|0;
	r15 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = -1;
	r4 = r15;
if(!(r7 !=0)) //_LBB235_93
{
break _114;
}
}
}
}
} while(0);
_123: do {
	if(r10 >0) //_LBB235_96
{
	r4 = (r16 + -1)|0;
	r7 = 0;
_125: while(true){
	r15 = r7 << 3;
	r15 = (r11 + r15)|0;
	r15 = r15 >> 2;
	r15 = heap32[(r15)];
	r19 = r15 << 15;
	r19 = r19 ^ -1;
	r15 = (r15 + r19)|0;
	r19 = r15 >> 10;
	r15 = r19 ^ r15;
	r15 = (r15 * 9)|0;
	r19 = r15 >> 6;
	r15 = r19 ^ r15;
	r19 = r15 << 11;
	r19 = r19 ^ -1;
	r15 = (r15 + r19)|0;
	r19 = r15 >> 16;
	r15 = r19 ^ r15;
	r15 = r15 & r4;
	r15 = r15 << 2;
	r15 = (r8 + r15)|0;
	r15 = r15 >> 2;
	r19 = r7 << 2;
	r19 = (r6 + r19)|0;
	r20 = heap32[(r15)];
	r19 = r19 >> 2;
	r21 = (r7 + 1)|0;
	heap32[(r19)] = r20;
	heap32[(r15)] = r7;
	r7 = r21;
	if(r10 ==r21) //_LBB235_95
{
break _123;
}
}
}
} while(0);
	r7 = r16;
	r10 = r16;
}
	r4 = (r16 + -1)|0;
	r15 = r14 & r4;
}
	r4 = r15 << 2;
	r4 = (r8 + r4)|0;
	r4 = r4 >> 2;
	r14 = (r6 + r18)|0;
	r14 = r14 >> 2;
	r15 = heap32[(r4)];
	heap32[(r14)] = r15;
	heap32[(r4)] = r5;
__label__ = 88;
}
if (__label__ == 88){
	r4 = r13 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+14)];
	heap32[(g0)] = r13;
	r5 = heap32[(fp+-2)];
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r16;
	r5 = r17;
}
	r13 = heap32[(r0+2)];
if(!(r13 >r12)) //_LBB235_7
{
break _10;
}
}
if(!(r11 ==0)) //_LBB235_104
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	r2 = r11 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
if(!(r3 ==0)) //_LBB235_106
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	r2 = r3 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
if(!(r6 ==0)) //_LBB235_108
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	r2 = r6 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
if(!(r8 ==0)) //_LBB235_110
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	r2 = r8 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
}
	return;
}

function _ZNK11btMatrix3x311getRotationER12btQuaternion(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r1+5)];
	f2 = heapFloat[(r1+10)];
	f3 = f0+f1;
	f3 = f3+f2;
	r2 = heap32[(fp+1)];
	f4 =                         0;
	if(f3 <=f4) //_LBB236_2
{
	if(f0 >=f1) //_LBB236_4
{
	r1 = 2;
	r3 = 0;
	r1 = f0 < f2 ? r1 : r3;
}
else{
	r1 = 2;
	r3 = 1;
	r1 = f1 < f2 ? r1 : r3;
}
	r3 = (r1 + 1)|0;
	r3 = (r3 % 3)|0;
	r4 = (r1 + 2)|0;
	r4 = (r4 % 3)|0;
	r5 = r1 << 4;
	r6 = r3 << 4;
	r7 = r4 << 4;
	r5 = (r0 + r5)|0;
	r1 = r1 << 2;
	r6 = (r0 + r6)|0;
	r3 = r3 << 2;
	r0 = (r0 + r7)|0;
	r4 = r4 << 2;
	r7 = (r5 + r1)|0;
	r8 = (r6 + r3)|0;
	r7 = r7 >> 2;
	r8 = r8 >> 2;
	r9 = (r0 + r4)|0;
	r9 = r9 >> 2;
	f0 = heapFloat[(r7)];
	f1 = heapFloat[(r8)];
	f2 = heapFloat[(r9)];
	f0 = f0-f1;
	f0 = f0-f2;
	f1 =                         1;
	f0 = f0+f1;
	r7 = sp + -16;
	heapFloat[(g0)] = f0;
	r8 = (r7 + r1)|0;
	f0 =                       0.5;
	sqrtf(i7);
	r9 = (r0 + r3)|0;
	r10 = (r6 + r4)|0;
	r8 = r8 >> 2;
	f2 = f_g0*f0;
	r9 = r9 >> 2;
	heapFloat[(r8)] = f2;
	r8 = r10 >> 2;
	f2 = heapFloat[(r9)];
	f3 = heapFloat[(r8)];
	f2 = f2-f3;
	f0 = f0/f_g0;
	r6 = (r6 + r1)|0;
	r8 = (r5 + r3)|0;
	r9 = r7 >> 2;
	f1 = f2*f0;
	r6 = r6 >> 2;
	heapFloat[(r9+3)] = f1;
	r8 = r8 >> 2;
	f1 = heapFloat[(r6)];
	f2 = heapFloat[(r8)];
	r3 = (r7 + r3)|0;
	f1 = f1+f2;
	r0 = (r0 + r1)|0;
	r1 = (r5 + r4)|0;
	r3 = r3 >> 2;
	f1 = f1*f0;
	r0 = r0 >> 2;
	heapFloat[(r3)] = f1;
	r1 = r1 >> 2;
	f1 = heapFloat[(r0)];
	f2 = heapFloat[(r1)];
	r0 = (r7 + r4)|0;
	f1 = f1+f2;
	r0 = r0 >> 2;
	f0 = f1*f0;
	heapFloat[(r0)] = f0;
	f1 = heapFloat[(fp+-4)];
	f3 = heapFloat[(r9+1)];
	f0 = heapFloat[(r9+2)];
	f2 = heapFloat[(r9+3)];
}
else{
	f0 =                         1;
	f0 = f3+f0;
	heapFloat[(g0)] = f0;
	r0 = sp + -16;
	f0 =                       0.5;
	sqrtf(i7);
	f2 = f_g0*f0;
	r0 = r0 >> 2;
	heapFloat[(r0+3)] = f2;
	f3 = heapFloat[(r1+9)];
	f4 = heapFloat[(r1+6)];
	f3 = f3-f4;
	f0 = f0/f_g0;
	f1 = f3*f0;
	heapFloat[(fp+-4)] = f1;
	f3 = heapFloat[(r1+2)];
	f4 = heapFloat[(r1+8)];
	f3 = f3-f4;
	f3 = f3*f0;
	heapFloat[(r0+1)] = f3;
	f4 = heapFloat[(r1+4)];
	f5 = heapFloat[(r1+1)];
	f4 = f4-f5;
	f0 = f4*f0;
	heapFloat[(r0+2)] = f0;
}
	r0 = r2 >> 2;
	heapFloat[(r0)] = f1;
	heapFloat[(r0+1)] = f3;
	heapFloat[(r0+2)] = f0;
	heapFloat[(r0+3)] = f2;
	return;
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
var __label__ = 0;
	i7 = sp + -80;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+4)];
	f1 = heapFloat[(r0+9)];
	f2 = heapFloat[(r0+6)];
	f3 = heapFloat[(r0+8)];
	f4 = heapFloat[(r0+5)];
	f5 = heapFloat[(r0+10)];
	f6 = f4*f5;
	f7 = f2*f1;
	f8 = f2*f3;
	f9 = f0*f5;
	f10 = heapFloat[(r0)];
	f11 = heapFloat[(r0+1)];
	f6 = f6-f7;
	f7 = f8-f9;
	f8 = f0*f1;
	f9 = f4*f3;
	f12 = heapFloat[(r0+2)];
	f8 = f8-f9;
	f9 = f10*f6;
	f13 = f11*f7;
	f9 = f9+f13;
	f13 = f12*f8;
	r0 = heap32[(fp+1)];
	f14 =                         1;
	f9 = f9+f13;
	r0 = r0 >> 2;
	f9 = f14/f9;
	f13 = f12*f1;
	f15 = f11*f5;
	f5 = f10*f5;
	f16 = f12*f3;
	f13 = f13-f15;
	f5 = f5-f16;
	f15 = f11*f2;
	f16 = f12*f4;
	f12 = f12*f0;
	f2 = f10*f2;
	f3 = f11*f3;
	f1 = f10*f1;
	f6 = f6*f9;
	f17 = heapFloat[(r0)];
	f7 = f7*f9;
	f18 = heapFloat[(r0+1)];
	f15 = f15-f16;
	f2 = f12-f2;
	f12 = f13*f9;
	f5 = f5*f9;
	f1 = f3-f1;
	f3 = f10*f4;
	f0 = f11*f0;
	f4 = f6*f17;
	f10 = f7*f18;
	f8 = f8*f9;
	f11 = heapFloat[(r0+2)];
	f13 = heapFloat[(r0+8)];
	f15 = f15*f9;
	f16 = heapFloat[(r0+4)];
	f19 = heapFloat[(r0+9)];
	f2 = f2*f9;
	f20 = heapFloat[(r0+5)];
	f0 = f3-f0;
	f1 = f1*f9;
	f3 = heapFloat[(r0+10)];
	f21 = heapFloat[(r0+6)];
	f22 = f12*f17;
	f23 = f5*f18;
	f4 = f4+f10;
	f10 = f8*f11;
	f0 = f0*f9;
	r0 = sp + -48;
	f9 = f15*f17;
	f17 = f2*f18;
	f18 = f22+f23;
	f22 = f1*f11;
	f4 = f4+f10;
	r1 = r0 >> 2;
	f9 = f9+f17;
	f10 = f0*f11;
	f11 = f18+f22;
	heapFloat[(fp+-12)] = f4;
	f4 = f6*f16;
	f17 = f7*f20;
	f9 = f9+f10;
	heapFloat[(r1+1)] = f11;
	heapFloat[(r1+2)] = f9;
	f9 = f12*f16;
	f10 = f5*f20;
	f4 = f4+f17;
	f11 = f8*f21;
	f16 = f15*f16;
	f17 = f2*f20;
	f9 = f9+f10;
	f10 = f1*f21;
	f4 = f4+f11;
	heap32[(r1+3)] = 0;
	f11 = f16+f17;
	f16 = f0*f21;
	f9 = f9+f10;
	heapFloat[(r1+4)] = f4;
	f4 = f6*f13;
	f6 = f7*f19;
	f7 = f11+f16;
	heapFloat[(r1+5)] = f9;
	heapFloat[(r1+6)] = f7;
	f7 = f12*f13;
	f5 = f5*f19;
	f4 = f4+f6;
	f6 = f8*f3;
	f8 = f15*f13;
	f2 = f2*f19;
	f5 = f7+f5;
	f1 = f1*f3;
	f4 = f4+f6;
	heap32[(r1+7)] = 0;
	f2 = f8+f2;
	f0 = f0*f3;
	f1 = f5+f1;
	heapFloat[(r1+8)] = f4;
	f0 = f2+f0;
	heapFloat[(r1+9)] = f1;
	heapFloat[(r1+10)] = f0;
	heap32[(r1+11)] = 0;
	r1 = sp + -64;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
	r0 = r1 >> 2;
	f0 = heapFloat[(fp+-16)];
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r0+2)];
	f3 = f0*f0;
	f4 = f1*f1;
	f5 = heapFloat[(r0+3)];
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	f4 = f5*f5;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f3 = f_g0;
	f4 =                         0;
	if(f3 !=f4) //_LBB245_2
{
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	f3 = f14/f3;
	f0 = f0*f3;
	f1 = f1*f3;
	heapFloat[(fp+-16)] = f0;
	f2 = f2*f3;
	heapFloat[(r0+1)] = f1;
	f4 =                        -1;
	f3 = f5*f3;
	heapFloat[(r0+2)] = f2;
	f4 = f3 < f4 ? f4 : f3;
	heapFloat[(r0+3)] = f3;
	f3 = f4 > f14 ? f14 : f4;
	heapFloat[(g0)] = f3;
	acosf(i7);
	r0 = r2 >> 2;
	f3 = f_g0+f_g0;
	r1 = r1 >> 2;
	heapFloat[(r0)] = f3;
	heapFloat[(r1)] = f0;
	f0 = f0*f0;
	f3 = f1*f1;
	heapFloat[(r1+1)] = f1;
	f0 = f0+f3;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(r1+2)] = f2;
	heap32[(r1+3)] = 0;
	f1 =   1.4210854715202004e-014;
	if(f0 >=f1) //_LBB245_4
{
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f14/f_g0;
	f1 = heapFloat[(r1)];
	f1 = f1*f0;
	heapFloat[(r1)] = f1;
	f1 = heapFloat[(r1+1)];
	f1 = f1*f0;
	heapFloat[(r1+1)] = f1;
	f1 = heapFloat[(r1+2)];
	f0 = f1*f0;
	heapFloat[(r1+2)] = f0;
	return;
}
else{
	heap32[(r1)] = 1065353216;
	heap32[(r1+1)] = 0;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 0;
	return;
}
}
else{
	r0 = _2E_str584;
	r1 = _2E_str685;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 188;
	_assert(i7);
}
}

function _ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
var __label__ = 0;
	i7 = sp + -528;var g0 = i7>>2; // save stack
	r0 = _2E_str1089;
	r1 = heap32[(fp+2)];
	heap32[(g0)] = r0;
	r0 = sp + -112;
	r1 = r1 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r2 = r0 >> 2;
	heap32[(fp+-28)] = heap32[(r1)];
	heap32[(r2+1)] = heap32[(r1+1)];
	heap32[(r2+2)] = heap32[(r1+2)];
	heap32[(r2+3)] = heap32[(r1+3)];
	heap32[(r2+4)] = heap32[(r1+4)];
	heap32[(r2+5)] = heap32[(r1+5)];
	heap32[(r2+6)] = heap32[(r1+6)];
	heap32[(r2+7)] = heap32[(r1+7)];
	heap32[(r2+8)] = heap32[(r1+8)];
	heap32[(r2+9)] = heap32[(r1+9)];
	heap32[(r2+10)] = heap32[(r1+10)];
	heap32[(r2+11)] = heap32[(r1+11)];
	heap32[(r2+12)] = heap32[(r1+12)];
	heap32[(r2+13)] = heap32[(r1+13)];
	r3 = heap32[(fp+3)];
	heap32[(r2+14)] = heap32[(r1+14)];
	r4 = sp + -176;
	r3 = r3 >> 2;
	heap32[(r2+15)] = heap32[(r1+15)];
	r2 = r4 >> 2;
	heap32[(fp+-44)] = heap32[(r3)];
	heap32[(r2+1)] = heap32[(r3+1)];
	heap32[(r2+2)] = heap32[(r3+2)];
	heap32[(r2+3)] = heap32[(r3+3)];
	heap32[(r2+4)] = heap32[(r3+4)];
	heap32[(r2+5)] = heap32[(r3+5)];
	heap32[(r2+6)] = heap32[(r3+6)];
	heap32[(r2+7)] = heap32[(r3+7)];
	heap32[(r2+8)] = heap32[(r3+8)];
	heap32[(r2+9)] = heap32[(r3+9)];
	heap32[(r2+10)] = heap32[(r3+10)];
	heap32[(r2+11)] = heap32[(r3+11)];
	heap32[(r2+12)] = heap32[(r3+12)];
	heap32[(r2+13)] = heap32[(r3+13)];
	heap32[(r2+14)] = heap32[(r3+14)];
	heap32[(r2+15)] = heap32[(r3+15)];
	r2 = sp + -24;
	r5 = sp + -28;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r5;
	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
	r2 = r2 >> 2;
	f0 = heapFloat[(r2+2)];
	f1 = heapFloat[(fp+-7)];
	f2 = heapFloat[(r2+1)];
	f3 = heapFloat[(fp+-6)];
	r2 = sp + -424;
	f3 = f3*f1;
	r5 = r2 >> 2;
	f2 = f2*f1;
	heapFloat[(fp+-106)] = f3;
	f0 = f0*f1;
	heapFloat[(r5+1)] = f2;
	heapFloat[(r5+2)] = f0;
	r6 = sp + -440;
	heap32[(r5+3)] = 0;
	r5 = r6 >> 2;
	heap32[(fp+-110)] = 0;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	r7 = sp + -504;
	heap32[(r5+3)] = 0;
	r5 = r7 >> 2;
	heap32[(fp+-126)] = 1065353216;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	heap32[(r5+4)] = 0;
	heap32[(r5+5)] = 1065353216;
	heap32[(r5+6)] = 0;
	heap32[(r5+7)] = 0;
	heap32[(r5+8)] = 0;
	heap32[(r5+9)] = 0;
	heap32[(r5+10)] = 1065353216;
	heap32[(r5+11)] = 0;
	heap32[(r5+12)] = 0;
	heap32[(r5+13)] = 0;
	heap32[(r5+14)] = 0;
	heap32[(r5+15)] = 0;
	r8 = sp + -48;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r8;
	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
	r8 = r8 >> 2;
	f0 = heapFloat[(fp+-12)];
	f1 = heapFloat[(r8+1)];
	f2 = heapFloat[(r8+2)];
	f3 = f0*f0;
	f4 = f1*f1;
	f5 = heapFloat[(r8+3)];
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	f4 = f5*f5;
	f6 =                         2;
	f3 = f3+f4;
	f3 = f6/f3;
	f4 = f2*f3;
	f6 = f1*f3;
	f7 = f1*f6;
	f2 = f2*f4;
	f8 = f7+f2;
	f9 =                         1;
	f10 = f0*f6;
	f11 = f5*f4;
	f8 = f9-f8;
	f12 = f0*f4;
	f6 = f5*f6;
	f13 = f10-f11;
	heapFloat[(fp+-126)] = f8;
	f3 = f0*f3;
	f8 = f12+f6;
	heapFloat[(r5+1)] = f13;
	f0 = f0*f3;
	heapFloat[(r5+2)] = f8;
	f2 = f0+f2;
	f8 = f10+f11;
	heap32[(r5+3)] = 0;
	f1 = f1*f4;
	f3 = f5*f3;
	f2 = f9-f2;
	heapFloat[(r5+4)] = f8;
	f4 = f1-f3;
	heapFloat[(r5+5)] = f2;
	heapFloat[(r5+6)] = f4;
	f2 = f12-f6;
	heap32[(r5+7)] = 0;
	f0 = f0+f7;
	f1 = f1+f3;
	heapFloat[(r5+8)] = f2;
	f0 = f9-f0;
	heapFloat[(r5+9)] = f1;
	heapFloat[(r5+10)] = f0;
	heap32[(r5+11)] = 0;
	r5 = heap32[(fp+1)];
	r8 = sp + -192;
	r9 = sp + -208;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r2;
	heap32[(g0+4)] = r8;
	heap32[(g0+5)] = r9;
	r2 = _ZTV21btSingleSweepCallback;
	r6 = sp + -408;
	r2 = (r2 + 8)|0;
	_ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(i7);
	r7 = r6 >> 2;
	heap32[(fp+-102)] = r2;
	heap32[(r7+9)] = heap32[(r1)];
	heap32[(r7+10)] = heap32[(r1+1)];
	heap32[(r7+11)] = heap32[(r1+2)];
	heap32[(r7+12)] = heap32[(r1+3)];
	heap32[(r7+13)] = heap32[(r1+4)];
	heap32[(r7+14)] = heap32[(r1+5)];
	heap32[(r7+15)] = heap32[(r1+6)];
	heap32[(r7+16)] = heap32[(r1+7)];
	heap32[(r7+17)] = heap32[(r1+8)];
	heap32[(r7+18)] = heap32[(r1+9)];
	heap32[(r7+19)] = heap32[(r1+10)];
	heap32[(r7+20)] = heap32[(r1+11)];
	f0 = heapFloat[(r1+12)];
	heapFloat[(r7+21)] = f0;
	f1 = heapFloat[(r1+13)];
	heapFloat[(r7+22)] = f1;
	f2 = heapFloat[(r1+14)];
	heapFloat[(r7+23)] = f2;
	heap32[(r7+24)] = heap32[(r1+15)];
	heap32[(r7+25)] = heap32[(r3)];
	heap32[(r7+26)] = heap32[(r3+1)];
	heap32[(r7+27)] = heap32[(r3+2)];
	heap32[(r7+28)] = heap32[(r3+3)];
	heap32[(r7+29)] = heap32[(r3+4)];
	heap32[(r7+30)] = heap32[(r3+5)];
	heap32[(r7+31)] = heap32[(r3+6)];
	heap32[(r7+32)] = heap32[(r3+7)];
	heap32[(r7+33)] = heap32[(r3+8)];
	heap32[(r7+34)] = heap32[(r3+9)];
	heap32[(r7+35)] = heap32[(r3+10)];
	heap32[(r7+36)] = heap32[(r3+11)];
	f3 = heapFloat[(r3+12)];
	heapFloat[(r7+37)] = f3;
	f4 = heapFloat[(r3+13)];
	heapFloat[(r7+38)] = f4;
	f5 = heapFloat[(r3+14)];
	heapFloat[(r7+39)] = f5;
	r1 = heap32[(fp)];
	heap32[(r7+40)] = heap32[(r3+15)];
	r3 = heap32[(fp+4)];
	heap32[(r7+45)] = r1;
	heap32[(r7+46)] = r3;
	f0 = f3-f0;
	f1 = f4-f1;
	heap32[(r7+47)] = heap32[(fp+5)];
	f2 = f5-f2;
	heap32[(r7+48)] = r5;
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f3 = f9/f_g0;
	f4 = f0*f3;
	f5 = f2*f3;
	f3 = f1*f3;
	f6 =                         0;
	if(f4 !=f6) //_LBB246_2
{
	f7 = f9/f4;
}
else{
	f7 =        999999984306749440;
}
	heapFloat[(r7+1)] = f7;
	if(f3 !=f6) //_LBB246_5
{
	f8 = f9/f3;
}
else{
	f8 =        999999984306749440;
}
	heapFloat[(r7+2)] = f8;
	if(f5 !=f6) //_LBB246_8
{
	f9 = f9/f5;
}
else{
	f9 =        999999984306749440;
}
	r3 = f7 < f6;
	r5 = f8 < f6;
	r3 = r3 & 1;
	heapFloat[(r7+3)] = f9;
	r10 = f9 < f6;
	f0 = f4*f0;
	f1 = f3*f1;
	r5 = r5 & 1;
	heap32[(r7+5)] = r3;
	f0 = f0+f1;
	f1 = f5*f2;
	r3 = r10 & 1;
	heap32[(r7+6)] = r5;
	f0 = f0+f1;
	heap32[(r7+7)] = r3;
	r1 = r1 >> 2;
	heapFloat[(r7+8)] = f0;
	r1 = heap32[(r1+20)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+6)];
	r0 = (r0 + 48)|0;
	r4 = (r4 + 48)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r6;
	heap32[(g0+4)] = r8;
	heap32[(g0+5)] = r9;
	r0 = _ZN15CProfileManager11CurrentNodeE;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r0 = r0 >> 2;
	heap32[(fp+-102)] = r2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_13: do {
if(!(r3 !=0)) //_LBB246_15
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB246_12
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB246_15
{
break _13;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -1472;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+4)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+1)];
	r3 = heap32[(fp)];
	r4 = heap32[(fp+1)];
	r5 = heap32[(fp+2)];
	r6 = heap32[(fp+3)];
	r7 = heap32[(fp+5)];
	r8 = heap32[(fp+6)];
	f0 = heapFloat[(fp+7)];
_1: do {
	if(r2 >19) //_LBB247_6
{
	r9 = (r2 + -21)|0;
	if(uint(r9) >uint(8)) //_LBB247_30
{
	if(r2 !=31) //_LBB247_5
{
break _1;
}
else{
	r0 = _2E_str1493;
	heap32[(g0)] = r0;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r0 = heap32[(r1+4)];
if(!(r0 <1)) //_LBB247_34
{
	r0 = 0;
_8: while(true){
	r2 = (r0 * 20)|0;
	r9 = heap32[(r1+6)];
	r2 = r2 << 2;
	r2 = (r9 + r2)|0;
	r2 = r2 >> 2;
	r9 = r7 >> 2;
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r9)];
	f3 = heapFloat[(r2+4)];
	f4 = heapFloat[(r9+1)];
	f5 = heapFloat[(r2+1)];
	f6 = heapFloat[(r2+5)];
	f7 = f1*f2;
	f8 = f3*f4;
	f9 = heapFloat[(r2+8)];
	f10 = heapFloat[(r9+2)];
	f11 = heapFloat[(r9+8)];
	f12 = heapFloat[(r2+2)];
	f13 = heapFloat[(r9+4)];
	f14 = heapFloat[(r2+12)];
	f15 = heapFloat[(r9+9)];
	f16 = heapFloat[(r2+6)];
	f17 = heapFloat[(r9+5)];
	f18 = heapFloat[(r2+13)];
	f19 = heapFloat[(r2+9)];
	f20 = heapFloat[(r9+10)];
	f21 = heapFloat[(r2+10)];
	f22 = heapFloat[(r9+6)];
	f23 = heapFloat[(r2+14)];
	f24 = f5*f2;
	f25 = f6*f4;
	f7 = f7+f8;
	f8 = f9*f10;
	r2 = heap32[(r2+16)];
	f26 = heapFloat[(r9+14)];
	f27 = heapFloat[(r9+13)];
	f28 = heapFloat[(r9+12)];
	r9 = sp + -1408;
	f29 = f12*f2;
	f30 = f16*f4;
	f24 = f24+f25;
	f25 = f19*f10;
	f7 = f7+f8;
	r10 = r9 >> 2;
	f8 = f29+f30;
	f29 = f21*f10;
	f24 = f24+f25;
	heapFloat[(fp+-352)] = f7;
	f7 = f1*f13;
	f25 = f3*f17;
	f8 = f8+f29;
	heapFloat[(r10+1)] = f24;
	heapFloat[(r10+2)] = f8;
	f8 = f5*f13;
	f24 = f6*f17;
	f7 = f7+f25;
	f25 = f9*f22;
	f29 = f12*f13;
	f30 = f16*f17;
	f8 = f8+f24;
	f24 = f19*f22;
	f7 = f7+f25;
	heap32[(r10+3)] = 0;
	f25 = f29+f30;
	f29 = f21*f22;
	f8 = f8+f24;
	heapFloat[(r10+4)] = f7;
	f1 = f1*f11;
	f3 = f3*f15;
	f7 = f25+f29;
	heapFloat[(r10+5)] = f8;
	heapFloat[(r10+6)] = f7;
	f5 = f5*f11;
	f6 = f6*f15;
	f1 = f1+f3;
	f3 = f9*f20;
	f7 = f12*f11;
	f8 = f16*f15;
	f5 = f5+f6;
	f6 = f19*f20;
	f1 = f1+f3;
	heap32[(r10+7)] = 0;
	f2 = f2*f14;
	f3 = f4*f18;
	f4 = f7+f8;
	f7 = f21*f20;
	f5 = f5+f6;
	heapFloat[(r10+8)] = f1;
	f1 = f13*f14;
	f6 = f17*f18;
	f2 = f2+f3;
	f3 = f10*f23;
	f4 = f4+f7;
	heapFloat[(r10+9)] = f5;
	f2 = f2+f3;
	heapFloat[(r10+10)] = f4;
	f3 = f11*f14;
	f4 = f15*f18;
	f1 = f1+f6;
	f5 = f22*f23;
	f1 = f1+f5;
	f3 = f3+f4;
	f4 = f20*f23;
	f2 = f2+f28;
	heap32[(r10+11)] = 0;
	f3 = f3+f4;
	f1 = f1+f27;
	heapFloat[(r10+12)] = f2;
	f2 = f3+f26;
	heapFloat[(r10+13)] = f1;
	heapFloat[(r10+14)] = f2;
	r11 = r6 >> 2;
	heap32[(r10+15)] = 0;
	r10 = heap32[(r11+48)];
	r12 = 1;
	heap32[(r11+48)] = r2;
	r13 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
	r14 = -1;
	heap16[(sp+-1424)>>1] = r12;
	r12 = sp + -1432;
	heap16[(sp+-1422)>>1] = r14;
	r13 = (r13 + 8)|0;
	r14 = r12 >> 2;
	heap32[(fp+-358)] = r13;
	heap32[(r14+3)] = r8;
	r15 = r8 >> 2;
	heap32[(r14+4)] = r0;
	heap32[(r14+1)] = heap32[(r15+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r6;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r9;
	heap32[(g0+6)] = r12;
	heapFloat[(g0+7)] = f0;
	_ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i7);
	r0 = (r0 + 1)|0;
	heap32[(r11+48)] = r10;
	heap32[(fp+-358)] = r13;
	r2 = heap32[(r1+4)];
if(!(r2 >r0)) //_LBB247_33
{
break _8;
}
}
}
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
	if(r3 !=0) //_LBB247_5
{
break _1;
}
else{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB247_37
{
	r1 = sp + -24;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-6)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB247_5
{
break _1;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
	return;
}
}
}
else{
	if(r2 !=21) //_LBB247_11
{
	r2 = r5 >> 2;
	r9 = r7 >> 2;
	f0 = heapFloat[(r9)];
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r9+4)];
	f3 = heapFloat[(r2+4)];
	r10 = r4 >> 2;
	f4 = heapFloat[(r2+1)];
	f5 = heapFloat[(r2+5)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r9+8)];
	f9 = heapFloat[(r2+8)];
	f10 = heapFloat[(r9+2)];
	f11 = heapFloat[(r2+2)];
	f12 = heapFloat[(r9+1)];
	f13 = heapFloat[(r2+12)];
	f14 = heapFloat[(r10+12)];
	f15 = heapFloat[(r9+6)];
	f16 = heapFloat[(r2+6)];
	f17 = heapFloat[(r9+5)];
	f18 = heapFloat[(r2+13)];
	f19 = heapFloat[(r10+13)];
	f20 = heapFloat[(r9+13)];
	f21 = heapFloat[(r2+10)];
	f22 = heapFloat[(r9+10)];
	f23 = heapFloat[(r2+9)];
	f24 = heapFloat[(r9+9)];
	f25 = heapFloat[(r2+14)];
	heapFloat[(fp+-360)] = f25;
	f26 = heapFloat[(r10+14)];
	f27 = heapFloat[(r9+14)];
	f28 = heapFloat[(r9+12)];
	heapFloat[(fp+-359)] = f28;
	f29 = f4*f0;
	f30 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	r2 = sp + -1056;
	f25 = f11*f0;
	f28 = f16*f2;
	f29 = f29+f30;
	f30 = f23*f8;
	f6 = f6+f7;
	r9 = r2 >> 2;
	f7 = f25+f28;
	f25 = f21*f8;
	f28 = f29+f30;
	heapFloat[(fp+-264)] = f6;
	f6 = f1*f12;
	f29 = f3*f17;
	f7 = f7+f25;
	heapFloat[(r9+1)] = f28;
	heapFloat[(r9+2)] = f7;
	f7 = f4*f12;
	f25 = f5*f17;
	f6 = f6+f29;
	f28 = f9*f24;
	f29 = f11*f12;
	f30 = f16*f17;
	f7 = f7+f25;
	f25 = f23*f24;
	f6 = f6+f28;
	heap32[(r9+3)] = 0;
	f28 = f29+f30;
	f29 = f21*f24;
	f7 = f7+f25;
	heapFloat[(r9+4)] = f6;
	f1 = f1*f10;
	f3 = f3*f15;
	f6 = f28+f29;
	heapFloat[(r9+5)] = f7;
	heapFloat[(r9+6)] = f6;
	f4 = f4*f10;
	f5 = f5*f15;
	f1 = f1+f3;
	f3 = f9*f22;
	f6 = f11*f10;
	f7 = f16*f15;
	f4 = f4+f5;
	f5 = f23*f22;
	f1 = f1+f3;
	heap32[(r9+7)] = 0;
	f3 = f6+f7;
	f6 = f21*f22;
	f4 = f4+f5;
	heapFloat[(r9+8)] = f1;
	f1 = f3+f6;
	heapFloat[(r9+9)] = f4;
	heapFloat[(r9+10)] = f1;
	heap32[(r9+11)] = 0;
	heap32[(r9+12)] = 0;
	heap32[(r9+13)] = 0;
	heap32[(r9+14)] = 0;
	heap32[(r9+15)] = 0;
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r9 = sp + -1280;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r7;
	heapFloat[(g0+5)] = f_g0;
	r4 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0;
	_ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i7);
	r4 = (r4 + 8)|0;
	r5 = r9 >> 2;
	heap32[(fp+-320)] = r4;
	heap32[(r5+52)] = r8;
	heap32[(r5+53)] = r6;
	r4 = r8 >> 2;
	heap32[(r5+54)] = r0;
	r6 = r3 >> 2;
	heap32[(r5+50)] = heap32[(r4+1)];
	r4 = heap32[(r6)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	f28 = heapFloat[(fp+-359)];
	f1 = -f28;
	r5 = sp + -1296;
	r6 = sp + -1312;
	f3 = f0*f14;
	f4 = f2*f19;
	f5 = f0*f1;
	f6 = f2*f20;
	f3 = f3+f4;
	f4 = f8*f26;
	f5 = f5-f6;
	f6 = f8*f27;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r6;
	f7 = f12*f14;
	f9 = f17*f19;
	f11 = f12*f1;
	f16 = f17*f20;
	f3 = f3+f4;
	f4 = f5-f6;
	f5 = f10*f14;
	f6 = f15*f19;
	f1 = f10*f1;
	f14 = f15*f20;
	f7 = f7+f9;
	f9 = f24*f26;
	f11 = f11-f16;
	f16 = f24*f27;
	f3 = f3+f4;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r2 = sp + -1328;
	f0 = f0*f13;
	f2 = f2*f18;
	f10 = f10*f13;
	f15 = f15*f18;
	f12 = f12*f13;
	f13 = f17*f18;
	f5 = f5+f6;
	f6 = f22*f26;
	f1 = f1-f14;
	f14 = f22*f27;
	f7 = f7+f9;
	f9 = f11-f16;
	f7 = f7+f9;
	f0 = f0+f2;
	f25 = heapFloat[(fp+-360)];
	f2 = f8*f25;
	f8 = f10+f15;
	f10 = f22*f25;
	f11 = f12+f13;
	f12 = f24*f25;
	r3 = r2 >> 2;
	heapFloat[(fp+-332)] = f3;
	f5 = f5+f6;
	f1 = f1-f14;
	f0 = f0+f2;
	f2 = f8+f10;
	f6 = f11+f12;
	f5 = f5+f1;
	heapFloat[(r3+1)] = f7;
	f0 = f0+f4;
	f1 = f2+f1;
	f2 = f6+f9;
	heapFloat[(r3+2)] = f5;
	heap32[(r3+3)] = 0;
	if(f0 <f3) //_LBB247_13
{
	heapFloat[(fp+-332)] = f0;
	f4 = f0;
}
else{
	f4 = f3;
}
	if(f2 <f7) //_LBB247_16
{
	heapFloat[(r3+1)] = f2;
	f6 = f2;
}
else{
	f6 = f7;
}
	if(f1 <f5) //_LBB247_19
{
	heapFloat[(r3+2)] = f1;
	f8 = f1;
}
else{
	f8 = f5;
}
	r4 = sp + -1344;
	r7 = r4 >> 2;
	heapFloat[(fp+-336)] = f3;
	heapFloat[(r7+1)] = f7;
	heapFloat[(r7+2)] = f5;
	heap32[(r7+3)] = 0;
	if(f3 <f0) //_LBB247_22
{
	heapFloat[(fp+-336)] = f0;
	f3 = f0;
}
	if(f7 <f2) //_LBB247_25
{
	heapFloat[(r7+1)] = f2;
	f7 = f2;
}
	if(f5 <f1) //_LBB247_28
{
	heapFloat[(r7+2)] = f1;
	f5 = f1;
}
	f0 = heapFloat[(fp+-324)];
	f0 = f4+f0;
	r5 = r5 >> 2;
	heapFloat[(fp+-332)] = f0;
	f0 = heapFloat[(r5+1)];
	f0 = f6+f0;
	heapFloat[(r3+1)] = f0;
	f0 = heapFloat[(r5+2)];
	f0 = f8+f0;
	heapFloat[(r3+2)] = f0;
	f0 = heapFloat[(fp+-328)];
	f0 = f3+f0;
	r3 = r6 >> 2;
	heapFloat[(fp+-336)] = f0;
	f0 = heapFloat[(r3+1)];
	f0 = f7+f0;
	heapFloat[(r7+1)] = f0;
	f0 = heapFloat[(r3+2)];
	f0 = f5+f0;
	heapFloat[(r7+2)] = f0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+15)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}
else{
	r2 = r7 >> 2;
	r9 = r4 >> 2;
	f0 = heapFloat[(r2+12)];
	f0 = -f0;
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r9+12)];
	f3 = heapFloat[(r2+4)];
	f4 = heapFloat[(r2+13)];
	f5 = heapFloat[(r9+13)];
	f6 = heapFloat[(r2+1)];
	f7 = heapFloat[(r2+5)];
	f8 = f1*f2;
	f9 = f3*f5;
	f10 = f1*f0;
	f11 = f3*f4;
	f12 = heapFloat[(r2+8)];
	f13 = heapFloat[(r2+14)];
	f14 = heapFloat[(r9+14)];
	f15 = heapFloat[(r2+9)];
	f16 = heapFloat[(r2+2)];
	f17 = heapFloat[(r2+6)];
	f18 = f6*f2;
	f19 = f7*f5;
	f20 = f6*f0;
	f21 = f7*f4;
	f8 = f8+f9;
	f9 = f12*f14;
	f10 = f10-f11;
	f11 = f12*f13;
	f22 = heapFloat[(r2+10)];
	f2 = f16*f2;
	f5 = f17*f5;
	f0 = f16*f0;
	f4 = f17*f4;
	f18 = f18+f19;
	f19 = f15*f14;
	f20 = f20-f21;
	f21 = f15*f13;
	f8 = f8+f9;
	f9 = f10-f11;
	r2 = sp + -656;
	f2 = f2+f5;
	f5 = f22*f14;
	f0 = f0-f4;
	f4 = f22*f13;
	f10 = f18+f19;
	f11 = f20-f21;
	f8 = f8+f9;
	r9 = r2 >> 2;
	f2 = f2+f5;
	f0 = f0-f4;
	f4 = f10+f11;
	heapFloat[(fp+-164)] = f8;
	f2 = f2+f0;
	heapFloat[(r9+1)] = f4;
	heapFloat[(r9+2)] = f2;
	r10 = r5 >> 2;
	heap32[(r9+3)] = 0;
	f2 = heapFloat[(r10+12)];
	f4 = heapFloat[(r10+13)];
	f5 = heapFloat[(r10+14)];
	f8 = f1*f2;
	f10 = f3*f4;
	f13 = f6*f2;
	f14 = f7*f4;
	f8 = f8+f10;
	f10 = f12*f5;
	f8 = f8+f10;
	f2 = f16*f2;
	f4 = f17*f4;
	f10 = f13+f14;
	f13 = f15*f5;
	r9 = sp + -672;
	f10 = f10+f13;
	f2 = f2+f4;
	f4 = f22*f5;
	f5 = f8+f9;
	f2 = f2+f4;
	r11 = r9 >> 2;
	f4 = f10+f11;
	heapFloat[(fp+-168)] = f5;
	f0 = f2+f0;
	heapFloat[(r11+1)] = f4;
	heapFloat[(r11+2)] = f0;
	heap32[(r11+3)] = 0;
	f0 = heapFloat[(r10)];
	f2 = heapFloat[(r10+4)];
	f4 = heapFloat[(r10+1)];
	f5 = heapFloat[(r10+5)];
	f8 = heapFloat[(r10+8)];
	f9 = f0*f1;
	f10 = f2*f3;
	f11 = heapFloat[(r10+2)];
	f13 = heapFloat[(r10+6)];
	f14 = heapFloat[(r10+10)];
	f18 = heapFloat[(r10+9)];
	f19 = f4*f1;
	f20 = f5*f3;
	f9 = f9+f10;
	f10 = f8*f12;
	r10 = sp + -736;
	f1 = f11*f1;
	f3 = f13*f3;
	f19 = f19+f20;
	f20 = f18*f12;
	f9 = f9+f10;
	r11 = r10 >> 2;
	f1 = f1+f3;
	f3 = f14*f12;
	f10 = f19+f20;
	heapFloat[(fp+-184)] = f9;
	f9 = f0*f6;
	f12 = f2*f7;
	f1 = f1+f3;
	heapFloat[(r11+1)] = f10;
	heapFloat[(r11+2)] = f1;
	f1 = f4*f6;
	f3 = f5*f7;
	f9 = f9+f12;
	f10 = f8*f15;
	f6 = f11*f6;
	f7 = f13*f7;
	f1 = f1+f3;
	f3 = f18*f15;
	f9 = f9+f10;
	heap32[(r11+3)] = 0;
	f6 = f6+f7;
	f7 = f14*f15;
	f1 = f1+f3;
	heapFloat[(r11+4)] = f9;
	f0 = f0*f16;
	f2 = f2*f17;
	f3 = f6+f7;
	heapFloat[(r11+5)] = f1;
	heapFloat[(r11+6)] = f3;
	f1 = f4*f16;
	f3 = f5*f17;
	f0 = f0+f2;
	f2 = f8*f22;
	f4 = f11*f16;
	f5 = f13*f17;
	f1 = f1+f3;
	f3 = f18*f22;
	f0 = f0+f2;
	heap32[(r11+7)] = 0;
	f2 = f4+f5;
	f4 = f14*f22;
	f1 = f1+f3;
	heapFloat[(r11+8)] = f0;
	f0 = f2+f4;
	heapFloat[(r11+9)] = f1;
	heapFloat[(r11+10)] = f0;
	heap32[(r11+11)] = 0;
	heap32[(r11+12)] = 0;
	heap32[(r11+13)] = 0;
	heap32[(r11+14)] = 0;
	heap32[(r11+15)] = 0;
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r11 = sp + -960;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r7;
	heapFloat[(g0+5)] = f_g0;
	r4 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback;
	_ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i7);
	r4 = (r4 + 8)|0;
	r5 = r11 >> 2;
	heap32[(fp+-240)] = r4;
	heap32[(r5+52)] = r8;
	heap32[(r5+53)] = r6;
	r4 = r8 >> 2;
	heap32[(r5+54)] = r0;
	r0 = r3 >> 2;
	heap32[(r5+50)] = heap32[(r4+1)];
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+2)];
	r4 = sp + -976;
	r5 = sp + -992;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	r0 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback;
	r3 = sp + -16;
	r6 = heap32[(r1+12)];
	r0 = (r0 + 8)|0;
	r7 = r3 >> 2;
	heap32[(fp+-4)] = r0;
	heap32[(r7+1)] = r6;
	heap32[(r7+2)] = r11;
	r0 = heap32[(r1+13)];
	r1 = heapU8[r0+60];
	if(r1 ==0) //_LBB247_10
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r9;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r5;
	_ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
	return;
}
else{
	r1 = r0 >> 2;
	r1 = heap32[(r1+14)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r9;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = r1;
	_ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
	return;
}
}
}
}
else{
	r1 = _ZTVN12btConvexCast10CastResultE;
	r2 = sp + -200;
	r1 = (r1 + 8)|0;
	r9 = r2 >> 2;
	heap32[(fp+-50)] = r1;
	heap32[(r9+42)] = 0;
	r1 = sp + -560;
	r10 = r8 >> 2;
	heapFloat[(r9+43)] = f0;
	r11 = r1 >> 2;
	heap32[(r9+41)] = heap32[(r10+1)];
	r12 = _ZTV30btGjkEpaPenetrationDepthSolver;
	r13 = 0;
	heap32[(r11+77)] = 953267991;
	r11 = _ZTV27btContinuousConvexCollision;
	r12 = (r12 + 8)|0;
	heap8[sp+-228] = r13;
	r13 = sp + -592;
	r11 = (r11 + 8)|0;
	heap32[(fp+-142)] = r12;
	r12 = r13 >> 2;
	heap32[(fp+-148)] = r11;
	r11 = sp + -568;
	heap32[(r12+1)] = r1;
	heap32[(r12+2)] = r11;
	heap32[(r12+3)] = r3;
	heap32[(r12+4)] = r0;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r2;
	_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB247_5
{
	f0 = heapFloat[(r9+33)];
	f1 = heapFloat[(r9+34)];
	f2 = heapFloat[(r9+35)];
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	f1 =   9.9999997473787516e-005;
if(!(f0 <=f1)) //_LBB247_5
{
	f1 = heapFloat[(r9+41)];
	f2 = heapFloat[(r10+1)];
if(!(f1 >=f2)) //_LBB247_5
{
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	f2 = heapFloat[(r9+33)];
	f0 = f1/f_g0;
	f1 = f2*f0;
	heapFloat[(r9+33)] = f1;
	f2 = heapFloat[(r9+34)];
	f2 = f2*f0;
	heapFloat[(r9+34)] = f2;
	f3 = heapFloat[(r9+35)];
	f0 = f3*f0;
	heapFloat[(r9+35)] = f0;
	r0 = sp + -640;
	f3 = heapFloat[(r9+41)];
	r1 = r0 >> 2;
	heap32[(fp+-160)] = r6;
	heap32[(r1+1)] = 0;
	heapFloat[(r1+2)] = f1;
	heapFloat[(r1+3)] = f2;
	heapFloat[(r1+4)] = f0;
	heap32[(r1+5)] = heap32[(r9+36)];
	heap32[(r1+6)] = heap32[(r9+37)];
	heap32[(r1+7)] = heap32[(r9+38)];
	heap32[(r1+8)] = heap32[(r9+39)];
	heap32[(r1+9)] = heap32[(r9+40)];
	heapFloat[(r1+10)] = f3;
	r1 = heap32[(r10)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+3)];
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
}
}
}
} while(0);
	return;
}

function _ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
var __label__ = 0;
	i7 = sp + -1120;var g0 = i7>>2; // save stack
	r0 = sp + -104;
	r1 = r0 >> 2;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 1065353216;
	heap32[(r1+4)] = 1065353216;
	r2 = _ZTV13btSphereShape;
	heap32[(r1+5)] = 1065353216;
	r2 = (r2 + 8)|0;
	heap32[(r1+6)] = 0;
	heap32[(fp+-26)] = r2;
	heap32[(r1+1)] = 8;
	r2 = heap32[(fp+3)];
	heap32[(r1+7)] = 0;
	r3 = r2 >> 2;
	heap32[(r1+11)] = 0;
	r1 = heap32[(r3+1)];
	r4 = heap32[(fp)];
	r5 = heap32[(fp+1)];
	r6 = heap32[(fp+2)];
	r7 = heap32[(fp+4)];
	r8 = heap32[(fp+5)];
	if(r1 >19) //_LBB248_6
{
	r0 = (r1 + -21)|0;
	if(uint(r0) >uint(8)) //_LBB248_25
{
if(!(r1 !=31)) //_LBB248_29
{
	r0 = heap32[(r3+4)];
if(!(r0 <1)) //_LBB248_29
{
	r0 = 0;
_8: while(true){
	r1 = (r0 * 20)|0;
	r2 = heap32[(r3+6)];
	r1 = r1 << 2;
	r1 = (r2 + r1)|0;
	r1 = r1 >> 2;
	r2 = r7 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r1+4)];
	f3 = heapFloat[(r2+1)];
	f4 = heapFloat[(r1+1)];
	f5 = heapFloat[(r1+5)];
	f6 = f0*f1;
	f7 = f2*f3;
	f8 = heapFloat[(r1+8)];
	f9 = heapFloat[(r2+2)];
	f10 = heapFloat[(r2+8)];
	f11 = heapFloat[(r1+2)];
	f12 = heapFloat[(r2+4)];
	f13 = heapFloat[(r1+12)];
	f14 = heapFloat[(r2+9)];
	f15 = heapFloat[(r1+6)];
	f16 = heapFloat[(r2+5)];
	f17 = heapFloat[(r1+13)];
	f18 = heapFloat[(r1+9)];
	f19 = heapFloat[(r2+10)];
	f20 = heapFloat[(r1+10)];
	f21 = heapFloat[(r2+6)];
	f22 = heapFloat[(r1+14)];
	f23 = f4*f1;
	f24 = f5*f3;
	f6 = f6+f7;
	f7 = f8*f9;
	r1 = heap32[(r1+16)];
	f25 = heapFloat[(r2+14)];
	f26 = heapFloat[(r2+13)];
	f27 = heapFloat[(r2+12)];
	r2 = sp + -1056;
	f28 = f11*f1;
	f29 = f15*f3;
	f23 = f23+f24;
	f24 = f18*f9;
	f6 = f6+f7;
	r9 = r2 >> 2;
	f7 = f28+f29;
	f28 = f20*f9;
	f23 = f23+f24;
	heapFloat[(fp+-264)] = f6;
	f6 = f0*f12;
	f24 = f2*f16;
	f7 = f7+f28;
	heapFloat[(r9+1)] = f23;
	heapFloat[(r9+2)] = f7;
	f7 = f4*f12;
	f23 = f5*f16;
	f6 = f6+f24;
	f24 = f8*f21;
	f28 = f11*f12;
	f29 = f15*f16;
	f7 = f7+f23;
	f23 = f18*f21;
	f6 = f6+f24;
	heap32[(r9+3)] = 0;
	f24 = f28+f29;
	f28 = f20*f21;
	f7 = f7+f23;
	heapFloat[(r9+4)] = f6;
	f0 = f0*f10;
	f2 = f2*f14;
	f6 = f24+f28;
	heapFloat[(r9+5)] = f7;
	heapFloat[(r9+6)] = f6;
	f4 = f4*f10;
	f5 = f5*f14;
	f0 = f0+f2;
	f2 = f8*f19;
	f6 = f11*f10;
	f7 = f15*f14;
	f4 = f4+f5;
	f5 = f18*f19;
	f0 = f0+f2;
	heap32[(r9+7)] = 0;
	f1 = f1*f13;
	f2 = f3*f17;
	f3 = f6+f7;
	f6 = f20*f19;
	f4 = f4+f5;
	heapFloat[(r9+8)] = f0;
	f0 = f12*f13;
	f5 = f16*f17;
	f1 = f1+f2;
	f2 = f9*f22;
	f3 = f3+f6;
	heapFloat[(r9+9)] = f4;
	f1 = f1+f2;
	heapFloat[(r9+10)] = f3;
	f2 = f10*f13;
	f3 = f14*f17;
	f0 = f0+f5;
	f4 = f21*f22;
	f0 = f0+f4;
	f2 = f2+f3;
	f3 = f19*f22;
	f1 = f1+f27;
	heap32[(r9+11)] = 0;
	f2 = f2+f3;
	f0 = f0+f26;
	heapFloat[(r9+12)] = f1;
	f1 = f2+f25;
	heapFloat[(r9+13)] = f0;
	heapFloat[(r9+14)] = f1;
	r10 = r6 >> 2;
	heap32[(r9+15)] = 0;
	r9 = sp + -1088;
	r11 = heap32[(r10+48)];
	r12 = r9 >> 2;
	heap32[(r10+48)] = r1;
	r13 = 1;
	heap32[(r12+2)] = 0;
	r14 = -1;
	heap16[(sp+-1076)>>1] = r13;
	heap16[(sp+-1074)>>1] = r14;
	r13 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
	heap32[(r12+4)] = 0;
	r13 = (r13 + 8)|0;
	heap32[(fp+-272)] = r13;
	heap32[(r12+5)] = r8;
	r14 = r8 >> 2;
	heap32[(r12+6)] = r0;
	heap32[(r12+1)] = heap32[(r14+1)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r9;
	_ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i7);
	r0 = (r0 + 1)|0;
	heap32[(r10+48)] = r11;
	heap32[(fp+-272)] = r13;
	r1 = heap32[(r3+4)];
if(!(r1 >r0)) //_LBB248_28
{
break _8;
}
}
}
}
	return;
}
else{
	if(r1 !=21) //_LBB248_12
{
	r1 = r7 >> 2;
	r4 = r4 >> 2;
	f0 = heapFloat[(r1+12)];
	f1 = heapFloat[(r1+13)];
	f2 = heapFloat[(r1+4)];
	f3 = heapFloat[(r4+13)];
	f4 = heapFloat[(r1)];
	f5 = -f0;
	f6 = heapFloat[(r4+12)];
	f7 = heapFloat[(r1+5)];
	f8 = heapFloat[(r1+1)];
	f9 = f4*f6;
	f10 = f2*f3;
	f11 = f4*f5;
	f12 = f2*f1;
	f13 = heapFloat[(r1+14)];
	f14 = heapFloat[(r1+8)];
	f15 = heapFloat[(r4+14)];
	r4 = r5 >> 2;
	f16 = heapFloat[(r1+9)];
	f17 = heapFloat[(r1+6)];
	f18 = heapFloat[(r1+2)];
	r5 = r8 >> 2;
	f9 = f9+f10;
	f10 = f14*f15;
	f11 = f11-f12;
	f12 = f14*f13;
	f19 = f8*f6;
	f20 = f7*f3;
	f21 = f8*f5;
	f22 = f7*f1;
	f23 = heapFloat[(r4+12)];
	f24 = heapFloat[(r4+13)];
	f25 = heapFloat[(r1+10)];
	f26 = heapFloat[(r4+14)];
	r4 = sp + -960;
	r7 = heap32[(r5+4)];
	f9 = f9+f10;
	f10 = f11-f12;
	f6 = f18*f6;
	f3 = f17*f3;
	f11 = f19+f20;
	f12 = f16*f15;
	f5 = f18*f5;
	f19 = f17*f1;
	f20 = f21-f22;
	f21 = f16*f13;
	f9 = f9+f10;
	f3 = f6+f3;
	f6 = f25*f15;
	f11 = f11+f12;
	f12 = f20-f21;
	r0 = r4 >> 2;
	f5 = f5-f19;
	f15 = f25*f13;
	f11 = f11+f12;
	heapFloat[(r0+1)] = f9;
	f19 = f4*f23;
	f20 = f2*f24;
	f3 = f3+f6;
	f5 = f5-f15;
	f3 = f3+f5;
	heapFloat[(r0+2)] = f11;
	f6 = f19+f20;
	f15 = f14*f26;
	f19 = f8*f23;
	f20 = f7*f24;
	f6 = f6+f15;
	heapFloat[(r0+3)] = f3;
	f15 = f18*f23;
	f21 = f17*f24;
	f19 = f19+f20;
	f20 = f16*f26;
	f6 = f6+f10;
	f10 = f19+f20;
	heap32[(r0+4)] = 0;
	f15 = f15+f21;
	f19 = f25*f26;
	f15 = f15+f19;
	f10 = f10+f12;
	heapFloat[(r0+5)] = f6;
	f5 = f15+f5;
	heapFloat[(r0+6)] = f10;
	heapFloat[(r0+7)] = f5;
	r9 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0;
	heap32[(r0+8)] = 0;
	r9 = (r9 + 8)|0;
	heap32[(r0+9)] = r7;
	heap32[(fp+-240)] = r9;
	heap32[(r0+11)] = r8;
	heap32[(r0+12)] = r6;
	heap32[(r0+13)] = r2;
	heapFloat[(r0+14)] = f4;
	heapFloat[(r0+15)] = f8;
	heapFloat[(r0+16)] = f18;
	heap32[(r0+17)] = heap32[(r1+3)];
	heapFloat[(r0+18)] = f2;
	heapFloat[(r0+19)] = f7;
	heapFloat[(r0+20)] = f17;
	heap32[(r0+21)] = heap32[(r1+7)];
	heapFloat[(r0+22)] = f14;
	heapFloat[(r0+23)] = f16;
	heapFloat[(r0+24)] = f25;
	heap32[(r0+25)] = heap32[(r1+11)];
	heapFloat[(r0+26)] = f0;
	heapFloat[(r0+27)] = f1;
	heapFloat[(r0+28)] = f13;
	heap32[(r0+29)] = heap32[(r1+15)];
	r1 = sp + -976;
	heap32[(r0+10)] = heap32[(r5+1)];
	r5 = r1 >> 2;
	heapFloat[(fp+-244)] = f9;
	heapFloat[(r5+1)] = f11;
	heapFloat[(r5+2)] = f3;
	heap32[(r5+3)] = 0;
if(!(f6 >=f9)) //_LBB248_14
{
	heapFloat[(fp+-244)] = f6;
}
if(!(f10 >=f11)) //_LBB248_16
{
	heapFloat[(r5+1)] = f10;
}
if(!(f5 >=f3)) //_LBB248_18
{
	heapFloat[(r5+2)] = f5;
}
	r5 = sp + -992;
	r6 = r5 >> 2;
	heapFloat[(fp+-248)] = f9;
	heapFloat[(r6+1)] = f11;
	heapFloat[(r6+2)] = f3;
	heap32[(r6+3)] = 0;
if(!(f9 >=f6)) //_LBB248_20
{
	heapFloat[(fp+-248)] = f6;
}
if(!(f11 >=f10)) //_LBB248_22
{
	heapFloat[(r6+1)] = f10;
}
if(!(f3 >=f5)) //_LBB248_24
{
	heapFloat[(r6+2)] = f5;
}
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+15)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r5;
	r1 = _ZTV18btTriangleCallback;
	r1 = (r1 + 8)|0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	heap32[(fp+-240)] = r1;
	return;
}
else{
	r1 = r7 >> 2;
	r4 = r4 >> 2;
	f0 = heapFloat[(r1+12)];
	f1 = heapFloat[(r1+13)];
	f2 = heapFloat[(r1+4)];
	f3 = heapFloat[(r4+13)];
	f4 = heapFloat[(r1)];
	f5 = heapFloat[(r4+12)];
	f6 = -f0;
	f7 = heapFloat[(r1+5)];
	f8 = heapFloat[(r1+1)];
	f9 = heapFloat[(r1+14)];
	f10 = heapFloat[(r1+8)];
	f11 = heapFloat[(r4+14)];
	f12 = f4*f5;
	f13 = f2*f3;
	f14 = f4*f6;
	f15 = f2*f1;
	f16 = heapFloat[(r1+9)];
	f17 = heapFloat[(r1+6)];
	f18 = heapFloat[(r1+2)];
	f19 = f8*f5;
	f20 = f7*f3;
	f21 = f8*f6;
	f22 = f7*f1;
	f12 = f12+f13;
	f13 = f10*f11;
	f14 = f14-f15;
	f15 = f10*f9;
	f23 = heapFloat[(r1+10)];
	f5 = f18*f5;
	f3 = f17*f3;
	f6 = f18*f6;
	f24 = f17*f1;
	f19 = f19+f20;
	f20 = f16*f11;
	f21 = f21-f22;
	f22 = f16*f9;
	f12 = f12+f13;
	f13 = f14-f15;
	r4 = sp + -704;
	f12 = f12+f13;
	f3 = f5+f3;
	f5 = f23*f11;
	f6 = f6-f24;
	f11 = f23*f9;
	f14 = f19+f20;
	f15 = f21-f22;
	r7 = r4 >> 2;
	heapFloat[(fp+-176)] = f12;
	f14 = f14+f15;
	f3 = f3+f5;
	f5 = f6-f11;
	heapFloat[(r7+1)] = f14;
	f3 = f3+f5;
	heapFloat[(r7+2)] = f3;
	r5 = r5 >> 2;
	heap32[(r7+3)] = 0;
	f6 = heapFloat[(r5+12)];
	f11 = heapFloat[(r5+13)];
	f19 = heapFloat[(r5+14)];
	f20 = f4*f6;
	f21 = f2*f11;
	f22 = f8*f6;
	f24 = f7*f11;
	f20 = f20+f21;
	f21 = f10*f19;
	f20 = f20+f21;
	f6 = f18*f6;
	f11 = f17*f11;
	f21 = f22+f24;
	f22 = f16*f19;
	r5 = sp + -720;
	f21 = f21+f22;
	f13 = f20+f13;
	f6 = f6+f11;
	f11 = f23*f19;
	f6 = f6+f11;
	r7 = r5 >> 2;
	heapFloat[(fp+-180)] = f13;
	f11 = f21+f15;
	heapFloat[(r7+1)] = f11;
	f5 = f6+f5;
	heapFloat[(r7+2)] = f5;
	r0 = sp + -840;
	r9 = r8 >> 2;
	heap32[(r7+3)] = 0;
	r7 = r0 >> 2;
	r10 = heap32[(r9+4)];
	heapFloat[(r7+1)] = f12;
	heapFloat[(r7+2)] = f14;
	heapFloat[(r7+3)] = f3;
	heap32[(r7+4)] = 0;
	heapFloat[(r7+5)] = f13;
	heapFloat[(r7+6)] = f11;
	heapFloat[(r7+7)] = f5;
	r11 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback;
	heap32[(r7+8)] = 0;
	r11 = (r11 + 8)|0;
	heap32[(r7+9)] = r10;
	heap32[(fp+-210)] = r11;
	heap32[(r7+11)] = r8;
	heap32[(r7+12)] = r6;
	heap32[(r7+13)] = r2;
	heapFloat[(r7+14)] = f4;
	heapFloat[(r7+15)] = f8;
	heapFloat[(r7+16)] = f18;
	heap32[(r7+17)] = heap32[(r1+3)];
	heapFloat[(r7+18)] = f2;
	heapFloat[(r7+19)] = f7;
	heapFloat[(r7+20)] = f17;
	heap32[(r7+21)] = heap32[(r1+7)];
	heapFloat[(r7+22)] = f10;
	heapFloat[(r7+23)] = f16;
	heapFloat[(r7+24)] = f23;
	heap32[(r7+25)] = heap32[(r1+11)];
	heapFloat[(r7+26)] = f0;
	heapFloat[(r7+27)] = f1;
	heapFloat[(r7+28)] = f9;
	heap32[(r7+29)] = heap32[(r1+15)];
	r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
	heap32[(r7+10)] = heap32[(r9+1)];
	r2 = sp + -48;
	r6 = heap32[(r3+12)];
	r1 = (r1 + 8)|0;
	r7 = r2 >> 2;
	heap32[(fp+-12)] = r1;
	heap32[(r7+1)] = r6;
	heap32[(r7+2)] = r0;
	r1 = heap32[(r3+13)];
	r3 = sp + -32;
	r6 = r3 >> 2;
	heap32[(fp+-8)] = 0;
	heap32[(r6+1)] = 0;
	heap32[(r6+2)] = 0;
	r7 = sp + -16;
	heap32[(r6+3)] = 0;
	r6 = r7 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r6+1)] = 0;
	heap32[(r6+2)] = 0;
	heap32[(r6+3)] = 0;
	r6 = heapU8[r1+60];
	if(r6 ==0) //_LBB248_10
{
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r3;
	_ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
}
else{
	r6 = r1 >> 2;
	r6 = heap32[(r6+14)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r3;
	heap32[(g0+6)] = r6;
	_ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
}
	r1 = _ZTV18btTriangleCallback;
	r1 = (r1 + 8)|0;
	heap32[(fp+-210)] = r1;
	return;
}
}
}
else{
	r1 = _ZTVN12btConvexCast10CastResultE;
	r3 = sp + -280;
	r1 = (r1 + 8)|0;
	r9 = r3 >> 2;
	heap32[(fp+-70)] = r1;
	heap32[(r9+42)] = 0;
	r1 = sp + -640;
	r10 = r8 >> 2;
	heap32[(r9+43)] = 0;
	r11 = r1 >> 2;
	heap32[(r9+41)] = heap32[(r10+1)];
	r12 = _ZTV22btSubsimplexConvexCast;
	r13 = 0;
	heap32[(r11+77)] = 953267991;
	r11 = sp + -656;
	r12 = (r12 + 8)|0;
	heap8[sp+-308] = r13;
	r13 = r11 >> 2;
	heap32[(fp+-164)] = r12;
	heap32[(r13+1)] = r1;
	heap32[(r13+2)] = r0;
	heap32[(r13+3)] = r2;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r3;
	_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
	r1 = r_g0;
if(!(r1 ==0)) //_LBB248_5
{
	f0 = heapFloat[(r9+33)];
	f1 = heapFloat[(r9+34)];
	f2 = heapFloat[(r9+35)];
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	f4 =   9.9999997473787516e-005;
if(!(f3 <=f4)) //_LBB248_5
{
	f3 = heapFloat[(r9+41)];
	f4 = heapFloat[(r10+1)];
if(!(f3 >=f4)) //_LBB248_5
{
	r1 = r4 >> 2;
	f4 = heapFloat[(r1+4)];
	f5 = heapFloat[(r1)];
	f6 = heapFloat[(r1+5)];
	f7 = heapFloat[(r1+1)];
	f8 = heapFloat[(r1+8)];
	f9 = heapFloat[(r1+9)];
	f4 = f4*f0;
	f6 = f6*f1;
	f10 = heapFloat[(r1+6)];
	f11 = heapFloat[(r1+2)];
	f5 = f5*f0;
	f7 = f7*f1;
	f12 = heapFloat[(r1+10)];
	f0 = f8*f0;
	f1 = f9*f1;
	f4 = f4+f6;
	f6 = f10*f2;
	f5 = f5+f7;
	f7 = f11*f2;
	f4 = f4+f6;
	f5 = f5+f7;
	f0 = f0+f1;
	f1 = f12*f2;
	f0 = f0+f1;
	f1 = f5*f5;
	f2 = f4*f4;
	heap32[(r9+36)] = 0;
	f1 = f1+f2;
	f2 = f0*f0;
	f1 = f1+f2;
	heapFloat[(g0)] = f1;
	f1 =                         1;
	sqrtf(i7);
	f1 = f1/f_g0;
	f2 = f5*f1;
	f4 = f4*f1;
	heapFloat[(r9+33)] = f2;
	f0 = f0*f1;
	heapFloat[(r9+34)] = f4;
	r1 = sp + -688;
	heapFloat[(r9+35)] = f0;
	r2 = r1 >> 2;
	heap32[(fp+-172)] = r6;
	heap32[(r2+1)] = 0;
	heapFloat[(r2+2)] = f2;
	heapFloat[(r2+3)] = f4;
	heapFloat[(r2+4)] = f0;
	heap32[(r2+5)] = 0;
	heapFloat[(r2+6)] = f3;
	r2 = heap32[(r10)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+3)];
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
}
}
	r1 = _ZTV12btConvexCast;
	r1 = (r1 + 8)|0;
	heap32[(fp+-164)] = r1;
	return;
}
}

function _ZN22btCompoundLeafCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV22btCompoundLeafCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN22btCompoundLeafCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV22btCompoundLeafCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -136;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+1)];
	r3 = heap32[(fp+1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+48)];
	r4 = r3 >> 2;
	r4 = heap32[(r4+9)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+6)];
	r5 = (r4 * 80)|0;
	r6 = heap32[(r1+4)];
	r2 = (r2 + r5)|0;
	r5 = r6 >> 2;
	r2 = r2 >> 2;
	r5 = heap32[(r5+5)];
	r2 = heap32[(r2+16)];
if(!(r5 ==0)) //_LBB251_3
{
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+12)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r5 = r_g0 & 2;
if(!(r5 ==0)) //_LBB251_3
{
	r5 = heap32[(r1+1)];
	r6 = sp + -112;
	r5 = r5 >> 2;
	r7 = r6 >> 2;
	heap32[(fp+-28)] = heap32[(r5+1)];
	heap32[(r7+1)] = heap32[(r5+2)];
	heap32[(r7+2)] = heap32[(r5+3)];
	heap32[(r7+3)] = heap32[(r5+4)];
	heap32[(r7+4)] = heap32[(r5+5)];
	heap32[(r7+5)] = heap32[(r5+6)];
	heap32[(r7+6)] = heap32[(r5+7)];
	heap32[(r7+7)] = heap32[(r5+8)];
	heap32[(r7+8)] = heap32[(r5+9)];
	heap32[(r7+9)] = heap32[(r5+10)];
	heap32[(r7+10)] = heap32[(r5+11)];
	heap32[(r7+11)] = heap32[(r5+12)];
	heap32[(r7+12)] = heap32[(r5+13)];
	heap32[(r7+13)] = heap32[(r5+14)];
	heap32[(r7+14)] = heap32[(r5+15)];
	heap32[(r7+15)] = heap32[(r5+16)];
	r5 = (r3 + 16)|0;
	r7 = sp + -32;
	r8 = sp + -48;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = 0;
	heap32[(g0+3)] = r6;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r8;
	_Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(i7);
	r1 = heap32[(r1+4)];
	r1 = r1 >> 2;
	r3 = heap32[(r1+5)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+13)];
	r5 = sp + -16;
	r6 = r5 >> 2;
	heap32[(fp+-4)] = 1065353216;
	heap32[(r6+1)] = 0;
	heap32[(r6+2)] = 0;
	heap32[(r6+3)] = 0;
	r1 = heap32[(r1+5)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
}
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	_ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7);
	return;
}

function _ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+3)];
if(!(r1 <1)) //_LBB252_5
{
	r1 = heap32[(fp+1)];
	r2 = 0;
_3: while(true){
	r3 = heap32[(r0+5)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
if(!(r3 ==0)) //_LBB252_4
{
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
	r2 = (r2 + 1)|0;
	r3 = heap32[(r0+3)];
	if(r3 >r2) //_LBB252_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+28];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = r1 == 0 ? r2 : r3;
	r5 = r4 >> 2;
	r6 = heap32[(r5+48)];
	r7 = r6 >> 2;
	r8 = heap32[(r7+1)];
	if(r8 ==31) //_LBB253_2
{
	r0 = r0 >> 2;
	r8 = heap32[(r0+3)];
_3: do {
	if(r8 >0) //_LBB253_4
{
	r9 = heap32[(fp+3)];
	r10 = heap32[(fp+4)];
	r1 = r1 == 0 ? r3 : r2;
	r2 = 0;
	f0 =                         1;
_5: while(true){
	r3 = (r2 * 20)|0;
	r11 = heap32[(r7+6)];
	r3 = r3 << 2;
	r3 = (r11 + r3)|0;
	r3 = r3 >> 2;
	f1 = heapFloat[(r3)];
	f2 = heapFloat[(r5+1)];
	f3 = heapFloat[(r3+4)];
	f4 = heapFloat[(r5+2)];
	f5 = heapFloat[(r3+1)];
	f6 = heapFloat[(r3+5)];
	f7 = f1*f2;
	f8 = f3*f4;
	f9 = heapFloat[(r3+8)];
	f10 = heapFloat[(r5+3)];
	f11 = heapFloat[(r5+10)];
	f12 = heapFloat[(r3+13)];
	f13 = heapFloat[(r5+6)];
	f14 = heapFloat[(r3+6)];
	f15 = heapFloat[(r5+9)];
	f16 = heapFloat[(r3+12)];
	f17 = heapFloat[(r5+5)];
	f18 = heapFloat[(r3+2)];
	f19 = heapFloat[(r3+14)];
	f20 = heapFloat[(r5+11)];
	f21 = heapFloat[(r3+10)];
	f22 = heapFloat[(r5+7)];
	f23 = heapFloat[(r3+9)];
	r3 = heap32[(r3+16)];
	f24 = f5*f2;
	f25 = f6*f4;
	f7 = f7+f8;
	f8 = f9*f10;
	f26 = heapFloat[(r5+16)];
	heapFloat[(fp+-1)] = f26;
	f27 = heapFloat[(r5+15)];
	f28 = heapFloat[(r5+14)];
	f29 = heapFloat[(r5+13)];
	f26 = heapFloat[(r5+12)];
	heapFloat[(fp+-2)] = f26;
	f26 = heapFloat[(r5+8)];
	heapFloat[(fp+-3)] = f26;
	f26 = heapFloat[(r5+4)];
	heapFloat[(fp+-4)] = f26;
	f30 = f18*f2;
	f26 = f14*f4;
	f24 = f24+f25;
	f25 = f23*f10;
	f7 = f7+f8;
	f8 = f30+f26;
	f26 = f21*f10;
	f24 = f24+f25;
	heapFloat[(r5+1)] = f7;
	f7 = f1*f17;
	f25 = f3*f13;
	f8 = f8+f26;
	heapFloat[(r5+2)] = f24;
	heapFloat[(r5+3)] = f8;
	f8 = f5*f17;
	f24 = f6*f13;
	f7 = f7+f25;
	f25 = f9*f22;
	f26 = f18*f17;
	f30 = f14*f13;
	f8 = f8+f24;
	f24 = f23*f22;
	f7 = f7+f25;
	heap32[(r5+4)] = 0;
	f25 = f26+f30;
	f26 = f21*f22;
	f8 = f8+f24;
	heapFloat[(r5+5)] = f7;
	f1 = f1*f15;
	f3 = f3*f11;
	f7 = f25+f26;
	heapFloat[(r5+6)] = f8;
	heapFloat[(r5+7)] = f7;
	f5 = f5*f15;
	f6 = f6*f11;
	f1 = f1+f3;
	f3 = f9*f20;
	f7 = f18*f15;
	f8 = f14*f11;
	f5 = f5+f6;
	f6 = f23*f20;
	f1 = f1+f3;
	heap32[(r5+8)] = 0;
	f3 = f2*f16;
	f9 = f4*f12;
	f7 = f7+f8;
	f8 = f21*f20;
	f5 = f5+f6;
	heapFloat[(r5+9)] = f1;
	f1 = f17*f16;
	f6 = f13*f12;
	f3 = f3+f9;
	f9 = f10*f19;
	f7 = f7+f8;
	heapFloat[(r5+10)] = f5;
	f3 = f3+f9;
	heapFloat[(r5+11)] = f7;
	f5 = f15*f16;
	f7 = f11*f12;
	f1 = f1+f6;
	f6 = f22*f19;
	f1 = f1+f6;
	f5 = f5+f7;
	f6 = f20*f19;
	f3 = f3+f29;
	heap32[(r5+12)] = 0;
	f5 = f5+f6;
	f1 = f1+f28;
	heapFloat[(r5+13)] = f3;
	f3 = f5+f27;
	heapFloat[(r5+14)] = f1;
	heapFloat[(r5+15)] = f3;
	heap32[(r5+16)] = 0;
	heap32[(r5+48)] = r3;
	r3 = heap32[(r0+5)];
	r11 = r2 << 2;
	r3 = (r3 + r11)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r11 = r3 >> 2;
	r11 = heap32[(r11)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+3)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r9;
	heap32[(g0+4)] = r10;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	heap32[(r5+48)] = r6;
	heapFloat[(r5+1)] = f2;
	heapFloat[(r5+2)] = f4;
	heapFloat[(r5+3)] = f10;
	f26 = heapFloat[(fp+-4)];
	heapFloat[(r5+4)] = f26;
	heapFloat[(r5+5)] = f17;
	heapFloat[(r5+6)] = f13;
	heapFloat[(r5+7)] = f22;
	f26 = heapFloat[(fp+-3)];
	heapFloat[(r5+8)] = f26;
	heapFloat[(r5+9)] = f15;
	heapFloat[(r5+10)] = f11;
	heapFloat[(r5+11)] = f20;
	f26 = heapFloat[(fp+-2)];
	heapFloat[(r5+12)] = f26;
	heapFloat[(r5+13)] = f29;
	heapFloat[(r5+14)] = f28;
	r2 = (r2 + 1)|0;
	f0 = f_g0 < f0 ? f_g0 : f0;
	heapFloat[(r5+15)] = f27;
	f26 = heapFloat[(fp+-1)];
	heapFloat[(r5+16)] = f26;
if(!(r8 !=r2)) //_LBB253_5
{
break _3;
}
}
}
else{
	f0 =                         1;
}
} while(0);
	f_g0 = f0;
	return;
}
else{
	r0 = _2E_str99;
	r1 = _2E_str1100;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 308;
	_assert(i7);
}
}

function _Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	f0 = heapFloat[(r0)];
	f1 = heapFloat[(r1)];
	if(f0 <=f1) //_LBB254_2
{
	f2 = heapFloat[(r0+1)];
	f3 = heapFloat[(r1+1)];
	if(f2 <=f3) //_LBB254_4
{
	f4 = heapFloat[(r0+2)];
	f5 = heapFloat[(r1+2)];
	if(f4 <=f5) //_LBB254_6
{
	f6 = heapFloat[(fp+2)];
	r0 = heap32[(fp+3)];
	r1 = heap32[(fp+4)];
	r2 = heap32[(fp+5)];
	f7 = f1-f0;
	f8 =                       0.5;
	f9 = f3-f2;
	f10 = f5-f4;
	r0 = r0 >> 2;
	f4 = f5+f4;
	f2 = f3+f2;
	f0 = f1+f0;
	f1 = f7*f8;
	f3 = f9*f8;
	f5 = f10*f8;
	f7 = heapFloat[(r0+10)];
	f1 = f1+f6;
	f3 = f3+f6;
	f5 = f5+f6;
	f4 = f4*f8;
	f2 = f2*f8;
	f0 = f0*f8;
	f6 =                         0;
	if(f7 <f6) //_LBB254_8
{
	f8 = -f7;
}
else{
	f8 = f7;
}
	f9 = heapFloat[(r0+9)];
	if(f9 <f6) //_LBB254_11
{
	f10 = -f9;
}
else{
	f10 = f9;
}
	f11 = heapFloat[(r0+8)];
	if(f11 <f6) //_LBB254_14
{
	f12 = -f11;
}
else{
	f12 = f11;
}
	f13 = heapFloat[(r0+6)];
	if(f13 <f6) //_LBB254_17
{
	f14 = -f13;
}
else{
	f14 = f13;
}
	f15 = heapFloat[(r0+5)];
	if(f15 <f6) //_LBB254_20
{
	f16 = -f15;
}
else{
	f16 = f15;
}
	f17 = heapFloat[(r0+4)];
	if(f17 <f6) //_LBB254_23
{
	f18 = -f17;
}
else{
	f18 = f17;
}
	f19 = heapFloat[(r0+2)];
	if(f19 <f6) //_LBB254_26
{
	f20 = -f19;
}
else{
	f20 = f19;
}
	f21 = heapFloat[(r0+1)];
	if(f21 <f6) //_LBB254_29
{
	f22 = -f21;
}
else{
	f22 = f21;
}
	f23 = heapFloat[(r0)];
	if(f23 <f6) //_LBB254_32
{
	f6 = -f23;
}
else{
	f6 = f23;
}
	f23 = f23*f0;
	f21 = f21*f2;
	f17 = f17*f0;
	f15 = f15*f2;
	f21 = f23+f21;
	f19 = f19*f4;
	f6 = f6*f1;
	f22 = f22*f3;
	f0 = f11*f0;
	f2 = f9*f2;
	f9 = f17+f15;
	f11 = f13*f4;
	f13 = f18*f1;
	f15 = f16*f3;
	f16 = f21+f19;
	f17 = heapFloat[(r0+12)];
	f6 = f6+f22;
	f18 = f20*f5;
	f0 = f0+f2;
	f2 = f7*f4;
	f1 = f12*f1;
	f3 = f10*f3;
	f4 = f9+f11;
	f7 = heapFloat[(r0+13)];
	f9 = heapFloat[(r0+14)];
	f10 = f13+f15;
	f11 = f14*f5;
	f12 = f16+f17;
	f6 = f6+f18;
	f0 = f0+f2;
	r0 = r1 >> 2;
	f1 = f1+f3;
	f2 = f8*f5;
	f3 = f4+f7;
	f4 = f10+f11;
	f5 = f12-f6;
	f0 = f0+f9;
	f1 = f1+f2;
	f2 = f3-f4;
	heapFloat[(r0)] = f5;
	f5 = f0-f1;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f5;
	r1 = r2 >> 2;
	f2 = f12+f6;
	heap32[(r0+3)] = 0;
	f3 = f3+f4;
	heapFloat[(r1)] = f2;
	f0 = f0+f1;
	heapFloat[(r1+1)] = f3;
	heapFloat[(r1+2)] = f0;
	heap32[(r1+3)] = 0;
	return;
}
else{
	r0 = _2E_str5104;
	r1 = _2E_str3102;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 199;
	_assert(i7);
}
}
else{
	r0 = _2E_str4103;
	r1 = _2E_str3102;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 198;
	_assert(i7);
}
}
else{
	r0 = _2E_str2101;
	r1 = _2E_str3102;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 197;
	_assert(i7);
}
}

function _ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -264;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	if(r0 >-1) //_LBB255_2
{
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r2 = heap32[(r1+1)];
	r2 = r2 >> 2;
	r3 = heap32[(r2+48)];
	r3 = r3 >> 2;
	r4 = heap32[(r3+4)];
	if(r4 >r0) //_LBB255_4
{
	r4 = heap32[(fp+1)];
	r3 = heap32[(r3+6)];
	r5 = (r0 * 80)|0;
	r3 = (r3 + r5)|0;
	r3 = r3 >> 2;
	f0 = heapFloat[(r2+1)];
	f1 = heapFloat[(r3)];
	f2 = heapFloat[(r2+2)];
	f3 = heapFloat[(r3+4)];
	f4 = heapFloat[(r3+1)];
	f5 = heapFloat[(r3+5)];
	f6 = heapFloat[(r2+3)];
	f7 = heapFloat[(r3+8)];
	f8 = f1*f0;
	f9 = f3*f2;
	f10 = heapFloat[(r2+5)];
	f11 = heapFloat[(r2+6)];
	f12 = heapFloat[(r2+9)];
	f13 = heapFloat[(r3+12)];
	f14 = heapFloat[(r3+2)];
	f15 = heapFloat[(r2+10)];
	f16 = heapFloat[(r3+13)];
	f17 = heapFloat[(r3+6)];
	f18 = heapFloat[(r2+7)];
	f19 = heapFloat[(r3+14)];
	f20 = heapFloat[(r2+11)];
	f21 = heapFloat[(r3+10)];
	f22 = heapFloat[(r3+9)];
	f23 = heapFloat[(r2+4)];
	f24 = heapFloat[(r2+8)];
	heapFloat[(fp+-59)] = f24;
	f24 = heapFloat[(r2+12)];
	heapFloat[(fp+-57)] = f24;
	f24 = heapFloat[(r2+13)];
	f25 = heapFloat[(r2+14)];
	f26 = heapFloat[(r2+15)];
	f27 = heapFloat[(r2+16)];
	heapFloat[(fp+-58)] = f27;
	f27 = heapFloat[(r2+17)];
	heapFloat[(fp+-42)] = f27;
	f27 = heapFloat[(r2+18)];
	heapFloat[(fp+-41)] = f27;
	f27 = heapFloat[(r2+19)];
	heapFloat[(fp+-44)] = f27;
	f27 = heapFloat[(r2+20)];
	heapFloat[(fp+-43)] = f27;
	f27 = heapFloat[(r2+21)];
	heapFloat[(fp+-46)] = f27;
	f27 = heapFloat[(r2+22)];
	heapFloat[(fp+-45)] = f27;
	f27 = heapFloat[(r2+23)];
	heapFloat[(fp+-48)] = f27;
	f27 = heapFloat[(r2+24)];
	heapFloat[(fp+-47)] = f27;
	f27 = heapFloat[(r2+25)];
	heapFloat[(fp+-50)] = f27;
	f27 = heapFloat[(r2+26)];
	heapFloat[(fp+-49)] = f27;
	f27 = heapFloat[(r2+27)];
	heapFloat[(fp+-52)] = f27;
	f27 = heapFloat[(r2+28)];
	heapFloat[(fp+-51)] = f27;
	f27 = heapFloat[(r2+29)];
	heapFloat[(fp+-54)] = f27;
	f27 = heapFloat[(r2+30)];
	heapFloat[(fp+-53)] = f27;
	f27 = heapFloat[(r2+31)];
	heapFloat[(fp+-56)] = f27;
	f27 = heapFloat[(r2+32)];
	heapFloat[(fp+-55)] = f27;
	f27 = f4*f0;
	f28 = f5*f2;
	f8 = f8+f9;
	f9 = f7*f6;
	r2 = sp + -96;
	f29 = f14*f0;
	f30 = f17*f2;
	f27 = f27+f28;
	f28 = f22*f6;
	f8 = f8+f9;
	r3 = r2 >> 2;
	f9 = f29+f30;
	f29 = f21*f6;
	f27 = f27+f28;
	heapFloat[(fp+-24)] = f8;
	f8 = f1*f10;
	f28 = f3*f11;
	f9 = f9+f29;
	heapFloat[(r3+1)] = f27;
	heapFloat[(r3+2)] = f9;
	f9 = f4*f10;
	f27 = f5*f11;
	f8 = f8+f28;
	f28 = f7*f18;
	f29 = f14*f10;
	f30 = f17*f11;
	f9 = f9+f27;
	f27 = f22*f18;
	f8 = f8+f28;
	heap32[(r3+3)] = 0;
	f28 = f29+f30;
	f29 = f21*f18;
	f9 = f9+f27;
	heapFloat[(r3+4)] = f8;
	f1 = f1*f12;
	f3 = f3*f15;
	f8 = f28+f29;
	heapFloat[(r3+5)] = f9;
	heapFloat[(r3+6)] = f8;
	f4 = f4*f12;
	f5 = f5*f15;
	f1 = f1+f3;
	f3 = f7*f20;
	f7 = f14*f12;
	f8 = f17*f15;
	f4 = f4+f5;
	f5 = f22*f20;
	f1 = f1+f3;
	heap32[(r3+7)] = 0;
	f3 = f0*f13;
	f9 = f2*f16;
	f7 = f7+f8;
	f8 = f21*f20;
	f4 = f4+f5;
	heapFloat[(r3+8)] = f1;
	f1 = f10*f13;
	f5 = f11*f16;
	f3 = f3+f9;
	f9 = f6*f19;
	f7 = f7+f8;
	heapFloat[(r3+9)] = f4;
	f3 = f3+f9;
	heapFloat[(r3+10)] = f7;
	f4 = f12*f13;
	f7 = f15*f16;
	f1 = f1+f5;
	f5 = f18*f19;
	f1 = f1+f5;
	f4 = f4+f7;
	f5 = f20*f19;
	f3 = f3+f24;
	heap32[(r3+11)] = 0;
	f4 = f4+f5;
	f1 = f1+f25;
	heapFloat[(r3+12)] = f3;
	f3 = f4+f26;
	heapFloat[(r3+13)] = f1;
	heapFloat[(r3+14)] = f3;
	r5 = r4 >> 2;
	heap32[(r3+15)] = 0;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+2)];
	r6 = sp + -112;
	r7 = sp + -128;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r7;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r2 = heap32[(r1+2)];
	r5 = r2 >> 2;
	r5 = heap32[(r5+48)];
	r8 = r5 >> 2;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	r2 = (r2 + 4)|0;
	r9 = sp + -144;
	r10 = sp + -160;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r10;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	f1 = heapFloat[(fp+-28)];
	f3 = heapFloat[(fp+-40)];
	if(f1 >f3) //_LBB255_7
{
__label__ = 7;
}
else{
	f1 = heapFloat[(fp+-32)];
	f3 = heapFloat[(fp+-36)];
	if(f1 <f3) //_LBB255_7
{
__label__ = 7;
}
else{
	r2 = 1;
__label__ = 8;
}
}
if (__label__ == 7){
	r2 = 0;
}
	r5 = r6 >> 2;
	r8 = r10 >> 2;
	f1 = heapFloat[(r5+2)];
	f3 = heapFloat[(r8+2)];
	if(f1 >f3) //_LBB255_11
{
__label__ = 10;
}
else{
	r11 = r7 >> 2;
	r12 = r9 >> 2;
	f1 = heapFloat[(r11+2)];
	f3 = heapFloat[(r12+2)];
	if(f1 <f3) //_LBB255_11
{
__label__ = 10;
}
else{
__label__ = 11;
}
}
if (__label__ == 10){
	r2 = 0;
}
	f1 = heapFloat[(r5+1)];
	f3 = heapFloat[(r8+1)];
if(!(f1 >f3)) //_LBB255_24
{
	r5 = r7 >> 2;
	r8 = r9 >> 2;
	f1 = heapFloat[(r5+1)];
	f3 = heapFloat[(r8+1)];
if(!(f1 <f3)) //_LBB255_24
{
	r2 = r2 & 255;
if(!(r2 ==0)) //_LBB255_24
{
	r2 = heap32[(r1+1)];
	r2 = r2 >> 2;
	heap32[(r2+1)] = heap32[(fp+-24)];
	heap32[(r2+2)] = heap32[(r3+1)];
	heap32[(r2+3)] = heap32[(r3+2)];
	heap32[(r2+4)] = heap32[(r3+3)];
	heap32[(r2+5)] = heap32[(r3+4)];
	heap32[(r2+6)] = heap32[(r3+5)];
	heap32[(r2+7)] = heap32[(r3+6)];
	heap32[(r2+8)] = heap32[(r3+7)];
	heap32[(r2+9)] = heap32[(r3+8)];
	heap32[(r2+10)] = heap32[(r3+9)];
	heap32[(r2+11)] = heap32[(r3+10)];
	heap32[(r2+12)] = heap32[(r3+11)];
	heap32[(r2+13)] = heap32[(r3+12)];
	heap32[(r2+14)] = heap32[(r3+13)];
	heap32[(r2+15)] = heap32[(r3+14)];
	heap32[(r2+16)] = heap32[(r3+15)];
	r2 = heap32[(r1+1)];
	r2 = r2 >> 2;
	heap32[(r2+17)] = heap32[(fp+-24)];
	heap32[(r2+18)] = heap32[(r3+1)];
	heap32[(r2+19)] = heap32[(r3+2)];
	heap32[(r2+20)] = heap32[(r3+3)];
	heap32[(r2+21)] = heap32[(r3+4)];
	heap32[(r2+22)] = heap32[(r3+5)];
	heap32[(r2+23)] = heap32[(r3+6)];
	heap32[(r2+24)] = heap32[(r3+7)];
	heap32[(r2+25)] = heap32[(r3+8)];
	heap32[(r2+26)] = heap32[(r3+9)];
	heap32[(r2+27)] = heap32[(r3+10)];
	heap32[(r2+28)] = heap32[(r3+11)];
	heap32[(r2+29)] = heap32[(r3+12)];
	heap32[(r2+30)] = heap32[(r3+13)];
	heap32[(r2+31)] = heap32[(r3+14)];
	heap32[(r2+32)] = heap32[(r3+15)];
	r2 = heap32[(r1+1)];
	r2 = r2 >> 2;
	r3 = heap32[(r2+48)];
	heap32[(r2+48)] = r4;
	r2 = heap32[(r1+6)];
	r4 = r0 << 2;
	r2 = (r2 + r4)|0;
	r2 = r2 >> 2;
	r5 = heap32[(r2)];
if(!(r5 !=0)) //_LBB255_17
{
	r5 = heap32[(r1+3)];
	r8 = r5 >> 2;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	r11 = heap32[(r1+7)];
	r12 = heap32[(r1+2)];
	r13 = heap32[(r1+1)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r13;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r11;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	heap32[(r2)] = r_g0;
}
	r2 = heap32[(r1+5)];
	r5 = r2 >> 2;
	r8 = heap32[(r5)];
	r5 = heap32[(r5+34)];
	r11 = heap32[(r1+1)];
	if(r5 !=r11) //_LBB255_19
{
	r5 = r8 >> 2;
	r5 = heap32[(r5+3)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = -1;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
else{
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = -1;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
}
	r0 = heap32[(r1+6)];
	r0 = (r0 + r4)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	r2 = r0 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+2)];
	r4 = heap32[(r1+5)];
	r5 = heap32[(r1+4)];
	r8 = heap32[(r1+2)];
	r11 = heap32[(r1+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = heap32[(r1+4)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
if(!(r0 ==0)) //_LBB255_23
{
	r2 = r0 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = r_g0 & 2;
if(!(r0 ==0)) //_LBB255_23
{
	r0 = heap32[(r1+4)];
	r0 = r0 >> 2;
	r2 = heap32[(r0+5)];
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+13)];
	r4 = sp + -32;
	r5 = r4 >> 2;
	heap32[(fp+-8)] = 1065353216;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 1065353216;
	heap32[(r5+3)] = 0;
	r0 = heap32[(r0+5)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = heap32[(r1+4)];
	r0 = r0 >> 2;
	r2 = heap32[(r0+5)];
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+13)];
	r4 = sp + -16;
	r5 = r4 >> 2;
	heap32[(fp+-4)] = 1065353216;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 1065353216;
	heap32[(r5+3)] = 0;
	r0 = heap32[(r0+5)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
}
	r0 = heap32[(r1+1)];
	r0 = r0 >> 2;
	heap32[(r0+48)] = r3;
	r0 = heap32[(r1+1)];
	r0 = r0 >> 2;
	heapFloat[(r0+1)] = f0;
	heapFloat[(r0+2)] = f2;
	heapFloat[(r0+3)] = f6;
	heapFloat[(r0+4)] = f23;
	heapFloat[(r0+5)] = f10;
	heapFloat[(r0+6)] = f11;
	heapFloat[(r0+7)] = f18;
	f0 = heapFloat[(fp+-59)];
	heapFloat[(r0+8)] = f0;
	heapFloat[(r0+9)] = f12;
	heapFloat[(r0+10)] = f15;
	heapFloat[(r0+11)] = f20;
	f0 = heapFloat[(fp+-57)];
	heapFloat[(r0+12)] = f0;
	heapFloat[(r0+13)] = f24;
	heapFloat[(r0+14)] = f25;
	heapFloat[(r0+15)] = f26;
	f0 = heapFloat[(fp+-58)];
	heapFloat[(r0+16)] = f0;
	r0 = heap32[(r1+1)];
	r0 = r0 >> 2;
	f0 = heapFloat[(fp+-42)];
	heapFloat[(r0+17)] = f0;
	f0 = heapFloat[(fp+-41)];
	heapFloat[(r0+18)] = f0;
	f0 = heapFloat[(fp+-44)];
	heapFloat[(r0+19)] = f0;
	f0 = heapFloat[(fp+-43)];
	heapFloat[(r0+20)] = f0;
	f0 = heapFloat[(fp+-46)];
	heapFloat[(r0+21)] = f0;
	f0 = heapFloat[(fp+-45)];
	heapFloat[(r0+22)] = f0;
	f0 = heapFloat[(fp+-48)];
	heapFloat[(r0+23)] = f0;
	f0 = heapFloat[(fp+-47)];
	heapFloat[(r0+24)] = f0;
	f0 = heapFloat[(fp+-50)];
	heapFloat[(r0+25)] = f0;
	f0 = heapFloat[(fp+-49)];
	heapFloat[(r0+26)] = f0;
	f0 = heapFloat[(fp+-52)];
	heapFloat[(r0+27)] = f0;
	f0 = heapFloat[(fp+-51)];
	heapFloat[(r0+28)] = f0;
	f0 = heapFloat[(fp+-54)];
	heapFloat[(r0+29)] = f0;
	f0 = heapFloat[(fp+-53)];
	heapFloat[(r0+30)] = f0;
	f0 = heapFloat[(fp+-56)];
	heapFloat[(r0+31)] = f0;
	f0 = heapFloat[(fp+-55)];
	heapFloat[(r0+32)] = f0;
}
}
}
	return;
}
else{
	r0 = _2E_str7106;
	r1 = _2E_str1100;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 119;
	_assert(i7);
}
}
else{
	r0 = _2E_str6105;
	r1 = _2E_str1100;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 117;
	_assert(i7);
}
}

function _ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+28];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = r1 == 0 ? r2 : r3;
	r5 = r4 >> 2;
	r6 = heap32[(r5+48)];
	r6 = r6 >> 2;
	r7 = heap32[(r6+1)];
	if(r7 ==31) //_LBB256_2
{
	r7 = r0 >> 2;
	r8 = heap32[(r7+3)];
	r9 = heap32[(r6+4)];
_3: do {
if(!(r8 >r9)) //_LBB256_21
{
if(!(r8 >=r9)) //_LBB256_21
{
	r10 = heap32[(r7+4)];
if(!(r10 >=r9)) //_LBB256_20
{
	if(r9 !=0) //_LBB256_7
{
	r10 = gNumAlignedAllocs;
	r10 = r10 >> 2;
	r11 = heap32[(r10)];
	r12 = r9 << 2;
	r11 = (r11 + 1)|0;
	r12 = r12 | 3;
	heap32[(r10)] = r11;
	r10 = (r12 + 16)|0;
	heap32[(g0)] = r10;
	malloc(i7);
	r10 = r_g0;
	if(r10 !=0) //_LBB256_9
{
	r11 = 0;
	r12 = (r10 + 4)|0;
	r11 = (r11 - r12)|0;
	r11 = r11 & 15;
	r11 = (r10 + r11)|0;
	r12 = (r11 + 4)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r10;
	r10 = r12;
}
}
else{
	r10 = 0;
}
	r11 = (r0 + 20)|0;
	if(r8 <1) //_LBB256_12
{
	r12 = r11 >> 2;
	r13 = heap32[(r12)];
}
else{
	r12 = 0;
_16: while(true){
	r13 = r11 >> 2;
	r13 = heap32[(r13)];
	r14 = r12 << 2;
	r15 = (r13 + r14)|0;
	r15 = r15 >> 2;
	r14 = (r10 + r14)|0;
	r15 = heap32[(r15)];
	r12 = (r12 + 1)|0;
	r14 = r14 >> 2;
	heap32[(r14)] = r15;
if(!(r8 !=r12)) //_LBB256_13
{
break _16;
}
}
	r11 = (r0 + 20)|0;
}
if(!(r13 ==0)) //_LBB256_19
{
	r12 = heapU8[r0+24];
if(!(r12 ==0)) //_LBB256_18
{
	r12 = gNumAlignedFree;
	r12 = r12 >> 2;
	r14 = heap32[(r12)];
	r14 = (r14 + 1)|0;
	r13 = r13 >> 2;
	heap32[(r12)] = r14;
	r12 = heap32[(r13+-1)];
	heap32[(g0)] = r12;
	free(i7);
}
	r12 = r11 >> 2;
	heap32[(r12)] = 0;
}
	r12 = 1;
	r11 = r11 >> 2;
	heap8[r0+24] = r12;
	heap32[(r11)] = r10;
	heap32[(r7+4)] = r9;
	if(r8 >=r9) //_LBB256_21
{
break _3;
}
}
_26: while(true){
	r0 = r8 << 2;
	r10 = heap32[(r7+5)];
	r0 = (r10 + r0)|0;
	r8 = (r8 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
if(!(r9 !=r8)) //_LBB256_20
{
break _3;
}
}
}
}
} while(0);
	heap32[(r7+3)] = r9;
_29: do {
if(!(r9 <1)) //_LBB256_27
{
	r0 = r1 == 0 ? r3 : r2;
	r1 = 0;
_31: while(true){
	r2 = heap32[(r6+16)];
	if(r2 ==0) //_LBB256_25
{
	r2 = (r1 * 20)|0;
	r2 = r2 << 2;
	r3 = heap32[(r6+6)];
	r2 = (r3 + r2)|0;
	r2 = r2 >> 2;
	r3 = heap32[(r5+48)];
	r2 = heap32[(r2+16)];
	heap32[(r5+48)] = r2;
	r2 = heap32[(r7+1)];
	r8 = r2 >> 2;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	r10 = heap32[(r7+8)];
	r11 = heap32[(r7+5)];
	r12 = r1 << 2;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r10;
	r2 = (r11 + r12)|0;
	r2 = r2 >> 2;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	heap32[(r2)] = r_g0;
	heap32[(r5+48)] = r3;
}
else{
	r2 = r1 << 2;
	r3 = heap32[(r7+5)];
	r2 = (r3 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = 0;
}
	r1 = (r1 + 1)|0;
if(!(r9 !=r1)) //_LBB256_23
{
break _29;
}
}
}
} while(0);
	return;
}
else{
	r0 = _2E_str99;
	r1 = _2E_str1100;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 44;
	_assert(i7);
}
}

function _ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
var __label__ = 0;
	i7 = sp + -328;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heapU8[r0+28];
	r4 = r3 == 0 ? r1 : r2;
	r5 = r4 >> 2;
	r6 = heap32[(r5+48)];
	r6 = r6 >> 2;
	r7 = heap32[(r6+1)];
	if(r7 ==31) //_LBB257_2
{
	r7 = r0 >> 2;
	r8 = heap32[(r6+17)];
	r9 = heap32[(r7+10)];
if(!(r8 ==r9)) //_LBB257_9
{
	r8 = heap32[(r7+3)];
if(!(r8 <1)) //_LBB257_8
{
	r9 = 0;
_7: while(true){
	r10 = heap32[(r7+5)];
	r11 = r9 << 2;
	r10 = (r10 + r11)|0;
	r10 = r10 >> 2;
	r10 = heap32[(r10)];
if(!(r10 ==0)) //_LBB257_7
{
	r12 = r10 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r12 = heap32[(r12)];
	heap32[(g0)] = r10;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	r10 = heap32[(r7+1)];
	r12 = r10 >> 2;
	r13 = heap32[(r7+5)];
	r11 = (r13 + r11)|0;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r11 = r11 >> 2;
	r12 = heap32[(r12+13)];
	r11 = heap32[(r11)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r11;
	__FUNCTION_TABLE__[(r12)>>2](i7);
}
	r9 = (r9 + 1)|0;
if(!(r8 !=r9)) //_LBB257_5
{
break _7;
}
}
}
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	_ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7);
}
	r0 = heap32[(fp+3)];
	r8 = heap32[(fp+4)];
	r1 = r3 == 0 ? r2 : r1;
	r2 = _ZTV22btCompoundLeafCallback;
	r3 = heap32[(r6+16)];
	r9 = heap32[(r7+8)];
	r10 = heap32[(r7+5)];
	r11 = heap32[(r7+1)];
	r12 = sp + -32;
	r2 = (r2 + 8)|0;
	r13 = r12 >> 2;
	heap32[(fp+-8)] = r2;
	heap32[(r13+1)] = r4;
	heap32[(r13+2)] = r1;
	heap32[(r13+3)] = r11;
	heap32[(r13+4)] = r0;
	heap32[(r13+5)] = r8;
	heap32[(r13+6)] = r10;
	r0 = sp + -56;
	r2 = 1;
	heap32[(r13+7)] = r9;
	r4 = r0 >> 2;
	heap8[sp+-40] = r2;
	heap32[(r4+3)] = 0;
	r9 = (r8 + 72)|0;
	r10 = (r8 + 8)|0;
	r11 = 0;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
_14: while(true){
	r13 = heap32[(r7+3)];
	if(r13 >r11) //_LBB257_10
{
	r13 = heap32[(r7+5)];
	r14 = r11 << 2;
	r13 = (r13 + r14)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
if(!(r13 ==0)) //_LBB257_27
{
	r14 = r13 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+4)];
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r0;
	r13 = 0;
	__FUNCTION_TABLE__[(r14)>>2](i7);
_19: while(true){
	r14 = heap32[(r4+3)];
	r15 = heap32[(r4+1)];
	if(r15 >r13) //_LBB257_12
{
	r15 = r13 << 2;
	r14 = (r14 + r15)|0;
	r14 = r14 >> 2;
	r14 = heap32[(r14)];
	r15 = r14 >> 2;
	r16 = heap32[(r15+279)];
if(!(r16 ==0)) //_LBB257_20
{
	r16 = r8 >> 2;
	heap32[(r16+1)] = r14;
	if(r14 !=0) //_LBB257_15
{
	r17 = heap32[(r15+279)];
if(!(r17 ==0)) //_LBB257_19
{
	r15 = heap32[(r15+277)];
	r17 = heap32[(r16+34)];
	if(r15 ==r17) //_LBB257_18
{
	heap32[(g0)] = r14;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r9;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
}
else{
	heap32[(g0)] = r14;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r10;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
}
}
	heap32[(r16+1)] = 0;
}
else{
__label__ = 14;
break _14;
}
}
	r13 = (r13 + 1)|0;
}
else{
break _19;
}
}
if(!(r14 ==0)) //_LBB257_26
{
	r13 = heapU8[sp+-40];
if(!(r13 ==0)) //_LBB257_25
{
	r13 = gNumAlignedFree;
	r13 = r13 >> 2;
	r15 = heap32[(r13)];
	r15 = (r15 + 1)|0;
	r14 = r14 >> 2;
	heap32[(r13)] = r15;
	r13 = heap32[(r14+-1)];
	heap32[(g0)] = r13;
	free(i7);
}
	heap32[(r4+3)] = 0;
}
	r13 = 1;
	heap8[sp+-40] = r13;
	heap32[(r4+3)] = 0;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
}
	r11 = (r11 + 1)|0;
}
else{
__label__ = 29;
break _14;
}
}
switch(__label__ ){//multiple entries
case 29:
	heap8[sp+-40] = r2;
	heap32[(r4+3)] = 0;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
_42: do {
	if(r3 ==0) //_LBB257_31
{
	if(r13 <1) //_LBB257_50
{
__label__ = 49;
}
else{
	r0 = 0;
_45: while(true){
	r3 = (r0 * 20)|0;
	r4 = heap32[(r6+6)];
	r3 = r3 << 2;
	r3 = (r4 + r3)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3+16)];
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r0;
	r0 = (r0 + 1)|0;
	_ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7);
if(!(r13 !=r0)) //_LBB257_33
{
__label__ = 34;
break _42;
}
}
}
}
else{
	r13 = r1 >> 2;
	f0 = heapFloat[(r5+1)];
	f1 = heapFloat[(r13+1)];
	f2 = heapFloat[(r5+5)];
	f3 = heapFloat[(r13+5)];
	f4 = heapFloat[(r13+2)];
	f5 = heapFloat[(r13+6)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r5+9)];
	f9 = heapFloat[(r13+9)];
	f10 = heapFloat[(r5+2)];
	f11 = heapFloat[(r5+6)];
	f12 = heapFloat[(r5+3)];
	f13 = heapFloat[(r13+13)];
	f14 = heapFloat[(r13+3)];
	f15 = heapFloat[(r5+7)];
	f16 = heapFloat[(r5+14)];
	f17 = heapFloat[(r13+14)];
	f18 = heapFloat[(r13+7)];
	f19 = heapFloat[(r5+10)];
	f20 = heapFloat[(r5+15)];
	f21 = heapFloat[(r5+11)];
	f22 = heapFloat[(r13+15)];
	f23 = heapFloat[(r13+11)];
	f24 = heapFloat[(r13+10)];
	f25 = heapFloat[(r5+13)];
	f26 = f4*f0;
	f27 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	r0 = sp + -152;
	f28 = f14*f0;
	f29 = f18*f2;
	f26 = f26+f27;
	f27 = f24*f8;
	f6 = f6+f7;
	r4 = r0 >> 2;
	f7 = f28+f29;
	f28 = f23*f8;
	f26 = f26+f27;
	heapFloat[(fp+-38)] = f6;
	f6 = f1*f10;
	f27 = f3*f11;
	f7 = f7+f28;
	heapFloat[(r4+1)] = f26;
	heapFloat[(r4+2)] = f7;
	f7 = f4*f10;
	f26 = f5*f11;
	f6 = f6+f27;
	f27 = f9*f19;
	f28 = f14*f10;
	f29 = f18*f11;
	f7 = f7+f26;
	f26 = f24*f19;
	f6 = f6+f27;
	heap32[(r4+3)] = 0;
	f27 = f28+f29;
	f28 = f23*f19;
	f7 = f7+f26;
	heapFloat[(r4+4)] = f6;
	f1 = f1*f12;
	f3 = f3*f15;
	f6 = f27+f28;
	heapFloat[(r4+5)] = f7;
	heapFloat[(r4+6)] = f6;
	f4 = f4*f12;
	f5 = f5*f15;
	f1 = f1+f3;
	f3 = f9*f21;
	f6 = -f25;
	f7 = f14*f12;
	f9 = f18*f15;
	f4 = f4+f5;
	f5 = f24*f21;
	f1 = f1+f3;
	heap32[(r4+7)] = 0;
	f3 = f0*f13;
	f14 = f2*f17;
	f0 = f0*f6;
	f2 = f2*f16;
	f7 = f7+f9;
	f9 = f23*f21;
	f4 = f4+f5;
	heapFloat[(r4+8)] = f1;
	f1 = f10*f13;
	f5 = f11*f17;
	f10 = f10*f6;
	f11 = f11*f16;
	f3 = f3+f14;
	f14 = f8*f22;
	f0 = f0-f2;
	f2 = f8*f20;
	f7 = f7+f9;
	heapFloat[(r4+9)] = f4;
	heapFloat[(r4+10)] = f7;
	f4 = f12*f13;
	f7 = f15*f17;
	f6 = f12*f6;
	f8 = f15*f16;
	f1 = f1+f5;
	f5 = f19*f22;
	f9 = f10-f11;
	f10 = f19*f20;
	f3 = f3+f14;
	f0 = f0-f2;
	f2 = f4+f7;
	f4 = f21*f22;
	f6 = f6-f8;
	f7 = f21*f20;
	f1 = f1+f5;
	f5 = f9-f10;
	f0 = f3+f0;
	heap32[(r4+11)] = 0;
	f2 = f2+f4;
	f3 = f6-f7;
	f1 = f1+f5;
	heapFloat[(r4+12)] = f0;
	f0 = f2+f3;
	heapFloat[(r4+13)] = f1;
	heapFloat[(r4+14)] = f0;
	heap32[(r4+15)] = 0;
	r13 = heap32[(r13+48)];
	r4 = r13 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	r8 = sp + -72;
	r9 = sp + -88;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r9;
	r13 = sp + -184;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r0 = r13 >> 2;
	r4 = r8 >> 2;
	heap32[(fp+-46)] = heap32[(fp+-18)];
	heap32[(r0+1)] = heap32[(r4+1)];
	heap32[(r0+2)] = heap32[(r4+2)];
	heap32[(r0+3)] = heap32[(r4+3)];
	r4 = r9 >> 2;
	heap32[(r0+4)] = heap32[(fp+-22)];
	heap32[(r0+5)] = heap32[(r4+1)];
	heap32[(r0+6)] = heap32[(r4+2)];
	r3 = r3 >> 2;
	heap32[(r0+7)] = heap32[(r4+3)];
	r0 = heap32[(r3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r13;
	heap32[(g0+2)] = r12;
	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
__label__ = 34;
}
} while(0);
_48: do {
if (__label__ == 34){
	r0 = heap32[(r7+3)];
if(!(r0 <1)) //_LBB257_50
{
	r3 = 0;
	r4 = (r1 + 4)|0;
	r0 = (r3 - r0)|0;
_51: while(true){
	r8 = heap32[(r7+5)];
	r9 = r3 << 2;
	r8 = (r8 - r9)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
_53: do {
if(!(r8 ==0)) //_LBB257_49
{
	r8 = (r3 * -20)|0;
	r10 = heap32[(r6+6)];
	r8 = r8 << 2;
	r8 = (r10 + r8)|0;
	r8 = r8 >> 2;
	f0 = heapFloat[(r5+1)];
	f1 = heapFloat[(r8)];
	f2 = heapFloat[(r5+2)];
	f3 = heapFloat[(r8+4)];
	f4 = heapFloat[(r8+1)];
	f5 = heapFloat[(r8+5)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r5+3)];
	f9 = heapFloat[(r8+8)];
	f10 = heapFloat[(r5+5)];
	f11 = heapFloat[(r5+6)];
	f12 = heapFloat[(r5+9)];
	f13 = heapFloat[(r8+12)];
	f14 = heapFloat[(r8+2)];
	f15 = heapFloat[(r5+10)];
	f16 = heapFloat[(r8+13)];
	f17 = heapFloat[(r8+6)];
	r10 = heap32[(r8+16)];
	f18 = heapFloat[(r5+7)];
	f19 = heapFloat[(r8+14)];
	f20 = heapFloat[(r5+11)];
	f21 = heapFloat[(r8+10)];
	f22 = heapFloat[(r8+9)];
	f23 = f4*f0;
	f24 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	f25 = heapFloat[(r5+13)];
	f26 = heapFloat[(r5+14)];
	f27 = heapFloat[(r5+15)];
	r8 = sp + -248;
	f28 = f14*f0;
	f29 = f17*f2;
	f23 = f23+f24;
	f24 = f22*f8;
	f6 = f6+f7;
	r11 = r8 >> 2;
	f7 = f28+f29;
	f28 = f21*f8;
	f23 = f23+f24;
	heapFloat[(fp+-62)] = f6;
	f6 = f1*f10;
	f24 = f3*f11;
	f7 = f7+f28;
	heapFloat[(r11+1)] = f23;
	heapFloat[(r11+2)] = f7;
	f7 = f4*f10;
	f23 = f5*f11;
	f6 = f6+f24;
	f24 = f9*f18;
	f28 = f14*f10;
	f29 = f17*f11;
	f7 = f7+f23;
	f23 = f22*f18;
	f6 = f6+f24;
	heap32[(r11+3)] = 0;
	f24 = f28+f29;
	f28 = f21*f18;
	f7 = f7+f23;
	heapFloat[(r11+4)] = f6;
	f1 = f1*f12;
	f3 = f3*f15;
	f6 = f24+f28;
	heapFloat[(r11+5)] = f7;
	heapFloat[(r11+6)] = f6;
	f4 = f4*f12;
	f5 = f5*f15;
	f1 = f1+f3;
	f3 = f9*f20;
	f6 = f14*f12;
	f7 = f17*f15;
	f4 = f4+f5;
	f5 = f22*f20;
	f1 = f1+f3;
	heap32[(r11+7)] = 0;
	f0 = f0*f13;
	f2 = f2*f16;
	f3 = f6+f7;
	f6 = f21*f20;
	f4 = f4+f5;
	heapFloat[(r11+8)] = f1;
	f1 = f10*f13;
	f5 = f11*f16;
	f0 = f0+f2;
	f2 = f8*f19;
	f3 = f3+f6;
	heapFloat[(r11+9)] = f4;
	f0 = f0+f2;
	heapFloat[(r11+10)] = f3;
	f2 = f12*f13;
	f3 = f15*f16;
	f1 = f1+f5;
	f4 = f18*f19;
	f1 = f1+f4;
	f2 = f2+f3;
	f3 = f20*f19;
	f0 = f0+f25;
	heap32[(r11+11)] = 0;
	f2 = f2+f3;
	f1 = f1+f26;
	heapFloat[(r11+12)] = f0;
	f0 = f2+f27;
	heapFloat[(r11+13)] = f1;
	heapFloat[(r11+14)] = f0;
	r12 = r10 >> 2;
	heap32[(r11+15)] = 0;
	r11 = heap32[(r12)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+2)];
	r12 = sp + -264;
	r13 = sp + -280;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r13;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r8 = r1 >> 2;
	r8 = heap32[(r8+48)];
	r10 = r8 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+2)];
	r11 = sp + -296;
	r14 = sp + -312;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r14;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	f0 = heapFloat[(fp+-66)];
	f1 = heapFloat[(fp+-78)];
	if(f0 >f1) //_LBB257_40
{
__label__ = 40;
}
else{
	f0 = heapFloat[(fp+-70)];
	f1 = heapFloat[(fp+-74)];
	if(f0 <f1) //_LBB257_40
{
__label__ = 40;
}
else{
	r8 = r2;
__label__ = 41;
}
}
if (__label__ == 40){
	r8 = 0;
}
	r10 = r12 >> 2;
	r12 = r14 >> 2;
	f0 = heapFloat[(r10+2)];
	f1 = heapFloat[(r12+2)];
	if(f0 >f1) //_LBB257_44
{
__label__ = 43;
}
else{
	r14 = r13 >> 2;
	r15 = r11 >> 2;
	f0 = heapFloat[(r14+2)];
	f1 = heapFloat[(r15+2)];
	if(f0 <f1) //_LBB257_44
{
__label__ = 43;
}
else{
__label__ = 44;
}
}
if (__label__ == 43){
	r8 = 0;
}
	f0 = heapFloat[(r10+1)];
	f1 = heapFloat[(r12+1)];
if(!(f0 >f1)) //_LBB257_48
{
	r10 = r13 >> 2;
	r11 = r11 >> 2;
	f0 = heapFloat[(r10+1)];
	f1 = heapFloat[(r11+1)];
if(!(f0 <f1)) //_LBB257_48
{
	r8 = r8 & 255;
	if(r8 !=0) //_LBB257_49
{
break _53;
}
}
}
	r8 = heap32[(r7+5)];
	r8 = (r8 - r9)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
	r10 = r8 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10)];
	heap32[(g0)] = r8;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r8 = heap32[(r7+1)];
	r10 = r8 >> 2;
	r11 = heap32[(r7+5)];
	r11 = (r11 - r9)|0;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r11 = r11 >> 2;
	r10 = heap32[(r10+13)];
	r11 = heap32[(r11)];
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r11;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r8 = heap32[(r7+5)];
	r8 = (r8 - r9)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = 0;
}
} while(0);
	r3 = (r3 + -1)|0;
if(!(r0 !=r3)) //_LBB257_36
{
break _48;
}
}
}
}
} while(0);
	return;
break;
case 14:
	r14 = _2E_str59;
	r0 = _2E_str160;
	heap32[(g0)] = r14;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 101;
	_assert(i7);
break;
}
}
else{
	r0 = _2E_str99;
	r1 = _2E_str1100;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 199;
	_assert(i7);
}
}

function _ZN28btCompoundCollisionAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV28btCompoundCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+3)];
if(!(r1 <1)) //_LBB258_5
{
	r3 = 0;
_3: while(true){
	r4 = heap32[(r2+5)];
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
if(!(r4 ==0)) //_LBB258_4
{
	r6 = r4 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r4 = heap32[(r2+1)];
	r6 = r4 >> 2;
	r7 = heap32[(r2+5)];
	r5 = (r7 + r5)|0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r6+13)];
	r5 = heap32[(r5)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
}
	r3 = (r3 + 1)|0;
	if(r1 !=r3) //_LBB258_2
{
continue _3;
}
else{
break _3;
}
}
}
	r1 = heap32[(r2+5)];
if(!(r1 ==0)) //_LBB258_9
{
	r3 = heapU8[r0+24];
if(!(r3 ==0)) //_LBB258_8
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+5)] = 0;
}
	r1 = 1;
	heap8[r0+24] = r1;
	heap32[(r2+5)] = 0;
	r1 = _ZTV30btActivatingCollisionAlgorithm;
	heap32[(r2+3)] = 0;
	r1 = (r1 + 8)|0;
	heap32[(r2+4)] = 0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN28btCompoundCollisionAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV28btCompoundCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+3)];
if(!(r1 <1)) //_LBB259_5
{
	r3 = 0;
_3: while(true){
	r4 = heap32[(r2+5)];
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
if(!(r4 ==0)) //_LBB259_4
{
	r6 = r4 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r4 = heap32[(r2+1)];
	r6 = r4 >> 2;
	r7 = heap32[(r2+5)];
	r5 = (r7 + r5)|0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r6+13)];
	r5 = heap32[(r5)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
}
	r3 = (r3 + 1)|0;
	if(r1 !=r3) //_LBB259_2
{
continue _3;
}
else{
break _3;
}
}
}
	r1 = heap32[(r2+5)];
if(!(r1 ==0)) //_LBB259_9
{
	r3 = heapU8[r0+24];
if(!(r3 ==0)) //_LBB259_8
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+5)] = 0;
}
	r1 = 1;
	heap8[r0+24] = r1;
	heap32[(r2+5)] = 0;
	r0 = _ZTV30btActivatingCollisionAlgorithm;
	heap32[(r2+3)] = 0;
	r0 = (r0 + 8)|0;
	heap32[(r2+4)] = 0;
	heap32[(r2)] = r0;
	return;
}

function _ZNK21btConvexInternalShape15getLocalScalingEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = (r0 + 12)|0;
	r_g0 = r0;
	return;
}

function _ZN21btConvexInternalShape9setMarginEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	heap32[(r0+11)] = heap32[(fp+1)];
	return;
}

function _ZNK21btConvexInternalShape9getMarginEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var f0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+11)];
	f_g0 = f0;
	return;
}

function _ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 52;
	r_g0 = r0;
	return;
}

function _ZNK15btTriangleShape14getNumVerticesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 3;
	r_g0 = r0;
	return;
}

function _ZNK15btTriangleShape9getVertexEiR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r0 = r0 << 4;
	r2 = heap32[(fp+2)];
	r0 = (r1 + r0)|0;
	r1 = r2 >> 2;
	r0 = r0 >> 2;
	heap32[(r1)] = heap32[(r0+13)];
	heap32[(r1+1)] = heap32[(r0+14)];
	heap32[(r1+2)] = heap32[(r0+15)];
	heap32[(r1+3)] = heap32[(r0+16)];
	return;
}

function _ZNK15btTriangleShape11getNumEdgesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 3;
	r_g0 = r0;
	return;
}

function _ZNK15btTriangleShape7getEdgeEiR9btVector3S1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+24)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+24)];
	r2 = (r3 + 1)|0;
	r2 = (r2 % 3)|0;
	r3 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+18)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
	r2 = r0 >> 2;
	r1 = r1 >> 2;
	f0 = heapFloat[(r2+13)];
	f1 = heapFloat[(r1)];
	f2 = heapFloat[(r2+17)];
	f3 = heapFloat[(r2+21)];
	f4 = heapFloat[(r2+14)];
	f5 = heapFloat[(r1+1)];
	f6 = heapFloat[(r2+18)];
	f7 = heapFloat[(r2+22)];
	f0 = f1*f0;
	f4 = f5*f4;
	f8 = heapFloat[(r2+15)];
	f9 = heapFloat[(r1+2)];
	f10 = heapFloat[(r2+19)];
	f11 = heapFloat[(r2+23)];
	f2 = f1*f2;
	f6 = f5*f6;
	f1 = f1*f3;
	f3 = f5*f7;
	f0 = f0+f4;
	f4 = f9*f8;
	f2 = f2+f6;
	f5 = f9*f10;
	f1 = f1+f3;
	f3 = f9*f11;
	f0 = f0+f4;
	f2 = f2+f5;
	r1 = heap32[(fp)];
	f1 = f1+f3;
	if(f0 >=f2) //_LBB269_2
{
	r2 = 2;
	r3 = 0;
	r2 = f0 < f1 ? r2 : r3;
}
else{
	r2 = 2;
	r3 = 1;
	r2 = f2 < f1 ? r2 : r3;
}
	r2 = r2 << 4;
	r0 = (r0 + r2)|0;
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	heap32[(r1)] = heap32[(r0+13)];
	heap32[(r1+1)] = heap32[(r0+14)];
	heap32[(r1+2)] = heap32[(r0+15)];
	heap32[(r1+3)] = heap32[(r0+16)];
	return;
}

function _ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
if(!(r0 <1)) //_LBB270_6
{
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r2 = (r2 + 8)|0;
	r3 = (r3 + 12)|0;
_3: while(true){
	r4 = r1 >> 2;
	r5 = r2 >> 2;
	f0 = heapFloat[(r4+13)];
	f1 = heapFloat[(r5+-2)];
	f2 = heapFloat[(r4+17)];
	f3 = heapFloat[(r4+21)];
	f4 = heapFloat[(r4+14)];
	f5 = heapFloat[(r5+-1)];
	f6 = heapFloat[(r4+18)];
	f7 = heapFloat[(r4+22)];
	f0 = f1*f0;
	f4 = f5*f4;
	f8 = heapFloat[(r4+15)];
	f9 = heapFloat[(r5)];
	f10 = heapFloat[(r4+19)];
	f11 = heapFloat[(r4+23)];
	f2 = f1*f2;
	f6 = f5*f6;
	f1 = f1*f3;
	f3 = f5*f7;
	f0 = f0+f4;
	f4 = f9*f8;
	f2 = f2+f6;
	f5 = f9*f10;
	f1 = f1+f3;
	f3 = f9*f11;
	f0 = f0+f4;
	f2 = f2+f5;
	f1 = f1+f3;
	if(f0 >=f2) //_LBB270_4
{
	r4 = 2;
	r5 = 0;
	r4 = f0 < f1 ? r4 : r5;
}
else{
	r4 = 2;
	r5 = 1;
	r4 = f2 < f1 ? r4 : r5;
}
	r4 = r4 << 4;
	r4 = (r1 + r4)|0;
	r5 = r3 >> 2;
	r4 = r4 >> 2;
	heap32[(r5+-3)] = heap32[(r4+13)];
	heap32[(r5+-2)] = heap32[(r4+14)];
	r0 = (r0 + -1)|0;
	r2 = (r2 + 16)|0;
	r3 = (r3 + 16)|0;
	heap32[(r5+-1)] = heap32[(r4+15)];
	heap32[(r5)] = heap32[(r4+16)];
	if(r0 !=0) //_LBB270_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZNK15btTriangleShape8getPlaneER9btVector3S1_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+28)];
	r2 = heap32[(fp+3)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZNK15btTriangleShape12getNumPlanesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZNK15btTriangleShape7getNameEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _2E_str109;
	r_g0 = r0;
	return;
}

function _ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 2;
	r_g0 = r0;
	return;
}

function _ZN24btConvexTriangleCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV24btConvexTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	r1 = heap32[(r0+12)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+5)];
	r3 = heap32[(r0+16)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(r0+12)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	r3 = heap32[(r0+16)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	r1 = _ZTV18btTriangleCallback;
	r1 = (r1 + 8)|0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	heap32[(r0)] = r1;
	return;
}

function _ZN24btConvexTriangleCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV24btConvexTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+12)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+5)];
	r4 = heap32[(r2+16)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+12)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	r4 = heap32[(r2+16)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	r1 = _ZTV18btTriangleCallback;
	r1 = (r1 + 8)|0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
var __label__ = 0;
	i7 = sp + -240;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+13)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(r0+12)];
	r4 = heap32[(r0+2)];
if(!(r1 ==0)) //_LBB277_4
{
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
if(!(r1 ==0)) //_LBB277_4
{
	r5 = r1 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+12)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r1 = r_g0 & 1;
if(!(r1 ==0)) //_LBB277_4
{
	r1 = sp + -112;
	r5 = r1 >> 2;
	heap32[(fp+-28)] = 1065353216;
	heap32[(r5+1)] = 1065353216;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	r5 = heap32[(r0+13)];
	r5 = r5 >> 2;
	r6 = r4 >> 2;
	r7 = r2 >> 2;
	r8 = heap32[(r5+5)];
	r8 = r8 >> 2;
	f0 = heapFloat[(r7+4)];
	f1 = heapFloat[(r6+1)];
	f2 = heapFloat[(r7+5)];
	f3 = heapFloat[(r6+2)];
	r8 = heap32[(r8)];
	f4 = heapFloat[(r6+5)];
	f5 = heapFloat[(r6+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r7+6)];
	f7 = heapFloat[(r6+3)];
	r8 = r8 >> 2;
	f8 = heapFloat[(r6+9)];
	f9 = heapFloat[(r6+10)];
	f10 = heapFloat[(r6+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r6+11)];
	r8 = heap32[(r8+2)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r6+13)];
	f8 = heapFloat[(r6+15)];
	f9 = heapFloat[(r6+14)];
	r9 = sp + -96;
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	r10 = r9 >> 2;
	f2 = f4+f9;
	heapFloat[(fp+-24)] = f1;
	f0 = f0+f8;
	heapFloat[(r10+1)] = f2;
	heapFloat[(r10+2)] = f0;
	heap32[(r10+3)] = 0;
	f0 = heapFloat[(r7)];
	f1 = heapFloat[(r6+1)];
	f2 = heapFloat[(r7+1)];
	f3 = heapFloat[(r6+2)];
	f4 = heapFloat[(r6+5)];
	f5 = heapFloat[(r6+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r7+2)];
	f7 = heapFloat[(r6+3)];
	f8 = heapFloat[(r6+9)];
	f9 = heapFloat[(r6+10)];
	f10 = heapFloat[(r6+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r6+11)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r6+13)];
	f8 = heapFloat[(r6+15)];
	f9 = heapFloat[(r6+14)];
	r10 = sp + -80;
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	r11 = r10 >> 2;
	f2 = f4+f9;
	heapFloat[(fp+-20)] = f1;
	f0 = f0+f8;
	heapFloat[(r11+1)] = f2;
	heapFloat[(r11+2)] = f0;
	heap32[(r11+3)] = 0;
	r5 = heap32[(r5+5)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r1;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r5 = heap32[(r0+13)];
	r5 = r5 >> 2;
	r8 = heap32[(r5+5)];
	r8 = r8 >> 2;
	f0 = heapFloat[(r7+8)];
	f1 = heapFloat[(r6+1)];
	f2 = heapFloat[(r7+9)];
	f3 = heapFloat[(r6+2)];
	r8 = heap32[(r8)];
	f4 = heapFloat[(r6+5)];
	f5 = heapFloat[(r6+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r7+10)];
	f7 = heapFloat[(r6+3)];
	r8 = r8 >> 2;
	f8 = heapFloat[(r6+9)];
	f9 = heapFloat[(r6+10)];
	f10 = heapFloat[(r6+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r6+11)];
	r8 = heap32[(r8+2)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r6+13)];
	f8 = heapFloat[(r6+15)];
	f9 = heapFloat[(r6+14)];
	r9 = sp + -64;
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	r10 = r9 >> 2;
	f2 = f4+f9;
	heapFloat[(fp+-16)] = f1;
	f0 = f0+f8;
	heapFloat[(r10+1)] = f2;
	heapFloat[(r10+2)] = f0;
	heap32[(r10+3)] = 0;
	f0 = heapFloat[(r7+4)];
	f1 = heapFloat[(r6+1)];
	f2 = heapFloat[(r7+5)];
	f3 = heapFloat[(r6+2)];
	f4 = heapFloat[(r6+5)];
	f5 = heapFloat[(r6+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r7+6)];
	f7 = heapFloat[(r6+3)];
	f8 = heapFloat[(r6+9)];
	f9 = heapFloat[(r6+10)];
	f10 = heapFloat[(r6+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r6+11)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r6+13)];
	f8 = heapFloat[(r6+15)];
	f9 = heapFloat[(r6+14)];
	r10 = sp + -48;
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	r11 = r10 >> 2;
	f2 = f4+f9;
	heapFloat[(fp+-12)] = f1;
	f0 = f0+f8;
	heapFloat[(r11+1)] = f2;
	heapFloat[(r11+2)] = f0;
	heap32[(r11+3)] = 0;
	r5 = heap32[(r5+5)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r1;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r5 = heap32[(r0+13)];
	r5 = r5 >> 2;
	r8 = heap32[(r5+5)];
	r8 = r8 >> 2;
	f0 = heapFloat[(r7)];
	f1 = heapFloat[(r6+1)];
	f2 = heapFloat[(r7+1)];
	f3 = heapFloat[(r6+2)];
	r8 = heap32[(r8)];
	f4 = heapFloat[(r6+5)];
	f5 = heapFloat[(r6+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r7+2)];
	f7 = heapFloat[(r6+3)];
	r8 = r8 >> 2;
	f8 = heapFloat[(r6+9)];
	f9 = heapFloat[(r6+10)];
	f10 = heapFloat[(r6+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r6+11)];
	r8 = heap32[(r8+2)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r6+13)];
	f8 = heapFloat[(r6+15)];
	f9 = heapFloat[(r6+14)];
	r9 = sp + -32;
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	r10 = r9 >> 2;
	f2 = f4+f9;
	heapFloat[(fp+-8)] = f1;
	f0 = f0+f8;
	heapFloat[(r10+1)] = f2;
	heapFloat[(r10+2)] = f0;
	heap32[(r10+3)] = 0;
	f0 = heapFloat[(r7+8)];
	f1 = heapFloat[(r6+1)];
	f2 = heapFloat[(r7+9)];
	f3 = heapFloat[(r6+2)];
	f4 = heapFloat[(r6+5)];
	f5 = heapFloat[(r6+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r7+10)];
	f7 = heapFloat[(r6+3)];
	f8 = heapFloat[(r6+9)];
	f9 = heapFloat[(r6+10)];
	f10 = heapFloat[(r6+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r6+11)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r6+13)];
	f8 = heapFloat[(r6+15)];
	f9 = heapFloat[(r6+14)];
	r6 = sp + -16;
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	r7 = r6 >> 2;
	f2 = f4+f9;
	heapFloat[(fp+-4)] = f1;
	f0 = f0+f8;
	heapFloat[(r7+1)] = f2;
	heapFloat[(r7+2)] = f0;
	heap32[(r7+3)] = 0;
	r5 = heap32[(r5+5)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r1;
	__FUNCTION_TABLE__[(r8)>>2](i7);
}
}
}
	r1 = heap32[(r0+1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+48)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+1)];
if(!(r1 >19)) //_LBB277_9
{
	r1 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	r6 = sp + -216;
	r7 = r6 >> 2;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 1065353216;
	heap32[(r7+4)] = 1065353216;
	r8 = _ZTV15btTriangleShape;
	heap32[(r7+5)] = 1065353216;
	r8 = (r8 + 8)|0;
	heap32[(r7+6)] = 0;
	heap32[(fp+-54)] = r8;
	r2 = r2 >> 2;
	heap32[(r7+1)] = 1;
	heap32[(r7+13)] = heap32[(r2)];
	heap32[(r7+14)] = heap32[(r2+1)];
	heap32[(r7+15)] = heap32[(r2+2)];
	heap32[(r7+16)] = heap32[(r2+3)];
	heap32[(r7+17)] = heap32[(r2+4)];
	heap32[(r7+18)] = heap32[(r2+5)];
	heap32[(r7+19)] = heap32[(r2+6)];
	heap32[(r7+20)] = heap32[(r2+7)];
	heap32[(r7+21)] = heap32[(r2+8)];
	heap32[(r7+22)] = heap32[(r2+9)];
	heap32[(r7+23)] = heap32[(r2+10)];
	heap32[(r7+24)] = heap32[(r2+11)];
	r2 = r4 >> 2;
	heap32[(r7+11)] = heap32[(r0+14)];
	r4 = heap32[(r2+48)];
	heap32[(r2+48)] = r6;
	r6 = r3 >> 2;
	r7 = heap32[(r6)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+2)];
	r8 = heap32[(r0+16)];
	r9 = heap32[(r0+2)];
	r10 = heap32[(r0+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r8;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r7 = r_g0;
	r8 = heap32[(r0+11)];
	r9 = r8 >> 2;
	r10 = heap32[(r9)];
	r9 = heap32[(r9+34)];
	r11 = heap32[(r0+2)];
	if(r9 !=r11) //_LBB277_7
{
	r9 = r10 >> 2;
	r9 = heap32[(r9+3)];
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r5;
	__FUNCTION_TABLE__[(r9)>>2](i7);
}
else{
	r10 = r10 >> 2;
	r10 = heap32[(r10+2)];
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r5;
	__FUNCTION_TABLE__[(r10)>>2](i7);
}
	r1 = r7 >> 2;
	r5 = heap32[(r1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+2)];
	r8 = heap32[(r0+11)];
	r9 = heap32[(r0+13)];
	r10 = heap32[(r0+2)];
	r0 = heap32[(r0+1)];
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r9;
	heap32[(g0+4)] = r8;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r0 = heap32[(r1)];
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	heap32[(g0)] = r7;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	r0 = heap32[(r6)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+13)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r7;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	heap32[(r2+48)] = r4;
}
	return;
}

function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -800;var g0 = i7>>2; // save stack
	r0 = sp + -64;
	r1 = r0 >> 2;
	heap32[(fp+-16)] = 1065353216;
	heap32[(r1+1)] = 0;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 0;
	heap32[(r1+4)] = 0;
	heap32[(r1+5)] = 1065353216;
	heap32[(r1+6)] = 0;
	heap32[(r1+7)] = 0;
	heap32[(r1+8)] = 0;
	heap32[(r1+9)] = 0;
	heap32[(r1+10)] = 1065353216;
	heap32[(r1+11)] = 0;
	heap32[(r1+12)] = 0;
	heap32[(r1+13)] = 0;
	r2 = _ZTVN12btConvexCast10CastResultE;
	heap32[(r1+14)] = 0;
	r3 = sp + -240;
	r2 = (r2 + 8)|0;
	heap32[(r1+15)] = 0;
	r1 = r3 >> 2;
	heap32[(fp+-60)] = r2;
	r2 = heap32[(fp)];
	heap32[(r1+42)] = 0;
	r4 = r2 >> 2;
	heap32[(r1+43)] = 0;
	r5 = sp + -296;
	heap32[(r1+41)] = heap32[(r4+50)];
	r6 = r5 >> 2;
	f0 = heapFloat[(r4+49)];
	heap32[(r6+2)] = 0;
	heap32[(r6+3)] = 1065353216;
	heap32[(r6+4)] = 1065353216;
	r7 = _ZTV13btSphereShape;
	heap32[(r6+5)] = 1065353216;
	r7 = (r7 + 8)|0;
	heap32[(r6+6)] = 0;
	heap32[(fp+-74)] = r7;
	heap32[(r6+1)] = 8;
	r7 = sp + -400;
	heapFloat[(r6+7)] = f0;
	r8 = r7 >> 2;
	heapFloat[(r6+11)] = f0;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 1065353216;
	heap32[(r8+4)] = 1065353216;
	heap32[(r8+5)] = 1065353216;
	r6 = _ZTV15btTriangleShape;
	heap32[(r8+6)] = 0;
	r6 = (r6 + 8)|0;
	heap32[(r8+11)] = 1025758986;
	r9 = heap32[(fp+1)];
	heap32[(fp+-100)] = r6;
	r6 = r9 >> 2;
	heap32[(r8+1)] = 1;
	heap32[(r8+13)] = heap32[(r6)];
	heap32[(r8+14)] = heap32[(r6+1)];
	heap32[(r8+15)] = heap32[(r6+2)];
	heap32[(r8+16)] = heap32[(r6+3)];
	heap32[(r8+17)] = heap32[(r6+4)];
	heap32[(r8+18)] = heap32[(r6+5)];
	heap32[(r8+19)] = heap32[(r6+6)];
	heap32[(r8+20)] = heap32[(r6+7)];
	heap32[(r8+21)] = heap32[(r6+8)];
	heap32[(r8+22)] = heap32[(r6+9)];
	r9 = sp + -760;
	heap32[(r8+23)] = heap32[(r6+10)];
	r10 = r9 >> 2;
	heap32[(r8+24)] = heap32[(r6+11)];
	r6 = _ZTV22btSubsimplexConvexCast;
	r8 = 0;
	heap32[(r10+77)] = 953267991;
	r10 = sp + -776;
	r6 = (r6 + 8)|0;
	heap8[sp+-428] = r8;
	r8 = r10 >> 2;
	heap32[(fp+-194)] = r6;
	heap32[(r8+1)] = r9;
	heap32[(r8+2)] = r5;
	heap32[(r8+3)] = r7;
	r5 = (r2 + 4)|0;
	r2 = (r2 + 68)|0;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r0;
	heap32[(g0+4)] = r0;
	heap32[(g0+5)] = r3;
	_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB280_3
{
	f0 = heapFloat[(r1+41)];
	f1 = heapFloat[(r4+50)];
if(!(f1 <=f0)) //_LBB280_3
{
	heapFloat[(r4+50)] = f0;
}
}
	return;
}

function _ZN15btTriangleShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN15btTriangleShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB282_2
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _2E_str10;
	r1 = _2E_str3112;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 125;
	_assert(i7);
}

function _ZNK21btConvexInternalShape9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+10)];
	r3 = heap32[(fp)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	r5 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
if(!(r4 ==0)) //_LBB284_2
{
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+12)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	r0 = r3 >> 2;
	r1 = heap32[(r0+1)];
	heap32[(r5+1)] = r1;
	heap32[(r5+7)] = heap32[(r0+7)];
	heap32[(r5+8)] = heap32[(r0+8)];
	heap32[(r5+9)] = heap32[(r0+9)];
	heap32[(r5+10)] = heap32[(r0+10)];
	heap32[(r5+3)] = heap32[(r0+3)];
	heap32[(r5+4)] = heap32[(r0+4)];
	heap32[(r5+5)] = heap32[(r0+5)];
	heap32[(r5+6)] = heap32[(r0+6)];
	heap32[(r5+11)] = heap32[(r0+11)];
	r0 = _2E_str1110;
	r_g0 = r0;
	return;
}

function _ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+23)];
	f1 = heapFloat[(r0+15)];
	f2 = heapFloat[(r0+19)];
	f3 = heapFloat[(r0+22)];
	f4 = heapFloat[(r0+14)];
	f5 = heapFloat[(r0+18)];
	f5 = f5-f4;
	f0 = f0-f1;
	f1 = f2-f1;
	f2 = f3-f4;
	f3 = heapFloat[(r0+21)];
	f4 = heapFloat[(r0+13)];
	f6 = heapFloat[(r0+17)];
	f3 = f3-f4;
	f4 = f6-f4;
	r0 = heap32[(fp+2)];
	f6 = f5*f0;
	f7 = f1*f2;
	f6 = f6-f7;
	f1 = f1*f3;
	f0 = f4*f0;
	r0 = r0 >> 2;
	f0 = f1-f0;
	heapFloat[(r0)] = f6;
	f1 = f4*f2;
	f2 = f5*f3;
	f1 = f1-f2;
	heapFloat[(r0+1)] = f0;
	heapFloat[(r0+2)] = f1;
	f2 = f6*f6;
	f0 = f0*f0;
	heap32[(r0+3)] = 0;
	f0 = f2+f0;
	f1 = f1*f1;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	f0 = f1/f_g0;
	f1 = heapFloat[(r0)];
	f1 = f1*f0;
	heapFloat[(r0)] = f1;
	f2 = heapFloat[(r0+1)];
	f2 = f2*f0;
	heapFloat[(r0+1)] = f2;
	f3 = heapFloat[(r0+2)];
	f0 = f3*f0;
	heapFloat[(r0+2)] = f0;
	r1 = heap32[(fp+1)];
if(!(r1 ==0)) //_LBB285_2
{
	f1 = -f1;
	f2 = -f2;
	heapFloat[(r0)] = f1;
	f0 = -f0;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f0;
}
	return;
}

function _ZNK15btTriangleShape8isInsideERK9btVector3f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	f0 = heapFloat[(r1+19)];
	f1 = heapFloat[(r1+15)];
	f2 = heapFloat[(r1+23)];
	f3 = heapFloat[(r1+17)];
	f4 = heapFloat[(r1+13)];
	f5 = heapFloat[(r1+21)];
	f6 = heapFloat[(r1+22)];
	f7 = heapFloat[(r1+14)];
	f8 = heapFloat[(r1+18)];
	f0 = f0-f1;
	f6 = f6-f7;
	f3 = f3-f4;
	f1 = f2-f1;
	f2 = f8-f7;
	f4 = f5-f4;
	f5 = f2*f1;
	f7 = f0*f6;
	f0 = f0*f4;
	f1 = f3*f1;
	f5 = f5-f7;
	f0 = f0-f1;
	f1 = f3*f6;
	f2 = f2*f4;
	f1 = f1-f2;
	f2 = f5*f5;
	f3 = f0*f0;
	f2 = f2+f3;
	f3 = f1*f1;
	f2 = f2+f3;
	heapFloat[(g0)] = f2;
	sqrtf(i7);
	r2 = heap32[(fp+1)];
	f3 =                         1;
	r2 = r2 >> 2;
	f2 = f3/f_g0;
	f4 = f5*f2;
	f5 = heapFloat[(r2)];
	f6 = heapFloat[(r1+13)];
	f0 = f0*f2;
	f7 = heapFloat[(r2+1)];
	f8 = heapFloat[(r1+14)];
	f1 = f1*f2;
	f2 = heapFloat[(r2+2)];
	f9 = heapFloat[(r1+15)];
	f5 = f5*f4;
	f7 = f7*f0;
	f6 = f6*f4;
	f8 = f8*f0;
	f5 = f5+f7;
	f2 = f2*f1;
	f6 = f6+f8;
	f7 = f9*f1;
	f8 = heapFloat[(fp+2)];
	f2 = f5+f2;
	f5 = f6+f7;
	f2 = f2-f5;
	f5 = -f8;
_1: do {
	if(f2 <f5) //_LBB286_2
{
__label__ = 2;
}
else{
	if(f2 <=f8) //_LBB286_3
{
	r3 = 0;
_4: while(true){
	if(r3 <3) //_LBB286_4
{
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+23)];
	r5 = sp + -32;
	r6 = sp + -16;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r5 >> 2;
	r5 = r6 >> 2;
	f2 = heapFloat[(r4+2)];
	f6 = heapFloat[(r5+2)];
	f7 = heapFloat[(r4+1)];
	f8 = heapFloat[(r5+1)];
	f9 = heapFloat[(fp+-8)];
	f10 = heapFloat[(fp+-4)];
	f2 = f2-f6;
	f6 = f9-f10;
	f7 = f7-f8;
	f8 = f7*f1;
	f9 = f2*f0;
	f2 = f2*f4;
	f10 = f6*f1;
	f8 = f8-f9;
	f2 = f2-f10;
	f6 = f6*f0;
	f7 = f7*f4;
	f6 = f6-f7;
	f7 = f8*f8;
	f9 = f2*f2;
	f7 = f7+f9;
	f9 = f6*f6;
	f7 = f7+f9;
	heapFloat[(g0)] = f7;
	sqrtf(i7);
	f7 = f3/f_g0;
	f9 = heapFloat[(r2)];
	f8 = f8*f7;
	f10 = heapFloat[(fp+-4)];
	f11 = heapFloat[(r2+1)];
	f2 = f2*f7;
	f12 = heapFloat[(r5+1)];
	f9 = f9*f8;
	f11 = f11*f2;
	f13 = heapFloat[(r2+2)];
	f6 = f6*f7;
	f7 = heapFloat[(r5+2)];
	f8 = f10*f8;
	f2 = f12*f2;
	f9 = f9+f11;
	f10 = f13*f6;
	f2 = f8+f2;
	f6 = f7*f6;
	f7 = f9+f10;
	f2 = f2+f6;
	f2 = f7-f2;
	if(f2 <f5) //_LBB286_2
{
__label__ = 2;
break _1;
}
else{
	r3 = (r3 + 1)|0;
}
}
else{
break _4;
}
}
	r0 = 1;
__label__ = 8;
}
else{
__label__ = 2;
}
}
} while(0);
if (__label__ == 2){
	r0 = 0;
}
	r0 = r0 & 255;
	r_g0 = r0;
	return;
}

function _ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+23)];
	f1 = heapFloat[(r0+15)];
	f2 = heapFloat[(r0+19)];
	f3 = heapFloat[(r0+22)];
	f4 = heapFloat[(r0+14)];
	f5 = heapFloat[(r0+18)];
	f5 = f5-f4;
	f0 = f0-f1;
	f1 = f2-f1;
	f2 = f3-f4;
	f3 = heapFloat[(r0+21)];
	f4 = heapFloat[(r0+13)];
	f6 = heapFloat[(r0+17)];
	f3 = f3-f4;
	f4 = f6-f4;
	r1 = heap32[(fp+2)];
	f6 = f5*f0;
	f7 = f1*f2;
	f6 = f6-f7;
	r1 = r1 >> 2;
	f1 = f1*f3;
	f0 = f4*f0;
	f0 = f1-f0;
	heapFloat[(r1)] = f6;
	f1 = f4*f2;
	f2 = f5*f3;
	f1 = f1-f2;
	heapFloat[(r1+1)] = f0;
	heapFloat[(r1+2)] = f1;
	f2 = f6*f6;
	f0 = f0*f0;
	heap32[(r1+3)] = 0;
	f0 = f2+f0;
	f1 = f1*f1;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	f0 = f1/f_g0;
	f1 = heapFloat[(r1)];
	f1 = f1*f0;
	heapFloat[(r1)] = f1;
	f1 = heapFloat[(r1+1)];
	f1 = f1*f0;
	heapFloat[(r1+1)] = f1;
	f1 = heapFloat[(r1+2)];
	r2 = heap32[(fp+3)];
	f0 = f1*f0;
	r2 = r2 >> 2;
	heapFloat[(r1+2)] = f0;
	heap32[(r2)] = heap32[(r0+13)];
	heap32[(r2+1)] = heap32[(r0+14)];
	heap32[(r2+2)] = heap32[(r0+15)];
	heap32[(r2+3)] = heap32[(r0+16)];
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -440;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = heapU8[r0+8];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = r0 == 0 ? r1 : r2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r3+30)];
	f1 = heapFloat[(r3+14)];
	f2 = heapFloat[(r3+29)];
	f3 = heapFloat[(r3+13)];
	f4 = f2-f3;
	f5 = f0-f1;
	f6 = heapFloat[(r3+31)];
	f7 = heapFloat[(r3+15)];
	f8 = f6-f7;
	f4 = f4*f4;
	f5 = f5*f5;
	f9 = heapFloat[(r3+62)];
	f4 = f4+f5;
	f5 = f8*f8;
	f8 = f9*f9;
	f4 = f4+f5;
if(!(f8 >f4)) //_LBB288_23
{
	r0 = r0 == 0 ? r2 : r1;
	r0 = r0 >> 2;
	r1 = heap32[(r0+48)];
	r2 = r1 >> 2;
	r4 = heap32[(r2+1)];
	r4 = (r4 + -21)|0;
if(!(uint(r4) >uint(8))) //_LBB288_23
{
	f4 = heapFloat[(r0+13)];
	f5 = heapFloat[(r0+3)];
	f8 = heapFloat[(r0+2)];
	f4 = -f4;
	f9 = heapFloat[(r0+1)];
	f10 = heapFloat[(r0+7)];
	f11 = heapFloat[(r0+6)];
	f12 = heapFloat[(r0+14)];
	f13 = heapFloat[(r0+5)];
	f14 = heapFloat[(r3+3)];
	f15 = heapFloat[(r3+7)];
	f16 = heapFloat[(r3+2)];
	f17 = heapFloat[(r3+6)];
	f18 = heapFloat[(r3+1)];
	f19 = heapFloat[(r3+5)];
	f20 = heapFloat[(r3+19)];
	heapFloat[(fp+-63)] = f20;
	f21 = heapFloat[(r3+23)];
	f22 = heapFloat[(r3+18)];
	f23 = heapFloat[(r3+22)];
	f24 = heapFloat[(r3+17)];
	f25 = heapFloat[(r3+21)];
	f26 = f5*f3;
	heapFloat[(fp+-65)] = f26;
	f27 = f10*f1;
	f28 = f8*f3;
	heapFloat[(fp+-66)] = f28;
	f29 = f11*f1;
	f3 = f9*f3;
	heapFloat[(fp+-64)] = f3;
	f1 = f13*f1;
	f30 = heapFloat[(r0+11)];
	f3 = heapFloat[(r0+10)];
	f20 = heapFloat[(r0+15)];
	f26 = heapFloat[(r0+9)];
	f28 = f5*f2;
	heapFloat[(fp+-67)] = f28;
	f28 = f10*f0;
	heapFloat[(fp+-69)] = f28;
	f28 = f5*f4;
	heapFloat[(fp+-68)] = f28;
	f28 = f10*f12;
	heapFloat[(fp+-71)] = f28;
	f28 = f8*f2;
	heapFloat[(fp+-70)] = f28;
	f28 = f11*f0;
	heapFloat[(fp+-73)] = f28;
	f28 = f8*f4;
	heapFloat[(fp+-72)] = f28;
	f28 = f11*f12;
	heapFloat[(fp+-78)] = f28;
	f2 = f9*f2;
	heapFloat[(fp+-74)] = f2;
	f0 = f13*f0;
	heapFloat[(fp+-76)] = f0;
	f4 = f9*f4;
	heapFloat[(fp+-75)] = f4;
	f12 = f13*f12;
	heapFloat[(fp+-77)] = f12;
	f0 = heapFloat[(r3+11)];
	f2 = heapFloat[(r3+10)];
	f4 = heapFloat[(r3+9)];
	f12 = heapFloat[(r3+27)];
	f28 = heapFloat[(r3+26)];
	heapFloat[(fp+-62)] = f28;
	f28 = heapFloat[(r3+25)];
	heapFloat[(fp+-61)] = f28;
	f28 = heapFloat[(fp+-65)];
	f27 = f28+f27;
	heapFloat[(fp+-65)] = f27;
	f27 = f30*f7;
	heapFloat[(fp+-99)] = f27;
	f28 = heapFloat[(fp+-66)];
	f28 = f28+f29;
	heapFloat[(fp+-66)] = f28;
	f29 = f3*f7;
	heapFloat[(fp+-98)] = f29;
	f27 = heapFloat[(fp+-64)];
	f1 = f27+f1;
	heapFloat[(fp+-80)] = f1;
	f7 = f26*f7;
	heapFloat[(fp+-97)] = f7;
	f27 = f14*f5;
	heapFloat[(fp+-64)] = f27;
	f1 = f15*f10;
	heapFloat[(fp+-82)] = f1;
	f1 = f16*f5;
	heapFloat[(fp+-79)] = f1;
	f1 = f17*f10;
	heapFloat[(fp+-84)] = f1;
	f1 = f18*f5;
	heapFloat[(fp+-81)] = f1;
	f1 = f19*f10;
	heapFloat[(fp+-86)] = f1;
	f1 = f14*f8;
	heapFloat[(fp+-83)] = f1;
	f1 = f15*f11;
	heapFloat[(fp+-88)] = f1;
	f1 = f16*f8;
	heapFloat[(fp+-85)] = f1;
	f1 = f17*f11;
	heapFloat[(fp+-92)] = f1;
	f1 = f18*f8;
	heapFloat[(fp+-87)] = f1;
	f1 = f19*f11;
	heapFloat[(fp+-93)] = f1;
	f14 = f14*f9;
	heapFloat[(fp+-89)] = f14;
	f15 = f15*f13;
	heapFloat[(fp+-94)] = f15;
	f16 = f16*f9;
	heapFloat[(fp+-90)] = f16;
	f17 = f17*f13;
	heapFloat[(fp+-95)] = f17;
	f18 = f18*f9;
	heapFloat[(fp+-91)] = f18;
	f19 = f19*f13;
	heapFloat[(fp+-96)] = f19;
	f1 = heapFloat[(fp+-67)];
	f7 = heapFloat[(fp+-69)];
	f1 = f1+f7;
	f7 = f30*f6;
	f14 = heapFloat[(fp+-68)];
	f15 = heapFloat[(fp+-71)];
	f14 = f14-f15;
	f15 = f30*f20;
	f16 = heapFloat[(fp+-70)];
	f17 = heapFloat[(fp+-73)];
	f16 = f16+f17;
	f17 = f3*f6;
	f18 = heapFloat[(fp+-72)];
	f19 = heapFloat[(fp+-78)];
	f18 = f18-f19;
	f19 = f3*f20;
	f27 = heapFloat[(fp+-74)];
	f28 = heapFloat[(fp+-76)];
	f27 = f27+f28;
	f6 = f26*f6;
	f28 = heapFloat[(fp+-75)];
	f29 = heapFloat[(fp+-77)];
	f28 = f28-f29;
	f20 = f26*f20;
	f29 = heapFloat[(fp+-63)];
	f29 = f29*f5;
	heapFloat[(fp+-67)] = f29;
	f29 = f21*f10;
	heapFloat[(fp+-69)] = f29;
	f29 = f22*f5;
	heapFloat[(fp+-68)] = f29;
	f29 = f23*f10;
	f5 = f24*f5;
	heapFloat[(fp+-70)] = f5;
	f5 = f25*f10;
	heapFloat[(fp+-101)] = f5;
	f10 = heapFloat[(fp+-63)];
	f5 = f10*f8;
	heapFloat[(fp+-71)] = f5;
	f5 = f21*f11;
	heapFloat[(fp+-73)] = f5;
	f5 = f22*f8;
	heapFloat[(fp+-72)] = f5;
	f5 = f23*f11;
	heapFloat[(fp+-100)] = f5;
	f8 = f24*f8;
	heapFloat[(fp+-74)] = f8;
	f5 = f25*f11;
	heapFloat[(fp+-102)] = f5;
	f8 = f10*f9;
	heapFloat[(fp+-75)] = f8;
	f5 = f21*f13;
	heapFloat[(fp+-103)] = f5;
	f8 = f22*f9;
	heapFloat[(fp+-78)] = f8;
	f5 = f23*f13;
	heapFloat[(fp+-104)] = f5;
	f8 = f24*f9;
	heapFloat[(fp+-76)] = f8;
	f5 = f25*f13;
	heapFloat[(fp+-105)] = f5;
	f8 = heapFloat[(fp+-65)];
	f9 = heapFloat[(fp+-99)];
	f8 = f8+f9;
	heapFloat[(fp+-77)] = f8;
	f9 = f14-f15;
	f1 = f1+f7;
	heapFloat[(fp+-63)] = f1;
	f7 = heapFloat[(fp+-66)];
	f10 = heapFloat[(fp+-98)];
	f7 = f7+f10;
	heapFloat[(fp+-98)] = f7;
	f10 = f18-f19;
	f11 = f16+f17;
	heapFloat[(fp+-65)] = f11;
	f13 = heapFloat[(fp+-80)];
	f14 = heapFloat[(fp+-97)];
	f1 = f13+f14;
	heapFloat[(fp+-80)] = f1;
	f5 = f28-f20;
	f6 = f27+f6;
	heapFloat[(fp+-66)] = f6;
	f7 = heapFloat[(fp+-64)];
	f8 = heapFloat[(fp+-82)];
	f1 = f7+f8;
	heapFloat[(fp+-64)] = f1;
	f1 = f0*f30;
	heapFloat[(fp+-82)] = f1;
	f6 = heapFloat[(fp+-79)];
	f7 = heapFloat[(fp+-84)];
	f1 = f6+f7;
	heapFloat[(fp+-79)] = f1;
	f1 = f2*f30;
	heapFloat[(fp+-84)] = f1;
	f6 = heapFloat[(fp+-81)];
	f7 = heapFloat[(fp+-86)];
	f1 = f6+f7;
	heapFloat[(fp+-81)] = f1;
	f1 = f4*f30;
	heapFloat[(fp+-86)] = f1;
	f6 = heapFloat[(fp+-83)];
	f7 = heapFloat[(fp+-88)];
	f1 = f6+f7;
	heapFloat[(fp+-83)] = f1;
	f1 = f0*f3;
	heapFloat[(fp+-88)] = f1;
	f6 = heapFloat[(fp+-85)];
	f7 = heapFloat[(fp+-92)];
	f1 = f6+f7;
	heapFloat[(fp+-85)] = f1;
	f1 = f2*f3;
	heapFloat[(fp+-92)] = f1;
	f6 = heapFloat[(fp+-87)];
	f7 = heapFloat[(fp+-93)];
	f1 = f6+f7;
	heapFloat[(fp+-87)] = f1;
	f1 = f4*f3;
	heapFloat[(fp+-93)] = f1;
	f6 = heapFloat[(fp+-89)];
	f7 = heapFloat[(fp+-94)];
	f1 = f6+f7;
	heapFloat[(fp+-89)] = f1;
	f0 = f0*f26;
	f6 = heapFloat[(fp+-90)];
	f7 = heapFloat[(fp+-95)];
	f6 = f6+f7;
	f2 = f2*f26;
	f7 = heapFloat[(fp+-91)];
	f8 = heapFloat[(fp+-96)];
	f7 = f7+f8;
	f4 = f4*f26;
	f8 = heapFloat[(fp+-67)];
	f11 = heapFloat[(fp+-69)];
	f8 = f8+f11;
	f11 = f12*f30;
	f13 = heapFloat[(fp+-68)];
	f13 = f13+f29;
	f28 = heapFloat[(fp+-62)];
	f14 = f28*f30;
	f15 = heapFloat[(fp+-70)];
	f16 = heapFloat[(fp+-101)];
	f15 = f15+f16;
	f28 = heapFloat[(fp+-61)];
	f16 = f28*f30;
	f17 = heapFloat[(fp+-71)];
	f18 = heapFloat[(fp+-73)];
	f17 = f17+f18;
	f18 = f12*f3;
	f19 = heapFloat[(fp+-72)];
	f20 = heapFloat[(fp+-100)];
	f19 = f19+f20;
	f28 = heapFloat[(fp+-62)];
	f20 = f28*f3;
	f21 = heapFloat[(fp+-74)];
	f22 = heapFloat[(fp+-102)];
	f21 = f21+f22;
	f28 = heapFloat[(fp+-61)];
	f3 = f28*f3;
	f22 = heapFloat[(fp+-75)];
	f23 = heapFloat[(fp+-103)];
	f22 = f22+f23;
	f12 = f12*f26;
	f23 = heapFloat[(fp+-78)];
	f24 = heapFloat[(fp+-104)];
	f23 = f23+f24;
	f28 = heapFloat[(fp+-62)];
	f24 = f28*f26;
	f25 = heapFloat[(fp+-76)];
	f27 = heapFloat[(fp+-105)];
	f25 = f25+f27;
	f28 = heapFloat[(fp+-61)];
	f26 = f28*f26;
	f27 = heapFloat[(fp+-77)];
	f27 = f27+f9;
	f28 = heapFloat[(fp+-98)];
	f28 = f28+f10;
	f29 = heapFloat[(fp+-80)];
	f29 = f29+f5;
	f30 = heapFloat[(fp+-64)];
	f1 = heapFloat[(fp+-82)];
	f1 = f30+f1;
	heapFloat[(fp+-61)] = f1;
	f1 = heapFloat[(fp+-79)];
	f30 = heapFloat[(fp+-84)];
	f1 = f1+f30;
	heapFloat[(fp+-62)] = f1;
	f1 = heapFloat[(fp+-81)];
	f30 = heapFloat[(fp+-86)];
	f1 = f1+f30;
	heapFloat[(fp+-64)] = f1;
	f1 = heapFloat[(fp+-83)];
	f30 = heapFloat[(fp+-88)];
	f1 = f1+f30;
	heapFloat[(fp+-67)] = f1;
	f1 = heapFloat[(fp+-85)];
	f30 = heapFloat[(fp+-92)];
	f1 = f1+f30;
	heapFloat[(fp+-68)] = f1;
	f1 = heapFloat[(fp+-87)];
	f30 = heapFloat[(fp+-93)];
	f1 = f1+f30;
	f30 = heapFloat[(fp+-89)];
	f0 = f30+f0;
	f2 = f6+f2;
	f4 = f7+f4;
	f6 = heapFloat[(fp+-63)];
	f6 = f6+f9;
	f7 = heapFloat[(fp+-65)];
	f7 = f7+f10;
	f9 = heapFloat[(fp+-66)];
	f5 = f9+f5;
	f8 = f8+f11;
	f9 = f13+f14;
	f10 = f15+f16;
	f11 = f17+f18;
	f13 = f19+f20;
	f3 = f21+f3;
	f12 = f22+f12;
	f14 = f23+f24;
	f15 = f25+f26;
	r0 = sp + -16;
	r4 = r0 >> 2;
	heapFloat[(fp+-4)] = f29;
	heapFloat[(r4+1)] = f28;
	heapFloat[(r4+2)] = f27;
	heap32[(r4+3)] = 0;
	if(f5 <f29) //_LBB288_4
{
	heapFloat[(fp+-4)] = f5;
	f16 = f5;
}
else{
	f16 = f29;
}
	if(f7 <f28) //_LBB288_7
{
	heapFloat[(r4+1)] = f7;
	f17 = f7;
}
else{
	f17 = f28;
}
	if(f6 <f27) //_LBB288_10
{
	heapFloat[(r4+2)] = f6;
	f18 = f6;
}
else{
	f18 = f27;
}
	r5 = sp + -32;
	r6 = r5 >> 2;
	heapFloat[(fp+-8)] = f29;
	heapFloat[(r6+1)] = f28;
	heapFloat[(r6+2)] = f27;
	heap32[(r6+3)] = 0;
	if(f29 <f5) //_LBB288_13
{
	heapFloat[(fp+-8)] = f5;
	f19 = f5;
}
else{
	f19 = f29;
}
	if(f28 <f7) //_LBB288_16
{
	heapFloat[(r6+1)] = f7;
	f20 = f7;
}
else{
	f20 = f28;
}
	if(f27 <f6) //_LBB288_19
{
	heapFloat[(r6+2)] = f6;
	f21 = f6;
}
else{
	f21 = f27;
}
	f22 = heapFloat[(r3+61)];
	f16 = f16-f22;
	f17 = f17-f22;
	heapFloat[(fp+-4)] = f16;
	f16 = f18-f22;
	heapFloat[(r4+1)] = f17;
	f17 = f19+f22;
	heapFloat[(r4+2)] = f16;
	f16 = f20+f22;
	heapFloat[(fp+-8)] = f17;
	r4 = _ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback;
	f17 = f21+f22;
	heapFloat[(r6+1)] = f16;
	r7 = sp + -240;
	r4 = (r4 + 8)|0;
	heapFloat[(r6+2)] = f17;
	r6 = r7 >> 2;
	heap32[(fp+-60)] = r4;
	heapFloat[(r6+1)] = f4;
	heapFloat[(r6+2)] = f2;
	heapFloat[(r6+3)] = f0;
	heap32[(r6+4)] = 0;
	heapFloat[(r6+5)] = f1;
	f0 = heapFloat[(fp+-68)];
	heapFloat[(r6+6)] = f0;
	f0 = heapFloat[(fp+-67)];
	heapFloat[(r6+7)] = f0;
	heap32[(r6+8)] = 0;
	f0 = heapFloat[(fp+-64)];
	heapFloat[(r6+9)] = f0;
	f0 = heapFloat[(fp+-62)];
	heapFloat[(r6+10)] = f0;
	f0 = heapFloat[(fp+-61)];
	heapFloat[(r6+11)] = f0;
	heap32[(r6+12)] = 0;
	heapFloat[(r6+13)] = f29;
	heapFloat[(r6+14)] = f28;
	heapFloat[(r6+15)] = f27;
	heap32[(r6+16)] = 0;
	heapFloat[(r6+17)] = f15;
	heapFloat[(r6+18)] = f14;
	heapFloat[(r6+19)] = f12;
	heap32[(r6+20)] = 0;
	heapFloat[(r6+21)] = f3;
	heapFloat[(r6+22)] = f13;
	heapFloat[(r6+23)] = f11;
	heap32[(r6+24)] = 0;
	heapFloat[(r6+25)] = f10;
	heapFloat[(r6+26)] = f9;
	heapFloat[(r6+27)] = f8;
	heap32[(r6+28)] = 0;
	heapFloat[(r6+29)] = f5;
	heapFloat[(r6+30)] = f7;
	heapFloat[(r6+31)] = f6;
	heap32[(r6+32)] = 0;
	heapFloat[(r6+49)] = f22;
	heap32[(r6+50)] = heap32[(r3+60)];
if(!(r1 ==0)) //_LBB288_23
{
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+15)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = heapFloat[(r6+50)];
	f1 = heapFloat[(r3+60)];
if(!(f0 >=f1)) //_LBB288_23
{
	heapFloat[(r3+60)] = f0;
	f_g0 = f0;
	return;
}
}
}
}
	f0 =                         1;
	f_g0 = f0;
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -80;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+8];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+1)];
	r4 = r1 == 0 ? r2 : r3;
	r5 = r4 >> 2;
	r5 = heap32[(r5+48)];
	r6 = r5 >> 2;
	r7 = heap32[(r6+1)];
	r7 = (r7 + -21)|0;
if(!(uint(r7) >uint(8))) //_LBB289_8
{
	r1 = r1 == 0 ? r3 : r2;
	r2 = r1 >> 2;
	r2 = heap32[(r2+48)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
if(!(r2 >19)) //_LBB289_8
{
	r2 = heap32[(fp+3)];
	r3 = heap32[(fp+4)];
	r7 = heap32[(r6)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+11)];
	heap32[(g0)] = r5;
	r8 = r0 >> 2;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	f0 = f_g0;
	r7 = r3 >> 2;
	r9 = heap32[(r8+19)];
	heap32[(r7+1)] = r9;
	heap32[(r8+16)] = r2;
	heapFloat[(r8+17)] = f0;
	heap32[(r8+14)] = r3;
	r2 = heap32[(r8+4)];
	r9 = heap32[(r8+5)];
	r9 = r9 >> 2;
	r2 = r2 >> 2;
	f1 = heapFloat[(r9+1)];
	f2 = heapFloat[(r2+1)];
	f3 = heapFloat[(r9+5)];
	f4 = heapFloat[(r2+5)];
	f5 = heapFloat[(r2+2)];
	f6 = heapFloat[(r2+6)];
	f7 = f2*f1;
	f8 = f4*f3;
	f9 = heapFloat[(r9+9)];
	f10 = heapFloat[(r2+9)];
	f11 = heapFloat[(r9+2)];
	f12 = heapFloat[(r9+6)];
	f13 = heapFloat[(r9+3)];
	f14 = heapFloat[(r2+13)];
	f15 = heapFloat[(r2+3)];
	f16 = heapFloat[(r9+7)];
	f17 = heapFloat[(r9+14)];
	f18 = heapFloat[(r2+14)];
	f19 = heapFloat[(r2+7)];
	f20 = heapFloat[(r9+10)];
	f21 = heapFloat[(r9+15)];
	f22 = heapFloat[(r9+11)];
	f23 = heapFloat[(r2+15)];
	f24 = heapFloat[(r2+11)];
	f25 = heapFloat[(r2+10)];
	f26 = heapFloat[(r9+13)];
	f27 = f5*f1;
	f28 = f6*f3;
	f7 = f7+f8;
	f8 = f10*f9;
	r9 = sp + -64;
	f29 = f15*f1;
	f30 = f19*f3;
	f27 = f27+f28;
	f28 = f25*f9;
	f7 = f7+f8;
	r10 = r9 >> 2;
	f8 = f29+f30;
	f29 = f24*f9;
	f27 = f27+f28;
	heapFloat[(fp+-16)] = f7;
	f7 = f2*f11;
	f28 = f4*f12;
	f8 = f8+f29;
	heapFloat[(r10+1)] = f27;
	heapFloat[(r10+2)] = f8;
	f8 = f5*f11;
	f27 = f6*f12;
	f7 = f7+f28;
	f28 = f10*f20;
	f29 = f15*f11;
	f30 = f19*f12;
	f8 = f8+f27;
	f27 = f25*f20;
	f7 = f7+f28;
	heap32[(r10+3)] = 0;
	f28 = f29+f30;
	f29 = f24*f20;
	f8 = f8+f27;
	heapFloat[(r10+4)] = f7;
	f2 = f2*f13;
	f4 = f4*f16;
	f7 = f28+f29;
	heapFloat[(r10+5)] = f8;
	heapFloat[(r10+6)] = f7;
	f5 = f5*f13;
	f6 = f6*f16;
	f2 = f2+f4;
	f4 = f10*f22;
	f7 = -f26;
	f8 = f15*f13;
	f10 = f19*f16;
	f5 = f5+f6;
	f6 = f25*f22;
	f2 = f2+f4;
	heap32[(r10+7)] = 0;
	f4 = f1*f14;
	f15 = f3*f18;
	f1 = f1*f7;
	f3 = f3*f17;
	f8 = f8+f10;
	f10 = f24*f22;
	f5 = f5+f6;
	heapFloat[(r10+8)] = f2;
	f2 = f11*f14;
	f6 = f12*f18;
	f11 = f11*f7;
	f12 = f12*f17;
	f4 = f4+f15;
	f15 = f9*f23;
	f1 = f1-f3;
	f3 = f9*f21;
	f8 = f8+f10;
	heapFloat[(r10+9)] = f5;
	heapFloat[(r10+10)] = f8;
	f5 = f13*f14;
	f8 = f16*f18;
	f7 = f13*f7;
	f9 = f16*f17;
	f2 = f2+f6;
	f6 = f20*f23;
	f10 = f11-f12;
	f11 = f20*f21;
	f4 = f4+f15;
	f1 = f1-f3;
	f3 = f5+f8;
	f5 = f22*f23;
	f7 = f7-f9;
	f8 = f22*f21;
	f2 = f2+f6;
	f6 = f10-f11;
	f1 = f4+f1;
	heap32[(r10+11)] = 0;
	f3 = f3+f5;
	f4 = f7-f8;
	f2 = f2+f6;
	heapFloat[(r10+12)] = f1;
	f1 = f3+f4;
	heapFloat[(r10+13)] = f2;
	heapFloat[(r10+14)] = f1;
	heap32[(r10+15)] = 0;
	r2 = heap32[(r2+48)];
	r10 = r2 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+2)];
	r11 = (r0 + 40)|0;
	r12 = (r0 + 24)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r11;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	f1 = heapFloat[(r8+10)];
	f1 = f1+f0;
	heapFloat[(r8+10)] = f1;
	f1 = heapFloat[(r8+11)];
	f1 = f1+f0;
	heapFloat[(r8+11)] = f1;
	f1 = heapFloat[(r8+12)];
	f1 = f1+f0;
	heapFloat[(r8+12)] = f1;
	f1 = heapFloat[(r8+6)];
	f1 = f1-f0;
	heapFloat[(r8+6)] = f1;
	f1 = heapFloat[(r8+7)];
	f1 = f1-f0;
	heapFloat[(r8+7)] = f1;
	f1 = heapFloat[(r8+8)];
	f0 = f1-f0;
	heapFloat[(r8+8)] = f0;
	r2 = heap32[(r8+19)];
	r2 = r2 >> 2;
	heap32[(r2+277)] = r1;
	heap32[(r2+278)] = r4;
	r1 = heap32[(r6)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+15)];
	r0 = (r0 + 12)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r11;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r7+1)];
	if(r0 !=0) //_LBB289_4
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
if(!(r2 ==0)) //_LBB289_8
{
	r1 = heap32[(r1+277)];
	r2 = heap32[(r7+34)];
	if(r1 ==r2) //_LBB289_7
{
	r1 = (r3 + 8)|0;
	r2 = (r3 + 72)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
}
else{
	r1 = (r3 + 72)|0;
	r3 = (r3 + 8)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
	return;
}
}
}
else{
	r0 = _2E_str59;
	r3 = _2E_str160;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 101;
	_assert(i7);
}
}
}
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+19)];
if(!(r1 ==0)) //_LBB290_22
{
	r2 = heap32[(fp+1)];
	r3 = r2 >> 2;
	r4 = heap32[(r3+2)];
	r5 = heap32[(r3+1)];
	if(r4 ==r5) //_LBB290_3
{
	r6 = 1;
	r7 = r5 << 1;
	r7 = r5 == 0 ? r6 : r7;
if(!(r4 >=r7)) //_LBB290_2
{
	if(r7 !=0) //_LBB290_6
{
	r1 = gNumAlignedAllocs;
	r1 = r1 >> 2;
	r4 = heap32[(r1)];
	r8 = r7 << 2;
	r4 = (r4 + 1)|0;
	r8 = r8 | 3;
	heap32[(r1)] = r4;
	r1 = (r8 + 16)|0;
	heap32[(g0)] = r1;
	malloc(i7);
	r1 = r_g0;
	if(r1 !=0) //_LBB290_8
{
	r4 = 0;
	r8 = (r1 + 4)|0;
	r4 = (r4 - r8)|0;
	r4 = r4 & 15;
	r4 = (r1 + r4)|0;
	r8 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r1;
	r1 = r8;
}
}
else{
	r1 = 0;
}
	r4 = (r2 + 12)|0;
	if(r5 <1) //_LBB290_11
{
	r8 = r4 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_14: while(true){
	r9 = r4 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r1 + r10)|0;
	r11 = heap32[(r11)];
	r8 = (r8 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r5 !=r8)) //_LBB290_12
{
break _14;
}
}
	r4 = (r2 + 12)|0;
}
	if(r9 !=0) //_LBB290_16
{
	r8 = heapU8[r2+16];
	if(r8 !=0) //_LBB290_18
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r8 = heap32[(r5)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r5)] = r8;
	r5 = heap32[(r9+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r3+1)];
}
	r8 = r4 >> 2;
	heap32[(r8)] = 0;
}
	r4 = r4 >> 2;
	heap8[r2+16] = r6;
	heap32[(r4)] = r1;
	heap32[(r3+2)] = r7;
	r1 = heap32[(r0+19)];
}
}
	r0 = r5 << 2;
	r2 = heap32[(r3+3)];
	r0 = (r2 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r3+1)];
	r0 = (r0 + 1)|0;
	heap32[(r3+1)] = r0;
}
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV33btConvexConcaveCollisionAlgorithm;
	r2 = _ZTV24btConvexTriangleCallback;
	r1 = (r1 + 8)|0;
	r3 = r0 >> 2;
	r2 = (r2 + 8)|0;
	heap32[(r3)] = r1;
	heap32[(r3+3)] = r2;
	r1 = heap32[(r3+15)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+5)];
	r4 = heap32[(r3+19)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(r3+15)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	r4 = heap32[(r3+19)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	r1 = _ZTV18btTriangleCallback;
	r4 = _ZTV30btActivatingCollisionAlgorithm;
	r1 = (r1 + 8)|0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = (r4 + 8)|0;
	heap32[(r3+3)] = r1;
	heap32[(r3)] = r2;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV33btConvexConcaveCollisionAlgorithm;
	r2 = _ZTV24btConvexTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	r2 = (r2 + 8)|0;
	heap32[(r0)] = r1;
	heap32[(r0+3)] = r2;
	r1 = heap32[(r0+15)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+5)];
	r3 = heap32[(r0+19)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(r0+15)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	r3 = heap32[(r0+19)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	r1 = _ZTV18btTriangleCallback;
	r3 = _ZTV30btActivatingCollisionAlgorithm;
	r1 = (r1 + 8)|0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = (r3 + 8)|0;
	heap32[(r0+3)] = r1;
	heap32[(r0)] = r2;
	return;
}

function _ZN23btConvexConvexAlgorithm10CreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN23btConvexConvexAlgorithm10CreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 36;
	r1 = heap32[(fp)];
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = r1 >> 2;
	r3 = _ZTV20btCollisionAlgorithm;
	r4 = heap32[(r1+5)];
	r5 = heap32[(r1+4)];
	r6 = heap32[(r0+1)];
	r7 = heap32[(r1+2)];
	r1 = heap32[(r1+3)];
	r8 = r_g0 >> 2;
	r3 = (r3 + 8)|0;
	heap32[(r8)] = r3;
	r0 = heap32[(r0)];
	r3 = _ZTV23btConvexConvexAlgorithm;
	r3 = (r3 + 8)|0;
	heap32[(r8+1)] = r0;
	heap32[(r8)] = r3;
	heap32[(r8+2)] = r1;
	r0 = 0;
	heap32[(r8+3)] = r7;
	heap8[r_g0+16] = r0;
	heap32[(r8+5)] = r6;
	heap8[r_g0+24] = r0;
	heap32[(r8+7)] = r5;
	heap32[(r8+8)] = r4;
	return;
}

function _ZN24btPerturbedContactResultD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV24btPerturbedContactResult;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN24btPerturbedContactResultD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV24btPerturbedContactResult;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -104;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+2)];
	r2 = r2 >> 2;
	f0 = heapFloat[(r1+2)];
	heapFloat[(fp+-5)] = f0;
	f1 = heapFloat[(r1+1)];
	heapFloat[(fp+-6)] = f1;
	f2 = heapFloat[(fp+3)];
	f3 = heapFloat[(r1)];
	heapFloat[(fp+-7)] = f3;
	f4 = heapFloat[(r2+2)];
	heapFloat[(fp+-11)] = f4;
	f0 = f0*f2;
	f5 = heapFloat[(r2+1)];
	heapFloat[(fp+-12)] = f5;
	f1 = f1*f2;
	f6 = heapFloat[(r2)];
	heapFloat[(fp+-13)] = f6;
	f2 = f3*f2;
	r1 = heap32[(fp)];
	f0 = f4+f0;
	heapFloat[(fp+-8)] = f0;
	f0 = f5+f1;
	heapFloat[(fp+-9)] = f0;
	f0 = f6+f2;
	heapFloat[(fp+-10)] = f0;
	r2 = heapU8[r1+356];
	if(r2 ==0) //_LBB298_2
{
	r2 = r1 >> 2;
	f3 = heapFloat[(r2+69)];
	f3 = -f3;
	f0 = heapFloat[(r2+57)];
	f1 = heapFloat[(r2+58)];
	f2 = heapFloat[(r2+61)];
	f4 = heapFloat[(r2+70)];
	f5 = heapFloat[(r2+62)];
	f6 = heapFloat[(r2+77)];
	f7 = heapFloat[(r2+78)];
	f8 = heapFloat[(r2+73)];
	f9 = heapFloat[(r2+65)];
	f10 = heapFloat[(r2+74)];
	f11 = heapFloat[(r2+66)];
	f12 = heapFloat[(r2+71)];
	f13 = heapFloat[(r2+59)];
	f14 = heapFloat[(r2+63)];
	f15 = f0*f3;
	f16 = f2*f4;
	f17 = f1*f3;
	f18 = f5*f4;
	f19 = heapFloat[(r2+81)];
	f20 = heapFloat[(r2+82)];
	f21 = heapFloat[(r2+79)];
	f22 = heapFloat[(r2+67)];
	f23 = heapFloat[(r2+75)];
	f24 = f0*f6;
	f25 = f1*f7;
	f26 = f2*f6;
	f27 = f5*f7;
	f28 = f0*f8;
	heapFloat[(fp+-14)] = f28;
	f28 = f1*f10;
	heapFloat[(fp+-15)] = f28;
	f29 = f2*f8;
	f28 = f5*f10;
	f15 = f15-f16;
	f16 = f9*f12;
	f17 = f17-f18;
	f18 = f11*f12;
	f3 = f13*f3;
	heapFloat[(fp+-16)] = f3;
	f3 = f14*f4;
	heapFloat[(fp+-20)] = f3;
	f4 = f15-f16;
	f15 = f17-f18;
	f16 = heapFloat[(r2+83)];
	f0 = f0*f19;
	f1 = f1*f20;
	f2 = f2*f19;
	f5 = f5*f20;
	f17 = f24+f25;
	heapFloat[(fp+-17)] = f17;
	f3 = f13*f21;
	heapFloat[(fp+-21)] = f3;
	f17 = f26+f27;
	heapFloat[(fp+-18)] = f17;
	f18 = f14*f21;
	f24 = f9*f6;
	heapFloat[(fp+-19)] = f24;
	f25 = f11*f7;
	f26 = heapFloat[(fp+-14)];
	f27 = heapFloat[(fp+-15)];
	f26 = f26+f27;
	f27 = f13*f23;
	f28 = f29+f28;
	f29 = f14*f23;
	f30 = f9*f8;
	f3 = f11*f10;
	f17 = heapFloat[(fp+-16)];
	f24 = heapFloat[(fp+-20)];
	f17 = f17-f24;
	f12 = f22*f12;
	f12 = f17-f12;
	f0 = f0+f1;
	f1 = f13*f16;
	f2 = f2+f5;
	f5 = f14*f16;
	f9 = f9*f19;
	f11 = f11*f20;
	f17 = heapFloat[(fp+-17)];
	f13 = heapFloat[(fp+-21)];
	f13 = f17+f13;
	f14 = f26+f27;
	f17 = heapFloat[(fp+-18)];
	f17 = f17+f18;
	f18 = f28+f29;
	f24 = heapFloat[(fp+-19)];
	f24 = f24+f25;
	f25 = f22*f21;
	f6 = f6*f4;
	f7 = f7*f15;
	f3 = f30+f3;
	f26 = f22*f23;
	f8 = f8*f4;
	f10 = f10*f15;
	f0 = f0+f1;
	f1 = f2+f5;
	f2 = f9+f11;
	f5 = f22*f16;
	f4 = f19*f4;
	f9 = f20*f15;
	f11 = heapFloat[(fp+-13)];
	f13 = f13*f11;
	f15 = heapFloat[(fp+-12)];
	f17 = f17*f15;
	f19 = f24+f25;
	f3 = f3+f26;
	f6 = f6+f7;
	f7 = f21*f12;
	f14 = f14*f11;
	f18 = f18*f15;
	f8 = f8+f10;
	f10 = f23*f12;
	f2 = f2+f5;
	f0 = f0*f11;
	f1 = f1*f15;
	f4 = f4+f9;
	f5 = f16*f12;
	f9 = f13+f17;
	f11 = heapFloat[(fp+-11)];
	f12 = f19*f11;
	f6 = f6+f7;
	f7 = heapFloat[(r2+86)];
	f13 = f14+f18;
	f3 = f3*f11;
	f8 = f8+f10;
	f10 = heapFloat[(r2+85)];
	f14 = heapFloat[(r2+87)];
	f4 = f4+f5;
	f0 = f0+f1;
	f1 = f2*f11;
	f2 = f9+f12;
	f5 = f6+f7;
	f3 = f13+f3;
	f6 = f8+f10;
	f3 = f3+f6;
	f2 = f2+f5;
	f0 = f0+f1;
	f1 = f4+f14;
	r2 = sp + -16;
	f4 = heapFloat[(fp+-10)];
	f4 = f4-f3;
	f5 = heapFloat[(fp+-9)];
	f5 = f5-f2;
	f0 = f0+f1;
	f1 = heapFloat[(fp+-7)];
	f1 = f4*f1;
	f4 = heapFloat[(fp+-6)];
	f4 = f5*f4;
	f5 = heapFloat[(fp+-8)];
	f5 = f5-f0;
	r2 = r2 >> 2;
	heapFloat[(fp+-4)] = f3;
	heapFloat[(r2+1)] = f2;
	f3 = f1+f4;
	f1 = heapFloat[(fp+-5)];
	f1 = f5*f1;
	f3 = f3+f1;
	heapFloat[(r2+2)] = f0;
	heap32[(r2+3)] = 0;
}
else{
	r2 = r1 >> 2;
	f0 = heapFloat[(r2+53)];
	f0 = -f0;
	f1 = heapFloat[(r2+41)];
	f2 = heapFloat[(r2+42)];
	f3 = heapFloat[(r2+45)];
	f4 = heapFloat[(r2+54)];
	f5 = heapFloat[(r2+46)];
	f6 = heapFloat[(r2+77)];
	f7 = heapFloat[(r2+78)];
	f8 = heapFloat[(r2+73)];
	f9 = heapFloat[(r2+49)];
	f10 = heapFloat[(r2+74)];
	f11 = heapFloat[(r2+50)];
	f12 = heapFloat[(r2+55)];
	f13 = heapFloat[(r2+43)];
	f14 = heapFloat[(r2+47)];
	f15 = f1*f0;
	f16 = f3*f4;
	f17 = f2*f0;
	f18 = f5*f4;
	f19 = heapFloat[(r2+81)];
	f20 = heapFloat[(r2+82)];
	f21 = heapFloat[(r2+79)];
	f22 = heapFloat[(r2+51)];
	f23 = heapFloat[(r2+75)];
	f24 = f1*f8;
	f25 = f2*f10;
	f26 = f3*f8;
	f27 = f5*f10;
	f28 = f1*f6;
	heapFloat[(fp+-14)] = f28;
	f29 = f2*f7;
	f30 = f3*f6;
	f28 = f5*f7;
	f15 = f15-f16;
	f16 = f9*f12;
	f17 = f17-f18;
	f18 = f11*f12;
	f0 = f13*f0;
	heapFloat[(fp+-15)] = f0;
	f0 = f14*f4;
	heapFloat[(fp+-16)] = f0;
	f4 = f15-f16;
	f15 = f17-f18;
	f16 = heapFloat[(r2+83)];
	f0 = f24+f25;
	heapFloat[(fp+-17)] = f0;
	f17 = f13*f23;
	f0 = f26+f27;
	heapFloat[(fp+-18)] = f0;
	f18 = f14*f23;
	f24 = f9*f8;
	f25 = f11*f10;
	f26 = heapFloat[(fp+-14)];
	f26 = f26+f29;
	f27 = f13*f21;
	f28 = f30+f28;
	f29 = f14*f21;
	f30 = f9*f6;
	f0 = f11*f7;
	f1 = f1*f19;
	heapFloat[(fp+-14)] = f1;
	f2 = f2*f20;
	f1 = f3*f19;
	heapFloat[(fp+-19)] = f1;
	f3 = f5*f20;
	f5 = heapFloat[(fp+-15)];
	f1 = heapFloat[(fp+-16)];
	f1 = f5-f1;
	f5 = f22*f12;
	f1 = f1-f5;
	f5 = heapFloat[(fp+-17)];
	f5 = f5+f17;
	f12 = f26+f27;
	f17 = heapFloat[(fp+-18)];
	f17 = f17+f18;
	f18 = f28+f29;
	f24 = f24+f25;
	f25 = f22*f23;
	f8 = f8*f4;
	f10 = f10*f15;
	f0 = f30+f0;
	f26 = f22*f21;
	f6 = f6*f4;
	f7 = f7*f15;
	f27 = heapFloat[(fp+-14)];
	f2 = f27+f2;
	f13 = f13*f16;
	f27 = heapFloat[(fp+-19)];
	f3 = f27+f3;
	f14 = f14*f16;
	f9 = f9*f19;
	f11 = f11*f20;
	f2 = f2+f13;
	f3 = f3+f14;
	f13 = heapFloat[(fp+-10)];
	f5 = f5*f13;
	f14 = heapFloat[(fp+-9)];
	f17 = f17*f14;
	f24 = f24+f25;
	f0 = f0+f26;
	f8 = f8+f10;
	f10 = f23*f1;
	f12 = f12*f13;
	f18 = f18*f14;
	f6 = f6+f7;
	f7 = f21*f1;
	f9 = f9+f11;
	f11 = f22*f16;
	f4 = f19*f4;
	f15 = f20*f15;
	f9 = f9+f11;
	f5 = f5+f17;
	f11 = heapFloat[(fp+-8)];
	f17 = f24*f11;
	f8 = f8+f10;
	f10 = heapFloat[(r2+85)];
	f12 = f12+f18;
	f0 = f0*f11;
	f6 = f6+f7;
	f7 = heapFloat[(r2+86)];
	f2 = f2*f13;
	f3 = f3*f14;
	f4 = f4+f15;
	f1 = f16*f1;
	f13 = heapFloat[(r2+87)];
	f1 = f4+f1;
	f4 = f5+f17;
	f5 = f8+f10;
	f0 = f12+f0;
	f6 = f6+f7;
	f2 = f2+f3;
	f3 = f9*f11;
	f4 = f4+f5;
	f0 = f0+f6;
	f2 = f2+f3;
	f1 = f1+f13;
	f3 = heapFloat[(fp+-13)];
	f3 = f4-f3;
	f5 = heapFloat[(fp+-12)];
	f5 = f0-f5;
	f1 = f2+f1;
	f2 = heapFloat[(fp+-7)];
	f3 = f3*f2;
	f6 = heapFloat[(fp+-6)];
	f5 = f5*f6;
	f7 = heapFloat[(fp+-11)];
	f7 = f1-f7;
	f3 = f3+f5;
	f5 = heapFloat[(fp+-5)];
	f7 = f7*f5;
	f3 = f3+f7;
	f2 = f2*f3;
	r2 = sp + -16;
	f6 = f6*f3;
	f2 = f4+f2;
	f4 = f5*f3;
	r2 = r2 >> 2;
	f0 = f0+f6;
	heapFloat[(fp+-4)] = f2;
	f1 = f1+f4;
	heapFloat[(r2+1)] = f0;
	heapFloat[(r2+2)] = f1;
	heap32[(r2+3)] = 0;
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+40)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	r3 = sp + -16;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r3;
	heapFloat[(g0+3)] = f3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}

function _ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+5)];
if(!(r2 ==0)) //_LBB299_23
{
	r0 = heapU8[r0+16];
if(!(r0 ==0)) //_LBB299_23
{
	r0 = heap32[(fp+1)];
	r3 = r0 >> 2;
	r4 = heap32[(r3+2)];
	r5 = heap32[(r3+1)];
	if(r4 ==r5) //_LBB299_4
{
	r6 = 1;
	r7 = r5 << 1;
	r7 = r5 == 0 ? r6 : r7;
if(!(r4 >=r7)) //_LBB299_3
{
	if(r7 !=0) //_LBB299_7
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r4 = heap32[(r2)];
	r8 = r7 << 2;
	r4 = (r4 + 1)|0;
	r8 = r8 | 3;
	heap32[(r2)] = r4;
	r2 = (r8 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB299_9
{
	r4 = 0;
	r8 = (r2 + 4)|0;
	r4 = (r4 - r8)|0;
	r4 = r4 & 15;
	r4 = (r2 + r4)|0;
	r8 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r2;
	r2 = r8;
}
}
else{
	r2 = 0;
}
	r4 = (r0 + 12)|0;
	if(r5 <1) //_LBB299_12
{
	r8 = r4 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_15: while(true){
	r9 = r4 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r2 + r10)|0;
	r11 = heap32[(r11)];
	r8 = (r8 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r5 !=r8)) //_LBB299_13
{
break _15;
}
}
	r4 = (r0 + 12)|0;
}
	if(r9 !=0) //_LBB299_17
{
	r8 = heapU8[r0+16];
	if(r8 !=0) //_LBB299_19
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r8 = heap32[(r5)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r5)] = r8;
	r5 = heap32[(r9+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r3+1)];
}
	r8 = r4 >> 2;
	heap32[(r8)] = 0;
}
	r4 = r4 >> 2;
	heap8[r0+16] = r6;
	heap32[(r4)] = r2;
	heap32[(r3+2)] = r7;
	r2 = heap32[(r1+5)];
}
}
	r0 = r5 << 2;
	r1 = heap32[(r3+3)];
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r3+1)];
	r0 = (r0 + 1)|0;
	heap32[(r3+1)] = r0;
}
}
	return;
}

function _ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -1240;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+2)];
	r3 = r2 >> 2;
	f0 = heapFloat[(r1+29)];
	f1 = heapFloat[(r1+13)];
	f2 = heapFloat[(r1+30)];
	f3 = heapFloat[(r1+14)];
	f0 = f0-f1;
	f1 = f2-f3;
	f2 = heapFloat[(r1+31)];
	f3 = heapFloat[(r1+15)];
	f2 = f2-f3;
	f0 = f0*f0;
	f1 = f1*f1;
	f3 = heapFloat[(r1+62)];
	f0 = f0+f1;
	f1 = f2*f2;
	f2 = f3*f3;
	f0 = f0+f1;
if(!(f2 <=f0)) //_LBB300_2
{
	f0 = heapFloat[(r3+31)];
	f1 = heapFloat[(r3+15)];
	f2 = heapFloat[(r3+30)];
	f3 = heapFloat[(r3+14)];
	f4 = heapFloat[(r3+29)];
	f5 = heapFloat[(r3+13)];
	f0 = f0-f1;
	f1 = f2-f3;
	f2 = f4-f5;
	f2 = f2*f2;
	f1 = f1*f1;
	f3 = heapFloat[(r3+62)];
	f1 = f2+f1;
	f0 = f0*f0;
	f2 = f3*f3;
	f0 = f1+f0;
	if(f2 >f0) //_LBB300_16
{
	f0 =                         1;
	f_g0 = f0;
	return;
}
}
	r4 = sp + -56;
	r5 = heap32[(r1+48)];
	f0 = heapFloat[(r3+61)];
	r6 = r4 >> 2;
	heap32[(r6+2)] = 0;
	heap32[(r6+3)] = 1065353216;
	heap32[(r6+4)] = 1065353216;
	r7 = _ZTV13btSphereShape;
	heap32[(r6+5)] = 1065353216;
	r7 = (r7 + 8)|0;
	heap32[(r6+6)] = 0;
	heap32[(fp+-14)] = r7;
	heap32[(r6+1)] = 8;
	r8 = _ZTVN12btConvexCast10CastResultE;
	heapFloat[(r6+7)] = f0;
	r9 = sp + -232;
	r8 = (r8 + 8)|0;
	heapFloat[(r6+11)] = f0;
	r6 = r9 >> 2;
	heap32[(fp+-58)] = r8;
	heap32[(r6+41)] = 1566444395;
	r10 = sp + -592;
	heap32[(r6+42)] = 0;
	r11 = r10 >> 2;
	heap32[(r6+43)] = 0;
	r12 = _ZTV15btGjkConvexCast;
	r13 = 0;
	heap32[(r11+77)] = 953267991;
	r11 = sp + -608;
	r12 = (r12 + 8)|0;
	heap8[sp+-260] = r13;
	r13 = r11 >> 2;
	heap32[(fp+-152)] = r12;
	heap32[(r13+1)] = r10;
	heap32[(r13+2)] = r5;
	heap32[(r13+3)] = r4;
	r4 = (r2 + 68)|0;
	r2 = (r2 + 4)|0;
	r5 = (r0 + 68)|0;
	r0 = (r0 + 4)|0;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r2;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r9;
	_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB300_4
{
	f0 = heapFloat[(r6+41)];
	f1 = heapFloat[(r1+60)];
if(!(f1 <=f0)) //_LBB300_6
{
	heapFloat[(r1+60)] = f0;
}
	f1 = heapFloat[(r3+60)];
if(!(f1 <=f0)) //_LBB300_8
{
	heapFloat[(r3+60)] = f0;
}
	f1 =                         1;
	if(f0 >=f1) //_LBB300_3
{
__label__ = 3;
}
else{
__label__ = 9;
}
}
else{
__label__ = 3;
}
if (__label__ == 3){
	f0 =                         1;
}
	r6 = _ZTV12btConvexCast;
	r9 = _ZTV13btConvexShape;
	r6 = (r6 + 8)|0;
	r9 = (r9 + 8)|0;
	heap32[(fp+-152)] = r6;
	heap32[(fp+-14)] = r9;
	r6 = sp + -664;
	r9 = heap32[(r3+48)];
	f1 = heapFloat[(r1+61)];
	r10 = r6 >> 2;
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	heap32[(r10+5)] = 1065353216;
	heap32[(r10+6)] = 0;
	heap32[(fp+-166)] = r7;
	heap32[(r10+1)] = 8;
	heapFloat[(r10+7)] = f1;
	r7 = sp + -840;
	heapFloat[(r10+11)] = f1;
	r10 = r7 >> 2;
	heap32[(fp+-210)] = r8;
	heap32[(r10+41)] = 1566444395;
	r8 = sp + -1200;
	heap32[(r10+42)] = 0;
	r11 = r8 >> 2;
	heap32[(r10+43)] = 0;
	heap32[(r11+77)] = 953267991;
	r11 = heapU8[sp+-868];
	r11 = r11 & 240;
	r13 = sp + -1216;
	heap8[sp+-868] = r11;
	r11 = r13 >> 2;
	heap32[(fp+-304)] = r12;
	heap32[(r11+1)] = r8;
	heap32[(r11+2)] = r6;
	heap32[(r11+3)] = r9;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r2;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r7;
	_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB300_15
{
	f1 = heapFloat[(r10+41)];
	f2 = heapFloat[(r1+60)];
if(!(f2 <=f1)) //_LBB300_12
{
	heapFloat[(r1+60)] = f1;
}
	f2 = heapFloat[(r3+60)];
if(!(f2 <=f1)) //_LBB300_14
{
	heapFloat[(r3+60)] = f1;
}
	f0 = f1 < f0 ? f1 : f0;
}
	f_g0 = f0;
	return;
}

function _ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -816;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+5)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	r6 = heap32[(fp+4)];
	if(r2 ==0) //_LBB301_2
{
	r2 = heap32[(r1+1)];
	r7 = r2 >> 2;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+3)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r2 = r_g0;
	r7 = 1;
	heap32[(r1+5)] = r2;
	heap8[r0+16] = r7;
}
	r7 = r6 >> 2;
	r8 = r3 >> 2;
	heap32[(r7+1)] = r2;
	r2 = r4 >> 2;
	r9 = heap32[(r8+48)];
	r10 = heap32[(r2+48)];
	r11 = r9 >> 2;
	r12 = heap32[(r11+1)];
	if(r12 !=10) //_LBB301_5
{
__label__ = 4;
}
else{
	r12 = r10 >> 2;
	r13 = heap32[(r12+1)];
	if(r13 ==10) //_LBB301_6
{
	r0 = heap32[(r11)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+7)];
	heap32[(g0)] = r9;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	r0 = heap32[(r12)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+7)];
	heap32[(g0)] = r10;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	r0 = heap32[(r11+13)];
	r5 = heap32[(r12+13)];
	r11 = r5 << 2;
	r12 = r0 << 2;
	r3 = (r3 + r12)|0;
	r4 = (r4 + r11)|0;
	r3 = r3 >> 2;
	r4 = r4 >> 2;
	r5 = (r5 + 2)|0;
	r0 = (r0 + 2)|0;
	f0 = heapFloat[(r3+1)];
	f1 = heapFloat[(r4+1)];
	f2 = heapFloat[(r3+5)];
	f3 = heapFloat[(r4+5)];
	r5 = (r5 % 3)|0;
	r0 = (r0 % 3)|0;
	f4 = heapFloat[(r3+9)];
	f5 = heapFloat[(r4+9)];
	f6 = f0*f1;
	f7 = f2*f3;
	f8 = heapFloat[(r2+13)];
	f9 = heapFloat[(r8+13)];
	f10 = heapFloat[(r2+14)];
	f11 = heapFloat[(r8+14)];
	f8 = f8-f9;
	f9 = f10-f11;
	r3 = (r10 + 28)|0;
	r4 = r5 << 2;
	r5 = (r9 + 28)|0;
	r0 = r0 << 2;
	f6 = f6+f7;
	f7 = f4*f5;
	f10 = heapFloat[(r2+15)];
	f11 = heapFloat[(r8+15)];
	f10 = f10-f11;
	f6 = f6+f7;
	r1 = heap32[(r1+5)];
	r4 = (r3 + r4)|0;
	r3 = (r3 + r11)|0;
	r0 = (r5 + r0)|0;
	r5 = (r5 + r12)|0;
	f7 = f0*f8;
	f11 = f2*f9;
	f12 = f1*f8;
	f13 = f3*f9;
	r1 = r1 >> 2;
	r4 = r4 >> 2;
	r3 = r3 >> 2;
	r0 = r0 >> 2;
	r5 = r5 >> 2;
	f14 =                         1;
	f15 = f6*f6;
	f7 = f7+f11;
	f11 = f4*f10;
	f12 = f12+f13;
	f13 = f5*f10;
	f15 = f14-f15;
	f16 = heapFloat[(r1+280)];
	f17 = heapFloat[(r4)];
	f18 = heapFloat[(r3)];
	f19 = heapFloat[(r0)];
	f20 = heapFloat[(r5)];
	f7 = f7+f11;
	f11 = f12+f13;
	f12 =                         0;
	if(f15 !=f12) //_LBB301_8
{
	f13 = f11*f6;
	f13 = f7-f13;
	f13 = f13/f15;
	f15 = -f20;
	if(f13 >=f15) //_LBB301_10
{
	if(f13 >f20) //_LBB301_12
{
	f15 = f20;
}
else{
	f15 = f13;
}
}
}
else{
	f15 =                         0;
}
	f13 = f15*f6;
	f11 = f13-f11;
	f13 = -f18;
	if(f11 >=f13) //_LBB301_19
{
	if(f11 >f18) //_LBB301_21
{
	f13 = f6*f18;
	f6 = f13+f7;
	f15 = -f20;
	if(f6 >=f15) //_LBB301_23
{
	if(f6 >f20) //_LBB301_25
{
	f13 = f18;
	f15 = f20;
}
else{
	f13 = f18;
	f15 = f6;
}
}
else{
	f13 = f18;
}
}
else{
	f13 = f11;
}
}
else{
	f6 = f6*f13;
	f6 = f6+f7;
	f15 = -f20;
	if(f6 >=f15) //_LBB301_16
{
	if(f6 >f20) //_LBB301_18
{
	f15 = f20;
}
else{
	f15 = f6;
}
}
}
	f6 = f0*f15;
	f7 = f2*f15;
	f1 = f1*f13;
	f6 = f8-f6;
	f3 = f3*f13;
	f7 = f9-f7;
	f8 = f4*f15;
	f6 = f6+f1;
	f7 = f7+f3;
	f5 = f5*f13;
	f8 = f10-f8;
	f8 = f8+f5;
	f9 = f6*f6;
	f10 = f7*f7;
	f9 = f9+f10;
	f10 = f8*f8;
	f9 = f9+f10;
	heapFloat[(g0)] = f9;
	sqrtf(i7);
	f10 = f_g0-f19;
	f10 = f10-f17;
if(!(f10 >f16)) //_LBB301_36
{
	f11 =   1.4210854715202004e-014;
	if(f9 >f11) //_LBB301_34
{
	heapFloat[(g0)] = f9;
	f0 =                        -1;
	sqrtf(i7);
	f0 = f0/f_g0;
	f9 = f6*f0;
	r0 = sp + -16;
	f6 = f7*f0;
	r0 = r0 >> 2;
	heapFloat[(fp+-4)] = f9;
	f12 = f8*f0;
	heapFloat[(r0+1)] = f6;
	heapFloat[(r0+2)] = f12;
	heap32[(r0+3)] = 0;
}
else{
	if(f4 <f12) //_LBB301_30
{
	f6 = -f4;
}
else{
	f6 = f4;
}
	f7 =       0.70710676908493042;
	if(f6 <=f7) //_LBB301_33
{
	f6 = f0*f0;
	f9 = f2*f2;
	f6 = f6+f9;
	heapFloat[(g0)] = f6;
	sqrtf(i7);
	f6 = f14/f_g0;
	f9 = -f2;
	f9 = f6*f9;
	r0 = sp + -16;
	f6 = f0*f6;
	r0 = r0 >> 2;
	heapFloat[(fp+-4)] = f9;
	heapFloat[(r0+1)] = f6;
	heap32[(r0+2)] = 0;
}
else{
	f0 = f2*f2;
	f6 = f4*f4;
	f0 = f0+f6;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	r0 = sp + -16;
	f0 = f14/f_g0;
	f6 = -f4;
	f6 = f0*f6;
	r0 = r0 >> 2;
	heap32[(fp+-4)] = 0;
	f9 =                         0;
	f12 = f2*f0;
	heapFloat[(r0+1)] = f6;
	heapFloat[(r0+2)] = f12;
}
}
	f0 = heapFloat[(r2+13)];
	f2 = heapFloat[(r2+14)];
	f4 = heapFloat[(r2+15)];
	f0 = f0+f1;
	f1 = f9*f17;
	r0 = sp + -32;
	f2 = f2+f3;
	f3 = f6*f17;
	f0 = f0+f1;
	r0 = r0 >> 2;
	f1 = f4+f5;
	f4 = f12*f17;
	f2 = f2+f3;
	heapFloat[(fp+-8)] = f0;
	f0 = f1+f4;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
}
if(!(f10 >=f16)) //_LBB301_40
{
	r0 = sp + -16;
	r1 = r0 >> 2;
	f0 = heapFloat[(fp+-4)];
	f1 = heapFloat[(r1+1)];
	f2 = heapFloat[(r1+2)];
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	f1 =   1.4210854715202004e-014;
	if(f0 >=f1) //_LBB301_39
{
	r1 = heap32[(r7)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	r2 = sp + -32;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	heapFloat[(g0+3)] = f10;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
else{
	r0 = _2E_str4119;
	r1 = _2E_str5120;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 325;
	_assert(i7);
}
}
	r0 = heap32[(r7+1)];
	if(r0 !=0) //_LBB301_42
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
	if(r2 ==0) //_LBB301_47
{
__label__ = 44;
}
else{
	r1 = heap32[(r1+277)];
	r2 = heap32[(r7+34)];
	if(r1 ==r2) //_LBB301_46
{
__label__ = 43;
}
else{
	r1 = (r6 + 72)|0;
	r2 = (r6 + 8)|0;
__label__ = 42;
}
}
}
else{
	r0 = _2E_str59;
	r1 = _2E_str160;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 101;
	_assert(i7);
}
}
else{
__label__ = 4;
}
}
if (__label__ == 4){
	r3 = sp + -168;
	r4 = r3 >> 2;
	heap32[(r4+32)] = 1566444395;
	heap32[(r4+33)] = 0;
	r12 = _ZTV17btGjkPairDetector;
	r13 = heap32[(r1+2)];
	r14 = heap32[(r1+3)];
	r15 = sp + -248;
	r12 = (r12 + 8)|0;
	heap32[(fp+-62)] = r12;
	r12 = r15 >> 2;
	heap32[(r12+1)] = 0;
	heap32[(r12+2)] = 1065353216;
	heap32[(r12+3)] = 0;
	heap32[(r12+4)] = 0;
	heap32[(r12+5)] = r14;
	heap32[(r12+6)] = r13;
	heap32[(r12+7)] = r9;
	heap32[(r12+8)] = r10;
	r13 = heap32[(r11+1)];
	heap32[(r12+9)] = r13;
	r13 = r10 >> 2;
	r14 = heap32[(r13+1)];
	heap32[(r12+10)] = r14;
	r14 = heap32[(r11)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+11)];
	heap32[(g0)] = r9;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	heapFloat[(r12+11)] = f_g0;
	r14 = heap32[(r13)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+11)];
	heap32[(g0)] = r10;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	r14 = 0;
	heapFloat[(r12+12)] = f_g0;
	heap8[sp+-196] = r14;
	heap32[(r12+15)] = -1;
	heap32[(r12+18)] = 1;
	heap32[(r12+7)] = r9;
	heap32[(r12+8)] = r10;
	r16 = heap32[(r11)];
	r16 = r16 >> 2;
	r17 = heapU8[r5+40];
	r16 = heap32[(r16+11)];
	heap32[(g0)] = r9;
	__FUNCTION_TABLE__[(r16)>>2](i7);
	f0 = f_g0;
	r16 = heap32[(r13)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+11)];
	heap32[(g0)] = r10;
	__FUNCTION_TABLE__[(r16)>>2](i7);
	f0 = f0+f_g0;
	r16 = heap32[(r1+5)];
	if(r17 ==0) //_LBB301_49
{
	r16 = (r16 + 1120)|0;
}
else{
	r16 = (r16 + 1124)|0;
}
	r16 = r16 >> 2;
	f1 = heapFloat[(r16)];
	f0 = f0+f1;
	f0 = f0*f0;
	r5 = r5 >> 2;
	heapFloat[(r4+32)] = f0;
	r16 = heap32[(r5+11)];
	heap32[(r4+33)] = r16;
	heap32[(fp+-42)] = heap32[(r8+1)];
	heap32[(r4+1)] = heap32[(r8+2)];
	heap32[(r4+2)] = heap32[(r8+3)];
	heap32[(r4+3)] = heap32[(r8+4)];
	heap32[(r4+4)] = heap32[(r8+5)];
	heap32[(r4+5)] = heap32[(r8+6)];
	heap32[(r4+6)] = heap32[(r8+7)];
	heap32[(r4+7)] = heap32[(r8+8)];
	heap32[(r4+8)] = heap32[(r8+9)];
	heap32[(r4+9)] = heap32[(r8+10)];
	heap32[(r4+10)] = heap32[(r8+11)];
	heap32[(r4+11)] = heap32[(r8+12)];
	heap32[(r4+12)] = heap32[(r8+13)];
	heap32[(r4+13)] = heap32[(r8+14)];
	heap32[(r4+14)] = heap32[(r8+15)];
	heap32[(r4+15)] = heap32[(r8+16)];
	heap32[(r4+16)] = heap32[(r2+1)];
	heap32[(r4+17)] = heap32[(r2+2)];
	heap32[(r4+18)] = heap32[(r2+3)];
	heap32[(r4+19)] = heap32[(r2+4)];
	heap32[(r4+20)] = heap32[(r2+5)];
	heap32[(r4+21)] = heap32[(r2+6)];
	heap32[(r4+22)] = heap32[(r2+7)];
	heap32[(r4+23)] = heap32[(r2+8)];
	heap32[(r4+24)] = heap32[(r2+9)];
	heap32[(r4+25)] = heap32[(r2+10)];
	heap32[(r4+26)] = heap32[(r2+11)];
	heap32[(r4+27)] = heap32[(r2+12)];
	heap32[(r4+28)] = heap32[(r2+13)];
	heap32[(r4+29)] = heap32[(r2+14)];
	heap32[(r4+30)] = heap32[(r2+15)];
	heap32[(r4+31)] = heap32[(r2+16)];
	r16 = heap32[(r5+5)];
	heap32[(g0)] = r15;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r16;
	heap32[(g0+4)] = 0;
	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
	r16 = heap32[(r1+7)];
_63: do {
if(!(r16 ==0)) //_LBB301_73
{
	r16 = heap32[(r7+1)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+279)];
	r17 = heap32[(r1+8)];
if(!(r16 >=r17)) //_LBB301_73
{
	f0 = heapFloat[(r12+1)];
	f1 = heapFloat[(r12+2)];
	f2 = heapFloat[(r12+3)];
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	heapFloat[(fp+-169)] = f1;
	f2 = heapFloat[(r12+3)];
	f0 = f1/f_g0;
	f1 = heapFloat[(r12+2)];
	f3 = heapFloat[(r12+1)];
	f2 = f2*f0;
	heapFloat[(fp+-171)] = f2;
	f1 = f1*f0;
	heapFloat[(fp+-170)] = f1;
	f0 = f3*f0;
	heapFloat[(fp+-174)] = f0;
	f0 =                         0;
	heapFloat[(fp+-175)] = f0;
	if(f2 <f0) //_LBB301_54
{
	f0 = f2;
	f0 = -f0;
}
else{
	f0 = heapFloat[(fp+-171)];
}
	f1 =       0.70710676908493042;
	if(f0 <=f1) //_LBB301_57
{
	f0 = heapFloat[(fp+-174)];
	f1 = f0*f0;
	f2 = heapFloat[(fp+-170)];
	f3 = f2*f2;
	f1 = f1+f3;
	heapFloat[(g0)] = f1;
	sqrtf(i7);
	f3 = heapFloat[(fp+-169)];
	f1 = f3/f_g0;
	f2 = -f2;
	f2 = f1*f2;
	heapFloat[(fp+-173)] = f2;
	f0 = f0*f1;
	heapFloat[(fp+-172)] = f0;
}
else{
	f0 = heapFloat[(fp+-170)];
	f1 = f0*f0;
	f2 = heapFloat[(fp+-171)];
	f3 = f2*f2;
	f1 = f1+f3;
	heapFloat[(g0)] = f1;
	sqrtf(i7);
	f3 = heapFloat[(fp+-169)];
	f1 = f3/f_g0;
	f2 = -f2;
	f2 = f1*f2;
	heapFloat[(fp+-172)] = f2;
	f0 = f0*f1;
	heapFloat[(fp+-175)] = f0;
	f0 =                         0;
	heapFloat[(fp+-173)] = f0;
}
	r11 = heap32[(r11)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r9;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	f0 = f_g0;
	heapFloat[(fp+-194)] = f0;
	r9 = heap32[(r13)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+4)];
	heap32[(g0)] = r10;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	f1 = f_g0;
	heapFloat[(fp+-195)] = f1;
	r9 = f0 < f1;
	f2 =      0.019999999552965164;
	f3 = f0 < f1 ? f0 : f1;
	r9 = r9 & 1;
	f2 = f2/f3;
	if(f0 >=f1) //_LBB301_60
{
	f0 = heapFloat[(r4+16)];
	heapFloat[(fp+-176)] = f0;
	f0 = heapFloat[(r4+17)];
	heapFloat[(fp+-177)] = f0;
	f0 = heapFloat[(r4+18)];
	heapFloat[(fp+-178)] = f0;
	f0 = heapFloat[(r4+19)];
	heapFloat[(fp+-179)] = f0;
	f0 = heapFloat[(r4+20)];
	heapFloat[(fp+-180)] = f0;
	f0 = heapFloat[(r4+21)];
	heapFloat[(fp+-181)] = f0;
	f0 = heapFloat[(r4+22)];
	heapFloat[(fp+-182)] = f0;
	f0 = heapFloat[(r4+23)];
	heapFloat[(fp+-183)] = f0;
	f0 = heapFloat[(r4+24)];
	heapFloat[(fp+-184)] = f0;
	f0 = heapFloat[(r4+25)];
	heapFloat[(fp+-185)] = f0;
	f0 = heapFloat[(r4+26)];
	heapFloat[(fp+-186)] = f0;
	f0 = heapFloat[(r4+27)];
	heapFloat[(fp+-187)] = f0;
	f0 = heapFloat[(r4+28)];
	heapFloat[(fp+-188)] = f0;
	f0 = heapFloat[(r4+29)];
	heapFloat[(fp+-189)] = f0;
	f0 = heapFloat[(r4+30)];
	heapFloat[(fp+-190)] = f0;
	f0 = heapFloat[(r4+31)];
	heapFloat[(fp+-191)] = f0;
}
else{
	f0 = heapFloat[(fp+-42)];
	heapFloat[(fp+-176)] = f0;
	f0 = heapFloat[(r4+1)];
	heapFloat[(fp+-177)] = f0;
	f0 = heapFloat[(r4+2)];
	heapFloat[(fp+-178)] = f0;
	f0 = heapFloat[(r4+3)];
	heapFloat[(fp+-179)] = f0;
	f0 = heapFloat[(r4+4)];
	heapFloat[(fp+-180)] = f0;
	f0 = heapFloat[(r4+5)];
	heapFloat[(fp+-181)] = f0;
	f0 = heapFloat[(r4+6)];
	heapFloat[(fp+-182)] = f0;
	f0 = heapFloat[(r4+7)];
	heapFloat[(fp+-183)] = f0;
	f0 = heapFloat[(r4+8)];
	heapFloat[(fp+-184)] = f0;
	f0 = heapFloat[(r4+9)];
	heapFloat[(fp+-185)] = f0;
	f0 = heapFloat[(r4+10)];
	heapFloat[(fp+-186)] = f0;
	f0 = heapFloat[(r4+11)];
	heapFloat[(fp+-187)] = f0;
	f0 = heapFloat[(r4+12)];
	heapFloat[(fp+-188)] = f0;
	f0 = heapFloat[(r4+13)];
	heapFloat[(fp+-189)] = f0;
	f0 = heapFloat[(r4+14)];
	heapFloat[(fp+-190)] = f0;
	f0 = heapFloat[(r4+15)];
	heapFloat[(fp+-191)] = f0;
}
	f0 = heapFloat[(fp+-173)];
	f0 = f0*f0;
	f1 = heapFloat[(fp+-172)];
	f1 = f1*f1;
	f3 =                       0.5;
	heapFloat[(fp+-193)] = f3;
	f4 = heapFloat[(fp+-174)];
	f4 = f4*f4;
	f5 = heapFloat[(fp+-170)];
	f5 = f5*f5;
	f0 = f0+f1;
	f1 = heapFloat[(fp+-175)];
	f1 = f1*f1;
	f6 =       0.39269909262657166;
	f7 =       0.19634954631328583;
	f3 = f2*f3;
	f4 = f4+f5;
	f5 = heapFloat[(fp+-171)];
	f5 = f5*f5;
	f0 = f0+f1;
	heapFloat[(fp+-196)] = f0;
	f0 = f2 > f6 ? f7 : f3;
	heapFloat[(fp+-197)] = f0;
	f0 = f4+f5;
	heapFloat[(fp+-192)] = f0;
_78: while(true){
	r10 = heap32[(r1+7)];
	if(r10 >r14) //_LBB301_62
{
	f0 =   1.1920928955078125e-007;
	f1 = heapFloat[(fp+-196)];
if(!(f1 <=f0)) //_LBB301_71
{
	f0 = f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f_g0;
	f1 =                         0;
	if(f0 !=f1) //_LBB301_65
{
	f2 = heapFloat[(fp+-197)];
	heapFloat[(g0)] = f2;
	sinf(i7);
	f3 = f_g0;
	heapFloat[(g0)] = f2;
	cosf(i7);
	f2 = f_g0;
	r10 = heap32[(r1+7)];
	f4 = heapFloat[(fp+-192)];
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	f4 = f_g0;
	if(f4 !=f1) //_LBB301_67
{
	f0 = f3/f0;
	f3 = heapFloat[(fp+-175)];
	f3 = f3*f0;
	f5 = heapFloat[(fp+-172)];
	f5 = f5*f0;
	f6 = heapFloat[(fp+-173)];
	f0 = f6*f0;
	f6 =        6.2831854820251465;
	f7 = r10; //fitos r10, f7
	f8 = r14; //fitos r14, f8
	f6 = f6/f7;
	f6 = f8*f6;
	f7 = heapFloat[(fp+-193)];
	f6 = f6*f7;
	heapFloat[(g0)] = f6;
	sinf(i7);
	heapFloat[(g0)] = f6;
	f4 = f_g0/f4;
	f6 = heapFloat[(fp+-171)];
	f6 = f6*f4;
	f7 = heapFloat[(fp+-170)];
	f7 = f7*f4;
	f8 = heapFloat[(fp+-174)];
	f4 = f8*f4;
	cosf(i7);
	f8 = f_g0;
	f10 = heapFloat[(fp+-195)];
	f9 = heapFloat[(fp+-194)];
	if(f9 >=f10) //_LBB301_69
{
	f9 = heapFloat[(r8+1)];
	heapFloat[(fp+-155)] = f9;
	heapFloat[(fp+-42)] = f9;
	f9 = heapFloat[(r8+2)];
	heapFloat[(fp+-156)] = f9;
	heapFloat[(r4+1)] = f9;
	f9 = heapFloat[(r8+3)];
	heapFloat[(fp+-157)] = f9;
	heapFloat[(r4+2)] = f9;
	f9 = heapFloat[(r8+4)];
	heapFloat[(fp+-163)] = f9;
	heapFloat[(r4+3)] = f9;
	f9 = heapFloat[(r8+5)];
	heapFloat[(fp+-158)] = f9;
	heapFloat[(r4+4)] = f9;
	f9 = heapFloat[(r8+6)];
	heapFloat[(fp+-159)] = f9;
	heapFloat[(r4+5)] = f9;
	f9 = heapFloat[(r8+7)];
	heapFloat[(fp+-160)] = f9;
	heapFloat[(r4+6)] = f9;
	f9 = heapFloat[(r8+8)];
	heapFloat[(fp+-162)] = f9;
	heapFloat[(r4+7)] = f9;
	f9 = heapFloat[(r8+9)];
	heapFloat[(fp+-161)] = f9;
	f10 = f8*f2;
	f11 = f0*f4;
	f12 = f8*f0;
	f13 = f2*f4;
	f14 = f8*f5;
	f15 = f2*f7;
	heapFloat[(r4+8)] = f9;
	f9 = f10+f11;
	f10 = f5*f7;
	f11 = f8*f3;
	f2 = f2*f6;
	f12 = f12-f13;
	f13 = f3*f7;
	f14 = f14-f15;
	f15 = f0*f6;
	f16 = heapFloat[(r8+10)];
	heapFloat[(fp+-164)] = f16;
	f9 = f9+f10;
	f10 = f3*f6;
	f2 = f11-f2;
	f11 = f5*f4;
	f12 = f12-f13;
	f5 = f5*f6;
	f13 = f14-f15;
	f3 = f3*f4;
	f9 = f9+f10;
	f5 = f12+f5;
	f3 = f13+f3;
	heapFloat[(r4+9)] = f16;
	f2 = f2-f11;
	f0 = f0*f7;
	f0 = f2+f0;
	f2 = heapFloat[(r8+11)];
	heapFloat[(fp+-166)] = f2;
	f10 = f9*f7;
	f11 = f3*f8;
	f12 = f9*f4;
	f13 = f5*f8;
	heapFloat[(r4+10)] = f2;
	f2 = f10+f11;
	f10 = f0*f4;
	f11 = f12+f13;
	f12 = f3*f6;
	f13 = f9*f6;
	f14 = f0*f8;
	f17 = heapFloat[(r8+12)];
	f8 = f9*f8;
	f9 = f5*f4;
	f2 = f2+f10;
	f10 = f5*f6;
	f11 = f11+f12;
	f12 = f0*f7;
	f13 = f13+f14;
	f5 = f5*f7;
	f10 = f2-f10;
	f2 = f11-f12;
	heapFloat[(r4+11)] = f17;
	f8 = f8-f9;
	f7 = f3*f7;
	f5 = f13+f5;
	f3 = f3*f4;
	f4 = heapFloat[(r8+13)];
	heapFloat[(fp+-165)] = f4;
	f3 = f5-f3;
	f5 = f8-f7;
	f0 = f0*f6;
	f6 = f2*f2;
	f7 = f10*f10;
	f5 = f5-f0;
	heapFloat[(r4+12)] = f4;
	f0 = f6+f7;
	f4 = f3*f3;
	f6 = heapFloat[(r8+14)];
	heapFloat[(fp+-167)] = f6;
	f0 = f0+f4;
	f4 = f5*f5;
	heapFloat[(r4+13)] = f6;
	f6 =                         2;
	f0 = f0+f4;
	f0 = f6/f0;
	f4 = heapFloat[(r8+15)];
	heapFloat[(fp+-168)] = f4;
	f6 = f3*f0;
	f7 = f10*f0;
	heapFloat[(r4+14)] = f4;
	f16 = heapFloat[(r8+16)];
	f4 = f10*f7;
	f3 = f3*f6;
	f8 = f4+f3;
	f9 = f2*f7;
	f11 = f5*f6;
	heapFloat[(r4+15)] = f16;
	f12 = heapFloat[(fp+-169)];
	f8 = f12-f8;
	f13 = heapFloat[(r2+1)];
	f14 = f9-f11;
	f15 = heapFloat[(r2+5)];
	f18 = f2*f6;
	f7 = f5*f7;
	f19 = f2*f0;
	f20 = heapFloat[(r2+2)];
	f21 = heapFloat[(r2+6)];
	f0 = f13*f8;
	f22 = f15*f14;
	f23 = f18+f7;
	f24 = heapFloat[(r2+9)];
	f25 = f2*f19;
	f26 = heapFloat[(r2+3)];
	f27 = heapFloat[(r2+7)];
	f28 = heapFloat[(r2+11)];
	f29 = heapFloat[(r2+10)];
	f2 = f20*f8;
	f30 = f21*f14;
	f0 = f0+f22;
	f22 = f24*f23;
	f3 = f25+f3;
	f0 = f0+f22;
	f8 = f26*f8;
	f14 = f27*f14;
	f2 = f2+f30;
	f22 = f29*f23;
	f9 = f9+f11;
	f11 = f12-f3;
	f2 = f2+f22;
	heapFloat[(r4+16)] = f0;
	f6 = f10*f6;
	f10 = f5*f19;
	f3 = f8+f14;
	f5 = f28*f23;
	f8 = f6-f10;
	f3 = f3+f5;
	heapFloat[(r4+17)] = f2;
	f5 = f13*f9;
	f14 = f15*f11;
	heapFloat[(r4+18)] = f3;
	f19 = f20*f9;
	f22 = f21*f11;
	f5 = f5+f14;
	f14 = f24*f8;
	f5 = f5+f14;
	heap32[(r4+19)] = 0;
	f9 = f26*f9;
	f11 = f27*f11;
	f14 = f19+f22;
	f19 = f29*f8;
	f18 = f18-f7;
	f10 = f6+f10;
	f4 = f25+f4;
	f6 = f14+f19;
	heapFloat[(r4+20)] = f5;
	f7 = f9+f11;
	f8 = f28*f8;
	f4 = f12-f4;
	f7 = f7+f8;
	heapFloat[(r4+21)] = f6;
	f8 = f13*f18;
	f9 = f15*f10;
	heapFloat[(r4+22)] = f7;
	f11 = f20*f18;
	f12 = f21*f10;
	f8 = f8+f9;
	f9 = f24*f4;
	f9 = f8+f9;
	heap32[(r4+23)] = 0;
	f8 = f26*f18;
	f13 = f27*f10;
	f10 = f11+f12;
	f11 = f29*f4;
	f10 = f10+f11;
	heapFloat[(r4+24)] = f9;
	f8 = f8+f13;
	f4 = f28*f4;
	f11 = f8+f4;
	heapFloat[(r4+25)] = f10;
	heapFloat[(r4+26)] = f11;
	heap32[(r4+27)] = 0;
	f12 = heapFloat[(r4+28)];
	f13 = heapFloat[(r4+29)];
	f14 = heapFloat[(r4+30)];
	f15 = heapFloat[(r4+31)];
	f8 = f1;
	f4 = f1;
}
else{
	f1 = f8*f2;
	f9 = f0*f4;
	f10 = f8*f0;
	f11 = f2*f4;
	f12 = f8*f5;
	f13 = f2*f7;
	f1 = f1+f9;
	f9 = f5*f7;
	f14 = f8*f3;
	f2 = f2*f6;
	f10 = f10-f11;
	f11 = f3*f7;
	f12 = f12-f13;
	f13 = f0*f6;
	f1 = f1+f9;
	f9 = f3*f6;
	f2 = f14-f2;
	f14 = f5*f4;
	f10 = f10-f11;
	f5 = f5*f6;
	f11 = f12-f13;
	f3 = f3*f4;
	f1 = f1+f9;
	f5 = f10+f5;
	f3 = f11+f3;
	f2 = f2-f14;
	f0 = f0*f7;
	f0 = f2+f0;
	f2 = f1*f7;
	f9 = f3*f8;
	f10 = f1*f4;
	f11 = f5*f8;
	f2 = f2+f9;
	f9 = f0*f4;
	f10 = f10+f11;
	f11 = f3*f6;
	f12 = f1*f6;
	f13 = f0*f8;
	f1 = f1*f8;
	f8 = f5*f4;
	f2 = f2+f9;
	f9 = f5*f6;
	f10 = f10+f11;
	f11 = f0*f7;
	f12 = f12+f13;
	f5 = f5*f7;
	f2 = f2-f9;
	f9 = f10-f11;
	f1 = f1-f8;
	f7 = f3*f7;
	f5 = f12+f5;
	f3 = f3*f4;
	f3 = f5-f3;
	f1 = f1-f7;
	f0 = f0*f6;
	f4 = f9*f9;
	f5 = f2*f2;
	f0 = f1-f0;
	f1 = f4+f5;
	f4 = f3*f3;
	f1 = f1+f4;
	f4 = f0*f0;
	f5 =                         2;
	f1 = f1+f4;
	f1 = f5/f1;
	f4 = f3*f1;
	f5 = f2*f1;
	f6 = f2*f5;
	f3 = f3*f4;
	f7 = f6+f3;
	f8 = f9*f5;
	f10 = f0*f4;
	f11 = heapFloat[(fp+-169)];
	f7 = f11-f7;
	f12 = heapFloat[(r8+1)];
	f13 = f8-f10;
	f14 = heapFloat[(r8+5)];
	f15 = f9*f4;
	f5 = f0*f5;
	f1 = f9*f1;
	f16 = heapFloat[(r8+2)];
	f17 = heapFloat[(r8+6)];
	f18 = f12*f7;
	f19 = f14*f13;
	f20 = f15+f5;
	f21 = heapFloat[(r8+9)];
	f9 = f9*f1;
	f22 = heapFloat[(r8+3)];
	f23 = heapFloat[(r8+7)];
	f24 = heapFloat[(r8+11)];
	f25 = heapFloat[(r8+10)];
	f26 = f16*f7;
	f27 = f17*f13;
	f18 = f18+f19;
	f19 = f21*f20;
	f3 = f9+f3;
	f18 = f18+f19;
	heapFloat[(fp+-155)] = f18;
	f7 = f22*f7;
	f13 = f23*f13;
	f19 = f26+f27;
	f26 = f25*f20;
	f8 = f8+f10;
	f3 = f11-f3;
	f10 = f19+f26;
	heapFloat[(fp+-156)] = f10;
	heapFloat[(fp+-42)] = f18;
	f2 = f2*f4;
	f0 = f0*f1;
	f1 = f7+f13;
	f4 = f24*f20;
	f7 = f2-f0;
	f1 = f1+f4;
	heapFloat[(fp+-157)] = f1;
	heapFloat[(r4+1)] = f10;
	f4 = f12*f8;
	f10 = f14*f3;
	heapFloat[(r4+2)] = f1;
	f1 = f16*f8;
	f13 = f17*f3;
	f4 = f4+f10;
	f10 = f21*f7;
	f4 = f4+f10;
	heapFloat[(fp+-158)] = f4;
	heap32[(r4+3)] = 0;
	f8 = f22*f8;
	f3 = f23*f3;
	f1 = f1+f13;
	f10 = f25*f7;
	f5 = f15-f5;
	f0 = f2+f0;
	f2 = f9+f6;
	f1 = f1+f10;
	heapFloat[(fp+-159)] = f1;
	heapFloat[(r4+4)] = f4;
	f3 = f8+f3;
	f4 = f24*f7;
	f2 = f11-f2;
	f3 = f3+f4;
	heapFloat[(fp+-160)] = f3;
	heapFloat[(r4+5)] = f1;
	f1 = f12*f5;
	f4 = f14*f0;
	heapFloat[(r4+6)] = f3;
	f3 = f16*f5;
	f6 = f17*f0;
	f1 = f1+f4;
	f4 = f21*f2;
	f1 = f1+f4;
	heapFloat[(fp+-161)] = f1;
	heap32[(r4+7)] = 0;
	f4 = f22*f5;
	f0 = f23*f0;
	f3 = f3+f6;
	f5 = f25*f2;
	f3 = f3+f5;
	heapFloat[(fp+-164)] = f3;
	heapFloat[(r4+8)] = f1;
	f0 = f4+f0;
	f1 = f24*f2;
	f0 = f0+f1;
	heapFloat[(fp+-166)] = f0;
	heapFloat[(r4+9)] = f3;
	heapFloat[(r4+10)] = f0;
	heap32[(r4+11)] = 0;
	f0 = heapFloat[(r2+1)];
	heapFloat[(r4+16)] = f0;
	f2 = heapFloat[(r2+2)];
	heapFloat[(r4+17)] = f2;
	f3 = heapFloat[(r2+3)];
	heapFloat[(r4+18)] = f3;
	f4 = heapFloat[(r2+4)];
	heapFloat[(r4+19)] = f4;
	f5 = heapFloat[(r2+5)];
	heapFloat[(r4+20)] = f5;
	f6 = heapFloat[(r2+6)];
	heapFloat[(r4+21)] = f6;
	f7 = heapFloat[(r2+7)];
	heapFloat[(r4+22)] = f7;
	f8 = heapFloat[(r2+8)];
	heapFloat[(r4+23)] = f8;
	f9 = heapFloat[(r2+9)];
	heapFloat[(r4+24)] = f9;
	f10 = heapFloat[(r2+10)];
	heapFloat[(r4+25)] = f10;
	f11 = heapFloat[(r2+11)];
	heapFloat[(r4+26)] = f11;
	f1 = heapFloat[(r2+12)];
	heapFloat[(r4+27)] = f1;
	f12 = heapFloat[(r2+13)];
	heapFloat[(r4+28)] = f12;
	f13 = heapFloat[(r2+14)];
	heapFloat[(r4+29)] = f13;
	f14 = heapFloat[(r2+15)];
	heapFloat[(r4+30)] = f14;
	f15 = heapFloat[(r2+16)];
	heapFloat[(r4+31)] = f15;
	f16 = heapFloat[(r4+12)];
	heapFloat[(fp+-165)] = f16;
	f16 = heapFloat[(r4+13)];
	heapFloat[(fp+-167)] = f16;
	f16 = heapFloat[(r4+14)];
	heapFloat[(fp+-168)] = f16;
	f16 = heapFloat[(r4+15)];
	f17 =                         0;
	heapFloat[(fp+-162)] = f17;
	heapFloat[(fp+-163)] = f17;
}
	r10 = _ZTV24btPerturbedContactResult;
	r11 = sp + -616;
	r12 = heap32[(r5+5)];
	r10 = (r10 + 8)|0;
	r13 = r11 >> 2;
	heap32[(fp+-154)] = r10;
	heap32[(r13+40)] = r6;
	f18 = heapFloat[(fp+-155)];
	heapFloat[(r13+41)] = f18;
	f18 = heapFloat[(fp+-156)];
	heapFloat[(r13+42)] = f18;
	f18 = heapFloat[(fp+-157)];
	heapFloat[(r13+43)] = f18;
	f22 = heapFloat[(fp+-163)];
	heapFloat[(r13+44)] = f22;
	f18 = heapFloat[(fp+-158)];
	heapFloat[(r13+45)] = f18;
	f18 = heapFloat[(fp+-159)];
	heapFloat[(r13+46)] = f18;
	f18 = heapFloat[(fp+-160)];
	heapFloat[(r13+47)] = f18;
	f22 = heapFloat[(fp+-162)];
	heapFloat[(r13+48)] = f22;
	f18 = heapFloat[(fp+-161)];
	heapFloat[(r13+49)] = f18;
	f18 = heapFloat[(fp+-164)];
	heapFloat[(r13+50)] = f18;
	f18 = heapFloat[(fp+-166)];
	heapFloat[(r13+51)] = f18;
	heapFloat[(r13+52)] = f17;
	f17 = heapFloat[(fp+-165)];
	heapFloat[(r13+53)] = f17;
	f17 = heapFloat[(fp+-167)];
	heapFloat[(r13+54)] = f17;
	f17 = heapFloat[(fp+-168)];
	heapFloat[(r13+55)] = f17;
	heapFloat[(r13+56)] = f16;
	heapFloat[(r13+57)] = f0;
	heapFloat[(r13+58)] = f2;
	heapFloat[(r13+59)] = f3;
	heapFloat[(r13+60)] = f4;
	heapFloat[(r13+61)] = f5;
	heapFloat[(r13+62)] = f6;
	heapFloat[(r13+63)] = f7;
	heapFloat[(r13+64)] = f8;
	heapFloat[(r13+65)] = f9;
	heapFloat[(r13+66)] = f10;
	heapFloat[(r13+67)] = f11;
	heapFloat[(r13+68)] = f1;
	heapFloat[(r13+69)] = f12;
	heapFloat[(r13+70)] = f13;
	heapFloat[(r13+71)] = f14;
	heapFloat[(r13+72)] = f15;
	f0 = heapFloat[(fp+-176)];
	heapFloat[(r13+73)] = f0;
	f0 = heapFloat[(fp+-177)];
	heapFloat[(r13+74)] = f0;
	f0 = heapFloat[(fp+-178)];
	heapFloat[(r13+75)] = f0;
	f0 = heapFloat[(fp+-179)];
	heapFloat[(r13+76)] = f0;
	f0 = heapFloat[(fp+-180)];
	heapFloat[(r13+77)] = f0;
	f0 = heapFloat[(fp+-181)];
	heapFloat[(r13+78)] = f0;
	f0 = heapFloat[(fp+-182)];
	heapFloat[(r13+79)] = f0;
	f0 = heapFloat[(fp+-183)];
	heapFloat[(r13+80)] = f0;
	f0 = heapFloat[(fp+-184)];
	heapFloat[(r13+81)] = f0;
	f0 = heapFloat[(fp+-185)];
	heapFloat[(r13+82)] = f0;
	f0 = heapFloat[(fp+-186)];
	heapFloat[(r13+83)] = f0;
	f0 = heapFloat[(fp+-187)];
	heapFloat[(r13+84)] = f0;
	f0 = heapFloat[(fp+-188)];
	heapFloat[(r13+85)] = f0;
	f0 = heapFloat[(fp+-189)];
	heapFloat[(r13+86)] = f0;
	f0 = heapFloat[(fp+-190)];
	heapFloat[(r13+87)] = f0;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(r13+88)] = f0;
	heap8[sp+-260] = r9;
	heap32[(r13+90)] = r12;
	heap32[(g0)] = r15;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r12;
	heap32[(g0+4)] = 0;
	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
}
else{
break _78;
}
}
else{
break _78;
}
}
	r14 = (r14 + 1)|0;
}
else{
break _63;
}
}
	r0 = _2E_str115;
	r1 = _2E_str685;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 61;
	_assert(i7);
}
}
} while(0);
	r0 = heapU8[r0+16];
	if(r0 ==0) //_LBB301_47
{
__label__ = 44;
}
else{
	r0 = heap32[(r7+1)];
	if(r0 !=0) //_LBB301_76
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
	if(r2 ==0) //_LBB301_47
{
__label__ = 44;
}
else{
	r1 = heap32[(r1+277)];
	r2 = heap32[(r7+34)];
	if(r1 ==r2) //_LBB301_79
{
__label__ = 43;
}
else{
	r1 = (r6 + 72)|0;
	r6 = (r6 + 8)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r6;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
	return;
}
}
}
else{
	r0 = _2E_str59;
	r6 = _2E_str160;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = 101;
	_assert(i7);
}
}
}
switch(__label__ ){//multiple entries
case 44:
	return;
break;
case 43:
	r1 = (r6 + 8)|0;
	r2 = (r6 + 72)|0;
break;
}
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
	return;
}

function _ZN23btConvexConvexAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV23btConvexConvexAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+16];
if(!(r1 ==0)) //_LBB302_3
{
	r1 = heap32[(r2+5)];
if(!(r1 ==0)) //_LBB302_3
{
	r3 = heap32[(r2+1)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
}
	r1 = _ZTV30btActivatingCollisionAlgorithm;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN23btConvexConvexAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV23btConvexConvexAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r0 = heapU8[r0+16];
if(!(r0 ==0)) //_LBB303_3
{
	r0 = heap32[(r2+5)];
if(!(r0 ==0)) //_LBB303_3
{
	r1 = heap32[(r2+1)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
}
	r0 = _ZTV30btActivatingCollisionAlgorithm;
	r0 = (r0 + 8)|0;
	heap32[(r2)] = r0;
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var f0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	f0 =                         1;
	f_g0 = f0;
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+3)];
if(!(r2 ==0)) //_LBB305_23
{
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB305_23
{
	r0 = heap32[(fp+1)];
	r3 = r0 >> 2;
	r4 = heap32[(r3+2)];
	r5 = heap32[(r3+1)];
	if(r4 ==r5) //_LBB305_4
{
	r6 = 1;
	r7 = r5 << 1;
	r7 = r5 == 0 ? r6 : r7;
if(!(r4 >=r7)) //_LBB305_3
{
	if(r7 !=0) //_LBB305_7
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r4 = heap32[(r2)];
	r8 = r7 << 2;
	r4 = (r4 + 1)|0;
	r8 = r8 | 3;
	heap32[(r2)] = r4;
	r2 = (r8 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB305_9
{
	r4 = 0;
	r8 = (r2 + 4)|0;
	r4 = (r4 - r8)|0;
	r4 = r4 & 15;
	r4 = (r2 + r4)|0;
	r8 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r2;
	r2 = r8;
}
}
else{
	r2 = 0;
}
	r4 = (r0 + 12)|0;
	if(r5 <1) //_LBB305_12
{
	r8 = r4 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_15: while(true){
	r9 = r4 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r2 + r10)|0;
	r11 = heap32[(r11)];
	r8 = (r8 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r5 !=r8)) //_LBB305_13
{
break _15;
}
}
	r4 = (r0 + 12)|0;
}
	if(r9 !=0) //_LBB305_17
{
	r8 = heapU8[r0+16];
	if(r8 !=0) //_LBB305_19
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r8 = heap32[(r5)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r5)] = r8;
	r5 = heap32[(r9+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r3+1)];
}
	r8 = r4 >> 2;
	heap32[(r8)] = 0;
}
	r4 = r4 >> 2;
	heap8[r0+16] = r6;
	heap32[(r4)] = r2;
	heap32[(r3+2)] = r7;
	r2 = heap32[(r1+3)];
}
}
	r0 = r5 << 2;
	r1 = heap32[(r3+3)];
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r3+1)];
	r0 = (r0 + 1)|0;
	heap32[(r3+1)] = r0;
}
}
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -136;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0)];
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r0+2)];
	f3 = f0*f0;
	f4 = f1*f1;
	f5 = heapFloat[(r0+3)];
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	f4 = f5*f5;
	f6 =                         2;
	f3 = f3+f4;
	f3 = f6/f3;
	r0 = heap32[(fp)];
	f4 = f2*f3;
	f6 = f1*f3;
	r1 = heapU8[r0+16];
	r2 = heap32[(fp+3)];
	r3 = heap32[(fp+2)];
	f3 = f0*f3;
	r4 = r1 == 0 ? r3 : r2;
	f7 = f1*f6;
	f2 = f2*f4;
	r4 = r4 >> 2;
	f8 = f0*f3;
	f9 =                         1;
	f10 = f7+f2;
	f11 = f0*f6;
	f12 = f5*f4;
	f2 = f8+f2;
	f10 = f9-f10;
	f13 = heapFloat[(r4+1)];
	heapFloat[(fp+-17)] = f13;
	f13 = heapFloat[(r4+5)];
	heapFloat[(fp+-18)] = f13;
	f14 = f11+f12;
	f13 = heapFloat[(r4+2)];
	heapFloat[(fp+-19)] = f13;
	f13 = heapFloat[(r4+6)];
	heapFloat[(fp+-20)] = f13;
	f0 = f0*f4;
	f6 = f5*f6;
	f11 = f11-f12;
	f2 = f9-f2;
	f12 = heapFloat[(r4+9)];
	heapFloat[(fp+-24)] = f12;
	f15 = heapFloat[(r4+10)];
	heapFloat[(fp+-25)] = f15;
	r1 = r1 == 0 ? r2 : r3;
	f1 = f1*f4;
	f3 = f5*f3;
	f13 = heapFloat[(fp+-17)];
	f4 = f10*f13;
	f13 = heapFloat[(fp+-19)];
	f5 = f14*f13;
	f13 = heapFloat[(fp+-18)];
	f16 = f10*f13;
	f13 = heapFloat[(fp+-20)];
	f17 = f14*f13;
	f18 = f0-f6;
	f19 = heapFloat[(r4+3)];
	heapFloat[(fp+-26)] = f19;
	f20 = heapFloat[(r4+7)];
	heapFloat[(fp+-27)] = f20;
	r1 = r1 >> 2;
	f0 = f0+f6;
	f6 = f1-f3;
	f1 = f1+f3;
	f3 = heapFloat[(r4+11)];
	heapFloat[(fp+-21)] = f3;
	f7 = f8+f7;
	f13 = heapFloat[(fp+-17)];
	f8 = f11*f13;
	f13 = heapFloat[(fp+-19)];
	f21 = f2*f13;
	f13 = heapFloat[(fp+-18)];
	f22 = f11*f13;
	f13 = heapFloat[(fp+-20)];
	f23 = f2*f13;
	f4 = f4+f5;
	f5 = f18*f19;
	f16 = f16+f17;
	f17 = f18*f20;
	f10 = f10*f12;
	f14 = f14*f15;
	f7 = f9-f7;
	f9 = heapFloat[(r1+2)];
	f24 = heapFloat[(r1+6)];
	f25 = heapFloat[(r1+1)];
	f26 = heapFloat[(r1+5)];
	f4 = f4+f5;
	f5 = f16+f17;
	r2 = heap32[(r1+48)];
	f13 = heapFloat[(fp+-17)];
	f16 = f0*f13;
	f13 = heapFloat[(fp+-19)];
	f17 = f6*f13;
	f13 = heapFloat[(fp+-18)];
	f27 = f0*f13;
	f13 = heapFloat[(fp+-20)];
	f28 = f6*f13;
	f8 = f8+f21;
	f21 = f1*f19;
	f22 = f22+f23;
	f23 = f1*f20;
	f11 = f11*f12;
	f2 = f2*f15;
	f10 = f10+f14;
	f14 = f18*f3;
	f18 = heapFloat[(r1+3)];
	f29 = heapFloat[(r1+7)];
	f8 = f8+f21;
	f21 = f22+f23;
	f22 = heapFloat[(r1+10)];
	f23 = heapFloat[(r1+9)];
	r2 = r2 >> 2;
	f10 = f10+f14;
	r3 = heap32[(r4+48)];
	f14 = f16+f17;
	f16 = f7*f19;
	f17 = f27+f28;
	f27 = f7*f20;
	f0 = f0*f12;
	f6 = f6*f15;
	f2 = f11+f2;
	f1 = f1*f3;
	f11 = f25*f4;
	f28 = f26*f5;
	f30 = f9*f4;
	f3 = f24*f5;
	f12 = heapFloat[(r1+11)];
	f14 = f14+f16;
	f16 = f17+f27;
	f1 = f2+f1;
	r5 = r3 >> 2;
	f2 = heapFloat[(r2+12)];
	f0 = f0+f6;
	f6 = heapFloat[(fp+-21)];
	f7 = f7*f6;
	f17 = f25*f8;
	f27 = f26*f21;
	f6 = f9*f8;
	f13 = f24*f21;
	f11 = f11+f28;
	f28 = f23*f10;
	f3 = f30+f3;
	f30 = f22*f10;
	f4 = f18*f4;
	f5 = f29*f5;
	f0 = f0+f7;
	r5 = heap32[(r5)];
	f7 = f25*f14;
	f15 = f26*f16;
	f19 = f9*f14;
	f20 = f24*f16;
	f17 = f17+f27;
	f27 = f23*f1;
	f6 = f6+f13;
	f13 = f22*f1;
	f8 = f18*f8;
	f21 = f29*f21;
	f11 = f11+f28;
	f2 = -f2;
	f3 = f3+f30;
	f28 = heapFloat[(r2+13)];
	f4 = f4+f5;
	f5 = f12*f10;
	r5 = r5 >> 2;
	f10 = f17+f27;
	f6 = f6+f13;
	f7 = f7+f15;
	f13 = f23*f0;
	f15 = f19+f20;
	f17 = f22*f0;
	f14 = f18*f14;
	f16 = f29*f16;
	f8 = f8+f21;
	f1 = f12*f1;
	f11 = f11*f2;
	f3 = f3*f28;
	f4 = f4+f5;
	f5 = heapFloat[(r2+14)];
	f19 = heapFloat[(r4+13)];
	heapFloat[(fp+-22)] = f19;
	f19 = heapFloat[(r4+14)];
	heapFloat[(fp+-23)] = f19;
	f20 = heapFloat[(r4+15)];
	heapFloat[(fp+-28)] = f20;
	f21 = heapFloat[(r1+14)];
	f27 = heapFloat[(r1+15)];
	heapFloat[(fp+-29)] = f27;
	f7 = f7+f13;
	f13 = f15+f17;
	f1 = f8+f1;
	f8 = heapFloat[(r1+13)];
	r4 = heap32[(r5+15)];
	f14 = f14+f16;
	f0 = f12*f0;
	f10 = f10*f2;
	f6 = f6*f28;
	f3 = f11-f3;
	f4 = f4*f5;
	r5 = sp + -16;
	f0 = f14+f0;
	f2 = f7*f2;
	f7 = f13*f28;
	f6 = f10-f6;
	f1 = f1*f5;
	f3 = f3-f4;
	r6 = r5 >> 2;
	f2 = f2-f7;
	f0 = f0*f5;
	f1 = f6-f1;
	heapFloat[(fp+-4)] = f3;
	f0 = f2-f0;
	heapFloat[(r6+1)] = f1;
	heapFloat[(r6+2)] = f0;
	heap32[(r6+3)] = 0;
	r6 = sp + -32;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r5;
	f13 = heapFloat[(fp+-17)];
	f0 = f13*f9;
	f13 = heapFloat[(fp+-18)];
	f1 = f13*f24;
	f13 = heapFloat[(fp+-19)];
	f2 = f13*f9;
	f13 = heapFloat[(fp+-20)];
	f3 = f13*f24;
	f13 = heapFloat[(fp+-17)];
	f4 = f13*f25;
	f13 = heapFloat[(fp+-18)];
	f5 = f13*f26;
	f13 = heapFloat[(fp+-19)];
	f6 = f13*f25;
	f13 = heapFloat[(fp+-20)];
	f7 = f13*f26;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	f8 = -f8;
	r3 = r6 >> 2;
	f13 = heapFloat[(fp+-17)];
	f10 = f13*f18;
	f13 = heapFloat[(fp+-18)];
	f11 = f13*f29;
	f13 = heapFloat[(fp+-19)];
	f13 = f13*f18;
	f14 = heapFloat[(fp+-20)];
	f14 = f14*f29;
	f0 = f0+f1;
	f1 = heapFloat[(fp+-24)];
	f15 = f1*f22;
	f2 = f2+f3;
	f3 = heapFloat[(fp+-25)];
	f16 = f3*f22;
	f19 = heapFloat[(fp+-26)];
	f17 = f19*f9;
	f20 = heapFloat[(fp+-27)];
	f28 = f20*f24;
	f4 = f4+f5;
	f5 = f1*f23;
	f6 = f6+f7;
	f7 = f3*f23;
	f30 = f19*f25;
	f1 = f20*f26;
	f10 = f10+f11;
	f11 = heapFloat[(fp+-24)];
	f11 = f11*f12;
	f13 = f13+f14;
	f3 = f3*f12;
	f14 = f19*f18;
	f19 = f20*f29;
	f0 = f0+f15;
	f15 = heapFloat[(fp+-8)];
	f4 = f4+f5;
	f2 = f2+f16;
	f5 = heapFloat[(r3+1)];
	f6 = f6+f7;
	f7 = f17+f28;
	f16 = heapFloat[(fp+-21)];
	f17 = f16*f22;
	f20 = heapFloat[(fp+-22)];
	f28 = f9*f20;
	f16 = heapFloat[(fp+-23)];
	f16 = f24*f16;
	f9 = f9*f8;
	f24 = f24*f21;
	f1 = f30+f1;
	f30 = heapFloat[(fp+-21)];
	f20 = f30*f23;
	f27 = heapFloat[(fp+-22)];
	f27 = f25*f27;
	f30 = heapFloat[(fp+-23)];
	f30 = f26*f30;
	f25 = f25*f8;
	f26 = f26*f21;
	f10 = f10+f11;
	f3 = f13+f3;
	f11 = f14+f19;
	f13 = heapFloat[(fp+-21)];
	f13 = f13*f12;
	f14 = heapFloat[(fp+-22)];
	f14 = f18*f14;
	f19 = heapFloat[(fp+-23)];
	f19 = f29*f19;
	f8 = f18*f8;
	f18 = f29*f21;
	f0 = f0*f15;
	f2 = f2*f5;
	f7 = f7+f17;
	f17 = heapFloat[(r3+2)];
	f1 = f1+f20;
	f16 = f28+f16;
	f20 = heapFloat[(fp+-28)];
	f21 = f22*f20;
	f9 = f9-f24;
	f24 = heapFloat[(fp+-29)];
	f22 = f22*f24;
	f4 = f4*f15;
	f6 = f6*f5;
	f27 = f27+f30;
	f28 = f23*f20;
	f25 = f25-f26;
	f23 = f23*f24;
	f11 = f11+f13;
	f10 = f10*f15;
	f3 = f3*f5;
	f5 = f14+f19;
	f13 = f12*f20;
	f8 = f8-f18;
	f12 = f12*f24;
	f0 = f0+f2;
	f2 = f7*f17;
	f7 = f16+f21;
	f9 = f9-f22;
	f4 = f4+f6;
	f1 = f1*f17;
	f6 = f27+f28;
	f14 = f25-f23;
	f3 = f10+f3;
	f10 = f11*f17;
	f5 = f5+f13;
	f8 = f8-f12;
	f0 = f0+f2;
	f2 = f7+f9;
	f1 = f4+f1;
	f4 = f6+f14;
	f3 = f3+f10;
	f5 = f5+f8;
	f0 = f0+f2;
	f2 = heapFloat[(r2+13)];
	f1 = f1+f4;
	f4 = heapFloat[(r2+12)];
	f6 = f4*f1;
	f7 = f2*f0;
	f3 = f3+f5;
	f5 = heapFloat[(r2+14)];
	r0 = r0 >> 2;
	f6 = f6+f7;
	f7 = f5*f3;
	r0 = heap32[(r0+3)];
	f6 = f6+f7;
	f7 = heapFloat[(r2+16)];
	f6 = f6-f7;
	r3 = r0 >> 2;
	r4 = heap32[(fp+4)];
	f7 = heapFloat[(r1+9)];
	f8 = heapFloat[(r1+10)];
	f9 = heapFloat[(r1+11)];
	f10 = heapFloat[(r1+15)];
	f11 = heapFloat[(r1+5)];
	f12 = heapFloat[(r1+6)];
	f13 = heapFloat[(r1+7)];
	f14 = heapFloat[(r1+14)];
	f15 = heapFloat[(r1+1)];
	f16 = heapFloat[(r1+2)];
	f17 = heapFloat[(r1+3)];
	f18 = heapFloat[(r1+13)];
	f19 = heapFloat[(r3+280)];
	r3 = r4 >> 2;
	heap32[(r3+1)] = r0;
if(!(f19 <=f6)) //_LBB306_2
{
	f5 = f5*f6;
	f2 = f2*f6;
	f4 = f4*f6;
	f3 = f3-f5;
	f0 = f0-f2;
	f1 = f1-f4;
	f2 = heapFloat[(r2+12)];
	f4 = heapFloat[(r1+1)];
	f5 = heapFloat[(r2+13)];
	f19 = heapFloat[(r1+2)];
	f20 = heapFloat[(r1+5)];
	f21 = heapFloat[(r1+6)];
	f4 = f4*f2;
	f19 = f19*f5;
	f22 = heapFloat[(r2+14)];
	f23 = heapFloat[(r1+3)];
	f24 = heapFloat[(r1+9)];
	f25 = heapFloat[(r1+10)];
	f26 = heapFloat[(r1+11)];
	f27 = heapFloat[(r1+7)];
	f20 = f20*f2;
	f21 = f21*f5;
	f4 = f4+f19;
	f19 = f23*f22;
	r0 = sp + -48;
	f2 = f24*f2;
	f5 = f25*f5;
	f20 = f20+f21;
	f21 = f27*f22;
	f4 = f4+f19;
	f15 = f15*f1;
	f16 = f16*f0;
	r1 = r0 >> 2;
	f2 = f2+f5;
	f5 = f26*f22;
	f19 = f20+f21;
	heapFloat[(fp+-12)] = f4;
	f4 = f11*f1;
	f11 = f12*f0;
	f12 = f15+f16;
	f15 = f17*f3;
	f2 = f2+f5;
	heapFloat[(r1+1)] = f19;
	heapFloat[(r1+2)] = f2;
	f1 = f7*f1;
	f0 = f8*f0;
	f2 = f4+f11;
	f4 = f13*f3;
	f5 = f12+f15;
	r2 = sp + -64;
	f0 = f1+f0;
	f1 = f9*f3;
	f2 = f2+f4;
	f3 = f5+f18;
	heap32[(r1+3)] = 0;
	r1 = r2 >> 2;
	f0 = f0+f1;
	f1 = f2+f14;
	heapFloat[(fp+-16)] = f3;
	f0 = f0+f10;
	heapFloat[(r1+1)] = f1;
	heapFloat[(r1+2)] = f0;
	heap32[(r1+3)] = 0;
	r1 = heap32[(r3)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	heapFloat[(g0+3)] = f6;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
var __label__ = 0;
	i7 = sp + -56;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+3)];
if(!(r2 ==0)) //_LBB307_23
{
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+4)];
	r5 = heapU8[r0+16];
	r6 = r5 == 0 ? r2 : r3;
	r5 = r5 == 0 ? r3 : r2;
	r6 = r6 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r6+48)];
	r5 = heap32[(r5+48)];
	r7 = sp + -32;
	r8 = r7 >> 2;
	heap32[(fp+-8)] = 0;
	heap32[(r8+1)] = 0;
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = 1065353216;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	r7 = r4 >> 2;
	_ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i7);
	r8 = heap32[(r7+1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+279)];
	r9 = heap32[(r1+6)];
_3: do {
if(!(r8 >=r9)) //_LBB307_15
{
	r5 = r5 >> 2;
	f0 = heapFloat[(r5+14)];
	f1 =                         0;
	if(f0 <f1) //_LBB307_4
{
	f2 = -f0;
}
else{
	f2 = f0;
}
	f3 =       0.70710676908493042;
	if(f2 <=f3) //_LBB307_7
{
	f0 = heapFloat[(r5+12)];
	f2 = heapFloat[(r5+13)];
	f0 = f0*f0;
	f2 = f2*f2;
	f0 = f0+f2;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f2 = heapFloat[(r5+13)];
	f3 =                         1;
	f2 = -f2;
	f0 = f3/f_g0;
	f4 = heapFloat[(r5+12)];
	f3 = f0*f2;
	f2 = f4*f0;
	f0 = f1;
}
else{
	f2 = heapFloat[(r5+13)];
	f2 = f2*f2;
	f0 = f0*f0;
	f0 = f2+f0;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f2 = heapFloat[(r5+14)];
	f3 =                         1;
	f2 = -f2;
	f0 = f3/f_g0;
	f3 = heapFloat[(r5+13)];
	f2 = f0*f2;
	f0 = f3*f0;
	f3 =                         0;
}
	r8 = r6 >> 2;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r6;
	f4 = f3*f3;
	f5 = f2*f2;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	f6 = f_g0;
	f4 = f4+f5;
	f5 = f0*f0;
	f4 = f4+f5;
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	f4 = f_g0;
	if(f4 !=f1) //_LBB307_10
{
	f1 =      0.019999999552965164;
	f1 = f1/f6;
	f5 =                       0.5;
	f6 =       0.39269909262657166;
	f7 =       0.19634954631328583;
	f8 = f1*f5;
	f1 = f1 > f6 ? f7 : f8;
	heapFloat[(g0)] = f1;
	sinf(i7);
	heapFloat[(g0)] = f1;
	f1 = f_g0/f4;
	f0 = f0*f1;
	f2 = f2*f1;
	f1 = f3*f1;
	r6 = 0;
	cosf(i7);
	f3 = f_g0;
_15: while(true){
	r8 = heap32[(r1+5)];
	if(r8 >r6) //_LBB307_11
{
	f4 = heapFloat[(r5+12)];
	f6 = heapFloat[(r5+13)];
	f7 = heapFloat[(r5+14)];
	f4 = f4*f4;
	f6 = f6*f6;
	f4 = f4+f6;
	f6 = f7*f7;
	f4 = f4+f6;
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	f4 = f_g0;
	f6 =                         0;
	if(f4 !=f6) //_LBB307_13
{
	f6 =        6.2831854820251465;
	f7 = r8; //fitos r8, f7
	f8 = r6; //fitos r6, f8
	f6 = f6/f7;
	f6 = f8*f6;
	f6 = f6*f5;
	heapFloat[(g0)] = f6;
	sinf(i7);
	f7 = f_g0;
	heapFloat[(g0)] = f6;
	cosf(i7);
	f4 = f7/f4;
	f7 = heapFloat[(r5+12)];
	f7 = f7*f4;
	f8 = heapFloat[(r5+13)];
	f8 = f8*f4;
	f9 = heapFloat[(r5+14)];
	f10 = f_g0*f3;
	f11 = f1*f7;
	f12 = f_g0*f1;
	f13 = f3*f7;
	f4 = f9*f4;
	f9 = f10+f11;
	f10 = f2*f8;
	f11 = f12-f13;
	f12 = f0*f8;
	f13 = f_g0*f2;
	f14 = f3*f8;
	f9 = f9+f10;
	f10 = f0*f4;
	f11 = f11-f12;
	f12 = f2*f4;
	f13 = f13-f14;
	f14 = f1*f4;
	f15 = f_g0*f0;
	f16 = f3*f4;
	f9 = f9+f10;
	f10 = f11+f12;
	f11 = f13-f14;
	f12 = f0*f7;
	f13 = f15-f16;
	f14 = f2*f7;
	f11 = f11+f12;
	f12 = f9*f7;
	f15 = f10*f_g0;
	f13 = f13-f14;
	f14 = f1*f8;
	f13 = f13+f14;
	f14 = f9*f8;
	f16 = f11*f_g0;
	f12 = f12+f15;
	f15 = f11*f4;
	f17 = f9*f4;
	f18 = f13*f_g0;
	f14 = f14+f16;
	f16 = f13*f7;
	f12 = f12+f15;
	f15 = f13*f8;
	r8 = sp + -16;
	f6 = f9*f_g0;
	f9 = f10*f7;
	f17 = f17+f18;
	f18 = f10*f8;
	f14 = f14+f16;
	f10 = f10*f4;
	f12 = f12-f15;
	r9 = r8 >> 2;
	f6 = f6-f9;
	f8 = f11*f8;
	f9 = f17+f18;
	f7 = f11*f7;
	f10 = f14-f10;
	heapFloat[(fp+-4)] = f12;
	f6 = f6-f8;
	f4 = f13*f4;
	f7 = f9-f7;
	heapFloat[(r9+1)] = f10;
	f4 = f6-f4;
	heapFloat[(r9+2)] = f7;
	heapFloat[(r9+3)] = f4;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	r6 = (r6 + 1)|0;
	_ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i7);
}
else{
break _15;
}
}
else{
break _3;
}
}
}
	r0 = _2E_str115;
	r1 = _2E_str685;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 61;
	_assert(i7);
}
} while(0);
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB307_23
{
	r0 = heap32[(r1+3)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+279)];
if(!(r0 ==0)) //_LBB307_23
{
	r0 = heap32[(r7+1)];
	if(r0 !=0) //_LBB307_19
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
if(!(r2 ==0)) //_LBB307_23
{
	r1 = heap32[(r1+277)];
	r2 = heap32[(r7+34)];
	if(r1 ==r2) //_LBB307_22
{
	r1 = (r4 + 8)|0;
	r2 = (r4 + 72)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
}
else{
	r1 = (r4 + 72)|0;
	r4 = (r4 + 8)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
	return;
}
}
}
else{
	r0 = _2E_str59;
	r4 = _2E_str160;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = 101;
	_assert(i7);
}
}
}
}
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btConvexPlaneCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+8];
if(!(r1 ==0)) //_LBB308_3
{
	r1 = heap32[(r2+3)];
if(!(r1 ==0)) //_LBB308_3
{
	r2 = heap32[(r2+1)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
}
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btConvexPlaneCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB309_3
{
	r0 = heap32[(r2+3)];
if(!(r0 ==0)) //_LBB309_3
{
	r1 = heap32[(r2+1)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
}
	return;
}

function _ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r_g0 = r0;
	return;
}

function _ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+6)];
	r_g0 = r0;
	return;
}

function _ZN31btDefaultCollisionConfiguration17getStackAllocatorEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+2)];
	r_g0 = r0;
	return;
}

function _ZN31btDefaultCollisionConfiguration16getSimplexSolverEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+8)];
	r_g0 = r0;
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 28;
	r1 = heap32[(fp)];
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r3 = r1 >> 2;
	r4 = _ZTV20btCollisionAlgorithm;
	r5 = heap32[(r3+3)];
	r3 = heap32[(r3+2)];
	r1 = heapU8[r1+4];
	r6 = r2 >> 2;
	r4 = (r4 + 8)|0;
	heap32[(r6)] = r4;
	r0 = heap32[(r0)];
	r4 = _ZTV31btConvexPlaneCollisionAlgorithm;
	r4 = (r4 + 8)|0;
	heap32[(r6+1)] = r0;
	r7 = 0;
	heap32[(r6)] = r4;
	r4 = heap32[(fp+2)];
	r8 = heap32[(fp+3)];
	heap8[r2+8] = r7;
	heap32[(r6+3)] = 0;
	if(r1 !=0) //_LBB316_3
{
	r1 = 1;
	r6 = r2 >> 2;
	heap8[r2+16] = r1;
	heap32[(r6+5)] = r3;
	r3 = r0 >> 2;
	heap32[(r6+6)] = r5;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB316_5
{
	r0 = heap32[(r6+1)];
	r3 = r0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	heap32[(r6+3)] = r_g0;
	heap8[r2+8] = r1;
}
}
else{
	r1 = r2 >> 2;
	heap8[r2+16] = r7;
	heap32[(r1+5)] = r3;
	r3 = r0 >> 2;
	heap32[(r1+6)] = r5;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r8;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB316_5
{
	r0 = heap32[(r1+1)];
	r3 = r0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r8;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = 1;
	heap32[(r1+3)] = r_g0;
	heap8[r2+8] = r3;
}
}
	r_g0 = r2;
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 80;
	r1 = _ZTV20btCollisionAlgorithm;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r1 = (r1 + 8)|0;
	r3 = r2 >> 2;
	heap32[(r3)] = r1;
	r1 = heap32[(r0)];
	r4 = _ZTV33btConvexConcaveCollisionAlgorithm;
	r4 = (r4 + 8)|0;
	heap32[(r3+1)] = r1;
	r1 = 0;
	heap32[(r3)] = r4;
	heap8[r2+8] = r1;
	r1 = _ZTV24btConvexTriangleCallback;
	r0 = heap32[(r0)];
	r1 = (r1 + 8)|0;
	heap32[(r3+3)] = r1;
	heap32[(r3+15)] = r0;
	r1 = heap32[(fp+2)];
	heap32[(r3+16)] = 0;
	r4 = heap32[(fp+3)];
	heap32[(r3+4)] = r1;
	r5 = r0 >> 2;
	heap32[(r3+5)] = r4;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	heap32[(r3+19)] = r_g0;
	r1 = heap32[(r3+15)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+5)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r_g0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r_g0 = r2;
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 80;
	r1 = _ZTV20btCollisionAlgorithm;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r1 = (r1 + 8)|0;
	r3 = r2 >> 2;
	heap32[(r3)] = r1;
	r1 = heap32[(r0)];
	r4 = _ZTV33btConvexConcaveCollisionAlgorithm;
	r4 = (r4 + 8)|0;
	heap32[(r3+1)] = r1;
	r1 = 1;
	heap32[(r3)] = r4;
	heap8[r2+8] = r1;
	r1 = _ZTV24btConvexTriangleCallback;
	r0 = heap32[(r0)];
	r1 = (r1 + 8)|0;
	heap32[(r3+3)] = r1;
	heap32[(r3+15)] = r0;
	r1 = heap32[(fp+3)];
	heap32[(r3+16)] = 0;
	r4 = heap32[(fp+2)];
	heap32[(r3+4)] = r1;
	r5 = r0 >> 2;
	heap32[(r3+5)] = r4;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	heap32[(r3+19)] = r_g0;
	r1 = heap32[(r3+15)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+5)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r_g0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r_g0 = r2;
	return;
}

function _ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 44;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = r_g0;
	r2 = _ZTV20btCollisionAlgorithm;
	r3 = r1 >> 2;
	r2 = (r2 + 8)|0;
	heap32[(r3)] = r2;
	r2 = heap32[(r0)];
	r4 = _ZTV28btCompoundCollisionAlgorithm;
	r4 = (r4 + 8)|0;
	heap32[(r3+1)] = r2;
	r2 = 1;
	heap32[(r3)] = r4;
	heap8[r1+24] = r2;
	heap32[(r3+5)] = 0;
	heap32[(r3+3)] = 0;
	r2 = 0;
	heap32[(r3+4)] = 0;
	heap8[r1+28] = r2;
	r0 = heap32[(r0+1)];
	r4 = heap32[(fp+2)];
	heap32[(r3+8)] = r0;
	r0 = r4 >> 2;
	heap8[r1+36] = r2;
	r0 = heap32[(r0+48)];
	r0 = r0 >> 2;
	r2 = heap32[(r0+1)];
	if(r2 ==31) //_LBB325_2
{
	r2 = heap32[(fp+3)];
	r3 = r1 >> 2;
	r0 = heap32[(r0+17)];
	heap32[(r3+10)] = r0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r2;
	_ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7);
	r_g0 = r1;
	return;
}
else{
	r0 = _2E_str99;
	r1 = _2E_str1100;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 32;
	_assert(i7);
}
}

function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 44;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = r_g0;
	r2 = _ZTV20btCollisionAlgorithm;
	r3 = r1 >> 2;
	r2 = (r2 + 8)|0;
	heap32[(r3)] = r2;
	r2 = heap32[(r0)];
	r4 = _ZTV28btCompoundCollisionAlgorithm;
	r4 = (r4 + 8)|0;
	heap32[(r3+1)] = r2;
	r2 = 1;
	heap32[(r3)] = r4;
	heap8[r1+24] = r2;
	heap32[(r3+5)] = 0;
	heap32[(r3+3)] = 0;
	heap32[(r3+4)] = 0;
	heap8[r1+28] = r2;
	r0 = heap32[(r0+1)];
	r2 = heap32[(fp+3)];
	r4 = 0;
	heap32[(r3+8)] = r0;
	r0 = r2 >> 2;
	heap8[r1+36] = r4;
	r0 = heap32[(r0+48)];
	r0 = r0 >> 2;
	r3 = heap32[(r0+1)];
	if(r3 ==31) //_LBB328_2
{
	r3 = heap32[(fp+2)];
	r4 = r1 >> 2;
	r0 = heap32[(r0+17)];
	heap32[(r4+10)] = r0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	_ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7);
	r_g0 = r1;
	return;
}
else{
	r0 = _2E_str99;
	r1 = _2E_str1100;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 32;
	_assert(i7);
}
}

function _ZN16btEmptyAlgorithm10CreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN16btEmptyAlgorithm10CreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN16btEmptyAlgorithm10CreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN16btEmptyAlgorithm10CreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 8;
	r1 = _ZTV20btCollisionAlgorithm;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r3 = r_g0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r3)] = r1;
	r0 = heap32[(r0)];
	r1 = _ZTV16btEmptyAlgorithm;
	r1 = (r1 + 8)|0;
	heap32[(r3+1)] = r0;
	heap32[(r3)] = r1;
	return;
}

function _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 16;
	r1 = _ZTV20btCollisionAlgorithm;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r3 = r2 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r3)] = r1;
	r0 = heap32[(r0)];
	r1 = _ZTV32btSphereSphereCollisionAlgorithm;
	r1 = (r1 + 8)|0;
	heap32[(r3+1)] = r0;
	r4 = 0;
	heap32[(r3)] = r1;
	heap8[r2+8] = r4;
	r1 = r0 >> 2;
	heap32[(r3+3)] = 0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+3)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = 1;
	heap32[(r3+3)] = r_g0;
	heap8[r2+8] = r1;
	r_g0 = r2;
	return;
}

function _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 20;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = r_g0;
	r2 = heap32[(fp)];
	r3 = _ZTV20btCollisionAlgorithm;
	r4 = heap32[(r0+1)];
	r2 = heapU8[r2+4];
	r5 = r1 >> 2;
	r3 = (r3 + 8)|0;
	heap32[(r5)] = r3;
	r0 = heap32[(r0)];
	r3 = _ZTV34btSphereTriangleCollisionAlgorithm;
	r3 = (r3 + 8)|0;
	heap32[(r5+1)] = r0;
	r6 = 0;
	heap32[(r5)] = r3;
	heap8[r1+8] = r6;
	heap32[(r5+3)] = r4;
	heap8[r1+16] = r2;
if(!(r4 !=0)) //_LBB337_2
{
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = r0 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	r0 = r1 >> 2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = 1;
	heap32[(r0+3)] = r_g0;
	heap8[r1+8] = r3;
}
	r_g0 = r1;
	return;
}

function _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 16;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = r_g0;
	r2 = _ZTV20btCollisionAlgorithm;
	r3 = r1 >> 2;
	r2 = (r2 + 8)|0;
	heap32[(r3)] = r2;
	r0 = heap32[(r0)];
	r2 = _ZTV26btBoxBoxCollisionAlgorithm;
	r2 = (r2 + 8)|0;
	heap32[(r3+1)] = r0;
	r4 = 0;
	heap32[(r3)] = r2;
	heap8[r1+8] = r4;
	r2 = r0 >> 2;
	heap32[(r3+3)] = 0;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+6)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB340_2
{
	r0 = r1 >> 2;
	r2 = heap32[(r0+1)];
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+3)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r3 = 1;
	heap32[(r0+3)] = r_g0;
	heap8[r1+8] = r3;
}
	r_g0 = r1;
	return;
}

function _ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+2)];
	if(r0 !=8) //_LBB341_3
{
__label__ = 3;
}
else{
	if(r2 !=8) //_LBB341_3
{
__label__ = 3;
}
else{
	r0 = (r1 + 64)|0;
__label__ = 30;
}
}
_4: do {
if (__label__ == 3){
if(!(r0 !=8)) //_LBB341_6
{
if(!(r2 !=1)) //_LBB341_6
{
	r0 = (r1 + 72)|0;
break _4;
}
}
if(!(r0 !=1)) //_LBB341_9
{
if(!(r2 !=8)) //_LBB341_9
{
	r0 = (r1 + 76)|0;
break _4;
}
}
	r3 = r2 | r0;
	if(r3 !=0) //_LBB341_11
{
if(!(r0 >19)) //_LBB341_14
{
if(!(r2 !=28)) //_LBB341_14
{
	r0 = (r1 + 84)|0;
break _4;
}
}
if(!(r2 >19)) //_LBB341_17
{
if(!(r0 !=28)) //_LBB341_17
{
	r0 = (r1 + 80)|0;
break _4;
}
}
_24: do {
	if(r0 >19) //_LBB341_21
{
	if(r2 <20) //_LBB341_23
{
	r3 = (r0 + -21)|0;
	if(uint(r3) <uint(9)) //_LBB341_25
{
	r0 = (r1 + 48)|0;
break _4;
}
}
	if(r0 ==31) //_LBB341_26
{
	r0 = (r1 + 52)|0;
break _4;
}
else{
break _24;
}
}
else{
	if(r2 >19) //_LBB341_20
{
	r0 = (r2 + -21)|0;
	if(uint(r0) <uint(9)) //_LBB341_22
{
	r0 = (r1 + 44)|0;
break _4;
}
}
else{
	r0 = (r1 + 40)|0;
break _4;
}
}
} while(0);
	if(r2 !=31) //_LBB341_29
{
	r0 = (r1 + 60)|0;
}
else{
	r0 = (r1 + 56)|0;
}
}
else{
	r0 = (r1 + 68)|0;
}
}
} while(0);
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	r_g0 = r0;
	return;
}

function _ZN31btDefaultCollisionConfigurationD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btDefaultCollisionConfiguration;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+12];
_1: do {
if(!(r1 ==0)) //_LBB342_13
{
	r1 = heap32[(r2+2)];
	r3 = r1 >> 2;
	r4 = heap32[(r3+2)];
	if(r4 ==0) //_LBB342_3
{
	r1 = heapU8[r1+16];
if(!(r1 !=0)) //_LBB342_6
{
	r1 = heap32[(r3)];
if(!(r1 ==0)) //_LBB342_6
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r4)] = r5;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	heap32[(r3)] = 0;
	heap32[(r3+2)] = 0;
	r1 = heap32[(r2+2)];
	r3 = r1 >> 2;
	r4 = heap32[(r3+2)];
	if(r4 ==0) //_LBB342_8
{
	r1 = heapU8[r1+16];
if(!(r1 !=0)) //_LBB342_11
{
	r1 = heap32[(r3)];
if(!(r1 ==0)) //_LBB342_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r4)] = r5;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	heap32[(r3)] = 0;
	heap32[(r3+2)] = 0;
	r1 = heap32[(r2+2)];
	if(r1 ==0) //_LBB342_13
{
break _1;
}
else{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
break _1;
}
}
}
	r0 = _2E_str128;
	r1 = _2E_str1129;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 49;
	_assert(i7);
}
} while(0);
	r1 = heapU8[r0+28];
if(!(r1 ==0)) //_LBB342_19
{
	r1 = heap32[(r2+6)];
	r3 = r1 >> 2;
	r3 = heap32[(r3+4)];
	if(r3 !=0) //_LBB342_16
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r4 = heap32[(r1)];
	r4 = (r4 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r1)] = r4;
	r1 = heap32[(r3+-1)];
	heap32[(g0)] = r1;
	free(i7);
	r1 = heap32[(r2+6)];
}
if(!(r1 ==0)) //_LBB342_19
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = heapU8[r0+20];
if(!(r1 ==0)) //_LBB342_25
{
	r1 = heap32[(r2+4)];
	r3 = r1 >> 2;
	r3 = heap32[(r3+4)];
	if(r3 !=0) //_LBB342_22
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r4 = heap32[(r1)];
	r4 = (r4 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r1)] = r4;
	r1 = heap32[(r3+-1)];
	heap32[(g0)] = r1;
	free(i7);
	r1 = heap32[(r2+4)];
}
if(!(r1 ==0)) //_LBB342_25
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = heap32[(r2+10)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+10)];
if(!(r1 ==0)) //_LBB342_27
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+11)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+11)];
if(!(r1 ==0)) //_LBB342_29
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+12)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+12)];
if(!(r1 ==0)) //_LBB342_31
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+13)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+13)];
if(!(r1 ==0)) //_LBB342_33
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+14)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+14)];
if(!(r1 ==0)) //_LBB342_35
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+15)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+15)];
if(!(r1 ==0)) //_LBB342_37
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+16)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+16)];
if(!(r1 ==0)) //_LBB342_39
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+18)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+18)];
if(!(r1 ==0)) //_LBB342_41
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+19)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+19)];
if(!(r1 ==0)) //_LBB342_43
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+17)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+17)];
if(!(r1 ==0)) //_LBB342_45
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+21)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+21)];
if(!(r1 ==0)) //_LBB342_47
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+20)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+20)];
if(!(r1 ==0)) //_LBB342_49
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+8)];
if(!(r1 ==0)) //_LBB342_51
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	r1 = heap32[(r2+9)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+9)];
if(!(r1 ==0)) //_LBB342_53
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r2)] = r3;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN31btDefaultCollisionConfigurationD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	heap32[(g0)] = r0;
	_ZN31btDefaultCollisionConfigurationD2Ev(i7);
	return;
}

function _ZN31btDefaultCollisionConfigurationD2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btDefaultCollisionConfiguration;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+12];
_1: do {
if(!(r1 ==0)) //_LBB344_13
{
	r1 = heap32[(r2+2)];
	r3 = r1 >> 2;
	r4 = heap32[(r3+2)];
	if(r4 ==0) //_LBB344_3
{
	r1 = heapU8[r1+16];
if(!(r1 !=0)) //_LBB344_6
{
	r1 = heap32[(r3)];
if(!(r1 ==0)) //_LBB344_6
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r4)] = r5;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	heap32[(r3)] = 0;
	heap32[(r3+2)] = 0;
	r1 = heap32[(r2+2)];
	r3 = r1 >> 2;
	r4 = heap32[(r3+2)];
	if(r4 ==0) //_LBB344_8
{
	r1 = heapU8[r1+16];
if(!(r1 !=0)) //_LBB344_11
{
	r1 = heap32[(r3)];
if(!(r1 ==0)) //_LBB344_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r4)] = r5;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	heap32[(r3)] = 0;
	heap32[(r3+2)] = 0;
	r1 = heap32[(r2+2)];
	if(r1 ==0) //_LBB344_13
{
break _1;
}
else{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
break _1;
}
}
}
	r0 = _2E_str128;
	r1 = _2E_str1129;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 49;
	_assert(i7);
}
} while(0);
	r1 = heapU8[r0+28];
if(!(r1 ==0)) //_LBB344_19
{
	r1 = heap32[(r2+6)];
	r3 = r1 >> 2;
	r3 = heap32[(r3+4)];
	if(r3 !=0) //_LBB344_16
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r4 = heap32[(r1)];
	r4 = (r4 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r1)] = r4;
	r1 = heap32[(r3+-1)];
	heap32[(g0)] = r1;
	free(i7);
	r1 = heap32[(r2+6)];
}
if(!(r1 ==0)) //_LBB344_19
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r0 = heapU8[r0+20];
if(!(r0 ==0)) //_LBB344_25
{
	r0 = heap32[(r2+4)];
	r1 = r0 >> 2;
	r1 = heap32[(r1+4)];
	if(r1 !=0) //_LBB344_22
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r3 = heap32[(r0)];
	r3 = (r3 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r0)] = r3;
	r0 = heap32[(r1+-1)];
	heap32[(g0)] = r0;
	free(i7);
	r0 = heap32[(r2+4)];
}
if(!(r0 ==0)) //_LBB344_25
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	r0 = heap32[(r2+10)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+10)];
if(!(r0 ==0)) //_LBB344_27
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+11)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+11)];
if(!(r0 ==0)) //_LBB344_29
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+12)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+12)];
if(!(r0 ==0)) //_LBB344_31
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+13)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+13)];
if(!(r0 ==0)) //_LBB344_33
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+14)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+14)];
if(!(r0 ==0)) //_LBB344_35
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+15)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+15)];
if(!(r0 ==0)) //_LBB344_37
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+16)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+16)];
if(!(r0 ==0)) //_LBB344_39
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+18)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+18)];
if(!(r0 ==0)) //_LBB344_41
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+19)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+19)];
if(!(r0 ==0)) //_LBB344_43
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+17)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+17)];
if(!(r0 ==0)) //_LBB344_45
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+21)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+21)];
if(!(r0 ==0)) //_LBB344_47
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+20)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+20)];
if(!(r0 ==0)) //_LBB344_49
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+8)];
if(!(r0 ==0)) //_LBB344_51
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	r0 = heap32[(r2+9)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+9)];
if(!(r0 ==0)) //_LBB344_53
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r2 = (r2 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r2;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var f0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	f0 =                         1;
	f_g0 = f0;
	return;
}

function _ZN16btEmptyAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btEmptyAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btEmptyAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btEmptyAlgorithm;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN16btManifoldResultD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btManifoldResult;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN16btManifoldResultD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btManifoldResult;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btManifoldResult15addContactPointERK9btVector3S2_f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -304;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
	if(r1 !=0) //_LBB352_2
{
	f0 = heapFloat[(fp+3)];
	r2 = r1 >> 2;
	f1 = heapFloat[(r2+280)];
if(!(f1 <f0)) //_LBB352_53
{
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r3 = r3 >> 2;
	r4 = r4 >> 2;
	f1 = heapFloat[(r3+2)];
	heapFloat[(fp+-71)] = f1;
	f2 = heapFloat[(r3+1)];
	f3 = heapFloat[(r3)];
	f4 = heapFloat[(r4+2)];
	f1 = f1*f0;
	f5 = heapFloat[(r4+1)];
	f6 = f2*f0;
	f7 = heapFloat[(r4)];
	f8 = f3*f0;
	r5 = heap32[(r2+277)];
	r6 = heap32[(r0+34)];
	f1 = f4+f1;
	f6 = f5+f6;
	f8 = f7+f8;
	if(r5 ==r6) //_LBB352_5
{
	f9 = heapFloat[(r0+14)];
	f10 = heapFloat[(r0+15)];
	f11 = heapFloat[(r0+30)];
	f13 = heapFloat[(r0+31)];
	f14 = heapFloat[(r0+4)];
	f9 = f8-f9;
	f15 = heapFloat[(r0+3)];
	f12 = heapFloat[(r0+2)];
	f16 = heapFloat[(r0+8)];
	f10 = f6-f10;
	f17 = heapFloat[(r0+7)];
	f18 = heapFloat[(r0+6)];
	f19 = heapFloat[(r0+16)];
	f20 = heapFloat[(r0+20)];
	f11 = f7-f11;
	f21 = heapFloat[(r0+19)];
	f22 = heapFloat[(r0+18)];
	f23 = heapFloat[(r0+24)];
	f13 = f5-f13;
	f24 = heapFloat[(r0+23)];
	f25 = heapFloat[(r0+22)];
	f26 = heapFloat[(r0+32)];
	f14 = f14*f9;
	f16 = f16*f10;
	f27 = heapFloat[(r0+12)];
	f19 = f1-f19;
	f28 = heapFloat[(r0+11)];
	f29 = heapFloat[(r0+10)];
	f15 = f15*f9;
	f17 = f17*f10;
	f9 = f12*f9;
	f10 = f18*f10;
	f12 = f20*f11;
	f18 = f23*f13;
	f20 = heapFloat[(r0+28)];
	f23 = f4-f26;
	f26 = heapFloat[(r0+27)];
	f30 = heapFloat[(r0+26)];
	f21 = f21*f11;
	f24 = f24*f13;
	f11 = f22*f11;
	f13 = f25*f13;
	f14 = f14+f16;
	f16 = f27*f19;
	f15 = f15+f17;
	f17 = f28*f19;
	f9 = f9+f10;
	f10 = f29*f19;
	f12 = f12+f18;
	f18 = f20*f23;
	f19 = f21+f24;
	f20 = f26*f23;
	f11 = f11+f13;
	f21 = f30*f23;
	f13 = f14+f16;
	f14 = f15+f17;
	f9 = f9+f10;
	f10 = f12+f18;
	f15 = f19+f20;
	f11 = f11+f21;
}
else{
	f9 = heapFloat[(r0+30)];
	f10 = heapFloat[(r0+31)];
	f11 = heapFloat[(r0+14)];
	f12 = heapFloat[(r0+15)];
	f13 = heapFloat[(r0+20)];
	f9 = f8-f9;
	f14 = heapFloat[(r0+19)];
	f15 = heapFloat[(r0+18)];
	f16 = heapFloat[(r0+24)];
	f10 = f6-f10;
	f17 = heapFloat[(r0+23)];
	f18 = heapFloat[(r0+22)];
	f19 = heapFloat[(r0+32)];
	f20 = heapFloat[(r0+4)];
	f11 = f7-f11;
	f21 = heapFloat[(r0+3)];
	f22 = heapFloat[(r0+2)];
	f23 = heapFloat[(r0+8)];
	f12 = f5-f12;
	f24 = heapFloat[(r0+7)];
	f25 = heapFloat[(r0+6)];
	f26 = heapFloat[(r0+16)];
	f13 = f13*f9;
	f16 = f16*f10;
	f27 = heapFloat[(r0+28)];
	f19 = f1-f19;
	f28 = heapFloat[(r0+27)];
	f29 = heapFloat[(r0+26)];
	f14 = f14*f9;
	f17 = f17*f10;
	f9 = f15*f9;
	f10 = f18*f10;
	f15 = f20*f11;
	f18 = f23*f12;
	f20 = heapFloat[(r0+12)];
	f23 = f4-f26;
	f26 = heapFloat[(r0+11)];
	f30 = heapFloat[(r0+10)];
	f21 = f21*f11;
	f24 = f24*f12;
	f11 = f22*f11;
	f12 = f25*f12;
	f13 = f13+f16;
	f16 = f27*f19;
	f14 = f14+f17;
	f17 = f28*f19;
	f9 = f9+f10;
	f10 = f29*f19;
	f15 = f15+f18;
	f18 = f20*f23;
	f19 = f21+f24;
	f20 = f26*f23;
	f11 = f11+f12;
	f12 = f30*f23;
	f13 = f13+f16;
	f14 = f14+f17;
	f9 = f9+f10;
	f10 = f15+f18;
	f15 = f19+f20;
	f11 = f11+f12;
}
	r7 = sp + -280;
	r8 = r7 >> 2;
	heapFloat[(fp+-70)] = f9;
	heapFloat[(r8+1)] = f14;
	heapFloat[(r8+2)] = f13;
	heap32[(r8+3)] = 0;
	heapFloat[(r8+4)] = f11;
	heapFloat[(r8+5)] = f15;
	heapFloat[(r8+6)] = f10;
	heap32[(r8+7)] = 0;
	heapFloat[(r8+16)] = f3;
	heapFloat[(r8+17)] = f2;
	f2 = heapFloat[(fp+-71)];
	heapFloat[(r8+18)] = f2;
	heap32[(r8+19)] = heap32[(r3+3)];
	heapFloat[(r8+20)] = f0;
	heap32[(r8+21)] = 0;
	heap32[(r8+22)] = 0;
	heap32[(r8+27)] = 0;
	r3 = 0;
	heap32[(r8+28)] = 0;
	heap8[sp+-164] = r3;
	heap32[(r8+30)] = 0;
	heap32[(r8+31)] = 0;
	heap32[(r8+32)] = 0;
	heap32[(r8+33)] = 0;
	heap32[(r8+34)] = 0;
	heap32[(r8+35)] = 0;
	heap32[(r8+36)] = 0;
	heap32[(r8+52)] = 0;
	heap32[(r8+60)] = 0;
	heap32[(r8+68)] = 0;
	heapFloat[(r8+12)] = f8;
	heapFloat[(r8+13)] = f6;
	heapFloat[(r8+14)] = f1;
	heap32[(r8+15)] = 0;
	heapFloat[(r8+8)] = f7;
	heapFloat[(r8+9)] = f5;
	heapFloat[(r8+10)] = f4;
	heap32[(r8+11)] = heap32[(r4+3)];
	r4 = heap32[(r2+279)];
_9: do {
	if(r4 >0) //_LBB352_8
{
	f1 = heapFloat[(r2+280)];
	f1 = f1*f1;
	r10 = 0;
	r9 = -1;
_11: while(true){
	r11 = (r10 * 69)|0;
	r11 = r11 << 2;
	r11 = (r1 + r11)|0;
	r11 = r11 >> 2;
	f2 = heapFloat[(r11+1)];
	f3 = heapFloat[(r11+2)];
	f2 = f2-f9;
	f3 = f3-f14;
	f4 = heapFloat[(r11+3)];
	f4 = f4-f13;
	f2 = f2*f2;
	f3 = f3*f3;
	f2 = f2+f3;
	f3 = f4*f4;
	f2 = f2+f3;
	r11 = (r10 + 1)|0;
	r9 = f2 < f1 ? r10 : r9;
	f1 = f2 < f1 ? f2 : f1;
	r10 = r11;
if(!(r4 !=r11)) //_LBB352_9
{
break _9;
}
}
}
else{
	r9 = -1;
}
} while(0);
	r4 = heap32[(r0+35)];
	r4 = r4 >> 2;
	r10 = r6 >> 2;
	f1 = heapFloat[(r10+56)];
	f2 = heapFloat[(r4+56)];
	f1 = f1*f2;
	f2 =                       -10;
	f1 = f1 < f2 ? f2 : f1;
	f2 =                        10;
	f1 = f1 > f2 ? f2 : f1;
	heapFloat[(r8+21)] = f1;
	f1 = heapFloat[(r10+57)];
	f2 = heapFloat[(r4+57)];
	f1 = f1*f2;
	heapFloat[(r8+22)] = f1;
	if(r5 ==r6) //_LBB352_12
{
	r4 = heap32[(r0+36)];
	heap32[(r8+23)] = r4;
	r4 = heap32[(r0+37)];
	heap32[(r8+24)] = r4;
	r4 = heap32[(r0+38)];
	heap32[(r8+25)] = r4;
	r0 = heap32[(r0+39)];
	heap32[(r8+26)] = r0;
}
else{
	r4 = heap32[(r0+37)];
	heap32[(r8+23)] = r4;
	r4 = heap32[(r0+36)];
	heap32[(r8+24)] = r4;
	r4 = heap32[(r0+39)];
	heap32[(r8+25)] = r4;
	r0 = heap32[(r0+38)];
	heap32[(r8+26)] = r0;
}
	f1 = heapFloat[(r2+280)];
	if(r9 <0) //_LBB352_19
{
	if(f1 >=f0) //_LBB352_21
{
	r0 = heap32[(r2+279)];
	if(r0 !=4) //_LBB352_49
{
	r4 = (r0 + 1)|0;
	heap32[(r2+279)] = r4;
}
else{
	f1 = heapFloat[(r2+21)];
	r0 = -1;
	f2 = heapFloat[(r2+90)];
	f3 = f1 < f0 ? f1 : f0;
	r4 = 1;
	f4 = heapFloat[(r2+159)];
	f5 = f2 < f3 ? f2 : f3;
	r5 = 2;
	f6 = heapFloat[(r2+228)];
	f7 = f4 < f5 ? f4 : f5;
	if(f6 >=f7) //_LBB352_24
{
	r6 = f1 >= f0 ? r0 : r3;
	r6 = f2 < f3 ? r4 : r6;
	r6 = f4 < f5 ? r5 : r6;
	if(r6 ==0) //_LBB352_26
{
	f0 = heapFloat[(r2+210)];
	f1 = heapFloat[(r2+141)];
	f2 = heapFloat[(r2+209)];
	f3 = heapFloat[(r2+140)];
	f4 = heapFloat[(r2+208)];
	f5 = heapFloat[(r2+139)];
	f6 = heapFloat[(r2+72)];
	f7 = heapFloat[(r2+71)];
	f8 = heapFloat[(r2+70)];
	f10 =                         0;
	r6 = r3;
__label__ = 28;
}
else{
__label__ = 26;
}
}
else{
	r6 = 3;
__label__ = 26;
}
if (__label__ == 26){
	f6 = heapFloat[(r2+72)];
	f0 = heapFloat[(r2+210)];
	f1 = heapFloat[(r2+141)];
	f8 = heapFloat[(r2+70)];
	f2 = heapFloat[(r2+209)];
	f3 = heapFloat[(r2+140)];
	f7 = heapFloat[(r2+71)];
	f4 = heapFloat[(r2+208)];
	f5 = heapFloat[(r2+139)];
	f10 = f13-f6;
	f11 = f2-f3;
	f12 = f9-f8;
	f15 = f0-f1;
	f16 = f14-f7;
	f17 = f4-f5;
	f18 = f16*f15;
	f19 = f10*f11;
	f10 = f10*f17;
	f15 = f12*f15;
	f18 = f18-f19;
	f10 = f10-f15;
	f11 = f12*f11;
	f12 = f16*f17;
	f11 = f11-f12;
	f12 = f18*f18;
	f10 = f10*f10;
	f10 = f12+f10;
	f11 = f11*f11;
	f10 = f10+f11;
	if(r6 ==1) //_LBB352_29
{
	f11 = heapFloat[(r2+3)];
	f12 = heapFloat[(r2+2)];
	f15 = heapFloat[(r2+1)];
	f16 =                         0;
	r6 = r4;
__label__ = 30;
}
else{
__label__ = 28;
}
}
if (__label__ == 28){
	f11 = heapFloat[(r2+3)];
	f15 = heapFloat[(r2+1)];
	f12 = heapFloat[(r2+2)];
	f16 = f13-f11;
	f17 = f2-f3;
	f18 = f9-f15;
	f19 = f0-f1;
	f20 = f14-f12;
	f21 = f4-f5;
	f22 = f20*f19;
	f23 = f16*f17;
	f16 = f16*f21;
	f19 = f18*f19;
	f22 = f22-f23;
	f16 = f16-f19;
	f17 = f18*f17;
	f18 = f20*f21;
	f17 = f17-f18;
	f18 = f22*f22;
	f16 = f16*f16;
	f16 = f18+f16;
	f17 = f17*f17;
	f16 = f16+f17;
	if(r6 ==2) //_LBB352_32
{
	f0 =                         0;
__label__ = 32;
}
else{
__label__ = 30;
}
}
if (__label__ == 30){
	f17 = f13-f11;
	f2 = f2-f7;
	f18 = f9-f15;
	f0 = f0-f6;
	f19 = f14-f12;
	f4 = f4-f8;
	f20 = f19*f0;
	f21 = f17*f2;
	f17 = f17*f4;
	f0 = f18*f0;
	f20 = f20-f21;
	f0 = f17-f0;
	f2 = f18*f2;
	f4 = f19*f4;
	f2 = f2-f4;
	f4 = f20*f20;
	f0 = f0*f0;
	f0 = f4+f0;
	f2 = f2*f2;
	f0 = f0+f2;
	if(r6 ==3) //_LBB352_35
{
	f1 =                         0;
__label__ = 34;
}
else{
__label__ = 32;
}
}
if (__label__ == 32){
	f2 = f13-f11;
	f3 = f3-f7;
	f4 = f9-f15;
	f1 = f1-f6;
	f6 = f14-f12;
	f5 = f5-f8;
	f7 = f6*f1;
	f8 = f2*f3;
	f2 = f2*f5;
	f1 = f4*f1;
	f7 = f7-f8;
	f1 = f2-f1;
	f2 = f4*f3;
	f3 = f6*f5;
	f2 = f2-f3;
	f3 = f7*f7;
	f1 = f1*f1;
	f1 = f3+f1;
	f2 = f2*f2;
	f1 = f1+f2;
	f2 =                         0;
	if(f1 <f2) //_LBB352_38
{
	f1 = -f1;
}
}
	f2 =                         0;
	if(f0 <f2) //_LBB352_41
{
	f0 = -f0;
}
	if(f16 <f2) //_LBB352_44
{
	f16 = -f16;
}
	if(f10 <f2) //_LBB352_47
{
	f10 = -f10;
}
	f2 =       -999999984306749440;
	r2 = 0;
	f3 = f10 > f2 ? f10 : f2;
	r0 = f10 <= f2 ? r0 : r2;
	f2 = f16 > f3 ? f16 : f3;
	r0 = f16 > f3 ? r4 : r0;
	f3 = f0 > f2 ? f0 : f2;
	r2 = 3;
	r0 = f0 > f2 ? r5 : r0;
	r0 = f1 > f3 ? r2 : r0;
}
	r0 = r0 < 0 ? r3 : r0;
	r0 = (r0 * 276)|0;
	r0 = (r1 + r0)|0;
	r1 = r0 >> 2;
	r1 = heap32[(r1+28)];
	if(r1 ==0) //_LBB352_52
{
	r0 = (r0 + 4)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = 276;
	memcpy(i7);
}
else{
	r0 = _2E_str4438;
	r7 = _2E_str3437;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = 190;
	_assert(i7);
}
}
else{
	r1 = _2E_str2149;
	r2 = _2E_str3437;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 168;
	_assert(i7);
}
}
else{
	if(f1 >=f0) //_LBB352_16
{
	r2 = (r9 * 276)|0;
	r1 = (r1 + r2)|0;
	r2 = r1 >> 2;
	r3 = heap32[(r2+37)];
	if(r3 >-1) //_LBB352_18
{
	f0 = heapFloat[(r2+53)];
	f1 = heapFloat[(r2+61)];
	f9 = heapFloat[(r2+69)];
	r0 = heap32[(r2+28)];
	r1 = (r1 + 4)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = 276;
	memcpy(i7);
	heap32[(r2+28)] = r0;
	heapFloat[(r2+29)] = f0;
	heapFloat[(r2+31)] = f1;
	heapFloat[(r2+32)] = f9;
	heapFloat[(r2+53)] = f0;
	heapFloat[(r2+61)] = f1;
	heapFloat[(r2+69)] = f9;
	heap32[(r2+37)] = r3;
	return;
}
else{
	r1 = _2E_str3150;
	r2 = _2E_str483;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 177;
	_assert(i7);
}
}
else{
	r1 = _2E_str2149;
	r2 = _2E_str483;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 165;
	_assert(i7);
}
}
}
	return;
}
else{
	r0 = _2E_str59;
	r1 = _2E_str5152;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 64;
	_assert(i7);
}
}

function _ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+2)];
if(!(r1 <1)) //_LBB353_10
{
	r1 = heap32[(fp)];
	r2 = 0;
	r3 = r2;
_3: while(true){
	r4 = heap32[(r0+4)];
	r5 = r2 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r5 = (r2 + 1)|0;
	r6 = heapU8[r4+204];
	r6 = r6 & 3;
	if(r6 !=0) //_LBB353_8
{
	r2 = r4 >> 2;
	heap32[(r2+52)] = -1;
	heap32[(r2+53)] = -2;
}
else{
	r6 = r1 >> 2;
	r7 = heap32[(r6+4)];
	r8 = r3 << 3;
	r9 = (r7 + r8)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	if(r9 ==r3) //_LBB353_5
{
	r10 = r3;
}
else{
	r10 = r3;
_11: while(true){
	r9 = r9 << 3;
	r10 = r10 << 3;
	r9 = (r7 + r9)|0;
	r7 = (r7 + r10)|0;
	r9 = r9 >> 2;
	r7 = r7 >> 2;
	r10 = heap32[(r9)];
	heap32[(r7)] = r10;
	r10 = heap32[(r9)];
	r7 = heap32[(r6+4)];
	r9 = r10 << 3;
	r9 = (r7 + r9)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
if(!(r9 !=r10)) //_LBB353_6
{
break _11;
}
}
}
	r4 = r4 >> 2;
	heap32[(r4+52)] = r10;
	r6 = heap32[(r6+4)];
	r6 = (r6 + r8)|0;
	r6 = r6 >> 2;
	r3 = (r3 + 1)|0;
	heap32[(r6+1)] = r2;
	heap32[(r4+53)] = -1;
}
	r4 = heap32[(r0+2)];
	r2 = r5;
	if(r4 >r5) //_LBB353_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+1)];
	r2 = (r0 + r1)|0;
	r3 = r2 >>> 31;
	r4 = heap32[(fp)];
	r2 = (r2 + r3)|0;
	r3 = r4 >> 2;
	r2 = r2 & 2147483646;
	r5 = heap32[(r3+3)];
	r2 = r2 << 1;
	r2 = (r5 + r2)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r5 = r1;
	r6 = r0;
_1: while(true){
	r7 = r2 >> 2;
	r8 = heap32[(r7+277)];
	r8 = r8 >> 2;
	r9 = heap32[(r3+3)];
	r8 = heap32[(r8+52)];
_3: while(true){
	r10 = r5 << 2;
	r10 = (r9 + r10)|0;
	r10 = r10 >> 2;
	r11 = heap32[(r10)];
	r12 = r11 >> 2;
	r13 = heap32[(r12+277)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+52)];
	if(r13 <0) //_LBB354_5
{
	r13 = heap32[(r12+278)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+52)];
}
	if(r8 <0) //_LBB354_8
{
	r12 = heap32[(r7+278)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+52)];
}
else{
	r12 = r8;
}
	if(r13 <r12) //_LBB354_2
{
	r5 = (r5 + 1)|0;
continue _3;
}
else{
break _3;
}
}
_13: while(true){
	r12 = r6 << 2;
	r13 = (r9 + r12)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
	if(r8 <0) //_LBB354_13
{
	r14 = heap32[(r7+278)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+52)];
}
else{
	r14 = r8;
}
	r15 = r13 >> 2;
	r16 = heap32[(r15+277)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+52)];
	if(r16 <0) //_LBB354_16
{
	r16 = heap32[(r15+278)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+52)];
}
	if(r14 <r16) //_LBB354_10
{
	r6 = (r6 + -1)|0;
continue _13;
}
else{
break _13;
}
}
	if(r5 <=r6) //_LBB354_20
{
	heap32[(r10)] = r13;
	r7 = heap32[(r3+3)];
	r7 = (r7 + r12)|0;
	r5 = (r5 + 1)|0;
	r6 = (r6 + -1)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r11;
}
	if(r5 <=r6) //_LBB354_1
{
continue _1;
}
else{
break _1;
}
}
if(!(r6 <=r1)) //_LBB354_24
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r6;
	_ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7);
}
if(!(r5 >=r0)) //_LBB354_26
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r0;
	_ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7);
}
	return;
}

function _ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r0 = r0 >> 2;
	r2 = heap32[(r0+2)];
_1: do {
	if(r2 >0) //_LBB355_2
{
	r3 = 0;
	r2 = r3;
_3: while(true){
	r4 = heap32[(r0+4)];
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r3 = (r3 + 1)|0;
	r5 = heapU8[r4+204];
	r5 = r5 & 3;
	if(r5 ==0) //_LBB355_5
{
	r5 = (r2 + 1)|0;
	r6 = r4 >> 2;
	heap32[(r6+52)] = r2;
	r2 = r5;
}
	r4 = r4 >> 2;
	heap32[(r4+53)] = -1;
	heap32[(r4+60)] = 1065353216;
	r4 = heap32[(r0+2)];
	if(r4 >r3) //_LBB355_3
{
continue _3;
}
else{
break _1;
}
}
}
else{
	r2 = 0;
}
} while(0);
	r3 = r1 >> 2;
	r4 = heap32[(r3+2)];
_10: do {
if(!(r4 >r2)) //_LBB355_26
{
if(!(r4 >=r2)) //_LBB355_26
{
	r5 = heap32[(r3+3)];
if(!(r5 >=r2)) //_LBB355_25
{
	if(r2 !=0) //_LBB355_12
{
	r5 = gNumAlignedAllocs;
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r7 = r2 << 3;
	r6 = (r6 + 1)|0;
	r7 = r7 | 3;
	heap32[(r5)] = r6;
	r5 = (r7 + 16)|0;
	heap32[(g0)] = r5;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB355_14
{
	r6 = 0;
	r7 = (r5 + 4)|0;
	r6 = (r6 - r7)|0;
	r6 = r6 & 15;
	r6 = (r5 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r5;
	r5 = r7;
}
}
else{
	r5 = 0;
}
	r6 = (r1 + 16)|0;
	if(r4 <1) //_LBB355_17
{
	r7 = r6 >> 2;
	r8 = heap32[(r7)];
}
else{
	r7 = 0;
_23: while(true){
	r8 = r6 >> 2;
	r8 = heap32[(r8)];
	r9 = r7 << 3;
	r10 = (r8 + r9)|0;
	r10 = r10 >> 2;
	r9 = (r5 + r9)|0;
	r11 = heap32[(r10+1)];
	r10 = heap32[(r10)];
	r9 = r9 >> 2;
	r7 = (r7 + 1)|0;
	heap32[(r9)] = r10;
	heap32[(r9+1)] = r11;
if(!(r4 !=r7)) //_LBB355_18
{
break _23;
}
}
	r6 = (r1 + 16)|0;
}
if(!(r8 ==0)) //_LBB355_24
{
	r7 = heapU8[r1+20];
if(!(r7 ==0)) //_LBB355_23
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r9 = heap32[(r7)];
	r9 = (r9 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r7)] = r9;
	r7 = heap32[(r8+-1)];
	heap32[(g0)] = r7;
	free(i7);
}
	r7 = r6 >> 2;
	heap32[(r7)] = 0;
}
	r7 = 1;
	r6 = r6 >> 2;
	heap8[r1+20] = r7;
	heap32[(r6)] = r5;
	heap32[(r3+3)] = r2;
	if(r4 >=r2) //_LBB355_26
{
break _10;
}
}
_33: while(true){
	r1 = r4 << 3;
	r5 = heap32[(r3+4)];
	r1 = (r5 + r1)|0;
	r1 = r1 >> 2;
	r4 = (r4 + 1)|0;
	heap32[(r1)] = 0;
	heap32[(r1+1)] = 0;
	if(r2 !=r4) //_LBB355_25
{
continue _33;
}
else{
break _10;
}
}
}
}
} while(0);
	heap32[(r3+2)] = r2;
_36: do {
if(!(r2 <1)) //_LBB355_29
{
	r1 = 0;
_38: while(true){
	r4 = r1 << 3;
	r5 = heap32[(r3+4)];
	r5 = (r5 + r4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r1;
	r5 = heap32[(r3+4)];
	r4 = (r5 + r4)|0;
	r1 = (r1 + 1)|0;
	r4 = r4 >> 2;
	heap32[(r4+1)] = 1;
	if(r2 !=r1) //_LBB355_28
{
continue _38;
}
else{
break _36;
}
}
}
} while(0);
	r0 = heap32[(r0+20)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+9)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = r_g0;
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+9)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = r_g0;
_41: do {
if(!(r2 <1)) //_LBB355_46
{
	r0 = (r0 + 4)|0;
_43: while(true){
	r1 = r0 >> 2;
	r4 = heap32[(r1+-1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
if(!(r4 ==0)) //_LBB355_45
{
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
if(!(r1 ==0)) //_LBB355_45
{
	r4 = r4 >> 2;
	r5 = heap32[(r4+51)];
	r5 = r5 & 7;
if(!(r5 !=0)) //_LBB355_45
{
	r5 = heapU8[r1+204];
	r5 = r5 & 7;
if(!(r5 !=0)) //_LBB355_45
{
	r4 = heap32[(r4+52)];
	r5 = heap32[(r3+4)];
	r6 = r4 << 3;
	r6 = (r5 + r6)|0;
	r6 = r6 >> 2;
	r1 = r1 >> 2;
	r6 = heap32[(r6)];
	r1 = heap32[(r1+52)];
if(!(r6 ==r4)) //_LBB355_37
{
_51: while(true){
	r6 = r6 << 3;
	r4 = r4 << 3;
	r6 = (r5 + r6)|0;
	r4 = (r5 + r4)|0;
	r5 = r6 >> 2;
	r4 = r4 >> 2;
	r6 = heap32[(r5)];
	heap32[(r4)] = r6;
	r4 = heap32[(r5)];
	r5 = heap32[(r3+4)];
	r6 = r4 << 3;
	r6 = (r5 + r6)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
if(!(r6 !=r4)) //_LBB355_38
{
break _51;
}
}
}
	r6 = r1 << 3;
	r6 = (r5 + r6)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
_54: do {
if(!(r6 ==r1)) //_LBB355_41
{
_55: while(true){
	r6 = r6 << 3;
	r1 = r1 << 3;
	r6 = (r5 + r6)|0;
	r1 = (r5 + r1)|0;
	r5 = r6 >> 2;
	r1 = r1 >> 2;
	r6 = heap32[(r5)];
	heap32[(r1)] = r6;
	r1 = heap32[(r5)];
	r5 = heap32[(r3+4)];
	r6 = r1 << 3;
	r6 = (r5 + r6)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
if(!(r6 !=r1)) //_LBB355_42
{
break _54;
}
}
}
} while(0);
if(!(r4 ==r1)) //_LBB355_45
{
	r4 = r4 << 3;
	r5 = (r5 + r4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r1;
	r5 = heap32[(r3+4)];
	r1 = r1 << 3;
	r1 = (r5 + r1)|0;
	r4 = (r5 + r4)|0;
	r1 = r1 >> 2;
	r4 = r4 >> 2;
	r5 = heap32[(r1+1)];
	r4 = heap32[(r4+1)];
	r4 = (r4 + r5)|0;
	heap32[(r1+1)] = r4;
}
}
}
}
}
	r2 = (r2 + -1)|0;
	r0 = (r0 + 16)|0;
	if(r2 !=0) //_LBB355_31
{
continue _43;
}
else{
break _41;
}
}
}
} while(0);
	return;
}

function _ZN25btSimulationIslandManagerD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV25btSimulationIslandManager;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+14)];
if(!(r1 ==0)) //_LBB356_4
{
	r3 = heapU8[r0+60];
if(!(r3 ==0)) //_LBB356_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+14)] = 0;
}
	r1 = 1;
	heap8[r0+60] = r1;
	heap32[(r2+14)] = 0;
	heap32[(r2+12)] = 0;
	heap32[(r2+13)] = 0;
	r3 = heap32[(r2+9)];
if(!(r3 ==0)) //_LBB356_8
{
	r4 = heapU8[r0+40];
if(!(r4 ==0)) //_LBB356_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+9)] = 0;
}
	heap8[r0+40] = r1;
	heap32[(r2+9)] = 0;
	heap32[(r2+7)] = 0;
	heap32[(r2+8)] = 0;
	r3 = heap32[(r2+4)];
if(!(r3 ==0)) //_LBB356_12
{
	r4 = heapU8[r0+20];
if(!(r4 ==0)) //_LBB356_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN25btSimulationIslandManagerD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV25btSimulationIslandManager;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+14)];
if(!(r1 ==0)) //_LBB357_4
{
	r3 = heapU8[r0+60];
if(!(r3 ==0)) //_LBB357_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+14)] = 0;
}
	r1 = 1;
	heap8[r0+60] = r1;
	heap32[(r2+14)] = 0;
	heap32[(r2+12)] = 0;
	heap32[(r2+13)] = 0;
	r3 = heap32[(r2+9)];
if(!(r3 ==0)) //_LBB357_8
{
	r4 = heapU8[r0+40];
if(!(r4 ==0)) //_LBB357_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+9)] = 0;
}
	heap8[r0+40] = r1;
	heap32[(r2+9)] = 0;
	heap32[(r2+7)] = 0;
	heap32[(r2+8)] = 0;
	r3 = heap32[(r2+4)];
if(!(r3 ==0)) //_LBB357_12
{
	r4 = heapU8[r0+20];
if(!(r4 ==0)) //_LBB357_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	return;
}

function _ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var f0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	f0 =                         1;
	f_g0 = f0;
	return;
}

function _ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+3)];
if(!(r2 ==0)) //_LBB359_23
{
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB359_23
{
	r0 = heap32[(fp+1)];
	r3 = r0 >> 2;
	r4 = heap32[(r3+2)];
	r5 = heap32[(r3+1)];
	if(r4 ==r5) //_LBB359_4
{
	r6 = 1;
	r7 = r5 << 1;
	r7 = r5 == 0 ? r6 : r7;
if(!(r4 >=r7)) //_LBB359_3
{
	if(r7 !=0) //_LBB359_7
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r4 = heap32[(r2)];
	r8 = r7 << 2;
	r4 = (r4 + 1)|0;
	r8 = r8 | 3;
	heap32[(r2)] = r4;
	r2 = (r8 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB359_9
{
	r4 = 0;
	r8 = (r2 + 4)|0;
	r4 = (r4 - r8)|0;
	r4 = r4 & 15;
	r4 = (r2 + r4)|0;
	r8 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r2;
	r2 = r8;
}
}
else{
	r2 = 0;
}
	r4 = (r0 + 12)|0;
	if(r5 <1) //_LBB359_12
{
	r8 = r4 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_15: while(true){
	r9 = r4 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r2 + r10)|0;
	r11 = heap32[(r11)];
	r8 = (r8 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r5 !=r8)) //_LBB359_13
{
break _15;
}
}
	r4 = (r0 + 12)|0;
}
	if(r9 !=0) //_LBB359_17
{
	r8 = heapU8[r0+16];
	if(r8 !=0) //_LBB359_19
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r8 = heap32[(r5)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r5)] = r8;
	r5 = heap32[(r9+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r3+1)];
}
	r8 = r4 >> 2;
	heap32[(r8)] = 0;
}
	r4 = r4 >> 2;
	heap8[r0+16] = r6;
	heap32[(r4)] = r2;
	heap32[(r3+2)] = r7;
	r2 = heap32[(r1+3)];
}
}
	r0 = r5 << 2;
	r1 = heap32[(r3+3)];
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r3+1)];
	r0 = (r0 + 1)|0;
	heap32[(r3+1)] = r0;
}
}
	return;
}

function _ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+3)];
_1: do {
if(!(r0 ==0)) //_LBB360_10
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+4)];
	r4 = r3 >> 2;
	r1 = r1 >> 2;
	heap32[(r4+1)] = r0;
	r0 = r2 >> 2;
	f0 = heapFloat[(r1+14)];
	f1 = heapFloat[(r0+14)];
	f2 = heapFloat[(r1+13)];
	f3 = heapFloat[(r0+13)];
	f0 = f0-f1;
	f1 = f2-f3;
	f2 = heapFloat[(r1+15)];
	f3 = heapFloat[(r0+15)];
	f2 = f2-f3;
	r1 = heap32[(r1+48)];
	r2 = heap32[(r0+48)];
	f3 = f1*f1;
	f4 = f0*f0;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f3 = f_g0;
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	f4 = heapFloat[(r1+7)];
	f5 = heapFloat[(r1+3)];
	f6 = heapFloat[(r2+7)];
	f7 = heapFloat[(r2+3)];
	f6 = f6*f7;
	f4 = f4*f5;
	f4 = f4+f6;
_3: do {
	if(f4 >=f3) //_LBB360_11
{
	r1 = sp + -16;
	r2 = r1 >> 2;
	heap32[(fp+-4)] = 1065353216;
	heap32[(r2+1)] = 0;
	f4 = f3-f4;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	f5 =   1.1920928955078125e-007;
	if(f3 >f5) //_LBB360_13
{
	f5 =                         1;
	f3 = f5/f3;
	f1 = f1*f3;
	f0 = f0*f3;
	heapFloat[(fp+-4)] = f1;
	f2 = f2*f3;
	heapFloat[(r2+1)] = f0;
	heapFloat[(r2+2)] = f2;
	heap32[(r2+3)] = 0;
}
else{
	f1 =                         1;
	f0 =                         0;
	f2 = f0;
}
	f1 = f1*f6;
	f3 = heapFloat[(r0+13)];
	f5 = heapFloat[(r0+15)];
	f7 = heapFloat[(r0+14)];
	r0 = sp + -32;
	f0 = f0*f6;
	f1 = f3+f1;
	f2 = f2*f6;
	r2 = r0 >> 2;
	f0 = f7+f0;
	heapFloat[(fp+-8)] = f1;
	f1 = f5+f2;
	heapFloat[(r2+1)] = f0;
	heapFloat[(r2+2)] = f1;
	heap32[(r2+3)] = 0;
	r2 = heap32[(r4)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r0;
	heapFloat[(g0+3)] = f4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = heap32[(r4+1)];
	if(r0 !=0) //_LBB360_16
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
	if(r2 ==0) //_LBB360_10
{
break _1;
}
else{
	r1 = heap32[(r1+277)];
	r2 = heap32[(r4+34)];
	if(r1 ==r2) //_LBB360_19
{
	r1 = (r3 + 8)|0;
	r2 = (r3 + 72)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
	return;
}
else{
	r1 = (r3 + 72)|0;
	r3 = (r3 + 8)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
__label__ = 8;
break _3;
}
}
}
else{
__label__ = 3;
}
}
else{
	r0 = heap32[(r4+1)];
	if(r0 !=0) //_LBB360_4
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
	if(r2 ==0) //_LBB360_10
{
break _1;
}
else{
	r1 = heap32[(r1+277)];
	r4 = heap32[(r4+34)];
	if(r1 ==r4) //_LBB360_9
{
	r4 = (r3 + 8)|0;
	r3 = (r3 + 72)|0;
}
else{
	r4 = (r3 + 72)|0;
	r3 = (r3 + 8)|0;
}
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
__label__ = 8;
}
}
else{
__label__ = 3;
}
}
} while(0);
switch(__label__ ){//multiple entries
case 8:
	heap32[(g0+2)] = r3;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
	return;
break;
case 3:
	r0 = _2E_str59;
	r3 = _2E_str160;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 101;
	_assert(i7);
break;
}
}
} while(0);
	return;
}

function _ZN32btSphereSphereCollisionAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV32btSphereSphereCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+8];
if(!(r1 ==0)) //_LBB361_3
{
	r1 = heap32[(r2+3)];
if(!(r1 ==0)) //_LBB361_3
{
	r3 = heap32[(r2+1)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
}
	r1 = _ZTV30btActivatingCollisionAlgorithm;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN32btSphereSphereCollisionAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV32btSphereSphereCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB362_3
{
	r0 = heap32[(r2+3)];
if(!(r0 ==0)) //_LBB362_3
{
	r1 = heap32[(r2+1)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
}
	r0 = _ZTV30btActivatingCollisionAlgorithm;
	r0 = (r0 + 8)|0;
	heap32[(r2)] = r0;
	return;
}

function _ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var f0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	f0 =                         1;
	f_g0 = f0;
	return;
}

function _ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+3)];
if(!(r2 ==0)) //_LBB364_23
{
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB364_23
{
	r0 = heap32[(fp+1)];
	r3 = r0 >> 2;
	r4 = heap32[(r3+2)];
	r5 = heap32[(r3+1)];
	if(r4 ==r5) //_LBB364_4
{
	r6 = 1;
	r7 = r5 << 1;
	r7 = r5 == 0 ? r6 : r7;
if(!(r4 >=r7)) //_LBB364_3
{
	if(r7 !=0) //_LBB364_7
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r4 = heap32[(r2)];
	r8 = r7 << 2;
	r4 = (r4 + 1)|0;
	r8 = r8 | 3;
	heap32[(r2)] = r4;
	r2 = (r8 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB364_9
{
	r4 = 0;
	r8 = (r2 + 4)|0;
	r4 = (r4 - r8)|0;
	r4 = r4 & 15;
	r4 = (r2 + r4)|0;
	r8 = (r4 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r2;
	r2 = r8;
}
}
else{
	r2 = 0;
}
	r4 = (r0 + 12)|0;
	if(r5 <1) //_LBB364_12
{
	r8 = r4 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_15: while(true){
	r9 = r4 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r2 + r10)|0;
	r11 = heap32[(r11)];
	r8 = (r8 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r5 !=r8)) //_LBB364_13
{
break _15;
}
}
	r4 = (r0 + 12)|0;
}
	if(r9 !=0) //_LBB364_17
{
	r8 = heapU8[r0+16];
	if(r8 !=0) //_LBB364_19
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r8 = heap32[(r5)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r5)] = r8;
	r5 = heap32[(r9+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r3+1)];
}
	r8 = r4 >> 2;
	heap32[(r8)] = 0;
}
	r4 = r4 >> 2;
	heap8[r0+16] = r6;
	heap32[(r4)] = r2;
	heap32[(r3+2)] = r7;
	r2 = heap32[(r1+3)];
}
}
	r0 = r5 << 2;
	r1 = heap32[(r3+3)];
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r3+1)];
	r0 = (r0 + 1)|0;
	heap32[(r3+1)] = r0;
}
}
	return;
}

function _ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
var __label__ = 0;
	i7 = sp + -176;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+3)];
if(!(r2 ==0)) //_LBB365_8
{
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	r6 = heap32[(fp+4)];
	r7 = heapU8[r0+16];
	r8 = r7 == 0 ? r4 : r3;
	r3 = r7 == 0 ? r3 : r4;
	r4 = r8 >> 2;
	r3 = r3 >> 2;
	r7 = heap32[(r4+48)];
	r8 = heap32[(r3+48)];
	r9 = r6 >> 2;
	heap32[(r9+1)] = r2;
	r1 = heap32[(r1+3)];
	r1 = r1 >> 2;
	f0 = heapFloat[(r1+280)];
	r1 = _ZTV22SphereTriangleDetector;
	r2 = sp + -16;
	r1 = (r1 + 8)|0;
	r10 = r2 >> 2;
	heap32[(fp+-4)] = r1;
	heap32[(r10+1)] = r8;
	r1 = sp + -152;
	heap32[(r10+2)] = r7;
	r7 = r1 >> 2;
	heapFloat[(r10+3)] = f0;
	heap32[(r7+33)] = 0;
	heap32[(r7+32)] = 1566444395;
	heap32[(fp+-38)] = heap32[(r3+1)];
	heap32[(r7+1)] = heap32[(r3+2)];
	heap32[(r7+2)] = heap32[(r3+3)];
	heap32[(r7+3)] = heap32[(r3+4)];
	heap32[(r7+4)] = heap32[(r3+5)];
	heap32[(r7+5)] = heap32[(r3+6)];
	heap32[(r7+6)] = heap32[(r3+7)];
	heap32[(r7+7)] = heap32[(r3+8)];
	heap32[(r7+8)] = heap32[(r3+9)];
	heap32[(r7+9)] = heap32[(r3+10)];
	heap32[(r7+10)] = heap32[(r3+11)];
	heap32[(r7+11)] = heap32[(r3+12)];
	heap32[(r7+12)] = heap32[(r3+13)];
	heap32[(r7+13)] = heap32[(r3+14)];
	heap32[(r7+14)] = heap32[(r3+15)];
	heap32[(r7+15)] = heap32[(r3+16)];
	heap32[(r7+16)] = heap32[(r4+1)];
	heap32[(r7+17)] = heap32[(r4+2)];
	heap32[(r7+18)] = heap32[(r4+3)];
	heap32[(r7+19)] = heap32[(r4+4)];
	heap32[(r7+20)] = heap32[(r4+5)];
	heap32[(r7+21)] = heap32[(r4+6)];
	heap32[(r7+22)] = heap32[(r4+7)];
	heap32[(r7+23)] = heap32[(r4+8)];
	heap32[(r7+24)] = heap32[(r4+9)];
	heap32[(r7+25)] = heap32[(r4+10)];
	heap32[(r7+26)] = heap32[(r4+11)];
	heap32[(r7+27)] = heap32[(r4+12)];
	heap32[(r7+28)] = heap32[(r4+13)];
	heap32[(r7+29)] = heap32[(r4+14)];
	heap32[(r7+30)] = heap32[(r4+15)];
	heap32[(r7+31)] = heap32[(r4+16)];
	r3 = r5 >> 2;
	r4 = heapU8[r0+16];
	r3 = heap32[(r3+5)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	_ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB365_8
{
	r0 = heap32[(r9+1)];
	if(r0 !=0) //_LBB365_4
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
if(!(r2 ==0)) //_LBB365_8
{
	r1 = heap32[(r1+277)];
	r2 = heap32[(r9+34)];
	if(r1 ==r2) //_LBB365_7
{
	r1 = (r6 + 8)|0;
	r2 = (r6 + 72)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
}
else{
	r1 = (r6 + 72)|0;
	r6 = (r6 + 8)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r6;
	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
	return;
}
}
}
else{
	r0 = _2E_str59;
	r6 = _2E_str160;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = 101;
	_assert(i7);
}
}
}
	return;
}

function _ZN34btSphereTriangleCollisionAlgorithmD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV34btSphereTriangleCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+8];
if(!(r1 ==0)) //_LBB366_3
{
	r1 = heap32[(r2+3)];
if(!(r1 ==0)) //_LBB366_3
{
	r3 = heap32[(r2+1)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
}
	r1 = _ZTV30btActivatingCollisionAlgorithm;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN34btSphereTriangleCollisionAlgorithmD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV34btSphereTriangleCollisionAlgorithm;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r0 = heapU8[r0+8];
if(!(r0 ==0)) //_LBB367_3
{
	r0 = heap32[(r2+3)];
if(!(r0 ==0)) //_LBB367_3
{
	r1 = heap32[(r2+1)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
}
	r0 = _ZTV30btActivatingCollisionAlgorithm;
	r0 = (r0 + 8)|0;
	heap32[(r2)] = r0;
	return;
}

function _ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+1)];
	r2 = (r0 + r1)|0;
	r3 = r2 >>> 31;
	r4 = heap32[(fp)];
	r2 = (r2 + r3)|0;
	r3 = r4 >> 2;
	r2 = r2 & 1073741822;
	r5 = heap32[(r3+3)];
	r2 = r2 << 2;
	r2 = (r5 + r2)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r5 = r1;
	r6 = r0;
_1: while(true){
	r7 = heap32[(r3+3)];
	r8 = r5 << 3;
	r8 = (r7 + r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
	if(r8 <r2) //_LBB368_3
{
_4: while(true){
	r8 = r5 << 3;
	r8 = (r7 + r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	r5 = (r5 + 1)|0;
	if(r8 <r2) //_LBB368_3
{
continue _4;
}
else{
break _4;
}
}
}
	r9 = r6 << 3;
	r9 = (r7 + r9)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
_7: do {
	if(r2 <r9) //_LBB368_6
{
_8: while(true){
	r9 = r6 << 3;
	r9 = (r7 + r9)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9+-2)];
	r6 = (r6 + -1)|0;
	if(r2 <r9) //_LBB368_6
{
continue _8;
}
else{
break _7;
}
}
}
} while(0);
	if(r5 <=r6) //_LBB368_9
{
	r10 = r5 << 3;
	r11 = r6 << 3;
	r10 = (r7 + r10)|0;
	r7 = (r7 + r11)|0;
	r10 = r10 >> 2;
	r7 = r7 >> 2;
	r12 = heap32[(r10+1)];
	r7 = heap32[(r7+1)];
	heap32[(r10)] = r9;
	heap32[(r10+1)] = r7;
	r7 = heap32[(r3+3)];
	r7 = (r7 + r11)|0;
	r7 = r7 >> 2;
	r5 = (r5 + 1)|0;
	r6 = (r6 + -1)|0;
	heap32[(r7)] = r8;
	heap32[(r7+1)] = r12;
}
	if(r5 <=r6) //_LBB368_1
{
continue _1;
}
else{
break _1;
}
}
if(!(r6 <=r1)) //_LBB368_13
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r6;
	_ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7);
}
if(!(r5 >=r0)) //_LBB368_15
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r0;
	_ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7);
}
	return;
}

function _ZN22SphereTriangleDetectorD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV22SphereTriangleDetector;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN22SphereTriangleDetectorD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV22SphereTriangleDetector;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -144;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+2)];
	r1 = r1 >> 2;
	f0 = heapFloat[(r1+19)];
	f1 = heapFloat[(r1+15)];
	f2 = heapFloat[(r1+23)];
	f3 = heapFloat[(r1+17)];
	f4 = heapFloat[(r1+13)];
	f5 = heapFloat[(r1+21)];
	f6 = heapFloat[(r1+22)];
	f7 = heapFloat[(r1+14)];
	f8 = heapFloat[(r1+18)];
	f0 = f0-f1;
	f6 = f6-f7;
	f3 = f3-f4;
	f1 = f2-f1;
	f2 = f8-f7;
	f4 = f5-f4;
	r2 = heap32[(fp+1)];
	r3 = heap32[(r0+1)];
	f5 = f2*f1;
	f7 = f0*f6;
	f0 = f0*f4;
	f1 = f3*f1;
	r2 = r2 >> 2;
	r3 = r3 >> 2;
	f5 = f5-f7;
	f0 = f0-f1;
	f1 = f3*f6;
	f2 = f2*f4;
	f3 = heapFloat[(r0+3)];
	f1 = f1-f2;
	f2 = f5*f5;
	f4 = f0*f0;
	f6 = heapFloat[(r3+7)];
	f7 = heapFloat[(r3+3)];
	f8 = heapFloat[(r2+18)];
	f9 = heapFloat[(r2+22)];
	f10 = heapFloat[(r2+26)];
	f11 = heapFloat[(r2+17)];
	f12 = heapFloat[(r2+21)];
	f13 = heapFloat[(r2+25)];
	f14 = heapFloat[(r2+16)];
	f15 = heapFloat[(r2+12)];
	f16 = heapFloat[(r2+28)];
	f17 = heapFloat[(r2+20)];
	f18 = heapFloat[(r2+13)];
	f19 = heapFloat[(r2+29)];
	f20 = heapFloat[(r2+24)];
	f21 = heapFloat[(r2+14)];
	f22 = heapFloat[(r2+30)];
	f2 = f2+f4;
	f4 = f1*f1;
	f15 = f15-f16;
	f16 = f18-f19;
	f2 = f2+f4;
	f4 = f21-f22;
	heapFloat[(g0)] = f2;
	f2 = f11*f15;
	f11 = f12*f16;
	f12 = f14*f15;
	f14 = f17*f16;
	sqrtf(i7);
	f18 =                         1;
	heapFloat[(fp+-25)] = f18;
	f8 = f8*f15;
	f9 = f9*f16;
	f2 = f2+f11;
	f11 = f13*f4;
	f12 = f12+f14;
	f13 = f20*f4;
	f14 = f18/f_g0;
	f2 = f2+f11;
	f11 = heapFloat[(r1+14)];
	f12 = f12+f13;
	f13 = heapFloat[(r1+13)];
	f8 = f8+f9;
	f4 = f10*f4;
	f5 = f5*f14;
	f9 = f12-f13;
	heapFloat[(fp+-28)] = f9;
	f0 = f0*f14;
	f10 = f2-f11;
	heapFloat[(fp+-29)] = f10;
	f4 = f8+f4;
	f8 = heapFloat[(r1+15)];
	f1 = f1*f14;
	f14 = f4-f8;
	heapFloat[(fp+-27)] = f14;
	f9 = f9*f5;
	f10 = f10*f0;
	f9 = f9+f10;
	f10 = f14*f1;
	f9 = f9+f10;
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+4)];
	f6 = f6*f7;
	heapFloat[(fp+-26)] = f6;
	f6 =                         0;
	if(f9 <f6) //_LBB371_2
{
	f9 = -f9;
	f5 = -f5;
	f0 = -f0;
	f1 = -f1;
}
	f7 = heapFloat[(fp+-26)];
	if(f9 <f7) //_LBB371_5
{
__label__ = 4;
}
else{
	f7 = f5*f6;
	f10 = f0*f6;
	f7 = f7+f10;
	f10 = f1*f6;
	f7 = f7+f10;
	if(f7 >=f6) //_LBB371_31
{
__label__ = 29;
}
else{
__label__ = 4;
}
}
_6: do {
if (__label__ == 4){
	f7 = heapFloat[(fp+-26)];
	f3 = f7+f3;
	heapFloat[(fp+-30)] = f3;
if(!(f3 <=f9)) //_LBB371_31
{
	f3 = heapFloat[(r1+19)];
	f7 = heapFloat[(r1+23)];
	f10 = heapFloat[(r1+17)];
	f14 = heapFloat[(r1+21)];
	f15 = heapFloat[(r1+18)];
	f16 = heapFloat[(r1+22)];
	f17 = f7-f3;
	f18 = f14-f10;
	f19 = f3-f8;
	f8 = f8-f7;
	f20 = f16-f15;
	f21 = f10-f13;
	f22 = f15-f11;
	f13 = f13-f14;
	f11 = f11-f16;
	f23 = f20*f1;
	f24 = f17*f0;
	f17 = f17*f5;
	f25 = f18*f1;
	f26 = f22*f1;
	f27 = f19*f0;
	f19 = f19*f5;
	f28 = f21*f1;
	f29 = f11*f1;
	f30 = f8*f0;
	f8 = f8*f5;
	heapFloat[(fp+-31)] = f8;
	f8 = f13*f1;
	f23 = f23-f24;
	f10 = f12-f10;
	f17 = f17-f25;
	f15 = f2-f15;
	f18 = f18*f0;
	f20 = f20*f5;
	f24 = f26-f27;
	f19 = f19-f28;
	f21 = f21*f0;
	f22 = f22*f5;
	f25 = f29-f30;
	f14 = f12-f14;
	f26 = heapFloat[(fp+-31)];
	f8 = f26-f8;
	f16 = f2-f16;
	f13 = f13*f0;
	f11 = f11*f5;
	f10 = f23*f10;
	f15 = f17*f15;
	f17 = f18-f20;
	f3 = f4-f3;
	f18 = heapFloat[(fp+-28)];
	f18 = f24*f18;
	f20 = heapFloat[(fp+-29)];
	f19 = f19*f20;
	f20 = f21-f22;
	f14 = f25*f14;
	f8 = f8*f16;
	f11 = f13-f11;
	f7 = f4-f7;
	f10 = f10+f15;
	f3 = f17*f3;
	f13 = f18+f19;
	f15 = heapFloat[(fp+-27)];
	f15 = f20*f15;
	f8 = f14+f8;
	f7 = f11*f7;
	f3 = f10+f3;
	f10 = f13+f15;
	f7 = f8+f7;
	if(f3 <=f6) //_LBB371_9
{
__label__ = 8;
}
else{
	f8 =                         0;
	if(f10 <=f8) //_LBB371_9
{
__label__ = 8;
}
else{
	if(f7 >f8) //_LBB371_12
{
__label__ = 11;
}
else{
__label__ = 8;
}
}
}
_12: do {
if (__label__ == 8){
if(!(f10 >f6)) //_LBB371_13
{
if(!(f3 >f6)) //_LBB371_13
{
if(!(f7 >f6)) //_LBB371_13
{
__label__ = 11;
break _12;
}
}
}
	r1 = heap32[(r0+2)];
	r5 = r1 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+22)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r1 = r_g0;
	if(r1 <1) //_LBB371_31
{
break _6;
}
else{
	f0 = heapFloat[(fp+-30)];
	f5 = f0*f0;
	r1 = 0;
	r5 = r1;
_19: while(true){
	r6 = heap32[(r0+2)];
	r7 = r6 >> 2;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+23)];
	r8 = sp + -32;
	r9 = sp + -16;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r8;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r6 = r8 >> 2;
	r7 = r9 >> 2;
	f7 = heapFloat[(r7+1)];
	f8 = heapFloat[(r6+1)];
	f9 = heapFloat[(fp+-4)];
	f10 = heapFloat[(fp+-8)];
	f11 = f2-f7;
	f8 = f8-f7;
	f13 = f12-f9;
	f10 = f10-f9;
	f14 = heapFloat[(r7+2)];
	f15 = heapFloat[(r6+2)];
	f16 = f4-f14;
	f15 = f15-f14;
	f17 = f10*f13;
	f18 = f8*f11;
	f17 = f17+f18;
	f18 = f15*f16;
	f17 = f17+f18;
	r1 = (r1 + 1)|0;
	if(f17 >f6) //_LBB371_17
{
	f18 = f10*f10;
	f19 = f8*f8;
	f18 = f18+f19;
	f19 = f15*f15;
	f18 = f18+f19;
	if(f17 >=f18) //_LBB371_19
{
	f13 = f13-f10;
	f11 = f11-f8;
	f16 = f16-f15;
	f17 = heapFloat[(fp+-25)];
}
else{
	f17 = f17/f18;
	f18 = f10*f17;
	f19 = f8*f17;
	f20 = f15*f17;
	f13 = f13-f18;
	f11 = f11-f19;
	f16 = f16-f20;
}
}
else{
	f17 = f6;
}
	f13 = f13*f13;
	f11 = f11*f11;
	f11 = f13+f11;
	f13 = f16*f16;
	f11 = f11+f13;
	if(f11 <f5) //_LBB371_22
{
	f0 = f10*f17;
	f3 = f8*f17;
	f8 = f15*f17;
	f1 = f9+f0;
	f0 = f7+f3;
	f3 = f14+f8;
	r5 = 1;
}
	r6 = heap32[(r0+2)];
	r7 = r6 >> 2;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+22)];
	heap32[(g0)] = r6;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r6 = r_g0;
if(!(r6 >r1)) //_LBB371_15
{
break _19;
}
}
	r0 = r5 & 255;
	if(r0 ==0) //_LBB371_31
{
break _6;
}
else{
__label__ = 23;
}
}
}
} while(0);
if (__label__ == 11){
	f6 = f1*f9;
	f0 = f0*f9;
	f1 = f5*f9;
	f3 = f4-f6;
	f0 = f2-f0;
	f1 = f12-f1;
}
	f2 = f2-f0;
	f5 = f12-f1;
	f4 = f4-f3;
	f6 = f5*f5;
	f7 = f2*f2;
	f6 = f6+f7;
	f7 = f4*f4;
	f6 = f6+f7;
	f7 = heapFloat[(fp+-26)];
	f7 = f7*f7;
	if(f7 <=f6) //_LBB371_27
{
	f6 =                         0;
	f5 = f5*f6;
	f2 = f2*f6;
	f2 = f5+f2;
	f4 = f4*f6;
	f2 = f2+f4;
	if(f2 >=f6) //_LBB371_31
{
break _6;
}
}
else{
	heapFloat[(g0)] = f6;
	sqrtf(i7);
	f7 = f_g0;
	heapFloat[(g0)] = f6;
	f6 =                         1;
	sqrtf(i7);
	f9 = heapFloat[(fp+-26)];
	f7 = f9-f7;
	f6 = f6/f_g0;
	f5 = f5*f6;
	f2 = f2*f6;
	f4 = f4*f6;
	f6 = -f7;
}
	if(r4 ==0) //_LBB371_30
{
	r0 = r3 >> 2;
	f7 = heapFloat[(r2+16)];
	f8 = heapFloat[(r2+17)];
	r0 = heap32[(r0)];
	f9 = heapFloat[(r2+20)];
	f10 = heapFloat[(r2+21)];
	f11 = f7*f1;
	f12 = f8*f0;
	f13 = heapFloat[(r2+18)];
	r0 = r0 >> 2;
	f14 = heapFloat[(r2+24)];
	f15 = heapFloat[(r2+25)];
	f16 = heapFloat[(r2+22)];
	f17 = f9*f1;
	f18 = f10*f0;
	f11 = f11+f12;
	f12 = f13*f3;
	f19 = heapFloat[(r2+26)];
	r0 = heap32[(r0+4)];
	f1 = f14*f1;
	f0 = f15*f0;
	f17 = f17+f18;
	f18 = f16*f3;
	f11 = f11+f12;
	f12 = heapFloat[(r2+28)];
	f20 = heapFloat[(r2+30)];
	f21 = heapFloat[(r2+29)];
	r1 = sp + -64;
	f17 = f17+f18;
	f0 = f1+f0;
	f1 = f19*f3;
	f3 = f11+f12;
	f0 = f0+f1;
	r2 = r1 >> 2;
	f1 = f17+f21;
	heapFloat[(fp+-16)] = f3;
	f3 = f7*f5;
	f7 = f8*f2;
	f0 = f0+f20;
	heapFloat[(r2+1)] = f1;
	heapFloat[(r2+2)] = f0;
	f0 = f9*f5;
	f1 = f10*f2;
	f3 = f3+f7;
	f7 = f13*f4;
	r4 = sp + -48;
	f5 = f14*f5;
	f2 = f15*f2;
	f0 = f0+f1;
	f1 = f16*f4;
	f3 = f3+f7;
	heap32[(r2+3)] = 0;
	r2 = r4 >> 2;
	f2 = f5+f2;
	f4 = f19*f4;
	f0 = f0+f1;
	heapFloat[(fp+-12)] = f3;
	f1 = f2+f4;
	heapFloat[(r2+1)] = f0;
	heapFloat[(r2+2)] = f1;
	heap32[(r2+3)] = 0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	heapFloat[(g0+3)] = f6;
	__FUNCTION_TABLE__[(r0)>>2](i7);
}
else{
	f7 = heapFloat[(r2+16)];
	f8 = heapFloat[(r2+17)];
	f9 = heapFloat[(r2+20)];
	f10 = heapFloat[(r2+21)];
	f11 = f7*f5;
	f12 = f8*f2;
	f13 = heapFloat[(r2+18)];
	f14 = heapFloat[(r2+24)];
	f15 = heapFloat[(r2+25)];
	f16 = heapFloat[(r2+22)];
	f17 = f9*f5;
	f18 = f10*f2;
	f11 = f11+f12;
	f12 = f13*f4;
	f19 = heapFloat[(r2+26)];
	f11 = f11+f12;
	f5 = f14*f5;
	f2 = f15*f2;
	f12 = f17+f18;
	f17 = f16*f4;
	r0 = sp + -80;
	f12 = f12+f17;
	f2 = f5+f2;
	f4 = f19*f4;
	f5 = -f11;
	f2 = f2+f4;
	r1 = r0 >> 2;
	f4 = -f12;
	heapFloat[(fp+-20)] = f5;
	f5 = -f2;
	heapFloat[(r1+1)] = f4;
	heapFloat[(r1+2)] = f5;
	f4 = f7*f1;
	f5 = f8*f0;
	heap32[(r1+3)] = 0;
	f7 = f9*f1;
	f8 = f10*f0;
	f4 = f4+f5;
	f5 = f13*f3;
	f1 = f14*f1;
	f0 = f15*f0;
	f7 = f7+f8;
	f8 = f16*f3;
	f4 = f4+f5;
	f5 = heapFloat[(r2+28)];
	f0 = f1+f0;
	f1 = f19*f3;
	f3 = f7+f8;
	f7 = heapFloat[(r2+29)];
	f8 = heapFloat[(r2+30)];
	f4 = f4+f5;
	f5 = f11*f6;
	r2 = sp + -96;
	f0 = f0+f1;
	f1 = f3+f7;
	f3 = f12*f6;
	f4 = f4+f5;
	r1 = r2 >> 2;
	f0 = f0+f8;
	f2 = f2*f6;
	f1 = f1+f3;
	heapFloat[(fp+-24)] = f4;
	f0 = f0+f2;
	heapFloat[(r1+1)] = f1;
	heapFloat[(r1+2)] = f0;
	r4 = r3 >> 2;
	heap32[(r1+3)] = 0;
	r1 = heap32[(r4)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	heapFloat[(g0+3)] = f6;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}
}
}
} while(0);
	return;
}

function _ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = heapFloat[(r1+7)];
	f2 = heapFloat[(r1+8)];
	f3 = heapFloat[(r1+9)];
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	heapFloat[(g0)] = f1;
	heapFloat[(g0+1)] = f2;
	heapFloat[(g0+2)] = f3;
	heapFloat[(g0+3)] = f_g0;
	heap32[(g0+4)] = r0;
	heap32[(g0+5)] = r1;
	heap32[(g0+6)] = r2;
	_Z15btTransformAabbRK9btVector3fRK11btTransformRS_S5_(i7);
	return;
}

function _Z15btTransformAabbRK9btVector3fRK11btTransformRS_S5_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+4)];
	r0 = r0 >> 2;
	f0 = heapFloat[(fp+2)];
	f1 = heapFloat[(fp+3)];
	f2 = heapFloat[(fp+1)];
	f3 = heapFloat[(fp)];
	f4 = heapFloat[(r0+10)];
	r1 = heap32[(fp+5)];
	r2 = heap32[(fp+6)];
	f0 = f0+f1;
	f2 = f2+f1;
	f1 = f3+f1;
	f3 =                         0;
	if(f4 <f3) //_LBB373_2
{
	f4 = -f4;
}
	f5 = heapFloat[(r0+9)];
	if(f5 <f3) //_LBB373_5
{
	f5 = -f5;
}
	f6 = heapFloat[(r0+8)];
	if(f6 <f3) //_LBB373_8
{
	f6 = -f6;
}
	f7 = heapFloat[(r0+6)];
	if(f7 <f3) //_LBB373_11
{
	f7 = -f7;
}
	f8 = heapFloat[(r0+5)];
	if(f8 <f3) //_LBB373_14
{
	f8 = -f8;
}
	f9 = heapFloat[(r0+4)];
	if(f9 <f3) //_LBB373_17
{
	f9 = -f9;
}
	f10 = heapFloat[(r0+2)];
	if(f10 <f3) //_LBB373_20
{
	f10 = -f10;
}
	f11 = heapFloat[(r0+1)];
	if(f11 <f3) //_LBB373_23
{
	f11 = -f11;
}
	f12 = heapFloat[(r0)];
	if(f12 <f3) //_LBB373_26
{
	f12 = -f12;
}
	f3 = f12*f1;
	f11 = f11*f2;
	f9 = f9*f1;
	f8 = f8*f2;
	f3 = f3+f11;
	f10 = f10*f0;
	f1 = f6*f1;
	f2 = f5*f2;
	f5 = f9+f8;
	f6 = f7*f0;
	f3 = f3+f10;
	f7 = heapFloat[(r0+12)];
	f8 = heapFloat[(r0+13)];
	f9 = heapFloat[(r0+14)];
	f5 = f5+f6;
	r0 = r1 >> 2;
	f1 = f1+f2;
	f0 = f4*f0;
	f2 = f7-f3;
	f0 = f1+f0;
	f1 = f8-f5;
	heapFloat[(r0)] = f2;
	f2 = f9-f0;
	heapFloat[(r0+1)] = f1;
	heapFloat[(r0+2)] = f2;
	r1 = r2 >> 2;
	f1 = f7+f3;
	heap32[(r0+3)] = 0;
	f2 = f8+f5;
	heapFloat[(r1)] = f1;
	f0 = f9+f0;
	heapFloat[(r1+1)] = f2;
	heapFloat[(r1+2)] = f0;
	heap32[(r1+3)] = 0;
	return;
}

function _ZNK10btBoxShape24localGetSupportingVertexERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	f0 = heapFloat[(r1+7)];
	f1 = heapFloat[(r1+8)];
	f2 = heapFloat[(r1+9)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f3 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f4 = f_g0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	heap32[(g0)] = r0;
	r0 = heap32[(fp+2)];
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = r0 >> 2;
	f0 = f0+f_g0;
	r1 = heap32[(fp)];
	f1 = f1+f4;
	f4 =                         0;
	f5 = -f0;
	f6 = heapFloat[(r0)];
	f7 = heapFloat[(r0+2)];
	f8 = heapFloat[(r0+1)];
	f2 = f2+f3;
	f3 = -f1;
	r0 = r1 >> 2;
	f0 = f6 < f4 ? f5 : f0;
	f5 = -f2;
	f1 = f8 < f4 ? f3 : f1;
	heapFloat[(r0)] = f0;
	f0 = f7 < f4 ? f5 : f2;
	heapFloat[(r0+1)] = f1;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+2)];
	r1 = r1 >> 2;
	f0 = heapFloat[(r0+7)];
	r2 = heap32[(fp)];
	f1 = heapFloat[(r0+9)];
	f2 = heapFloat[(r0+8)];
	f3 =                         0;
	f4 = -f0;
	f5 = heapFloat[(r1)];
	f6 = heapFloat[(r1+2)];
	f7 = heapFloat[(r1+1)];
	f8 = -f2;
	r0 = r2 >> 2;
	f0 = f5 < f3 ? f4 : f0;
	f4 = -f1;
	f2 = f7 < f3 ? f8 : f2;
	heapFloat[(r0)] = f0;
	f0 = f6 < f3 ? f4 : f1;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
if(!(r0 <1)) //_LBB376_3
{
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r3 = (r3 + 8)|0;
	r2 = (r2 + 8)|0;
	f3 =                         0;
_3: while(true){
	r4 = r1 >> 2;
	r5 = r2 >> 2;
	f0 = heapFloat[(r4+7)];
	f1 = heapFloat[(r4+9)];
	f2 = heapFloat[(r4+8)];
	f4 = -f0;
	f5 = heapFloat[(r5+-2)];
	f6 = heapFloat[(r5)];
	f7 = heapFloat[(r5+-1)];
	f8 = -f2;
	r4 = r3 >> 2;
	f0 = f5 < f3 ? f4 : f0;
	f4 = -f1;
	f2 = f7 < f3 ? f8 : f2;
	heapFloat[(r4+-2)] = f0;
	f0 = f6 < f3 ? f4 : f1;
	heapFloat[(r4+-1)] = f2;
	r0 = (r0 + -1)|0;
	r3 = (r3 + 16)|0;
	r2 = (r2 + 16)|0;
	heapFloat[(r4)] = f0;
	heap32[(r4+1)] = 0;
	if(r0 !=0) //_LBB376_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZN10btBoxShape9setMarginEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f2 = f_g0;
	f3 = heapFloat[(r1+9)];
	f4 = heapFloat[(r1+8)];
	f5 = heapFloat[(r1+7)];
	heap32[(r1+11)] = heap32[(fp+1)];
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f6 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f7 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	f2 = f5+f2;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = f4+f1;
	f2 = f2-f_g0;
	f0 = f3+f0;
	f1 = f1-f7;
	heapFloat[(r1+7)] = f2;
	f0 = f0-f6;
	heapFloat[(r1+8)] = f1;
	heapFloat[(r1+9)] = f0;
	heap32[(r1+10)] = 0;
	return;
}

function _ZNK10btBoxShape8getPlaneER9btVector3S1_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -64;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+28)];
	r3 = sp + -32;
	r4 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r3 >> 2;
	r3 = heap32[(fp+1)];
	f0 = heapFloat[(r2+2)];
	f1 = heapFloat[(r2+1)];
	f2 = heapFloat[(fp+-8)];
	r2 = r3 >> 2;
	heapFloat[(r2)] = f2;
	heapFloat[(r2+1)] = f1;
	heapFloat[(r2+2)] = f0;
	heap32[(r2+3)] = 0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+15)];
	r2 = sp + -16;
	f2 = -f2;
	r3 = r2 >> 2;
	f1 = -f1;
	heapFloat[(fp+-4)] = f2;
	f0 = -f0;
	heapFloat[(r3+1)] = f1;
	heapFloat[(r3+2)] = f0;
	heap32[(r3+3)] = 0;
	r3 = sp + -48;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	r0 = heap32[(fp+2)];
	r0 = r0 >> 2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = r3 >> 2;
	heap32[(r0)] = heap32[(fp+-12)];
	heap32[(r0+1)] = heap32[(r1+1)];
	heap32[(r0+2)] = heap32[(r1+2)];
	heap32[(r0+3)] = heap32[(r1+3)];
	return;
}

function _ZNK10btBoxShape12getNumPlanesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 6;
	r_g0 = r0;
	return;
}

function _ZNK10btBoxShape14getNumVerticesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 8;
	r_g0 = r0;
	return;
}

function _ZNK10btBoxShape11getNumEdgesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 12;
	r_g0 = r0;
	return;
}

function _ZNK10btBoxShape9getVertexEiR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >>> 1;
	r2 = heap32[(fp)];
	r2 = r2 >> 2;
	r1 = r1 & 1;
	r3 = r0 >>> 2;
	r0 = r0 & 1;
	r4 = 0;
	f0 =                         1;
	f1 =                         0;
	r3 = r3 & 1;
	r5 = r1 ^ 1;
	f0 = r0 == r4 ? f0 : f1;
	f1 = heapFloat[(r2+7)];
	f2 = r0; //fitos r0, f2
	r0 = heap32[(fp+2)];
	r4 = r3 ^ 1;
	f3 = r5; //fitos r5, f3
	f4 = heapFloat[(r2+8)];
	f5 = r1; //fitos r1, f5
	f6 = heapFloat[(r2+9)];
	f0 = f1*f0;
	f1 = f1*f2;
	f2 = r4; //fitos r4, f2
	f7 = r3; //fitos r3, f7
	r0 = r0 >> 2;
	f3 = f4*f3;
	f4 = f4*f5;
	f0 = f0-f1;
	f1 = f6*f2;
	f2 = f6*f7;
	f3 = f3-f4;
	heapFloat[(r0)] = f0;
	f0 = f1-f2;
	heapFloat[(r0+1)] = f3;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK10btBoxShape8isInsideERK9btVector3f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	f0 = heapFloat[(r0)];
	f1 = heapFloat[(fp+2)];
	f2 = heapFloat[(r1+7)];
	f3 = f2+f1;
if(!(f0 >f3)) //_LBB383_6
{
	f2 = -f2;
	f2 = f2-f1;
if(!(f0 <f2)) //_LBB383_6
{
	f0 = heapFloat[(r1+8)];
	f2 = heapFloat[(r0+1)];
	f3 = f0+f1;
if(!(f2 >f3)) //_LBB383_6
{
	f0 = -f0;
	f0 = f0-f1;
if(!(f2 <f0)) //_LBB383_6
{
	f0 = heapFloat[(r1+9)];
	f2 = heapFloat[(r0+2)];
	f3 = f0+f1;
if(!(f2 >f3)) //_LBB383_6
{
	f0 = -f0;
	f0 = f0-f1;
	r0 = f2 >= f0;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}
}
}
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNK10btBoxShape7getNameEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _2E_str173;
	r_g0 = r0;
	return;
}

function _ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 6;
	r_g0 = r0;
	return;
}

function _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	f0 = heapFloat[(r1+7)];
	f1 = heapFloat[(r1+8)];
	f2 = heapFloat[(r1+9)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f3 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	heap32[(g0)] = r0;
	f1 = f1+f_g0;
	f2 = f2+f3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f0 = f0+f_g0;
	f1 = f1+f1;
	f2 = f2+f2;
	f0 = f0+f0;
	f3 = heapFloat[(fp+1)];
	f4 =                        12;
	f1 = f1*f1;
	f2 = f2*f2;
	f0 = f0*f0;
	r0 = heap32[(fp+2)];
	f3 = f3/f4;
	f4 = f1+f2;
	f2 = f0+f2;
	r0 = r0 >> 2;
	f4 = f3*f4;
	f0 = f0+f1;
	f1 = f3*f2;
	heapFloat[(r0)] = f4;
	f0 = f3*f0;
	heapFloat[(r0+1)] = f1;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK10btBoxShape16getPlaneEquationER9btVector4i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+1)];
	f0 = heapFloat[(r0+8)];
_1: do {
	if(r1 >2) //_LBB387_4
{
	if(r1 ==3) //_LBB387_13
{
	r2 = r2 >> 2;
	heap32[(r2)] = 0;
	heap32[(r2+1)] = -1082130432;
__label__ = 11;
break _1;
}
else{
	f0 = heapFloat[(r0+9)];
	if(r1 ==4) //_LBB387_14
{
	r2 = r2 >> 2;
	heap32[(r2)] = 0;
	heap32[(r2+1)] = 0;
	f0 = -f0;
	heap32[(r2+2)] = 1065353216;
	heapFloat[(r2+3)] = f0;
	return;
}
else{
	if(r1 ==5) //_LBB387_15
{
	r0 = r2 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	f0 = -f0;
	heap32[(r0+2)] = -1082130432;
	heapFloat[(r0+3)] = f0;
	return;
}
else{
__label__ = 16;
break _1;
}
}
}
}
else{
	f1 = heapFloat[(r0+7)];
	if(r1 ==0) //_LBB387_7
{
	r2 = r2 >> 2;
	heap32[(r2)] = 1065353216;
}
else{
	if(r1 ==1) //_LBB387_9
{
	r2 = r2 >> 2;
	heap32[(r2)] = -1082130432;
}
else{
	if(r1 ==2) //_LBB387_10
{
	r2 = r2 >> 2;
	heap32[(r2)] = 0;
	heap32[(r2+1)] = 1065353216;
__label__ = 11;
break _1;
}
else{
__label__ = 16;
break _1;
}
}
}
	heap32[(r2+1)] = 0;
	f0 = -f1;
__label__ = 12;
}
} while(0);
switch(__label__ ){//multiple entries
case 11:
	f0 = -f0;
break;
case 16:
	r0 = _2E_str10;
	r1 = _2E_str2175;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 182;
	_assert(i7);
break;
}
	heap32[(r2+2)] = 0;
	heapFloat[(r2+3)] = f0;
	return;
}

function _ZNK10btBoxShape7getEdgeEiR9btVector3S1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
_1: do {
	if(r0 >5) //_LBB388_8
{
	if(r0 >8) //_LBB388_12
{
	if(r0 ==9) //_LBB388_24
{
	r0 = 4;
	r4 = 6;
__label__ = 28;
break _1;
}
else{
	if(r0 ==10) //_LBB388_25
{
	r0 = 5;
	r4 = 7;
__label__ = 28;
break _1;
}
else{
	if(r0 ==11) //_LBB388_26
{
	r0 = 6;
	r4 = 7;
__label__ = 28;
break _1;
}
else{
__label__ = 27;
break _1;
}
}
}
}
else{
	if(r0 ==6) //_LBB388_21
{
	r0 = 2;
	r4 = 6;
__label__ = 28;
break _1;
}
else{
	if(r0 ==7) //_LBB388_22
{
	r0 = 3;
	r4 = 7;
__label__ = 28;
break _1;
}
else{
	if(r0 ==8) //_LBB388_23
{
	r0 = 4;
	r4 = 5;
__label__ = 28;
break _1;
}
else{
__label__ = 27;
break _1;
}
}
}
}
}
else{
	if(r0 >2) //_LBB388_5
{
	if(r0 ==3) //_LBB388_18
{
	r0 = 2;
	r4 = 3;
__label__ = 28;
break _1;
}
else{
	if(r0 ==4) //_LBB388_19
{
	r0 = 0;
	r4 = 4;
__label__ = 28;
break _1;
}
else{
	if(r0 ==5) //_LBB388_20
{
	r0 = 1;
	r4 = 5;
__label__ = 28;
break _1;
}
else{
__label__ = 27;
break _1;
}
}
}
}
else{
	if(r0 ==0) //_LBB388_15
{
	r0 = 0;
	r4 = 1;
__label__ = 28;
break _1;
}
else{
	if(r0 ==1) //_LBB388_16
{
	r0 = 0;
	r4 = 2;
__label__ = 28;
}
else{
	if(r0 ==2) //_LBB388_17
{
	r0 = 1;
	r4 = 3;
__label__ = 28;
}
else{
__label__ = 27;
}
}
}
}
}
} while(0);
switch(__label__ ){//multiple entries
case 28:
	r5 = r1 >> 2;
	r6 = heap32[(r5)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+24)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r0 = heap32[(r5)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+24)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	return;
break;
case 27:
	r0 = _2E_str10;
	r1 = _2E_str2175;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 246;
	_assert(i7);
break;
}
}

function _ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
_1: do {
	if(r0 >2) //_LBB389_4
{
	if(r0 ==3) //_LBB389_12
{
	r1 = r1 >> 2;
	heap32[(r1)] = 0;
	heap32[(r1+1)] = -1082130432;
__label__ = 9;
break _1;
}
else{
	if(r0 ==4) //_LBB389_13
{
	r1 = r1 >> 2;
	heap32[(r1)] = 0;
	heap32[(r1+1)] = 0;
	heap32[(r1+2)] = 1065353216;
	heap32[(r1+3)] = 0;
	return;
}
else{
	if(r0 ==5) //_LBB389_14
{
	r0 = r1 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	heap32[(r0+2)] = -1082130432;
	heap32[(r0+3)] = 0;
	return;
}
else{
__label__ = 15;
break _1;
}
}
}
}
else{
	if(r0 ==0) //_LBB389_7
{
	r1 = r1 >> 2;
	heap32[(r1)] = 1065353216;
}
else{
	if(r0 ==1) //_LBB389_10
{
	r1 = r1 >> 2;
	heap32[(r1)] = -1082130432;
}
else{
	if(r0 ==2) //_LBB389_11
{
	r1 = r1 >> 2;
	heap32[(r1)] = 0;
	heap32[(r1+1)] = 1065353216;
__label__ = 9;
break _1;
}
else{
__label__ = 15;
break _1;
}
}
}
	heap32[(r1+1)] = 0;
__label__ = 9;
}
} while(0);
switch(__label__ ){//multiple entries
case 9:
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 0;
	return;
break;
case 15:
	r0 = _2E_str10;
	r1 = _2E_str2175;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 309;
	_assert(i7);
break;
}
}

function _ZN10btBoxShape15setLocalScalingERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f2 = f_g0;
	r0 = heap32[(fp+1)];
	f3 = heapFloat[(r1+9)];
	f4 = heapFloat[(r1+8)];
	f5 = heapFloat[(r1+7)];
	r0 = r0 >> 2;
	f3 = f3+f0;
	f6 = heapFloat[(r1+5)];
	f4 = f4+f1;
	f7 = heapFloat[(r1+4)];
	f5 = f5+f2;
	f8 = heapFloat[(r1+3)];
	f9 = heapFloat[(r0+2)];
	f3 = f3/f6;
	f4 = f4/f7;
	f5 = f5/f8;
	f6 =                         0;
	if(f9 <f6) //_LBB390_2
{
	f9 = -f9;
}
	f7 = heapFloat[(r0+1)];
	if(f7 <f6) //_LBB390_5
{
	f7 = -f7;
}
	f8 = heapFloat[(r0)];
	if(f8 <f6) //_LBB390_8
{
	f8 = -f8;
}
	heapFloat[(r1+3)] = f8;
	heapFloat[(r1+4)] = f7;
	heapFloat[(r1+5)] = f9;
	f5 = f5*f8;
	f4 = f4*f7;
	f2 = f5-f2;
	heap32[(r1+6)] = 0;
	f3 = f3*f9;
	f1 = f4-f1;
	heapFloat[(r1+7)] = f2;
	f0 = f3-f0;
	heapFloat[(r1+8)] = f1;
	heapFloat[(r1+9)] = f0;
	heap32[(r1+10)] = 0;
	return;
}

function _ZN10btBoxShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB391_2
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN10btBoxShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZNK14btConcaveShape9getMarginEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var f0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+3)];
	f_g0 = f0;
	return;
}

function _ZN14btConcaveShape9setMarginEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	heap32[(r0+3)] = heap32[(fp+1)];
	return;
}

function _ZNK22btBvhTriangleMeshShape7getNameEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _2E_str181;
	r_g0 = r0;
	return;
}

function _ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 60;
	r_g0 = r0;
	return;
}

function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -120;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	r3 = heap32[(fp+1)];
	r4 = sp + -52;
	r5 = sp + -56;
	r6 = sp + -60;
	r7 = sp + -64;
	r8 = sp + -68;
	r9 = sp + -72;
	r10 = sp + -76;
	r11 = sp + -80;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r6;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r8;
	heap32[(g0+6)] = r9;
	heap32[(g0+7)] = r10;
	heap32[(g0+8)] = r11;
	heap32[(g0+9)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(fp+-20)];
	r2 = (r1 + -2)|0;
	if(uint(r2) <uint(2)) //_LBB399_2
{
	r2 = heap32[(fp+2)];
	r4 = heap32[(fp+-17)];
	r5 = heap32[(fp+-18)];
	r5 = (r5 * r2)|0;
	r6 = heap32[(r0+1)];
	r4 = (r4 + r5)|0;
	r5 = -6;
_3: while(true){
	r7 = 0;
	r8 = r5 << 1;
	r7 = (r7 - r8)|0;
	if(r1 !=3) //_LBB399_5
{
	r8 = (r4 - r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8+-1)];
}
else{
	r8 = (r4 - r5)|0;
	r8 = heapU16[(r8+-2)>>1];
}
	r9 = heap32[(fp+-16)];
	r10 = heap32[(fp+-13)];
	r8 = (r9 * r8)|0;
	r9 = heap32[(fp+-15)];
	if(r9 !=0) //_LBB399_8
{
	r9 = (r10 + r8)|0;
	r11 = r6 >> 2;
	f0 = llvm_readDouble((r9+16));
	f1 = llvm_readDouble((r9+8));
	f2 = llvm_readDouble((r10+r8));
	f0 = f0; //fdtos f0, f0
	f3 = heapFloat[(r11+3)];
	f1 = f1; //fdtos f1, f1
	f4 = heapFloat[(r11+2)];
	f2 = f2; //fdtos f2, f2
	f5 = heapFloat[(r11+1)];
	f0 = f0*f3;
	f1 = f1*f4;
	f2 = f2*f5;
}
else{
	r8 = (r10 + r8)|0;
	r8 = r8 >> 2;
	r10 = r6 >> 2;
	f0 = heapFloat[(r8+2)];
	f1 = heapFloat[(r10+3)];
	f2 = heapFloat[(r8+1)];
	f3 = heapFloat[(r10+2)];
	f4 = heapFloat[(r8)];
	f5 = heapFloat[(r10+1)];
	f0 = f0*f1;
	f1 = f2*f3;
	f2 = f4*f5;
}
	r8 = sp + -48;
	r9 = r7 << 2;
	r10 = r7 << 2;
	r9 = (r8 + r9)|0;
	r11 = r7 << 2;
	r10 = (r8 + r10)|0;
	r9 = r9 >> 2;
	r7 = r7 << 2;
	r11 = (r8 + r11)|0;
	r10 = r10 >> 2;
	heapFloat[(r9+-4)] = f2;
	r7 = (r8 + r7)|0;
	r9 = r11 >> 2;
	heapFloat[(r10+-3)] = f1;
	r5 = (r5 + 2)|0;
	r7 = r7 >> 2;
	heapFloat[(r9+-2)] = f0;
	heap32[(r7+-1)] = 0;
if(!(r5 !=0)) //_LBB399_3
{
break _3;
}
}
	r1 = heap32[(r0+2)];
	r4 = r1 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r0 = heap32[(r0+1)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}
else{
	r0 = _2E_str6187;
	r1 = _2E_str7188;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 130;
	_assert(i7);
}
}

function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -120;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	r3 = heap32[(fp+1)];
	r4 = sp + -52;
	r5 = sp + -56;
	r6 = sp + -60;
	r7 = sp + -64;
	r8 = sp + -68;
	r9 = sp + -72;
	r10 = sp + -76;
	r11 = sp + -80;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r6;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r8;
	heap32[(g0+6)] = r9;
	heap32[(g0+7)] = r10;
	heap32[(g0+8)] = r11;
	heap32[(g0+9)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(fp+-20)];
	r2 = (r1 + -2)|0;
	if(uint(r2) <uint(2)) //_LBB402_2
{
	r2 = heap32[(fp+2)];
	r4 = heap32[(fp+-17)];
	r5 = heap32[(fp+-18)];
	r5 = (r5 * r2)|0;
	r6 = heap32[(r0+1)];
	r4 = (r4 + r5)|0;
	r5 = -6;
_3: while(true){
	r7 = 0;
	r8 = r5 << 1;
	r7 = (r7 - r8)|0;
	if(r1 !=3) //_LBB402_5
{
	r8 = (r4 - r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8+-1)];
}
else{
	r8 = (r4 - r5)|0;
	r8 = heapU16[(r8+-2)>>1];
}
	r9 = heap32[(fp+-16)];
	r10 = heap32[(fp+-13)];
	r8 = (r9 * r8)|0;
	r9 = heap32[(fp+-15)];
	if(r9 !=0) //_LBB402_8
{
	r9 = (r10 + r8)|0;
	r11 = r6 >> 2;
	f0 = llvm_readDouble((r9+16));
	f1 = llvm_readDouble((r9+8));
	f2 = llvm_readDouble((r10+r8));
	f0 = f0; //fdtos f0, f0
	f3 = heapFloat[(r11+3)];
	f1 = f1; //fdtos f1, f1
	f4 = heapFloat[(r11+2)];
	f2 = f2; //fdtos f2, f2
	f5 = heapFloat[(r11+1)];
	f0 = f0*f3;
	f1 = f1*f4;
	f2 = f2*f5;
}
else{
	r8 = (r10 + r8)|0;
	r8 = r8 >> 2;
	r10 = r6 >> 2;
	f0 = heapFloat[(r8+2)];
	f1 = heapFloat[(r10+3)];
	f2 = heapFloat[(r8+1)];
	f3 = heapFloat[(r10+2)];
	f4 = heapFloat[(r8)];
	f5 = heapFloat[(r10+1)];
	f0 = f0*f1;
	f1 = f2*f3;
	f2 = f4*f5;
}
	r8 = sp + -48;
	r9 = r7 << 2;
	r10 = r7 << 2;
	r9 = (r8 + r9)|0;
	r11 = r7 << 2;
	r10 = (r8 + r10)|0;
	r9 = r9 >> 2;
	r7 = r7 << 2;
	r11 = (r8 + r11)|0;
	r10 = r10 >> 2;
	heapFloat[(r9+-4)] = f2;
	r7 = (r8 + r7)|0;
	r9 = r11 >> 2;
	heapFloat[(r10+-3)] = f1;
	r5 = (r5 + 2)|0;
	r7 = r7 >> 2;
	heapFloat[(r9+-2)] = f0;
	heap32[(r7+-1)] = 0;
if(!(r5 !=0)) //_LBB402_3
{
break _3;
}
}
	r1 = heap32[(r0+2)];
	r4 = r1 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r0 = heap32[(r0+1)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}
else{
	r0 = _2E_str6187;
	r1 = _2E_str7188;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 199;
	_assert(i7);
}
}

function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -72;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+1)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	r4 = heap32[(fp+1)];
	r5 = sp + -4;
	r6 = sp + -8;
	r7 = sp + -12;
	r8 = sp + -16;
	r9 = sp + -20;
	r10 = sp + -24;
	r11 = sp + -28;
	r12 = sp + -32;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r8;
	heap32[(g0+5)] = r9;
	heap32[(g0+6)] = r10;
	heap32[(g0+7)] = r11;
	heap32[(g0+8)] = r12;
	heap32[(g0+9)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = heap32[(fp+-8)];
	r3 = (r2 + -2)|0;
	if(uint(r3) <uint(2)) //_LBB405_2
{
	r3 = heap32[(fp+2)];
	r5 = heap32[(fp+-5)];
	r6 = heap32[(fp+-6)];
	r6 = (r6 * r3)|0;
	r5 = (r6 + r5)|0;
	r6 = heap32[(r1+1)];
	r5 = (r5 + 8)|0;
	r7 = 0;
	r8 = r7;
_3: while(true){
	r9 = r8 << 1;
	r10 = (r7 - r9)|0;
	if(r2 !=3) //_LBB405_5
{
	r9 = (r5 - r9)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
}
else{
	r9 = (r5 - r8)|0;
	r9 = heapU16[(r9+-4)>>1];
}
	r11 = heap32[(fp+-4)];
	r12 = heap32[(fp+-1)];
	r9 = (r11 * r9)|0;
	r11 = heap32[(fp+-3)];
	if(r11 !=0) //_LBB405_8
{
	r11 = (r12 + r9)|0;
	r13 = r6 >> 2;
	f0 = llvm_readDouble((r11+16));
	f1 = llvm_readDouble((r11+8));
	f2 = llvm_readDouble((r12+r9));
	f0 = f0; //fdtos f0, f0
	f3 = heapFloat[(r13+3)];
	f1 = f1; //fdtos f1, f1
	f4 = heapFloat[(r13+2)];
	f2 = f2; //fdtos f2, f2
	f5 = heapFloat[(r13+1)];
	f0 = f0*f3;
	f1 = f1*f4;
	f2 = f2*f5;
}
else{
	r9 = (r12 + r9)|0;
	r9 = r9 >> 2;
	r12 = r6 >> 2;
	f0 = heapFloat[(r9+2)];
	f1 = heapFloat[(r12+3)];
	f2 = heapFloat[(r9+1)];
	f3 = heapFloat[(r12+2)];
	f4 = heapFloat[(r9)];
	f5 = heapFloat[(r12+1)];
	f0 = f0*f1;
	f1 = f2*f3;
	f2 = f4*f5;
}
	r9 = r10 << 2;
	r11 = r10 << 2;
	r9 = (r0 + r9)|0;
	r12 = r10 << 2;
	r11 = (r0 + r11)|0;
	r9 = r9 >> 2;
	r10 = r10 << 2;
	r12 = (r0 + r12)|0;
	r11 = r11 >> 2;
	heapFloat[(r9+11)] = f2;
	r9 = (r0 + r10)|0;
	r10 = r12 >> 2;
	heapFloat[(r11+12)] = f1;
	r8 = (r8 + 2)|0;
	r9 = r9 >> 2;
	heapFloat[(r10+13)] = f0;
	heap32[(r9+14)] = 0;
if(!(r8 !=6)) //_LBB405_3
{
break _3;
}
}
	r2 = heap32[(r1+2)];
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+2)];
	r0 = (r0 + 12)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r3;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r0 = heap32[(r1+1)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}
else{
	r0 = _2E_str6187;
	r1 = _2E_str7188;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 280;
	_assert(i7);
}
}

function _ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+13)];
if(!(r1 ==0)) //_LBB406_2
{
	r2 = heap32[(fp+1)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r2 >> 2;
	r4 = heap32[(r3)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r1 = r_g0;
	r4 = heap32[(r0+13)];
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r6 = r1 >> 2;
	r5 = heap32[(r5+4)];
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+5)];
	r0 = heap32[(r0+13)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1213612625;
	heap32[(g0+4)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
	return;
}

function _ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+14)];
if(!(r1 ==0)) //_LBB407_2
{
	r2 = heap32[(fp+1)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+2)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r2 >> 2;
	r4 = heap32[(r3)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r1 = r_g0;
	r4 = heap32[(r0+14)];
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r6 = r1 >> 2;
	r5 = heap32[(r5+3)];
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+5)];
	r0 = heap32[(r0+14)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1346456916;
	heap32[(g0+4)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
}
	return;
}

function _ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _2E_str10;
	r1 = _2E_str5186;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 43;
	_assert(i7);
}

function _ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+10)];
	r3 = heap32[(fp)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	r5 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	r6 = r5 >> 2;
	heap32[(r6)] = r4;
if(!(r4 ==0)) //_LBB409_2
{
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+12)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
	r2 = r3 >> 2;
	r3 = heap32[(r2+1)];
	heap32[(r6+1)] = r3;
	r3 = heap32[(r2+12)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+14)];
	r5 = (r5 + 12)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	heap32[(r6+13)] = heap32[(r2+3)];
	r3 = heap32[(r2+13)];
	if(r3 ==0) //_LBB409_4
{
__label__ = 4;
}
else{
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+13)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r_g0 & 1;
	if(r3 ==0) //_LBB409_5
{
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+6)];
	r4 = heap32[(r2+13)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r_g0;
	if(r3 ==0) //_LBB409_7
{
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+7)];
	r4 = heap32[(r2+13)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	heap32[(r6+10)] = r_g0;
	heap32[(r6+11)] = 0;
	r3 = heap32[(r2+13)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+3)];
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = r_g0;
	r4 = heap32[(r2+13)];
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r7 = r3 >> 2;
	r5 = heap32[(r5+4)];
	r7 = heap32[(r7+2)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = heap32[(r1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+5)];
	r7 = heap32[(r2+13)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1213612625;
	heap32[(g0+4)] = r7;
	__FUNCTION_TABLE__[(r5)>>2](i7);
__label__ = 8;
}
else{
	heap32[(r6+10)] = r3;
	heap32[(r6+11)] = 0;
__label__ = 8;
}
}
else{
__label__ = 4;
}
}
if (__label__ == 4){
	heap32[(r6+10)] = 0;
	heap32[(r6+11)] = 0;
}
	r3 = heap32[(r2+14)];
	if(r3 ==0) //_LBB409_10
{
__label__ = 10;
}
else{
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+13)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r_g0 & 2;
	if(r3 ==0) //_LBB409_12
{
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+6)];
	r4 = heap32[(r2+14)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r_g0;
	if(r3 ==0) //_LBB409_14
{
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+7)];
	r4 = heap32[(r2+14)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	heap32[(r6+12)] = r_g0;
	r3 = heap32[(r2+14)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = r_g0;
	r4 = heap32[(r2+14)];
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r6 = r3 >> 2;
	r5 = heap32[(r5+3)];
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	r2 = heap32[(r2+14)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1346456916;
	heap32[(g0+4)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
__label__ = 11;
}
else{
	heap32[(r6+12)] = r3;
__label__ = 11;
}
}
else{
__label__ = 10;
}
}
if (__label__ == 10){
	heap32[(r6+12)] = 0;
}
	r0 = _2E_str8189;
	r_g0 = r0;
	return;
}

function _ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
var __label__ = 0;
	i7 = sp + -72;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+61];
if(!(r1 ==0)) //_LBB410_3
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+13)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r1+13)];
if(!(r1 ==0)) //_LBB410_3
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r2)] = r3;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = gNumAlignedAllocs;
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r2 = (r2 + 1)|0;
	heap32[(r1)] = r2;
	heap32[(g0)] = 191;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB410_5
{
	r3 = 0;
	r4 = (r2 + 4)|0;
	r3 = (r3 - r4)|0;
	r3 = r3 & 15;
	r3 = (r2 + r3)|0;
	r4 = (r3 + 4)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r2;
	r2 = r4;
}
	r3 = r2 >> 2;
	r4 = 1;
	heap32[(r3+13)] = 277;
	heap8[r2+80] = r4;
	heap32[(r3+19)] = 0;
	heap32[(r3+17)] = 0;
	heap32[(r3+18)] = 0;
	heap8[r2+100] = r4;
	heap32[(r3+24)] = 0;
	heap32[(r3+22)] = 0;
	heap32[(r3+23)] = 0;
	heap8[r2+120] = r4;
	heap32[(r3+29)] = 0;
	heap32[(r3+27)] = 0;
	heap32[(r3+28)] = 0;
	heap8[r2+140] = r4;
	heap32[(r3+34)] = 0;
	heap32[(r3+32)] = 0;
	heap32[(r3+33)] = 0;
	heap32[(r3+36)] = 0;
	heap8[r2+164] = r4;
	heap32[(r3+40)] = 0;
	heap32[(r3+38)] = 0;
	heap32[(r3+39)] = 0;
	heap32[(r3+42)] = 0;
	heap32[(r3+1)] = -8388609;
	heap32[(r3+2)] = -8388609;
	heap32[(r3+3)] = -8388609;
	heap32[(r3+4)] = 0;
	heap32[(r3+5)] = 2139095039;
	heap32[(r3+6)] = 2139095039;
	r5 = _ZTV14btOptimizedBvh;
	heap32[(r3+7)] = 2139095039;
	r5 = (r5 + 8)|0;
	heap32[(r3+8)] = 0;
	r6 = r0 >> 2;
	heap32[(r3)] = r5;
	heap32[(r6+13)] = r2;
	r5 = heap32[(r6+12)];
	r7 = heapU8[r0+60];
	heap8[r2+60] = r7;
	if(r7 ==0) //_LBB410_11
{
	r6 = _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback;
	r7 = sp + -24;
	r6 = (r6 + 8)|0;
	r8 = r7 >> 2;
	r9 = (r2 + 64)|0;
	heap32[(fp+-6)] = r6;
	r6 = sp + -40;
	heap32[(r8+1)] = r9;
	r8 = r6 >> 2;
	heap32[(fp+-10)] = -581039253;
	heap32[(r8+1)] = -581039253;
	heap32[(r8+2)] = -581039253;
	r9 = sp + -56;
	heap32[(r8+3)] = 0;
	r8 = r9 >> 2;
	heap32[(fp+-14)] = 1566444395;
	heap32[(r8+1)] = 1566444395;
	heap32[(r8+2)] = 1566444395;
	r10 = r5 >> 2;
	heap32[(r8+3)] = 0;
	r8 = heap32[(r10)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r9;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r5 = heap32[(r3+17)];
	r6 = heap32[(r3+22)];
	r7 = r5 << 1;
if(!(r6 >=r7)) //_LBB410_26
{
	r8 = heap32[(r3+23)];
if(!(r8 >=r7)) //_LBB410_26
{
	if(r7 !=0) //_LBB410_15
{
	r8 = heap32[(r1)];
	r8 = (r8 + 1)|0;
	r9 = r5 << 7;
	heap32[(r1)] = r8;
	r8 = r9 | 19;
	heap32[(g0)] = r8;
	malloc(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB410_17
{
	r9 = 0;
	r10 = (r8 + 4)|0;
	r9 = (r9 - r10)|0;
	r9 = r9 & 15;
	r9 = (r8 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r8;
	r8 = r10;
}
}
else{
	r8 = 0;
}
if(!(r6 <1)) //_LBB410_21
{
	r9 = 0;
_20: while(true){
	r10 = heap32[(r3+24)];
	r11 = (r8 + r9)|0;
	r10 = (r10 + r9)|0;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = 64;
	r6 = (r6 + -1)|0;
	r9 = (r9 + 64)|0;
	memcpy(i7);
if(!(r6 !=0)) //_LBB410_20
{
break _20;
}
}
}
	r6 = heap32[(r3+24)];
if(!(r6 ==0)) //_LBB410_25
{
	r9 = heapU8[r2+100];
if(!(r9 ==0)) //_LBB410_24
{
	r9 = gNumAlignedFree;
	r9 = r9 >> 2;
	r10 = heap32[(r9)];
	r10 = (r10 + 1)|0;
	r6 = r6 >> 2;
	heap32[(r9)] = r10;
	r6 = heap32[(r6+-1)];
	heap32[(g0)] = r6;
	free(i7);
}
	heap32[(r3+24)] = 0;
}
	r6 = 1;
	heap8[r2+100] = r6;
	heap32[(r3+24)] = r8;
	heap32[(r3+23)] = r7;
}
}
	r6 = _ZTV31btInternalTriangleIndexCallback;
	r6 = (r6 + 8)|0;
	heap32[(r3+22)] = r7;
	heap32[(fp+-6)] = r6;
}
else{
	r7 = (r2 + 4)|0;
	r8 = (r2 + 20)|0;
	f0 =                        -1;
	f1 = heapFloat[(r6+6)];
	f2 = heapFloat[(r6+5)];
	f3 = heapFloat[(r6+4)];
	f3 = f3+f0;
	f2 = f2+f0;
	heapFloat[(r3+1)] = f3;
	f0 = f1+f0;
	heapFloat[(r3+2)] = f2;
	heapFloat[(r3+3)] = f0;
	heap32[(r3+4)] = 0;
	f1 =                         1;
	f4 = heapFloat[(r6+10)];
	f5 = heapFloat[(r6+9)];
	f6 = heapFloat[(r6+8)];
	f6 = f6+f1;
	f5 = f5+f1;
	heapFloat[(r3+5)] = f6;
	f1 = f4+f1;
	heapFloat[(r3+6)] = f5;
	heapFloat[(r3+7)] = f1;
	f4 =                     65533;
	f3 = f6-f3;
	f2 = f5-f2;
	f3 = f4/f3;
	heap32[(r3+8)] = 0;
	f0 = f1-f0;
	f1 = f4/f2;
	heapFloat[(r3+9)] = f3;
	f0 = f4/f0;
	heapFloat[(r3+10)] = f1;
	heapFloat[(r3+11)] = f0;
	r6 = _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback;
	heap32[(r3+12)] = 0;
	r9 = sp + -16;
	r6 = (r6 + 8)|0;
	heap8[r2+60] = r4;
	r10 = r9 >> 2;
	r11 = (r2 + 104)|0;
	heap32[(fp+-4)] = r6;
	heap32[(r10+1)] = r11;
	r6 = r5 >> 2;
	heap32[(r10+2)] = r2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r8;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r5 = heap32[(r3+27)];
	r6 = heap32[(r3+32)];
	r7 = r5 << 1;
_31: do {
if(!(r6 >=r7)) //_LBB410_10
{
	r8 = (r2 + 124)|0;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r7;
	r8 = (r7 - r6)|0;
	r6 = r6 << 4;
	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
_33: while(true){
	r9 = heap32[(r3+34)];
	r9 = (r9 + r6)|0;
	r9 = r9 >> 2;
	r8 = (r8 + -1)|0;
	r6 = (r6 + 16)|0;
	heap32[(r9)] = 0;
	heap32[(r9+1)] = 0;
	heap32[(r9+2)] = 0;
	heap32[(r9+3)] = 0;
if(!(r8 !=0)) //_LBB410_9
{
break _31;
}
}
}
} while(0);
	r6 = _ZTV31btInternalTriangleIndexCallback;
	r6 = (r6 + 8)|0;
	heap32[(r3+32)] = r7;
	heap32[(fp+-4)] = r6;
}
	heap32[(r3+14)] = 0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r5;
	_ZN14btQuantizedBvh9buildTreeEii(i7);
	r5 = heapU8[r2+60];
if(!(r5 ==0)) //_LBB410_41
{
	r5 = heap32[(r3+38)];
if(!(r5 !=0)) //_LBB410_41
{
	r6 = heap32[(r3+39)];
	if(r6 !=r5) //_LBB410_31
{
__label__ = 29;
}
else{
	if(r6 <1) //_LBB410_32
{
	r6 = heap32[(r1)];
	r6 = (r6 + 1)|0;
	heap32[(r1)] = r6;
	heap32[(g0)] = 51;
	malloc(i7);
	r1 = r_g0;
	if(r1 !=0) //_LBB410_34
{
	r6 = 0;
	r7 = (r1 + 4)|0;
	r6 = (r6 - r7)|0;
	r6 = r6 & 15;
	r6 = (r1 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r1;
	r1 = r7;
}
	r6 = heap32[(r3+40)];
if(!(r6 ==0)) //_LBB410_39
{
	r7 = heapU8[r2+164];
if(!(r7 ==0)) //_LBB410_38
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r8 = heap32[(r7)];
	r8 = (r8 + 1)|0;
	r6 = r6 >> 2;
	heap32[(r7)] = r8;
	r6 = heap32[(r6+-1)];
	heap32[(g0)] = r6;
	free(i7);
}
	heap32[(r3+40)] = 0;
}
	r6 = 1;
	heap8[r2+164] = r6;
	heap32[(r3+40)] = r1;
	heap32[(r3+39)] = 1;
	r6 = heap32[(r3+38)];
	r6 = (r6 + 1)|0;
__label__ = 37;
}
else{
__label__ = 29;
}
}
if (__label__ == 29){
	r1 = heap32[(r3+40)];
	r6 = r4;
}
	heap32[(r3+38)] = r6;
	r6 = heap32[(r3+34)];
	r7 = heapU16[(r6)>>1];
	r5 = r5 << 5;
	heap16[(r1+r5)>>1] = r7;
	r1 = (r1 + r5)|0;
	r5 = heapU16[(r6+2)>>1];
	heap16[(r1+2)>>1] = r5;
	r5 = heapU16[(r6+4)>>1];
	heap16[(r1+4)>>1] = r5;
	r5 = heapU16[(r6+6)>>1];
	heap16[(r1+6)>>1] = r5;
	r5 = heapU16[(r6+8)>>1];
	heap16[(r1+8)>>1] = r5;
	r5 = heapU16[(r6+10)>>1];
	r6 = r1 >> 2;
	heap16[(r1+10)>>1] = r5;
	heap32[(r6+3)] = 0;
	r1 = heap32[(r3+34)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+3)];
	r5 = 0;
	r5 = (r5 - r1)|0;
	r1 = r1 < 0 ? r5 : r4;
	heap32[(r6+4)] = r1;
}
}
	r1 = heap32[(r3+38)];
	heap32[(r3+42)] = r1;
	r1 = heap32[(r3+29)];
if(!(r1 ==0)) //_LBB410_45
{
	r4 = heapU8[r2+120];
if(!(r4 ==0)) //_LBB410_44
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r4)] = r5;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r3+29)] = 0;
}
	r1 = 1;
	heap8[r2+120] = r1;
	heap32[(r3+29)] = 0;
	heap32[(r3+27)] = 0;
	heap32[(r3+28)] = 0;
	r4 = heap32[(r3+19)];
if(!(r4 ==0)) //_LBB410_49
{
	r5 = heapU8[r2+80];
if(!(r5 ==0)) //_LBB410_48
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r6 = (r6 + 1)|0;
	r4 = r4 >> 2;
	heap32[(r5)] = r6;
	r4 = heap32[(r4+-1)];
	heap32[(g0)] = r4;
	free(i7);
}
	heap32[(r3+19)] = 0;
}
	heap8[r2+80] = r1;
	heap32[(r3+19)] = 0;
	heap32[(r3+17)] = 0;
	heap32[(r3+18)] = 0;
	heap8[r0+61] = r1;
	return;
}

function _ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+7)];
	heap32[(g0)] = r0;
	r3 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r3)];
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r2+1)];
	f3 = heapFloat[(r3+1)];
	f1 = f1-f0;
	f2 = f2-f3;
	f3 = heapFloat[(r2+2)];
	f4 = heapFloat[(r3+2)];
	f3 = f3-f4;
	f1 = f1*f1;
	f2 = f2*f2;
	f1 = f1+f2;
	f2 = f3*f3;
	f1 = f1+f2;
	f2 =   1.1920928955078125e-007;
if(!(f1 <=f2)) //_LBB411_2
{
	r1 = heap32[(r1+12)];
	r1 = r1 >> 2;
	heapFloat[(r1+1)] = f0;
	heap32[(r1+2)] = heap32[(r3+1)];
	heap32[(r1+3)] = heap32[(r3+2)];
	heap32[(r1+4)] = heap32[(r3+3)];
	heap32[(g0)] = r0;
	_ZN19btTriangleMeshShape15recalcLocalAabbEv(i7);
	heap32[(g0)] = r0;
	_ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(i7);
}
	return;
}

function _ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -80;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
	r2 = sp + -64;
	r3 = heap32[(r0+12)];
	r1 = (r1 + 8)|0;
	r4 = r2 >> 2;
	heap32[(fp+-16)] = r1;
	r1 = heap32[(fp+1)];
	heap32[(r4+1)] = r3;
	heap32[(r4+2)] = r1;
	r0 = heap32[(r0+13)];
	r1 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r3;
	_ZNK14btQuantizedBvh26reportAabbOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(i7);
	return;
}

function _ZN22btBvhTriangleMeshShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV22btBvhTriangleMeshShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+61];
	if(r1 ==0) //_LBB413_3
{
__label__ = 3;
}
else{
	r1 = heap32[(r2+13)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+13)];
	if(r1 ==0) //_LBB413_3
{
__label__ = 3;
}
else{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r3 = heap32[(r0)];
	r3 = (r3 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r0)] = r3;
	r0 = heap32[(r1+-1)];
	r1 = _ZTV14btConcaveShape;
	heap32[(g0)] = r0;
	r0 = (r1 + 8)|0;
	free(i7);
	heap32[(r2)] = r0;
__label__ = 4;
}
}
if (__label__ == 3){
	r1 = _ZTV14btConcaveShape;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	if(r0 ==0) //_LBB413_5
{
__label__ = 5;
}
else{
__label__ = 4;
}
}
if (__label__ == 4){
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN22btBvhTriangleMeshShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV22btBvhTriangleMeshShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r0 = heapU8[r0+61];
if(!(r0 ==0)) //_LBB414_3
{
	r0 = heap32[(r2+13)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = heap32[(r2+13)];
if(!(r0 ==0)) //_LBB414_3
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	r0 = _ZTV14btConcaveShape;
	r0 = (r0 + 8)|0;
	heap32[(r2)] = r0;
	return;
}

function _ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN14btCapsuleShape9setMarginEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f2 = f_g0;
	f3 = heapFloat[(r1+9)];
	f4 = heapFloat[(r1+8)];
	f5 = heapFloat[(r1+7)];
	heap32[(r1+11)] = heap32[(fp+1)];
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f6 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f7 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	f2 = f5+f2;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = f4+f1;
	f2 = f2-f_g0;
	f0 = f3+f0;
	f1 = f1-f7;
	heapFloat[(r1+7)] = f2;
	f0 = f0-f6;
	heapFloat[(r1+8)] = f1;
	heapFloat[(r1+9)] = f0;
	heap32[(r1+10)] = 0;
	return;
}

function _ZNK14btCapsuleShape7getNameEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _2E_str194;
	r_g0 = r0;
	return;
}

function _ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+13)];
	r3 = (r2 + 2)|0;
	r3 = (r3 % 3)|0;
	r4 = (r0 + 28)|0;
	r3 = r3 << 2;
	r3 = (r4 + r3)|0;
	r3 = r3 >> 2;
	f0 = heapFloat[(r3)];
	r3 = sp + -16;
	r5 = r3 >> 2;
	heapFloat[(fp+-4)] = f0;
	r2 = r2 << 2;
	heapFloat[(r5+1)] = f0;
	r4 = (r4 + r2)|0;
	heapFloat[(r5+2)] = f0;
	r4 = r4 >> 2;
	heap32[(r5+3)] = 0;
	r2 = (r3 + r2)|0;
	f1 = heapFloat[(r4)];
	r2 = r2 >> 2;
	f0 = f0+f1;
	heapFloat[(r2)] = f0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = f_g0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f3 = heapFloat[(fp+-4)];
	f2 = f3+f_g0;
	heapFloat[(fp+-4)] = f2;
	f3 = heapFloat[(r5+1)];
	f1 = f3+f1;
	heapFloat[(r5+1)] = f1;
	f3 = heapFloat[(r5+2)];
	r0 = heap32[(fp+1)];
	f0 = f3+f0;
	r0 = r0 >> 2;
	heapFloat[(r5+2)] = f0;
	f3 = heapFloat[(r0+10)];
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	f4 =                         0;
	if(f3 <f4) //_LBB418_2
{
	f3 = -f3;
}
	f5 = heapFloat[(r0+9)];
	if(f5 <f4) //_LBB418_5
{
	f5 = -f5;
}
	f6 = heapFloat[(r0+8)];
	if(f6 <f4) //_LBB418_8
{
	f6 = -f6;
}
	f7 = heapFloat[(r0+6)];
	if(f7 <f4) //_LBB418_11
{
	f7 = -f7;
}
	f8 = heapFloat[(r0+5)];
	if(f8 <f4) //_LBB418_14
{
	f8 = -f8;
}
	f9 = heapFloat[(r0+4)];
	if(f9 <f4) //_LBB418_17
{
	f9 = -f9;
}
	f10 = heapFloat[(r0+2)];
	if(f10 <f4) //_LBB418_20
{
	f10 = -f10;
}
	f11 = heapFloat[(r0+1)];
	if(f11 <f4) //_LBB418_23
{
	f11 = -f11;
}
	f12 = heapFloat[(r0)];
	if(f12 <f4) //_LBB418_26
{
	f12 = -f12;
}
	f4 = f12*f2;
	f11 = f11*f1;
	f9 = f9*f2;
	f8 = f8*f1;
	f4 = f4+f11;
	f10 = f10*f0;
	f2 = f6*f2;
	f1 = f5*f1;
	f5 = f9+f8;
	f6 = f7*f0;
	f4 = f4+f10;
	f7 = heapFloat[(r0+12)];
	f8 = heapFloat[(r0+13)];
	f9 = heapFloat[(r0+14)];
	f5 = f5+f6;
	r0 = r1 >> 2;
	f1 = f2+f1;
	f0 = f3*f0;
	f2 = f7-f4;
	f0 = f1+f0;
	f1 = f8-f5;
	heapFloat[(r0)] = f2;
	f2 = f9-f0;
	heapFloat[(r0+1)] = f1;
	heapFloat[(r0+2)] = f2;
	r1 = r2 >> 2;
	f1 = f7+f4;
	heap32[(r0+3)] = 0;
	f2 = f8+f5;
	heapFloat[(r1)] = f1;
	f0 = f9+f0;
	heapFloat[(r1+1)] = f2;
	heapFloat[(r1+2)] = f0;
	heap32[(r1+3)] = 0;
	return;
}

function _ZNK14btCapsuleShape28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 60;
	r_g0 = r0;
	return;
}

function _ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
if(!(r0 <1)) //_LBB420_9
{
	r1 = heap32[(fp)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+13)];
	r4 = (r3 + 2)|0;
	r4 = (r4 % 3)|0;
	r4 = r4 << 2;
	r4 = (r1 + r4)|0;
	r4 = r4 >> 2;
	r5 = heap32[(fp+1)];
	r6 = heap32[(fp+2)];
	f0 = heapFloat[(r4+7)];
	r0 = (r0 + -1)|0;
	r4 = (r5 + 8)|0;
	r5 = (r6 + 8)|0;
_3: while(true){
	r6 = sp + -16;
	heap32[(fp+-4)] = 0;
	r7 = r6 >> 2;
	r3 = r3 << 2;
	heap32[(r7+1)] = 0;
	r6 = (r6 + r3)|0;
	r3 = (r1 + r3)|0;
	heap32[(r7+2)] = 0;
	r6 = r6 >> 2;
	r3 = r3 >> 2;
	heap32[(r7+3)] = 0;
	heap32[(r6)] = heap32[(r3+7)];
	r3 = heap32[(r2)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+11)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r4 >> 2;
	f2 = heapFloat[(r3+-1)];
	f3 = heapFloat[(r2+4)];
	f4 = heapFloat[(r3+-2)];
	f5 = heapFloat[(r2+3)];
	f6 = heapFloat[(r3)];
	f7 = heapFloat[(r2+5)];
	f3 = f2*f3;
	f5 = f4*f5;
	f7 = f6*f7;
	f8 = heapFloat[(r7+1)];
	f3 = f3*f0;
	f9 = heapFloat[(fp+-4)];
	f5 = f5*f0;
	f10 = heapFloat[(r7+2)];
	f7 = f7*f0;
	f3 = f8+f3;
	f8 = f2*f_g0;
	f5 = f9+f5;
	f9 = f4*f_g0;
	f3 = f3-f8;
	f5 = f5-f9;
	f7 = f10+f7;
	f1 = f6*f_g0;
	f1 = f7-f1;
	f4 = f4*f5;
	f2 = f2*f3;
	f2 = f4+f2;
	f4 = f6*f1;
	f2 = f2+f4;
	f4 =       -999999984306749440;
	if(f2 >f4) //_LBB420_4
{
	r6 = r5 >> 2;
	heapFloat[(r6+-2)] = f5;
	heapFloat[(r6+-1)] = f3;
	heapFloat[(r6)] = f1;
	heap32[(r6+1)] = 0;
	f4 = f2;
}
	r6 = sp + -32;
	heap32[(fp+-8)] = 0;
	r7 = r6 >> 2;
	heap32[(r7+1)] = 0;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 0;
	r8 = heap32[(r2+13)];
	r8 = r8 << 2;
	r9 = (r1 + r8)|0;
	r9 = r9 >> 2;
	f1 = heapFloat[(r9+7)];
	r6 = (r6 + r8)|0;
	r6 = r6 >> 2;
	f1 = -f1;
	heapFloat[(r6)] = f1;
	r6 = heap32[(r2)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+11)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	f2 = heapFloat[(r3+-1)];
	f3 = heapFloat[(r2+4)];
	f5 = heapFloat[(r3+-2)];
	f6 = heapFloat[(r2+3)];
	f7 = heapFloat[(r3)];
	f8 = heapFloat[(r2+5)];
	f3 = f2*f3;
	f6 = f5*f6;
	f8 = f7*f8;
	f9 = heapFloat[(r7+1)];
	f3 = f3*f0;
	f10 = heapFloat[(fp+-8)];
	f6 = f6*f0;
	f11 = heapFloat[(r7+2)];
	f8 = f8*f0;
	f3 = f9+f3;
	f9 = f2*f_g0;
	f6 = f10+f6;
	f10 = f5*f_g0;
	f3 = f3-f9;
	f6 = f6-f10;
	f8 = f11+f8;
	f1 = f7*f_g0;
	f1 = f8-f1;
	f5 = f5*f6;
	f2 = f2*f3;
	f2 = f5+f2;
	f5 = f7*f1;
	f2 = f2+f5;
if(!(f2 <=f4)) //_LBB420_7
{
	r3 = r5 >> 2;
	heapFloat[(r3+-2)] = f6;
	heapFloat[(r3+-1)] = f3;
	heapFloat[(r3)] = f1;
	heap32[(r3+1)] = 0;
}
	if(r0 ==0) //_LBB420_9
{
break _3;
}
else{
	r3 = heap32[(r2+13)];
	r0 = (r0 + -1)|0;
	r4 = (r4 + 16)|0;
	r5 = (r5 + 16)|0;
continue _3;
}
}
}
	return;
}

function _ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1+13)];
	r2 = (r1 + 2)|0;
	r2 = (r2 % 3)|0;
	r0 = (r0 + 28)|0;
	r2 = r2 << 2;
	r2 = (r0 + r2)|0;
	r2 = r2 >> 2;
	f0 = heapFloat[(r2)];
	r2 = sp + -16;
	r3 = r2 >> 2;
	heapFloat[(fp+-4)] = f0;
	r1 = r1 << 2;
	heapFloat[(r3+1)] = f0;
	r2 = (r2 + r1)|0;
	r0 = (r0 + r1)|0;
	heapFloat[(r3+2)] = f0;
	r1 = r2 >> 2;
	heap32[(r3+3)] = 0;
	r0 = r0 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r0)];
	f0 = f0+f1;
	heapFloat[(r1)] = f0;
	f0 =      0.039999999105930328;
	f1 = heapFloat[(r3+1)];
	f2 = heapFloat[(r3+2)];
	f3 = heapFloat[(fp+-4)];
	f1 = f1+f0;
	f2 = f2+f0;
	f0 = f3+f0;
	f1 = f1+f1;
	f2 = f2+f2;
	f0 = f0+f0;
	f1 = f1*f1;
	f2 = f2*f2;
	f3 = heapFloat[(fp+1)];
	f4 =      0.083333328366279602;
	f0 = f0*f0;
	r0 = heap32[(fp+2)];
	f5 = f1+f2;
	f3 = f3*f4;
	f2 = f0+f2;
	r0 = r0 >> 2;
	f4 = f5*f3;
	f0 = f0+f1;
	f1 = f2*f3;
	heapFloat[(r0)] = f4;
	f0 = f0*f3;
	heapFloat[(r0+1)] = f1;
	heapFloat[(r0+2)] = f0;
	return;
}

function _ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _2E_str10;
	r1 = _2E_str4198;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 110;
	_assert(i7);
}

function _ZNK14btCapsuleShape9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+10)];
	r3 = heap32[(fp)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	r5 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
if(!(r4 ==0)) //_LBB423_2
{
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+12)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	r0 = r3 >> 2;
	r1 = heap32[(r0+1)];
	heap32[(r5+1)] = r1;
	heap32[(r5+7)] = heap32[(r0+7)];
	heap32[(r5+8)] = heap32[(r0+8)];
	heap32[(r5+9)] = heap32[(r0+9)];
	heap32[(r5+10)] = heap32[(r0+10)];
	heap32[(r5+3)] = heap32[(r0+3)];
	heap32[(r5+4)] = heap32[(r0+4)];
	heap32[(r5+5)] = heap32[(r0+5)];
	heap32[(r5+6)] = heap32[(r0+6)];
	heap32[(r5+11)] = heap32[(r0+11)];
	r0 = heap32[(r0+13)];
	heap32[(r5+13)] = r0;
	r0 = _2E_str6199;
	r_g0 = r0;
	return;
}

function _ZN14btCapsuleShape15setLocalScalingERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f2 = f_g0;
	r0 = heap32[(fp+1)];
	f3 = heapFloat[(r1+9)];
	f4 = heapFloat[(r1+8)];
	f5 = heapFloat[(r1+7)];
	r0 = r0 >> 2;
	f3 = f3+f0;
	f6 = heapFloat[(r1+5)];
	f4 = f4+f1;
	f7 = heapFloat[(r1+4)];
	f5 = f5+f2;
	f8 = heapFloat[(r1+3)];
	f9 = heapFloat[(r0+2)];
	f3 = f3/f6;
	f4 = f4/f7;
	f5 = f5/f8;
	f6 =                         0;
	if(f9 <f6) //_LBB424_2
{
	f9 = -f9;
}
	f7 = heapFloat[(r0+1)];
	if(f7 <f6) //_LBB424_5
{
	f7 = -f7;
}
	f8 = heapFloat[(r0)];
	if(f8 <f6) //_LBB424_8
{
	f8 = -f8;
}
	heapFloat[(r1+3)] = f8;
	heapFloat[(r1+4)] = f7;
	heapFloat[(r1+5)] = f9;
	f5 = f5*f8;
	f4 = f4*f7;
	f2 = f5-f2;
	heap32[(r1+6)] = 0;
	f3 = f3*f9;
	f1 = f4-f1;
	heapFloat[(r1+7)] = f2;
	f0 = f3-f0;
	heapFloat[(r1+8)] = f1;
	heapFloat[(r1+9)] = f0;
	heap32[(r1+10)] = 0;
	return;
}

function _ZN14btCapsuleShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB425_2
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN14btCapsuleShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	r1 = heap32[(fp+2)];
	heap32[(r0+2)] = 0;
	r1 = r1 >> 2;
	heap32[(r0+3)] = 0;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r1+1)];
	f2 = heapFloat[(r1+2)];
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	r1 = heap32[(fp+1)];
	f4 =   9.9999997473787516e-005;
	if(f3 >=f4) //_LBB427_2
{
	heapFloat[(g0)] = f3;
	f3 =                         1;
	sqrtf(i7);
	f3 = f3/f_g0;
	f0 = f0*f3;
	f1 = f1*f3;
	f2 = f2*f3;
}
else{
	f0 =                         1;
	f1 =                         0;
	f2 = f1;
}
	r2 = r1 >> 2;
	r3 = heap32[(r2+13)];
	r4 = (r3 + 2)|0;
	r4 = (r4 % 3)|0;
	r5 = (r1 + 28)|0;
	r4 = r4 << 2;
	r4 = (r5 + r4)|0;
	r4 = r4 >> 2;
	f3 = heapFloat[(r4)];
	r4 = sp + -16;
	heap32[(fp+-4)] = 0;
	r6 = r4 >> 2;
	r3 = r3 << 2;
	heap32[(r6+1)] = 0;
	r4 = (r4 + r3)|0;
	r3 = (r5 + r3)|0;
	heap32[(r6+2)] = 0;
	r4 = r4 >> 2;
	r3 = r3 >> 2;
	heap32[(r6+3)] = 0;
	heap32[(r4)] = heap32[(r3)];
	r3 = heap32[(r2)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+11)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	f5 = heapFloat[(r2+4)];
	f6 = heapFloat[(r2+3)];
	f7 = heapFloat[(r2+5)];
	f5 = f1*f5;
	f6 = f0*f6;
	f7 = f2*f7;
	f8 = heapFloat[(r6+1)];
	f5 = f5*f3;
	f9 = heapFloat[(fp+-4)];
	f6 = f6*f3;
	f10 = heapFloat[(r6+2)];
	f7 = f7*f3;
	f5 = f8+f5;
	f8 = f1*f_g0;
	f6 = f9+f6;
	f9 = f0*f_g0;
	f5 = f5-f8;
	f6 = f6-f9;
	f7 = f10+f7;
	f4 = f2*f_g0;
	f4 = f7-f4;
	f7 = f0*f6;
	f8 = f1*f5;
	f7 = f7+f8;
	f8 = f2*f4;
	f7 = f7+f8;
	f8 =       -999999984306749440;
	if(f7 >f8) //_LBB427_5
{
	heapFloat[(r0)] = f6;
	heapFloat[(r0+1)] = f5;
	heapFloat[(r0+2)] = f4;
	heap32[(r0+3)] = 0;
	f8 = f7;
}
	r3 = sp + -32;
	heap32[(fp+-8)] = 0;
	r4 = r3 >> 2;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	r5 = heap32[(r2+13)];
	r5 = r5 << 2;
	r6 = (r1 + r5)|0;
	r6 = r6 >> 2;
	f4 = heapFloat[(r6+7)];
	r3 = (r3 + r5)|0;
	r3 = r3 >> 2;
	f4 = -f4;
	heapFloat[(r3)] = f4;
	r3 = heap32[(r2)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+11)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	f5 = heapFloat[(r2+4)];
	f6 = heapFloat[(r2+3)];
	f7 = heapFloat[(r2+5)];
	f5 = f1*f5;
	f6 = f0*f6;
	f7 = f2*f7;
	f9 = heapFloat[(r4+1)];
	f5 = f5*f3;
	f10 = heapFloat[(fp+-8)];
	f6 = f6*f3;
	f11 = heapFloat[(r4+2)];
	f3 = f7*f3;
	f5 = f9+f5;
	f7 = f1*f_g0;
	f6 = f10+f6;
	f9 = f0*f_g0;
	f5 = f5-f7;
	f6 = f6-f9;
	f3 = f11+f3;
	f4 = f2*f_g0;
	f3 = f3-f4;
	f0 = f0*f6;
	f1 = f1*f5;
	f0 = f0+f1;
	f1 = f2*f3;
	f0 = f0+f1;
if(!(f0 <=f8)) //_LBB427_8
{
	heapFloat[(r0)] = f6;
	heapFloat[(r0+1)] = f5;
	heapFloat[(r0+2)] = f3;
	heap32[(r0+3)] = 0;
}
	return;
}

function _ZNK16btCollisionShape28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 12;
	r_g0 = r0;
	return;
}

function _ZNK16btCollisionShape27getContactBreakingThresholdEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f1 = heapFloat[(fp+1)];
	f0 = f_g0*f1;
	f_g0 = f0;
	return;
}

function _ZNK16btCollisionShape9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+10)];
	r3 = heap32[(fp)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	r5 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
if(!(r4 ==0)) //_LBB430_2
{
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+12)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	r0 = r3 >> 2;
	r0 = heap32[(r0+1)];
	heap32[(r5+1)] = r0;
	r0 = _2E_str200;
	r_g0 = r0;
	return;
}

function _ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r0;
	r3 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r4 = r3 >> 2;
	r5 = heap32[(r4)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+4)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r2 = r_g0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r5 = r2 >> 2;
	r1 = heap32[(r1+13)];
	r5 = heap32[(r5+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+5)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1346455635;
	heap32[(g0+4)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	return;
}

function _ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -112;var g0 = i7>>2; // save stack
	r0 = sp + -64;
	r1 = r0 >> 2;
	heap32[(fp+-16)] = 1065353216;
	heap32[(r1+1)] = 0;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 0;
	heap32[(r1+4)] = 0;
	heap32[(r1+5)] = 1065353216;
	heap32[(r1+6)] = 0;
	heap32[(r1+7)] = 0;
	heap32[(r1+8)] = 0;
	heap32[(r1+9)] = 0;
	heap32[(r1+10)] = 1065353216;
	heap32[(r1+11)] = 0;
	heap32[(r1+12)] = 0;
	heap32[(r1+13)] = 0;
	r2 = heap32[(fp)];
	heap32[(r1+14)] = 0;
	r3 = r2 >> 2;
	heap32[(r1+15)] = 0;
	r1 = heap32[(r3)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+2)];
	r3 = sp + -96;
	r4 = sp + -80;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = r3 >> 2;
	r1 = r4 >> 2;
	f0 = heapFloat[(r0+1)];
	f1 = heapFloat[(r1+1)];
	f2 = heapFloat[(fp+-24)];
	f3 = heapFloat[(fp+-20)];
	f2 = f2-f3;
	f0 = f0-f1;
	f1 = heapFloat[(r0+2)];
	f3 = heapFloat[(r1+2)];
	f1 = f1-f3;
	f2 = f2*f2;
	f0 = f0*f0;
	f0 = f2+f0;
	f1 = f1*f1;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	r2 = heap32[(fp+2)];
	f0 =                       0.5;
	sqrtf(i7);
	r2 = r2 >> 2;
	f1 = f_g0*f0;
	heapFloat[(r2)] = f1;
	f1 = heapFloat[(fp+-20)];
	f2 = heapFloat[(fp+-24)];
	r2 = heap32[(fp+1)];
	f1 = f1+f2;
	f2 = heapFloat[(r1+2)];
	f3 = heapFloat[(r0+2)];
	f4 = heapFloat[(r1+1)];
	f5 = heapFloat[(r0+1)];
	f4 = f4+f5;
	r0 = r2 >> 2;
	f1 = f1*f0;
	f2 = f2+f3;
	f3 = f4*f0;
	heapFloat[(r0)] = f1;
	f0 = f2*f0;
	heapFloat[(r0+1)] = f3;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK16btCollisionShape20getAngularMotionDiscEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+3)];
	r2 = sp + -16;
	r3 = sp + -20;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = r2 >> 2;
	f0 = heapFloat[(fp+-4)];
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r0+2)];
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 = heapFloat[(fp+-5)];
	f0 = f_g0+f1;
	f_g0 = f0;
	return;
}

function _ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+2)];
	r3 = heap32[(fp+5)];
	r4 = heap32[(fp+4)];
	r5 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r3;
	r5 = heap32[(fp+2)];
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r3 >> 2;
	r3 = r4 >> 2;
	r4 = r5 >> 2;
	f0 = heapFloat[(r4)];
	r5 = heap32[(fp+3)];
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r2+1)];
	f3 = heapFloat[(r2+2)];
	f4 = heapFloat[(r3)];
	f5 = heapFloat[(r3+1)];
	f6 = heapFloat[(r3+2)];
	f7 = heapFloat[(r4+2)];
	f8 = heapFloat[(r4+1)];
	f9 =                         0;
	if(f0 <=f9) //_LBB434_2
{
	f4 = f0+f4;
}
else{
	f1 = f0+f1;
}
	if(f8 <=f9) //_LBB434_5
{
	f5 = f8+f5;
}
else{
	f2 = f8+f2;
}
	if(f7 <=f9) //_LBB434_8
{
	f6 = f7+f6;
}
else{
	f3 = f7+f3;
}
	r4 = r5 >> 2;
	f0 = heapFloat[(r4)];
	f7 = heapFloat[(r4+1)];
	f8 = heapFloat[(r4+2)];
	f0 = f0*f0;
	f7 = f7*f7;
	f0 = f0+f7;
	f7 = f8*f8;
	f0 = f0+f7;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f_g0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	heapFloat[(r3)] = f4;
	heapFloat[(r3+1)] = f5;
	heapFloat[(r3+2)] = f6;
	heap32[(r3+3)] = 0;
	heapFloat[(r2)] = f1;
	heapFloat[(r2+1)] = f2;
	heapFloat[(r2+2)] = f3;
	heap32[(r2+3)] = 0;
	f0 = f0*f_g0;
	f1 = heapFloat[(r3)];
	f1 = f1-f0;
	heapFloat[(r3)] = f1;
	f1 = heapFloat[(r3+1)];
	f1 = f1-f0;
	heapFloat[(r3+1)] = f1;
	f1 = heapFloat[(r3+2)];
	f1 = f1-f0;
	heapFloat[(r3+2)] = f1;
	f1 = heapFloat[(r2)];
	f1 = f1+f0;
	heapFloat[(r2)] = f1;
	f1 = heapFloat[(r2+1)];
	f1 = f1+f0;
	heapFloat[(r2+1)] = f1;
	f1 = heapFloat[(r2+2)];
	f0 = f1+f0;
	heapFloat[(r2+2)] = f0;
	return;
}

function _ZN14btConcaveShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14btConcaveShape;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN14btConcaveShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14btConcaveShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZNK17btConvexHullShape7getNameEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _2E_str219;
	r_g0 = r0;
	return;
}

function _ZNK17btConvexHullShape28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 68;
	r_g0 = r0;
	return;
}

function _ZNK17btConvexHullShape12getNumPlanesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNK17btConvexHullShape9getVertexEiR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r2 = heap32[(r0+25)];
	r1 = r1 << 4;
	r1 = (r2 + r1)|0;
	r1 = r1 >> 2;
	r2 = heap32[(fp+2)];
	f0 = heapFloat[(r1+2)];
	f1 = heapFloat[(r0+5)];
	f2 = heapFloat[(r1+1)];
	f3 = heapFloat[(r0+4)];
	f4 = heapFloat[(r1)];
	f5 = heapFloat[(r0+3)];
	r0 = r2 >> 2;
	f4 = f4*f5;
	f2 = f2*f3;
	heapFloat[(r0)] = f4;
	f0 = f0*f1;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK17btConvexHullShape7getEdgeEiR9btVector3S1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r2 = heap32[(r0+23)];
	r3 = (r1 % r2)|0;
	r4 = heap32[(r0+25)];
	r3 = r3 << 4;
	r3 = (r4 + r3)|0;
	r3 = r3 >> 2;
	r4 = heap32[(fp+2)];
	f0 = heapFloat[(r3+2)];
	f1 = heapFloat[(r0+5)];
	f2 = heapFloat[(r3+1)];
	f3 = heapFloat[(r0+4)];
	f4 = heapFloat[(r3)];
	f5 = heapFloat[(r0+3)];
	r3 = r4 >> 2;
	f4 = f4*f5;
	f2 = f2*f3;
	heapFloat[(r3)] = f4;
	f0 = f0*f1;
	heapFloat[(r3+1)] = f2;
	r1 = (r1 + 1)|0;
	heapFloat[(r3+2)] = f0;
	heap32[(r3+3)] = 0;
	r1 = (r1 % r2)|0;
	r2 = heap32[(r0+25)];
	r1 = r1 << 4;
	r1 = (r2 + r1)|0;
	r1 = r1 >> 2;
	r2 = heap32[(fp+3)];
	f0 = heapFloat[(r1+2)];
	f1 = heapFloat[(r0+5)];
	f2 = heapFloat[(r1+1)];
	f3 = heapFloat[(r0+4)];
	f4 = heapFloat[(r1)];
	f5 = heapFloat[(r0+3)];
	r0 = r2 >> 2;
	f4 = f4*f5;
	f2 = f2*f3;
	heapFloat[(r0)] = f4;
	f0 = f0*f1;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK17btConvexHullShape11getNumEdgesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+23)];
	r_g0 = r0;
	return;
}

function _ZNK17btConvexHullShape14getNumVerticesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+23)];
	r_g0 = r0;
	return;
}

function _ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
	r1 = heap32[(fp+2)];
if(!(r0 <1)) //_LBB444_3
{
	r2 = (r1 + 12)|0;
	r3 = r0;
_3: while(true){
	r3 = (r3 + -1)|0;
	r4 = (r2 + 16)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = -581039253;
	r2 = r4;
	if(r3 !=0) //_LBB444_2
{
continue _3;
}
else{
break _3;
}
}
}
	r2 = heap32[(fp)];
	r2 = r2 >> 2;
	r3 = heap32[(r2+23)];
_6: do {
if(!(r3 <1)) //_LBB444_11
{
	r3 = heap32[(fp+1)];
	r1 = (r1 + 8)|0;
	r3 = (r3 + 8)|0;
	r4 = 0;
_8: while(true){
if(!(r0 <1)) //_LBB444_10
{
	r5 = heap32[(r2+25)];
	r6 = r4 << 4;
	r5 = (r5 + r6)|0;
	r5 = r5 >> 2;
	f0 = heapFloat[(r5+2)];
	f1 = heapFloat[(r2+5)];
	f2 = heapFloat[(r5+1)];
	f3 = heapFloat[(r2+4)];
	f4 = heapFloat[(r5)];
	f5 = heapFloat[(r2+3)];
	f0 = f0*f1;
	f1 = f2*f3;
	f2 = f4*f5;
	r5 = r3;
	r6 = r1;
	r7 = r0;
_12: while(true){
	r8 = r5 >> 2;
	f3 = heapFloat[(r8+-2)];
	f4 = heapFloat[(r8+-1)];
	f3 = f3*f2;
	f4 = f4*f1;
	f5 = heapFloat[(r8)];
	f3 = f3+f4;
	f4 = f5*f0;
	r8 = r6 >> 2;
	f3 = f3+f4;
	f4 = heapFloat[(r8+1)];
if(!(f4 >=f3)) //_LBB444_9
{
	heapFloat[(r8+-2)] = f2;
	heapFloat[(r8+-1)] = f1;
	heapFloat[(r8)] = f0;
	heapFloat[(r8+1)] = f3;
}
	r7 = (r7 + -1)|0;
	r6 = (r6 + 16)|0;
	r5 = (r5 + 16)|0;
if(!(r7 !=0)) //_LBB444_7
{
break _12;
}
}
}
	r4 = (r4 + 1)|0;
	r5 = heap32[(r2+23)];
	if(r5 >r4) //_LBB444_5
{
continue _8;
}
else{
break _6;
}
}
}
} while(0);
	return;
}

function _ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	r1 = heap32[(fp+1)];
	heap32[(r0+2)] = 0;
	r1 = r1 >> 2;
	heap32[(r0+3)] = 0;
	r2 = heap32[(r1+23)];
if(!(r2 <1)) //_LBB445_6
{
	r3 = heap32[(fp+2)];
	r3 = r3 >> 2;
	r4 = heap32[(r1+25)];
	f0 = heapFloat[(r1+5)];
	f1 = heapFloat[(r1+4)];
	f2 = heapFloat[(r1+3)];
	f3 = heapFloat[(r3)];
	f4 = heapFloat[(r3+1)];
	f5 = heapFloat[(r3+2)];
	r1 = 0;
	f6 =       -999999984306749440;
_3: while(true){
	r3 = r1 << 4;
	r3 = (r4 + r3)|0;
	r3 = r3 >> 2;
	f7 = heapFloat[(r3+1)];
	f8 = heapFloat[(r3)];
	f7 = f7*f1;
	f8 = f8*f2;
	f9 = heapFloat[(r3+2)];
	f9 = f9*f0;
	f10 = f3*f8;
	f11 = f4*f7;
	f10 = f10+f11;
	f11 = f5*f9;
	f10 = f10+f11;
	if(f10 >f6) //_LBB445_4
{
	heapFloat[(r0)] = f8;
	heapFloat[(r0+1)] = f7;
	heapFloat[(r0+2)] = f9;
	heap32[(r0+3)] = 0;
	f6 = f10;
}
	r1 = (r1 + 1)|0;
	if(r1 <r2) //_LBB445_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZNK17btConvexHullShape8isInsideERK9btVector3f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _2E_str10;
	r1 = _2E_str3222;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 173;
	_assert(i7);
}

function _ZNK17btConvexHullShape8getPlaneER9btVector3S1_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _2E_str10;
	r1 = _2E_str3222;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 167;
	_assert(i7);
}

function _ZN17btConvexHullShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17btConvexHullShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+25)];
if(!(r1 ==0)) //_LBB448_4
{
	r3 = heapU8[r0+104];
if(!(r3 ==0)) //_LBB448_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+25)] = 0;
}
	r1 = 1;
	heap8[r0+104] = r1;
	heap32[(r2+25)] = 0;
	r1 = _ZTV13btConvexShape;
	heap32[(r2+23)] = 0;
	r1 = (r1 + 8)|0;
	heap32[(r2+24)] = 0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB448_6
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN17btConvexHullShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17btConvexHullShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+25)];
if(!(r1 ==0)) //_LBB449_4
{
	r3 = heapU8[r0+104];
if(!(r3 ==0)) //_LBB449_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+25)] = 0;
}
	r1 = 1;
	heap8[r0+104] = r1;
	heap32[(r2+25)] = 0;
	r0 = _ZTV13btConvexShape;
	heap32[(r2+23)] = 0;
	r0 = (r0 + 8)|0;
	heap32[(r2+24)] = 0;
	heap32[(r2)] = r0;
	return;
}

function _ZN17btConvexHullShape15setLocalScalingERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r2+3)] = heap32[(r1)];
	heap32[(r2+4)] = heap32[(r1+1)];
	heap32[(r2+5)] = heap32[(r1+2)];
	heap32[(r2+6)] = heap32[(r1+3)];
	heap32[(g0)] = r0;
	_ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7);
	return;
}

function _ZNK17btConvexHullShape9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+10)];
	r3 = heap32[(fp)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	r5 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
if(!(r4 ==0)) //_LBB451_2
{
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+12)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
	r2 = r3 >> 2;
	r3 = heap32[(r2+1)];
	heap32[(r5+1)] = r3;
	heap32[(r5+7)] = heap32[(r2+7)];
	heap32[(r5+8)] = heap32[(r2+8)];
	heap32[(r5+9)] = heap32[(r2+9)];
	heap32[(r5+10)] = heap32[(r2+10)];
	heap32[(r5+3)] = heap32[(r2+3)];
	heap32[(r5+4)] = heap32[(r2+4)];
	heap32[(r5+5)] = heap32[(r2+5)];
	heap32[(r5+6)] = heap32[(r2+6)];
	heap32[(r5+11)] = heap32[(r2+11)];
	r3 = heap32[(r2+23)];
	heap32[(r5+15)] = r3;
	if(r3 ==0) //_LBB451_7
{
	heap32[(r5+13)] = 0;
	heap32[(r5+14)] = 0;
	r0 = _2E_str6224;
	r_g0 = r0;
	return;
}
else{
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	r6 = heap32[(r2+25)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	heap32[(r5+13)] = r_g0;
	heap32[(r5+14)] = 0;
	r5 = heap32[(r1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+4)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 16;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = r_g0;
if(!(r3 <1)) //_LBB451_6
{
	r4 = r5 >> 2;
	r4 = heap32[(r4+2)];
	r6 = 0;
_9: while(true){
	r7 = r6 << 4;
	r8 = heap32[(r2+25)];
	r9 = (r4 + r7)|0;
	r7 = (r8 + r7)|0;
	r8 = r9 >> 2;
	r7 = r7 >> 2;
	heap32[(r8)] = heap32[(r7)];
	heap32[(r8+1)] = heap32[(r7+1)];
	r6 = (r6 + 1)|0;
	heap32[(r8+2)] = heap32[(r7+2)];
	heap32[(r8+3)] = heap32[(r7+3)];
if(!(r3 !=r6)) //_LBB451_5
{
break _9;
}
}
}
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	r2 = heap32[(r2+25)];
	r3 = _2E_str5223;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r5 = _2E_str6224;
	r_g0 = r5;
	return;
}
}

function _ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+16)];
	r3 = heap32[(fp)];
	r4 = heap32[(fp+2)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	f1 =                         0;
if(!(f0 ==f1)) //_LBB452_2
{
	r2 = r4 >> 2;
	f0 = heapFloat[(r2)];
	f1 = heapFloat[(r2+1)];
	f2 = heapFloat[(r2+2)];
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	f4 =   1.4210854715202004e-014;
	f5 =                        -1;
	f0 = f3 < f4 ? f5 : f0;
	f1 = f3 < f4 ? f5 : f1;
	f2 = f3 < f4 ? f5 : f2;
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	f4 =                         1;
	f3 = f4/f_g0;
	heap32[(g0)] = r0;
	r0 = r3 >> 2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f0 = f0*f3;
	f0 = f0*f_g0;
	f5 = heapFloat[(r0)];
	f0 = f5+f0;
	f1 = f1*f3;
	heapFloat[(r0)] = f0;
	f0 = f1*f_g0;
	f1 = heapFloat[(r0+1)];
	f0 = f1+f0;
	f1 = f2*f3;
	heapFloat[(r0+1)] = f0;
	f0 = f1*f_g0;
	f1 = heapFloat[(r0+2)];
	f0 = f1+f0;
	heapFloat[(r0+2)] = f0;
}
	return;
}

function _ZN17btConvexHullShape8addPointERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+24)];
	r3 = heap32[(r1+23)];
	r4 = heap32[(fp+1)];
	if(r2 ==r3) //_LBB453_2
{
	r5 = 1;
	r6 = r3 << 1;
	r6 = r3 == 0 ? r5 : r6;
if(!(r2 >=r6)) //_LBB453_1
{
	if(r6 !=0) //_LBB453_5
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r7 = heap32[(r2)];
	r8 = r6 << 4;
	r7 = (r7 + 1)|0;
	r8 = r8 | 3;
	heap32[(r2)] = r7;
	r2 = (r8 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB453_7
{
	r7 = 0;
	r8 = (r2 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r2 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r2;
	r2 = r8;
}
}
else{
	r2 = 0;
}
	r7 = (r0 + 100)|0;
	if(r3 <1) //_LBB453_10
{
	r8 = r7 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_12: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 4;
	r11 = (r2 + r10)|0;
	r10 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = r10 >> 2;
	heap32[(r11)] = heap32[(r10)];
	heap32[(r11+1)] = heap32[(r10+1)];
	r8 = (r8 + 1)|0;
	heap32[(r11+2)] = heap32[(r10+2)];
	heap32[(r11+3)] = heap32[(r10+3)];
if(!(r3 !=r8)) //_LBB453_11
{
break _12;
}
}
	r7 = (r0 + 100)|0;
}
	if(r9 !=0) //_LBB453_15
{
	r8 = heapU8[r0+104];
	if(r8 !=0) //_LBB453_17
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r8 = heap32[(r3)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r3)] = r8;
	r3 = heap32[(r9+-1)];
	heap32[(g0)] = r3;
	free(i7);
	r3 = heap32[(r1+23)];
}
	r8 = r7 >> 2;
	heap32[(r8)] = 0;
}
	r7 = r7 >> 2;
	heap8[r0+104] = r5;
	heap32[(r7)] = r2;
	heap32[(r1+24)] = r6;
}
}
	r2 = r3 << 4;
	r3 = heap32[(r1+25)];
	r2 = (r3 + r2)|0;
	r2 = r2 >> 2;
	r3 = r4 >> 2;
	heap32[(r2)] = heap32[(r3)];
	heap32[(r2+1)] = heap32[(r3+1)];
	heap32[(r2+2)] = heap32[(r3+2)];
	heap32[(r2+3)] = heap32[(r3+3)];
	r2 = heap32[(r1+23)];
	r2 = (r2 + 1)|0;
	heap32[(r1+23)] = r2;
	heap32[(g0)] = r0;
	_ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7);
	return;
}

function _ZN20btAlignedObjectArrayI9btVector3E6resizeEiRKS0_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+1)];
	r3 = heap32[(fp+1)];
_1: do {
if(!(r2 >r3)) //_LBB454_20
{
if(!(r2 >=r3)) //_LBB454_20
{
	r4 = heap32[(r1+2)];
if(!(r4 >=r3)) //_LBB454_18
{
	if(r3 !=0) //_LBB454_5
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r6 = r3 << 4;
	r5 = (r5 + 1)|0;
	r6 = r6 | 3;
	heap32[(r4)] = r5;
	r4 = (r6 + 16)|0;
	heap32[(g0)] = r4;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB454_7
{
	r5 = 0;
	r6 = (r4 + 4)|0;
	r5 = (r5 - r6)|0;
	r5 = r5 & 15;
	r5 = (r4 + r5)|0;
	r6 = (r5 + 4)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = r4;
	r4 = r6;
}
}
else{
	r4 = 0;
}
	r5 = (r0 + 12)|0;
	if(r2 <1) //_LBB454_10
{
	r6 = r5 >> 2;
	r7 = heap32[(r6)];
}
else{
	r6 = 0;
_14: while(true){
	r7 = r5 >> 2;
	r7 = heap32[(r7)];
	r8 = r6 << 4;
	r9 = (r4 + r8)|0;
	r8 = (r7 + r8)|0;
	r9 = r9 >> 2;
	r8 = r8 >> 2;
	heap32[(r9)] = heap32[(r8)];
	heap32[(r9+1)] = heap32[(r8+1)];
	r6 = (r6 + 1)|0;
	heap32[(r9+2)] = heap32[(r8+2)];
	heap32[(r9+3)] = heap32[(r8+3)];
if(!(r2 !=r6)) //_LBB454_11
{
break _14;
}
}
	r5 = (r0 + 12)|0;
}
if(!(r7 ==0)) //_LBB454_17
{
	r6 = heapU8[r0+16];
if(!(r6 ==0)) //_LBB454_16
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r8 = heap32[(r6)];
	r8 = (r8 + 1)|0;
	r7 = r7 >> 2;
	heap32[(r6)] = r8;
	r6 = heap32[(r7+-1)];
	heap32[(g0)] = r6;
	free(i7);
}
	r6 = r5 >> 2;
	heap32[(r6)] = 0;
}
	r6 = 1;
	r5 = r5 >> 2;
	heap8[r0+16] = r6;
	heap32[(r5)] = r4;
	heap32[(r1+2)] = r3;
	if(r2 >=r3) //_LBB454_20
{
break _1;
}
}
	r0 = heap32[(fp+2)];
_25: while(true){
	r4 = r2 << 4;
	r5 = heap32[(r1+3)];
	r4 = (r5 + r4)|0;
	r4 = r4 >> 2;
	r5 = r0 >> 2;
	heap32[(r4)] = heap32[(r5)];
	heap32[(r4+1)] = heap32[(r5+1)];
	r2 = (r2 + 1)|0;
	heap32[(r4+2)] = heap32[(r5+2)];
	heap32[(r4+3)] = heap32[(r5+3)];
	if(r3 !=r2) //_LBB454_19
{
continue _25;
}
else{
break _1;
}
}
}
}
} while(0);
	heap32[(r1+1)] = r3;
	return;
}

function _ZN17btConvexHullShapeC1EPKfii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 1065353216;
	heap32[(r1+4)] = 1065353216;
	heap32[(r1+5)] = 1065353216;
	heap32[(r1+6)] = 0;
	heap32[(r1+11)] = 1025758986;
	heap32[(r1+13)] = 1065353216;
	heap32[(r1+14)] = 1065353216;
	heap32[(r1+15)] = 1065353216;
	heap32[(r1+16)] = 0;
	heap32[(r1+17)] = -1082130432;
	heap32[(r1+18)] = -1082130432;
	heap32[(r1+19)] = -1082130432;
	r2 = _ZTV17btConvexHullShape;
	r3 = 0;
	heap32[(r1+20)] = 0;
	r2 = (r2 + 8)|0;
	heap8[r0+84] = r3;
	r4 = 1;
	heap32[(r1)] = r2;
	heap8[r0+104] = r4;
	heap32[(r1+25)] = 0;
	heap32[(r1+23)] = 0;
	heap32[(r1+24)] = 0;
	heap32[(r1+1)] = 4;
	r2 = heap32[(fp+2)];
	r4 = (r0 + 88)|0;
	r5 = sp + -16;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r5;
	_ZN20btAlignedObjectArrayI9btVector3E6resizeEiRKS0_(i7);
if(!(r2 <1)) //_LBB455_3
{
	r4 = heap32[(fp+1)];
_3: while(true){
	r5 = r3 << 4;
	r6 = (r4 + r5)|0;
	r6 = r6 >> 2;
	r7 = heap32[(r1+25)];
	r5 = (r7 + r5)|0;
	f0 = heapFloat[(r6+2)];
	f1 = heapFloat[(r6+1)];
	r5 = r5 >> 2;
	heap32[(r5)] = heap32[(r6)];
	heapFloat[(r5+1)] = f1;
	r3 = (r3 + 1)|0;
	heapFloat[(r5+2)] = f0;
	heap32[(r5+3)] = 0;
	if(r2 !=r3) //_LBB455_2
{
continue _3;
}
else{
break _3;
}
}
}
	heap32[(g0)] = r0;
	_ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7);
	return;
}

function _ZN21btConvexInternalShape15setLocalScalingERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+2)];
	r1 = heap32[(fp)];
	f1 =                         0;
	if(f0 <f1) //_LBB456_2
{
	f0 = -f0;
}
	f2 = heapFloat[(r0+1)];
	if(f2 <f1) //_LBB456_5
{
	f2 = -f2;
}
	f3 = heapFloat[(r0)];
	if(f3 <f1) //_LBB456_8
{
	f3 = -f3;
}
	r0 = r1 >> 2;
	heapFloat[(r0+3)] = f3;
	heapFloat[(r0+4)] = f2;
	heapFloat[(r0+5)] = f0;
	heap32[(r0+6)] = 0;
	return;
}

function _ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
var __label__ = 0;
	i7 = sp + -112;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	r6 = 0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
_1: while(true){
	r2 = sp + -64;
	r7 = r2 >> 2;
	heap32[(fp+-16)] = 0;
	heap32[(r7+1)] = 0;
	r8 = r6 << 2;
	r2 = (r2 - r8)|0;
	heap32[(r7+2)] = 0;
	r2 = r2 >> 2;
	heap32[(r7+3)] = 0;
	heap32[(r2)] = 1065353216;
	r9 = r3 >> 2;
	r10 = heap32[(r1)];
	f1 = heapFloat[(fp+-16)];
	f2 = heapFloat[(r9)];
	f3 = heapFloat[(r7+1)];
	f4 = heapFloat[(r9+4)];
	r10 = r10 >> 2;
	f5 = heapFloat[(r9+1)];
	f6 = heapFloat[(r9+5)];
	f2 = f2*f1;
	f4 = f4*f3;
	f7 = heapFloat[(r7+2)];
	f8 = heapFloat[(r9+8)];
	f9 = heapFloat[(r9+2)];
	f10 = heapFloat[(r9+6)];
	f11 = heapFloat[(r9+10)];
	f12 = heapFloat[(r9+9)];
	r10 = heap32[(r10+15)];
	f5 = f5*f1;
	f6 = f6*f3;
	f2 = f2+f4;
	f4 = f8*f7;
	r11 = sp + -48;
	f1 = f9*f1;
	f3 = f10*f3;
	f5 = f5+f6;
	f6 = f12*f7;
	f2 = f2+f4;
	r12 = r11 >> 2;
	f1 = f1+f3;
	f3 = f11*f7;
	f4 = f5+f6;
	heapFloat[(fp+-12)] = f2;
	f1 = f1+f3;
	heapFloat[(r12+1)] = f4;
	heapFloat[(r12+2)] = f1;
	heap32[(r12+3)] = 0;
	r12 = sp + -80;
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r11;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r10 = r12 >> 2;
	f1 = heapFloat[(fp+-20)];
	f2 = heapFloat[(r9)];
	f3 = heapFloat[(r10+1)];
	f4 = heapFloat[(r9+1)];
	f5 = heapFloat[(r9+4)];
	f6 = heapFloat[(r9+5)];
	f2 = f2*f1;
	f4 = f4*f3;
	f7 = heapFloat[(r10+2)];
	f8 = heapFloat[(r9+2)];
	f9 = heapFloat[(r9+8)];
	f10 = heapFloat[(r9+9)];
	f11 = heapFloat[(r9+6)];
	f5 = f5*f1;
	f6 = f6*f3;
	f2 = f2+f4;
	f4 = f8*f7;
	f8 = heapFloat[(r9+10)];
	f1 = f9*f1;
	f3 = f10*f3;
	f5 = f5+f6;
	f6 = f11*f7;
	f2 = f2+f4;
	f4 = heapFloat[(r9+12)];
	f9 = heapFloat[(r9+14)];
	f10 = heapFloat[(r9+13)];
	r10 = sp + -96;
	f5 = f5+f6;
	f1 = f1+f3;
	f3 = f8*f7;
	f2 = f2+f4;
	f1 = f1+f3;
	f3 = f5+f10;
	heapFloat[(fp+-24)] = f2;
	r11 = r10 >> 2;
	f1 = f1+f9;
	heapFloat[(r11+1)] = f3;
	heapFloat[(r11+2)] = f1;
	r10 = (r10 - r8)|0;
	heap32[(r11+3)] = 0;
	r10 = r10 >> 2;
	r12 = (r5 - r8)|0;
	f1 = heapFloat[(r10)];
	r12 = r12 >> 2;
	f1 = f1+f0;
	heapFloat[(r12)] = f1;
	heap32[(r2)] = -1082130432;
	r2 = heap32[(r1)];
	f1 = heapFloat[(fp+-16)];
	f2 = heapFloat[(r9)];
	f3 = heapFloat[(r7+1)];
	f4 = heapFloat[(r9+4)];
	r2 = r2 >> 2;
	f5 = heapFloat[(r9+1)];
	f6 = heapFloat[(r9+5)];
	f2 = f2*f1;
	f4 = f4*f3;
	f7 = heapFloat[(r7+2)];
	f8 = heapFloat[(r9+8)];
	f9 = heapFloat[(r9+2)];
	f10 = heapFloat[(r9+6)];
	f11 = heapFloat[(r9+10)];
	f12 = heapFloat[(r9+9)];
	r2 = heap32[(r2+15)];
	f5 = f5*f1;
	f6 = f6*f3;
	f2 = f2+f4;
	f4 = f8*f7;
	r7 = sp + -16;
	f1 = f9*f1;
	f3 = f10*f3;
	f5 = f5+f6;
	f6 = f12*f7;
	f2 = f2+f4;
	r12 = r7 >> 2;
	f1 = f1+f3;
	f3 = f11*f7;
	f4 = f5+f6;
	heapFloat[(fp+-4)] = f2;
	f1 = f1+f3;
	heapFloat[(r12+1)] = f4;
	heapFloat[(r12+2)] = f1;
	heap32[(r12+3)] = 0;
	r12 = sp + -32;
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r7;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r12 >> 2;
	f1 = heapFloat[(fp+-8)];
	f2 = heapFloat[(r9)];
	f3 = heapFloat[(r2+1)];
	f4 = heapFloat[(r9+1)];
	f5 = heapFloat[(r9+4)];
	f6 = heapFloat[(r9+5)];
	f2 = f2*f1;
	f4 = f4*f3;
	f7 = heapFloat[(r2+2)];
	f8 = heapFloat[(r9+2)];
	f9 = heapFloat[(r9+8)];
	f10 = heapFloat[(r9+9)];
	f11 = heapFloat[(r9+6)];
	f5 = f5*f1;
	f6 = f6*f3;
	f2 = f2+f4;
	f4 = f8*f7;
	f8 = heapFloat[(r9+10)];
	f1 = f9*f1;
	f3 = f10*f3;
	f5 = f5+f6;
	f6 = f11*f7;
	f2 = f2+f4;
	f4 = heapFloat[(r9+12)];
	f9 = heapFloat[(r9+14)];
	f10 = heapFloat[(r9+13)];
	f5 = f5+f6;
	f1 = f1+f3;
	f3 = f8*f7;
	f2 = f2+f4;
	f1 = f1+f3;
	f3 = f5+f10;
	heapFloat[(fp+-24)] = f2;
	f1 = f1+f9;
	heapFloat[(r11+1)] = f3;
	heapFloat[(r11+2)] = f1;
	heap32[(r11+3)] = 0;
	r2 = (r4 - r8)|0;
	f1 = heapFloat[(r10)];
	r6 = (r6 + -1)|0;
	r2 = r2 >> 2;
	f1 = f1-f0;
	heapFloat[(r2)] = f1;
	if(r6 !=-3) //_LBB457_1
{
continue _1;
}
else{
break _1;
}
}
	return;
}

function _ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+16)];
	r3 = heap32[(fp)];
	r4 = heap32[(fp+2)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	f1 =                         0;
if(!(f0 ==f1)) //_LBB458_2
{
	r2 = r4 >> 2;
	f0 = heapFloat[(r2)];
	f1 = heapFloat[(r2+1)];
	f2 = heapFloat[(r2+2)];
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	f4 =   1.4210854715202004e-014;
	f5 =                        -1;
	f0 = f3 < f4 ? f5 : f0;
	f1 = f3 < f4 ? f5 : f1;
	f2 = f3 < f4 ? f5 : f2;
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	f4 =                         1;
	f3 = f4/f_g0;
	heap32[(g0)] = r0;
	r0 = r3 >> 2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f0 = f0*f3;
	f0 = f0*f_g0;
	f5 = heapFloat[(r0)];
	f0 = f5+f0;
	f1 = f1*f3;
	heapFloat[(r0)] = f0;
	f0 = f1*f_g0;
	f1 = heapFloat[(r0+1)];
	f0 = f1+f0;
	f1 = f2*f3;
	heapFloat[(r0+1)] = f0;
	f0 = f1*f_g0;
	f1 = heapFloat[(r0+2)];
	f0 = f1+f0;
	heapFloat[(r0+2)] = f0;
}
	return;
}

function _ZN13btConvexShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN13btConvexShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB460_2
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZL17convexHullSupportRK9btVector3PS0_iS1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+5)];
if(!(r0 <1)) //_LBB461_4
{
	f0 = heapFloat[(fp+8)];
	f1 = heapFloat[(fp+3)];
	f2 = heapFloat[(fp+7)];
	f3 = heapFloat[(fp+2)];
	f4 = heapFloat[(fp+6)];
	f5 = heapFloat[(fp+1)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+4)];
	f1 = f1*f0;
	f3 = f3*f2;
	f5 = f5*f4;
	r3 = 0;
	r4 = -1;
	f6 =       -999999984306749440;
_3: while(true){
	r5 = r3 << 4;
	r5 = (r2 + r5)|0;
	r5 = r5 >> 2;
	f7 = heapFloat[(r5)];
	f8 = heapFloat[(r5+1)];
	f7 = f5*f7;
	f8 = f3*f8;
	f9 = heapFloat[(r5+2)];
	f7 = f7+f8;
	f8 = f1*f9;
	f7 = f7+f8;
	r5 = (r3 + 1)|0;
	r4 = f7 > f6 ? r3 : r4;
	f6 = f7 > f6 ? f7 : f6;
	r3 = r5;
if(!(r0 !=r5)) //_LBB461_2
{
break _3;
}
}
	if(r4 >-1) //_LBB461_5
{
	r0 = r4 << 4;
	r0 = (r2 + r0)|0;
	r0 = r0 >> 2;
	f1 = heapFloat[(r0)];
	f3 = heapFloat[(r0+2)];
	f5 = heapFloat[(r0+1)];
	r0 = r1 >> 2;
	f1 = f1*f4;
	f2 = f5*f2;
	heapFloat[(r0)] = f1;
	f0 = f3*f0;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}
}
	r1 = _2E_str6249;
	r2 = _2E_str7250;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 108;
	_assert(i7);
}

function _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
var __label__ = 0;
	i7 = sp + -120;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+1)];
	r3 = heap32[(fp)];
	r4 = heap32[(fp+2)];
_1: do {
	if(r2 >4) //_LBB462_4
{
	if(r2 >9) //_LBB462_7
{
	if(r2 ==10) //_LBB462_32
{
	r2 = heap32[(r1+13)];
	r5 = (r2 + 2)|0;
	r4 = r4 >> 2;
	r5 = (r5 % 3)|0;
	f0 = heapFloat[(r4)];
	f1 = heapFloat[(r4+1)];
	r2 = r2 << 2;
	r0 = (r0 + 28)|0;
	r5 = r5 << 2;
	f2 = heapFloat[(r4+2)];
	r4 = (r0 + r2)|0;
	r0 = (r0 + r5)|0;
	f3 = f0*f0;
	f4 = f1*f1;
	r4 = r4 >> 2;
	r0 = r0 >> 2;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	f4 = heapFloat[(r4)];
	f5 = heapFloat[(r0)];
	f6 =   9.9999997473787516e-005;
	if(f3 >=f6) //_LBB462_34
{
	heapFloat[(g0)] = f3;
	f3 =                         1;
	sqrtf(i7);
	f3 = f3/f_g0;
	f0 = f0*f3;
	f1 = f1*f3;
	f2 = f2*f3;
}
else{
	f0 =                         1;
	f1 =                         0;
	f2 = f1;
}
	r0 = sp + -64;
	r4 = r0 >> 2;
	heap32[(fp+-16)] = 0;
	heap32[(r4+1)] = 0;
	r0 = (r0 + r2)|0;
	heap32[(r4+2)] = 0;
	r0 = r0 >> 2;
	heap32[(r4+3)] = 0;
	heapFloat[(r0)] = f4;
	f3 = heapFloat[(r1+4)];
	f6 = heapFloat[(r1+3)];
	f7 = heapFloat[(r1+5)];
	f3 = f1*f3;
	f6 = f0*f6;
	f8 = heapFloat[(r1+11)];
	f7 = f2*f7;
	f3 = f3*f5;
	f9 = heapFloat[(r4+1)];
	f6 = f6*f5;
	f10 = heapFloat[(fp+-16)];
	f5 = f7*f5;
	f7 = heapFloat[(r4+2)];
	f11 = f1*f8;
	f9 = f9+f3;
	f12 = f0*f8;
	f10 = f10+f6;
	f9 = f9-f11;
	f10 = f10-f12;
	f8 = f2*f8;
	f7 = f7+f5;
	f7 = f7-f8;
	f13 = f0*f10;
	f14 = f1*f9;
	f13 = f13+f14;
	f14 = f2*f7;
	f13 = f13+f14;
	f14 =       -999999984306749440;
	if(f13 >f14) //_LBB462_37
{
	f14 = f13;
}
else{
	f10 =                         0;
	f9 = f10;
	f7 = f10;
}
	r0 = sp + -80;
	r1 = r0 >> 2;
	heap32[(fp+-20)] = 0;
	heap32[(r1+1)] = 0;
	r0 = (r0 + r2)|0;
	heap32[(r1+2)] = 0;
	r0 = r0 >> 2;
	f4 = -f4;
	heap32[(r1+3)] = 0;
	heapFloat[(r0)] = f4;
	f4 = heapFloat[(r1+1)];
	f13 = heapFloat[(fp+-20)];
	f15 = heapFloat[(r1+2)];
	f3 = f4+f3;
	f4 = f13+f6;
	f4 = f4-f12;
	f3 = f3-f11;
	f5 = f15+f5;
	f0 = f0*f4;
	f1 = f1*f3;
	f5 = f5-f8;
	f0 = f0+f1;
	f1 = f2*f5;
	f0 = f0+f1;
	r0 = r3 >> 2;
	f1 = f0 > f14 ? f4 : f10;
	f2 = f0 > f14 ? f3 : f9;
	heapFloat[(r0)] = f1;
	f0 = f0 > f14 ? f5 : f7;
__label__ = 11;
break _1;
}
else{
	if(r2 ==13) //_LBB462_16
{
	r0 = sp + -16;
	r2 = r0 >> 2;
	heap32[(fp+-4)] = heap32[(r1+7)];
	heap32[(r2+1)] = heap32[(r1+8)];
	heap32[(r2+2)] = heap32[(r1+9)];
	r4 = r4 >> 2;
	heap32[(r2+3)] = heap32[(r1+10)];
	r2 = sp + -32;
	heap32[(fp+-8)] = heap32[(r4)];
	f0 = heapFloat[(r4+1)];
	r5 = r2 >> 2;
	heapFloat[(r5+1)] = f0;
	f1 = heapFloat[(r4+2)];
	heapFloat[(r5+2)] = f1;
	heap32[(r5+3)] = 0;
	r1 = heap32[(r1+13)];
	if(r1 ==2) //_LBB462_21
{
	r4 = 0;
	r5 = 2;
	r6 = 1;
	f1 = f0;
}
else{
	if(r1 ==1) //_LBB462_20
{
	r4 = 0;
	r5 = 1;
	r6 = 2;
}
else{
	if(r1 !=0) //_LBB462_22
{
	r0 = _2E_str10;
	r1 = _2E_str7250;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 175;
	_assert(i7);
}
else{
	r4 = 1;
	r5 = 0;
	r6 = 2;
}
}
}
	r1 = r1 << 2;
	r4 = r4 << 2;
	r7 = (r0 + r4)|0;
	r0 = (r0 + r1)|0;
	r1 = (r2 + r4)|0;
	r7 = r7 >> 2;
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	f0 = heapFloat[(r1)];
	f2 = heapFloat[(r7)];
	f3 = heapFloat[(r0)];
	f4 = f0*f0;
	f5 = f1*f1;
	f4 = f4+f5;
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	f4 = f_g0;
	f5 =                         0;
	if(f4 ==f5) //_LBB462_28
{
	r0 = sp + -48;
	r1 = (r0 + r4)|0;
	r4 = r5 << 2;
	r2 = (r2 + r4)|0;
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	heapFloat[(r1)] = f2;
	f0 = heapFloat[(r2)];
	if(f0 <f5) //_LBB462_30
{
	f3 = -f3;
}
	r1 = r6 << 2;
	r4 = (r0 + r4)|0;
	r1 = (r0 + r1)|0;
	r4 = r4 >> 2;
	r1 = r1 >> 2;
	heapFloat[(r4)] = f3;
	r3 = r3 >> 2;
	heap32[(r1)] = 0;
	r0 = r0 >> 2;
	heap32[(r3)] = heap32[(fp+-12)];
	heap32[(r3+1)] = heap32[(r0+1)];
	heap32[(r3+2)] = heap32[(r0+2)];
	heap32[(r3+3)] = 0;
	return;
}
else{
	r0 = sp + -48;
	r4 = (r0 + r4)|0;
	f2 = f2/f4;
	r1 = r5 << 2;
	r2 = (r2 + r1)|0;
	r4 = r4 >> 2;
	f0 = f0*f2;
	r2 = r2 >> 2;
	heapFloat[(r4)] = f0;
	f0 = heapFloat[(r2)];
	if(f0 <f5) //_LBB462_26
{
	f3 = -f3;
}
	r4 = r6 << 2;
	r1 = (r0 + r1)|0;
	r4 = (r0 + r4)|0;
	r1 = r1 >> 2;
	r4 = r4 >> 2;
	f2 = f1*f2;
	heapFloat[(r1)] = f3;
	r1 = r3 >> 2;
	heapFloat[(r4)] = f2;
	r4 = r0 >> 2;
	heap32[(r1)] = heap32[(fp+-12)];
	heap32[(r1+1)] = heap32[(r4+1)];
	heap32[(r1+2)] = heap32[(r4+2)];
	heap32[(r1+3)] = 0;
	return;
}
}
else{
__label__ = 40;
break _1;
}
}
}
else{
	if(r2 ==5) //_LBB462_39
{
	r0 = r4 >> 2;
	f0 = heapFloat[(r1+5)];
	r4 = heap32[(r1+22)];
__label__ = 38;
break _1;
}
else{
	if(r2 ==8) //_LBB462_9
{
	r0 = r3 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	heap32[(r0+2)] = 0;
	heap32[(r0+3)] = 0;
	return;
}
else{
__label__ = 40;
break _1;
}
}
}
}
else{
	if(r2 ==0) //_LBB462_10
{
	r0 = r4 >> 2;
	f0 = heapFloat[(r1+7)];
	f1 = heapFloat[(r1+9)];
	f2 = heapFloat[(r1+8)];
	f3 =                         0;
	f4 = -f0;
	f5 = heapFloat[(r0)];
	f6 = heapFloat[(r0+2)];
	f7 = heapFloat[(r0+1)];
	f8 = -f2;
	r0 = r3 >> 2;
	f0 = f5 < f3 ? f4 : f0;
	f4 = -f1;
	f2 = f7 < f3 ? f8 : f2;
	heapFloat[(r0)] = f0;
	f0 = f6 < f3 ? f4 : f1;
__label__ = 11;
break _1;
}
else{
	if(r2 ==1) //_LBB462_12
{
	r4 = r4 >> 2;
	f0 = heapFloat[(r1+13)];
	f1 = heapFloat[(r4)];
	f2 = heapFloat[(r1+17)];
	f3 = heapFloat[(r1+21)];
	f4 = heapFloat[(r1+14)];
	f5 = heapFloat[(r4+1)];
	f6 = heapFloat[(r1+18)];
	f7 = heapFloat[(r1+22)];
	f0 = f1*f0;
	f4 = f5*f4;
	f8 = heapFloat[(r1+15)];
	f9 = heapFloat[(r4+2)];
	f10 = heapFloat[(r1+19)];
	f11 = heapFloat[(r1+23)];
	f2 = f1*f2;
	f6 = f5*f6;
	f1 = f1*f3;
	f3 = f5*f7;
	f0 = f0+f4;
	f4 = f9*f8;
	f2 = f2+f6;
	f5 = f9*f10;
	f1 = f1+f3;
	f3 = f9*f11;
	f0 = f0+f4;
	f2 = f2+f5;
	f1 = f1+f3;
	if(f0 >=f2) //_LBB462_14
{
	r1 = 2;
	r4 = 0;
	r1 = f0 < f1 ? r1 : r4;
}
else{
	r1 = 2;
	r4 = 1;
	r1 = f2 < f1 ? r1 : r4;
}
	r1 = r1 << 4;
	r0 = (r0 + r1)|0;
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+15)];
	f1 = heapFloat[(r0+14)];
	r1 = r3 >> 2;
	heap32[(r1)] = heap32[(r0+13)];
	heapFloat[(r1+1)] = f1;
	heapFloat[(r1+2)] = f0;
	heap32[(r1+3)] = 0;
	return;
}
else{
	if(r2 ==4) //_LBB462_41
{
	r0 = r4 >> 2;
	f0 = heapFloat[(r1+5)];
	r4 = heap32[(r1+25)];
__label__ = 38;
}
else{
__label__ = 40;
}
}
}
}
} while(0);
switch(__label__ ){//multiple entries
case 11:
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
break;
case 40:
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+16)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
break;
case 38:
	r2 = heap32[(r1+23)];
	f1 = heapFloat[(r0)];
	f2 = heapFloat[(r0+1)];
	f3 = heapFloat[(r0+2)];
	f4 = heapFloat[(r1+3)];
	f5 = heapFloat[(r1+4)];
	heap32[(g0)] = r3;
	heapFloat[(g0+1)] = f1;
	heapFloat[(g0+2)] = f2;
	heapFloat[(g0+3)] = f3;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r2;
	heapFloat[(g0+6)] = f4;
	heapFloat[(g0+7)] = f5;
	heapFloat[(g0+8)] = f0;
	_ZL17convexHullSupportRK9btVector3PS0_iS1_(i7);
	return;
break;
}
}

function _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0)];
	r1 = sp + -32;
	heapFloat[(fp+-8)] = f0;
	f1 = heapFloat[(r0+1)];
	r2 = r1 >> 2;
	heapFloat[(r2+1)] = f1;
	f2 = heapFloat[(r0+2)];
	r3 = heap32[(fp)];
	r4 = heap32[(fp+1)];
	heapFloat[(r2+2)] = f2;
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	heap32[(r2+3)] = heap32[(r0+3)];
	f3 = f3+f4;
	f4 =   1.4210854715202004e-014;
	if(f3 <f4) //_LBB463_2
{
	heap32[(fp+-8)] = -1082130432;
	heap32[(r2+1)] = -1082130432;
	f2 =                        -1;
	heap32[(r2+2)] = -1082130432;
	heap32[(r2+3)] = 0;
	f1 = f2;
	f0 = f2;
}
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	f0 = f1/f_g0;
	f1 = heapFloat[(fp+-8)];
	f1 = f1*f0;
	heapFloat[(fp+-8)] = f1;
	f2 = heapFloat[(r2+1)];
	f2 = f2*f0;
	heapFloat[(r2+1)] = f2;
	f3 = heapFloat[(r2+2)];
	f0 = f3*f0;
	r0 = r4 >> 2;
	heapFloat[(r2+2)] = f0;
	r5 = heap32[(r0+1)];
_4: do {
	if(r5 >7) //_LBB463_7
{
	if(r5 ==13) //_LBB463_13
{
	f3 = heapFloat[(r0+11)];
__label__ = 16;
break _4;
}
else{
	if(r5 ==10) //_LBB463_14
{
	f3 = heapFloat[(r0+11)];
__label__ = 16;
break _4;
}
else{
	if(r5 !=8) //_LBB463_16
{
__label__ = 15;
break _4;
}
else{
	f3 = heapFloat[(r0+7)];
	f4 = heapFloat[(r0+3)];
	f3 = f3*f4;
__label__ = 16;
break _4;
}
}
}
}
else{
	if(r5 ==0) //_LBB463_11
{
	f3 = heapFloat[(r0+11)];
__label__ = 16;
break _4;
}
else{
	if(r5 ==1) //_LBB463_12
{
	f3 = heapFloat[(r0+11)];
__label__ = 16;
}
else{
	r5 = (r5 + -4)|0;
	if(uint(r5) <uint(2)) //_LBB463_15
{
	f3 = heapFloat[(r0+11)];
__label__ = 16;
}
else{
__label__ = 15;
}
}
}
}
} while(0);
if (__label__ == 15){
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+11)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	f3 = f_g0;
	f0 = heapFloat[(r2+2)];
	f2 = heapFloat[(r2+1)];
	f1 = heapFloat[(fp+-8)];
}
	r0 = sp + -16;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7);
	r0 = r0 >> 2;
	f1 = f1*f3;
	f4 = heapFloat[(fp+-4)];
	f5 = heapFloat[(r0+2)];
	f6 = heapFloat[(r0+1)];
	f2 = f2*f3;
	r0 = r3 >> 2;
	f1 = f4+f1;
	f0 = f0*f3;
	f2 = f6+f2;
	heapFloat[(r0)] = f1;
	f0 = f5+f0;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btInternalTriangleIndexCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btInternalTriangleIndexCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	f0 =        999999984306749440;
	f1 = heapFloat[(r0)];
	f2 = heapFloat[(r0+1)];
	f3 =       -999999984306749440;
	f4 = heapFloat[(r0+2)];
	f5 = heapFloat[(r0+3)];
	f6 =                         0;
	r1 = heap32[(r1+1)];
	f7 = f1 < f0 ? f1 : f0;
	f8 = heapFloat[(r0+4)];
	f1 = f1 > f3 ? f1 : f3;
	f9 = f2 < f0 ? f2 : f0;
	f10 = heapFloat[(r0+5)];
	f2 = f2 > f3 ? f2 : f3;
	f0 = f4 < f0 ? f4 : f0;
	f11 = heapFloat[(r0+6)];
	f3 = f4 > f3 ? f4 : f3;
	f4 = f5 < f6 ? f5 : f6;
	f12 = heapFloat[(r0+7)];
	f5 = f5 > f6 ? f5 : f6;
	r2 = r1 >> 2;
	f6 = f8 < f7 ? f8 : f7;
	f7 = heapFloat[(r0+8)];
	f1 = f1 < f8 ? f8 : f1;
	f8 = f10 < f9 ? f10 : f9;
	f9 = heapFloat[(r0+9)];
	f2 = f2 < f10 ? f10 : f2;
	f0 = f11 < f0 ? f11 : f0;
	f10 = heapFloat[(r0+10)];
	f3 = f3 < f11 ? f11 : f3;
	f4 = f12 < f4 ? f12 : f4;
	f11 = heapFloat[(r0+11)];
	f5 = f5 < f12 ? f12 : f5;
	r0 = heap32[(r2+2)];
	r3 = heap32[(r2+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	f6 = f7 < f6 ? f7 : f6;
	f8 = f9 < f8 ? f9 : f8;
	f0 = f10 < f0 ? f10 : f0;
	f4 = f11 < f4 ? f11 : f4;
	f1 = f1 < f7 ? f7 : f1;
	f2 = f2 < f9 ? f9 : f2;
	f3 = f3 < f10 ? f10 : f3;
	f5 = f5 < f11 ? f11 : f5;
	if(r0 ==r3) //_LBB466_2
{
	r6 = 1;
	r7 = r3 << 1;
	r7 = r3 == 0 ? r6 : r7;
if(!(r0 >=r7)) //_LBB466_1
{
	if(r7 !=0) //_LBB466_5
{
	r0 = gNumAlignedAllocs;
	r0 = r0 >> 2;
	r8 = heap32[(r0)];
	r8 = (r8 + 1)|0;
	r9 = r7 << 6;
	heap32[(r0)] = r8;
	r0 = r9 | 19;
	heap32[(g0)] = r0;
	malloc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB466_7
{
	r3 = 0;
	r8 = (r0 + 4)|0;
	r3 = (r3 - r8)|0;
	r3 = r3 & 15;
	r3 = (r0 + r3)|0;
	r8 = r3 >> 2;
	heap32[(r8)] = r0;
	r0 = (r3 + 4)|0;
	r3 = heap32[(r2+1)];
}
}
else{
	r0 = 0;
}
if(!(r3 <1)) //_LBB466_11
{
	r8 = 0;
_11: while(true){
	r9 = heap32[(r2+3)];
	r10 = (r0 + r8)|0;
	r9 = (r9 + r8)|0;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = 64;
	r3 = (r3 + -1)|0;
	r8 = (r8 + 64)|0;
	memcpy(i7);
if(!(r3 !=0)) //_LBB466_10
{
break _11;
}
}
}
	r3 = heap32[(r2+3)];
if(!(r3 ==0)) //_LBB466_15
{
	r8 = heapU8[r1+16];
if(!(r8 ==0)) //_LBB466_14
{
	r8 = gNumAlignedFree;
	r8 = r8 >> 2;
	r9 = heap32[(r8)];
	r9 = (r9 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r8)] = r9;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+3)] = 0;
}
	heap8[r1+16] = r6;
	heap32[(r2+3)] = r0;
	heap32[(r2+2)] = r7;
	r3 = heap32[(r2+1)];
}
}
	r0 = r3 << 6;
	r1 = heap32[(r2+3)];
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	heapFloat[(r0)] = f6;
	heapFloat[(r0+1)] = f8;
	heapFloat[(r0+2)] = f0;
	heapFloat[(r0+3)] = f4;
	heapFloat[(r0+4)] = f1;
	heapFloat[(r0+5)] = f2;
	heapFloat[(r0+6)] = f3;
	heapFloat[(r0+7)] = f5;
	heap32[(r0+8)] = -1;
	heap32[(r0+9)] = r4;
	heap32[(r0+10)] = r5;
	r0 = heap32[(r2+1)];
	r0 = (r0 + 1)|0;
	heap32[(r2+1)] = r0;
	return;
}

function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btInternalTriangleIndexCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btInternalTriangleIndexCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -64;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	if(r0 <1024) //_LBB469_2
{
	r1 = heap32[(fp+3)];
	if(r1 <2097152) //_LBB469_4
{
	if(r1 >-1) //_LBB469_6
{
	r2 = heap32[(fp)];
	r3 = heap32[(fp+1)];
	r4 = sp + -32;
	r5 = r4 >> 2;
	heap32[(fp+-8)] = 1566444395;
	heap32[(r5+1)] = 1566444395;
	heap32[(r5+2)] = 1566444395;
	r6 = sp + -48;
	heap32[(r5+3)] = 0;
	r7 = r6 >> 2;
	heap32[(fp+-12)] = -581039253;
	heap32[(r7+1)] = -581039253;
	heap32[(r7+2)] = -581039253;
	r3 = r3 >> 2;
	heap32[(r7+3)] = 0;
	f0 = heapFloat[(r3)];
	f1 =        999999984306749440;
	if(f0 <f1) //_LBB469_8
{
	heapFloat[(fp+-8)] = f0;
	f2 = f0;
}
else{
	f2 = f1;
}
	f3 = heapFloat[(r3+1)];
	if(f3 <f1) //_LBB469_11
{
	heapFloat[(r5+1)] = f3;
	f1 = f3;
}
else{
	f1 =        999999984306749440;
}
	f4 = heapFloat[(r3+2)];
	f5 =        999999984306749440;
	if(f4 <f5) //_LBB469_14
{
	heapFloat[(r5+2)] = f4;
	f5 = f4;
}
	f6 = heapFloat[(r3+3)];
	f7 =                         0;
	if(f6 <f7) //_LBB469_17
{
	heapFloat[(r5+3)] = f6;
	f7 = f6;
}
	f8 =       -999999984306749440;
	if(f0 >f8) //_LBB469_20
{
	heapFloat[(fp+-12)] = f0;
}
else{
	f0 = f8;
}
	if(f3 >f8) //_LBB469_23
{
	heapFloat[(r7+1)] = f3;
}
else{
	f3 =       -999999984306749440;
}
	f8 =       -999999984306749440;
	if(f4 >f8) //_LBB469_26
{
	heapFloat[(r7+2)] = f4;
	f8 = f4;
}
	f4 =                         0;
	if(f6 >f4) //_LBB469_29
{
	heapFloat[(r7+3)] = f6;
	f4 = f6;
}
	f6 = heapFloat[(r3+4)];
	if(f6 <f2) //_LBB469_32
{
	heapFloat[(fp+-8)] = f6;
	f2 = f6;
}
	f9 = heapFloat[(r3+5)];
	if(f9 <f1) //_LBB469_35
{
	heapFloat[(r5+1)] = f9;
	f1 = f9;
}
	f10 = heapFloat[(r3+6)];
	if(f10 <f5) //_LBB469_38
{
	heapFloat[(r5+2)] = f10;
	f5 = f10;
}
	f11 = heapFloat[(r3+7)];
	if(f11 <f7) //_LBB469_41
{
	heapFloat[(r5+3)] = f11;
	f7 = f11;
}
	if(f0 <f6) //_LBB469_44
{
	heapFloat[(fp+-12)] = f6;
	f0 = f6;
}
	if(f3 <f9) //_LBB469_47
{
	heapFloat[(r7+1)] = f9;
	f3 = f9;
}
	if(f8 <f10) //_LBB469_50
{
	heapFloat[(r7+2)] = f10;
	f8 = f10;
}
	if(f4 <f11) //_LBB469_53
{
	heapFloat[(r7+3)] = f11;
	f4 = f11;
}
	f6 = heapFloat[(r3+8)];
	if(f6 <f2) //_LBB469_56
{
	heapFloat[(fp+-8)] = f6;
	f2 = f6;
}
	f9 = heapFloat[(r3+9)];
	if(f9 <f1) //_LBB469_59
{
	heapFloat[(r5+1)] = f9;
	f1 = f9;
}
	f10 = heapFloat[(r3+10)];
	if(f10 <f5) //_LBB469_62
{
	heapFloat[(r5+2)] = f10;
	f5 = f10;
}
	f11 = heapFloat[(r3+11)];
if(!(f11 >=f7)) //_LBB469_65
{
	heapFloat[(r5+3)] = f11;
}
	if(f0 <f6) //_LBB469_67
{
	heapFloat[(fp+-12)] = f6;
	f0 = f6;
}
	if(f3 <f9) //_LBB469_70
{
	heapFloat[(r7+1)] = f9;
	f3 = f9;
}
	if(f8 <f10) //_LBB469_73
{
	heapFloat[(r7+2)] = f10;
	f8 = f10;
}
if(!(f4 >=f11)) //_LBB469_76
{
	heapFloat[(r7+3)] = f11;
}
	f4 = f0-f2;
	f6 =     0.0020000000949949026;
if(!(f4 >=f6)) //_LBB469_78
{
	f4 =     0.0010000000474974513;
	f0 = f0+f4;
	f4 =    -0.0010000000474974513;
	f2 = f2+f4;
	heapFloat[(fp+-12)] = f0;
	heapFloat[(fp+-8)] = f2;
}
	f0 = f3-f1;
if(!(f0 >=f6)) //_LBB469_80
{
	f0 =     0.0010000000474974513;
	f2 =    -0.0010000000474974513;
	f0 = f3+f0;
	f1 = f1+f2;
	heapFloat[(r7+1)] = f0;
	heapFloat[(r5+1)] = f1;
}
	f0 = f8-f5;
if(!(f0 >=f6)) //_LBB469_82
{
	f0 =     0.0010000000474974513;
	f1 =    -0.0010000000474974513;
	f0 = f8+f0;
	f1 = f5+f1;
	heapFloat[(r7+2)] = f0;
	heapFloat[(r5+2)] = f1;
}
	r2 = r2 >> 2;
	r3 = heap32[(r2+2)];
	r5 = sp + -16;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = 0;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
	r3 = heap32[(r2+2)];
	r4 = (r5 + 6)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = 1;
	r0 = r0 << 21;
	r0 = r0 | r1;
	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
	r1 = r5 >> 2;
	heap32[(r1+3)] = r0;
	r1 = heap32[(r2+1)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+1)];
	r4 = heap32[(r2+2)];
	if(r4 ==r3) //_LBB469_84
{
	r4 = 1;
	r5 = r3 << 1;
	r3 = r3 == 0 ? r4 : r5;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
	r3 = heap32[(r2+1)];
}
	r1 = heap32[(r2+3)];
	r4 = heapU16[(sp+-16)>>1];
	r3 = r3 << 4;
	heap16[(r1+r3)>>1] = r4;
	r1 = (r1 + r3)|0;
	r3 = heapU16[(sp+-14)>>1];
	heap16[(r1+2)>>1] = r3;
	r3 = heapU16[(sp+-12)>>1];
	heap16[(r1+4)>>1] = r3;
	r3 = heapU16[(sp+-10)>>1];
	heap16[(r1+6)>>1] = r3;
	r3 = heapU16[(sp+-8)>>1];
	heap16[(r1+8)>>1] = r3;
	r3 = heapU16[(sp+-6)>>1];
	r4 = r1 >> 2;
	heap16[(r1+10)>>1] = r3;
	heap32[(r4+3)] = r0;
	r0 = heap32[(r2+1)];
	r0 = (r0 + 1)|0;
	heap32[(r2+1)] = r0;
	return;
}
else{
	r0 = _2E_str20316;
	r1 = _2E_str10306;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 103;
	_assert(i7);
}
}
else{
	r0 = _2E_str19315;
	r1 = _2E_str10306;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 101;
	_assert(i7);
}
}
else{
	r0 = _2E_str18314;
	r1 = _2E_str10306;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 100;
	_assert(i7);
}
}

function _ZNK14btOptimizedBvh16serializeInPlaceEPvjb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r3;
	_ZNK14btQuantizedBvh9serializeEPvjb(i7);
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZN14btOptimizedBvhD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14btOptimizedBvh;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN14btQuantizedBvhD2Ev(i7);
if(!(r0 ==0)) //_LBB471_2
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN14btOptimizedBvhD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14btOptimizedBvh;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN14btQuantizedBvhD2Ev(i7);
	return;
}

function _ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -112;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	r3 = sp + -64;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	r2 = r3 >> 2;
	heap32[(fp+-16)] = 1065353216;
	heap32[(r2+1)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	heap32[(r2+4)] = 0;
	heap32[(r2+5)] = 1065353216;
	heap32[(r2+6)] = 0;
	heap32[(r2+7)] = 0;
	heap32[(r2+8)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 1065353216;
	heap32[(r2+11)] = 0;
	heap32[(r2+12)] = 0;
	heap32[(r2+13)] = 0;
	heap32[(r2+14)] = 0;
	heap32[(r2+15)] = 0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+2)];
	r2 = sp + -80;
	r4 = sp + -96;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = r4 >> 2;
	r1 = r2 >> 2;
	f1 = heapFloat[(r0+2)];
	f2 = heapFloat[(r1+2)];
	f3 = heapFloat[(r0+1)];
	f4 = heapFloat[(r1+1)];
	f3 = f3-f4;
	f4 =                       0.5;
	f1 = f1-f2;
	f2 = heapFloat[(fp+-24)];
	f5 = heapFloat[(fp+-20)];
	f2 = f2-f5;
	f3 = f3*f4;
	f1 = f1*f4;
	f2 = f2*f4;
	f3 = f3+f0;
	f1 = f1+f0;
	f0 = f2+f0;
	f2 = f3+f3;
	f1 = f1+f1;
	f0 = f0+f0;
	f2 = f2*f2;
	f1 = f1*f1;
	f3 = heapFloat[(fp+1)];
	f4 =      0.083333328366279602;
	f0 = f0*f0;
	r0 = heap32[(fp+2)];
	f5 = f2+f1;
	f3 = f3*f4;
	f1 = f0+f1;
	r0 = r0 >> 2;
	f4 = f5*f3;
	f0 = f0+f2;
	f1 = f1*f3;
	heapFloat[(r0)] = f4;
	f0 = f0*f3;
	heapFloat[(r0+1)] = f1;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f0 = f_g0;
	r1 = heapU8[r0+84];
	if(r1 !=0) //_LBB474_2
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = (r0 + 52)|0;
	r0 = (r0 + 68)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	heapFloat[(g0+2)] = f0;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r3;
	_Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(i7);
	return;
}
else{
	r0 = _2E_str6232;
	r1 = _2E_str7331;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 86;
	_assert(i7);
}
}

function _ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -112;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = 1;
	r2 = _ZGVZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions;
	heap8[r0+84] = r1;
	r3 = heapU8[r2];
if(!(r3 !=0)) //_LBB475_2
{
	r3 = _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions;
	r3 = r3 >> 2;
	heap32[(r3)] = 1065353216;
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
	heap32[(r3+4)] = 0;
	heap32[(r3+5)] = 1065353216;
	heap32[(r3+6)] = 0;
	heap32[(r3+7)] = 0;
	heap32[(r3+8)] = 0;
	heap32[(r3+9)] = 0;
	heap32[(r3+10)] = 1065353216;
	heap32[(r3+11)] = 0;
	heap32[(r3+12)] = -1082130432;
	heap32[(r3+13)] = 0;
	heap32[(r3+14)] = 0;
	heap32[(r3+15)] = 0;
	heap32[(r3+16)] = 0;
	heap32[(r3+17)] = -1082130432;
	heap32[(r3+18)] = 0;
	heap32[(r3+19)] = 0;
	heap32[(r3+20)] = 0;
	heap32[(r3+21)] = 0;
	heap32[(r3+22)] = -1082130432;
	heap32[(r3+23)] = 0;
	heap8[r2] = r1;
}
	r1 = sp + -96;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 96;
	r2 = r0 >> 2;
	memset(i7);
	r3 = heap32[(r2)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+17)];
	r4 = _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = 6;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	f0 = heapFloat[(fp+-24)];
	f1 = heapFloat[(r2+11)];
	f0 = f0+f1;
	r0 = r1 >> 2;
	heapFloat[(r2+17)] = f0;
	f0 = heapFloat[(r0+12)];
	f0 = f0-f1;
	heapFloat[(r2+13)] = f0;
	f0 = heapFloat[(r0+5)];
	f0 = f0+f1;
	heapFloat[(r2+18)] = f0;
	f0 = heapFloat[(r0+17)];
	f0 = f0-f1;
	heapFloat[(r2+14)] = f0;
	f0 = heapFloat[(r0+10)];
	f0 = f0+f1;
	heapFloat[(r2+19)] = f0;
	f0 = heapFloat[(r0+22)];
	f0 = f0-f1;
	heapFloat[(r2+15)] = f0;
	return;
}

function _ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	heap32[(r0+2)] = 0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK13btSphereShape7getNameEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _2E_str342;
	r_g0 = r0;
	return;
}

function _ZN13btSphereShape9setMarginEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	heap32[(r0+11)] = heap32[(fp+1)];
	return;
}

function _ZNK13btSphereShape9getMarginEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+7)];
	f1 = heapFloat[(r0+3)];
	f0 = f0*f1;
	f_g0 = f0;
	return;
}

function _ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
if(!(r0 <1)) //_LBB480_3
{
	r1 = heap32[(fp+2)];
	r1 = (r1 + 8)|0;
_3: while(true){
	r2 = r1 >> 2;
	heap32[(r2+-2)] = 0;
	heap32[(r2+-1)] = 0;
	r0 = (r0 + -1)|0;
	r1 = (r1 + 16)|0;
	heap32[(r2)] = 0;
	heap32[(r2+1)] = 0;
	if(r0 !=0) //_LBB480_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f0 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f1 = f_g0;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	r2 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	r0 = r2 >> 2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = heap32[(fp+2)];
	f3 = heapFloat[(r0+14)];
	f4 = heapFloat[(r0+13)];
	f5 = heapFloat[(r0+12)];
	r1 = r1 >> 2;
	f5 = f5-f_g0;
	f4 = f4-f1;
	heapFloat[(r1)] = f5;
	f3 = f3-f0;
	heapFloat[(r1+1)] = f4;
	heapFloat[(r1+2)] = f3;
	heap32[(r1+3)] = 0;
	r1 = heap32[(fp+3)];
	f3 = heapFloat[(r0+14)];
	f4 = heapFloat[(r0+13)];
	f5 = heapFloat[(r0+12)];
	r0 = r1 >> 2;
	f2 = f5+f_g0;
	f1 = f4+f1;
	heapFloat[(r0)] = f2;
	f0 = f3+f0;
	heapFloat[(r0+1)] = f1;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	f1 = heapFloat[(fp+1)];
	f2 =       0.40000000596046448;
	f1 = f1*f2;
	heap32[(g0)] = r0;
	r0 = heap32[(fp+2)];
	f0 = f1*f_g0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = r0 >> 2;
	f0 = f0*f_g0;
	heapFloat[(r0)] = f0;
	heapFloat[(r0+1)] = f0;
	heapFloat[(r0+2)] = f0;
	heap32[(r0+3)] = 0;
	return;
}

function _ZN13btSphereShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB483_2
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN13btSphereShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV13btConvexShape;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZNK13btSphereShape24localGetSupportingVertexERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+16)];
	r3 = heap32[(fp+2)];
	r4 = sp + -16;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r4 >> 2;
	r4 = heap32[(fp)];
	f0 = heapFloat[(fp+-4)];
	f1 = heapFloat[(r2+1)];
	f2 = heapFloat[(r2+2)];
	r4 = r4 >> 2;
	r3 = r3 >> 2;
	heap32[(r4+3)] = heap32[(r2+3)];
	f3 = heapFloat[(r3)];
	f4 = heapFloat[(r3+1)];
	f5 = heapFloat[(r3+2)];
	f6 = f3*f3;
	f7 = f4*f4;
	f6 = f6+f7;
	f7 = f5*f5;
	f6 = f6+f7;
	f7 =   1.4210854715202004e-014;
	f8 =                        -1;
	f3 = f6 < f7 ? f8 : f3;
	f4 = f6 < f7 ? f8 : f4;
	f5 = f6 < f7 ? f8 : f5;
	f6 = f3*f3;
	f7 = f4*f4;
	f6 = f6+f7;
	f7 = f5*f5;
	f6 = f6+f7;
	heapFloat[(g0)] = f6;
	sqrtf(i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	f7 =                         1;
	f6 = f7/f_g0;
	heap32[(g0)] = r0;
	f3 = f3*f6;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	f4 = f4*f6;
	f3 = f3*f_g0;
	f5 = f5*f6;
	f4 = f4*f_g0;
	f0 = f0+f3;
	f3 = f5*f_g0;
	f1 = f1+f4;
	heapFloat[(r4)] = f0;
	f0 = f2+f3;
	heapFloat[(r4+1)] = f1;
	heapFloat[(r4+2)] = f0;
	return;
}

function _ZNK23btStridingMeshInterface14hasPremadeAabbEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2_(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1_(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 28;
	r_g0 = r0;
	return;
}

function _ZNK23btStridingMeshInterface9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
var __label__ = 0;
	i7 = sp + -72;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+7)];
	r3 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r3 = r3 >> 2;
	heap32[(r3+5)] = r2;
	heap32[(r3)] = 0;
if(!(r2 ==0)) //_LBB490_32
{
	r4 = heap32[(fp+2)];
	r5 = r4 >> 2;
	r6 = heap32[(r5)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+4)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 28;
	heap32[(g0+2)] = r2;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r2 = r_g0;
	r6 = heap32[(r5)];
	r6 = r6 >> 2;
	r7 = r2 >> 2;
	r7 = heap32[(r7+2)];
	r6 = heap32[(r6+7)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r7;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	heap32[(r3)] = r_g0;
	r6 = heap32[(r1)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+7)];
	heap32[(g0)] = r0;
	r8 = 0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = r_g0;
_3: while(true){
	if(r8 <r6) //_LBB490_2
{
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+4)];
	r10 = sp + -4;
	r11 = sp + -28;
	r12 = sp + -16;
	r13 = sp + -24;
	r14 = sp + -8;
	r15 = sp + -12;
	r16 = sp + -32;
	r17 = sp + -20;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r12;
	heap32[(g0+4)] = r13;
	heap32[(g0+5)] = r14;
	heap32[(g0+6)] = r15;
	heap32[(g0+7)] = r16;
	heap32[(g0+8)] = r17;
	heap32[(g0+9)] = r8;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r9 = r7 >> 2;
	r10 = heap32[(fp+-8)];
	heap32[(r9+5)] = r10;
	r10 = heap32[(fp+-7)];
	heap32[(r9+6)] = r10;
	heap32[(r9+4)] = 0;
	heap32[(r9+2)] = 0;
	heap32[(r9+3)] = 0;
	heap32[(r9)] = 0;
	heap32[(r9+1)] = 0;
	r10 = heap32[(fp+-5)];
	if(r10 ==3) //_LBB490_9
{
	r10 = heap32[(fp+-8)];
if(!(r10 ==0)) //_LBB490_15
{
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 8;
	heap32[(g0+2)] = r10;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r10 = r_g0;
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r12 = r10 >> 2;
	r12 = heap32[(r12+2)];
	r11 = heap32[(r11+7)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r12;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	heap32[(r9+3)] = r_g0;
	r11 = heap32[(fp+-8)];
if(!(r11 <1)) //_LBB490_13
{
	r11 = 0;
_11: while(true){
	r13 = heap32[(fp+-3)];
	r13 = (r13 * r11)|0;
	r14 = heap32[(fp+-2)];
	r15 = heapU16[(r14+r13)>>1];
	r16 = r11 << 3;
	r13 = (r14 + r13)|0;
	heap16[(r12+r16)>>1] = r15;
	r14 = (r12 + r16)|0;
	r15 = heapU16[(r13+2)>>1];
	heap16[(r14+2)>>1] = r15;
	r13 = heapU16[(r13+4)>>1];
	r11 = (r11 + 1)|0;
	heap16[(r14+4)>>1] = r13;
	r13 = heap32[(fp+-8)];
if(!(r11 <r13)) //_LBB490_12
{
break _11;
}
}
}
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r12 = r10 >> 2;
	r11 = heap32[(r11+5)];
	r12 = heap32[(r12+2)];
	r13 = _2E_str1350;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r12;
	__FUNCTION_TABLE__[(r11)>>2](i7);
}
}
else{
	if(r10 !=2) //_LBB490_14
{
__label__ = 14;
break _3;
}
else{
	r10 = heap32[(fp+-8)];
	r10 = (r10 * 3)|0;
if(!(r10 ==0)) //_LBB490_15
{
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 4;
	heap32[(g0+2)] = r10;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r10 = r_g0;
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r12 = r10 >> 2;
	r12 = heap32[(r12+2)];
	r11 = heap32[(r11+7)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r12;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	heap32[(r9+2)] = r_g0;
	r11 = heap32[(fp+-8)];
_17: do {
if(!(r11 <1)) //_LBB490_8
{
	r11 = 0;
_19: while(true){
	r13 = heap32[(fp+-3)];
	r13 = (r13 * r11)|0;
	r14 = heap32[(fp+-2)];
	r15 = (r11 * 3)|0;
	r13 = (r14 + r13)|0;
	r13 = r13 >> 2;
	r14 = r15 << 2;
	r14 = (r12 + r14)|0;
	r15 = heap32[(r13)];
	r14 = r14 >> 2;
	heap32[(r14)] = r15;
	r15 = heap32[(r13+1)];
	heap32[(r14+1)] = r15;
	r13 = heap32[(r13+2)];
	r11 = (r11 + 1)|0;
	heap32[(r14+2)] = r13;
	r13 = heap32[(fp+-8)];
if(!(r11 <r13)) //_LBB490_7
{
break _17;
}
}
}
} while(0);
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r12 = r10 >> 2;
	r11 = heap32[(r11+5)];
	r12 = heap32[(r12+2)];
	r13 = _2E_str349;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r12;
	__FUNCTION_TABLE__[(r11)>>2](i7);
}
}
}
	r10 = heap32[(fp+-4)];
_23: do {
	if(r10 ==1) //_LBB490_22
{
	r10 = heap32[(fp+-7)];
	if(r10 ==0) //_LBB490_29
{
break _23;
}
else{
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 32;
	heap32[(g0+2)] = r10;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r10 = r_g0;
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r12 = r10 >> 2;
	r12 = heap32[(r12+2)];
	r11 = heap32[(r11+7)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r12;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	heap32[(r9+1)] = r_g0;
	r9 = heap32[(fp+-7)];
_26: do {
if(!(r9 <1)) //_LBB490_26
{
	r11 = heap32[(fp+-1)];
	r13 = heap32[(fp+-6)];
	r11 = (r11 + 16)|0;
	r14 = 0;
_28: while(true){
	r15 = r14 << 5;
	r15 = (r12 + r15)|0;
	llvm_move_double(r15,r11+-16);
	r14 = (r14 + 1)|0;
	r16 = (r11 + r13)|0;
	llvm_move_double(r15+8,r11+-8);
	llvm_move_double(r15+16,r11);
	r11 = r16;
if(!(r14 <r9)) //_LBB490_25
{
break _26;
}
}
}
} while(0);
	r9 = heap32[(r5)];
	r9 = r9 >> 2;
	r11 = r10 >> 2;
	r9 = heap32[(r9+5)];
	r11 = heap32[(r11+2)];
	r12 = _2E_str5354;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r11;
	__FUNCTION_TABLE__[(r9)>>2](i7);
}
}
else{
	if(r10 !=0) //_LBB490_27
{
if(!(uint(r10) <uint(2))) //_LBB490_29
{
__label__ = 28;
break _3;
}
}
else{
	r10 = heap32[(fp+-7)];
if(!(r10 ==0)) //_LBB490_29
{
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 16;
	heap32[(g0+2)] = r10;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r10 = r_g0;
	r11 = heap32[(r5)];
	r11 = r11 >> 2;
	r12 = r10 >> 2;
	r12 = heap32[(r12+2)];
	r11 = heap32[(r11+7)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r12;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	heap32[(r9)] = r_g0;
	r9 = heap32[(fp+-7)];
_36: do {
if(!(r9 <1)) //_LBB490_21
{
	r9 = 0;
_38: while(true){
	r11 = heap32[(fp+-6)];
	r13 = heap32[(fp+-1)];
	r11 = (r11 * r9)|0;
	r14 = r9 << 4;
	r14 = (r12 + r14)|0;
	r11 = (r13 + r11)|0;
	r13 = r14 >> 2;
	r11 = r11 >> 2;
	heap32[(r13)] = heap32[(r11)];
	r9 = (r9 + 1)|0;
	heap32[(r13+1)] = heap32[(r11+1)];
	heap32[(r13+2)] = heap32[(r11+2)];
	r11 = heap32[(fp+-7)];
if(!(r9 <r11)) //_LBB490_20
{
break _36;
}
}
}
} while(0);
	r9 = heap32[(r5)];
	r9 = r9 >> 2;
	r11 = r10 >> 2;
	r9 = heap32[(r9+5)];
	r11 = heap32[(r11+2)];
	r12 = _2E_str5223;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r11;
	__FUNCTION_TABLE__[(r9)>>2](i7);
}
}
}
} while(0);
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r8;
	r8 = (r8 + 1)|0;
	r7 = (r7 + 28)|0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
}
else{
__label__ = 31;
break _3;
}
}
switch(__label__ ){//multiple entries
case 31:
	r0 = heap32[(r5)];
	r0 = r0 >> 2;
	r5 = r2 >> 2;
	r0 = heap32[(r0+5)];
	r5 = heap32[(r5+2)];
	r6 = _2E_str7356;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = 1497453121;
	heap32[(g0+4)] = r5;
	__FUNCTION_TABLE__[(r0)>>2](i7);
break;
case 28:
	r0 = _2E_str6355;
	r1 = _2E_str3352;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 319;
	_assert(i7);
break;
case 14:
	r0 = _2E_str10;
	r1 = _2E_str3352;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 271;
	_assert(i7);
break;
}
}
	heap32[(r3+1)] = heap32[(r1+1)];
	heap32[(r3+2)] = heap32[(r1+2)];
	heap32[(r3+3)] = heap32[(r1+3)];
	heap32[(r3+4)] = heap32[(r1+4)];
	r0 = _2E_str8357;
	r_g0 = r0;
	return;
}

function _ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -120;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+7)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r3 = heap32[(fp+1)];
	f0 = heapFloat[(r1+1)];
	f1 = heapFloat[(r1+2)];
	f2 = heapFloat[(r1+3)];
	r4 = 0;
_1: while(true){
	if(r4 <r2) //_LBB491_1
{
	r5 = heap32[(r1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+4)];
	r6 = sp + -4;
	r7 = sp + -28;
	r8 = sp + -16;
	r9 = sp + -24;
	r10 = sp + -8;
	r11 = sp + -12;
	r12 = sp + -32;
	r13 = sp + -20;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r8;
	heap32[(g0+4)] = r9;
	heap32[(g0+5)] = r10;
	heap32[(g0+6)] = r11;
	heap32[(g0+7)] = r12;
	heap32[(g0+8)] = r13;
	heap32[(g0+9)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = heap32[(fp+-4)];
_4: do {
	if(r5 ==1) //_LBB491_13
{
	r5 = heap32[(fp+-5)];
	if(r5 ==3) //_LBB491_17
{
	r5 = heap32[(fp+-8)];
	if(r5 <1) //_LBB491_25
{
break _4;
}
else{
	r5 = 0;
_9: while(true){
	r6 = heap32[(fp+-3)];
	r7 = heap32[(fp+-2)];
	r6 = (r6 * r5)|0;
	r8 = heapU16[(r7+r6)>>1];
	r9 = heap32[(fp+-6)];
	r10 = heap32[(fp+-1)];
	r8 = (r8 * r9)|0;
	r11 = (r10 + r8)|0;
	f3 = llvm_readDouble((r10+r8));
	f4 = llvm_readDouble((r11+16));
	f5 = llvm_readDouble((r11+8));
	f3 = f3; //fdtos f3, f3
	r8 = sp + -80;
	f5 = f5; //fdtos f5, f5
	f3 = f3*f0;
	r11 = r8 >> 2;
	f4 = f4; //fdtos f4, f4
	f5 = f5*f1;
	heapFloat[(fp+-20)] = f3;
	f3 = f4*f2;
	heapFloat[(r11+1)] = f5;
	heapFloat[(r11+2)] = f3;
	r6 = (r7 + r6)|0;
	heap32[(r11+3)] = 0;
	r7 = heapU16[(r6+2)>>1];
	r7 = (r7 * r9)|0;
	r12 = (r10 + r7)|0;
	f3 = llvm_readDouble((r10+r7));
	f3 = f3; //fdtos f3, f3
	f4 = llvm_readDouble((r12+16));
	f5 = llvm_readDouble((r12+8));
	f5 = f5; //fdtos f5, f5
	f3 = f3*f0;
	f4 = f4; //fdtos f4, f4
	f5 = f5*f1;
	heapFloat[(r11+4)] = f3;
	f3 = f4*f2;
	heapFloat[(r11+5)] = f5;
	heapFloat[(r11+6)] = f3;
	heap32[(r11+7)] = 0;
	r6 = heapU16[(r6+4)>>1];
	r6 = (r6 * r9)|0;
	r7 = (r10 + r6)|0;
	f3 = llvm_readDouble((r10+r6));
	f3 = f3; //fdtos f3, f3
	f4 = llvm_readDouble((r7+16));
	f5 = llvm_readDouble((r7+8));
	f5 = f5; //fdtos f5, f5
	f3 = f3*f0;
	f4 = f4; //fdtos f4, f4
	f5 = f5*f1;
	heapFloat[(r11+8)] = f3;
	f3 = f4*f2;
	heapFloat[(r11+9)] = f5;
	heapFloat[(r11+10)] = f3;
	r6 = r3 >> 2;
	heap32[(r11+11)] = 0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	r5 = (r5 + 1)|0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = heap32[(fp+-8)];
	if(r5 <r6) //_LBB491_20
{
continue _9;
}
else{
break _4;
}
}
}
}
else{
	if(r5 !=2) //_LBB491_21
{
	r5 = (r5 + -2)|0;
if(!(uint(r5) <uint(2))) //_LBB491_25
{
__label__ = 22;
break _1;
}
}
else{
	r5 = heap32[(fp+-8)];
	if(r5 <1) //_LBB491_25
{
break _4;
}
else{
	r5 = 0;
_16: while(true){
	r6 = heap32[(fp+-3)];
	r7 = heap32[(fp+-2)];
	r6 = (r6 * r5)|0;
	r6 = (r7 + r6)|0;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r8 = heap32[(fp+-6)];
	r9 = heap32[(fp+-1)];
	r7 = (r8 * r7)|0;
	r10 = (r9 + r7)|0;
	f3 = llvm_readDouble((r9+r7));
	f4 = llvm_readDouble((r10+16));
	f5 = llvm_readDouble((r10+8));
	f3 = f3; //fdtos f3, f3
	r7 = sp + -80;
	f5 = f5; //fdtos f5, f5
	f3 = f3*f0;
	r10 = r7 >> 2;
	f4 = f4; //fdtos f4, f4
	f5 = f5*f1;
	heapFloat[(fp+-20)] = f3;
	f3 = f4*f2;
	heapFloat[(r10+1)] = f5;
	heapFloat[(r10+2)] = f3;
	heap32[(r10+3)] = 0;
	r11 = heap32[(r6+1)];
	r11 = (r8 * r11)|0;
	r12 = (r9 + r11)|0;
	f3 = llvm_readDouble((r9+r11));
	f3 = f3; //fdtos f3, f3
	f4 = llvm_readDouble((r12+16));
	f5 = llvm_readDouble((r12+8));
	f5 = f5; //fdtos f5, f5
	f3 = f3*f0;
	f4 = f4; //fdtos f4, f4
	f5 = f5*f1;
	heapFloat[(r10+4)] = f3;
	f3 = f4*f2;
	heapFloat[(r10+5)] = f5;
	heapFloat[(r10+6)] = f3;
	heap32[(r10+7)] = 0;
	r6 = heap32[(r6+2)];
	r6 = (r8 * r6)|0;
	r8 = (r9 + r6)|0;
	f3 = llvm_readDouble((r9+r6));
	f3 = f3; //fdtos f3, f3
	f4 = llvm_readDouble((r8+16));
	f5 = llvm_readDouble((r8+8));
	f5 = f5; //fdtos f5, f5
	f3 = f3*f0;
	f4 = f4; //fdtos f4, f4
	f5 = f5*f1;
	heapFloat[(r10+8)] = f3;
	f3 = f4*f2;
	heapFloat[(r10+9)] = f5;
	heapFloat[(r10+10)] = f3;
	r6 = r3 >> 2;
	heap32[(r10+11)] = 0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	r5 = (r5 + 1)|0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = heap32[(fp+-8)];
	if(r5 <r6) //_LBB491_19
{
continue _16;
}
else{
break _4;
}
}
}
}
}
}
else{
	if(r5 !=0) //_LBB491_23
{
if(!(uint(r5) <uint(2))) //_LBB491_25
{
__label__ = 24;
break _1;
}
}
else{
	r5 = heap32[(fp+-5)];
	if(r5 ==3) //_LBB491_7
{
	r5 = heap32[(fp+-8)];
	if(r5 <1) //_LBB491_25
{
break _4;
}
else{
	r5 = 0;
_25: while(true){
	r6 = heap32[(fp+-3)];
	r7 = heap32[(fp+-2)];
	r6 = (r6 * r5)|0;
	r8 = heapU16[(r7+r6)>>1];
	r9 = heap32[(fp+-6)];
	r10 = heap32[(fp+-1)];
	r8 = (r8 * r9)|0;
	r8 = (r10 + r8)|0;
	r8 = r8 >> 2;
	f3 = heapFloat[(r8)];
	f4 = heapFloat[(r8+2)];
	f5 = heapFloat[(r8+1)];
	r8 = sp + -80;
	f3 = f3*f0;
	r11 = r8 >> 2;
	f5 = f5*f1;
	heapFloat[(fp+-20)] = f3;
	f3 = f4*f2;
	heapFloat[(r11+1)] = f5;
	heapFloat[(r11+2)] = f3;
	r6 = (r7 + r6)|0;
	heap32[(r11+3)] = 0;
	r7 = heapU16[(r6+2)>>1];
	r7 = (r7 * r9)|0;
	r7 = (r10 + r7)|0;
	r7 = r7 >> 2;
	f3 = heapFloat[(r7+2)];
	f4 = heapFloat[(r7+1)];
	f5 = heapFloat[(r7)];
	f5 = f5*f0;
	f4 = f4*f1;
	heapFloat[(r11+4)] = f5;
	f3 = f3*f2;
	heapFloat[(r11+5)] = f4;
	heapFloat[(r11+6)] = f3;
	heap32[(r11+7)] = 0;
	r6 = heapU16[(r6+4)>>1];
	r6 = (r6 * r9)|0;
	r6 = (r10 + r6)|0;
	r6 = r6 >> 2;
	f3 = heapFloat[(r6+2)];
	f4 = heapFloat[(r6+1)];
	f5 = heapFloat[(r6)];
	f5 = f5*f0;
	f4 = f4*f1;
	heapFloat[(r11+8)] = f5;
	f3 = f3*f2;
	heapFloat[(r11+9)] = f4;
	heapFloat[(r11+10)] = f3;
	r6 = r3 >> 2;
	heap32[(r11+11)] = 0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	r5 = (r5 + 1)|0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = heap32[(fp+-8)];
	if(r5 <r6) //_LBB491_10
{
continue _25;
}
else{
break _4;
}
}
}
}
else{
	if(r5 !=2) //_LBB491_11
{
	r5 = (r5 + -2)|0;
if(!(uint(r5) <uint(2))) //_LBB491_25
{
__label__ = 12;
break _1;
}
}
else{
	r5 = heap32[(fp+-8)];
if(!(r5 <1)) //_LBB491_25
{
	r5 = 0;
_32: while(true){
	r6 = heap32[(fp+-3)];
	r7 = heap32[(fp+-2)];
	r6 = (r6 * r5)|0;
	r6 = (r7 + r6)|0;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r8 = heap32[(fp+-6)];
	r9 = heap32[(fp+-1)];
	r7 = (r8 * r7)|0;
	r7 = (r9 + r7)|0;
	r7 = r7 >> 2;
	f3 = heapFloat[(r7)];
	f4 = heapFloat[(r7+2)];
	f5 = heapFloat[(r7+1)];
	r7 = sp + -80;
	f3 = f3*f0;
	r10 = r7 >> 2;
	f5 = f5*f1;
	heapFloat[(fp+-20)] = f3;
	f3 = f4*f2;
	heapFloat[(r10+1)] = f5;
	heapFloat[(r10+2)] = f3;
	heap32[(r10+3)] = 0;
	r11 = heap32[(r6+1)];
	r11 = (r8 * r11)|0;
	r11 = (r9 + r11)|0;
	r11 = r11 >> 2;
	f3 = heapFloat[(r11+2)];
	f4 = heapFloat[(r11+1)];
	f5 = heapFloat[(r11)];
	f5 = f5*f0;
	f4 = f4*f1;
	heapFloat[(r10+4)] = f5;
	f3 = f3*f2;
	heapFloat[(r10+5)] = f4;
	heapFloat[(r10+6)] = f3;
	heap32[(r10+7)] = 0;
	r6 = heap32[(r6+2)];
	r6 = (r8 * r6)|0;
	r6 = (r9 + r6)|0;
	r6 = r6 >> 2;
	f3 = heapFloat[(r6+2)];
	f4 = heapFloat[(r6+1)];
	f5 = heapFloat[(r6)];
	f5 = f5*f0;
	f4 = f4*f1;
	heapFloat[(r10+8)] = f5;
	f3 = f3*f2;
	heapFloat[(r10+9)] = f4;
	heapFloat[(r10+10)] = f3;
	r6 = r3 >> 2;
	heap32[(r10+11)] = 0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	r5 = (r5 + 1)|0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = heap32[(fp+-8)];
if(!(r5 <r6)) //_LBB491_9
{
break _4;
}
}
}
}
}
}
}
} while(0);
	r5 = heap32[(r1)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	r4 = (r4 + 1)|0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
continue _1;
}
else{
__label__ = 27;
break _1;
}
}
switch(__label__ ){//multiple entries
case 27:
	return;
break;
case 22:
	r0 = _2E_str9358;
	r1 = _2E_str3352;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 134;
	_assert(i7);
break;
case 24:
	r0 = _2E_str6355;
	r1 = _2E_str3352;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 139;
	_assert(i7);
break;
case 12:
	r0 = _2E_str9358;
	r1 = _2E_str3352;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 92;
	_assert(i7);
break;
}
}

function _ZN23btStridingMeshInterfaceD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV23btStridingMeshInterface;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN23btStridingMeshInterfaceD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV23btStridingMeshInterface;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN31btInternalTriangleIndexCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btInternalTriangleIndexCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN31btInternalTriangleIndexCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btInternalTriangleIndexCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN18btTriangleCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN18btTriangleCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN26btTriangleIndexVertexArray16unLockVertexBaseEi(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN26btTriangleIndexVertexArray19preallocateVerticesEi(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN26btTriangleIndexVertexArray18preallocateIndicesEi(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+12)];
	r1 = 1;
	r0 = r0 == r1;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}

function _ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r0+13)] = heap32[(r1)];
	heap32[(r0+14)] = heap32[(r1+1)];
	r2 = heap32[(fp+2)];
	heap32[(r0+15)] = heap32[(r1+2)];
	r2 = r2 >> 2;
	heap32[(r0+16)] = heap32[(r1+3)];
	heap32[(r0+17)] = heap32[(r2)];
	heap32[(r0+18)] = heap32[(r2+1)];
	heap32[(r0+19)] = heap32[(r2+2)];
	heap32[(r0+20)] = heap32[(r2+3)];
	heap32[(r0+12)] = 1;
	return;
}

function _ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r1)] = heap32[(r0+13)];
	heap32[(r1+1)] = heap32[(r0+14)];
	r2 = heap32[(fp+2)];
	heap32[(r1+2)] = heap32[(r0+15)];
	r2 = r2 >> 2;
	heap32[(r1+3)] = heap32[(r0+16)];
	heap32[(r2)] = heap32[(r0+17)];
	heap32[(r2+1)] = heap32[(r0+18)];
	heap32[(r2+2)] = heap32[(r0+19)];
	heap32[(r2+3)] = heap32[(r0+20)];
	return;
}

function _ZNK26btTriangleIndexVertexArray14getNumSubPartsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+6)];
	r_g0 = r0;
	return;
}

function _ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+9)];
	r0 = r0 >> 2;
	r1 = r1 << 5;
	r0 = heap32[(r0+8)];
	r0 = (r0 + r1)|0;
	r0 = r0 >> 2;
	r1 = heap32[(fp+2)];
	r2 = heap32[(r0+3)];
	r1 = r1 >> 2;
	r3 = heap32[(fp+1)];
	heap32[(r1)] = r2;
	r1 = r3 >> 2;
	r2 = heap32[(r0+4)];
	r3 = heap32[(fp+3)];
	heap32[(r1)] = r2;
	r1 = r3 >> 2;
	r2 = heap32[(r0+7)];
	r3 = heap32[(fp+4)];
	heap32[(r1)] = r2;
	r1 = r3 >> 2;
	r2 = heap32[(r0+5)];
	r3 = heap32[(fp+7)];
	heap32[(r1)] = r2;
	r1 = r3 >> 2;
	r2 = heap32[(r0)];
	r3 = heap32[(fp+5)];
	heap32[(r1)] = r2;
	r1 = r3 >> 2;
	r2 = heap32[(r0+1)];
	r3 = heap32[(fp+6)];
	heap32[(r1)] = r2;
	r1 = r3 >> 2;
	r2 = heap32[(r0+2)];
	r3 = heap32[(fp+8)];
	heap32[(r1)] = r2;
	r1 = r3 >> 2;
	r0 = heap32[(r0+6)];
	heap32[(r1)] = r0;
	return;
}

function _ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+7)];
	r3 = heap32[(fp+9)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = r_g0;
	if(r0 >r3) //_LBB507_2
{
	r0 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	r5 = heap32[(fp+4)];
	r6 = heap32[(fp+5)];
	r7 = heap32[(fp+6)];
	r8 = heap32[(fp+7)];
	r9 = heap32[(fp+8)];
	r3 = r3 << 5;
	r1 = heap32[(r1+8)];
	r1 = (r1 + r3)|0;
	r1 = r1 >> 2;
	r3 = heap32[(r1+3)];
	r2 = r2 >> 2;
	heap32[(r2)] = r3;
	r0 = r0 >> 2;
	r2 = heap32[(r1+4)];
	heap32[(r0)] = r2;
	r0 = r4 >> 2;
	r2 = heap32[(r1+7)];
	heap32[(r0)] = r2;
	r0 = r5 >> 2;
	r2 = heap32[(r1+5)];
	heap32[(r0)] = r2;
	r0 = r8 >> 2;
	r2 = heap32[(r1)];
	heap32[(r0)] = r2;
	r0 = r6 >> 2;
	r2 = heap32[(r1+1)];
	heap32[(r0)] = r2;
	r0 = r7 >> 2;
	r2 = heap32[(r1+2)];
	heap32[(r0)] = r2;
	r0 = r9 >> 2;
	r1 = heap32[(r1+6)];
	heap32[(r0)] = r1;
	return;
}
else{
	r1 = _2E_str367;
	r3 = _2E_str1368;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 41;
	_assert(i7);
}
}

function _ZN26btTriangleIndexVertexArrayD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV26btTriangleIndexVertexArray;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+8)];
if(!(r1 ==0)) //_LBB508_4
{
	r3 = heapU8[r0+36];
if(!(r3 ==0)) //_LBB508_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+8)] = 0;
}
	r1 = 1;
	heap8[r0+36] = r1;
	heap32[(r2+8)] = 0;
	r1 = _ZTV23btStridingMeshInterface;
	heap32[(r2+6)] = 0;
	r1 = (r1 + 8)|0;
	heap32[(r2+7)] = 0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB508_6
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}

function _ZN26btTriangleIndexVertexArrayD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV26btTriangleIndexVertexArray;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+8)];
if(!(r1 ==0)) //_LBB509_4
{
	r3 = heapU8[r0+36];
if(!(r3 ==0)) //_LBB509_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+8)] = 0;
}
	r1 = 1;
	heap8[r0+36] = r1;
	heap32[(r2+8)] = 0;
	r0 = _ZTV23btStridingMeshInterface;
	heap32[(r2+6)] = 0;
	r0 = (r0 + 8)|0;
	heap32[(r2+7)] = 0;
	heap32[(r2)] = r0;
	return;
}

function _ZNK19btTriangleMeshShape7getNameEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _2E_str372;
	r_g0 = r0;
	return;
}

function _ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	f0 = heapFloat[(r1+10)];
	f1 = heapFloat[(r1+6)];
	f2 = heapFloat[(r1+9)];
	f3 = heapFloat[(r1+5)];
	f4 = heapFloat[(r1+8)];
	f5 = heapFloat[(r1+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f6 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	f7 = f_g0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+11)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = heap32[(fp+1)];
	f4 = f4-f5;
	f5 =                       0.5;
	f2 = f2-f3;
	f0 = f0-f1;
	f1 = heapFloat[(r1+10)];
	f3 = heapFloat[(r1+6)];
	f9 = heapFloat[(r1+9)];
	f10 = heapFloat[(r1+5)];
	f11 = heapFloat[(r1+8)];
	f12 = heapFloat[(r1+4)];
	r0 = r0 >> 2;
	f4 = f4*f5;
	f2 = f2*f5;
	f0 = f0*f5;
	f1 = f1+f3;
	f3 = f9+f10;
	f9 = f11+f12;
	f10 = heapFloat[(r0+10)];
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	f4 = f4+f_g0;
	f2 = f2+f7;
	f0 = f0+f6;
	f1 = f1*f5;
	f3 = f3*f5;
	f5 = f9*f5;
	f6 =                         0;
	if(f10 <f6) //_LBB511_2
{
	f7 = -f10;
}
else{
	f7 = f10;
}
	f8 = heapFloat[(r0+9)];
	if(f8 <f6) //_LBB511_5
{
	f9 = -f8;
}
else{
	f9 = f8;
}
	f11 = heapFloat[(r0+8)];
	if(f11 <f6) //_LBB511_8
{
	f12 = -f11;
}
else{
	f12 = f11;
}
	f13 = heapFloat[(r0+6)];
	if(f13 <f6) //_LBB511_11
{
	f14 = -f13;
}
else{
	f14 = f13;
}
	f15 = heapFloat[(r0+5)];
	if(f15 <f6) //_LBB511_14
{
	f16 = -f15;
}
else{
	f16 = f15;
}
	f17 = heapFloat[(r0+4)];
	if(f17 <f6) //_LBB511_17
{
	f18 = -f17;
}
else{
	f18 = f17;
}
	f19 = heapFloat[(r0+2)];
	if(f19 <f6) //_LBB511_20
{
	f20 = -f19;
}
else{
	f20 = f19;
}
	f21 = heapFloat[(r0+1)];
	if(f21 <f6) //_LBB511_23
{
	f22 = -f21;
}
else{
	f22 = f21;
}
	f23 = heapFloat[(r0)];
	if(f23 <f6) //_LBB511_26
{
	f6 = -f23;
}
else{
	f6 = f23;
}
	f23 = f23*f5;
	f21 = f21*f3;
	f17 = f17*f5;
	f15 = f15*f3;
	f21 = f23+f21;
	f19 = f19*f1;
	f6 = f6*f4;
	f22 = f22*f2;
	f5 = f11*f5;
	f3 = f8*f3;
	f8 = f17+f15;
	f11 = f13*f1;
	f13 = f18*f4;
	f15 = f16*f2;
	f16 = f21+f19;
	f17 = heapFloat[(r0+12)];
	f6 = f6+f22;
	f18 = f20*f0;
	f3 = f5+f3;
	f1 = f10*f1;
	f4 = f12*f4;
	f2 = f9*f2;
	f5 = f8+f11;
	f8 = heapFloat[(r0+13)];
	f9 = heapFloat[(r0+14)];
	f10 = f13+f15;
	f11 = f14*f0;
	f12 = f16+f17;
	f6 = f6+f18;
	f1 = f3+f1;
	r0 = r1 >> 2;
	f2 = f4+f2;
	f0 = f7*f0;
	f3 = f5+f8;
	f4 = f10+f11;
	f5 = f12-f6;
	f1 = f1+f9;
	f0 = f2+f0;
	f2 = f3-f4;
	heapFloat[(r0)] = f5;
	f5 = f1-f0;
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f5;
	r1 = r2 >> 2;
	f2 = f12+f6;
	heap32[(r0+3)] = 0;
	f3 = f3+f4;
	heapFloat[(r1)] = f2;
	f0 = f1+f0;
	heapFloat[(r1+1)] = f3;
	heapFloat[(r1+2)] = f0;
	heap32[(r1+3)] = 0;
	return;
}

function _ZN19btTriangleMeshShape15recalcLocalAabbEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -64;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = 0;
_1: while(true){
	r2 = sp + -16;
	r3 = r2 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	r4 = (r2 + r1)|0;
	heap32[(r3+3)] = 0;
	r3 = r4 >> 2;
	heap32[(r3)] = 1065353216;
	r4 = r0 >> 2;
	r5 = heap32[(r4)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+16)];
	r6 = sp + -32;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	r7 = (r6 + r1)|0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = r7 >> 2;
	r7 = (r0 + r1)|0;
	f0 = heapFloat[(r5)];
	f1 = heapFloat[(r4+3)];
	f0 = f0+f1;
	r7 = r7 >> 2;
	heapFloat[(r7+8)] = f0;
	heap32[(r3)] = -1082130432;
	r3 = heap32[(r4)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+16)];
	r8 = sp + -48;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r6 >> 2;
	r3 = r8 >> 2;
	heap32[(fp+-8)] = heap32[(fp+-12)];
	heap32[(r2+1)] = heap32[(r3+1)];
	heap32[(r2+2)] = heap32[(r3+2)];
	heap32[(r2+3)] = heap32[(r3+3)];
	f0 = heapFloat[(r5)];
	f1 = heapFloat[(r4+3)];
	r1 = (r1 + 4)|0;
	f0 = f0-f1;
	heapFloat[(r7+4)] = f0;
	if(r1 !=12) //_LBB512_1
{
continue _1;
}
else{
break _1;
}
}
	return;
}

function _ZN21SupportVertexCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN21SupportVertexCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN21SupportVertexCallback15processTriangleEP9btVector3ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	f0 = heapFloat[(r1+22)];
	f1 = heapFloat[(r0)];
	f2 = heapFloat[(r1+23)];
	f3 = heapFloat[(r0+1)];
	f4 = heapFloat[(r1+24)];
	f5 = heapFloat[(r0+2)];
	f1 = f0*f1;
	f3 = f2*f3;
	f1 = f1+f3;
	f3 = f4*f5;
	f5 = heapFloat[(r1+21)];
	f1 = f1+f3;
	if(f5 <f1) //_LBB515_2
{
	heapFloat[(r1+21)] = f1;
	heap32[(r1+1)] = heap32[(r0)];
	heap32[(r1+2)] = heap32[(r0+1)];
	heap32[(r1+3)] = heap32[(r0+2)];
	heap32[(r1+4)] = heap32[(r0+3)];
	f5 = f1;
}
	f1 = heapFloat[(r0+4)];
	f3 = heapFloat[(r0+5)];
	f1 = f0*f1;
	f3 = f2*f3;
	f6 = heapFloat[(r0+6)];
	f1 = f1+f3;
	f3 = f4*f6;
	f1 = f1+f3;
	if(f5 <f1) //_LBB515_7
{
	heapFloat[(r1+21)] = f1;
	heap32[(r1+1)] = heap32[(r0+4)];
	heap32[(r1+2)] = heap32[(r0+5)];
	heap32[(r1+3)] = heap32[(r0+6)];
	heap32[(r1+4)] = heap32[(r0+7)];
	f5 = f1;
}
	f1 = heapFloat[(r0+8)];
	f3 = heapFloat[(r0+9)];
	f0 = f0*f1;
	f1 = f2*f3;
	f2 = heapFloat[(r0+10)];
	f0 = f0+f1;
	f1 = f4*f2;
	f0 = f0+f1;
	if(f5 <f0) //_LBB515_8
{
	heapFloat[(r1+21)] = f0;
	heap32[(r1+1)] = heap32[(r0+8)];
	heap32[(r1+2)] = heap32[(r0+9)];
	heap32[(r1+3)] = heap32[(r0+10)];
	heap32[(r1+4)] = heap32[(r0+11)];
	return;
}
else{
	return;
}
}

function _ZN19btTriangleMeshShape15setLocalScalingERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r1 = heap32[(r1+12)];
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	heap32[(r1+1)] = heap32[(r2)];
	heap32[(r1+2)] = heap32[(r2+1)];
	heap32[(r1+3)] = heap32[(r2+2)];
	heap32[(r1+4)] = heap32[(r2+3)];
	heap32[(g0)] = r0;
	_ZN19btTriangleMeshShape15recalcLocalAabbEv(i7);
	return;
}

function _ZNK19btTriangleMeshShape15getLocalScalingEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+12)];
	r0 = (r0 + 4)|0;
	r_g0 = r0;
	return;
}

function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btInternalTriangleIndexCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV31btInternalTriangleIndexCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(fp)];
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r1+4)];
	f2 = heapFloat[(r1+8)];
	f3 = f0 < f1 ? f0 : f1;
	r2 = r2 >> 2;
	f3 = f3 < f2 ? f3 : f2;
	f4 = heapFloat[(r2+6)];
if(!(f3 >f4)) //_LBB520_7
{
	f0 = f0 > f1 ? f0 : f1;
	f0 = f0 > f2 ? f0 : f2;
	f1 = heapFloat[(r2+2)];
if(!(f0 <f1)) //_LBB520_7
{
	f0 = heapFloat[(r1+2)];
	f1 = heapFloat[(r1+6)];
	f2 = heapFloat[(r1+10)];
	f3 = f0 < f1 ? f0 : f1;
	f3 = f3 < f2 ? f3 : f2;
	f4 = heapFloat[(r2+8)];
if(!(f3 >f4)) //_LBB520_7
{
	f0 = f0 > f1 ? f0 : f1;
	f0 = f0 > f2 ? f0 : f2;
	f1 = heapFloat[(r2+4)];
if(!(f0 <f1)) //_LBB520_7
{
	f0 = heapFloat[(r1+1)];
	f1 = heapFloat[(r1+5)];
	f2 = heapFloat[(r1+9)];
	f3 = f0 < f1 ? f0 : f1;
	f3 = f3 < f2 ? f3 : f2;
	f4 = heapFloat[(r2+7)];
if(!(f3 >f4)) //_LBB520_7
{
	f0 = f0 > f1 ? f0 : f1;
	f0 = f0 > f2 ? f0 : f2;
	f1 = heapFloat[(r2+3)];
if(!(f0 <f1)) //_LBB520_7
{
	r1 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r2 = heap32[(r2+1)];
	r4 = r2 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r3;
	__FUNCTION_TABLE__[(r4)>>2](i7);
}
}
}
}
}
}
	return;
}

function _ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _2E_str10;
	r1 = _2E_str3375;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 188;
	_assert(i7);
}

function _ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -152;var g0 = i7>>2; // save stack
	r0 = _ZTV21SupportVertexCallback;
	r1 = sp + -120;
	r0 = (r0 + 8)|0;
	r2 = r1 >> 2;
	heap32[(fp+-30)] = r0;
	heap32[(r2+1)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	heap32[(r2+4)] = 0;
	heap32[(r2+5)] = 1065353216;
	heap32[(r2+6)] = 0;
	heap32[(r2+7)] = 0;
	heap32[(r2+8)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 1065353216;
	heap32[(r2+11)] = 0;
	heap32[(r2+12)] = 0;
	heap32[(r2+13)] = 0;
	heap32[(r2+14)] = 0;
	heap32[(r2+15)] = 1065353216;
	heap32[(r2+16)] = 0;
	heap32[(r2+17)] = 0;
	heap32[(r2+18)] = 0;
	heap32[(r2+19)] = 0;
	r0 = heap32[(fp+2)];
	heap32[(r2+20)] = 0;
	r0 = r0 >> 2;
	heap32[(r2+21)] = -581039253;
	f0 =                         0;
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r0)];
	f3 = heapFloat[(r0+2)];
	f4 = f1*f0;
	f5 = f2*f0;
	f2 = f2+f4;
	f0 = f3*f0;
	f1 = f5+f1;
	f2 = f2+f0;
	f4 = f5+f4;
	f0 = f1+f0;
	heapFloat[(r2+22)] = f2;
	f1 = f4+f3;
	heapFloat[(r2+23)] = f0;
	heapFloat[(r2+24)] = f1;
	r0 = sp + -136;
	heap32[(r2+25)] = 0;
	r3 = r0 >> 2;
	heap32[(fp+-34)] = 1566444395;
	heap32[(r3+1)] = 1566444395;
	r4 = heap32[(fp+1)];
	heap32[(r3+2)] = 1566444395;
	r5 = r4 >> 2;
	heap32[(r3+3)] = 0;
	r3 = heap32[(r5)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+15)];
	r5 = sp + -16;
	r6 = r5 >> 2;
	heap32[(fp+-4)] = -581039253;
	heap32[(r6+1)] = -581039253;
	heap32[(r6+2)] = -581039253;
	heap32[(r6+3)] = 0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r0 = heap32[(fp)];
	f0 = heapFloat[(r2+4)];
	f1 = heapFloat[(r2+3)];
	f2 = heapFloat[(r2+2)];
	r0 = r0 >> 2;
	heap32[(r0)] = heap32[(r2+1)];
	heapFloat[(r0+1)] = f2;
	heapFloat[(r0+2)] = f1;
	heapFloat[(r0+3)] = f0;
	return;
}

function _ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -56;var g0 = i7>>2; // save stack
	r0 = _ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback;
	r1 = sp + -40;
	r0 = (r0 + 8)|0;
	r2 = heap32[(fp+2)];
	r3 = r1 >> 2;
	r4 = heap32[(fp+1)];
	heap32[(fp+-10)] = r0;
	r0 = r2 >> 2;
	heap32[(r3+1)] = r4;
	heap32[(r3+2)] = heap32[(r0)];
	heap32[(r3+3)] = heap32[(r0+1)];
	r4 = heap32[(fp+3)];
	heap32[(r3+4)] = heap32[(r0+2)];
	r5 = r4 >> 2;
	heap32[(r3+5)] = heap32[(r0+3)];
	heap32[(r3+6)] = heap32[(r5)];
	heap32[(r3+7)] = heap32[(r5+1)];
	r0 = heap32[(fp)];
	heap32[(r3+8)] = heap32[(r5+2)];
	r0 = r0 >> 2;
	heap32[(r3+9)] = heap32[(r5+3)];
	r0 = heap32[(r0+12)];
	r3 = r0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	return;
}

function _ZN19btTriangleMeshShapeD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14btConcaveShape;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN19btTriangleMeshShapeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV14btConcaveShape;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN16btPointCollectorD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btPointCollector;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN16btPointCollectorD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV16btPointCollector;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btPointCollector20setShapeIdentifiersAEii(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN16btPointCollector20setShapeIdentifiersBEii(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN16btPointCollector15addContactPointERK9btVector3S2_f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	f0 = heapFloat[(fp+3)];
	r1 = r0 >> 2;
	f1 = heapFloat[(r1+9)];
if(!(f1 <=f0)) //_LBB531_2
{
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = 1;
	r2 = r2 >> 2;
	heap8[r0+40] = r4;
	heap32[(r1+1)] = heap32[(r2)];
	heap32[(r1+2)] = heap32[(r2+1)];
	heap32[(r1+3)] = heap32[(r2+2)];
	r0 = r3 >> 2;
	heap32[(r1+4)] = heap32[(r2+3)];
	heap32[(r1+5)] = heap32[(r0)];
	heap32[(r1+6)] = heap32[(r0+1)];
	heap32[(r1+7)] = heap32[(r0+2)];
	heap32[(r1+8)] = heap32[(r0+3)];
	heapFloat[(r1+9)] = f0;
}
	return;
}

function _ZN27btContinuousConvexCollisionD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btConvexCast;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN27btContinuousConvexCollisionD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btConvexCast;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
var __label__ = 0;
	i7 = sp + -816;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
	r2 = 0;
	r3 = r1 >> 2;
	heap8[r1+312] = r2;
	r4 = 1;
	heap32[(r3)] = 0;
	heap8[r1+356] = r4;
	heap32[(r3+73)] = 1566444395;
	heap32[(r3+74)] = 1566444395;
	heap32[(r3+75)] = 1566444395;
	heap32[(r3+76)] = 0;
	heap8[r1+352] = r2;
	heap32[(r3+84)] = 0;
	heap32[(r3+85)] = 0;
	heap32[(r3+86)] = 0;
	heap32[(r3+87)] = 0;
	r3 = heapU8[r1+332];
	r5 = heap32[(fp+1)];
	r6 = heap32[(fp+2)];
	r3 = r3 & 240;
	r7 = r6 >> 2;
	heap8[r1+332] = r3;
	r1 = r5 >> 2;
	f0 = heapFloat[(r7+14)];
	f1 = heapFloat[(r1+14)];
	f2 = heapFloat[(r7+13)];
	f3 = heapFloat[(r1+13)];
	f4 = heapFloat[(r7+12)];
	f5 = heapFloat[(r1+12)];
	r3 = sp + -40;
	r7 = sp + -44;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r7;
	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
	r3 = r3 >> 2;
	f6 = heapFloat[(r3+2)];
	f7 = heapFloat[(fp+-11)];
	f8 = heapFloat[(r3+1)];
	f9 = heapFloat[(fp+-10)];
	r3 = sp + -96;
	f9 = f9*f7;
	f8 = f8*f7;
	r6 = r3 >> 2;
	heapFloat[(fp+-24)] = f9;
	f6 = f6*f7;
	heapFloat[(r6+1)] = f8;
	r7 = heap32[(fp+3)];
	r8 = heap32[(fp+4)];
	heapFloat[(r6+2)] = f6;
	r9 = r8 >> 2;
	heap32[(r6+3)] = 0;
	r6 = r7 >> 2;
	f7 = heapFloat[(r9+14)];
	f10 = heapFloat[(r6+14)];
	f11 = heapFloat[(r9+13)];
	f12 = heapFloat[(r6+13)];
	f13 = heapFloat[(r9+12)];
	f14 = heapFloat[(r6+12)];
	r9 = sp + -16;
	r10 = sp + -20;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r10;
	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
	r8 = r9 >> 2;
	f15 = heapFloat[(r8+2)];
	f16 = heapFloat[(fp+-5)];
	f17 = heapFloat[(r8+1)];
	f18 = heapFloat[(fp+-4)];
	r8 = sp + -112;
	f18 = f18*f16;
	f17 = f17*f16;
	r9 = r8 >> 2;
	heapFloat[(fp+-28)] = f18;
	f15 = f15*f16;
	heapFloat[(r9+1)] = f17;
	heapFloat[(r9+2)] = f15;
	heap32[(r9+3)] = 0;
	r9 = heap32[(r0+3)];
	r10 = r9 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+4)];
	heap32[(g0)] = r9;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	f16 = f_g0;
	r9 = heap32[(r0+4)];
	r10 = r9 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+4)];
	heap32[(g0)] = r9;
	f9 = f9*f9;
	f8 = f8*f8;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	f19 = f_g0;
	f8 = f9+f8;
	f6 = f6*f6;
	f6 = f8+f6;
	heapFloat[(g0)] = f6;
	f6 = f18*f18;
	f8 = f17*f17;
	sqrtf(i7);
	f9 = f_g0;
	f11 = f11-f12;
	f2 = f2-f3;
	f3 = f13-f14;
	f4 = f4-f5;
	f5 = f6+f8;
	f6 = f15*f15;
	f8 = f11-f2;
	f12 = f3-f4;
	f7 = f7-f10;
	f0 = f0-f1;
	f1 = f5+f6;
	f5 = f7-f0;
	heapFloat[(g0)] = f1;
	f1 = f12*f12;
	f6 = f8*f8;
	sqrtf(i7);
	f1 = f1+f6;
	f6 = f5*f5;
	f1 = f1+f6;
	f6 = f9*f16;
	f9 = f_g0*f19;
	heapFloat[(g0)] = f1;
	f1 = f6+f9;
	sqrtf(i7);
	f6 = f_g0+f1;
	f9 =                         0;
_1: do {
if(!(f6 ==f9)) //_LBB534_21
{
	r9 = _ZTV16btPointCollector;
	r9 = (r9 + 8)|0;
	r10 = sp + -176;
	heap32[(fp+-44)] = r9;
	r11 = r10 >> 2;
	heap32[(r11+9)] = 1566444395;
	heap8[sp+-136] = r2;
	r12 = heap32[(r0+4)];
	r13 = r12 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+11)];
	r14 = heap32[(r0+2)];
	r15 = heap32[(r0+1)];
	heap32[(g0)] = r12;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	f6 = f_g0;
	r12 = heap32[(r0+3)];
	r13 = r12 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+11)];
	heap32[(g0)] = r12;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r12 = heap32[(r0+4)];
	r13 = heap32[(r0+3)];
	r16 = r12 >> 2;
	r17 = r13 >> 2;
	r18 = _ZTV17btGjkPairDetector;
	r16 = heap32[(r16+1)];
	r17 = heap32[(r17+1)];
	r19 = sp + -256;
	r18 = (r18 + 8)|0;
	r20 = r19 >> 2;
	heap32[(fp+-64)] = r18;
	heap32[(r20+1)] = 0;
	heap32[(r20+2)] = 1065353216;
	heap32[(r20+3)] = 0;
	heap32[(r20+4)] = 0;
	heap32[(r20+5)] = r14;
	heap32[(r20+6)] = r15;
	heap32[(r20+7)] = r13;
	heap32[(r20+8)] = r12;
	heap32[(r20+9)] = r17;
	heap32[(r20+10)] = r16;
	heapFloat[(r20+11)] = f_g0;
	heapFloat[(r20+12)] = f6;
	heap8[sp+-204] = r2;
	r12 = sp + -392;
	heap32[(r20+15)] = -1;
	r13 = r12 >> 2;
	heap32[(r20+18)] = 1;
	heap32[(r13+32)] = 1566444395;
	heap32[(r13+33)] = 0;
	heap32[(fp+-98)] = heap32[(r1)];
	heap32[(r13+1)] = heap32[(r1+1)];
	heap32[(r13+2)] = heap32[(r1+2)];
	heap32[(r13+3)] = heap32[(r1+3)];
	heap32[(r13+4)] = heap32[(r1+4)];
	heap32[(r13+5)] = heap32[(r1+5)];
	heap32[(r13+6)] = heap32[(r1+6)];
	heap32[(r13+7)] = heap32[(r1+7)];
	heap32[(r13+8)] = heap32[(r1+8)];
	heap32[(r13+9)] = heap32[(r1+9)];
	heap32[(r13+10)] = heap32[(r1+10)];
	heap32[(r13+11)] = heap32[(r1+11)];
	heap32[(r13+12)] = heap32[(r1+12)];
	heap32[(r13+13)] = heap32[(r1+13)];
	heap32[(r13+14)] = heap32[(r1+14)];
	heap32[(r13+15)] = heap32[(r1+15)];
	heap32[(r13+16)] = heap32[(r6)];
	heap32[(r13+17)] = heap32[(r6+1)];
	heap32[(r13+18)] = heap32[(r6+2)];
	heap32[(r13+19)] = heap32[(r6+3)];
	heap32[(r13+20)] = heap32[(r6+4)];
	heap32[(r13+21)] = heap32[(r6+5)];
	heap32[(r13+22)] = heap32[(r6+6)];
	heap32[(r13+23)] = heap32[(r6+7)];
	heap32[(r13+24)] = heap32[(r6+8)];
	heap32[(r13+25)] = heap32[(r6+9)];
	heap32[(r13+26)] = heap32[(r6+10)];
	heap32[(r13+27)] = heap32[(r6+11)];
	heap32[(r13+28)] = heap32[(r6+12)];
	heap32[(r13+29)] = heap32[(r6+13)];
	heap32[(r13+30)] = heap32[(r6+14)];
	heap32[(r13+31)] = heap32[(r6+15)];
	heap32[(g0)] = r19;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = 0;
	heap32[(g0+4)] = 0;
	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
	f6 = heapFloat[(r11+5)];
	r1 = heapU8[sp+-136];
	r6 = sp + -128;
	heapFloat[(fp+-32)] = f6;
	f10 = heapFloat[(r11+6)];
	r10 = r6 >> 2;
	heapFloat[(r10+1)] = f10;
	f13 = heapFloat[(r11+7)];
	heapFloat[(r10+2)] = f13;
	f14 = heapFloat[(r11+8)];
	heapFloat[(r10+3)] = f14;
if(!(r1 ==0)) //_LBB534_21
{
	r1 = heap32[(fp+5)];
	f15 = heapFloat[(r11+1)];
	f16 = heapFloat[(r11+2)];
	f17 = heapFloat[(r11+3)];
	f18 = f12*f15;
	f19 = f8*f16;
	r12 = sp + -456;
	f18 = f18+f19;
	f19 = f5*f17;
	f20 = heapFloat[(r11+9)];
	f21 = heapFloat[(r11+4)];
	f18 = f18+f19;
	r11 = (r12 + 48)|0;
_4: while(true){
	f19 =     0.0010000000474974513;
	if(f20 >f19) //_LBB534_3
{
	r13 = r1 >> 2;
	r14 = heap32[(r13+42)];
if(!(r14 ==0)) //_LBB534_5
{
	r15 = r14 >> 2;
	r15 = heap32[(r15)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+5)];
	r16 = sp + -80;
	r17 = r16 >> 2;
	heap32[(fp+-20)] = 1065353216;
	heap32[(r17+1)] = 1065353216;
	heap32[(r17+2)] = 1065353216;
	heap32[(r17+3)] = 0;
	heap32[(g0)] = r14;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = 1045220557;
	heap32[(g0+3)] = r16;
	__FUNCTION_TABLE__[(r15)>>2](i7);
}
	r2 = (r2 + 1)|0;
	if(r2 >64) //_LBB534_21
{
break _1;
}
else{
	f6 = f12*f15;
	f10 = f8*f16;
	f6 = f6+f10;
	f10 = f5*f17;
	f18 = f6+f10;
	f6 = f18+f1;
	f10 =   1.1920928955078125e-007;
	if(f6 <=f10) //_LBB534_21
{
break _1;
}
else{
	f6 = f20/f6;
	f19 = f9+f6;
	f6 =                         0;
	if(f19 <f6) //_LBB534_21
{
break _1;
}
else{
	f10 =                         1;
	if(f19 >f10) //_LBB534_21
{
break _1;
}
else{
	if(f19 <=f9) //_LBB534_21
{
break _1;
}
else{
	heap32[(g0)] = r5;
	heapFloat[(g0+1)] = f4;
	heapFloat[(g0+2)] = f2;
	heapFloat[(g0+3)] = f0;
	heap32[(g0+4)] = r3;
	heapFloat[(g0+5)] = f19;
	heap32[(g0+6)] = r12;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
	r14 = sp + -520;
	heap32[(g0)] = r7;
	heapFloat[(g0+1)] = f3;
	heapFloat[(g0+2)] = f11;
	heapFloat[(g0+3)] = f7;
	heap32[(g0+4)] = r8;
	heapFloat[(g0+5)] = f19;
	heap32[(g0+6)] = r14;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
	r15 = heap32[(r13+42)];
if(!(r15 ==0)) //_LBB534_12
{
	r16 = r15 >> 2;
	r16 = heap32[(r16)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+5)];
	r17 = sp + -64;
	r19 = r17 >> 2;
	heap32[(fp+-16)] = 1065353216;
	heap32[(r19+1)] = 0;
	heap32[(r19+2)] = 0;
	heap32[(r19+3)] = 0;
	heap32[(g0)] = r15;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = 1045220557;
	heap32[(g0+3)] = r17;
	__FUNCTION_TABLE__[(r16)>>2](i7);
}
	r15 = heap32[(r13)];
	r15 = r15 >> 2;
	r15 = heap32[(r15)];
	heap32[(g0)] = r1;
	heapFloat[(g0+1)] = f19;
	r16 = sp + -568;
	__FUNCTION_TABLE__[(r15)>>2](i7);
	r15 = r16 >> 2;
	heap32[(fp+-142)] = r9;
	r17 = 0;
	heap32[(r15+9)] = 1566444395;
	heap8[sp+-528] = r17;
	r19 = heap32[(r0+4)];
	r20 = heap32[(r0+3)];
	r21 = heap32[(r0+1)];
	r22 = heap32[(r0+2)];
	r23 = sp + -648;
	heap32[(fp+-162)] = r18;
	r24 = r23 >> 2;
	heap32[(r24+1)] = 0;
	heap32[(r24+2)] = 1065353216;
	heap32[(r24+3)] = 0;
	heap32[(r24+4)] = 0;
	heap32[(r24+5)] = r22;
	heap32[(r24+6)] = r21;
	heap32[(r24+7)] = r20;
	r21 = r20 >> 2;
	heap32[(r24+8)] = r19;
	r22 = heap32[(r21+1)];
	heap32[(r24+9)] = r22;
	r22 = r19 >> 2;
	r25 = heap32[(r22+1)];
	heap32[(r24+10)] = r25;
	r21 = heap32[(r21)];
	r21 = r21 >> 2;
	r21 = heap32[(r21+11)];
	heap32[(g0)] = r20;
	__FUNCTION_TABLE__[(r21)>>2](i7);
	heapFloat[(r24+11)] = f_g0;
	r20 = heap32[(r22)];
	r20 = r20 >> 2;
	r20 = heap32[(r20+11)];
	heap32[(g0)] = r19;
	__FUNCTION_TABLE__[(r20)>>2](i7);
	heapFloat[(r24+12)] = f_g0;
	heap8[sp+-596] = r17;
	r19 = sp + -784;
	heap32[(r24+15)] = -1;
	r20 = r19 >> 2;
	heap32[(r24+18)] = 1;
	heap32[(r20+32)] = 1566444395;
	heap32[(r20+33)] = 0;
	r21 = r12 >> 2;
	heap32[(fp+-196)] = heap32[(fp+-114)];
	heap32[(r20+1)] = heap32[(r21+1)];
	heap32[(r20+2)] = heap32[(r21+2)];
	heap32[(r20+3)] = heap32[(r21+3)];
	heap32[(r20+4)] = heap32[(r21+4)];
	heap32[(r20+5)] = heap32[(r21+5)];
	heap32[(r20+6)] = heap32[(r21+6)];
	heap32[(r20+7)] = heap32[(r21+7)];
	heap32[(r20+8)] = heap32[(r21+8)];
	heap32[(r20+9)] = heap32[(r21+9)];
	heap32[(r20+10)] = heap32[(r21+10)];
	heap32[(r20+11)] = heap32[(r21+11)];
	heap32[(r20+12)] = heap32[(r21+12)];
	heap32[(r20+13)] = heap32[(r21+13)];
	heap32[(r20+14)] = heap32[(r21+14)];
	heap32[(r20+15)] = heap32[(r21+15)];
	r14 = r14 >> 2;
	heap32[(r20+16)] = heap32[(fp+-130)];
	heap32[(r20+17)] = heap32[(r14+1)];
	heap32[(r20+18)] = heap32[(r14+2)];
	heap32[(r20+19)] = heap32[(r14+3)];
	heap32[(r20+20)] = heap32[(r14+4)];
	heap32[(r20+21)] = heap32[(r14+5)];
	heap32[(r20+22)] = heap32[(r14+6)];
	heap32[(r20+23)] = heap32[(r14+7)];
	heap32[(r20+24)] = heap32[(r14+8)];
	heap32[(r20+25)] = heap32[(r14+9)];
	heap32[(r20+26)] = heap32[(r14+10)];
	heap32[(r20+27)] = heap32[(r14+11)];
	heap32[(r20+28)] = heap32[(r14+12)];
	heap32[(r20+29)] = heap32[(r14+13)];
	heap32[(r20+30)] = heap32[(r14+14)];
	heap32[(r20+31)] = heap32[(r14+15)];
	heap32[(g0)] = r23;
	heap32[(g0+1)] = r19;
	heap32[(g0+2)] = r16;
	heap32[(g0+3)] = 0;
	heap32[(g0+4)] = 0;
	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
	r14 = heapU8[sp+-528];
	if(r14 !=0) //_LBB534_14
{
	f20 = heapFloat[(r15+9)];
	if(f20 >=f6) //_LBB534_17
{
	f6 = heapFloat[(r15+5)];
	heapFloat[(fp+-32)] = f6;
	f10 = heapFloat[(r15+6)];
	heapFloat[(r10+1)] = f10;
	f13 = heapFloat[(r15+7)];
	heapFloat[(r10+2)] = f13;
	f14 = heapFloat[(r15+8)];
	heapFloat[(r10+3)] = f14;
	f15 = heapFloat[(r15+1)];
	f16 = heapFloat[(r15+2)];
	f17 = heapFloat[(r15+3)];
	f21 = heapFloat[(r15+4)];
	heap32[(fp+-142)] = r9;
	f9 = f19;
}
else{
__label__ = 14;
break _4;
}
}
else{
__label__ = 15;
break _4;
}
}
}
}
}
}
}
else{
__label__ = 18;
break _4;
}
}
switch(__label__ ){//multiple entries
case 18:
	r0 = r1 >> 2;
	f0 = f18+f1;
	f1 = heapFloat[(r0+43)];
	if(f0 <=f1) //_LBB534_21
{
break _1;
}
else{
	heapFloat[(r0+41)] = f9;
	heapFloat[(r0+33)] = f15;
	heapFloat[(r0+34)] = f16;
	heapFloat[(r0+35)] = f17;
	heapFloat[(r0+36)] = f21;
	heapFloat[(r0+37)] = f6;
	heapFloat[(r0+38)] = f10;
	heapFloat[(r0+39)] = f13;
	heapFloat[(r0+40)] = f14;
	r0 = 1;
	r_g0 = r0;
	return;
}
break;
case 14:
	heapFloat[(r13+41)] = f19;
	f0 = heapFloat[(r15+4)];
	f1 = heapFloat[(r15+3)];
	f2 = heapFloat[(r15+2)];
	heap32[(r13+33)] = heap32[(r15+1)];
	heapFloat[(r13+34)] = f2;
	heapFloat[(r13+35)] = f1;
	heapFloat[(r13+36)] = f0;
	heap32[(r13+37)] = heap32[(r15+5)];
	heap32[(r13+38)] = heap32[(r15+6)];
	heap32[(r13+39)] = heap32[(r15+7)];
	heap32[(r13+40)] = heap32[(r15+8)];
	r17 = r4;
break;
}
	heap32[(fp+-142)] = r9;
	r0 = r17 & 255;
	r_g0 = r0;
	return;
}
}
} while(0);
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	f0 = heapFloat[(fp+5)];
	f1 = heapFloat[(fp+1)];
	r2 = heap32[(fp+6)];
	f2 = heapFloat[(fp+2)];
	f1 = f1*f0;
	f3 = heapFloat[(r1+12)];
	f4 = heapFloat[(r1+14)];
	f5 = heapFloat[(r1+13)];
	f6 = heapFloat[(fp+3)];
	f2 = f2*f0;
	r1 = r2 >> 2;
	f1 = f3+f1;
	f3 = f6*f0;
	f2 = f5+f2;
	heapFloat[(r1+12)] = f1;
	f1 = f4+f3;
	heapFloat[(r1+13)] = f2;
	r2 = heap32[(fp+4)];
	heapFloat[(r1+14)] = f1;
	r2 = r2 >> 2;
	heap32[(r1+15)] = 0;
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r2+1)];
	f3 = heapFloat[(r2+2)];
	f1 = f1*f1;
	f2 = f2*f2;
	f1 = f1+f2;
	f2 = f3*f3;
	f1 = f1+f2;
	heapFloat[(g0)] = f1;
	sqrtf(i7);
	f1 = f_g0;
	f2 = f1*f0;
	f3 =       0.78539818525314331;
	if(f2 >f3) //_LBB535_2
{
	f1 = f3/f0;
}
	f2 =     0.0010000000474974513;
	if(f1 >=f2) //_LBB535_5
{
	f2 =                       0.5;
	f2 = f1*f2;
	f2 = f2*f0;
	heapFloat[(g0)] = f2;
	sinf(i7);
	f3 = heapFloat[(r2+2)];
	f2 = f_g0/f1;
	f5 = heapFloat[(r2+1)];
	f6 = heapFloat[(r2)];
	f4 = f3*f2;
	f3 = f5*f2;
	f2 = f6*f2;
}
else{
	f2 = f0*f0;
	f2 = f2*f0;
	f3 =      -0.02083333395421505;
	f2 = f2*f3;
	f3 =                       0.5;
	f2 = f2*f1;
	f3 = f0*f3;
	f2 = f2*f1;
	f4 = heapFloat[(r2+2)];
	f2 = f3+f2;
	f3 = heapFloat[(r2+1)];
	f5 = heapFloat[(r2)];
	f4 = f4*f2;
	f3 = f3*f2;
	f2 = f5*f2;
}
	f0 = f1*f0;
	f1 =                       0.5;
	f0 = f0*f1;
	heapFloat[(g0)] = f0;
	cosf(i7);
	f0 = f_g0;
	r2 = sp + -16;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
	r0 = r2 >> 2;
	f1 = heapFloat[(fp+-4)];
	f5 = heapFloat[(r0+3)];
	f6 = heapFloat[(r0+1)];
	f7 = heapFloat[(r0+2)];
	f8 = f0*f6;
	f9 = f3*f5;
	f10 = f0*f1;
	f11 = f2*f5;
	f12 = f0*f7;
	f13 = f4*f5;
	f8 = f8+f9;
	f9 = f4*f1;
	f10 = f10+f11;
	f11 = f3*f7;
	f0 = f0*f5;
	f5 = f2*f1;
	f12 = f12+f13;
	f13 = f2*f6;
	f8 = f8+f9;
	f2 = f2*f7;
	f9 = f10+f11;
	f10 = f4*f6;
	f2 = f8-f2;
	f8 = f9-f10;
	f0 = f0-f5;
	f5 = f3*f6;
	f6 = f12+f13;
	f1 = f3*f1;
	f1 = f6-f1;
	f3 = f8*f8;
	f6 = f2*f2;
	f0 = f0-f5;
	f4 = f4*f7;
	f0 = f0-f4;
	f3 = f3+f6;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f0*f0;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f3 = f_g0;
	f4 =                         0;
	if(f3 !=f4) //_LBB535_8
{
	f4 =                         1;
	f3 = f4/f3;
	f5 = f8*f3;
	f2 = f2*f3;
	f1 = f1*f3;
	f6 = f5*f5;
	f7 = f2*f2;
	f0 = f0*f3;
	f3 = f6+f7;
	f6 = f1*f1;
	f3 = f3+f6;
	f6 = f0*f0;
	f7 =                         2;
	f3 = f3+f6;
	f3 = f7/f3;
	f6 = f1*f3;
	f7 = f2*f3;
	f8 = f2*f7;
	f1 = f1*f6;
	f9 = f8+f1;
	f9 = f4-f9;
	f10 = f5*f7;
	f11 = f0*f6;
	f12 = f5*f6;
	f7 = f0*f7;
	f13 = f10-f11;
	heapFloat[(r1)] = f9;
	f3 = f5*f3;
	f9 = f12+f7;
	heapFloat[(r1+1)] = f13;
	f5 = f5*f3;
	heapFloat[(r1+2)] = f9;
	f1 = f5+f1;
	f9 = f10+f11;
	heap32[(r1+3)] = 0;
	f2 = f2*f6;
	f0 = f0*f3;
	f1 = f4-f1;
	heapFloat[(r1+4)] = f9;
	f3 = f2-f0;
	heapFloat[(r1+5)] = f1;
	heapFloat[(r1+6)] = f3;
	f1 = f12-f7;
	heap32[(r1+7)] = 0;
	f3 = f5+f8;
	f0 = f2+f0;
	heapFloat[(r1+8)] = f1;
	f1 = f4-f3;
	heapFloat[(r1+9)] = f0;
	heapFloat[(r1+10)] = f1;
	heap32[(r1+11)] = 0;
	return;
}
else{
	r1 = _2E_str584;
	r0 = _2E_str685;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 188;
	_assert(i7);
}
}

function _ZN12btConvexCastD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btConvexCast;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN12btConvexCastD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btConvexCast;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN15btGjkConvexCastD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btConvexCast;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN15btGjkConvexCastD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btConvexCast;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
var __label__ = 0;
	i7 = sp + -288;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
	r2 = 0;
	r3 = r1 >> 2;
	heap8[r1+312] = r2;
	r4 = 1;
	heap32[(r3)] = 0;
	heap8[r1+356] = r4;
	heap32[(r3+73)] = 1566444395;
	heap32[(r3+74)] = 1566444395;
	heap32[(r3+75)] = 1566444395;
	heap32[(r3+76)] = 0;
	heap8[r1+352] = r2;
	heap32[(r3+84)] = 0;
	heap32[(r3+85)] = 0;
	heap32[(r3+86)] = 0;
	heap32[(r3+87)] = 0;
	r3 = heapU8[r1+332];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+1)];
	r6 = heap32[(fp+4)];
	r7 = heap32[(fp+3)];
	r3 = r3 & 240;
	r4 = r4 >> 2;
	heap8[r1+332] = r3;
	r1 = r5 >> 2;
	r3 = r6 >> 2;
	r5 = r7 >> 2;
	r6 = _ZTV16btPointCollector;
	f0 = heapFloat[(r4+14)];
	f1 = heapFloat[(r1+14)];
	f2 = heapFloat[(r3+14)];
	f3 = heapFloat[(r5+14)];
	f4 = heapFloat[(r4+13)];
	f5 = heapFloat[(r1+13)];
	f6 = heapFloat[(r3+13)];
	f7 = heapFloat[(r5+13)];
	f8 = heapFloat[(r4+12)];
	f9 = heapFloat[(r1+12)];
	f10 = heapFloat[(r3+12)];
	f11 = heapFloat[(r5+12)];
	r7 = sp + -48;
	r6 = (r6 + 8)|0;
	r8 = r7 >> 2;
	heap32[(fp+-12)] = r6;
	heap32[(r8+9)] = 1566444395;
	heap8[sp+-8] = r2;
	r6 = heap32[(r0+3)];
	r9 = heap32[(r0+2)];
	r0 = heap32[(r0+1)];
	r10 = _ZTV17btGjkPairDetector;
	r11 = sp + -128;
	r10 = (r10 + 8)|0;
	heap32[(fp+-32)] = r10;
	r10 = r11 >> 2;
	heap32[(r10+1)] = 0;
	heap32[(r10+2)] = 1065353216;
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = 0;
	heap32[(r10+5)] = 0;
	heap32[(r10+6)] = r0;
	heap32[(r10+7)] = r9;
	r0 = r9 >> 2;
	heap32[(r10+8)] = r6;
	r12 = heap32[(r0+1)];
	heap32[(r10+9)] = r12;
	r12 = r6 >> 2;
	r13 = heap32[(r12+1)];
	heap32[(r10+10)] = r13;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+11)];
	heap32[(g0)] = r9;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	heapFloat[(r10+11)] = f_g0;
	r0 = heap32[(r12)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+11)];
	heap32[(g0)] = r6;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	heapFloat[(r10+12)] = f_g0;
	heap8[sp+-76] = r2;
	r0 = sp + -264;
	heap32[(r10+15)] = -1;
	r6 = r0 >> 2;
	heap32[(r10+18)] = 1;
	heap32[(r6+32)] = 1566444395;
	heap32[(r6+33)] = 0;
	heap32[(fp+-66)] = heap32[(r1)];
	heap32[(r6+1)] = heap32[(r1+1)];
	heap32[(r6+2)] = heap32[(r1+2)];
	heap32[(r6+3)] = heap32[(r1+3)];
	heap32[(r6+4)] = heap32[(r1+4)];
	heap32[(r6+5)] = heap32[(r1+5)];
	heap32[(r6+6)] = heap32[(r1+6)];
	heap32[(r6+7)] = heap32[(r1+7)];
	heap32[(r6+8)] = heap32[(r1+8)];
	heap32[(r6+9)] = heap32[(r1+9)];
	heap32[(r6+10)] = heap32[(r1+10)];
	heap32[(r6+11)] = heap32[(r1+11)];
	heap32[(r6+12)] = heap32[(r1+12)];
	heap32[(r6+13)] = heap32[(r1+13)];
	heap32[(r6+14)] = heap32[(r1+14)];
	heap32[(r6+15)] = heap32[(r1+15)];
	heap32[(r6+16)] = heap32[(r5)];
	heap32[(r6+17)] = heap32[(r5+1)];
	heap32[(r6+18)] = heap32[(r5+2)];
	heap32[(r6+19)] = heap32[(r5+3)];
	heap32[(r6+20)] = heap32[(r5+4)];
	heap32[(r6+21)] = heap32[(r5+5)];
	heap32[(r6+22)] = heap32[(r5+6)];
	heap32[(r6+23)] = heap32[(r5+7)];
	heap32[(r6+24)] = heap32[(r5+8)];
	heap32[(r6+25)] = heap32[(r5+9)];
	heap32[(r6+26)] = heap32[(r5+10)];
	heap32[(r6+27)] = heap32[(r5+11)];
	heap32[(r6+28)] = heap32[(r5+12)];
	heap32[(r6+29)] = heap32[(r5+13)];
	heap32[(r6+30)] = heap32[(r5+14)];
	heap32[(r6+31)] = heap32[(r5+15)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = 0;
	heap32[(g0+4)] = 0;
	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
	r9 = heapU8[sp+-8];
_1: do {
if(!(r9 ==0)) //_LBB540_14
{
	f0 = f0-f1;
	f1 = f2-f3;
	f2 = f4-f5;
	f3 = f6-f7;
	f4 = f8-f9;
	f5 = f10-f11;
	r9 = heap32[(fp+5)];
	f0 = f0-f1;
	f1 = f2-f3;
	f2 = f4-f5;
	f3 = heapFloat[(r8+8)];
	f4 = heapFloat[(r8+7)];
	f5 = heapFloat[(r8+6)];
	f6 = heapFloat[(r8+5)];
	f7 = heapFloat[(r8+9)];
	f8 = heapFloat[(r8+1)];
	f9 = heapFloat[(r8+2)];
	f10 = heapFloat[(r8+3)];
	f11 = heapFloat[(r8+4)];
	f12 =                         0;
_3: while(true){
	f13 =     0.0010000000474974513;
	if(f7 >f13) //_LBB540_2
{
	r2 = (r2 + 1)|0;
	if(r2 >32) //_LBB540_14
{
break _1;
}
else{
	f3 = f2*f8;
	f4 = f1*f9;
	f3 = f3+f4;
	f4 = f0*f10;
	f3 = f3+f4;
	f3 = f7/f3;
	f13 = f12-f3;
	f3 =                         0;
	if(f13 <f3) //_LBB540_14
{
break _1;
}
else{
	f4 =                         1;
	if(f13 >f4) //_LBB540_14
{
break _1;
}
else{
	if(f13 <=f12) //_LBB540_14
{
break _1;
}
else{
	r10 = r9 >> 2;
	r12 = heap32[(r10)];
	r12 = r12 >> 2;
	r12 = heap32[(r12)];
	heap32[(g0)] = r9;
	heapFloat[(g0+1)] = f13;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	f5 = heapFloat[(r4+12)];
	f6 = heapFloat[(r1+12)];
	f4 = f4-f13;
	f6 = f6*f4;
	f5 = f5*f13;
	f5 = f6+f5;
	heapFloat[(r6+12)] = f5;
	f5 = heapFloat[(r1+13)];
	f6 = heapFloat[(r4+13)];
	f5 = f5*f4;
	f6 = f6*f13;
	f5 = f5+f6;
	heapFloat[(r6+13)] = f5;
	f5 = heapFloat[(r1+14)];
	f6 = heapFloat[(r4+14)];
	f5 = f5*f4;
	f6 = f6*f13;
	f5 = f5+f6;
	heapFloat[(r6+14)] = f5;
	f5 = heapFloat[(r5+12)];
	f6 = heapFloat[(r3+12)];
	f5 = f5*f4;
	f6 = f6*f13;
	f5 = f5+f6;
	heapFloat[(r6+28)] = f5;
	f5 = heapFloat[(r5+13)];
	f6 = heapFloat[(r3+13)];
	f5 = f5*f4;
	f6 = f6*f13;
	f5 = f5+f6;
	heapFloat[(r6+29)] = f5;
	f5 = heapFloat[(r5+14)];
	f6 = heapFloat[(r3+14)];
	f4 = f5*f4;
	f5 = f6*f13;
	f4 = f4+f5;
	heapFloat[(r6+30)] = f4;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = 0;
	heap32[(g0+4)] = 0;
	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
	r12 = heapU8[sp+-8];
	if(r12 ==0) //_LBB540_14
{
break _1;
}
else{
	f7 = heapFloat[(r8+9)];
	if(f7 >=f3) //_LBB540_9
{
	f6 = heapFloat[(r8+5)];
	f5 = heapFloat[(r8+6)];
	f4 = heapFloat[(r8+7)];
	f3 = heapFloat[(r8+8)];
	f8 = heapFloat[(r8+1)];
	f9 = heapFloat[(r8+2)];
	f10 = heapFloat[(r8+3)];
	f11 = heapFloat[(r8+4)];
	f12 = f13;
}
else{
__label__ = 8;
break _3;
}
}
}
}
}
}
}
else{
__label__ = 11;
break _3;
}
}
switch(__label__ ){//multiple entries
case 11:
	r0 = r9 >> 2;
	f2 = f8*f2;
	f1 = f9*f1;
	f7 = heapFloat[(r0+43)];
	f1 = f2+f1;
	f0 = f10*f0;
	f0 = f1+f0;
	f1 = -f7;
	if(f0 >=f1) //_LBB540_14
{
break _1;
}
else{
	heapFloat[(r0+41)] = f12;
	heapFloat[(r0+33)] = f8;
	heapFloat[(r0+34)] = f9;
	heapFloat[(r0+35)] = f10;
	heapFloat[(r0+36)] = f11;
	heapFloat[(r0+37)] = f6;
	heapFloat[(r0+38)] = f5;
	heapFloat[(r0+39)] = f4;
	heapFloat[(r0+40)] = f3;
}
break;
case 8:
	heapFloat[(r10+41)] = f13;
	f0 = heapFloat[(r8+4)];
	f1 = heapFloat[(r8+3)];
	f2 = heapFloat[(r8+2)];
	heap32[(r10+33)] = heap32[(r8+1)];
	heapFloat[(r10+34)] = f2;
	heapFloat[(r10+35)] = f1;
	heapFloat[(r10+36)] = f0;
	heap32[(r10+37)] = heap32[(r8+5)];
	heap32[(r10+38)] = heap32[(r8+6)];
	heap32[(r10+39)] = heap32[(r8+7)];
	heap32[(r10+40)] = heap32[(r8+8)];
break;
}
	r0 = 1;
	r_g0 = r0;
	return;
}
} while(0);
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	f0 = heapFloat[(r1+1)];
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r1)];
	f3 = heapFloat[(r0)];
	f1 = f1-f0;
	f3 = f3-f2;
	f4 = heapFloat[(r1+2)];
	f5 = heapFloat[(r0+2)];
	f5 = f5-f4;
	f6 = f3*f3;
	f7 = f1*f1;
	f6 = f6+f7;
	f7 = f5*f5;
	f6 = f6+f7;
	f7 =                         0;
	if(f6 <=f7) //_LBB541_7
{
	f0 =                        -1;
	f_g0 = f0;
	return;
}
else{
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	f2 = f2*f3;
	f0 = f0*f1;
	f0 = f2+f0;
	f2 = f4*f5;
	f0 = f0+f2;
	f0 = -f0;
	f0 = f0/f6;
	f2 =                         1;
	if(f0 <f2) //_LBB541_4
{
	if(f0 >f7) //_LBB541_6
{
	r0 = r2 >> 2;
	f2 = f2-f0;
	heapFloat[(r0+1)] = f0;
	r2 = r3 >> 2;
	heapFloat[(r0)] = f2;
	heap32[(r2)] = 3;
	f2 = heapFloat[(r1)];
	f3 = f3*f0;
	f4 = heapFloat[(r1+1)];
	f1 = f1*f0;
	f2 = f2+f3;
	f1 = f4+f1;
	f3 = heapFloat[(r1+2)];
	f0 = f5*f0;
	f0 = f3+f0;
	f2 = f2*f2;
	f1 = f1*f1;
	f1 = f2+f1;
	f0 = f0*f0;
	f0 = f1+f0;
	f_g0 = f0;
	return;
}
else{
	r2 = r2 >> 2;
	heap32[(r2)] = 1065353216;
	r3 = r3 >> 2;
	heap32[(r2+1)] = 0;
	heap32[(r3)] = 1;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r1+1)];
	f2 = heapFloat[(r1+2)];
}
}
else{
	r1 = r2 >> 2;
	heap32[(r1)] = 0;
	r2 = r3 >> 2;
	heap32[(r1+1)] = 1065353216;
	heap32[(r2)] = 2;
	f0 = heapFloat[(r0)];
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r0+2)];
}
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	f_g0 = f0;
	return;
}
}

function _ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+4)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+5)];
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	heap32[(r0+2)] = 0;
	heap32[(r0+3)] = 0;
	heap32[(r0+4)] = 0;
	heap32[(r0+5)] = 0;
	heap32[(r0+6)] = 0;
	heap32[(r0+7)] = 0;
	heap32[(r0+8)] = 0;
	r0 = r1 >> 2;
	r1 = heap32[(fp)];
	r2 = heap32[(fp+3)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	heap32[(r0)] = r1;
	r1 = r2 >> 2;
	heap32[(r0+1)] = r4;
	r2 = r3 >> 2;
	f0 = heapFloat[(r2)];
	f1 = heapFloat[(r1)];
	f2 = heapFloat[(r2+4)];
	f3 = heapFloat[(r1+4)];
	f4 = heapFloat[(r2+1)];
	f5 = heapFloat[(r2+5)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r2+8)];
	f9 = heapFloat[(r1+8)];
	f10 = heapFloat[(r1+2)];
	f11 = heapFloat[(r2+2)];
	f12 = heapFloat[(r1+1)];
	f13 = heapFloat[(r1+6)];
	f14 = heapFloat[(r2+6)];
	f15 = heapFloat[(r1+5)];
	f16 = heapFloat[(r1+10)];
	f17 = heapFloat[(r2+10)];
	f18 = heapFloat[(r2+9)];
	f19 = heapFloat[(r1+9)];
	f20 = f1*f4;
	f21 = f3*f5;
	f6 = f6+f7;
	f7 = f9*f8;
	f1 = f1*f11;
	f3 = f3*f14;
	f20 = f20+f21;
	f21 = f9*f18;
	f6 = f6+f7;
	f1 = f1+f3;
	f3 = f9*f17;
	f7 = f20+f21;
	heapFloat[(r0+2)] = f6;
	f6 = f12*f0;
	f9 = f15*f2;
	f1 = f1+f3;
	heapFloat[(r0+3)] = f7;
	heapFloat[(r0+4)] = f1;
	f1 = f12*f4;
	f3 = f15*f5;
	f6 = f6+f9;
	f7 = f19*f8;
	f9 = f12*f11;
	f12 = f15*f14;
	f1 = f1+f3;
	f3 = f19*f18;
	f6 = f6+f7;
	heap32[(r0+5)] = 0;
	f7 = f9+f12;
	f9 = f19*f17;
	f1 = f1+f3;
	heapFloat[(r0+6)] = f6;
	f0 = f10*f0;
	f2 = f13*f2;
	f3 = f7+f9;
	heapFloat[(r0+7)] = f1;
	heapFloat[(r0+8)] = f3;
	f1 = f10*f4;
	f3 = f13*f5;
	f0 = f0+f2;
	f2 = f16*f8;
	f4 = f10*f11;
	f5 = f13*f14;
	f1 = f1+f3;
	f3 = f16*f18;
	f0 = f0+f2;
	heap32[(r0+9)] = 0;
	f2 = f4+f5;
	f4 = f16*f17;
	f1 = f1+f3;
	heapFloat[(r0+10)] = f0;
	f0 = f2+f4;
	heapFloat[(r0+11)] = f1;
	heapFloat[(r0+12)] = f0;
	heap32[(r0+13)] = 0;
	f0 = heapFloat[(r2)];
	f1 = heapFloat[(r1)];
	f2 = heapFloat[(r2+4)];
	f3 = heapFloat[(r1+4)];
	f4 = heapFloat[(r1+1)];
	f5 = heapFloat[(r1+5)];
	f6 = f0*f1;
	f7 = f2*f3;
	f8 = heapFloat[(r2+8)];
	f9 = heapFloat[(r1+8)];
	f10 = heapFloat[(r2+2)];
	f11 = heapFloat[(r2+6)];
	f12 = heapFloat[(r2+1)];
	f13 = heapFloat[(r1+2)];
	f14 = heapFloat[(r2+5)];
	f15 = heapFloat[(r1+6)];
	f16 = heapFloat[(r2+10)];
	f17 = heapFloat[(r1+10)];
	f18 = heapFloat[(r2+9)];
	f19 = heapFloat[(r1+9)];
	f20 = f0*f4;
	f21 = f2*f5;
	f6 = f6+f7;
	f7 = f8*f9;
	f22 = heapFloat[(r1+14)];
	f23 = heapFloat[(r2+14)];
	f24 = heapFloat[(r1+13)];
	f25 = heapFloat[(r2+13)];
	f26 = heapFloat[(r1+12)];
	f27 = heapFloat[(r2+12)];
	f28 = f0*f13;
	f29 = f2*f15;
	f20 = f20+f21;
	f21 = f8*f19;
	f6 = f6+f7;
	f7 = f28+f29;
	f28 = f8*f17;
	f20 = f20+f21;
	heapFloat[(r0+14)] = f6;
	f6 = f12*f1;
	f21 = f14*f3;
	f7 = f7+f28;
	heapFloat[(r0+15)] = f20;
	heapFloat[(r0+16)] = f7;
	f7 = f12*f4;
	f20 = f14*f5;
	f6 = f6+f21;
	f21 = f18*f9;
	f28 = f12*f13;
	f29 = f14*f15;
	f7 = f7+f20;
	f20 = f18*f19;
	f6 = f6+f21;
	heap32[(r0+17)] = 0;
	f21 = f28+f29;
	f28 = f18*f17;
	f7 = f7+f20;
	heapFloat[(r0+18)] = f6;
	f1 = f10*f1;
	f3 = f11*f3;
	f6 = f21+f28;
	heapFloat[(r0+19)] = f7;
	heapFloat[(r0+20)] = f6;
	f4 = f10*f4;
	f5 = f11*f5;
	f1 = f1+f3;
	f3 = f16*f9;
	f6 = f10*f13;
	f7 = f11*f15;
	f4 = f4+f5;
	f5 = f16*f19;
	f1 = f1+f3;
	heap32[(r0+21)] = 0;
	f3 = f26-f27;
	f9 = f24-f25;
	f6 = f6+f7;
	f7 = f16*f17;
	f4 = f4+f5;
	heapFloat[(r0+22)] = f1;
	f1 = f22-f23;
	f0 = f0*f3;
	f2 = f2*f9;
	f5 = f6+f7;
	heapFloat[(r0+23)] = f4;
	heapFloat[(r0+24)] = f5;
	f4 = f12*f3;
	f5 = f14*f9;
	f0 = f0+f2;
	f2 = f8*f1;
	f3 = f10*f3;
	f6 = f11*f9;
	f4 = f4+f5;
	f5 = f18*f1;
	f0 = f0+f2;
	heap32[(r0+25)] = 0;
	f2 = f3+f6;
	f1 = f16*f1;
	f3 = f4+f5;
	heapFloat[(r0+26)] = f0;
	f0 = f2+f1;
	heapFloat[(r0+27)] = f3;
	heapFloat[(r0+28)] = f0;
	heap32[(r0+29)] = 0;
	r1 = heap32[(fp+6)];
	if(r1 ==0) //_LBB542_3
{
	r1 = _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3__index__;
}
else{
	r1 = _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3__index__;
}
	heap32[(r0+30)] = r1;
	heap32[(r0+31)] = 0;
	return;
}

function _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -64;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0)];
	f1 = heapFloat[(r0+1)];
	f2 = heapFloat[(r0+2)];
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	r1 = heap32[(fp+2)];
	f0 = f1/f_g0;
	f1 = heapFloat[(r0+2)];
	f2 = heapFloat[(r0+1)];
	f3 = heapFloat[(r0)];
	f3 = f3*f0;
	r0 = r1 >> 2;
	f2 = f2*f0;
	heapFloat[(r0)] = f3;
	f0 = f1*f0;
	heapFloat[(r0+1)] = f2;
	r2 = heap32[(fp)];
	heapFloat[(r0+2)] = f0;
	r2 = r2 >> 2;
	heap32[(r0+3)] = 0;
	r3 = heap32[(r2+30)];
	f0 = -f0;
	f1 = -f2;
	f2 = -f3;
	r4 = heap32[(r2+1)];
	r5 = heap32[(r2+31)];
	r6 = r3 & 1;
	if(r6 != 0) //_LBB543_2
{
	r6 = (r4 + r5)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	r3 = (r6 + r3)|0;
	r3 = (r3 + -1)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
}
	f3 = heapFloat[(r2+2)];
	f4 = heapFloat[(r2+3)];
	f5 = heapFloat[(r2+6)];
	f6 = heapFloat[(r2+7)];
	f3 = f3*f2;
	f4 = f4*f1;
	f7 = heapFloat[(r2+4)];
	f8 = heapFloat[(r2+10)];
	f9 = heapFloat[(r2+11)];
	f10 = heapFloat[(r2+12)];
	f11 = heapFloat[(r2+8)];
	f5 = f5*f2;
	f6 = f6*f1;
	f3 = f3+f4;
	f4 = f7*f0;
	r6 = sp + -16;
	f2 = f8*f2;
	f1 = f9*f1;
	f5 = f5+f6;
	f6 = f11*f0;
	f3 = f3+f4;
	r7 = r6 >> 2;
	f1 = f2+f1;
	f0 = f10*f0;
	f2 = f5+f6;
	heapFloat[(fp+-4)] = f3;
	f0 = f1+f0;
	heapFloat[(r7+1)] = f2;
	heapFloat[(r7+2)] = f0;
	heap32[(r7+3)] = 0;
	r7 = sp + -32;
	r4 = (r4 + r5)|0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r6;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r7 >> 2;
	f0 = heapFloat[(r2+22)];
	f1 = heapFloat[(fp+-8)];
	f2 = heapFloat[(r2+18)];
	f3 = heapFloat[(r2+14)];
	f4 = heapFloat[(r2+23)];
	f5 = heapFloat[(r3+1)];
	f6 = heapFloat[(r2+19)];
	f7 = heapFloat[(r2+15)];
	f0 = f0*f1;
	f4 = f4*f5;
	f8 = heapFloat[(r2+24)];
	f9 = heapFloat[(r3+2)];
	f10 = heapFloat[(r2+20)];
	f11 = heapFloat[(r2+16)];
	f2 = f2*f1;
	f6 = f6*f5;
	f1 = f3*f1;
	f3 = f7*f5;
	f0 = f0+f4;
	f4 = f8*f9;
	f2 = f2+f6;
	f5 = f10*f9;
	f1 = f1+f3;
	f3 = f11*f9;
	f0 = f0+f4;
	f4 = heapFloat[(r2+28)];
	f2 = f2+f5;
	f5 = heapFloat[(r2+27)];
	f1 = f1+f3;
	f3 = heapFloat[(r2+26)];
	r3 = heap32[(r2+30)];
	f0 = f0+f4;
	f2 = f2+f5;
	f1 = f1+f3;
	r4 = heap32[(r2)];
	r2 = heap32[(r2+31)];
	r5 = r3 & 1;
	if(r5 != 0) //_LBB543_5
{
	r5 = (r4 + r2)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r3 = (r3 + r5)|0;
	r3 = (r3 + -1)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
}
	r5 = sp + -48;
	r2 = (r4 + r2)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = r5 >> 2;
	f3 = heapFloat[(fp+-12)];
	f4 = heapFloat[(r1+2)];
	f5 = heapFloat[(r1+1)];
	f1 = f3-f1;
	f2 = f5-f2;
	heapFloat[(r0+4)] = f1;
	f0 = f4-f0;
	heapFloat[(r0+5)] = f2;
	heapFloat[(r0+6)] = f0;
	heap32[(r0+7)] = 0;
	return;
}

function _ZN12gjkepa2_impl3GJK13EncloseOriginEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
var __label__ = 0;
	i7 = sp + -128;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+93)];
	r3 = r2 >> 2;
	r4 = heap32[(r3+8)];
_1: do {
	if(r4 >2) //_LBB544_3
{
	if(r4 ==3) //_LBB544_17
{
	r5 = heap32[(r3)];
	r6 = heap32[(r3+2)];
	r7 = heap32[(r3+1)];
	r6 = r6 >> 2;
	r5 = r5 >> 2;
	r7 = r7 >> 2;
	f0 = heapFloat[(r6+6)];
	f1 = heapFloat[(r5+6)];
	f2 = heapFloat[(r7+6)];
	f3 = heapFloat[(r6+5)];
	f4 = heapFloat[(r5+5)];
	f5 = heapFloat[(r7+5)];
	f5 = f5-f4;
	f0 = f0-f1;
	f1 = f2-f1;
	f2 = f3-f4;
	f3 = heapFloat[(r6+4)];
	f4 = heapFloat[(r5+4)];
	f6 = heapFloat[(r7+4)];
	f3 = f3-f4;
	f4 = f6-f4;
	f6 = f5*f0;
	f7 = f1*f2;
	r5 = sp + -112;
	f6 = f6-f7;
	f1 = f1*f3;
	f0 = f4*f0;
	f0 = f1-f0;
	r6 = r5 >> 2;
	heapFloat[(fp+-28)] = f6;
	f1 = f4*f2;
	f2 = f5*f3;
	f1 = f1-f2;
	heapFloat[(r6+1)] = f0;
	f2 = f6*f6;
	f0 = f0*f0;
	heapFloat[(r6+2)] = f1;
	f0 = f2+f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 =                         0;
	heap32[(r6+3)] = 0;
	if(f0 <=f1) //_LBB544_25
{
__label__ = 24;
break _1;
}
else{
	r4 = r4 << 2;
	r4 = (r2 + r4)|0;
	r4 = r4 >> 2;
	heap32[(r4+4)] = 0;
	r4 = heap32[(r1+91)];
	r4 = (r4 + -1)|0;
	r7 = heap32[(r3+8)];
	r8 = r4 << 2;
	r7 = r7 << 2;
	r8 = (r0 + r8)|0;
	r7 = (r2 + r7)|0;
	r8 = r8 >> 2;
	heap32[(r1+91)] = r4;
	r4 = r7 >> 2;
	r7 = heap32[(r8+87)];
	heap32[(r4)] = r7;
	r4 = heap32[(r3+8)];
	r7 = r4 << 2;
	r2 = (r2 + r7)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r4 = (r4 + 1)|0;
	heap32[(r3+8)] = r4;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r2;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	heap32[(g0)] = r0;
	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB544_26
{
__label__ = 25;
break _1;
}
else{
	r3 = heap32[(r1+93)];
	r2 = r3 >> 2;
	r4 = heap32[(r2+8)];
	r4 = (r4 + -1)|0;
	r5 = heap32[(r1+91)];
	r7 = r4 << 2;
	r3 = (r3 + r7)|0;
	r7 = (r0 + 348)|0;
	r8 = r5 << 2;
	r8 = (r7 + r8)|0;
	r3 = r3 >> 2;
	heap32[(r2+8)] = r4;
	r2 = r8 >> 2;
	r3 = heap32[(r3)];
	r4 = (r5 + 1)|0;
	heap32[(r2)] = r3;
	heap32[(r1+91)] = r4;
	f0 = heapFloat[(r6+2)];
	f1 = heapFloat[(r6+1)];
	f2 = heapFloat[(fp+-28)];
	r3 = sp + -16;
	f2 = -f2;
	r2 = r3 >> 2;
	f1 = -f1;
	heapFloat[(fp+-4)] = f2;
	f0 = -f0;
	heapFloat[(r2+1)] = f1;
	heapFloat[(r2+2)] = f0;
	heap32[(r2+3)] = 0;
	r2 = heap32[(r1+93)];
	r4 = r2 >> 2;
	r5 = heap32[(r4+8)];
	r5 = r5 << 2;
	r5 = (r2 + r5)|0;
	r5 = r5 >> 2;
	heap32[(r5+4)] = 0;
	r5 = heap32[(r1+91)];
	r5 = (r5 + -1)|0;
	r6 = heap32[(r4+8)];
	r8 = r5 << 2;
	r6 = r6 << 2;
	r7 = (r7 + r8)|0;
	r6 = (r2 + r6)|0;
	r7 = r7 >> 2;
	heap32[(r1+91)] = r5;
	r5 = r6 >> 2;
	r6 = heap32[(r7)];
	heap32[(r5)] = r6;
	r5 = heap32[(r4+8)];
	r6 = r5 << 2;
	r2 = (r2 + r6)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r5 = (r5 + 1)|0;
	heap32[(r4+8)] = r5;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	heap32[(g0)] = r0;
	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB544_26
{
__label__ = 25;
break _1;
}
else{
	r3 = heap32[(r1+93)];
	r2 = r3 >> 2;
	r4 = heap32[(r2+8)];
	r4 = (r4 + -1)|0;
	r5 = heap32[(r1+91)];
	r6 = r4 << 2;
	r7 = r5 << 2;
	r3 = (r3 + r6)|0;
	r0 = (r0 + r7)|0;
	r3 = r3 >> 2;
	heap32[(r2+8)] = r4;
	r0 = r0 >> 2;
	r3 = heap32[(r3)];
	r2 = (r5 + 1)|0;
	heap32[(r0+87)] = r3;
	heap32[(r1+91)] = r2;
	r3 = 0;
	r_g0 = r3;
	return;
}
}
}
}
else{
	if(r4 ==4) //_LBB544_21
{
	r0 = heap32[(r3)];
	r1 = heap32[(r3+1)];
	r2 = heap32[(r3+3)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	r3 = heap32[(r3+2)];
	r3 = r3 >> 2;
	f0 = heapFloat[(r1+6)];
	f1 = heapFloat[(r2+6)];
	f2 = heapFloat[(r0+6)];
	f3 = heapFloat[(r0+5)];
	f4 = heapFloat[(r2+5)];
	f5 = heapFloat[(r1+4)];
	f6 = heapFloat[(r2+4)];
	f7 = heapFloat[(r3+5)];
	f8 = heapFloat[(r0+4)];
	f9 = heapFloat[(r3+4)];
	f0 = f0-f1;
	f3 = f3-f4;
	f5 = f5-f6;
	f2 = f2-f1;
	f8 = f8-f6;
	f10 = f3*f0;
	f6 = f9-f6;
	f9 = f2*f5;
	f7 = f7-f4;
	f0 = f8*f0;
	f11 = heapFloat[(r3+6)];
	f12 = heapFloat[(r1+5)];
	f10 = f10*f6;
	f9 = f9*f7;
	f4 = f12-f4;
	f9 = f10+f9;
	f0 = f0*f7;
	f3 = f3*f5;
	f1 = f11-f1;
	f5 = f8*f4;
	f0 = f9-f0;
	f3 = f3*f1;
	f2 = f2*f4;
	f0 = f0-f3;
	f1 = f5*f1;
	f0 = f0+f1;
	f1 = f2*f6;
	f0 = f0-f1;
	f1 =                         0;
	if(f0 <f1) //_LBB544_23
{
	f0 = -f0;
}
	r0 = f0 > f1;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}
else{
__label__ = 24;
break _1;
}
}
}
else{
	if(r4 ==1) //_LBB544_5
{
	r2 = 0;
_16: while(true){
	if(uint(r2) <uint(3)) //_LBB544_6
{
	r3 = sp + -64;
	r4 = r3 >> 2;
	heap32[(fp+-16)] = 0;
	r5 = r2 << 2;
	heap32[(r4+1)] = 0;
	r5 = (r3 + r5)|0;
	heap32[(r4+2)] = 0;
	r5 = r5 >> 2;
	heap32[(r4+3)] = 0;
	heap32[(r5)] = 1065353216;
	r5 = heap32[(r1+93)];
	r6 = r5 >> 2;
	r7 = heap32[(r6+8)];
	r7 = r7 << 2;
	r7 = (r5 + r7)|0;
	r7 = r7 >> 2;
	heap32[(r7+4)] = 0;
	r7 = heap32[(r1+91)];
	r7 = (r7 + -1)|0;
	r8 = heap32[(r6+8)];
	r9 = r7 << 2;
	r8 = r8 << 2;
	r9 = (r0 + r9)|0;
	r8 = (r5 + r8)|0;
	r9 = r9 >> 2;
	heap32[(r1+91)] = r7;
	r7 = r8 >> 2;
	r8 = heap32[(r9+87)];
	heap32[(r7)] = r8;
	r7 = heap32[(r6+8)];
	r8 = r7 << 2;
	r5 = (r5 + r8)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r7 = (r7 + 1)|0;
	heap32[(r6+8)] = r7;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r5;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	heap32[(g0)] = r0;
	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB544_26
{
__label__ = 25;
break _1;
}
else{
	r3 = heap32[(r1+93)];
	r5 = r3 >> 2;
	r6 = heap32[(r5+8)];
	r6 = (r6 + -1)|0;
	r7 = heap32[(r1+91)];
	r8 = r6 << 2;
	r3 = (r3 + r8)|0;
	r8 = (r0 + 348)|0;
	r9 = r7 << 2;
	r9 = (r8 + r9)|0;
	r3 = r3 >> 2;
	heap32[(r5+8)] = r6;
	r5 = r9 >> 2;
	r3 = heap32[(r3)];
	r6 = (r7 + 1)|0;
	heap32[(r5)] = r3;
	heap32[(r1+91)] = r6;
	f0 = heapFloat[(r4+2)];
	f1 = heapFloat[(r4+1)];
	f2 = heapFloat[(fp+-16)];
	r3 = sp + -48;
	f2 = -f2;
	r4 = r3 >> 2;
	f1 = -f1;
	heapFloat[(fp+-12)] = f2;
	f0 = -f0;
	heapFloat[(r4+1)] = f1;
	heapFloat[(r4+2)] = f0;
	heap32[(r4+3)] = 0;
	r4 = heap32[(r1+93)];
	r5 = r4 >> 2;
	r6 = heap32[(r5+8)];
	r6 = r6 << 2;
	r6 = (r4 + r6)|0;
	r6 = r6 >> 2;
	heap32[(r6+4)] = 0;
	r6 = heap32[(r1+91)];
	r6 = (r6 + -1)|0;
	r7 = heap32[(r5+8)];
	r9 = r6 << 2;
	r7 = r7 << 2;
	r8 = (r8 + r9)|0;
	r7 = (r4 + r7)|0;
	r8 = r8 >> 2;
	heap32[(r1+91)] = r6;
	r6 = r7 >> 2;
	r7 = heap32[(r8)];
	heap32[(r6)] = r7;
	r6 = heap32[(r5+8)];
	r7 = r6 << 2;
	r4 = (r4 + r7)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r6 = (r6 + 1)|0;
	heap32[(r5+8)] = r6;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	heap32[(g0)] = r0;
	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB544_26
{
__label__ = 25;
break _1;
}
else{
	r3 = heap32[(r1+93)];
	r4 = r3 >> 2;
	r5 = heap32[(r4+8)];
	r5 = (r5 + -1)|0;
	r6 = heap32[(r1+91)];
	r7 = r5 << 2;
	r8 = r6 << 2;
	r3 = (r3 + r7)|0;
	r7 = (r0 + r8)|0;
	r3 = r3 >> 2;
	heap32[(r4+8)] = r5;
	r4 = r7 >> 2;
	r3 = heap32[(r3)];
	r2 = (r2 + 1)|0;
	r5 = (r6 + 1)|0;
	heap32[(r4+87)] = r3;
	heap32[(r1+91)] = r5;
continue _16;
}
}
}
else{
__label__ = 24;
break _1;
}
}
}
else{
	if(r4 ==2) //_LBB544_10
{
	r2 = heap32[(r3+1)];
	r3 = heap32[(r3)];
	r2 = r2 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r2+6)];
	f1 = heapFloat[(r3+6)];
	f2 = heapFloat[(r2+5)];
	f3 = heapFloat[(r3+5)];
	f4 = heapFloat[(r2+4)];
	f5 = heapFloat[(r3+4)];
	f0 = f0-f1;
	f1 = f2-f3;
	f2 = f4-f5;
	r2 = 0;
_23: while(true){
	if(uint(r2) <uint(3)) //_LBB544_11
{
	r3 = sp + -80;
	r4 = r3 >> 2;
	heap32[(fp+-20)] = 0;
	r5 = r2 << 2;
	heap32[(r4+1)] = 0;
	r3 = (r3 + r5)|0;
	heap32[(r4+2)] = 0;
	r3 = r3 >> 2;
	heap32[(r4+3)] = 0;
	heap32[(r3)] = 1065353216;
	f3 = heapFloat[(r4+2)];
	f4 = heapFloat[(r4+1)];
	f5 = heapFloat[(fp+-20)];
	f6 = f1*f3;
	f7 = f0*f4;
	r3 = sp + -96;
	f6 = f6-f7;
	f7 = f0*f5;
	f3 = f2*f3;
	f3 = f7-f3;
	r4 = r3 >> 2;
	heapFloat[(fp+-24)] = f6;
	f4 = f2*f4;
	f5 = f1*f5;
	f4 = f4-f5;
	heapFloat[(r4+1)] = f3;
	f5 = f6*f6;
	f3 = f3*f3;
	heapFloat[(r4+2)] = f4;
	f3 = f5+f3;
	f4 = f4*f4;
	f3 = f3+f4;
	f4 =                         0;
	heap32[(r4+3)] = 0;
if(!(f3 <=f4)) //_LBB544_15
{
	r5 = heap32[(r1+93)];
	r6 = r5 >> 2;
	r7 = heap32[(r6+8)];
	r7 = r7 << 2;
	r7 = (r5 + r7)|0;
	r7 = r7 >> 2;
	heap32[(r7+4)] = 0;
	r7 = heap32[(r1+91)];
	r7 = (r7 + -1)|0;
	r8 = heap32[(r6+8)];
	r9 = r7 << 2;
	r8 = r8 << 2;
	r9 = (r0 + r9)|0;
	r8 = (r5 + r8)|0;
	r9 = r9 >> 2;
	heap32[(r1+91)] = r7;
	r7 = r8 >> 2;
	r8 = heap32[(r9+87)];
	heap32[(r7)] = r8;
	r7 = heap32[(r6+8)];
	r8 = r7 << 2;
	r5 = (r5 + r8)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r7 = (r7 + 1)|0;
	heap32[(r6+8)] = r7;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r5;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	heap32[(g0)] = r0;
	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB544_26
{
__label__ = 25;
break _1;
}
else{
	r3 = heap32[(r1+93)];
	r5 = r3 >> 2;
	r6 = heap32[(r5+8)];
	r6 = (r6 + -1)|0;
	r7 = heap32[(r1+91)];
	r8 = r6 << 2;
	r3 = (r3 + r8)|0;
	r8 = (r0 + 348)|0;
	r9 = r7 << 2;
	r9 = (r8 + r9)|0;
	r3 = r3 >> 2;
	heap32[(r5+8)] = r6;
	r5 = r9 >> 2;
	r3 = heap32[(r3)];
	r6 = (r7 + 1)|0;
	heap32[(r5)] = r3;
	heap32[(r1+91)] = r6;
	f3 = heapFloat[(r4+2)];
	f4 = heapFloat[(r4+1)];
	f5 = heapFloat[(fp+-24)];
	r3 = sp + -32;
	f5 = -f5;
	r4 = r3 >> 2;
	f4 = -f4;
	heapFloat[(fp+-8)] = f5;
	f3 = -f3;
	heapFloat[(r4+1)] = f4;
	heapFloat[(r4+2)] = f3;
	heap32[(r4+3)] = 0;
	r4 = heap32[(r1+93)];
	r5 = r4 >> 2;
	r6 = heap32[(r5+8)];
	r6 = r6 << 2;
	r6 = (r4 + r6)|0;
	r6 = r6 >> 2;
	heap32[(r6+4)] = 0;
	r6 = heap32[(r1+91)];
	r6 = (r6 + -1)|0;
	r7 = heap32[(r5+8)];
	r9 = r6 << 2;
	r7 = r7 << 2;
	r8 = (r8 + r9)|0;
	r7 = (r4 + r7)|0;
	r8 = r8 >> 2;
	heap32[(r1+91)] = r6;
	r6 = r7 >> 2;
	r7 = heap32[(r8)];
	heap32[(r6)] = r7;
	r6 = heap32[(r5+8)];
	r7 = r6 << 2;
	r4 = (r4 + r7)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r6 = (r6 + 1)|0;
	heap32[(r5+8)] = r6;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	heap32[(g0)] = r0;
	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB544_26
{
__label__ = 25;
break _1;
}
else{
	r3 = heap32[(r1+93)];
	r4 = r3 >> 2;
	r5 = heap32[(r4+8)];
	r5 = (r5 + -1)|0;
	r6 = heap32[(r1+91)];
	r7 = r5 << 2;
	r8 = r6 << 2;
	r3 = (r3 + r7)|0;
	r7 = (r0 + r8)|0;
	r3 = r3 >> 2;
	heap32[(r4+8)] = r5;
	r4 = r7 >> 2;
	r3 = heap32[(r3)];
	r5 = (r6 + 1)|0;
	heap32[(r4+87)] = r3;
	heap32[(r1+91)] = r5;
}
}
}
	r2 = (r2 + 1)|0;
continue _23;
}
else{
__label__ = 24;
break _1;
}
}
}
else{
__label__ = 24;
}
}
}
} while(0);
switch(__label__ ){//multiple entries
case 24:
	r0 = 0;
	r_g0 = r0;
	return;
break;
case 25:
	r0 = 1;
	r_g0 = r0;
	return;
break;
}
}

function _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
var __label__ = 0;
	i7 = sp + -96;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = sp + -12;
	r2 = heap32[(fp+1)];
	r3 = r1 >> 2;
	heap32[(fp+-3)] = r0;
	r4 = heap32[(fp+2)];
	heap32[(r3+1)] = r2;
	r5 = r0 >> 2;
	heap32[(r3+2)] = r4;
	r2 = r2 >> 2;
	f0 = heapFloat[(r5+2)];
	f1 = heapFloat[(r2+2)];
	f2 = heapFloat[(r5+1)];
	f3 = heapFloat[(r2+1)];
	f4 = heapFloat[(r5)];
	f5 = heapFloat[(r2)];
	r3 = sp + -64;
	f6 = f4-f5;
	f7 = f2-f3;
	r6 = r3 >> 2;
	heapFloat[(fp+-16)] = f6;
	f8 = f0-f1;
	heapFloat[(r6+1)] = f7;
	heapFloat[(r6+2)] = f8;
	r4 = r4 >> 2;
	heap32[(r6+3)] = 0;
	f9 = heapFloat[(r4+2)];
	f10 = heapFloat[(r4+1)];
	f11 = heapFloat[(r4)];
	f5 = f5-f11;
	f3 = f3-f10;
	heapFloat[(r6+4)] = f5;
	f1 = f1-f9;
	heapFloat[(r6+5)] = f3;
	heapFloat[(r6+6)] = f1;
	f12 = f8*f5;
	f13 = f6*f1;
	f14 = f7*f1;
	f15 = f8*f3;
	f12 = f12-f13;
	f13 = f14-f15;
	f11 = f11-f4;
	heap32[(r6+7)] = 0;
	f14 = f6*f3;
	f15 = f7*f5;
	f14 = f14-f15;
	f10 = f10-f2;
	heapFloat[(r6+8)] = f11;
	f15 = f13*f13;
	f16 = f12*f12;
	f9 = f9-f0;
	heapFloat[(r6+9)] = f10;
	f15 = f15+f16;
	f16 = f14*f14;
	f15 = f15+f16;
	heapFloat[(r6+10)] = f9;
	heap32[(r6+11)] = 0;
	f16 =                         0;
	if(f15 >f16) //_LBB545_2
{
	r6 = heap32[(fp+3)];
	r7 = heap32[(fp+4)];
	r8 = sp + -72;
	r9 = r8 >> 2;
	heap32[(fp+-18)] = 0;
	r10 = 0;
	f17 =                        -1;
	heap32[(r9+1)] = 0;
	heap32[(fp+-19)] = 0;
	r18 = 0;
_3: while(true){
	f18 = f7*f14;
	f19 = f8*f12;
	f8 = f8*f13;
	f20 = f6*f14;
	f18 = f18-f19;
	f8 = f8-f20;
	f6 = f6*f12;
	f7 = f7*f13;
	f4 = f4*f18;
	f2 = f2*f8;
	f6 = f6-f7;
	f2 = f4+f2;
	f0 = f0*f6;
	f0 = f2+f0;
_5: do {
	if(f0 >f16) //_LBB545_5
{
	r11 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3;
	r12 = r10 << 2;
	r13 = (r11 + r12)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
	r14 = r13 << 2;
	r15 = (r1 + r14)|0;
	r15 = r15 >> 2;
	r15 = heap32[(r15)];
	r16 = sp + -76;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r15;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r16;
	_ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i7);
	f0 = f_g0;
if(!(f17 <f16)) //_LBB545_7
{
	if(f0 >=f17) //_LBB545_4
{
break _5;
}
}
	r0 = heap32[(fp+-19)];
	r15 = 1;
	r11 = (r11 + r14)|0;
	r16 = r0 & 1;
	r17 = r15 << r10;
	r0 = r0 & 2;
	r13 = r15 << r13;
	r11 = r11 >> 2;
	r15 = r16 == 0 ? r18 : r17;
	r0 = r0 == 0 ? r18 : r13;
	r11 = heap32[(r11)];
	r12 = (r6 + r12)|0;
	r13 = r7 >> 2;
	r0 = (r15 + r0)|0;
	r11 = r11 << 2;
	r14 = (r6 + r14)|0;
	r12 = r12 >> 2;
	heap32[(r13)] = r0;
	r0 = (r6 + r11)|0;
	r11 = r14 >> 2;
	heap32[(r12)] = heap32[(fp+-18)];
	r0 = r0 >> 2;
	heap32[(r11)] = heap32[(r9+1)];
	heap32[(r0)] = 0;
	f17 = f0;
}
} while(0);
	if(r10 ==2) //_LBB545_10
{
break _3;
}
else{
	r11 = (r10 + 1)|0;
	r0 = r10 << 2;
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	r10 = r10 << 4;
	r0 = heap32[(r0+1)];
	r10 = (r3 + r10)|0;
	r10 = r10 >> 2;
	r12 = r0 >> 2;
	f6 = heapFloat[(r10+4)];
	f7 = heapFloat[(r10+5)];
	f8 = heapFloat[(r10+6)];
	f4 = heapFloat[(r12)];
	f2 = heapFloat[(r12+1)];
	f0 = heapFloat[(r12+2)];
	r10 = r11;
}
}
	if(f17 <f16) //_LBB545_12
{
	f17 = heapFloat[(r5)];
	f0 = heapFloat[(r5+1)];
	f2 = heapFloat[(r5+2)];
	f17 = f17*f13;
	f0 = f0*f12;
	heapFloat[(g0)] = f15;
	f17 = f17+f0;
	f0 = f2*f14;
	f17 = f17+f0;
	r0 = r7 >> 2;
	sqrtf(i7);
	f0 = f_g0;
	f17 = f17/f15;
	heap32[(r0)] = 7;
	f2 = f13*f17;
	f4 = heapFloat[(r2)];
	f6 = f12*f17;
	f7 = heapFloat[(r2+1)];
	f8 = heapFloat[(r2+2)];
	f17 = f14*f17;
	f7 = f7-f6;
	f8 = f8-f17;
	f4 = f4-f2;
	f12 = f3*f8;
	f13 = f1*f7;
	f1 = f1*f4;
	f8 = f5*f8;
	f12 = f12-f13;
	f1 = f1-f8;
	f5 = f5*f7;
	f3 = f3*f4;
	f3 = f5-f3;
	f4 = f12*f12;
	f1 = f1*f1;
	f1 = f4+f1;
	f3 = f3*f3;
	f1 = f1+f3;
	heapFloat[(g0)] = f1;
	sqrtf(i7);
	r0 = r6 >> 2;
	f1 = f_g0/f0;
	heapFloat[(r0)] = f1;
	f1 = heapFloat[(r4+2)];
	f3 = heapFloat[(r4+1)];
	f4 = heapFloat[(r4)];
	f3 = f3-f6;
	f1 = f1-f17;
	f4 = f4-f2;
	f5 = f10*f1;
	f7 = f9*f3;
	f8 = f9*f4;
	f1 = f11*f1;
	f5 = f5-f7;
	f1 = f8-f1;
	f3 = f11*f3;
	f4 = f10*f4;
	f3 = f3-f4;
	f4 = f5*f5;
	f1 = f1*f1;
	f1 = f4+f1;
	f3 = f3*f3;
	f1 = f1+f3;
	heapFloat[(g0)] = f1;
	sqrtf(i7);
	f0 = f_g0/f0;
	heapFloat[(r0+1)] = f0;
	f1 = heapFloat[(r0)];
	f3 =                         1;
	f0 = f1+f0;
	f1 = f2*f2;
	f2 = f6*f6;
	f0 = f3-f0;
	f1 = f1+f2;
	f17 = f17*f17;
	heapFloat[(r0+2)] = f0;
	f17 = f1+f17;
}
}
else{
	f17 =                        -1;
}
	f_g0 = f17;
	return;
}

function _ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
var __label__ = 0;
	i7 = sp + -240;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = (r0 + 220)|0;
	r3 = (r0 + 252)|0;
	heap32[(r1+87)] = r2;
	r2 = (r0 + 284)|0;
	heap32[(r1+88)] = r3;
	r3 = (r0 + 316)|0;
	heap32[(r1+89)] = r2;
	heap32[(r1+90)] = r3;
	heap32[(r1+91)] = 4;
	r2 = heap32[(fp+1)];
	heap32[(r1+92)] = 0;
	r2 = r2 >> 2;
	heap32[(r1+94)] = 0;
	r4 = heap32[(r2+1)];
	r5 = heap32[(r2)];
	heap32[(r1)] = r5;
	heap32[(r1+1)] = r4;
	heap32[(r1+2)] = heap32[(r2+2)];
	heap32[(r1+3)] = heap32[(r2+3)];
	heap32[(r1+4)] = heap32[(r2+4)];
	heap32[(r1+5)] = heap32[(r2+5)];
	heap32[(r1+6)] = heap32[(r2+6)];
	heap32[(r1+7)] = heap32[(r2+7)];
	heap32[(r1+8)] = heap32[(r2+8)];
	heap32[(r1+9)] = heap32[(r2+9)];
	heap32[(r1+10)] = heap32[(r2+10)];
	heap32[(r1+11)] = heap32[(r2+11)];
	heap32[(r1+12)] = heap32[(r2+12)];
	heap32[(r1+13)] = heap32[(r2+13)];
	heap32[(r1+14)] = heap32[(r2+14)];
	heap32[(r1+15)] = heap32[(r2+15)];
	heap32[(r1+16)] = heap32[(r2+16)];
	heap32[(r1+17)] = heap32[(r2+17)];
	heap32[(r1+18)] = heap32[(r2+18)];
	heap32[(r1+19)] = heap32[(r2+19)];
	heap32[(r1+20)] = heap32[(r2+20)];
	heap32[(r1+21)] = heap32[(r2+21)];
	heap32[(r1+22)] = heap32[(r2+22)];
	heap32[(r1+23)] = heap32[(r2+23)];
	heap32[(r1+24)] = heap32[(r2+24)];
	heap32[(r1+25)] = heap32[(r2+25)];
	heap32[(r1+26)] = heap32[(r2+26)];
	heap32[(r1+27)] = heap32[(r2+27)];
	heap32[(r1+28)] = heap32[(r2+28)];
	heap32[(r1+29)] = heap32[(r2+29)];
	r4 = heap32[(r2+31)];
	r2 = heap32[(r2+30)];
	heap32[(r1+30)] = r2;
	heap32[(r1+31)] = r4;
	r2 = heap32[(fp+2)];
	heap32[(r1+36)] = 0;
	r2 = r2 >> 2;
	heap32[(r1+45)] = 0;
	f0 = heapFloat[(r2)];
	heapFloat[(r1+32)] = f0;
	f1 = heapFloat[(r2+1)];
	heapFloat[(r1+33)] = f1;
	f2 = heapFloat[(r2+2)];
	f3 = f0*f0;
	f4 = f1*f1;
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	heapFloat[(r1+34)] = f2;
	heap32[(r1+35)] = heap32[(r2+3)];
	f4 =                         0;
	if(f3 <=f4) //_LBB546_2
{
	r2 = sp + -112;
	r2 = r2 >> 2;
	heap32[(fp+-28)] = 1065353216;
	heap32[(r2+1)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
}
else{
	r2 = sp + -112;
	f0 = -f0;
	r2 = r2 >> 2;
	f1 = -f1;
	heapFloat[(fp+-28)] = f0;
	f0 = -f2;
	heapFloat[(r2+1)] = f1;
	heapFloat[(r2+2)] = f0;
	heap32[(r2+3)] = 0;
}
	heap32[(r1+41)] = 0;
	heap32[(r1+91)] = 3;
	heap32[(r1+37)] = r3;
	heap32[(r1+45)] = 1;
	r2 = sp + -112;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	heap32[(r1+41)] = 1065353216;
	r2 = heap32[(r1+37)];
	r2 = r2 >> 2;
	f0 = heapFloat[(r2+4)];
	heapFloat[(r1+32)] = f0;
	f1 = heapFloat[(r2+5)];
	heapFloat[(r1+33)] = f1;
	f2 = heapFloat[(r2+6)];
	heapFloat[(r1+34)] = f2;
	f5 = heapFloat[(r2+7)];
	r2 = sp + -176;
	r3 = r2 >> 2;
	heapFloat[(r1+35)] = f5;
	heapFloat[(r3+12)] = f0;
	heapFloat[(r3+13)] = f1;
	heapFloat[(r3+14)] = f2;
	heapFloat[(r3+15)] = f5;
	heapFloat[(r3+8)] = f0;
	heapFloat[(r3+9)] = f1;
	heapFloat[(r3+10)] = f2;
	heapFloat[(r3+11)] = f5;
	heapFloat[(r3+4)] = f0;
	heapFloat[(r3+5)] = f1;
	heapFloat[(r3+6)] = f2;
	heapFloat[(r3+7)] = f5;
	heapFloat[(fp+-44)] = f0;
	heapFloat[(r3+1)] = f1;
	r4 = (r0 + 148)|0;
	heap32[(fp+-52)] = r4;
	r4 = 0;
	r5 = 1;
	heap32[(fp+-53)] = r5;
	heapFloat[(r3+2)] = f2;
	heapFloat[(r3+3)] = f5;
	heap32[(fp+-50)] = r5;
	r24 = 0;
_5: while(true){
	f0 = f0*f0;
	f1 = f1*f1;
	r3 = heap32[(r1+92)];
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f_g0;
	f1 =   9.9999997473787516e-005;
	if(f0 >=f1) //_LBB546_6
{
	r5 = heap32[(fp+-53)];
	r5 = (r5 - r3)|0;
	heap32[(fp+-51)] = r5;
	f2 = heapFloat[(r1+34)];
	f5 = heapFloat[(r1+33)];
	f6 = heapFloat[(r1+32)];
	r5 = sp + -96;
	f6 = -f6;
	r6 = r5 >> 2;
	f5 = -f5;
	heapFloat[(fp+-24)] = f6;
	r3 = (r3 * 36)|0;
	f2 = -f2;
	heapFloat[(r6+1)] = f5;
	r7 = (r0 + r3)|0;
	heapFloat[(r6+2)] = f2;
	heap32[(r6+3)] = 0;
	r6 = r7 >> 2;
	r8 = heap32[(r6+45)];
	r8 = r8 << 2;
	r8 = (r7 + r8)|0;
	r8 = r8 >> 2;
	heap32[(r8+41)] = 0;
	r8 = heap32[(r1+91)];
	r8 = (r8 + -1)|0;
	r9 = heap32[(r6+45)];
	r10 = r8 << 2;
	r10 = (r0 + r10)|0;
	r9 = r9 << 2;
	r7 = (r7 + 148)|0;
	r9 = (r7 + r9)|0;
	r10 = r10 >> 2;
	heap32[(r1+91)] = r8;
	r8 = r9 >> 2;
	r9 = heap32[(r10+87)];
	heap32[(r8)] = r9;
	r8 = heap32[(r6+45)];
	r9 = r8 << 2;
	r9 = (r7 + r9)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	r8 = (r8 + 1)|0;
	heap32[(r6+45)] = r8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r9;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	r5 = heap32[(r6+45)];
	r8 = r5 << 2;
	r7 = (r8 + r7)|0;
	r7 = r7 >> 2;
	r7 = heap32[(r7+-1)];
	r8 = 0;
_8: while(true){
	if(uint(r8) <uint(4)) //_LBB546_7
{
	r9 = r8 << 4;
	r9 = (r2 + r9)|0;
	r10 = r7 >> 2;
	r9 = r9 >> 2;
	f2 = heapFloat[(r10+4)];
	f5 = heapFloat[(r9)];
	f6 = heapFloat[(r10+5)];
	f7 = heapFloat[(r9+1)];
	f2 = f2-f5;
	f5 = f6-f7;
	f6 = heapFloat[(r10+6)];
	f7 = heapFloat[(r9+2)];
	f6 = f6-f7;
	f2 = f2*f2;
	f5 = f5*f5;
	f2 = f2+f5;
	f5 = f6*f6;
	f2 = f2+f5;
	if(f2 <f1) //_LBB546_10
{
__label__ = 10;
break _5;
}
else{
	r8 = (r8 + 1)|0;
}
}
else{
break _8;
}
}
	r8 = heap32[(fp+-50)];
	r8 = r8 << 4;
	r8 = (r2 + r8)|0;
	r8 = r8 >> 2;
	r7 = r7 >> 2;
	heap32[(r8)] = heap32[(r7+4)];
	heap32[(r8+1)] = heap32[(r7+5)];
	heap32[(r8+2)] = heap32[(r7+6)];
	heap32[(r8+3)] = heap32[(r7+7)];
	f1 = heapFloat[(r1+32)];
	f2 = heapFloat[(r7+4)];
	f5 = heapFloat[(r1+33)];
	f6 = heapFloat[(r7+5)];
	f1 = f1*f2;
	f2 = f5*f6;
	f5 = heapFloat[(r1+34)];
	f6 = heapFloat[(r7+6)];
	f1 = f1+f2;
	f2 = f5*f6;
	f1 = f1+f2;
	f1 = f1/f0;
	f4 = f1 > f4 ? f1 : f4;
	f1 =  -9.9999997473787516e-005;
	f2 = f0-f4;
	f0 = f0*f1;
	f0 = f2+f0;
	f5 =                         0;
	if(f0 >f5) //_LBB546_13
{
	heap32[(fp+-49)] = 0;
_14: do {
	if(r5 ==2) //_LBB546_17
{
	r5 = heap32[(r6+38)];
	r7 = heap32[(r6+37)];
	r7 = (r7 + 16)|0;
	r5 = (r5 + 16)|0;
	r8 = sp + -192;
	r9 = sp + -196;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r9;
	_ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i7);
	f3 = f_g0;
__label__ = 32;
break _14;
}
else{
	if(r5 ==3) //_LBB546_18
{
	r5 = heap32[(r6+39)];
	r7 = heap32[(r6+38)];
	r8 = heap32[(r6+37)];
	r8 = (r8 + 16)|0;
	r7 = (r7 + 16)|0;
	r5 = (r5 + 16)|0;
	r9 = sp + -192;
	r10 = sp + -196;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r9;
	heap32[(g0+4)] = r10;
	_ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(i7);
	f3 = f_g0;
__label__ = 32;
}
else{
	if(r5 ==4) //_LBB546_19
{
	r5 = heap32[(r6+40)];
	r7 = heap32[(r6+39)];
	r8 = heap32[(r6+38)];
	r9 = heap32[(r6+37)];
	r10 = sp + -16;
	r11 = (r9 + 16)|0;
	r12 = r10 >> 2;
	r13 = (r8 + 16)|0;
	heap32[(fp+-4)] = r11;
	r11 = (r7 + 16)|0;
	heap32[(r12+1)] = r13;
	r13 = (r5 + 16)|0;
	heap32[(r12+2)] = r11;
	r9 = r9 >> 2;
	heap32[(r12+3)] = r13;
	r5 = r5 >> 2;
	f0 = heapFloat[(r9+6)];
	f1 = heapFloat[(r5+6)];
	f2 = heapFloat[(r9+5)];
	f3 = heapFloat[(r5+5)];
	f6 = heapFloat[(r9+4)];
	f7 = heapFloat[(r5+4)];
	r11 = sp + -64;
	f8 = f6-f7;
	f9 = f2-f3;
	r12 = r11 >> 2;
	heapFloat[(fp+-16)] = f8;
	f10 = f0-f1;
	heapFloat[(r12+1)] = f9;
	heapFloat[(r12+2)] = f10;
	r8 = r8 >> 2;
	heap32[(r12+3)] = 0;
	f11 = heapFloat[(r8+6)];
	f12 = heapFloat[(r8+5)];
	f13 = heapFloat[(r8+4)];
	f14 = f13-f7;
	f15 = f12-f3;
	heapFloat[(r12+4)] = f14;
	f16 = f11-f1;
	heapFloat[(r12+5)] = f15;
	heapFloat[(r12+6)] = f16;
	r7 = r7 >> 2;
	heap32[(r12+7)] = 0;
	f17 = heapFloat[(r7+5)];
	f18 = heapFloat[(r7+4)];
	f19 = f9*f16;
	f7 = f18-f7;
	f20 = f10*f14;
	f3 = f17-f3;
	f21 = heapFloat[(r7+6)];
	f16 = f8*f16;
	f19 = f19*f7;
	f20 = f20*f3;
	f22 = f11-f21;
	f23 = f2-f12;
	f18 = f13-f18;
	f11 = f0-f11;
	f12 = f12-f17;
	f13 = f6-f13;
	f17 = f19+f20;
	f16 = f16*f3;
	f14 = f9*f14;
	f1 = f21-f1;
	f19 = f8*f15;
	f20 = f12*f11;
	f21 = f22*f23;
	f22 = f22*f13;
	f11 = f18*f11;
	f16 = f17-f16;
	f14 = f14*f1;
	f17 = f20-f21;
	f11 = f22-f11;
	f15 = f10*f15;
	heapFloat[(r12+8)] = f7;
	f18 = f18*f23;
	f12 = f12*f13;
	f13 = f16-f14;
	f14 = f19*f1;
	f12 = f18-f12;
	heapFloat[(r12+9)] = f3;
	f3 = f6*f17;
	f2 = f2*f11;
	f6 = f13+f14;
	f7 = f15*f7;
	f6 = f6-f7;
	heapFloat[(r12+10)] = f1;
	f1 = f3+f2;
	f0 = f0*f12;
	f0 = f1+f0;
	heap32[(r12+11)] = 0;
	f0 = f0*f6;
	if(f0 >f5) //_LBB546_45
{
__label__ = 42;
break _5;
}
else{
	if(f6 <f5) //_LBB546_22
{
	f0 = -f6;
}
else{
	f0 = f6;
}
	if(f0 <=f5) //_LBB546_45
{
__label__ = 42;
break _5;
}
else{
	r12 = sp + -76;
	r14 = r12 >> 2;
	heap32[(fp+-19)] = 0;
	heap32[(r14+1)] = 0;
	r15 = 0;
	f3 =                        -1;
	heap32[(r14+2)] = 0;
	heap32[(fp+-20)] = 0;
_27: while(true){
	r16 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3;
	r17 = r15 << 2;
	r18 = (r16 + r17)|0;
	r18 = r18 >> 2;
	r18 = heap32[(r18)];
	r19 = r18 << 4;
	r19 = (r11 + r19)|0;
	r19 = r19 >> 2;
	f0 = heapFloat[(r19+1)];
	f1 = heapFloat[(r19+2)];
	f2 = heapFloat[(r19)];
	f7 = f9*f1;
	f11 = f10*f0;
	f10 = f10*f2;
	f1 = f8*f1;
	f12 = heapFloat[(r5+4)];
	f7 = f7-f11;
	f11 = heapFloat[(r5+5)];
	f1 = f10-f1;
	f0 = f8*f0;
	f2 = f9*f2;
	f8 = f12*f7;
	f1 = f11*f1;
	f9 = heapFloat[(r5+6)];
	f0 = f0-f2;
	f1 = f8+f1;
	f0 = f9*f0;
	f0 = f1+f0;
	f0 = f0*f6;
_29: do {
	if(f0 >f5) //_LBB546_27
{
	r19 = r18 << 2;
	r20 = (r10 + r19)|0;
	r21 = (r10 + r17)|0;
	r20 = r20 >> 2;
	r21 = r21 >> 2;
	r20 = heap32[(r20)];
	r21 = heap32[(r21)];
	r22 = sp + -80;
	heap32[(g0)] = r21;
	heap32[(g0+1)] = r20;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r12;
	heap32[(g0+4)] = r22;
	_ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(i7);
	f0 = f_g0;
	f1 =                         0;
if(!(f3 <f1)) //_LBB546_29
{
	if(f0 >=f3) //_LBB546_26
{
break _29;
}
}
	r20 = heap32[(fp+-20)];
	r21 = 1;
	r22 = r20 & 1;
	r23 = r21 << r15;
	r25 = r20 & 2;
	r18 = r21 << r18;
	r16 = (r16 + r19)|0;
	r21 = r22 == 0 ? r24 : r23;
	r18 = r25 == 0 ? r24 : r18;
	r20 = r20 & 4;
	r22 = 8;
	r23 = sp + -192;
	r16 = r16 >> 2;
	r18 = (r21 + r18)|0;
	r20 = r20 == 0 ? r24 : r22;
	r16 = heap32[(r16)];
	r17 = (r23 + r17)|0;
	r18 = (r18 + r20)|0;
	r16 = r16 << 2;
	r19 = (r23 + r19)|0;
	r17 = r17 >> 2;
	heap32[(fp+-49)] = r18;
	r16 = (r23 + r16)|0;
	r18 = r19 >> 2;
	heap32[(r17)] = heap32[(fp+-19)];
	r16 = r16 >> 2;
	heap32[(r18)] = heap32[(r14+1)];
	r17 = r23 >> 2;
	heap32[(r16)] = 0;
	heap32[(r17+3)] = heap32[(r14+2)];
	f3 = f0;
}
} while(0);
	if(r15 ==2) //_LBB546_32
{
break _27;
}
else{
	r16 = (r15 + 1)|0;
	r15 = r15 << 4;
	r15 = (r11 + r15)|0;
	r15 = r15 >> 2;
	f8 = heapFloat[(r15+4)];
	f9 = heapFloat[(r15+5)];
	f10 = heapFloat[(r15+6)];
	r15 = r16;
}
}
	if(f3 <f5) //_LBB546_34
{
	heap32[(fp+-49)] = 15;
	f0 = heapFloat[(r7+5)];
	f1 = heapFloat[(r8+6)];
	f2 = heapFloat[(r8+4)];
	f3 = heapFloat[(r7+6)];
	f7 = heapFloat[(r7+4)];
	f8 = f0*f1;
	f9 = heapFloat[(r5+4)];
	f10 = f3*f2;
	f11 = heapFloat[(r5+5)];
	f12 = f7*f1;
	f8 = f8*f9;
	f10 = f10*f11;
	f13 = heapFloat[(r8+5)];
	f14 = heapFloat[(r5+6)];
	f15 = f0*f2;
	f8 = f8+f10;
	f10 = f12*f11;
	f12 = f7*f13;
	f8 = f8-f10;
	f10 = f15*f14;
	f15 = f3*f13;
	f8 = f8-f10;
	f10 = f12*f14;
	f8 = f8+f10;
	f10 = f15*f9;
	f8 = f8-f10;
	f8 = f8/f6;
	heapFloat[(fp+-48)] = f8;
	f10 = heapFloat[(r9+5)];
	f12 = heapFloat[(r9+6)];
	f15 = heapFloat[(r9+4)];
	f16 = f10*f3;
	f17 = f12*f7;
	f18 = f13*f12;
	f19 = f1*f15;
	f3 = f15*f3;
	f16 = f16*f9;
	f17 = f17*f11;
	f20 = f2*f12;
	f7 = f10*f7;
	f18 = f18*f9;
	f19 = f19*f11;
	f16 = f16+f17;
	f3 = f3*f11;
	f13 = f13*f15;
	f15 = f15*f0;
	f17 = f18+f19;
	f11 = f20*f11;
	f3 = f16-f3;
	f7 = f7*f14;
	f2 = f2*f10;
	f0 = f12*f0;
	f11 = f17-f11;
	f12 = f13*f14;
	f3 = f3-f7;
	f7 = f15*f14;
	f1 = f1*f10;
	f10 = f11-f12;
	f2 = f2*f14;
	f3 = f3+f7;
	f0 = f0*f9;
	f0 = f3-f0;
	f2 = f10+f2;
	f1 = f1*f9;
	r5 = sp + -192;
	f1 = f2-f1;
	f0 = f0/f6;
	r5 = r5 >> 2;
	f2 = f8+f0;
	f1 = f1/f6;
	heapFloat[(r5+1)] = f0;
	f0 =                         1;
	f2 = f2+f1;
	r7 = 15;
	f0 = f0-f2;
	heapFloat[(r5+2)] = f1;
	heapFloat[(r5+3)] = f0;
__label__ = 34;
}
else{
__label__ = 32;
}
}
}
}
else{
__label__ = 32;
}
}
}
} while(0);
if (__label__ == 32){
	f0 =                         0;
	if(f3 <f0) //_LBB546_45
{
__label__ = 42;
break _5;
}
else{
	r7 = heap32[(fp+-49)];
	f5 = f3;
}
}
	r5 = heap32[(fp+-51)];
	r8 = (r5 * 36)|0;
	r8 = (r0 + r8)|0;
	r9 = r8 >> 2;
	heap32[(r9+45)] = 0;
	heap32[(r1+32)] = 0;
	heap32[(r1+33)] = 0;
	heap32[(r1+34)] = 0;
	heap32[(r1+35)] = 0;
	heap32[(r1+92)] = r5;
	r5 = heap32[(r6+45)];
_42: do {
if(!(r5 ==0)) //_LBB546_43
{
	r6 = heap32[(fp+-52)];
	r3 = (r6 + r3)|0;
	r6 = 0;
_44: while(true){
	r10 = 1;
	r10 = r10 << r6;
	r10 = r7 & r10;
	if(r10 ==0) //_LBB546_41
{
	r10 = r6 << 2;
	r11 = heap32[(r1+91)];
	r10 = (r3 + r10)|0;
	r12 = r11 << 2;
	r10 = r10 >> 2;
	r12 = (r0 + r12)|0;
	r10 = heap32[(r10)];
	r12 = r12 >> 2;
	r11 = (r11 + 1)|0;
	heap32[(r12+87)] = r10;
	heap32[(r1+91)] = r11;
}
else{
	r10 = r6 << 2;
	r11 = (r3 + r10)|0;
	r12 = heap32[(r9+45)];
	r11 = r11 >> 2;
	r13 = (r8 + 148)|0;
	r12 = r12 << 2;
	r12 = (r13 + r12)|0;
	r14 = heap32[(r11)];
	r12 = r12 >> 2;
	r15 = sp + -192;
	heap32[(r12)] = r14;
	r12 = heap32[(r9+45)];
	r10 = (r15 + r10)|0;
	r14 = r12 << 2;
	r10 = r10 >> 2;
	r13 = (r13 + r14)|0;
	f0 = heapFloat[(r10)];
	r10 = r13 >> 2;
	r12 = (r12 + 1)|0;
	heapFloat[(r10+4)] = f0;
	heap32[(r9+45)] = r12;
	r10 = heap32[(r11)];
	r10 = r10 >> 2;
	f1 = heapFloat[(r10+4)];
	f2 = heapFloat[(r10+6)];
	f3 = heapFloat[(r10+5)];
	f6 = heapFloat[(r1+32)];
	f1 = f1*f0;
	f1 = f6+f1;
	heapFloat[(r1+32)] = f1;
	f1 = f3*f0;
	f3 = heapFloat[(r1+33)];
	f1 = f3+f1;
	heapFloat[(r1+33)] = f1;
	f0 = f2*f0;
	f1 = heapFloat[(r1+34)];
	f0 = f1+f0;
	heapFloat[(r1+34)] = f0;
}
	r6 = (r6 + 1)|0;
if(!(r5 !=r6)) //_LBB546_39
{
break _42;
}
}
}
} while(0);
if(!(r7 !=15)) //_LBB546_46
{
	heap32[(r1+94)] = 1;
}
	r4 = (r4 + 1)|0;
	if(uint(r4) <uint(128)) //_LBB546_48
{
	r3 = heap32[(r1+94)];
	if(r3 !=0) //_LBB546_50
{
__label__ = 47;
break _5;
}
else{
	r5 = heap32[(fp+-50)];
	r3 = (r5 + 1)|0;
	f0 = heapFloat[(r1+32)];
	f1 = heapFloat[(r1+33)];
	f2 = heapFloat[(r1+34)];
	r5 = r3 & 3;
	heap32[(fp+-50)] = r5;
	f3 = f5;
continue _5;
}
}
else{
__label__ = 44;
break _5;
}
}
else{
__label__ = 12;
break _5;
}
}
else{
__label__ = 5;
break _5;
}
}
switch(__label__ ){//multiple entries
case 10:
	r2 = heap32[(r1+92)];
	r2 = (r2 * 36)|0;
	r2 = (r0 + r2)|0;
	r3 = r2 >> 2;
	r4 = heap32[(r3+45)];
	r4 = (r4 + -1)|0;
	r5 = r4 << 2;
	r6 = heap32[(r1+91)];
	r2 = (r2 + r5)|0;
	r5 = r6 << 2;
	r2 = (r2 + 148)|0;
	r5 = (r0 + r5)|0;
	r2 = r2 >> 2;
	heap32[(r3+45)] = r4;
	r3 = r5 >> 2;
	r2 = heap32[(r2)];
	r4 = (r6 + 1)|0;
	heap32[(r3+87)] = r2;
	heap32[(r1+91)] = r4;
break;
case 42:
	r2 = heap32[(r1+92)];
	r2 = (r2 * 36)|0;
	r2 = (r0 + r2)|0;
	r4 = r2 >> 2;
	r3 = heap32[(r4+45)];
	r3 = (r3 + -1)|0;
	r5 = r3 << 2;
	r6 = heap32[(r1+91)];
	r2 = (r2 + r5)|0;
	r5 = r6 << 2;
	r2 = (r2 + 148)|0;
	r5 = (r0 + r5)|0;
	r2 = r2 >> 2;
	heap32[(r4+45)] = r3;
	r4 = r5 >> 2;
	r2 = heap32[(r2)];
	r3 = (r6 + 1)|0;
	heap32[(r4+87)] = r2;
	heap32[(r1+91)] = r3;
break;
case 5:
	heap32[(r1+94)] = 1;
break;
case 44:
	heap32[(r1+94)] = 2;
break;
case 12:
	r2 = heap32[(r1+92)];
	r2 = (r2 * 36)|0;
	r2 = (r0 + r2)|0;
	r3 = r2 >> 2;
	r4 = heap32[(r3+45)];
	r4 = (r4 + -1)|0;
	r5 = r4 << 2;
	r6 = heap32[(r1+91)];
	r2 = (r2 + r5)|0;
	r5 = r6 << 2;
	r2 = (r2 + 148)|0;
	r5 = (r0 + r5)|0;
	r2 = r2 >> 2;
	heap32[(r3+45)] = r4;
	r3 = r5 >> 2;
	r2 = heap32[(r2)];
	r4 = (r6 + 1)|0;
	heap32[(r3+87)] = r2;
	heap32[(r1+91)] = r4;
break;
}
	r2 = heap32[(r1+92)];
	r2 = (r2 * 36)|0;
	r0 = (r0 + r2)|0;
	r0 = (r0 + 148)|0;
	heap32[(r1+93)] = r0;
	r0 = heap32[(r1+94)];
	if(r0 ==1) //_LBB546_53
{
	heap32[(r1+36)] = 0;
	r0 = 1;
}
else{
if(!(r0 !=0)) //_LBB546_54
{
	f0 = heapFloat[(r1+32)];
	f1 = heapFloat[(r1+33)];
	f2 = heapFloat[(r1+34)];
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	heapFloat[(r1+36)] = f_g0;
	r0 = heap32[(r1+94)];
	r_g0 = r0;
	return;
}
}
	r_g0 = r0;
	return;
}

function _ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+2450)];
_1: do {
	if(r1 ==0) //_LBB547_23
{
	heap32[(r0)] = 5;
	r1 = 0;
}
else{
	r2 = r1 >> 2;
	r3 = heap32[(r2+13)];
if(!(r3 ==0)) //_LBB547_3
{
	r3 = r3 >> 2;
	r4 = heap32[(r2+12)];
	heap32[(r3+12)] = r4;
}
	r3 = heap32[(r2+12)];
if(!(r3 ==0)) //_LBB547_5
{
	r3 = r3 >> 2;
	r4 = heap32[(r2+13)];
	heap32[(r3+13)] = r4;
}
	r3 = heap32[(r0+2450)];
if(!(r3 !=r1)) //_LBB547_7
{
	r3 = heap32[(r2+13)];
	heap32[(r0+2450)] = r3;
}
	r3 = heap32[(r0+2451)];
	r3 = (r3 + -1)|0;
	heap32[(r0+2451)] = r3;
	heap32[(r2+12)] = 0;
	r3 = heap32[(r0+2448)];
	heap32[(r2+13)] = r3;
	r3 = heap32[(r0+2448)];
if(!(r3 ==0)) //_LBB547_9
{
	r3 = r3 >> 2;
	heap32[(r3+12)] = r1;
}
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	heap32[(r0+2448)] = r1;
	r6 = heap32[(r0+2449)];
	r6 = (r6 + 1)|0;
	r7 = 0;
	heap32[(r0+2449)] = r6;
	heap8[r1+59] = r7;
	heap32[(r2+6)] = r3;
	heap32[(r2+7)] = r4;
	heap32[(r2+8)] = r5;
	r5 = r5 >> 2;
	r3 = r3 >> 2;
	r4 = r4 >> 2;
	f0 = heapFloat[(r5+6)];
	f1 = heapFloat[(r3+6)];
	f2 = heapFloat[(r4+6)];
	f3 = heapFloat[(r5+5)];
	f4 = heapFloat[(r3+5)];
	f5 = heapFloat[(r4+5)];
	f5 = f5-f4;
	f0 = f0-f1;
	f1 = f2-f1;
	f2 = f3-f4;
	f3 = heapFloat[(r5+4)];
	f4 = heapFloat[(r3+4)];
	f6 = heapFloat[(r4+4)];
	f3 = f3-f4;
	f4 = f6-f4;
	f6 = f5*f0;
	f7 = f1*f2;
	f6 = f6-f7;
	f1 = f1*f3;
	f0 = f4*f0;
	f0 = f1-f0;
	heapFloat[(r2)] = f6;
	f1 = f4*f2;
	f2 = f5*f3;
	f1 = f1-f2;
	heapFloat[(r2+1)] = f0;
	heapFloat[(r2+2)] = f1;
	f2 = f6*f6;
	f0 = f0*f0;
	heap32[(r2+3)] = 0;
	f0 = f2+f0;
	f1 = f1*f1;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f_g0;
	f1 = heapFloat[(r5+6)];
	f2 = heapFloat[(r3+6)];
	f3 = heapFloat[(r4+6)];
	f4 = heapFloat[(r5+5)];
	f5 = heapFloat[(r3+5)];
	f6 = heapFloat[(r4+5)];
	f7 = heapFloat[(r5+4)];
	f8 = heapFloat[(r3+4)];
	f9 = heapFloat[(r4+4)];
	f10 = heapFloat[(r2)];
	f11 = f2-f3;
	f12 = heapFloat[(r2+1)];
	f13 = f3-f1;
	f14 = heapFloat[(r2+2)];
	f15 = f5-f6;
	f16 = f8-f9;
	f17 = f6-f4;
	f18 = f9-f7;
	f19 = f1-f2;
	f20 = f4-f5;
	f21 = f7-f8;
	f22 = f12*f11;
	f23 = f14*f15;
	f24 = f14*f16;
	f11 = f10*f11;
	f25 = f12*f13;
	f26 = f14*f17;
	f27 = f14*f18;
	f13 = f10*f13;
	f22 = f22-f23;
	f11 = f24-f11;
	f23 = f25-f26;
	f13 = f27-f13;
	f15 = f10*f15;
	f16 = f12*f16;
	f17 = f10*f17;
	f18 = f12*f18;
	f24 = f12*f19;
	f25 = f14*f20;
	f26 = f14*f21;
	f19 = f10*f19;
	f15 = f15-f16;
	f16 = f17-f18;
	f17 = f24-f25;
	f18 = f26-f19;
	f8 = f8*f22;
	f5 = f5*f11;
	f9 = f9*f23;
	f6 = f6*f13;
	f11 = f10*f20;
	f13 = f12*f21;
	f11 = f11-f13;
	f5 = f8+f5;
	f2 = f2*f15;
	f6 = f9+f6;
	f3 = f3*f16;
	f7 = f7*f17;
	f4 = f4*f18;
	f2 = f5+f2;
	f3 = f6+f3;
	f4 = f7+f4;
	f1 = f1*f11;
	f5 =   9.9999997473787516e-005;
	f6 =                         1;
	f2 = f2 < f3 ? f2 : f3;
	f1 = f4+f1;
	f1 = f2 < f1 ? f2 : f1;
	f2 = f0 > f5 ? f0 : f6;
	f1 = f1/f2;
	f2 =    -0.0099999997764825821;
	f3 =                         0;
	f1 = f1 < f2 ? f1 : f3;
	heapFloat[(r2+5)] = f1;
	if(f0 <=f5) //_LBB547_13
{
	heap32[(r0)] = 2;
}
else{
	r4 = heap32[(fp+4)];
	f1 = heapFloat[(r3+4)];
	f2 = heapFloat[(r3+5)];
	f3 = heapFloat[(r3+6)];
	f1 = f1*f10;
	f2 = f2*f12;
	f1 = f1+f2;
	f2 = f3*f14;
	f1 = f1+f2;
	f2 = f6/f0;
	f0 = f1/f0;
	f1 = f10*f2;
	heapFloat[(r2+4)] = f0;
	f3 = f12*f2;
	heapFloat[(r2)] = f1;
	f1 = f14*f2;
	heapFloat[(r2+1)] = f3;
	heapFloat[(r2+2)] = f1;
	if(r4 !=0) //_LBB547_24
{
break _1;
}
else{
	f1 =  -9.9999997473787516e-006;
	if(f0 >=f1) //_LBB547_24
{
break _1;
}
else{
	heap32[(r0)] = 3;
}
}
}
	r3 = heap32[(r2+13)];
if(!(r3 ==0)) //_LBB547_16
{
	r3 = r3 >> 2;
	r4 = heap32[(r2+12)];
	heap32[(r3+12)] = r4;
}
	r3 = heap32[(r2+12)];
if(!(r3 ==0)) //_LBB547_18
{
	r3 = r3 >> 2;
	r4 = heap32[(r2+13)];
	heap32[(r3+13)] = r4;
}
	r3 = heap32[(r0+2448)];
if(!(r3 !=r1)) //_LBB547_20
{
	r3 = heap32[(r2+13)];
	heap32[(r0+2448)] = r3;
}
	r3 = heap32[(r0+2449)];
	r3 = (r3 + -1)|0;
	heap32[(r0+2449)] = r3;
	heap32[(r2+12)] = 0;
	r3 = heap32[(r0+2450)];
	heap32[(r2+13)] = r3;
	r2 = heap32[(r0+2450)];
if(!(r2 ==0)) //_LBB547_22
{
	r2 = r2 >> 2;
	heap32[(r2+12)] = r1;
}
	heap32[(r0+2450)] = r1;
	r1 = heap32[(r0+2451)];
	r1 = (r1 + 1)|0;
	heap32[(r0+2451)] = r1;
	r0 = 0;
	r_g0 = r0;
	return;
}
} while(0);
	r_g0 = r1;
	return;
}

function _ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
	r1 = heap32[(fp+1)];
	r2 = heapU8[r0+59];
_1: do {
if(!(r2 ==r1)) //_LBB548_10
{
	r2 = heap32[(fp)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+4)];
	r5 = heap32[(fp+5)];
	r6 = r0 >> 2;
	r7 = r3 >> 2;
	f0 = heapFloat[(r6)];
	f1 = heapFloat[(r7+4)];
	f2 = heapFloat[(r6+1)];
	f3 = heapFloat[(r7+5)];
	r8 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3;
	r9 = r4 << 2;
	r8 = (r8 + r9)|0;
	f0 = f0*f1;
	f1 = f2*f3;
	f2 = heapFloat[(r6+2)];
	f3 = heapFloat[(r7+6)];
	r7 = r8 >> 2;
	f0 = f0+f1;
	f1 = f2*f3;
	r7 = heap32[(r7)];
	f0 = f0+f1;
	f1 = heapFloat[(r6+4)];
	f0 = f0-f1;
	f1 =  -9.9999997473787516e-006;
	if(f0 >=f1) //_LBB548_8
{
	r4 = r7 << 2;
	r4 = (r0 + r4)|0;
	r7 = (r0 + r7)|0;
	heap8[r0+59] = r1;
	r4 = r4 >> 2;
	r7 = heapU8[r7+56];
	r4 = heap32[(r4+9)];
	r8 = _ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3;
	r8 = (r8 + r9)|0;
	r8 = r8 >> 2;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r5;
	r4 = heap32[(r8)];
	_ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7);
	r7 = r_g0;
	if(r7 ==0) //_LBB548_10
{
break _1;
}
else{
	r7 = r4 << 2;
	r7 = (r0 + r7)|0;
	r4 = (r0 + r4)|0;
	r7 = r7 >> 2;
	r4 = heapU8[r4+56];
	r7 = heap32[(r7+9)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r5;
	_ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7);
	r1 = r_g0;
	if(r1 !=0) //_LBB548_11
{
	r1 = heap32[(r6+13)];
if(!(r1 ==0)) //_LBB548_13
{
	r1 = r1 >> 2;
	r3 = heap32[(r6+12)];
	heap32[(r1+12)] = r3;
}
	r1 = heap32[(r6+12)];
if(!(r1 ==0)) //_LBB548_15
{
	r1 = r1 >> 2;
	r3 = heap32[(r6+13)];
	heap32[(r1+13)] = r3;
}
	r1 = r2 >> 2;
	r2 = heap32[(r1+2448)];
if(!(r2 !=r0)) //_LBB548_17
{
	r2 = heap32[(r6+13)];
	heap32[(r1+2448)] = r2;
}
	r2 = heap32[(r1+2449)];
	r2 = (r2 + -1)|0;
	heap32[(r1+2449)] = r2;
	heap32[(r6+12)] = 0;
	r2 = heap32[(r1+2450)];
	heap32[(r6+13)] = r2;
	r2 = heap32[(r1+2450)];
if(!(r2 ==0)) //_LBB548_19
{
	r2 = r2 >> 2;
	heap32[(r2+12)] = r0;
}
	heap32[(r1+2450)] = r0;
	r0 = heap32[(r1+2451)];
	r0 = (r0 + 1)|0;
	heap32[(r1+2451)] = r0;
}
else{
break _1;
}
}
}
else{
	r1 = (r0 + 24)|0;
	r6 = r7 << 2;
	r7 = (r1 + r9)|0;
	r1 = (r1 + r6)|0;
	r6 = r7 >> 2;
	r1 = r1 >> 2;
	r6 = heap32[(r6)];
	r1 = heap32[(r1)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = 0;
	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
	r1 = r_g0;
	if(r1 ==0) //_LBB548_10
{
break _1;
}
else{
	r2 = r1 >> 2;
	heap8[r1+56] = r4;
	r3 = (r0 + r9)|0;
	r6 = (r0 + r4)|0;
	r7 = 0;
	heap32[(r2+9)] = r0;
	r0 = r3 >> 2;
	heap8[r6+56] = r7;
	r3 = r5 >> 2;
	heap32[(r0+9)] = r1;
	r0 = heap32[(r3)];
	if(r0 ==0) //_LBB548_5
{
	heap32[(r3+1)] = r1;
}
else{
	r5 = 2;
	r6 = r0 >> 2;
	heap8[r0+57] = r5;
	r5 = 1;
	heap32[(r6+10)] = r1;
	heap8[r1+58] = r5;
	heap32[(r2+11)] = r0;
}
	heap32[(r3)] = r1;
	r0 = heap32[(r3+2)];
	r0 = (r0 + 1)|0;
	heap32[(r3+2)] = r0;
}
}
	r0 = 1;
	r_g0 = r0;
	return;
}
} while(0);
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
var __label__ = 0;
	i7 = sp + -10400;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+5)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	r5 = sp + -176;
	r6 = heap32[(fp+6)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r1;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = r6;
	r2 = sp + -560;
	r3 = r2 >> 2;
	_ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(i7);
	heap32[(r3+32)] = 0;
	heap32[(r3+33)] = 0;
	heap32[(r3+34)] = 0;
	heap32[(r3+35)] = 0;
	heap32[(r3+91)] = 0;
	heap32[(r3+94)] = 2;
	r4 = heap32[(fp+4)];
	heap32[(r3+92)] = 0;
	r4 = r4 >> 2;
	heap32[(r3+36)] = 0;
	f0 = heapFloat[(r4+2)];
	f1 = heapFloat[(r4+1)];
	f2 = heapFloat[(r4)];
	r6 = sp + -48;
	f2 = -f2;
	r7 = r6 >> 2;
	f1 = -f1;
	heapFloat[(fp+-12)] = f2;
	f0 = -f0;
	heapFloat[(r7+1)] = f1;
	heapFloat[(r7+2)] = f0;
	heap32[(r7+3)] = 0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r6;
	_ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i7);
	r6 = r_g0;
	if(r6 ==2) //_LBB549_71
{
	r0 = r1 >> 2;
	heap32[(r0)] = 2;
}
else{
if(!(r6 !=1)) //_LBB549_72
{
	r6 = sp + -10368;
	r7 = r6 >> 2;
	heap32[(r7+2448)] = 0;
	heap32[(r7+2449)] = 0;
	heap32[(r7+2450)] = 0;
	heap32[(r7+2451)] = 0;
	heap32[(fp+-2592)] = 9;
	heap32[(r7+10)] = 0;
	heap32[(r7+11)] = 0;
	heap32[(r7+12)] = 0;
	heap32[(r7+13)] = 0;
	r8 = 0;
	r9 = (r6 + 9780)|0;
	r10 = (r6 + 9728)|0;
	heap32[(r7+14)] = 0;
	heap32[(r7+2447)] = 0;
	r11 = r8;
	r12 = r8;
	r13 = r8;
_5: while(true){
	r14 = 127;
	r14 = (r14 - r13)|0;
	r15 = (r9 + r8)|0;
	r14 = (r14 * 60)|0;
	r14 = (r6 + r14)|0;
	r15 = r15 >> 2;
	r14 = (r14 + 2108)|0;
	r16 = (r10 + r8)|0;
	heap32[(r15+-1)] = 0;
	heap32[(r15)] = r12;
	if(r12 !=0) //_LBB549_5
{
	r11 = r12 >> 2;
	heap32[(r11+12)] = r16;
	r11 = heap32[(r7+2451)];
}
	r8 = (r8 + -60)|0;
	r13 = (r13 + 1)|0;
	r11 = (r11 + 1)|0;
	heap32[(r7+2450)] = r16;
	heap32[(r7+2451)] = r11;
	r12 = r14;
if(!(r8 !=-7680)) //_LBB549_3
{
break _5;
}
}
	r3 = heap32[(r3+93)];
	f0 = heapFloat[(r4+2)];
	f1 = heapFloat[(r4+1)];
	f2 = heapFloat[(r4)];
	r3 = r3 >> 2;
	r4 = heap32[(r3+8)];
	if(uint(r4) <uint(2)) //_LBB549_57
{
__label__ = 56;
}
else{
	heap32[(g0)] = r2;
	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
	r4 = r_g0;
	if(r4 ==0) //_LBB549_57
{
__label__ = 56;
}
else{
	r4 = heap32[(r7+2448)];
_14: do {
if(!(r4 ==0)) //_LBB549_19
{
_15: while(true){
	r8 = r4 >> 2;
	r9 = heap32[(r8+13)];
if(!(r9 ==0)) //_LBB549_12
{
	r9 = r9 >> 2;
	r10 = heap32[(r8+12)];
	heap32[(r9+12)] = r10;
}
	r9 = heap32[(r8+12)];
if(!(r9 ==0)) //_LBB549_14
{
	r9 = r9 >> 2;
	r10 = heap32[(r8+13)];
	heap32[(r9+13)] = r10;
}
	r9 = heap32[(r7+2448)];
if(!(r9 !=r4)) //_LBB549_16
{
	r9 = heap32[(r8+13)];
	heap32[(r7+2448)] = r9;
}
	r9 = heap32[(r7+2449)];
	r9 = (r9 + -1)|0;
	heap32[(r7+2449)] = r9;
	heap32[(r8+12)] = 0;
	r9 = heap32[(r7+2450)];
	heap32[(r8+13)] = r9;
	r8 = heap32[(r7+2450)];
if(!(r8 ==0)) //_LBB549_18
{
	r8 = r8 >> 2;
	heap32[(r8+12)] = r4;
}
	heap32[(r7+2450)] = r4;
	r4 = heap32[(r7+2451)];
	r4 = (r4 + 1)|0;
	heap32[(r7+2451)] = r4;
	r4 = heap32[(r7+2448)];
if(!(r4 !=0)) //_LBB549_10
{
break _14;
}
}
}
} while(0);
	heap32[(fp+-2592)] = 0;
	heap32[(r7+2447)] = 0;
	r4 = heap32[(r3+1)];
	r8 = heap32[(r3)];
	r9 = heap32[(r3+3)];
	r10 = r8 >> 2;
	r11 = r4 >> 2;
	r9 = r9 >> 2;
	r12 = heap32[(r3+2)];
	r13 = r12 >> 2;
	f3 = heapFloat[(r11+6)];
	f4 = heapFloat[(r9+6)];
	f5 = heapFloat[(r10+6)];
	f6 = heapFloat[(r10+5)];
	f7 = heapFloat[(r9+5)];
	f8 = heapFloat[(r11+4)];
	f9 = heapFloat[(r9+4)];
	f10 = heapFloat[(r13+5)];
	f11 = heapFloat[(r10+4)];
	f12 = heapFloat[(r13+4)];
	f3 = f3-f4;
	f6 = f6-f7;
	f8 = f8-f9;
	f5 = f5-f4;
	f11 = f11-f9;
	f13 = f6*f3;
	f9 = f12-f9;
	f12 = f5*f8;
	f10 = f10-f7;
	f3 = f11*f3;
	f14 = heapFloat[(r13+6)];
	f15 = heapFloat[(r11+5)];
	f13 = f13*f9;
	f12 = f12*f10;
	f7 = f15-f7;
	f12 = f13+f12;
	f3 = f3*f10;
	f6 = f6*f8;
	f4 = f14-f4;
	f8 = f11*f7;
	f3 = f12-f3;
	f6 = f6*f4;
	f5 = f5*f7;
	f3 = f3-f6;
	f4 = f8*f4;
	f3 = f3+f4;
	f4 = f5*f9;
	f3 = f3-f4;
	f4 =                         0;
	if(f3 <f4) //_LBB549_21
{
	heap32[(r3)] = r4;
	heap32[(r3+1)] = r8;
	f3 = heapFloat[(r3+4)];
	heap32[(r3+4)] = heap32[(r3+5)];
	heapFloat[(r3+5)] = f3;
	r9 = r4;
	r4 = r8;
}
else{
	r9 = r8;
}
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r12;
	heap32[(g0+4)] = 1;
	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
	r4 = r_g0;
	r8 = heap32[(r3+3)];
	r9 = heap32[(r3)];
	r10 = heap32[(r3+1)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r8;
	heap32[(g0+4)] = 1;
	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
	r8 = r_g0;
	r9 = heap32[(r3+3)];
	r10 = heap32[(r3+1)];
	r11 = heap32[(r3+2)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r9;
	heap32[(g0+4)] = 1;
	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
	r9 = r_g0;
	r10 = heap32[(r3+3)];
	r11 = heap32[(r3+2)];
	r12 = heap32[(r3)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = 1;
	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
	r10 = r_g0;
	r11 = heap32[(r7+2449)];
	if(r11 !=4) //_LBB549_57
{
__label__ = 56;
}
else{
	r3 = heap32[(r7+2448)];
	r11 = r3 >> 2;
	f0 = heapFloat[(r11+4)];
	f0 = f0*f0;
	f1 = heapFloat[(r11+5)];
_35: while(true){
	f2 = f1;
	r11 = r3;
	f3 = f0;
_37: while(true){
	r3 = r3 >> 2;
	r3 = heap32[(r3+13)];
	if(r3 !=0) //_LBB549_24
{
	r12 = r3 >> 2;
	f1 = heapFloat[(r12+5)];
if(!(f1 <f2)) //_LBB549_27
{
	f0 = heapFloat[(r12+4)];
	f0 = f0*f0;
if(!(f0 >=f3)) //_LBB549_27
{
continue _35;
}
}
}
else{
break _35;
}
}
}
	r3 = r11 >> 2;
	f0 = heapFloat[(r3)];
	f1 = heapFloat[(r3+1)];
	f2 = heapFloat[(r3+2)];
	f3 = heapFloat[(r3+3)];
	f4 = heapFloat[(r3+4)];
	f5 = heapFloat[(r3+5)];
	r12 = heap32[(r3+6)];
	r13 = heap32[(r3+7)];
	r3 = heap32[(r3+8)];
	r14 = 0;
	r15 = r4 >> 2;
	heap8[r4+56] = r14;
	heap32[(r15+9)] = r8;
	r16 = r8 >> 2;
	heap8[r8+56] = r14;
	heap32[(r16+9)] = r4;
	heap8[r4+57] = r14;
	r17 = 1;
	heap32[(r15+10)] = r9;
	r18 = r9 >> 2;
	heap8[r9+56] = r17;
	heap32[(r18+9)] = r4;
	heap8[r4+58] = r14;
	r19 = 2;
	heap32[(r15+11)] = r10;
	r15 = r10 >> 2;
	heap8[r10+56] = r19;
	heap32[(r15+9)] = r4;
	heap8[r8+57] = r19;
	heap32[(r16+10)] = r10;
	heap8[r10+58] = r17;
	heap32[(r15+11)] = r8;
	heap8[r8+58] = r17;
	heap32[(r16+11)] = r9;
	heap8[r9+57] = r19;
	heap32[(r18+10)] = r8;
	heap8[r9+58] = r17;
	heap32[(r18+11)] = r10;
	heap8[r10+57] = r19;
	heap32[(r15+10)] = r9;
	heap32[(fp+-2592)] = 0;
_42: while(true){
	r4 = (r14 + 1)|0;
_44: while(true){
	if(uint(r14) <uint(255)) //_LBB549_30
{
	r8 = heap32[(r7+2447)];
	if(uint(r8) >uint(63)) //_LBB549_54
{
__label__ = 53;
break _42;
}
else{
	r9 = sp + -16;
	r10 = r9 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r10+1)] = 0;
	r15 = (r8 + 1)|0;
	heap32[(r10+2)] = 0;
	r8 = r8 << 5;
	heap32[(r7+2447)] = r15;
	r8 = (r6 + r8)|0;
	heap8[r11+59] = r4;
	r15 = (r8 + 60)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r15;
	r8 = r8 >> 2;
	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
	r16 = r11 >> 2;
	f6 = heapFloat[(r16)];
	f7 = heapFloat[(r8+19)];
	f8 = heapFloat[(r16+1)];
	f9 = heapFloat[(r8+20)];
	f6 = f6*f7;
	f7 = f8*f9;
	f8 = heapFloat[(r16+2)];
	f9 = heapFloat[(r8+21)];
	f6 = f6+f7;
	f7 = f8*f9;
	f6 = f6+f7;
	f7 = heapFloat[(r16+4)];
	f6 = f6-f7;
	f7 =   9.9999997473787516e-005;
	if(f6 <=f7) //_LBB549_53
{
__label__ = 52;
break _42;
}
else{
	r14 = (r14 + 1)|0;
	r8 = (r11 + 1)|0;
	r18 = 0;
	r20 = r17;
_49: while(true){
	r21 = r18 << 2;
	r21 = (r11 + r21)|0;
	r22 = (r8 + r18)|0;
	r21 = r21 >> 2;
	r22 = heapU8[r22+55];
	r21 = heap32[(r21+9)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r14;
	heap32[(g0+2)] = r15;
	heap32[(g0+3)] = r21;
	heap32[(g0+4)] = r22;
	heap32[(g0+5)] = r9;
	_ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7);
	r18 = (r18 + 1)|0;
	r20 = r_g0 & r20;
	if(uint(r18) >uint(2)) //_LBB549_35
{
break _49;
}
else{
if(!(r20 !=0)) //_LBB549_33
{
break _49;
}
}
}
	if(r20 !=1) //_LBB549_52
{
__label__ = 51;
break _42;
}
else{
	r8 = heap32[(r10+2)];
	if(uint(r8) <uint(3)) //_LBB549_52
{
__label__ = 51;
break _42;
}
else{
	r8 = heap32[(fp+-4)];
	r9 = heap32[(r10+1)];
	r10 = r8 >> 2;
	heap8[r8+57] = r19;
	r15 = 1;
	heap32[(r10+10)] = r9;
	r10 = r9 >> 2;
	heap8[r9+58] = r15;
	heap32[(r10+11)] = r8;
	r8 = heap32[(r16+13)];
if(!(r8 ==0)) //_LBB549_39
{
	r8 = r8 >> 2;
	r9 = heap32[(r16+12)];
	heap32[(r8+12)] = r9;
}
	r8 = heap32[(r16+12)];
if(!(r8 ==0)) //_LBB549_41
{
	r8 = r8 >> 2;
	r9 = heap32[(r16+13)];
	heap32[(r8+13)] = r9;
}
	r8 = heap32[(r7+2448)];
if(!(r8 !=r11)) //_LBB549_43
{
	r8 = heap32[(r16+13)];
	heap32[(r7+2448)] = r8;
}
	r8 = heap32[(r7+2449)];
	r8 = (r8 + -1)|0;
	heap32[(r7+2449)] = r8;
	heap32[(r16+12)] = 0;
	r8 = heap32[(r7+2450)];
	heap32[(r16+13)] = r8;
	r8 = heap32[(r7+2450)];
if(!(r8 ==0)) //_LBB549_45
{
	r8 = r8 >> 2;
	heap32[(r8+12)] = r11;
}
	heap32[(r7+2450)] = r11;
	r11 = heap32[(r7+2451)];
	r11 = (r11 + 1)|0;
	heap32[(r7+2451)] = r11;
	r8 = heap32[(r7+2448)];
	r11 = r8 >> 2;
	f6 = heapFloat[(r11+4)];
	f6 = f6*f6;
	f7 = heapFloat[(r11+5)];
_67: while(true){
	f8 = f7;
	r11 = r8;
	f9 = f6;
_69: while(true){
	r8 = r8 >> 2;
	r8 = heap32[(r8+13)];
	if(r8 !=0) //_LBB549_46
{
	r9 = r8 >> 2;
	f7 = heapFloat[(r9+5)];
if(!(f7 <f8)) //_LBB549_49
{
	f6 = heapFloat[(r9+4)];
	f6 = f6*f6;
if(!(f6 >=f9)) //_LBB549_49
{
continue _67;
}
}
}
else{
break _67;
}
}
}
	r8 = r11 >> 2;
	f6 = heapFloat[(r8+5)];
	r4 = (r4 + 1)|0;
if(!(f6 <f5)) //_LBB549_55
{
break _44;
}
}
}
}
}
}
else{
__label__ = 55;
break _42;
}
}
	f0 = heapFloat[(r8)];
	f1 = heapFloat[(r8+1)];
	f2 = heapFloat[(r8+2)];
	f3 = heapFloat[(r8+3)];
	f4 = heapFloat[(r8+4)];
	r12 = heap32[(r8+6)];
	r13 = heap32[(r8+7)];
	r3 = heap32[(r8+8)];
	f5 = f6;
}
switch(__label__ ){//multiple entries
case 53:
	heap32[(fp+-2592)] = 6;
break;
case 52:
	heap32[(fp+-2592)] = 7;
break;
case 51:
	heap32[(fp+-2592)] = 4;
break;
}
	heapFloat[(r7+10)] = f0;
	heapFloat[(r7+11)] = f1;
	heapFloat[(r7+12)] = f2;
	heapFloat[(r7+13)] = f3;
	heapFloat[(r7+14)] = f4;
	heap32[(r7+9)] = 3;
	heap32[(r7+1)] = r12;
	heap32[(r7+2)] = r13;
	heap32[(r7+3)] = r3;
	r3 = r3 >> 2;
	r2 = r13 >> 2;
	f2 = f2*f4;
	f3 = heapFloat[(r3+6)];
	f5 = heapFloat[(r2+6)];
	f1 = f1*f4;
	f6 = heapFloat[(r3+5)];
	f7 = heapFloat[(r2+5)];
	f0 = f0*f4;
	f4 = heapFloat[(r3+4)];
	f8 = heapFloat[(r2+4)];
	f5 = f5-f2;
	f6 = f6-f1;
	f8 = f8-f0;
	f3 = f3-f2;
	f7 = f7-f1;
	f4 = f4-f0;
	f9 = f7*f3;
	f10 = f5*f6;
	f5 = f5*f4;
	f3 = f8*f3;
	f9 = f9-f10;
	f3 = f5-f3;
	f5 = f8*f6;
	f4 = f7*f4;
	f4 = f5-f4;
	f5 = f9*f9;
	f3 = f3*f3;
	f3 = f5+f3;
	f4 = f4*f4;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	heapFloat[(r7+5)] = f_g0;
	r4 = r12 >> 2;
	f3 = heapFloat[(r4+6)];
	f4 = heapFloat[(r4+5)];
	f5 = heapFloat[(r4+4)];
	f6 = heapFloat[(r3+6)];
	f7 = heapFloat[(r3+5)];
	f8 = heapFloat[(r3+4)];
	f6 = f6-f2;
	f4 = f4-f1;
	f8 = f8-f0;
	f3 = f3-f2;
	f7 = f7-f1;
	f5 = f5-f0;
	f9 = f7*f3;
	f10 = f6*f4;
	f6 = f6*f5;
	f3 = f8*f3;
	f9 = f9-f10;
	f3 = f6-f3;
	f4 = f8*f4;
	f5 = f7*f5;
	f4 = f4-f5;
	f5 = f9*f9;
	f3 = f3*f3;
	f3 = f5+f3;
	f4 = f4*f4;
	f3 = f3+f4;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	heapFloat[(r7+6)] = f_g0;
	f3 = heapFloat[(r2+6)];
	f4 = heapFloat[(r2+5)];
	f5 = heapFloat[(r2+4)];
	f6 = heapFloat[(r4+6)];
	f7 = heapFloat[(r4+5)];
	f8 = heapFloat[(r4+4)];
	f6 = f6-f2;
	f4 = f4-f1;
	f8 = f8-f0;
	f2 = f3-f2;
	f1 = f7-f1;
	f0 = f5-f0;
	f3 = f1*f2;
	f5 = f6*f4;
	f6 = f6*f0;
	f2 = f8*f2;
	f3 = f3-f5;
	f2 = f6-f2;
	f4 = f8*f4;
	f0 = f1*f0;
	f0 = f4-f0;
	f1 = f3*f3;
	f2 = f2*f2;
	f1 = f1+f2;
	f0 = f0*f0;
	f0 = f1+f0;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 = heapFloat[(r7+5)];
	f2 = heapFloat[(r7+6)];
	f3 = f1+f2;
	f3 = f3+f_g0;
	f1 = f1/f3;
	f2 = f2/f3;
	heapFloat[(r7+5)] = f1;
	f0 = f_g0/f3;
	heapFloat[(r7+6)] = f2;
	heapFloat[(r7+7)] = f0;
__label__ = 60;
}
}
}
if (__label__ == 56){
	heap32[(fp+-2592)] = 8;
	heapFloat[(r7+10)] = f2;
	heapFloat[(r7+11)] = f1;
	heapFloat[(r7+12)] = f0;
	f2 = f2*f2;
	f1 = f1*f1;
	heap32[(r7+13)] = 0;
	f1 = f2+f1;
	f0 = f0*f0;
	f0 = f1+f0;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f_g0;
	f1 =                         0;
	if(f0 >f1) //_LBB549_59
{
	f1 =                         1;
	f2 = heapFloat[(r7+12)];
	f0 = f1/f0;
	f1 = heapFloat[(r7+11)];
	f3 = heapFloat[(r7+10)];
	f2 = f2*f0;
	f1 = f1*f0;
	f0 = f3*f0;
}
else{
	f0 =                         1;
	f2 = f1;
}
	heapFloat[(r7+10)] = f0;
	heapFloat[(r7+11)] = f1;
	heapFloat[(r7+12)] = f2;
	heap32[(r7+13)] = 0;
	heap32[(r7+14)] = 0;
	heap32[(r7+9)] = 1;
	r2 = heap32[(r3)];
	heap32[(r7+1)] = r2;
	heap32[(r7+5)] = 1065353216;
}
	r2 = heap32[(fp+-2592)];
	if(r2 ==9) //_LBB549_70
{
	r1 = r1 >> 2;
	heap32[(r1)] = 3;
	r1 = 0;
	r_g0 = r1;
	return;
}
else{
	r2 = heap32[(r7+9)];
_90: do {
	if(r2 !=0) //_LBB549_64
{
	r2 = 0;
	f0 =                         0;
	f1 = f0;
	f2 = f0;
_92: while(true){
	r3 = r2 << 2;
	r3 = (r6 + r3)|0;
	r4 = r5 >> 2;
	r3 = r3 >> 2;
	r8 = heap32[(r4+30)];
	r2 = (r2 + 1)|0;
	r9 = heap32[(r3+1)];
	r10 = heap32[(fp+-44)];
	r4 = heap32[(r4+31)];
	r11 = r8 & 1;
	if(r11 != 0) //_LBB549_67
{
	r11 = (r10 + r4)|0;
	r11 = r11 >> 2;
	r11 = heap32[(r11)];
	r8 = (r8 + r11)|0;
	r8 = (r8 + -1)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
}
	r11 = sp + -32;
	r4 = (r10 + r4)|0;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r9;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r4 = r11 >> 2;
	f3 = heapFloat[(fp+-8)];
	f4 = heapFloat[(r3+5)];
	f5 = heapFloat[(r4+1)];
	f6 = heapFloat[(r4+2)];
	f3 = f3*f4;
	f5 = f5*f4;
	f4 = f6*f4;
	f2 = f2+f3;
	f1 = f1+f5;
	f0 = f0+f4;
	r3 = heap32[(r7+9)];
if(!(uint(r3) >uint(r2))) //_LBB549_65
{
break _90;
}
}
}
else{
	f0 =                         0;
	f1 = f0;
	f2 = f0;
}
} while(0);
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	heap32[(r1)] = 1;
	f3 = heapFloat[(r0)];
	f4 = heapFloat[(r0+1)];
	f5 = heapFloat[(r0+4)];
	f6 = heapFloat[(r0+5)];
	f3 = f3*f2;
	f4 = f4*f1;
	f7 = heapFloat[(r0+2)];
	f8 = heapFloat[(r0+8)];
	f9 = heapFloat[(r0+9)];
	f10 = heapFloat[(r0+6)];
	f5 = f5*f2;
	f6 = f6*f1;
	f3 = f3+f4;
	f4 = f7*f0;
	f7 = heapFloat[(r0+10)];
	f8 = f8*f2;
	f9 = f9*f1;
	f5 = f5+f6;
	f6 = f10*f0;
	f3 = f3+f4;
	f4 = heapFloat[(r0+12)];
	f10 = heapFloat[(r0+14)];
	f11 = heapFloat[(r0+13)];
	f5 = f5+f6;
	f6 = f8+f9;
	f7 = f7*f0;
	f3 = f3+f4;
	f4 = f6+f7;
	f5 = f5+f11;
	heapFloat[(r1+1)] = f3;
	f3 = f4+f10;
	heapFloat[(r1+2)] = f5;
	heapFloat[(r1+3)] = f3;
	heap32[(r1+4)] = 0;
	f3 = heapFloat[(r7+14)];
	f4 = heapFloat[(r7+11)];
	f5 = heapFloat[(r7+10)];
	f6 = heapFloat[(r7+12)];
	f7 = f5*f3;
	f8 = f4*f3;
	f9 = f6*f3;
	f2 = f2-f7;
	f7 = heapFloat[(r0)];
	f1 = f1-f8;
	f8 = heapFloat[(r0+1)];
	f10 = heapFloat[(r0+4)];
	f11 = heapFloat[(r0+5)];
	f7 = f7*f2;
	f8 = f8*f1;
	f0 = f0-f9;
	f9 = heapFloat[(r0+2)];
	f12 = heapFloat[(r0+8)];
	f13 = heapFloat[(r0+9)];
	f14 = heapFloat[(r0+6)];
	f10 = f10*f2;
	f11 = f11*f1;
	f7 = f7+f8;
	f8 = f9*f0;
	f9 = heapFloat[(r0+10)];
	f2 = f12*f2;
	f1 = f13*f1;
	f10 = f10+f11;
	f11 = f14*f0;
	f7 = f7+f8;
	f8 = heapFloat[(r0+12)];
	f12 = heapFloat[(r0+14)];
	f13 = heapFloat[(r0+13)];
	f10 = f10+f11;
	f1 = f2+f1;
	f0 = f9*f0;
	f2 = f7+f8;
	f0 = f1+f0;
	f1 = f10+f13;
	heapFloat[(r1+5)] = f2;
	f0 = f0+f12;
	heapFloat[(r1+6)] = f1;
	heapFloat[(r1+7)] = f0;
	f0 = -f5;
	heap32[(r1+8)] = 0;
	f1 = -f4;
	heapFloat[(r1+9)] = f0;
	f0 = -f6;
	heapFloat[(r1+10)] = f1;
	heapFloat[(r1+11)] = f0;
	f0 = -f3;
	heap32[(r1+12)] = 0;
	heapFloat[(r1+13)] = f0;
	r1 = 1;
	r_g0 = r1;
	return;
}
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
var __label__ = 0;
	i7 = sp + -592;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+5)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	r5 = sp + -176;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r1;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = 0;
	r2 = sp + -560;
	r3 = r2 >> 2;
	_ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(i7);
	heap32[(r3+32)] = 0;
	heap32[(r3+33)] = 0;
	heap32[(r3+34)] = 0;
	heap32[(r3+35)] = 0;
	heap32[(r3+91)] = 0;
	heap32[(r3+94)] = 2;
	heap32[(r3+92)] = 0;
	heap32[(r3+36)] = 0;
	r4 = heap32[(fp+4)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r4;
	_ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i7);
	r2 = r_g0;
	if(r2 ==0) //_LBB550_3
{
	r2 = heap32[(r3+93)];
	r4 = r2 >> 2;
	r4 = heap32[(r4+8)];
_3: do {
	if(r4 !=0) //_LBB550_5
{
	r4 = 0;
	f0 =                         0;
	f1 = f0;
	f2 = f0;
	f3 = f0;
	f4 = f0;
	f5 = f0;
_5: while(true){
	r6 = r4 << 2;
	r2 = (r2 + r6)|0;
	r2 = r2 >> 2;
	r7 = r5 >> 2;
	r8 = heap32[(r7+30)];
	r4 = (r4 + 1)|0;
	f6 = heapFloat[(r2+4)];
	r2 = heap32[(r2)];
	r9 = heap32[(fp+-44)];
	r10 = heap32[(r7+31)];
	r11 = r8 & 1;
	if(r11 != 0) //_LBB550_8
{
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r11 = heap32[(r11)];
	r8 = (r8 + r11)|0;
	r8 = (r8 + -1)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
}
	r11 = sp + -48;
	r9 = (r9 + r10)|0;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r2;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r2 = heap32[(r3+93)];
	r2 = (r2 + r6)|0;
	r2 = r2 >> 2;
	r6 = r11 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	f7 = heapFloat[(fp+-12)];
	f8 = heapFloat[(r6+1)];
	f9 = heapFloat[(r6+2)];
	f10 = heapFloat[(r2+2)];
	f11 = heapFloat[(r2+1)];
	f12 = heapFloat[(r2)];
	f7 = f7*f6;
	f8 = f8*f6;
	f9 = f9*f6;
	r2 = heap32[(r7+30)];
	f5 = f5+f7;
	f4 = f4+f8;
	f3 = f3+f9;
	f7 = -f10;
	f8 = -f11;
	f9 = -f12;
	r6 = heap32[(r7+1)];
	r8 = heap32[(r7+31)];
	r9 = r2 & 1;
	if(r9 != 0) //_LBB550_11
{
	r9 = (r6 + r8)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	r2 = (r2 + r9)|0;
	r2 = (r2 + -1)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
}
	f10 = heapFloat[(r7+2)];
	f11 = heapFloat[(r7+3)];
	f12 = heapFloat[(r7+6)];
	f13 = heapFloat[(r7+7)];
	f10 = f10*f9;
	f11 = f11*f8;
	f14 = heapFloat[(r7+4)];
	f15 = heapFloat[(r7+10)];
	f16 = heapFloat[(r7+11)];
	f17 = heapFloat[(r7+12)];
	f18 = heapFloat[(r7+8)];
	f12 = f12*f9;
	f13 = f13*f8;
	f10 = f10+f11;
	f11 = f14*f7;
	r9 = sp + -16;
	f9 = f15*f9;
	f8 = f16*f8;
	f12 = f12+f13;
	f13 = f18*f7;
	f10 = f10+f11;
	r10 = r9 >> 2;
	f8 = f9+f8;
	f7 = f17*f7;
	f9 = f12+f13;
	heapFloat[(fp+-4)] = f10;
	f7 = f8+f7;
	heapFloat[(r10+1)] = f9;
	heapFloat[(r10+2)] = f7;
	heap32[(r10+3)] = 0;
	r10 = sp + -32;
	r6 = (r6 + r8)|0;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r9;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r10 >> 2;
	f7 = heapFloat[(r7+14)];
	f8 = heapFloat[(fp+-8)];
	f9 = heapFloat[(r7+18)];
	f10 = heapFloat[(r7+22)];
	f11 = heapFloat[(r7+15)];
	f12 = heapFloat[(r2+1)];
	f13 = heapFloat[(r7+19)];
	f14 = heapFloat[(r7+23)];
	f7 = f7*f8;
	f11 = f11*f12;
	f15 = heapFloat[(r7+16)];
	f16 = heapFloat[(r2+2)];
	f17 = heapFloat[(r7+20)];
	f18 = heapFloat[(r7+24)];
	f9 = f9*f8;
	f13 = f13*f12;
	f8 = f10*f8;
	f10 = f14*f12;
	f7 = f7+f11;
	f11 = f15*f16;
	f9 = f9+f13;
	f12 = f17*f16;
	f8 = f8+f10;
	f10 = f18*f16;
	f7 = f7+f11;
	f11 = heapFloat[(r7+26)];
	f9 = f9+f12;
	f12 = heapFloat[(r7+27)];
	f8 = f8+f10;
	f10 = heapFloat[(r7+28)];
	f7 = f7+f11;
	f9 = f9+f12;
	f8 = f8+f10;
	f7 = f7*f6;
	f9 = f9*f6;
	f6 = f8*f6;
	r2 = heap32[(r3+93)];
	f2 = f2+f7;
	f1 = f1+f9;
	f0 = f0+f6;
	r6 = r2 >> 2;
	r6 = heap32[(r6+8)];
if(!(uint(r6) >uint(r4))) //_LBB550_6
{
break _3;
}
}
}
else{
	f0 =                         0;
	f1 = f0;
	f2 = f0;
	f3 = f0;
	f4 = f0;
	f5 = f0;
}
} while(0);
	r0 = r0 >> 2;
	f6 = heapFloat[(r0)];
	f7 = heapFloat[(r0+1)];
	f8 = heapFloat[(r0+4)];
	f9 = heapFloat[(r0+5)];
	f6 = f6*f5;
	f7 = f7*f4;
	f10 = heapFloat[(r0+2)];
	f11 = heapFloat[(r0+8)];
	f12 = heapFloat[(r0+9)];
	f13 = heapFloat[(r0+6)];
	f8 = f8*f5;
	f9 = f9*f4;
	f6 = f6+f7;
	f7 = f10*f3;
	f10 = heapFloat[(r0+10)];
	f11 = f11*f5;
	f12 = f12*f4;
	f8 = f8+f9;
	f9 = f13*f3;
	f6 = f6+f7;
	f7 = heapFloat[(r0+12)];
	f13 = heapFloat[(r0+14)];
	f14 = heapFloat[(r0+13)];
	f8 = f8+f9;
	r1 = r1 >> 2;
	f9 = f11+f12;
	f10 = f10*f3;
	f6 = f6+f7;
	f7 = f9+f10;
	f8 = f8+f14;
	heapFloat[(r1+1)] = f6;
	f6 = f7+f13;
	heapFloat[(r1+2)] = f8;
	heapFloat[(r1+3)] = f6;
	heap32[(r1+4)] = 0;
	f6 = heapFloat[(r0)];
	f7 = heapFloat[(r0+1)];
	f8 = heapFloat[(r0+4)];
	f9 = heapFloat[(r0+5)];
	f10 = heapFloat[(r0+2)];
	f6 = f6*f2;
	f7 = f7*f1;
	f11 = heapFloat[(r0+8)];
	f12 = heapFloat[(r0+9)];
	f13 = heapFloat[(r0+6)];
	f8 = f8*f2;
	f9 = f9*f1;
	f6 = f6+f7;
	f7 = f10*f0;
	f10 = heapFloat[(r0+10)];
	f11 = f11*f2;
	f12 = f12*f1;
	f8 = f8+f9;
	f9 = f13*f0;
	f6 = f6+f7;
	f7 = heapFloat[(r0+12)];
	f13 = heapFloat[(r0+14)];
	f14 = heapFloat[(r0+13)];
	f8 = f8+f9;
	f9 = f11+f12;
	f10 = f10*f0;
	f6 = f6+f7;
	f7 = f9+f10;
	f8 = f8+f14;
	heapFloat[(r1+5)] = f6;
	f6 = f7+f13;
	heapFloat[(r1+6)] = f8;
	heapFloat[(r1+7)] = f6;
	f2 = f5-f2;
	heap32[(r1+8)] = 0;
	f1 = f4-f1;
	heapFloat[(r1+9)] = f2;
	f0 = f3-f0;
	heapFloat[(r1+10)] = f1;
	heapFloat[(r1+11)] = f0;
	f2 = f2*f2;
	f1 = f1*f1;
	heap32[(r1+12)] = 0;
	f1 = f2+f1;
	f0 = f0*f0;
	f0 = f1+f0;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	f2 =   9.9999997473787516e-005;
	f2 = f_g0 > f2 ? f_g0 : f1;
	heapFloat[(r1+13)] = f_g0;
	f0 = f1/f2;
	f1 = heapFloat[(r1+9)];
	f1 = f1*f0;
	heapFloat[(r1+9)] = f1;
	f1 = heapFloat[(r1+10)];
	f1 = f1*f0;
	heapFloat[(r1+10)] = f1;
	f1 = heapFloat[(r1+11)];
	f0 = f1*f0;
	heapFloat[(r1+11)] = f0;
	r0 = 1;
	r_g0 = r0;
	return;
}
else{
	if(r2 !=1) //_LBB550_14
{
	r0 = 2;
}
else{
	r0 = 1;
}
	r1 = r1 >> 2;
	heap32[(r1)] = r0;
	r0 = 0;
	r_g0 = r0;
	return;
}
}

function _ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -104;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+4)];
	r1 = heap32[(fp+5)];
	r2 = r0 >> 2;
	r3 = r1 >> 2;
	f0 = heapFloat[(r2+14)];
	f1 = heapFloat[(r3+14)];
	f2 = heapFloat[(r2+13)];
	f3 = heapFloat[(r3+13)];
	f4 = heapFloat[(r2+12)];
	f5 = heapFloat[(r3+12)];
	r2 = sp + -16;
	f4 = f4-f5;
	r3 = r2 >> 2;
	f2 = f2-f3;
	heapFloat[(fp+-4)] = f4;
	f0 = f0-f1;
	heapFloat[(r3+1)] = f2;
	heapFloat[(r3+2)] = f0;
	heap32[(r3+3)] = 0;
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	r5 = sp + -72;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = 1;
	r6 = heap32[(fp+6)];
	r7 = heap32[(fp+7)];
	r8 = heap32[(fp+8)];
	_ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(i7);
	r9 = r_g0;
	if(r9 ==0) //_LBB551_2
{
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r5;
	_ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB551_4
{
	r0 = r5 >> 2;
	r1 = r7 >> 2;
	heap32[(r1)] = heap32[(r0+1)];
	heap32[(r1+1)] = heap32[(r0+2)];
	heap32[(r1+2)] = heap32[(r0+3)];
	r2 = r8 >> 2;
	heap32[(r1+3)] = heap32[(r0+4)];
	heap32[(r2)] = heap32[(r0+5)];
	heap32[(r2+1)] = heap32[(r0+6)];
	heap32[(r2+2)] = heap32[(r0+7)];
	r1 = r6 >> 2;
	heap32[(r2+3)] = heap32[(r0+8)];
	heap32[(r1)] = heap32[(r0+9)];
	heap32[(r1+1)] = heap32[(r0+10)];
	heap32[(r1+2)] = heap32[(r0+11)];
	heap32[(r1+3)] = heap32[(r0+12)];
}
	r0 = 0;
	r_g0 = r0;
	return;
}
else{
	r0 = r5 >> 2;
	r1 = r7 >> 2;
	heap32[(r1)] = heap32[(r0+1)];
	heap32[(r1+1)] = heap32[(r0+2)];
	heap32[(r1+2)] = heap32[(r0+3)];
	r2 = r8 >> 2;
	heap32[(r1+3)] = heap32[(r0+4)];
	heap32[(r2)] = heap32[(r0+5)];
	heap32[(r2+1)] = heap32[(r0+6)];
	heap32[(r2+2)] = heap32[(r0+7)];
	r1 = r6 >> 2;
	heap32[(r2+3)] = heap32[(r0+8)];
	heap32[(r1)] = heap32[(r0+9)];
	heap32[(r1+1)] = heap32[(r0+10)];
	heap32[(r1+2)] = heap32[(r0+11)];
	heap32[(r1+3)] = heap32[(r0+12)];
	r0 = 1;
	r_g0 = r0;
	return;
}
}

function _ZN30btGjkEpaPenetrationDepthSolverD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV30btGjkEpaPenetrationDepthSolver;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN30btGjkEpaPenetrationDepthSolverD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV30btGjkEpaPenetrationDepthSolver;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN17btGjkPairDetectorD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17btGjkPairDetector;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN17btGjkPairDetectorD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17btGjkPairDetector;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -304;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = sp + -32;
	heap32[(r1+14)] = 0;
	r3 = r2 >> 2;
	heap32[(fp+-8)] = 0;
	heap32[(r3+1)] = 0;
	r4 = heap32[(fp+1)];
	heap32[(r3+2)] = 0;
	r5 = sp + -96;
	r4 = r4 >> 2;
	heap32[(r3+3)] = 0;
	r6 = r5 >> 2;
	heap32[(fp+-24)] = heap32[(r4)];
	heap32[(r6+1)] = heap32[(r4+1)];
	heap32[(r6+2)] = heap32[(r4+2)];
	heap32[(r6+3)] = heap32[(r4+3)];
	heap32[(r6+4)] = heap32[(r4+4)];
	heap32[(r6+5)] = heap32[(r4+5)];
	heap32[(r6+6)] = heap32[(r4+6)];
	heap32[(r6+7)] = heap32[(r4+7)];
	heap32[(r6+8)] = heap32[(r4+8)];
	heap32[(r6+9)] = heap32[(r4+9)];
	heap32[(r6+10)] = heap32[(r4+10)];
	heap32[(r6+11)] = heap32[(r4+11)];
	f0 = heapFloat[(r4+12)];
	f1 = heapFloat[(r4+13)];
	f2 = heapFloat[(r4+14)];
	r7 = sp + -160;
	heap32[(r6+15)] = heap32[(r4+15)];
	r8 = r7 >> 2;
	heap32[(fp+-40)] = heap32[(r4+16)];
	heap32[(r8+1)] = heap32[(r4+17)];
	heap32[(r8+2)] = heap32[(r4+18)];
	heap32[(r8+3)] = heap32[(r4+19)];
	heap32[(r8+4)] = heap32[(r4+20)];
	heap32[(r8+5)] = heap32[(r4+21)];
	heap32[(r8+6)] = heap32[(r4+22)];
	heap32[(r8+7)] = heap32[(r4+23)];
	heap32[(r8+8)] = heap32[(r4+24)];
	heap32[(r8+9)] = heap32[(r4+25)];
	heap32[(r8+10)] = heap32[(r4+26)];
	heap32[(r8+11)] = heap32[(r4+27)];
	f3 = heapFloat[(r4+28)];
	f4 = heapFloat[(r4+29)];
	f5 = heapFloat[(r4+30)];
	f6 = f0+f3;
	f7 =                       0.5;
	f6 = f6*f7;
	f8 = f1+f4;
	f8 = f8*f7;
	f9 = f2+f5;
	f0 = f0-f6;
	heap32[(r8+15)] = heap32[(r4+31)];
	f7 = f9*f7;
	f1 = f1-f8;
	heapFloat[(r6+12)] = f0;
	f0 = f2-f7;
	heapFloat[(r6+13)] = f1;
	f1 = f3-f6;
	heapFloat[(r6+14)] = f0;
	f0 = f4-f8;
	heapFloat[(r8+12)] = f1;
	f1 = f5-f7;
	heapFloat[(r8+13)] = f0;
	heapFloat[(r8+14)] = f1;
	r9 = heap32[(r1+7)];
	r9 = r9 >> 2;
	r10 = heap32[(fp+2)];
	r11 = heap32[(fp+3)];
	r9 = heap32[(r9+1)];
	r9 = (r9 + -17)|0;
	if(uint(r9) >uint(1)) //_LBB556_3
{
__label__ = 3;
}
else{
	r9 = heap32[(r1+8)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+1)];
	r9 = (r9 + -17)|0;
	if(uint(r9) >uint(1)) //_LBB556_3
{
__label__ = 3;
}
else{
	r9 = (r0 + 32)|0;
	r12 = 0;
__label__ = 4;
}
}
if (__label__ == 3){
	r9 = (r0 + 32)|0;
	r12 = 1;
}
	r13 = gNumGjkChecks;
	r13 = r13 >> 2;
	r14 = heap32[(r13)];
	f0 = heapFloat[(r1+11)];
	f1 = heapFloat[(r1+12)];
	r14 = (r14 + 1)|0;
	heap32[(r13)] = r14;
	r13 = heapU8[r0+52];
	heap32[(r1+16)] = 0;
	heap32[(r1+1)] = 0;
	heap32[(r1+2)] = 1065353216;
	heap32[(r1+3)] = 0;
	heap32[(r1+4)] = 0;
	heap32[(r1+17)] = 0;
	heap32[(r1+15)] = -1;
	r14 = heap32[(r1+6)];
	r15 = 0;
	r16 = r14 >> 2;
	heap8[r14+312] = r15;
	r17 = 1;
	heap32[(r16)] = 0;
	heap8[r14+356] = r17;
	heap32[(r16+73)] = 1566444395;
	heap32[(r16+74)] = 1566444395;
	heap32[(r16+75)] = 1566444395;
	heap32[(r16+76)] = 0;
	heap8[r14+352] = r15;
	heap32[(r16+84)] = 0;
	heap32[(r16+85)] = 0;
	heap32[(r16+86)] = 0;
	heap32[(r16+87)] = 0;
	r16 = heapU8[r14+332];
	f2 =                         0;
	r16 = r16 & 240;
	heap8[r14+332] = r16;
	f1 = r13 == r15 ? f1 : f2;
	f0 = r13 == r15 ? f0 : f2;
	f0 = f0+f1;
	f3 = heapFloat[(r1+3)];
	f4 = heapFloat[(r1+2)];
	f5 = heapFloat[(r1+1)];
	f9 =        999999984306749440;
_7: while(true){
	f10 = -f5;
	f11 = heapFloat[(r4)];
	f12 = heapFloat[(r4+4)];
	f13 = heapFloat[(r4+1)];
	f14 = heapFloat[(r4+5)];
	f11 = f11*f10;
	f12 = f12*f4;
	f15 = heapFloat[(r4+8)];
	f16 = heapFloat[(r4+2)];
	f17 = heapFloat[(r4+6)];
	f18 = heapFloat[(r4+10)];
	f19 = heapFloat[(r4+9)];
	f13 = f13*f10;
	f14 = f14*f4;
	f11 = f11-f12;
	f12 = f15*f3;
	r13 = sp + -176;
	f10 = f16*f10;
	f15 = f17*f4;
	f13 = f13-f14;
	f14 = f19*f3;
	f11 = f11-f12;
	r14 = r13 >> 2;
	f10 = f10-f15;
	f12 = f18*f3;
	f13 = f13-f14;
	heapFloat[(fp+-44)] = f11;
	f10 = f10-f12;
	heapFloat[(r14+1)] = f13;
	heapFloat[(r14+2)] = f10;
	heap32[(r14+3)] = 0;
	f10 = heapFloat[(r4+16)];
	f11 = heapFloat[(r4+20)];
	f12 = heapFloat[(r4+17)];
	f13 = heapFloat[(r4+21)];
	f14 = heapFloat[(r4+24)];
	f10 = f10*f5;
	f11 = f11*f4;
	f15 = heapFloat[(r4+18)];
	f16 = heapFloat[(r4+22)];
	f17 = heapFloat[(r4+26)];
	f18 = heapFloat[(r4+25)];
	f12 = f12*f5;
	f13 = f13*f4;
	f10 = f10+f11;
	f11 = f14*f3;
	r14 = sp + -192;
	f5 = f15*f5;
	f4 = f16*f4;
	f12 = f12+f13;
	f13 = f18*f3;
	f10 = f10+f11;
	r16 = r14 >> 2;
	f4 = f5+f4;
	f3 = f17*f3;
	f5 = f12+f13;
	heapFloat[(fp+-48)] = f10;
	f3 = f4+f3;
	heapFloat[(r16+1)] = f5;
	heapFloat[(r16+2)] = f3;
	heap32[(r16+3)] = 0;
	r16 = heap32[(r1+7)];
	r18 = sp + -208;
	heap32[(g0)] = r18;
	heap32[(g0+1)] = r16;
	heap32[(g0+2)] = r13;
	r13 = r9 >> 2;
	_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7);
	r16 = heap32[(r13)];
	r19 = sp + -224;
	heap32[(g0)] = r19;
	heap32[(g0+1)] = r16;
	heap32[(g0+2)] = r14;
	_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7);
	r14 = r18 >> 2;
	r16 = r19 >> 2;
	f3 = heapFloat[(r6+8)];
	f4 = heapFloat[(fp+-52)];
	f5 = heapFloat[(r6+4)];
	f10 = heapFloat[(fp+-24)];
	f11 = heapFloat[(r6+9)];
	f12 = heapFloat[(r14+1)];
	f13 = heapFloat[(r6+5)];
	f14 = heapFloat[(r6+1)];
	f15 = heapFloat[(r8+8)];
	f16 = heapFloat[(fp+-56)];
	f17 = heapFloat[(r8+4)];
	f18 = heapFloat[(fp+-40)];
	f19 = heapFloat[(r8+9)];
	f20 = heapFloat[(r16+1)];
	f21 = heapFloat[(r8+5)];
	f22 = heapFloat[(r8+1)];
	f3 = f3*f4;
	f11 = f11*f12;
	f23 = heapFloat[(r6+10)];
	f24 = heapFloat[(r14+2)];
	f25 = heapFloat[(r6+6)];
	f26 = heapFloat[(r6+2)];
	f15 = f15*f16;
	f19 = f19*f20;
	f27 = heapFloat[(r8+10)];
	f28 = heapFloat[(r16+2)];
	f29 = heapFloat[(r8+6)];
	f30 = heapFloat[(r8+2)];
	f5 = f5*f4;
	f13 = f13*f12;
	f17 = f17*f16;
	f21 = f21*f20;
	f4 = f10*f4;
	f10 = f14*f12;
	f12 = f18*f16;
	f14 = f22*f20;
	f3 = f3+f11;
	f11 = f23*f24;
	f15 = f15+f19;
	f16 = f27*f28;
	f5 = f5+f13;
	f13 = f25*f24;
	f17 = f17+f21;
	f18 = f29*f28;
	f4 = f4+f10;
	f10 = f26*f24;
	f12 = f12+f14;
	f14 = f30*f28;
	f3 = f3+f11;
	f11 = heapFloat[(r6+14)];
	f15 = f15+f16;
	f16 = heapFloat[(r8+14)];
	f5 = f5+f13;
	f13 = heapFloat[(r6+13)];
	f17 = f17+f18;
	f18 = heapFloat[(r8+13)];
	f4 = f4+f10;
	f10 = heapFloat[(r6+12)];
	f12 = f12+f14;
	f14 = heapFloat[(r8+12)];
	f5 = f5+f13;
	f13 = f17+f18;
	f4 = f4+f10;
	f10 = f12+f14;
	f3 = f3+f11;
	f11 = f15+f16;
	f3 = r12 != r15 ? f3 : f2;
	f11 = r12 != r15 ? f11 : f2;
	f12 = f5-f13;
	f14 = heapFloat[(r1+2)];
	f15 = f4-f10;
	f16 = heapFloat[(r1+1)];
	f17 = f3-f11;
	f18 = heapFloat[(r1+3)];
	f16 = f16*f15;
	f14 = f14*f12;
	f14 = f16+f14;
	f16 = f18*f17;
	f14 = f14+f16;
if(!(f14 <=f2)) //_LBB556_8
{
	f16 = heapFloat[(r4+32)];
	f18 = f14*f14;
	f16 = f16*f9;
if(!(f18 <=f16)) //_LBB556_8
{
__label__ = 7;
break _7;
}
}
	r14 = heap32[(r1+6)];
	r16 = r14 >> 2;
	r18 = heap32[(r16)];
_12: do {
	if(r18 >0) //_LBB556_10
{
	r19 = -12;
	f16 = heapFloat[(r16+77)];
	r20 = (r19 - r14)|0;
	r21 = 0;
	r22 = r18;
	r19 = r21;
_14: while(true){
	r23 = -8;
	r24 = -4;
	r23 = (r23 - r20)|0;
	r24 = (r24 - r20)|0;
	r23 = r23 >> 2;
	r24 = r24 >> 2;
	r25 = (r21 - r20)|0;
	r25 = r25 >> 2;
	f18 = heapFloat[(r23)];
	f19 = heapFloat[(r24)];
	f18 = f15-f18;
	f19 = f12-f19;
	f20 = heapFloat[(r25)];
	f20 = f17-f20;
	f18 = f18*f18;
	f19 = f19*f19;
	f18 = f18+f19;
	f19 = f20*f20;
	f18 = f18+f19;
	r22 = (r22 + -1)|0;
	r19 = f18 > f16 ? r19 : r17;
	r20 = (r20 + -16)|0;
	if(r22 !=0) //_LBB556_11
{
continue _14;
}
else{
break _12;
}
}
}
else{
	r19 = r15;
}
} while(0);
	f16 = heapFloat[(r16+76)];
	if(f16 ==f2) //_LBB556_14
{
	f16 = heapFloat[(r16+75)];
if(!(f17 !=f16)) //_LBB556_13
{
	f16 = heapFloat[(r16+74)];
if(!(f12 !=f16)) //_LBB556_13
{
	f16 = heapFloat[(r16+73)];
	r19 = f15 != f16 ? r19 : r17;
}
}
}
	r19 = r19 & 255;
	if(r19 ==0) //_LBB556_19
{
	f14 = f9-f14;
	f16 =   9.9999999747524271e-007;
	f18 = f9*f16;
	if(f14 >f18) //_LBB556_21
{
	heapFloat[(r16+73)] = f15;
	heapFloat[(r16+74)] = f12;
	r18 = r18 << 4;
	heapFloat[(r16+75)] = f17;
	r18 = (r14 + r18)|0;
	heap32[(r16+76)] = 0;
	r18 = r18 >> 2;
	heap8[r14+356] = r17;
	heapFloat[(r18+1)] = f15;
	heapFloat[(r18+2)] = f12;
	heapFloat[(r18+3)] = f17;
	heap32[(r18+4)] = 0;
	r18 = heap32[(r16)];
	r18 = r18 << 4;
	r18 = (r14 + r18)|0;
	r18 = r18 >> 2;
	heapFloat[(r18+21)] = f4;
	heapFloat[(r18+22)] = f5;
	heapFloat[(r18+23)] = f3;
	heap32[(r18+24)] = 0;
	r18 = heap32[(r16)];
	r18 = r18 << 4;
	r14 = (r14 + r18)|0;
	r14 = r14 >> 2;
	heapFloat[(r14+41)] = f10;
	heapFloat[(r14+42)] = f13;
	heapFloat[(r14+43)] = f11;
	heap32[(r14+44)] = 0;
	r14 = heap32[(r16)];
	r14 = (r14 + 1)|0;
	heap32[(r16)] = r14;
	r14 = heap32[(r1+6)];
	heap32[(g0)] = r14;
	_ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7);
	r16 = r_g0;
	if(r16 !=0) //_LBB556_23
{
	r14 = r14 >> 2;
	f5 = heapFloat[(r14+69)];
	f4 = heapFloat[(r14+70)];
	f3 = heapFloat[(r14+71)];
	f10 = heapFloat[(r14+72)];
	heapFloat[(r1+1)] = f5;
	f11 = f5*f5;
	f12 = f4*f4;
	heapFloat[(r1+2)] = f4;
	f11 = f11+f12;
	f12 = f3*f3;
	f11 = f11+f12;
	heapFloat[(r1+3)] = f3;
	heapFloat[(r1+4)] = f10;
	if(f11 >=f16) //_LBB556_25
{
	f10 =   1.1920928955078125e-007;
	f12 = f9-f11;
	f9 = f9*f10;
	if(f12 >f9) //_LBB556_27
{
	r14 = heap32[(r1+16)];
	r16 = (r14 + 1)|0;
	heap32[(r1+16)] = r16;
	if(r14 <1001) //_LBB556_29
{
	r14 = heap32[(r1+6)];
	r14 = r14 >> 2;
	r16 = heap32[(r14)];
	f9 = f11;
	if(r16 !=4) //_LBB556_5
{
continue _7;
}
else{
__label__ = 29;
break _7;
}
}
else{
__label__ = 27;
break _7;
}
}
else{
__label__ = 25;
break _7;
}
}
else{
__label__ = 23;
break _7;
}
}
else{
__label__ = 21;
break _7;
}
}
else{
__label__ = 19;
break _7;
}
}
else{
__label__ = 17;
break _7;
}
}
_29: do {
switch(__label__ ){//multiple entries
case 7:
	heap32[(r1+17)] = 10;
__label__ = 30;
break _29;
break;
case 29:
	heap32[(r1+1)] = heap32[(r14+69)];
	heap32[(r1+2)] = heap32[(r14+70)];
	heap32[(r1+3)] = heap32[(r14+71)];
	r17 = 0;
	heap32[(r1+4)] = heap32[(r14+72)];
	heap32[(r1+17)] = 13;
__label__ = 37;
break _29;
break;
case 27:
	r6 = _2E_str425;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r16;
	printf(i7);
	r6 = heap32[(r13)];
	r8 = heap32[(r1+7)];
	r6 = r6 >> 2;
	r8 = r8 >> 2;
	f2 = heapFloat[(r1+3)];
	f3 = heapFloat[(r1+2)];
	f4 = heapFloat[(r1+1)];
	r6 = heap32[(r6+1)];
	r8 = heap32[(r8+1)];
	r9 = _2E_str1426;
	f4 = f4; //fstod f4, f4
	f3 = f3; //fstod f3, f3
	f2 = f2; //fstod f2, f2
	f5 = f11; //fstod f11, f5
	heap32[(g0)] = r9;
	llvm_writeDouble((i7+8),f4);
	llvm_writeDouble((i7+16),f3);
	llvm_writeDouble((i7+24),f2);
	llvm_writeDouble((i7+32),f5);
	heap32[(g0+10)] = r8;
	heap32[(g0+11)] = r6;
	f2 =                         0;
	r17 = 0;
	printf(i7);
__label__ = 37;
break _29;
break;
case 25:
	r6 = heap32[(r1+6)];
	r6 = r6 >> 2;
	heap32[(r1+1)] = heap32[(r6+69)];
	heap32[(r1+2)] = heap32[(r6+70)];
	heap32[(r1+3)] = heap32[(r6+71)];
	heap32[(r1+4)] = heap32[(r6+72)];
	heap32[(r1+17)] = 12;
	f9 = f11;
__label__ = 30;
break _29;
break;
case 23:
	heap32[(r1+17)] = 6;
__label__ = 30;
break _29;
break;
case 21:
	heap32[(r1+17)] = 3;
__label__ = 30;
break _29;
break;
case 19:
	r6 = 11;
	r8 = 2;
	r6 = f14 > f2 ? r6 : r8;
	heap32[(r1+17)] = r6;
__label__ = 30;
break _29;
break;
case 17:
	heap32[(r1+17)] = 1;
__label__ = 30;
break;
}
} while(0);
if (__label__ == 30){
	r6 = heap32[(r1+6)];
	heap32[(g0)] = r6;
	r6 = r6 >> 2;
	_ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7);
	f3 = heapFloat[(r6+65)];
	f2 = heapFloat[(r6+61)];
	f4 = heapFloat[(r6+66)];
	f5 = heapFloat[(r6+62)];
	f10 = heapFloat[(r6+67)];
	f11 = heapFloat[(r6+63)];
	f2 = f2-f3;
	f5 = f5-f4;
	heapFloat[(fp+-8)] = f2;
	f2 = f11-f10;
	heapFloat[(r3+1)] = f5;
	heapFloat[(r3+2)] = f2;
	heap32[(r3+3)] = 0;
	f2 = heapFloat[(r1+1)];
	f5 = heapFloat[(r1+2)];
	f11 = heapFloat[(r1+3)];
	f2 = f2*f2;
	f5 = f5*f5;
	f2 = f2+f5;
	f5 = f11*f11;
	f2 = f2+f5;
	f5 = f2; //fstod f2, f5
	f11 =                    0.0001;
if(!(f5 >=f11)) //_LBB556_33
{
	heap32[(r1+17)] = 5;
}
	f5 =   1.4210854715202004e-014;
	if(f2 <=f5) //_LBB556_37
{
	f2 =                         0;
	r17 = 0;
	heap32[(r1+15)] = 2;
}
else{
	heapFloat[(g0)] = f2;
	sqrtf(i7);
	f5 =                         1;
	f2 = f5/f_g0;
	f11 = heapFloat[(fp+-8)];
	f11 = f11*f2;
	heapFloat[(fp+-8)] = f11;
	f11 = heapFloat[(r3+1)];
	f11 = f11*f2;
	heapFloat[(r3+1)] = f11;
	f11 = heapFloat[(r3+2)];
	f11 = f11*f2;
	heapFloat[(r3+2)] = f11;
	heapFloat[(g0)] = f9;
	sqrtf(i7);
	f9 = f_g0;
	f11 =                         0;
	if(f9 >f11) //_LBB556_36
{
	f9 = f1/f9;
	f11 = heapFloat[(r1+3)];
	f12 = heapFloat[(r1+2)];
	f13 = heapFloat[(r1+1)];
	f13 = f13*f9;
	f12 = f12*f9;
	f9 = f11*f9;
	f2 = f5/f2;
	f3 = f3+f13;
	f4 = f4+f12;
	f10 = f10+f9;
	f2 = f2-f0;
	heap32[(r1+15)] = 1;
}
else{
	r0 = _2E_str2427;
	r1 = _2E_str3428;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 320;
	_assert(i7);
}
}
}
	r6 = heap32[(r1+18)];
	if(r6 ==0) //_LBB556_45
{
__label__ = 42;
}
else{
	r6 = heap32[(r1+5)];
	if(r6 ==0) //_LBB556_45
{
__label__ = 42;
}
else{
	r8 = heap32[(r1+17)];
	if(r8 ==0) //_LBB556_45
{
__label__ = 42;
}
else{
	f5 = f2+f0;
	f5 = f5; //fstod f5, f5
	f9 =                      0.01;
	if(f5 <f9) //_LBB556_43
{
__label__ = 44;
}
else{
	r8 = r17 & 255;
	if(r8 ==1) //_LBB556_44
{
__label__ = 60;
}
else{
__label__ = 44;
}
}
}
}
}
if (__label__ == 42){
	r6 = r17 & 255;
	if(r6 ==1) //_LBB556_44
{
__label__ = 60;
}
else{
	r6 = heap32[(r1+5)];
	if(r6 ==0) //_LBB556_62
{
__label__ = 59;
}
else{
__label__ = 44;
}
}
}
_58: do {
if (__label__ == 44){
	r8 = gNumDeepPenetrationChecks;
	r8 = r8 >> 2;
	r9 = heap32[(r8)];
	r9 = (r9 + 1)|0;
	heap32[(r8)] = r9;
	heap32[(r1+1)] = 0;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 0;
	heap32[(r1+4)] = 0;
	r8 = r6 >> 2;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+2)];
	r9 = heap32[(r4+33)];
	r12 = heap32[(r13)];
	r13 = heap32[(r1+7)];
	r14 = heap32[(r1+6)];
	r0 = (r0 + 4)|0;
	r15 = sp + -240;
	r16 = sp + -256;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r14;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r12;
	heap32[(g0+4)] = r5;
	heap32[(g0+5)] = r7;
	heap32[(g0+6)] = r0;
	heap32[(g0+7)] = r15;
	heap32[(g0+8)] = r16;
	heap32[(g0+9)] = r11;
	heap32[(g0+10)] = r9;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r0 = r_g0;
	if(r0 ==0) //_LBB556_57
{
	f5 = heapFloat[(r1+1)];
	f9 = heapFloat[(r1+2)];
	f11 = heapFloat[(r1+3)];
	f5 = f5*f5;
	f9 = f9*f9;
	f5 = f5+f9;
	f9 = f11*f11;
	f5 = f5+f9;
	f9 =                         0;
	if(f5 <=f9) //_LBB556_62
{
__label__ = 59;
break _58;
}
else{
	r0 = r15 >> 2;
	r5 = r16 >> 2;
	f5 = heapFloat[(r0+1)];
	f9 = heapFloat[(r5+1)];
	f11 = heapFloat[(fp+-60)];
	f12 = heapFloat[(fp+-64)];
	f11 = f11-f12;
	f5 = f5-f9;
	f9 = heapFloat[(r0+2)];
	f12 = heapFloat[(r5+2)];
	f9 = f9-f12;
	f11 = f11*f11;
	f5 = f5*f5;
	f5 = f11+f5;
	f9 = f9*f9;
	f5 = f5+f9;
	heapFloat[(g0)] = f5;
	sqrtf(i7);
	f0 = f_g0-f0;
	r0 = r17 & 255;
if(!(r0 !=1)) //_LBB556_60
{
	if(f0 >=f2) //_LBB556_61
{
	heap32[(r1+15)] = 5;
__label__ = 59;
break _58;
}
}
	f2 = heapFloat[(r1+1)];
	f3 = heapFloat[(r1+2)];
	f4 = heapFloat[(r1+3)];
	f10 = heapFloat[(fp+-64)];
	f5 = heapFloat[(r5+1)];
	f9 = heapFloat[(r5+2)];
	heapFloat[(fp+-8)] = f2;
	heapFloat[(r3+1)] = f3;
	heapFloat[(r3+2)] = f4;
	f11 = f2*f2;
	f12 = f3*f3;
	heap32[(r3+3)] = heap32[(r1+4)];
	f11 = f11+f12;
	f12 = f4*f4;
	f11 = f11+f12;
	heapFloat[(g0)] = f11;
	sqrtf(i7);
	f12 =                         1;
	f11 = f12/f_g0;
	f12 = heapFloat[(fp+-8)];
	f12 = f12*f11;
	heapFloat[(fp+-8)] = f12;
	f12 = heapFloat[(r3+1)];
	f12 = f12*f11;
	heapFloat[(r3+1)] = f12;
	f12 = heapFloat[(r3+2)];
	f2 = f2*f1;
	f13 = f3*f1;
	f1 = f4*f1;
	f11 = f12*f11;
	f3 = f10+f2;
	f4 = f5+f13;
	f10 = f9+f1;
	heapFloat[(r3+2)] = f11;
	heap32[(r1+15)] = 6;
	f2 = f0;
__label__ = 60;
break _58;
}
}
else{
	r16 = r16 >> 2;
	r15 = r15 >> 2;
	f0 = heapFloat[(r16+1)];
	f1 = heapFloat[(r15+1)];
	f5 = heapFloat[(fp+-64)];
	f9 = heapFloat[(fp+-60)];
	f0 = f0-f1;
	f1 = f5-f9;
	f5 = heapFloat[(r16+2)];
	f9 = heapFloat[(r15+2)];
	f5 = f5-f9;
	f9 = f1*f1;
	f11 = f0*f0;
	f9 = f9+f11;
	f11 = f5*f5;
	f9 = f9+f11;
	f11 =   1.4210854715202004e-014;
	if(f9 <=f11) //_LBB556_50
{
	f1 = heapFloat[(r1+1)];
	f0 = heapFloat[(r1+2)];
	f5 = heapFloat[(r1+3)];
	f9 = f1*f1;
	f12 = f0*f0;
	f9 = f9+f12;
	f13 = f5*f5;
	f12 = heapFloat[(r1+4)];
	f9 = f9+f13;
}
else{
	f12 =                         0;
}
	if(f9 <=f11) //_LBB556_56
{
	heap32[(r1+15)] = 9;
__label__ = 59;
break _58;
}
else{
	heapFloat[(g0)] = f9;
	sqrtf(i7);
	f9 = f_g0;
	f11 = heapFloat[(r15+1)];
	f13 = heapFloat[(r16+1)];
	f14 = heapFloat[(fp+-60)];
	f15 = heapFloat[(fp+-64)];
	f14 = f14-f15;
	f11 = f11-f13;
	f13 = heapFloat[(r15+2)];
	f15 = heapFloat[(r16+2)];
	f13 = f13-f15;
	f14 = f14*f14;
	f11 = f11*f11;
	f11 = f14+f11;
	f13 = f13*f13;
	f11 = f11+f13;
	heapFloat[(g0)] = f11;
	sqrtf(i7);
	f11 = -f_g0;
	r15 = r17 & 255;
if(!(r15 !=1)) //_LBB556_54
{
	if(f2 <=f11) //_LBB556_55
{
	heap32[(r1+15)] = 8;
__label__ = 59;
break _58;
}
}
	f2 =                         1;
	f2 = f2/f9;
	f3 = heapFloat[(fp+-64)];
	f4 = heapFloat[(r16+1)];
	f10 = heapFloat[(r16+2)];
	f1 = f1*f2;
	f0 = f0*f2;
	heapFloat[(fp+-8)] = f1;
	f1 = f5*f2;
	heapFloat[(r3+1)] = f0;
	heapFloat[(r3+2)] = f1;
	heapFloat[(r3+3)] = f12;
	heap32[(r1+15)] = 3;
	f2 = f11;
__label__ = 60;
}
}
}
} while(0);
if (__label__ == 59){
	r0 = r17 & 255;
	if(r0 ==0) //_LBB556_66
{
__label__ = 63;
}
else{
__label__ = 60;
}
}
_81: do {
if (__label__ == 60){
	f0 =                         0;
if(!(f2 <f0)) //_LBB556_65
{
	f0 = f2*f2;
	f1 = heapFloat[(r4+32)];
	if(f0 >=f1) //_LBB556_66
{
break _81;
}
}
	heap32[(r1+1)] = heap32[(fp+-8)];
	heap32[(r1+2)] = heap32[(r3+1)];
	heap32[(r1+3)] = heap32[(r3+2)];
	heap32[(r1+4)] = heap32[(r3+3)];
	r0 = r10 >> 2;
	heapFloat[(r1+14)] = f2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r1 = sp + -16;
	f0 = f3+f6;
	r3 = r1 >> 2;
	f1 = f4+f8;
	heapFloat[(fp+-4)] = f0;
	f0 = f10+f7;
	heapFloat[(r3+1)] = f1;
	heapFloat[(r3+2)] = f0;
	heap32[(r3+3)] = 0;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	heapFloat[(g0+3)] = f2;
	__FUNCTION_TABLE__[(r0)>>2](i7);
}
} while(0);
	return;
}

function _ZN20btPersistentManifold18removeContactPointEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
	r3 = (r2 + -1)|0;
	r4 = heap32[(fp+1)];
	if(r3 ==r4) //_LBB557_2
{
	r3 = (r2 * 276)|0;
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+-41)];
	if(r0 !=0) //_LBB557_4
{
	r1 = _2E_str434;
	r2 = _2E_str483;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 160;
	_assert(i7);
}
}
else{
	r4 = (r4 * 276)|0;
	r5 = (r0 + 4)|0;
	r3 = (r3 * 276)|0;
	r4 = (r5 + r4)|0;
	r3 = (r5 + r3)|0;
	r2 = (r2 * 276)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 276;
	r0 = (r0 + r2)|0;
	memcpy(i7);
	r2 = r0 >> 2;
	heap32[(r2+-41)] = 0;
	heap32[(r2+-16)] = 0;
	heap32[(r2+-8)] = 0;
	heap32[(r2)] = 0;
	r3 = 0;
	heap32[(r2+-40)] = 0;
	heap8[r0+-156] = r3;
	heap32[(r2+-38)] = 0;
	heap32[(r2+-37)] = 0;
	heap32[(r2+-32)] = 0;
	r2 = heap32[(r1+279)];
}
	r0 = (r2 + -1)|0;
	heap32[(r1+279)] = r0;
	return;
}

function _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+279)];
	r3 = (r2 + -1)|0;
	if(r3 >-1) //_LBB558_2
{
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
_3: while(true){
	r5 = (r2 * 69)|0;
	r5 = r5 << 2;
	r5 = (r0 + r5)|0;
	r6 = r3 >> 2;
	r5 = r5 >> 2;
	f0 = heapFloat[(r5+-68)];
	f1 = heapFloat[(r6)];
	f2 = heapFloat[(r5+-67)];
	f3 = heapFloat[(r6+1)];
	f4 = heapFloat[(r6+4)];
	f5 = heapFloat[(r6+5)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r5+-66)];
	f7 = heapFloat[(r6+2)];
	f8 = heapFloat[(r6+8)];
	f9 = heapFloat[(r6+9)];
	f10 = heapFloat[(r6+6)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r6+10)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r6+12)];
	f8 = heapFloat[(r6+14)];
	f9 = heapFloat[(r6+13)];
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f4+f9;
	heapFloat[(r5+-56)] = f1;
	f0 = f0+f8;
	heapFloat[(r5+-55)] = f2;
	heapFloat[(r5+-54)] = f0;
	heap32[(r5+-53)] = 0;
	r6 = r4 >> 2;
	f0 = heapFloat[(r5+-64)];
	f1 = heapFloat[(r6)];
	f2 = heapFloat[(r5+-63)];
	f3 = heapFloat[(r6+1)];
	f4 = heapFloat[(r6+4)];
	f5 = heapFloat[(r6+5)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r5+-62)];
	f7 = heapFloat[(r6+2)];
	f8 = heapFloat[(r6+8)];
	f9 = heapFloat[(r6+9)];
	f10 = heapFloat[(r6+6)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r6+10)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r6+12)];
	f8 = heapFloat[(r6+14)];
	f9 = heapFloat[(r6+13)];
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f4+f9;
	heapFloat[(r5+-60)] = f1;
	f0 = f0+f8;
	heapFloat[(r5+-59)] = f2;
	heapFloat[(r5+-58)] = f0;
	heap32[(r5+-57)] = 0;
	f0 = heapFloat[(r5+-55)];
	f1 = heapFloat[(r5+-59)];
	f2 = heapFloat[(r5+-56)];
	f3 = heapFloat[(r5+-60)];
	f2 = f2-f3;
	f3 = heapFloat[(r5+-52)];
	f0 = f0-f1;
	f1 = heapFloat[(r5+-51)];
	f4 = heapFloat[(r5+-54)];
	f5 = heapFloat[(r5+-58)];
	f6 = heapFloat[(r5+-50)];
	f4 = f4-f5;
	f2 = f2*f3;
	f0 = f0*f1;
	f0 = f2+f0;
	f1 = f4*f6;
	f0 = f0+f1;
	heapFloat[(r5+-48)] = f0;
	r6 = heap32[(r5+-32)];
	r2 = (r2 + -1)|0;
	r6 = (r6 + 1)|0;
	heap32[(r5+-32)] = r6;
if(!(r2 !=0)) //_LBB558_3
{
break _3;
}
}
	r2 = heap32[(r1+279)];
}
	r2 = (r2 + -1)|0;
_7: do {
if(!(r2 <0)) //_LBB558_11
{
_8: while(true){
	r3 = r2;
	r2 = (r3 * 69)|0;
	r2 = r2 << 2;
	r2 = (r0 + r2)|0;
	r2 = r2 >> 2;
	f0 = heapFloat[(r2+21)];
	f1 = heapFloat[(r1+280)];
	if(f0 <=f1) //_LBB558_8
{
	f2 = heapFloat[(r2+17)];
	f3 = heapFloat[(r2+18)];
	f4 = heapFloat[(r2+19)];
	f5 = heapFloat[(r2+13)];
	f2 = f2*f0;
	f6 = heapFloat[(r2+14)];
	f3 = f3*f0;
	f7 = heapFloat[(r2+9)];
	f2 = f5-f2;
	f5 = heapFloat[(r2+10)];
	f3 = f6-f3;
	f6 = heapFloat[(r2+15)];
	f0 = f4*f0;
	f2 = f7-f2;
	f3 = f5-f3;
	f4 = heapFloat[(r2+11)];
	f0 = f6-f0;
	f0 = f4-f0;
	f2 = f2*f2;
	f3 = f3*f3;
	f2 = f2+f3;
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f2+f0;
if(!(f1 >=f0)) //_LBB558_10
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	_ZN20btPersistentManifold18removeContactPointEi(i7);
}
}
else{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	_ZN20btPersistentManifold18removeContactPointEi(i7);
}
	r2 = (r3 + -1)|0;
	if(r3 !=0) //_LBB558_6
{
continue _8;
}
else{
break _7;
}
}
}
} while(0);
	return;
}

function _ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
var __label__ = 0;
	i7 = sp + -56;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+6)];
	f1 = heapFloat[(r0+2)];
	f2 = heapFloat[(r0+10)];
	f3 = heapFloat[(r0+5)];
	f4 = heapFloat[(r0+1)];
	f5 = heapFloat[(r0+9)];
	f6 = heapFloat[(r0+4)];
	f7 = heapFloat[(r0)];
	f8 = heapFloat[(r0+8)];
	f9 = f3-f4;
	f10 = f2-f1;
	f11 = f0-f1;
	f12 = f5-f4;
	f13 = f8-f7;
	f14 = f6-f7;
	f15 = f9*f10;
	f16 = f11*f12;
	f15 = f15-f16;
	r0 = sp + -32;
	f11 = f11*f13;
	f10 = f14*f10;
	f10 = f11-f10;
	r1 = r0 >> 2;
	heapFloat[(fp+-8)] = f15;
	f11 = f14*f12;
	f9 = f9*f13;
	f9 = f11-f9;
	heapFloat[(r1+1)] = f10;
	r2 = heap32[(fp)];
	heapFloat[(r1+2)] = f9;
	r3 = r2 >> 2;
	heap32[(r1+3)] = 0;
	f11 = heapFloat[(r3+1)];
	f12 = heapFloat[(r3+2)];
	f13 = heapFloat[(r3+5)];
	f14 = heapFloat[(r3+6)];
	f16 = heapFloat[(r3+3)];
	f17 = heapFloat[(r3+7)];
	f18 = f15*f11;
	f19 = f10*f12;
	f20 = f15*f13;
	f21 = f10*f14;
	f22 = f7*f15;
	f23 = f4*f10;
	f18 = f18+f19;
	f19 = f9*f16;
	f20 = f20+f21;
	f21 = f9*f17;
	f22 = f22+f23;
	f23 = f1*f9;
	f18 = f18+f19;
	f19 = f22+f23;
	f20 = f20+f21;
	f18 = f18-f19;
	f19 = f20-f19;
	f20 = f18*f19;
	f21 =                         0;
_1: do {
if(!(f20 >=f21)) //_LBB559_11
{
	r4 = heap32[(r3+9)];
	r4 = r4 & 1;
if(!(r4 ==0)) //_LBB559_3
{
	if(f18 >f21) //_LBB559_11
{
break _1;
}
}
	f19 = f18-f19;
	f19 = f18/f19;
	f20 = heapFloat[(r3+10)];
if(!(f20 <=f19)) //_LBB559_11
{
	f20 =                         1;
	f22 = f20-f19;
	f16 = f16*f22;
	f17 = f17*f19;
	f12 = f12*f22;
	f14 = f14*f19;
	f11 = f11*f22;
	f13 = f13*f19;
	f16 = f16+f17;
	f12 = f12+f14;
	f11 = f11+f13;
	f1 = f1-f16;
	f3 = f3-f12;
	f7 = f7-f11;
	f0 = f0-f16;
	f4 = f4-f12;
	f6 = f6-f11;
	f13 = f15*f15;
	f14 = f10*f10;
	f17 = f4*f0;
	f22 = f1*f3;
	f23 = f1*f6;
	f24 = f7*f0;
	f13 = f13+f14;
	f14 = f9*f9;
	f17 = f17-f22;
	f22 = f23-f24;
	f13 = f13+f14;
	f14 =  -9.9999997473787516e-005;
	f23 = f7*f3;
	f24 = f4*f6;
	f23 = f23-f24;
	f14 = f13*f14;
	f17 = f17*f15;
	f22 = f22*f10;
	f17 = f17+f22;
	f22 = f23*f9;
	f17 = f17+f22;
if(!(f17 <f14)) //_LBB559_11
{
	f2 = f2-f16;
	f5 = f5-f12;
	f8 = f8-f11;
	f11 = f3*f2;
	f12 = f0*f5;
	f0 = f0*f8;
	f16 = f6*f2;
	f11 = f11-f12;
	f0 = f0-f16;
	f6 = f6*f5;
	f3 = f3*f8;
	f11 = f11*f15;
	f0 = f0*f10;
	f3 = f6-f3;
	f0 = f11+f0;
	f3 = f3*f9;
	f0 = f0+f3;
if(!(f0 <f14)) //_LBB559_11
{
	f0 = f5*f1;
	f3 = f2*f4;
	f2 = f2*f7;
	f1 = f8*f1;
	f0 = f0-f3;
	f1 = f2-f1;
	f2 = f8*f4;
	f3 = f5*f7;
	f0 = f0*f15;
	f1 = f1*f10;
	f2 = f2-f3;
	f0 = f0+f1;
	f1 = f2*f9;
	f0 = f0+f1;
if(!(f0 <f14)) //_LBB559_11
{
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	heapFloat[(g0)] = f13;
	sqrtf(i7);
	f0 = f20/f_g0;
	f1 = heapFloat[(fp+-8)];
	f1 = f1*f0;
	heapFloat[(fp+-8)] = f1;
	f2 = heapFloat[(r1+1)];
	f2 = f2*f0;
	heapFloat[(r1+1)] = f2;
	f3 = heapFloat[(r1+2)];
	f0 = f3*f0;
	heapFloat[(r1+2)] = f0;
	r1 = heap32[(r3)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+3)];
	r6 = heap32[(r3+9)];
	r6 = r6 & 2;
	if(r6 !=0) //_LBB559_9
{
__label__ = 9;
}
else{
	if(f18 >f21) //_LBB559_10
{
__label__ = 10;
}
else{
__label__ = 9;
}
}
if (__label__ == 9){
	r0 = sp + -16;
	f1 = -f1;
	r6 = r0 >> 2;
	f2 = -f2;
	heapFloat[(fp+-4)] = f1;
	f0 = -f0;
	heapFloat[(r6+1)] = f2;
	heapFloat[(r6+2)] = f0;
	heap32[(r6+3)] = 0;
}
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heapFloat[(g0+2)] = f19;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r5;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	heapFloat[(r3+10)] = f_g0;
}
}
}
}
}
} while(0);
	return;
}

function _ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV28btTriangleConvexcastCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+1)];
	heap32[(r0)] = r1;
	r1 = r2 >> 2;
	heap32[(r0+1)] = r3;
	heap32[(r0+2)] = heap32[(r1)];
	heap32[(r0+3)] = heap32[(r1+1)];
	heap32[(r0+4)] = heap32[(r1+2)];
	heap32[(r0+5)] = heap32[(r1+3)];
	heap32[(r0+6)] = heap32[(r1+4)];
	heap32[(r0+7)] = heap32[(r1+5)];
	heap32[(r0+8)] = heap32[(r1+6)];
	heap32[(r0+9)] = heap32[(r1+7)];
	heap32[(r0+10)] = heap32[(r1+8)];
	heap32[(r0+11)] = heap32[(r1+9)];
	heap32[(r0+12)] = heap32[(r1+10)];
	heap32[(r0+13)] = heap32[(r1+11)];
	heap32[(r0+14)] = heap32[(r1+12)];
	heap32[(r0+15)] = heap32[(r1+13)];
	r2 = heap32[(fp+3)];
	heap32[(r0+16)] = heap32[(r1+14)];
	r2 = r2 >> 2;
	heap32[(r0+17)] = heap32[(r1+15)];
	heap32[(r0+18)] = heap32[(r2)];
	heap32[(r0+19)] = heap32[(r2+1)];
	heap32[(r0+20)] = heap32[(r2+2)];
	heap32[(r0+21)] = heap32[(r2+3)];
	heap32[(r0+22)] = heap32[(r2+4)];
	heap32[(r0+23)] = heap32[(r2+5)];
	heap32[(r0+24)] = heap32[(r2+6)];
	heap32[(r0+25)] = heap32[(r2+7)];
	heap32[(r0+26)] = heap32[(r2+8)];
	heap32[(r0+27)] = heap32[(r2+9)];
	heap32[(r0+28)] = heap32[(r2+10)];
	heap32[(r0+29)] = heap32[(r2+11)];
	heap32[(r0+30)] = heap32[(r2+12)];
	heap32[(r0+31)] = heap32[(r2+13)];
	r1 = heap32[(fp+4)];
	heap32[(r0+32)] = heap32[(r2+14)];
	r1 = r1 >> 2;
	heap32[(r0+33)] = heap32[(r2+15)];
	heap32[(r0+34)] = heap32[(r1)];
	heap32[(r0+35)] = heap32[(r1+1)];
	heap32[(r0+36)] = heap32[(r1+2)];
	heap32[(r0+37)] = heap32[(r1+3)];
	heap32[(r0+38)] = heap32[(r1+4)];
	heap32[(r0+39)] = heap32[(r1+5)];
	heap32[(r0+40)] = heap32[(r1+6)];
	heap32[(r0+41)] = heap32[(r1+7)];
	heap32[(r0+42)] = heap32[(r1+8)];
	heap32[(r0+43)] = heap32[(r1+9)];
	heap32[(r0+44)] = heap32[(r1+10)];
	heap32[(r0+45)] = heap32[(r1+11)];
	heap32[(r0+46)] = heap32[(r1+12)];
	heap32[(r0+47)] = heap32[(r1+13)];
	heap32[(r0+48)] = heap32[(r1+14)];
	heap32[(r0+49)] = heap32[(r1+15)];
	heap32[(r0+50)] = 1065353216;
	heap32[(r0+51)] = heap32[(fp+5)];
	return;
}

function _ZN28btTriangleConvexcastCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN28btTriangleConvexcastCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV18btTriangleCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -696;var g0 = i7>>2; // save stack
	r0 = sp + -104;
	r1 = r0 >> 2;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 1065353216;
	heap32[(r1+4)] = 1065353216;
	r2 = _ZTV15btTriangleShape;
	heap32[(r1+5)] = 1065353216;
	r2 = (r2 + 8)|0;
	heap32[(r1+6)] = 0;
	r3 = heap32[(fp+1)];
	heap32[(fp+-26)] = r2;
	r2 = r3 >> 2;
	heap32[(r1+1)] = 1;
	heap32[(r1+13)] = heap32[(r2)];
	heap32[(r1+14)] = heap32[(r2+1)];
	heap32[(r1+15)] = heap32[(r2+2)];
	heap32[(r1+16)] = heap32[(r2+3)];
	heap32[(r1+17)] = heap32[(r2+4)];
	heap32[(r1+18)] = heap32[(r2+5)];
	heap32[(r1+19)] = heap32[(r2+6)];
	heap32[(r1+20)] = heap32[(r2+7)];
	heap32[(r1+21)] = heap32[(r2+8)];
	heap32[(r1+22)] = heap32[(r2+9)];
	r3 = heap32[(fp)];
	heap32[(r1+23)] = heap32[(r2+10)];
	r4 = sp + -464;
	r5 = r3 >> 2;
	heap32[(r1+24)] = heap32[(r2+11)];
	r2 = r4 >> 2;
	heap32[(r1+11)] = heap32[(r5+51)];
	r1 = _ZTV30btGjkEpaPenetrationDepthSolver;
	r6 = 0;
	heap32[(r2+77)] = 953267991;
	r1 = (r1 + 8)|0;
	heap8[sp+-132] = r6;
	heap32[(fp+-118)] = r1;
	r1 = _ZTV27btContinuousConvexCollision;
	r2 = sp + -496;
	r6 = heap32[(r5+1)];
	r1 = (r1 + 8)|0;
	r7 = r2 >> 2;
	heap32[(fp+-124)] = r1;
	r1 = sp + -472;
	heap32[(r7+1)] = r4;
	heap32[(r7+2)] = r1;
	r1 = _ZTVN12btConvexCast10CastResultE;
	heap32[(r7+3)] = r6;
	r4 = sp + -672;
	r1 = (r1 + 8)|0;
	heap32[(r7+4)] = r0;
	r0 = r4 >> 2;
	heap32[(fp+-168)] = r1;
	heap32[(r0+42)] = 0;
	heap32[(r0+43)] = 0;
	heap32[(r0+41)] = 1065353216;
	r1 = (r3 + 136)|0;
	r6 = (r3 + 8)|0;
	r7 = (r3 + 72)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r1;
	heap32[(g0+5)] = r4;
	_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
	r1 = r_g0;
if(!(r1 ==0)) //_LBB563_4
{
	f0 = heapFloat[(r0+33)];
	f1 = heapFloat[(r0+34)];
	f2 = heapFloat[(r0+35)];
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	f1 =   9.9999997473787516e-005;
if(!(f0 <=f1)) //_LBB563_4
{
	f1 = heapFloat[(r0+41)];
	f2 = heapFloat[(r5+50)];
if(!(f1 >=f2)) //_LBB563_4
{
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f1 =                         1;
	f0 = f1/f_g0;
	f1 = heapFloat[(r0+33)];
	f1 = f1*f0;
	heapFloat[(r0+33)] = f1;
	f1 = heapFloat[(r0+34)];
	f1 = f1*f0;
	heapFloat[(r0+34)] = f1;
	f1 = heapFloat[(r0+35)];
	f0 = f1*f0;
	heapFloat[(r0+35)] = f0;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+3)];
	f0 = heapFloat[(r0+41)];
	r0 = (r4 + 132)|0;
	r4 = (r4 + 148)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heapFloat[(g0+3)] = f0;
	heap32[(g0+4)] = r1;
	heap32[(g0+5)] = r2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
}
}
	return;
}

function _ZN22btSubsimplexConvexCastD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btConvexCast;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN22btSubsimplexConvexCastD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV12btConvexCast;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -240;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
	r2 = 0;
	r3 = r1 >> 2;
	heap8[r1+312] = r2;
	r4 = 1;
	heap32[(r3)] = 0;
	heap8[r1+356] = r4;
	heap32[(r3+73)] = 1566444395;
	heap32[(r3+74)] = 1566444395;
	heap32[(r3+75)] = 1566444395;
	heap32[(r3+76)] = 0;
	heap8[r1+352] = r2;
	heap32[(r3+84)] = 0;
	heap32[(r3+85)] = 0;
	heap32[(r3+86)] = 0;
	heap32[(r3+87)] = 0;
	r3 = heapU8[r1+332];
	r5 = heap32[(fp+1)];
	r6 = heap32[(fp+2)];
	r7 = heap32[(fp+4)];
	r8 = heap32[(fp+3)];
	r3 = r3 & 240;
	heap8[r1+332] = r3;
	r1 = r5 >> 2;
	r3 = r8 >> 2;
	r5 = r6 >> 2;
	r6 = r7 >> 2;
	f0 = heapFloat[(r1+12)];
	f1 = heapFloat[(r5+12)];
	f2 = heapFloat[(r3+12)];
	f3 = heapFloat[(r6+12)];
	f4 = heapFloat[(r1+13)];
	f5 = heapFloat[(r5+13)];
	f6 = heapFloat[(r3+13)];
	f7 = heapFloat[(r6+13)];
	r7 = heap32[(r0+2)];
	f1 = f1-f0;
	f3 = f3-f2;
	f1 = f1-f3;
	heapFloat[(fp+-50)] = f1;
	f3 = heapFloat[(r1+14)];
	f8 = heapFloat[(r5+14)];
	f9 = heapFloat[(r3+14)];
	f10 = heapFloat[(r6+14)];
	r8 = r7 >> 2;
	f5 = f5-f4;
	f7 = f7-f6;
	f5 = f5-f7;
	heapFloat[(fp+-51)] = f5;
	f7 = heapFloat[(r1+4)];
	heapFloat[(fp+-42)] = f7;
	f11 = heapFloat[(r1)];
	heapFloat[(fp+-43)] = f11;
	f12 = -f1;
	r8 = heap32[(r8)];
	f8 = f8-f3;
	f10 = f10-f9;
	f13 = heapFloat[(r1+1)];
	heapFloat[(fp+-44)] = f13;
	f14 = heapFloat[(r1+5)];
	heapFloat[(fp+-45)] = f14;
	r8 = r8 >> 2;
	f8 = f8-f10;
	heapFloat[(fp+-52)] = f8;
	f10 = heapFloat[(r1+8)];
	heapFloat[(fp+-46)] = f10;
	f11 = f11*f12;
	f7 = f7*f5;
	f15 = heapFloat[(r1+2)];
	heapFloat[(fp+-47)] = f15;
	f16 = heapFloat[(r1+6)];
	f17 = heapFloat[(r1+9)];
	f18 = heapFloat[(r1+10)];
	f19 = heapFloat[(r3)];
	heapFloat[(fp+-33)] = f19;
	f19 = heapFloat[(r3+1)];
	heapFloat[(fp+-34)] = f19;
	f19 = heapFloat[(r3+2)];
	heapFloat[(fp+-35)] = f19;
	f19 = heapFloat[(r3+4)];
	heapFloat[(fp+-36)] = f19;
	f19 = heapFloat[(r3+5)];
	heapFloat[(fp+-37)] = f19;
	f19 = heapFloat[(r3+6)];
	heapFloat[(fp+-38)] = f19;
	f19 = heapFloat[(r3+8)];
	heapFloat[(fp+-39)] = f19;
	f19 = heapFloat[(r3+9)];
	heapFloat[(fp+-40)] = f19;
	f19 = heapFloat[(r3+10)];
	heapFloat[(fp+-41)] = f19;
	r8 = heap32[(r8+15)];
	f13 = f13*f12;
	f14 = f14*f5;
	f7 = f11-f7;
	f10 = f10*f8;
	r9 = sp + -112;
	f11 = f15*f12;
	f12 = f16*f5;
	f13 = f13-f14;
	f14 = f17*f8;
	f7 = f7-f10;
	r10 = r9 >> 2;
	f10 = f11-f12;
	f11 = f18*f8;
	f12 = f13-f14;
	heapFloat[(fp+-28)] = f7;
	f7 = f10-f11;
	heapFloat[(r10+1)] = f12;
	heapFloat[(r10+2)] = f7;
	heap32[(r10+3)] = 0;
	r10 = sp + -128;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r9;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r7 = heap32[(r0+3)];
	r8 = r7 >> 2;
	r8 = heap32[(r8)];
	f7 = heapFloat[(r3)];
	f10 = heapFloat[(r3+4)];
	r9 = r10 >> 2;
	r8 = r8 >> 2;
	f11 = heapFloat[(r3+1)];
	f12 = heapFloat[(r3+5)];
	f13 = heapFloat[(r3+8)];
	f7 = f7*f1;
	f10 = f10*f5;
	f14 = heapFloat[(r3+2)];
	f15 = heapFloat[(r3+6)];
	f19 = heapFloat[(r3+10)];
	f20 = heapFloat[(r3+9)];
	r8 = heap32[(r8+15)];
	f11 = f11*f1;
	f12 = f12*f5;
	f7 = f7+f10;
	f10 = f13*f8;
	f13 = heapFloat[(r1)];
	heapFloat[(fp+-48)] = f13;
	f21 = heapFloat[(fp+-32)];
	f22 = heapFloat[(r1+4)];
	f23 = heapFloat[(r1+8)];
	heapFloat[(fp+-49)] = f23;
	f24 = heapFloat[(r1+1)];
	f25 = heapFloat[(r9+1)];
	f26 = heapFloat[(r1+5)];
	f27 = heapFloat[(r1+9)];
	f28 = heapFloat[(r1+2)];
	f29 = heapFloat[(r9+2)];
	f30 = heapFloat[(r1+6)];
	f13 = heapFloat[(r1+10)];
	heapFloat[(fp+-54)] = f13;
	f13 = heapFloat[(r1+12)];
	heapFloat[(fp+-53)] = f13;
	f13 = heapFloat[(r1+13)];
	heapFloat[(fp+-56)] = f13;
	f13 = heapFloat[(r1+14)];
	heapFloat[(fp+-55)] = f13;
	r9 = sp + -80;
	f1 = f14*f1;
	f5 = f15*f5;
	f11 = f11+f12;
	f12 = f20*f8;
	f7 = f7+f10;
	r10 = r9 >> 2;
	f1 = f1+f5;
	f5 = f19*f8;
	f8 = f11+f12;
	heapFloat[(fp+-20)] = f7;
	f1 = f1+f5;
	heapFloat[(r10+1)] = f8;
	heapFloat[(r10+2)] = f1;
	heap32[(r10+3)] = 0;
	r10 = sp + -96;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r9;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r7 = r10 >> 2;
	f1 = heapFloat[(r3)];
	f5 = heapFloat[(fp+-24)];
	f7 = heapFloat[(r3+4)];
	f8 = heapFloat[(r3+1)];
	f10 = heapFloat[(r7+1)];
	f11 = heapFloat[(r3+5)];
	f12 = heapFloat[(r3+8)];
	f14 = heapFloat[(r3+9)];
	f13 = heapFloat[(fp+-48)];
	f13 = f13*f21;
	f15 = f24*f25;
	f1 = f1*f5;
	f8 = f8*f10;
	f19 = heapFloat[(r3+2)];
	f20 = heapFloat[(r7+2)];
	f24 = heapFloat[(r3+6)];
	f22 = f22*f21;
	f26 = f26*f25;
	f7 = f7*f5;
	f11 = f11*f10;
	f23 = heapFloat[(r3+10)];
	f13 = f13+f15;
	f15 = f28*f29;
	f1 = f1+f8;
	f8 = f19*f20;
	f19 = f22+f26;
	f22 = f30*f29;
	f7 = f7+f11;
	f11 = f24*f20;
	f24 = heapFloat[(fp+-49)];
	f21 = f24*f21;
	f24 = f27*f25;
	f5 = f12*f5;
	f10 = f14*f10;
	f12 = f13+f15;
	f13 = f19+f22;
	f1 = f1+f8;
	f8 = heapFloat[(r3+12)];
	f7 = f7+f11;
	f11 = heapFloat[(r3+13)];
	f14 = f21+f24;
	f15 = heapFloat[(fp+-54)];
	f15 = f15*f29;
	f5 = f5+f10;
	f10 = f23*f20;
	f14 = f14+f15;
	f15 = heapFloat[(fp+-53)];
	f12 = f12+f15;
	f1 = f1+f8;
	f8 = heapFloat[(fp+-56)];
	f8 = f13+f8;
	f7 = f7+f11;
	f5 = f5+f10;
	f10 = heapFloat[(r3+14)];
	f1 = f12-f1;
	f7 = f8-f7;
	f13 = heapFloat[(fp+-55)];
	f8 = f14+f13;
	f5 = f5+f10;
	f5 = f8-f5;
	f8 = f1*f1;
	f10 = f7*f7;
	f8 = f8+f10;
	f10 = f5*f5;
	r7 = heap32[(fp+5)];
	f8 = f8+f10;
	r8 = -33;
	f10 =                         0;
	heapFloat[(fp+-48)] = f10;
	heapFloat[(fp+-49)] = f10;
	f11 = f10;
_1: while(true){
	f12 =   9.9999997473787516e-005;
	if(f8 <=f12) //_LBB566_22
{
__label__ = 19;
break _1;
}
else{
	r8 = (r8 + 1)|0;
	if(r8 !=0) //_LBB566_1
{
	r9 = heap32[(r0+2)];
	r10 = r9 >> 2;
	r10 = heap32[(r10)];
	f8 = -f1;
	r10 = r10 >> 2;
	f12 = heapFloat[(fp+-43)];
	f12 = f12*f8;
	f13 = heapFloat[(fp+-42)];
	f13 = f13*f7;
	r10 = heap32[(r10+15)];
	f14 = heapFloat[(fp+-44)];
	f14 = f14*f8;
	f15 = heapFloat[(fp+-45)];
	f15 = f15*f7;
	f12 = f12-f13;
	f13 = heapFloat[(fp+-46)];
	f13 = f13*f5;
	r11 = sp + -48;
	f19 = heapFloat[(fp+-47)];
	f8 = f19*f8;
	f19 = f16*f7;
	f14 = f14-f15;
	f15 = f17*f5;
	f12 = f12-f13;
	r12 = r11 >> 2;
	f8 = f8-f19;
	f13 = f18*f5;
	f14 = f14-f15;
	heapFloat[(fp+-12)] = f12;
	f8 = f8-f13;
	heapFloat[(r12+1)] = f14;
	heapFloat[(r12+2)] = f8;
	heap32[(r12+3)] = 0;
	r12 = sp + -64;
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r11;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r9 = heap32[(r0+3)];
	r10 = r9 >> 2;
	r10 = heap32[(r10)];
	r11 = r12 >> 2;
	r10 = r10 >> 2;
	f8 = heapFloat[(fp+-33)];
	f8 = f8*f1;
	f12 = heapFloat[(fp+-36)];
	f12 = f12*f7;
	f13 = heapFloat[(fp+-16)];
	f14 = heapFloat[(r11+1)];
	f15 = heapFloat[(r11+2)];
	r10 = heap32[(r10+15)];
	f19 = heapFloat[(fp+-34)];
	f19 = f19*f1;
	f20 = heapFloat[(fp+-37)];
	f20 = f20*f7;
	f8 = f8+f12;
	f12 = heapFloat[(fp+-39)];
	f12 = f12*f5;
	r11 = sp + -16;
	f21 = heapFloat[(fp+-35)];
	f21 = f21*f1;
	f22 = heapFloat[(fp+-38)];
	f22 = f22*f7;
	f19 = f19+f20;
	f20 = heapFloat[(fp+-40)];
	f20 = f20*f5;
	f8 = f8+f12;
	r12 = r11 >> 2;
	f12 = f21+f22;
	f21 = heapFloat[(fp+-41)];
	f21 = f21*f5;
	f19 = f19+f20;
	heapFloat[(fp+-4)] = f8;
	f8 = f12+f21;
	heapFloat[(r12+1)] = f19;
	heapFloat[(r12+2)] = f8;
	heap32[(r12+3)] = 0;
	r12 = sp + -32;
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = r11;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	f12 =                         1;
	if(f11 >f12) //_LBB566_27
{
__label__ = 24;
break _1;
}
else{
	r9 = r12 >> 2;
	f8 = heapFloat[(fp+-8)];
	f19 = heapFloat[(r9+1)];
	f20 = heapFloat[(r9+2)];
	f21 = heapFloat[(fp+-43)];
	f21 = f21*f13;
	f22 = heapFloat[(fp+-44)];
	f22 = f22*f14;
	f23 = heapFloat[(fp+-33)];
	f23 = f23*f8;
	f24 = heapFloat[(fp+-34)];
	f24 = f24*f19;
	f25 = heapFloat[(fp+-42)];
	f25 = f25*f13;
	f26 = heapFloat[(fp+-45)];
	f26 = f26*f14;
	f27 = heapFloat[(fp+-36)];
	f27 = f27*f8;
	f28 = heapFloat[(fp+-37)];
	f28 = f28*f19;
	f21 = f21+f22;
	f22 = heapFloat[(fp+-47)];
	f22 = f22*f15;
	f23 = f23+f24;
	f24 = heapFloat[(fp+-35)];
	f24 = f24*f20;
	f25 = f25+f26;
	f26 = f16*f15;
	f27 = f27+f28;
	f28 = heapFloat[(fp+-38)];
	f28 = f28*f20;
	f29 = heapFloat[(fp+-46)];
	f13 = f29*f13;
	f14 = f17*f14;
	f29 = heapFloat[(fp+-39)];
	f8 = f29*f8;
	f29 = heapFloat[(fp+-40)];
	f19 = f29*f19;
	f21 = f21+f22;
	f22 = f23+f24;
	f23 = f25+f26;
	f24 = f27+f28;
	f13 = f13+f14;
	f14 = f18*f15;
	f8 = f8+f19;
	f15 = heapFloat[(fp+-41)];
	f15 = f15*f20;
	f19 = f21+f0;
	f20 = f22+f2;
	f21 = f23+f4;
	f22 = f24+f6;
	f13 = f13+f14;
	f8 = f8+f15;
	f14 = f19-f20;
	f15 = f21-f22;
	f13 = f13+f3;
	f23 = f8+f9;
	f24 = f13-f23;
	f8 = f1*f14;
	f25 = f7*f15;
	f8 = f8+f25;
	f25 = f5*f24;
	f25 = f8+f25;
	f8 =                         0;
	if(f25 >f8) //_LBB566_4
{
	f0 = heapFloat[(fp+-50)];
	f0 = f1*f0;
	f2 = heapFloat[(fp+-51)];
	f2 = f7*f2;
	f0 = f0+f2;
	f2 = heapFloat[(fp+-52)];
	f2 = f5*f2;
	f0 = f0+f2;
	f2 =  -1.4210854715202004e-014;
	if(f0 >=f2) //_LBB566_27
{
__label__ = 24;
break _1;
}
else{
	f0 = f25/f0;
	f11 = f11-f0;
	f0 = heapFloat[(r5+12)];
	f2 = heapFloat[(r5+13)];
	f3 = heapFloat[(r5+14)];
	f4 = heapFloat[(r6+12)];
	f6 = heapFloat[(r6+13)];
	f9 = heapFloat[(r6+14)];
	f10 = heapFloat[(r1+12)];
	f12 = f12-f11;
	f25 = heapFloat[(r1+13)];
	f26 = heapFloat[(r1+14)];
	f27 = heapFloat[(r3+12)];
	f28 = heapFloat[(r3+13)];
	f29 = heapFloat[(r3+14)];
	f10 = f10*f12;
	f0 = f0*f11;
	f25 = f25*f12;
	f2 = f2*f11;
	f26 = f26*f12;
	f3 = f3*f11;
	f27 = f27*f12;
	f30 = f4*f11;
	f28 = f28*f12;
	f6 = f6*f11;
	f12 = f29*f12;
	f9 = f9*f11;
	f0 = f10+f0;
	f4 = f25+f2;
	f3 = f26+f3;
	f2 = f27+f30;
	f6 = f28+f6;
	f9 = f12+f9;
	f10 = f1;
	heapFloat[(fp+-48)] = f7;
	heapFloat[(fp+-49)] = f5;
}
}
	r9 = heap32[(r0+1)];
	r10 = r9 >> 2;
	r11 = heap32[(r10)];
_10: do {
	if(r11 >0) //_LBB566_8
{
	r12 = -12;
	f1 = heapFloat[(r10+77)];
	r13 = (r12 - r9)|0;
	r14 = 0;
	r15 = r11;
	r12 = r14;
_12: while(true){
	r16 = -8;
	r17 = -4;
	r16 = (r16 - r13)|0;
	r17 = (r17 - r13)|0;
	r16 = r16 >> 2;
	r17 = r17 >> 2;
	r18 = (r14 - r13)|0;
	r18 = r18 >> 2;
	f5 = heapFloat[(r16)];
	f7 = heapFloat[(r17)];
	f5 = f14-f5;
	f7 = f15-f7;
	f12 = heapFloat[(r18)];
	f12 = f24-f12;
	f5 = f5*f5;
	f7 = f7*f7;
	f5 = f5+f7;
	f7 = f12*f12;
	f5 = f5+f7;
	r15 = (r15 + -1)|0;
	r12 = f5 > f1 ? r12 : r4;
	r13 = (r13 + -16)|0;
if(!(r15 !=0)) //_LBB566_9
{
break _10;
}
}
}
else{
	r12 = r2;
}
} while(0);
	f1 = heapFloat[(r10+76)];
	if(f1 ==f8) //_LBB566_12
{
	f1 = heapFloat[(r10+75)];
if(!(f24 !=f1)) //_LBB566_11
{
	f1 = heapFloat[(r10+74)];
if(!(f15 !=f1)) //_LBB566_11
{
	f1 = heapFloat[(r10+73)];
	r12 = f14 != f1 ? r12 : r4;
}
}
}
	r12 = r12 & 255;
	if(r12 ==0) //_LBB566_17
{
	heapFloat[(r10+73)] = f14;
	heapFloat[(r10+74)] = f15;
	r11 = r11 << 4;
	heapFloat[(r10+75)] = f24;
	r11 = (r9 + r11)|0;
	heap32[(r10+76)] = 0;
	r11 = r11 >> 2;
	heap8[r9+356] = r4;
	heapFloat[(r11+1)] = f14;
	heapFloat[(r11+2)] = f15;
	heapFloat[(r11+3)] = f24;
	heap32[(r11+4)] = 0;
	r11 = heap32[(r10)];
	r11 = r11 << 4;
	r11 = (r9 + r11)|0;
	r11 = r11 >> 2;
	heapFloat[(r11+21)] = f19;
	heapFloat[(r11+22)] = f21;
	heapFloat[(r11+23)] = f13;
	heap32[(r11+24)] = 0;
	r11 = heap32[(r10)];
	r11 = r11 << 4;
	r9 = (r9 + r11)|0;
	r9 = r9 >> 2;
	heapFloat[(r9+41)] = f20;
	heapFloat[(r9+42)] = f22;
	heapFloat[(r9+43)] = f23;
	heap32[(r9+44)] = 0;
	r9 = heap32[(r10)];
	r9 = (r9 + 1)|0;
	heap32[(r10)] = r9;
	r9 = heap32[(r0+1)];
}
	heap32[(g0)] = r9;
	_ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7);
	r10 = r_g0;
	r9 = r9 >> 2;
	f1 = heapFloat[(r9+69)];
	f7 = heapFloat[(r9+70)];
	f5 = heapFloat[(r9+71)];
	if(r10 ==0) //_LBB566_20
{
continue _1;
}
else{
	f8 = f1*f1;
	f12 = f7*f7;
	f8 = f8+f12;
	f12 = f5*f5;
	f8 = f8+f12;
continue _1;
}
}
}
else{
__label__ = 19;
break _1;
}
}
}
if (__label__ == 19){
	f0 = f10*f10;
	f7 = heapFloat[(fp+-48)];
	f1 = f7*f7;
	f0 = f0+f1;
	f1 = heapFloat[(fp+-49)];
	f1 = f1*f1;
	f0 = f0+f1;
	r1 = r7 >> 2;
	heapFloat[(r1+41)] = f11;
	f1 =   1.4210854715202004e-014;
	if(f0 <f1) //_LBB566_24
{
	heap32[(r1+33)] = 0;
	heap32[(r1+34)] = 0;
	f0 =                         0;
	heap32[(r1+35)] = 0;
	heap32[(r1+36)] = 0;
	f2 = f0;
	f1 = f0;
}
else{
	heapFloat[(g0)] = f0;
	f0 =                         1;
	sqrtf(i7);
	f0 = f0/f_g0;
	f1 = f10*f0;
	f7 = heapFloat[(fp+-48)];
	f2 = f7*f0;
	heapFloat[(r1+33)] = f1;
	f11 = heapFloat[(fp+-49)];
	f0 = f11*f0;
	heapFloat[(r1+34)] = f2;
	heapFloat[(r1+35)] = f0;
	heap32[(r1+36)] = 0;
}
	f3 = heapFloat[(fp+-50)];
	f1 = f1*f3;
	f3 = heapFloat[(fp+-51)];
	f2 = f2*f3;
	f3 = heapFloat[(r1+43)];
	f1 = f1+f2;
	f2 = heapFloat[(fp+-52)];
	f0 = f0*f2;
	f0 = f1+f0;
	f1 = -f3;
if(!(f0 >=f1)) //_LBB566_27
{
	r0 = heap32[(r0+1)];
	heap32[(g0)] = r0;
	r0 = r0 >> 2;
	_ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7);
	f0 = heapFloat[(r0+68)];
	f1 = heapFloat[(r0+67)];
	f2 = heapFloat[(r0+66)];
	heap32[(r1+37)] = heap32[(r0+65)];
	heapFloat[(r1+38)] = f2;
	heapFloat[(r1+39)] = f1;
	heapFloat[(r1+40)] = f0;
	r0 = 1;
	r_g0 = r0;
	return;
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN22btVoronoiSimplexSolver12removeVertexEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	if(r2 >0) //_LBB567_2
{
	r3 = heap32[(fp+1)];
	r2 = (r2 + -1)|0;
	r3 = r3 << 4;
	r4 = (r0 + 4)|0;
	r5 = r2 << 4;
	r6 = (r4 + r3)|0;
	r4 = (r4 + r5)|0;
	r5 = r6 >> 2;
	r4 = r4 >> 2;
	heap32[(r1)] = r2;
	heap32[(r5)] = heap32[(r4)];
	heap32[(r5+1)] = heap32[(r4+1)];
	heap32[(r5+2)] = heap32[(r4+2)];
	heap32[(r5+3)] = heap32[(r4+3)];
	r2 = heap32[(r1)];
	r4 = (r0 + 84)|0;
	r2 = r2 << 4;
	r5 = (r4 + r3)|0;
	r2 = (r4 + r2)|0;
	r4 = r5 >> 2;
	r2 = r2 >> 2;
	heap32[(r4)] = heap32[(r2)];
	heap32[(r4+1)] = heap32[(r2+1)];
	heap32[(r4+2)] = heap32[(r2+2)];
	heap32[(r4+3)] = heap32[(r2+3)];
	r1 = heap32[(r1)];
	r0 = (r0 + 164)|0;
	r1 = r1 << 4;
	r2 = (r0 + r3)|0;
	r0 = (r0 + r1)|0;
	r1 = r2 >> 2;
	r0 = r0 >> 2;
	heap32[(r1)] = heap32[(r0)];
	heap32[(r1+1)] = heap32[(r0+1)];
	heap32[(r1+2)] = heap32[(r0+2)];
	heap32[(r1+3)] = heap32[(r0+3)];
	return;
}
else{
	r0 = _2E_str457;
	r1 = _2E_str1458;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 38;
	_assert(i7);
}
}

function _ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+4)];
	r1 = heapU8[r0+16];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = heap32[(fp+1)];
	r1 = r1 & -16;
	r5 = heap32[(fp)];
	r2 = r2 >> 2;
	heap8[r0+16] = r1;
	r3 = r3 >> 2;
	r5 = r5 >> 2;
	r4 = r4 >> 2;
	f0 = heapFloat[(r2+1)];
	f1 = heapFloat[(r4+1)];
	f2 = heapFloat[(r3+1)];
	f3 = heapFloat[(r5+1)];
	f4 = heapFloat[(r2)];
	f5 = heapFloat[(r4)];
	f6 = heapFloat[(r3)];
	f7 = heapFloat[(r5)];
	f8 = heapFloat[(r2+2)];
	f9 = heapFloat[(r4+2)];
	f10 = heapFloat[(r3+2)];
	f11 = heapFloat[(r5+2)];
	f12 = f0-f1;
	f13 = f4-f5;
	f14 = f6-f5;
	f15 = f7-f5;
	f16 = f2-f1;
	f17 = f3-f1;
	f18 = f8-f9;
	f19 = f10-f9;
	f20 = f11-f9;
	f21 = f13*f15;
	f22 = f12*f17;
	f15 = f14*f15;
	f17 = f16*f17;
	f21 = f21+f22;
	f22 = f18*f20;
	f15 = f15+f17;
	f17 = f19*f20;
	f20 = f21+f22;
	f15 = f15+f17;
	f17 =                         0;
if(!(f20 >f17)) //_LBB568_3
{
if(!(f15 >f17)) //_LBB568_3
{
	r2 = r0 >> 2;
	heapFloat[(r2)] = f5;
	heap32[(r2+1)] = heap32[(r4+1)];
	heap32[(r2+2)] = heap32[(r4+2)];
	r1 = r1 | 1;
	heap32[(r2+3)] = heap32[(r4+3)];
	heap8[r0+16] = r1;
	heap32[(r2+5)] = 1065353216;
	heap32[(r2+6)] = 0;
	heap32[(r2+7)] = 0;
	heap32[(r2+8)] = 0;
	return;
}
}
	f21 = f7-f4;
	f22 = f3-f0;
	f23 = f13*f21;
	f24 = f12*f22;
	f25 = f11-f8;
	f21 = f14*f21;
	f22 = f16*f22;
	f23 = f23+f24;
	f24 = f18*f25;
	f21 = f21+f22;
	f22 = f19*f25;
	f23 = f23+f24;
	f21 = f21+f22;
	if(f23 <f17) //_LBB568_7
{
__label__ = 7;
}
else{
	if(f21 >f23) //_LBB568_7
{
__label__ = 7;
}
else{
	r3 = r0 >> 2;
	heapFloat[(r3)] = f4;
	heap32[(r3+1)] = heap32[(r2+1)];
	heap32[(r3+2)] = heap32[(r2+2)];
	r1 = r1 | 2;
	heap32[(r3+3)] = heap32[(r2+3)];
	heap8[r0+16] = r1;
	heap32[(r3+5)] = 0;
	heap32[(r3+6)] = 1065353216;
__label__ = 6;
}
}
_8: do {
if (__label__ == 7){
	f22 = f20*f21;
	f24 = f23*f15;
	f22 = f22-f24;
if(!(f22 >f17)) //_LBB568_11
{
if(!(f20 <f17)) //_LBB568_11
{
if(!(f23 >f17)) //_LBB568_11
{
	f0 = f20-f23;
	f0 = f20/f0;
	f2 = f13*f0;
	r3 = r0 >> 2;
	f2 = f5+f2;
	f3 = f12*f0;
	f4 = f18*f0;
	f1 = f1+f3;
	heapFloat[(r3)] = f2;
	f2 = f9+f4;
	heapFloat[(r3+1)] = f1;
	heapFloat[(r3+2)] = f2;
	f1 =                         1;
	r1 = r1 | 3;
	heap32[(r3+3)] = 0;
	f1 = f1-f0;
	heap8[r0+16] = r1;
	heapFloat[(r3+5)] = f1;
	heapFloat[(r3+6)] = f0;
break _8;
}
}
}
	f7 = f7-f6;
	f3 = f3-f2;
	f24 = f14*f7;
	f25 = f16*f3;
	f11 = f11-f10;
	f7 = f13*f7;
	f3 = f12*f3;
	f24 = f24+f25;
	f25 = f19*f11;
	f3 = f7+f3;
	f7 = f18*f11;
	f11 = f24+f25;
	f3 = f3+f7;
if(!(f11 <f17)) //_LBB568_14
{
if(!(f3 >f11)) //_LBB568_14
{
	r2 = r0 >> 2;
	heapFloat[(r2)] = f6;
	heap32[(r2+1)] = heap32[(r3+1)];
	heap32[(r2+2)] = heap32[(r3+2)];
	r1 = r1 | 4;
	heap32[(r2+3)] = heap32[(r3+3)];
	heap8[r0+16] = r1;
	heap32[(r2+5)] = 0;
	heap32[(r2+6)] = 0;
	heap32[(r2+7)] = 1065353216;
	heap32[(r2+8)] = 0;
	return;
}
}
	f7 = f3*f15;
	f20 = f20*f11;
	f7 = f7-f20;
	if(f7 >f17) //_LBB568_19
{
__label__ = 19;
}
else{
	if(f15 <f17) //_LBB568_19
{
__label__ = 19;
}
else{
	if(f11 >f17) //_LBB568_19
{
__label__ = 19;
}
else{
	f0 = f15-f11;
	f0 = f15/f0;
	f2 = f14*f0;
	r2 = r0 >> 2;
	f2 = f5+f2;
	f3 = f16*f0;
	f4 = f19*f0;
	f1 = f1+f3;
	heapFloat[(r2)] = f2;
	f2 = f9+f4;
	heapFloat[(r2+1)] = f1;
	heapFloat[(r2+2)] = f2;
	f1 =                         1;
	r1 = r1 | 5;
	heap32[(r2+3)] = 0;
	f1 = f1-f0;
	heap8[r0+16] = r1;
	heapFloat[(r2+5)] = f1;
	heap32[(r2+6)] = 0;
__label__ = 18;
}
}
}
if (__label__ == 19){
	f15 = f23*f11;
	f20 = f3*f21;
	f15 = f15-f20;
if(!(f15 >f17)) //_LBB568_23
{
	f20 = f21-f23;
if(!(f20 <f17)) //_LBB568_23
{
	f3 = f3-f11;
if(!(f3 <f17)) //_LBB568_23
{
	f1 = f20+f3;
	f1 = f20/f1;
	f5 = f6-f4;
	f7 = f2-f0;
	f5 = f5*f1;
	f9 = f10-f8;
	f7 = f7*f1;
	r2 = r0 >> 2;
	f5 = f4+f5;
	f9 = f9*f1;
	f7 = f0+f7;
	heapFloat[(r2)] = f5;
	f5 = f8+f9;
	heapFloat[(r2+1)] = f7;
	heapFloat[(r2+2)] = f5;
	r1 = r1 | 6;
	heap32[(r2+3)] = 0;
	f5 =                         1;
	heap8[r0+16] = r1;
	f5 = f5-f1;
	heap32[(r2+5)] = 0;
	heapFloat[(r2+6)] = f5;
	heapFloat[(r2+7)] = f1;
	heap32[(r2+8)] = 0;
	return;
}
}
}
	f0 = f15+f7;
	f0 = f0+f22;
	f2 =                         1;
	f0 = f2/f0;
	f3 = f7*f0;
	f0 = f22*f0;
	f4 = f13*f3;
	f6 = f12*f3;
	f4 = f5+f4;
	f5 = f14*f0;
	r2 = r0 >> 2;
	f4 = f4+f5;
	f5 = f18*f3;
	f1 = f1+f6;
	f6 = f16*f0;
	f5 = f9+f5;
	f7 = f19*f0;
	f1 = f1+f6;
	heapFloat[(r2)] = f4;
	f4 = f5+f7;
	heapFloat[(r2+1)] = f1;
	heapFloat[(r2+2)] = f4;
	f1 = f2-f3;
	r1 = r1 | 7;
	heap32[(r2+3)] = 0;
	f1 = f1-f0;
	heap8[r0+16] = r1;
	heapFloat[(r2+5)] = f1;
	heapFloat[(r2+6)] = f3;
}
	heapFloat[(r2+7)] = f0;
	heap32[(r2+8)] = 0;
	return;
}
} while(0);
	heap32[(r3+7)] = 0;
	heap32[(r3+8)] = 0;
	return;
}

function _ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	f0 = heapFloat[(fp+5)];
	f1 = heapFloat[(fp+8)];
	f2 = heapFloat[(fp+11)];
	f3 = heapFloat[(fp+4)];
	f4 = heapFloat[(fp+10)];
	f5 = heapFloat[(fp+7)];
	f6 = heapFloat[(fp+3)];
	f7 = heapFloat[(fp+6)];
	f8 = heapFloat[(fp+9)];
	f1 = f1-f0;
	f4 = f4-f3;
	f7 = f7-f6;
	f2 = f2-f0;
	f5 = f5-f3;
	f8 = f8-f6;
	f9 = heapFloat[(fp+12)];
	f10 = heapFloat[(fp+13)];
	f11 = f5*f2;
	f12 = f1*f4;
	f1 = f1*f8;
	f2 = f7*f2;
	f11 = f11-f12;
	f9 = f9-f6;
	f1 = f1-f2;
	f2 = f10-f3;
	f10 = heapFloat[(fp+14)];
	f4 = f7*f4;
	f5 = f5*f8;
	f4 = f4-f5;
	f5 = f10-f0;
	f7 = f9*f11;
	f2 = f2*f1;
	f2 = f7+f2;
	f5 = f5*f4;
	f2 = f2+f5;
	f5 = f2*f2;
	f7 =   9.9999990510468706e-009;
	if(f5 <f7) //_LBB569_2
{
	r0 = -1;
	r_g0 = r0;
	return;
}
else{
	f5 = heapFloat[(fp)];
	f7 = heapFloat[(fp+1)];
	f8 = heapFloat[(fp+2)];
	f5 = f5-f6;
	f3 = f7-f3;
	f5 = f5*f11;
	f1 = f3*f1;
	f0 = f8-f0;
	f1 = f5+f1;
	f0 = f0*f4;
	f0 = f1+f0;
	f0 = f0*f2;
	f1 =                         0;
	r0 = f0 < f1;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}
}

function _ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r3 = heap32[(fp+1)];
	if(r2 >3) //_LBB570_2
{
	r2 = heapU8[r3];
	r4 = r2 & 8;
	if(r4 ==0) //_LBB570_4
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 3;
	_ZN22btVoronoiSimplexSolver12removeVertexEi(i7);
	r2 = heap32[(r1)];
__label__ = 3;
}
else{
__label__ = 5;
}
}
else{
__label__ = 3;
}
if (__label__ == 3){
	if(r2 >2) //_LBB570_7
{
	r2 = heapU8[r3];
__label__ = 5;
}
else{
__label__ = 7;
}
}
if (__label__ == 5){
	r4 = r2 & 4;
	if(r4 ==0) //_LBB570_10
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 2;
	_ZN22btVoronoiSimplexSolver12removeVertexEi(i7);
	r2 = heap32[(r1)];
__label__ = 7;
}
else{
__label__ = 9;
}
}
if (__label__ == 7){
	if(r2 >1) //_LBB570_13
{
	r2 = heapU8[r3];
__label__ = 9;
}
else{
__label__ = 11;
}
}
if (__label__ == 9){
	r4 = r2 & 2;
	if(r4 ==0) //_LBB570_16
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 1;
	_ZN22btVoronoiSimplexSolver12removeVertexEi(i7);
	r2 = heap32[(r1)];
__label__ = 11;
}
else{
__label__ = 13;
}
}
if (__label__ == 11){
	if(r2 <1) //_LBB570_20
{
__label__ = 14;
}
else{
	r2 = heapU8[r3];
__label__ = 13;
}
}
if (__label__ == 13){
	r1 = r2 & 1;
	if(r1 ==0) //_LBB570_21
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	_ZN22btVoronoiSimplexSolver12removeVertexEi(i7);
	return;
}
}
	return;
}

function _ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
var __label__ = 0;
	i7 = sp + -136;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+356];
	if(r1 !=0) //_LBB571_2
{
	r1 = 0;
	r2 = r0 >> 2;
	heap8[r0+352] = r1;
	heap32[(r2+84)] = 0;
	heap32[(r2+85)] = 0;
	heap32[(r2+86)] = 0;
	heap32[(r2+87)] = 0;
	r3 = heapU8[r0+332];
	r4 = r3 & -16;
	heap8[r0+332] = r4;
	heap8[r0+356] = r1;
	r5 = heap32[(r2)];
_3: do {
	if(r5 >1) //_LBB571_5
{
_5: do {
	if(r5 ==2) //_LBB571_11
{
	f0 =                         0;
	f1 = heapFloat[(r2+2)];
	f2 = heapFloat[(r2+6)];
	f3 = heapFloat[(r2+1)];
	f4 = heapFloat[(r2+5)];
	f5 = heapFloat[(r2+3)];
	f6 = heapFloat[(r2+7)];
	f2 = f2-f1;
	f1 = f0-f1;
	f4 = f4-f3;
	f3 = f0-f3;
	f6 = f6-f5;
	f5 = f0-f5;
	f3 = f4*f3;
	f1 = f2*f1;
	f1 = f3+f1;
	f3 = f6*f5;
	f1 = f1+f3;
	if(f1 <=f0) //_LBB571_15
{
	r1 = r4 | 1;
	heap8[r0+332] = r1;
	f1 = f0;
}
else{
	f3 = f4*f4;
	f2 = f2*f2;
	f2 = f3+f2;
	f3 = f6*f6;
	f2 = f2+f3;
	if(f1 >=f2) //_LBB571_14
{
	f1 =                         1;
	r1 = r4 | 2;
	heap8[r0+332] = r1;
}
else{
	f1 = f1/f2;
	r1 = r4 | 3;
	heap8[r0+332] = r1;
}
}
	f2 =                         1;
	f2 = f2-f1;
	heapFloat[(r2+84)] = f2;
	heapFloat[(r2+85)] = f1;
	heap32[(r2+86)] = 0;
	heap32[(r2+87)] = 0;
	f2 = heapFloat[(r2+25)];
	f3 = heapFloat[(r2+21)];
	f2 = f2-f3;
	f4 = heapFloat[(r2+26)];
	f5 = heapFloat[(r2+22)];
	f4 = f4-f5;
	f2 = f2*f1;
	f6 = heapFloat[(r2+27)];
	f7 = heapFloat[(r2+23)];
	f6 = f6-f7;
	f4 = f4*f1;
	f2 = f3+f2;
	f3 = f6*f1;
	f4 = f5+f4;
	heapFloat[(r2+61)] = f2;
	f3 = f7+f3;
	heapFloat[(r2+62)] = f4;
	heapFloat[(r2+63)] = f3;
	heap32[(r2+64)] = 0;
	f5 = heapFloat[(r2+45)];
	f6 = heapFloat[(r2+41)];
	f5 = f5-f6;
	f7 = heapFloat[(r2+46)];
	f8 = heapFloat[(r2+42)];
	f7 = f7-f8;
	f5 = f5*f1;
	f9 = heapFloat[(r2+47)];
	f10 = heapFloat[(r2+43)];
	f9 = f9-f10;
	f7 = f7*f1;
	f5 = f6+f5;
	f1 = f9*f1;
	f6 = f8+f7;
	heapFloat[(r2+65)] = f5;
	f1 = f10+f1;
	heapFloat[(r2+66)] = f6;
	heapFloat[(r2+67)] = f1;
	f2 = f2-f5;
	heap32[(r2+68)] = 0;
	f4 = f4-f6;
	heapFloat[(r2+69)] = f2;
	f1 = f3-f1;
	heapFloat[(r2+70)] = f4;
	heapFloat[(r2+71)] = f1;
	heap32[(r2+72)] = 0;
	r1 = (r0 + 332)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	_ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7);
	f1 = heapFloat[(r2+84)];
	if(f1 >=f0) //_LBB571_18
{
	f0 = heapFloat[(r2+85)];
	f1 =                         0;
if(!(f0 <f1)) //_LBB571_17
{
	f0 = heapFloat[(r2+86)];
if(!(f0 <f1)) //_LBB571_17
{
	f0 = heapFloat[(r2+87)];
	r1 = f0 >= f1;
	r1 = r1 & 1;
break _5;
}
}
}
	r1 = 0;
}
else{
	if(r5 ==3) //_LBB571_22
{
	r1 = sp + -56;
	r3 = r1 >> 2;
	heap32[(fp+-14)] = 0;
	heap32[(r3+1)] = 0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
	r3 = (r0 + 4)|0;
	r4 = (r0 + 20)|0;
	r5 = (r0 + 36)|0;
	r6 = (r0 + 316)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r6;
	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
	f0 = heapFloat[(r2+85)];
	f1 = heapFloat[(r2+25)];
	f2 = heapFloat[(r2+84)];
	f3 = heapFloat[(r2+21)];
	f4 = heapFloat[(r2+26)];
	f5 = heapFloat[(r2+22)];
	f3 = f3*f2;
	f1 = f1*f0;
	f6 = heapFloat[(r2+86)];
	f7 = heapFloat[(r2+29)];
	f8 = heapFloat[(r2+31)];
	f9 = heapFloat[(r2+30)];
	f10 = heapFloat[(r2+27)];
	f11 = heapFloat[(r2+23)];
	f5 = f5*f2;
	f4 = f4*f0;
	f1 = f3+f1;
	f3 = f7*f6;
	f7 = f11*f2;
	f10 = f10*f0;
	f4 = f5+f4;
	f5 = f9*f6;
	f1 = f1+f3;
	f3 = f7+f10;
	f7 = f8*f6;
	f4 = f4+f5;
	heapFloat[(r2+61)] = f1;
	f3 = f3+f7;
	heapFloat[(r2+62)] = f4;
	heapFloat[(r2+63)] = f3;
	heap32[(r2+64)] = 0;
	f5 = heapFloat[(r2+45)];
	f7 = heapFloat[(r2+41)];
	f8 = heapFloat[(r2+49)];
	f9 = heapFloat[(r2+46)];
	f10 = heapFloat[(r2+42)];
	f7 = f7*f2;
	f5 = f5*f0;
	f11 = heapFloat[(r2+51)];
	f12 = heapFloat[(r2+50)];
	f13 = heapFloat[(r2+47)];
	f14 = heapFloat[(r2+43)];
	f10 = f10*f2;
	f9 = f9*f0;
	f5 = f7+f5;
	f7 = f8*f6;
	f5 = f5+f7;
	f2 = f14*f2;
	f0 = f13*f0;
	f7 = f10+f9;
	f8 = f12*f6;
	f7 = f7+f8;
	heapFloat[(r2+65)] = f5;
	f0 = f2+f0;
	f2 = f11*f6;
	f0 = f0+f2;
	heapFloat[(r2+66)] = f7;
	heapFloat[(r2+67)] = f0;
	f1 = f1-f5;
	heap32[(r2+68)] = 0;
	f2 = f4-f7;
	heapFloat[(r2+69)] = f1;
	f0 = f3-f0;
	heapFloat[(r2+70)] = f2;
	heapFloat[(r2+71)] = f0;
	heap32[(r2+72)] = 0;
	r1 = (r0 + 332)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	_ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7);
	f0 = heapFloat[(r2+84)];
	f1 =                         0;
	if(f0 >=f1) //_LBB571_24
{
	f0 = heapFloat[(r2+85)];
if(!(f0 <f1)) //_LBB571_23
{
	f0 = heapFloat[(r2+86)];
if(!(f0 <f1)) //_LBB571_23
{
	f0 = heapFloat[(r2+87)];
	r1 = f0 >= f1;
	r1 = r1 & 1;
break _5;
}
}
}
	r1 = 0;
}
else{
	if(r5 ==4) //_LBB571_28
{
	r4 = sp + -72;
	r5 = r4 >> 2;
	heap32[(fp+-18)] = 0;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	heap8[sp+-24] = r1;
	heap32[(r2+79)] = 0;
	heap32[(r2+80)] = 0;
	heap32[(r2+81)] = 0;
	r3 = r3 | 15;
	heap32[(r2+82)] = 0;
	heap8[r0+332] = r3;
	f0 = heapFloat[(r2+11)];
	f1 = heapFloat[(r2+7)];
	f2 = heapFloat[(r2+15)];
	f3 = heapFloat[(r2+1)];
	f4 = heapFloat[(r2+2)];
	f5 = heapFloat[(r2+3)];
	f6 = heapFloat[(r2+5)];
	f7 = heapFloat[(r2+6)];
	f8 = heapFloat[(r2+9)];
	f9 = heapFloat[(r2+10)];
	f10 = heapFloat[(r2+13)];
	f11 = heapFloat[(r2+14)];
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	heapFloat[(g0+3)] = f3;
	heapFloat[(g0+4)] = f4;
	heapFloat[(g0+5)] = f5;
	heapFloat[(g0+6)] = f6;
	heapFloat[(g0+7)] = f7;
	heapFloat[(g0+8)] = f1;
	heapFloat[(g0+9)] = f8;
	heapFloat[(g0+10)] = f9;
	heapFloat[(g0+11)] = f0;
	heapFloat[(g0+12)] = f10;
	heapFloat[(g0+13)] = f11;
	heapFloat[(g0+14)] = f2;
	_ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7);
	r3 = r_g0;
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	heapFloat[(g0+3)] = f3;
	heapFloat[(g0+4)] = f4;
	heapFloat[(g0+5)] = f5;
	heapFloat[(g0+6)] = f8;
	heapFloat[(g0+7)] = f9;
	heapFloat[(g0+8)] = f0;
	heapFloat[(g0+9)] = f10;
	heapFloat[(g0+10)] = f11;
	heapFloat[(g0+11)] = f2;
	heapFloat[(g0+12)] = f6;
	heapFloat[(g0+13)] = f7;
	heapFloat[(g0+14)] = f1;
	_ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7);
	r6 = r_g0;
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	heapFloat[(g0+3)] = f3;
	heapFloat[(g0+4)] = f4;
	heapFloat[(g0+5)] = f5;
	heapFloat[(g0+6)] = f10;
	heapFloat[(g0+7)] = f11;
	heapFloat[(g0+8)] = f2;
	heapFloat[(g0+9)] = f6;
	heapFloat[(g0+10)] = f7;
	heapFloat[(g0+11)] = f1;
	heapFloat[(g0+12)] = f8;
	heapFloat[(g0+13)] = f9;
	heapFloat[(g0+14)] = f0;
	_ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7);
	r7 = r_g0;
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	heapFloat[(g0+3)] = f6;
	heapFloat[(g0+4)] = f7;
	heapFloat[(g0+5)] = f1;
	heapFloat[(g0+6)] = f10;
	heapFloat[(g0+7)] = f11;
	heapFloat[(g0+8)] = f2;
	heapFloat[(g0+9)] = f8;
	heapFloat[(g0+10)] = f9;
	heapFloat[(g0+11)] = f0;
	heapFloat[(g0+12)] = f3;
	heapFloat[(g0+13)] = f4;
	heapFloat[(g0+14)] = f5;
	r8 = r6 | r3;
	_ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7);
	r9 = r_g0;
if(!(r8 <0)) //_LBB571_52
{
	r10 = r9 | r7;
if(!(r10 <0)) //_LBB571_52
{
	r8 = r8 | r7;
	r8 = r8 | r9;
	if(r8 ==0) //_LBB571_53
{
	r1 = 1;
	heap8[r0+312] = r1;
	heap32[(r2+69)] = 0;
	heap32[(r2+70)] = 0;
	heap32[(r2+71)] = 0;
	heap32[(r2+72)] = 0;
	r_g0 = r1;
	return;
}
else{
	r8 = (r0 + 4)|0;
	r10 = (r0 + 20)|0;
	r11 = (r0 + 36)|0;
	r12 = (r0 + 52)|0;
	if(r3 !=0) //_LBB571_33
{
	r3 = sp + -40;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r11;
	heap32[(g0+4)] = r3;
	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
	r3 = r3 >> 2;
	f1 = heapFloat[(fp+-10)];
	f0 = heapFloat[(fp+-18)];
	f2 = heapFloat[(r3+1)];
	f3 = heapFloat[(r5+1)];
	f0 = f1-f0;
	f3 = f2-f3;
	f4 = heapFloat[(r3+2)];
	f5 = heapFloat[(r5+2)];
	f5 = f4-f5;
	f0 = f0*f0;
	f3 = f3*f3;
	f0 = f0+f3;
	f3 = f5*f5;
	f0 = f0+f3;
	f3 =   3.4028234663852886e+038;
	if(f0 >=f3) //_LBB571_32
{
__label__ = 31;
}
else{
	f3 = heapFloat[(r3+3)];
	heapFloat[(r2+79)] = f1;
	heapFloat[(r2+80)] = f2;
	heapFloat[(r2+81)] = f4;
	heapFloat[(r2+82)] = f3;
	r13 = heapU8[sp+-24];
	r14 = heapU8[r0+332];
	r15 = r13 & 1;
	r14 = r14 & 240;
	r14 = r15 | r14;
	r15 = r13 & 2;
	r14 = r14 | r15;
	r13 = r13 & 4;
	r13 = r14 | r13;
	heap8[r0+332] = r13;
	f1 = heapFloat[(r3+7)];
	f2 = heapFloat[(r3+6)];
	heap32[(r2+84)] = heap32[(r3+5)];
	heapFloat[(r2+85)] = f2;
	heapFloat[(r2+86)] = f1;
	heap32[(r2+87)] = 0;
__label__ = 34;
}
}
else{
__label__ = 31;
}
if (__label__ == 31){
	f0 =   3.4028234663852886e+038;
}
	if(r6 !=0) //_LBB571_37
{
	r3 = sp + -40;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r11;
	heap32[(g0+3)] = r12;
	heap32[(g0+4)] = r3;
	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
	r3 = r3 >> 2;
	f1 = heapFloat[(fp+-10)];
	f2 = heapFloat[(fp+-18)];
	f3 = heapFloat[(r3+1)];
	f4 = heapFloat[(r5+1)];
	f2 = f1-f2;
	f4 = f3-f4;
	f5 = heapFloat[(r3+2)];
	f6 = heapFloat[(r5+2)];
	f6 = f5-f6;
	f2 = f2*f2;
	f4 = f4*f4;
	f2 = f2+f4;
	f4 = f6*f6;
	f2 = f2+f4;
if(!(f2 >=f0)) //_LBB571_36
{
	f0 = heapFloat[(r3+3)];
	heapFloat[(r2+79)] = f1;
	heapFloat[(r2+80)] = f3;
	heapFloat[(r2+81)] = f5;
	heapFloat[(r2+82)] = f0;
	r6 = heapU8[sp+-24];
	r13 = heapU8[r0+332];
	r14 = r6 << 1;
	r6 = r6 & 1;
	r13 = r13 & 240;
	r6 = r6 | r13;
	r13 = r14 & 4;
	r6 = r6 | r13;
	r13 = r14 & 8;
	r6 = r6 | r13;
	heap8[r0+332] = r6;
	f0 = heapFloat[(r3+7)];
	f1 = heapFloat[(r3+6)];
	heap32[(r2+84)] = heap32[(r3+5)];
	heap32[(r2+85)] = 0;
	heapFloat[(r2+86)] = f1;
	heapFloat[(r2+87)] = f0;
	f0 = f2;
}
}
	if(r7 !=0) //_LBB571_41
{
	r3 = sp + -40;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r3;
	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
	r3 = r3 >> 2;
	f1 = heapFloat[(fp+-10)];
	f2 = heapFloat[(fp+-18)];
	f3 = heapFloat[(r3+1)];
	f4 = heapFloat[(r5+1)];
	f2 = f1-f2;
	f4 = f3-f4;
	f5 = heapFloat[(r3+2)];
	f6 = heapFloat[(r5+2)];
	f6 = f5-f6;
	f2 = f2*f2;
	f4 = f4*f4;
	f2 = f2+f4;
	f4 = f6*f6;
	f2 = f2+f4;
if(!(f2 >=f0)) //_LBB571_40
{
	f0 = heapFloat[(r3+3)];
	heapFloat[(r2+79)] = f1;
	heapFloat[(r2+80)] = f3;
	heapFloat[(r2+81)] = f5;
	heapFloat[(r2+82)] = f0;
	r6 = heapU8[sp+-24];
	r7 = heapU8[r0+332];
	r8 = r6 >>> 1;
	r13 = r6 & 1;
	r7 = r7 & 240;
	r6 = r6 << 2;
	r7 = r13 | r7;
	r8 = r8 & 2;
	r7 = r7 | r8;
	r6 = r6 & 8;
	r6 = r7 | r6;
	heap8[r0+332] = r6;
	f0 = heapFloat[(r3+6)];
	f1 = heapFloat[(r3+7)];
	heap32[(r2+84)] = heap32[(r3+5)];
	heapFloat[(r2+85)] = f1;
	heap32[(r2+86)] = 0;
	heapFloat[(r2+87)] = f0;
	f0 = f2;
}
}
if(!(r9 ==0)) //_LBB571_46
{
	r3 = sp + -40;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r11;
	heap32[(g0+4)] = r3;
	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
	r3 = r3 >> 2;
	f1 = heapFloat[(fp+-10)];
	f2 = heapFloat[(fp+-18)];
	f3 = heapFloat[(r3+1)];
	f4 = heapFloat[(r5+1)];
	f2 = f1-f2;
	f4 = f3-f4;
	f5 = heapFloat[(r3+2)];
	f6 = heapFloat[(r5+2)];
	f6 = f5-f6;
	f2 = f2*f2;
	f4 = f4*f4;
	f2 = f2+f4;
	f4 = f6*f6;
	f2 = f2+f4;
if(!(f2 >=f0)) //_LBB571_46
{
	f0 = heapFloat[(r3+3)];
	heapFloat[(r2+79)] = f1;
	heapFloat[(r2+80)] = f3;
	heapFloat[(r2+81)] = f5;
	heapFloat[(r2+82)] = f0;
	r4 = heapU8[sp+-24];
	r5 = heapU8[r0+332];
	r6 = r4 << 1;
	r6 = r6 & 2;
	r5 = r5 & 240;
	r7 = r4 << 2;
	r5 = r6 | r5;
	r4 = r4 & 4;
	r4 = r5 | r4;
	r5 = r7 & 8;
	r4 = r4 | r5;
	heap8[r0+332] = r4;
	f0 = heapFloat[(r3+6)];
	f1 = heapFloat[(r3+7)];
	f2 = heapFloat[(r3+5)];
	heap32[(r2+84)] = 0;
	heapFloat[(r2+85)] = f2;
	heapFloat[(r2+86)] = f1;
	heapFloat[(r2+87)] = f0;
}
}
	f0 = heapFloat[(r2+85)];
	f1 = heapFloat[(r2+25)];
	f2 = heapFloat[(r2+84)];
	f3 = heapFloat[(r2+21)];
	f4 = heapFloat[(r2+26)];
	f5 = heapFloat[(r2+22)];
	f3 = f3*f2;
	f1 = f1*f0;
	f6 = heapFloat[(r2+86)];
	f7 = heapFloat[(r2+29)];
	f8 = heapFloat[(r2+30)];
	f9 = heapFloat[(r2+27)];
	f10 = heapFloat[(r2+23)];
	f5 = f5*f2;
	f4 = f4*f0;
	f1 = f3+f1;
	f3 = f7*f6;
	f7 = heapFloat[(r2+87)];
	f11 = heapFloat[(r2+33)];
	f12 = heapFloat[(r2+35)];
	f13 = heapFloat[(r2+34)];
	f14 = heapFloat[(r2+31)];
	f10 = f10*f2;
	f9 = f9*f0;
	f4 = f5+f4;
	f5 = f8*f6;
	f1 = f1+f3;
	f3 = f11*f7;
	f8 = f10+f9;
	f9 = f14*f6;
	f4 = f4+f5;
	f5 = f13*f7;
	f1 = f1+f3;
	f3 = f8+f9;
	f8 = f12*f7;
	f4 = f4+f5;
	heapFloat[(r2+61)] = f1;
	f3 = f3+f8;
	heapFloat[(r2+62)] = f4;
	heapFloat[(r2+63)] = f3;
	heap32[(r2+64)] = 0;
	f5 = heapFloat[(r2+45)];
	f8 = heapFloat[(r2+41)];
	f9 = heapFloat[(r2+49)];
	f10 = heapFloat[(r2+46)];
	f11 = heapFloat[(r2+42)];
	f8 = f8*f2;
	f5 = f5*f0;
	f12 = heapFloat[(r2+53)];
	f13 = heapFloat[(r2+50)];
	f14 = heapFloat[(r2+47)];
	f15 = heapFloat[(r2+43)];
	f11 = f11*f2;
	f10 = f10*f0;
	f5 = f8+f5;
	f8 = f9*f6;
	f9 = heapFloat[(r2+55)];
	f16 = heapFloat[(r2+54)];
	f17 = heapFloat[(r2+51)];
	f2 = f15*f2;
	f0 = f14*f0;
	f10 = f11+f10;
	f11 = f13*f6;
	f5 = f5+f8;
	f8 = f12*f7;
	f5 = f5+f8;
	f0 = f2+f0;
	f2 = f17*f6;
	f6 = f10+f11;
	f8 = f16*f7;
	f6 = f6+f8;
	heapFloat[(r2+65)] = f5;
	f0 = f0+f2;
	f2 = f9*f7;
	f0 = f0+f2;
	heapFloat[(r2+66)] = f6;
	heapFloat[(r2+67)] = f0;
	f1 = f1-f5;
	heap32[(r2+68)] = 0;
	f2 = f4-f6;
	heapFloat[(r2+69)] = f1;
	f0 = f3-f0;
	heapFloat[(r2+70)] = f2;
	heapFloat[(r2+71)] = f0;
	heap32[(r2+72)] = 0;
	r3 = (r0 + 332)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	_ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7);
	f0 = heapFloat[(r2+84)];
	f1 =                         0;
	if(f0 >=f1) //_LBB571_48
{
	f0 = heapFloat[(r2+85)];
	if(f0 <f1) //_LBB571_47
{
break _5;
}
else{
	f0 = heapFloat[(r2+86)];
	if(f0 <f1) //_LBB571_47
{
break _5;
}
else{
	f0 = heapFloat[(r2+87)];
	r1 = f0 >= f1;
	r1 = r1 & 1;
break _5;
}
}
}
else{
break _5;
}
}
}
}
	r2 = 1;
	heap8[r0+352] = r2;
	r2 = 0;
	heap8[r0+312] = r2;
	r_g0 = r2;
	return;
}
else{
__label__ = 8;
break _3;
}
}
}
} while(0);
	heap8[r0+312] = r1;
	r0 = r1 & 255;
	r_g0 = r0;
	return;
}
else{
	if(r5 ==0) //_LBB571_8
{
__label__ = 8;
}
else{
	if(r5 ==1) //_LBB571_10
{
	f0 = heapFloat[(r2+21)];
	heapFloat[(r2+61)] = f0;
	f1 = heapFloat[(r2+22)];
	heapFloat[(r2+62)] = f1;
	f2 = heapFloat[(r2+23)];
	heapFloat[(r2+63)] = f2;
	heap32[(r2+64)] = heap32[(r2+24)];
	f3 = heapFloat[(r2+41)];
	heapFloat[(r2+65)] = f3;
	f4 = heapFloat[(r2+42)];
	heapFloat[(r2+66)] = f4;
	f5 = heapFloat[(r2+43)];
	heapFloat[(r2+67)] = f5;
	f0 = f0-f3;
	heap32[(r2+68)] = heap32[(r2+44)];
	f1 = f1-f4;
	heapFloat[(r2+69)] = f0;
	f0 = f2-f5;
	heapFloat[(r2+70)] = f1;
	heapFloat[(r2+71)] = f0;
	r1 = 0;
	heap32[(r2+72)] = 0;
	heap8[r0+352] = r1;
	heap8[r0+332] = r4;
	heap32[(r2+84)] = 1065353216;
	heap32[(r2+85)] = 0;
	heap32[(r2+86)] = 0;
	heap32[(r2+87)] = 0;
	r1 = 1;
__label__ = 9;
}
else{
__label__ = 8;
}
}
}
} while(0);
if (__label__ == 8){
	r1 = 0;
}
	heap8[r0+312] = r1;
	r_g0 = r1;
	return;
}
else{
	r0 = heapU8[r0+312];
	r_g0 = r0;
	return;
}
}

function _ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(fp)];
	f0 = heapFloat[(r0+10)];
	r1 = r1 >> 2;
	f1 = heapFloat[(r1+1)];
	if(f0 <=f1) //_LBB574_2
{
	r2 = heap32[(fp+2)];
	heapFloat[(r1+1)] = f0;
	r3 = heap32[(r0)];
	heap32[(r1+19)] = r3;
	if(r2 ==0) //_LBB574_4
{
	r2 = r3 >> 2;
	f0 = heapFloat[(r0+2)];
	f1 = heapFloat[(r2+1)];
	f2 = heapFloat[(r0+3)];
	f3 = heapFloat[(r2+2)];
	f4 = heapFloat[(r2+5)];
	f5 = heapFloat[(r2+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r0+4)];
	f7 = heapFloat[(r2+3)];
	f8 = heapFloat[(r2+9)];
	f9 = heapFloat[(r2+10)];
	f10 = heapFloat[(r2+11)];
	f11 = heapFloat[(r2+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f11*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f10*f6;
	f3 = f4+f5;
	heapFloat[(r1+11)] = f1;
	f0 = f0+f2;
	heapFloat[(r1+12)] = f3;
	heapFloat[(r1+13)] = f0;
	heap32[(r1+14)] = 0;
}
else{
	heap32[(r1+11)] = heap32[(r0+2)];
	heap32[(r1+12)] = heap32[(r0+3)];
	heap32[(r1+13)] = heap32[(r0+4)];
	heap32[(r1+14)] = heap32[(r0+5)];
}
	heap32[(r1+15)] = heap32[(r0+6)];
	heap32[(r1+16)] = heap32[(r0+7)];
	heap32[(r1+17)] = heap32[(r0+8)];
	heap32[(r1+18)] = heap32[(r0+9)];
	f0 = heapFloat[(r0+10)];
	f_g0 = f0;
	return;
}
else{
	r0 = _2E_str36;
	r1 = _2E_str4;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 384;
	_assert(i7);
}
}

function _ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 204;
	r_g0 = r0;
	return;
}

function _ZNK21btConeTwistConstraint9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	_ZNK17btTypedConstraint9serializeEPvP12btSerializer(i7);
	heap32[(r1+11)] = heap32[(r0+72)];
	heap32[(r1+12)] = heap32[(r0+73)];
	heap32[(r1+13)] = heap32[(r0+74)];
	heap32[(r1+14)] = heap32[(r0+75)];
	heap32[(r1+15)] = heap32[(r0+76)];
	heap32[(r1+16)] = heap32[(r0+77)];
	heap32[(r1+17)] = heap32[(r0+78)];
	heap32[(r1+18)] = heap32[(r0+79)];
	heap32[(r1+19)] = heap32[(r0+80)];
	heap32[(r1+20)] = heap32[(r0+81)];
	heap32[(r1+21)] = heap32[(r0+82)];
	heap32[(r1+22)] = heap32[(r0+83)];
	heap32[(r1+23)] = heap32[(r0+84)];
	heap32[(r1+24)] = heap32[(r0+85)];
	heap32[(r1+25)] = heap32[(r0+86)];
	heap32[(r1+26)] = heap32[(r0+87)];
	heap32[(r1+27)] = heap32[(r0+88)];
	heap32[(r1+28)] = heap32[(r0+89)];
	heap32[(r1+29)] = heap32[(r0+90)];
	heap32[(r1+30)] = heap32[(r0+91)];
	heap32[(r1+31)] = heap32[(r0+92)];
	heap32[(r1+32)] = heap32[(r0+93)];
	heap32[(r1+33)] = heap32[(r0+94)];
	heap32[(r1+34)] = heap32[(r0+95)];
	heap32[(r1+35)] = heap32[(r0+96)];
	heap32[(r1+36)] = heap32[(r0+97)];
	heap32[(r1+37)] = heap32[(r0+98)];
	heap32[(r1+38)] = heap32[(r0+99)];
	heap32[(r1+39)] = heap32[(r0+100)];
	heap32[(r1+40)] = heap32[(r0+101)];
	heap32[(r1+41)] = heap32[(r0+102)];
	heap32[(r1+42)] = heap32[(r0+103)];
	heap32[(r1+43)] = heap32[(r0+108)];
	heap32[(r1+44)] = heap32[(r0+109)];
	heap32[(r1+45)] = heap32[(r0+110)];
	heap32[(r1+46)] = heap32[(r0+104)];
	heap32[(r1+47)] = heap32[(r0+105)];
	heap32[(r1+48)] = heap32[(r0+106)];
	heap32[(r1+49)] = heap32[(r0+107)];
	r0 = _2E_str239;
	r_g0 = r0;
	return;
}

function _ZN21btConeTwistConstraintD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV21btConeTwistConstraint;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN21btConeTwistConstraintD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV21btConeTwistConstraint;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN21btConeTwistConstraint13buildJacobianEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
var __label__ = 0;
	i7 = sp + -216;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+515];
if(!(r1 ==0)) //_LBB579_14
{
	r1 = r0 >> 2;
	heap32[(r1+7)] = 0;
	heap32[(r1+127)] = 0;
	heap32[(r1+126)] = 0;
	heap32[(r1+141)] = 0;
	heap32[(r1+142)] = 0;
	heap32[(r1+143)] = 0;
	heap32[(r1+144)] = 0;
	r2 = heapU8[r0+512];
if(!(r2 !=0)) //_LBB579_13
{
	r2 = heap32[(r1+6)];
	r3 = heap32[(r1+5)];
	r2 = r2 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r2+5)];
	f1 = heapFloat[(r1+100)];
	f2 = heapFloat[(r2+1)];
	f3 = heapFloat[(r2+6)];
	f4 = heapFloat[(r1+101)];
	f5 = heapFloat[(r2+2)];
	f6 = heapFloat[(r3+5)];
	f7 = heapFloat[(r1+84)];
	f8 = heapFloat[(r3+1)];
	f9 = heapFloat[(r3+6)];
	f10 = heapFloat[(r1+85)];
	f11 = heapFloat[(r3+2)];
	f12 = heapFloat[(r2+9)];
	f13 = heapFloat[(r2+10)];
	f14 = heapFloat[(r3+9)];
	f15 = heapFloat[(r3+10)];
	f0 = f0*f1;
	f3 = f3*f4;
	f16 = heapFloat[(r2+7)];
	f17 = heapFloat[(r1+102)];
	f18 = heapFloat[(r2+3)];
	f6 = f6*f7;
	f9 = f9*f10;
	f19 = heapFloat[(r3+7)];
	f20 = heapFloat[(r1+86)];
	f21 = heapFloat[(r3+3)];
	f2 = f2*f1;
	f5 = f5*f4;
	f8 = f8*f7;
	f11 = f11*f10;
	f22 = heapFloat[(r2+11)];
	f23 = heapFloat[(r3+11)];
	f1 = f12*f1;
	f4 = f13*f4;
	f7 = f14*f7;
	f10 = f15*f10;
	f0 = f0+f3;
	f3 = f16*f17;
	f6 = f6+f9;
	f9 = f19*f20;
	f2 = f2+f5;
	f5 = f18*f17;
	f8 = f8+f11;
	f11 = f21*f20;
	f1 = f1+f4;
	f4 = f22*f17;
	f7 = f7+f10;
	f10 = f23*f20;
	f0 = f0+f3;
	f3 = heapFloat[(r2+14)];
	f6 = f6+f9;
	f9 = heapFloat[(r3+14)];
	f2 = f2+f5;
	f5 = heapFloat[(r2+13)];
	f8 = f8+f11;
	f11 = heapFloat[(r3+13)];
	f0 = f0+f3;
	f3 = f6+f9;
	f2 = f2+f5;
	f5 = f8+f11;
	f1 = f1+f4;
	f4 = heapFloat[(r2+15)];
	f6 = f7+f10;
	f7 = heapFloat[(r3+15)];
	f8 = f0-f3;
	f9 = f2-f5;
	f1 = f1+f4;
	f4 = f6+f7;
	f6 = f1-f4;
	f7 = f9*f9;
	f10 = f8*f8;
	f7 = f7+f10;
	f10 = f6*f6;
	f7 = f7+f10;
	f10 =   1.1920928955078125e-007;
	if(f7 >f10) //_LBB579_4
{
	heapFloat[(g0)] = f7;
	f10 =                         1;
	sqrtf(i7);
	f11 = f10/f_g0;
	r2 = sp + -176;
	f7 = f9*f11;
	f8 = f8*f11;
	r3 = r2 >> 2;
	heapFloat[(fp+-44)] = f7;
	f6 = f6*f11;
	heapFloat[(r3+1)] = f8;
	r2 = (r2 + 8)|0;
	heapFloat[(r3+2)] = f6;
	heap32[(r3+3)] = 0;
	f9 =                         0;
	if(f6 <f9) //_LBB579_6
{
	f9 = -f6;
}
else{
	f9 = f6;
}
	f11 =       0.70710676908493042;
	if(f9 >f11) //_LBB579_9
{
	f7 = f8*f8;
	f8 = f6*f6;
	f7 = f7+f8;
	heapFloat[(g0)] = f7;
	sqrtf(i7);
	heap32[(r3+4)] = 0;
	f6 = heapFloat[(r3+2)];
	f8 = f10/f_g0;
	f6 = -f6;
	f6 = f8*f6;
	heapFloat[(r3+5)] = f6;
	f9 = heapFloat[(r3+1)];
	f9 = f9*f8;
	f7 = f7*f8;
	heapFloat[(r3+6)] = f9;
	heapFloat[(r3+8)] = f7;
	f7 = heapFloat[(fp+-44)];
	f8 = -f7;
	f8 = f9*f8;
	f7 = f7*f6;
	heapFloat[(r3+9)] = f8;
	heapFloat[(r3+10)] = f7;
__label__ = 10;
}
else{
__label__ = 9;
}
}
else{
	r2 = sp + -176;
	r3 = r2 >> 2;
	heap32[(fp+-44)] = 1065353216;
	heap32[(r3+1)] = 0;
	r2 = (r2 + 8)|0;
	f7 =                         1;
	f8 =                         0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
__label__ = 9;
}
if (__label__ == 9){
	f6 = f7*f7;
	f7 = f8*f8;
	f6 = f6+f7;
	r3 = sp + -176;
	heapFloat[(g0)] = f6;
	r3 = r3 >> 2;
	sqrtf(i7);
	f8 =                         1;
	f9 = heapFloat[(r3+1)];
	f7 = f8/f_g0;
	f8 = -f9;
	f8 = f7*f8;
	heapFloat[(r3+4)] = f8;
	f9 = heapFloat[(fp+-44)];
	f9 = f9*f7;
	heapFloat[(r3+5)] = f9;
	r2 = r2 >> 2;
	heap32[(r3+6)] = 0;
	f10 = heapFloat[(r2)];
	f11 = -f10;
	f9 = f9*f11;
	f8 = f10*f8;
	heapFloat[(r3+8)] = f9;
	f6 = f6*f7;
	heapFloat[(r3+9)] = f8;
	heapFloat[(r3+10)] = f6;
}
	r2 = (r0 + 36)|0;
	r3 = 0;
_16: while(true){
	r4 = heap32[(r1+5)];
	r5 = r4 >> 2;
	r6 = sp + -128;
	r7 = r6 >> 2;
	heap32[(fp+-32)] = heap32[(r5+1)];
	heap32[(r7+1)] = heap32[(r5+5)];
	heap32[(r7+2)] = heap32[(r5+9)];
	heap32[(r7+3)] = 0;
	heap32[(r7+4)] = heap32[(r5+2)];
	heap32[(r7+5)] = heap32[(r5+6)];
	heap32[(r7+6)] = heap32[(r5+10)];
	heap32[(r7+7)] = 0;
	heap32[(r7+8)] = heap32[(r5+3)];
	heap32[(r7+9)] = heap32[(r5+7)];
	heap32[(r7+10)] = heap32[(r5+11)];
	heap32[(r7+11)] = 0;
	r7 = heap32[(r1+6)];
	r8 = sp + -80;
	r9 = r7 >> 2;
	r10 = r8 >> 2;
	heap32[(fp+-20)] = heap32[(r9+1)];
	heap32[(r10+1)] = heap32[(r9+5)];
	heap32[(r10+2)] = heap32[(r9+9)];
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = heap32[(r9+2)];
	heap32[(r10+5)] = heap32[(r9+6)];
	heap32[(r10+6)] = heap32[(r9+10)];
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = heap32[(r9+3)];
	heap32[(r10+9)] = heap32[(r9+7)];
	heap32[(r10+10)] = heap32[(r9+11)];
	heap32[(r10+11)] = 0;
	f6 = heapFloat[(r5+13)];
	f7 = heapFloat[(r5+15)];
	f8 = heapFloat[(r5+14)];
	r10 = sp + -32;
	f6 = f5-f6;
	r11 = r10 >> 2;
	f8 = f3-f8;
	heapFloat[(fp+-8)] = f6;
	f6 = f4-f7;
	heapFloat[(r11+1)] = f8;
	heapFloat[(r11+2)] = f6;
	heap32[(r11+3)] = 0;
	f6 = heapFloat[(r9+13)];
	f7 = heapFloat[(r9+15)];
	f8 = heapFloat[(r9+14)];
	r11 = sp + -16;
	f6 = f2-f6;
	r12 = r11 >> 2;
	f8 = f0-f8;
	heapFloat[(fp+-4)] = f6;
	f6 = f1-f7;
	heapFloat[(r12+1)] = f8;
	heapFloat[(r12+2)] = f6;
	heap32[(r12+3)] = 0;
	f6 = heapFloat[(r9+84)];
	f7 = heapFloat[(r5+84)];
	r5 = sp + -176;
	r5 = (r5 + r3)|0;
	r4 = (r4 + 388)|0;
	r7 = (r7 + 388)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r11;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = r4;
	heapFloat[(g0+7)] = f7;
	heap32[(g0+8)] = r7;
	heapFloat[(g0+9)] = f6;
	r3 = (r3 + 16)|0;
	r2 = (r2 + 84)|0;
	_ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(i7);
if(!(r3 !=48)) //_LBB579_12
{
break _16;
}
}
}
	r2 = heap32[(r1+6)];
	r1 = heap32[(r1+5)];
	r3 = (r1 + 4)|0;
	r4 = (r2 + 4)|0;
	r1 = (r1 + 256)|0;
	r2 = (r2 + 256)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r2;
	_ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7);
}
	return;
}

function _ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heapU8[r0+515];
	if(r2 ==0) //_LBB580_2
{
	r1 = r1 >> 2;
	heap32[(r1)] = 3;
	r2 = r0 >> 2;
	heap32[(r1+1)] = 3;
	r3 = heap32[(r2+6)];
	r4 = heap32[(r2+5)];
	r5 = (r4 + 4)|0;
	r6 = (r3 + 4)|0;
	r4 = (r4 + 256)|0;
	r3 = (r3 + 256)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r3;
	_ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7);
	r3 = heapU8[r0+514];
if(!(r3 ==0)) //_LBB580_6
{
	r3 = heap32[(r1)];
	r4 = (r3 + 1)|0;
	heap32[(r1)] = r4;
	r4 = heap32[(r1+1)];
	r5 = (r4 + -1)|0;
	heap32[(r1+1)] = r5;
	f0 = heapFloat[(r2+111)];
	f1 = heapFloat[(r2+108)];
if(!(f1 >=f0)) //_LBB580_6
{
	f1 = heapFloat[(r2+109)];
if(!(f1 >=f0)) //_LBB580_6
{
	r2 = (r3 + 2)|0;
	r3 = (r4 + -2)|0;
	heap32[(r1)] = r2;
	heap32[(r1+1)] = r3;
}
}
}
	r0 = heapU8[r0+513];
if(!(r0 ==0)) //_LBB580_8
{
	r0 = heap32[(r1)];
	r0 = (r0 + 1)|0;
	heap32[(r1)] = r0;
	r0 = heap32[(r1+1)];
	r0 = (r0 + -1)|0;
	heap32[(r1+1)] = r0;
}
	return;
}
else{
	r0 = r1 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	return;
}
}

function _ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+6)];
	r3 = heap32[(r1+5)];
	r4 = (r3 + 4)|0;
	r5 = (r2 + 4)|0;
	r6 = (r3 + 256)|0;
	r7 = (r2 + 256)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r6;
	heap32[(g0+4)] = r7;
	_ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7);
	r4 = heapU8[r0+515];
	if(r4 ==0) //_LBB581_2
{
	r4 = heap32[(fp+1)];
	r5 = r4 >> 2;
	r6 = heap32[(r5+2)];
	r6 = r6 >> 2;
	heap32[(r6)] = 1065353216;
	r6 = heap32[(r5+6)];
	r7 = heap32[(r5+2)];
	r6 = r6 << 2;
	r6 = (r6 + r7)|0;
	r6 = r6 >> 2;
	heap32[(r6+1)] = 1065353216;
	r6 = heap32[(r5+6)];
	r7 = heap32[(r5+2)];
	r6 = r6 << 3;
	r6 = (r6 + r7)|0;
	r6 = r6 >> 2;
	heap32[(r6+2)] = 1065353216;
	r3 = r3 >> 2;
	f0 = heapFloat[(r3+9)];
	f1 = heapFloat[(r1+84)];
	f2 = heapFloat[(r3+5)];
	f3 = heapFloat[(r3+10)];
	f4 = heapFloat[(r1+85)];
	f5 = heapFloat[(r3+6)];
	r6 = heap32[(r5+6)];
	f6 = heapFloat[(r3+1)];
	f7 = heapFloat[(r3+2)];
	r7 = heap32[(r5+3)];
	f2 = f2*f1;
	f5 = f5*f4;
	f0 = f0*f1;
	f3 = f3*f4;
	f8 = heapFloat[(r3+11)];
	f9 = heapFloat[(r1+86)];
	f10 = heapFloat[(r3+7)];
	f11 = heapFloat[(r3+3)];
	f2 = f2+f5;
	f5 = f10*f9;
	r8 = r7 >> 2;
	f0 = f0+f3;
	f3 = f8*f9;
	f2 = f2+f5;
	f0 = f0+f3;
	heap32[(r8)] = 0;
	r9 = r6 << 2;
	f3 = -f2;
	heapFloat[(r8+1)] = f0;
	r9 = (r7 + r9)|0;
	heapFloat[(r8+2)] = f3;
	r9 = r9 >> 2;
	f1 = f6*f1;
	f3 = f7*f4;
	f4 = -f0;
	heap32[(r8+3)] = 0;
	heapFloat[(r9)] = f4;
	f1 = f1+f3;
	f3 = f11*f9;
	r6 = r6 << 3;
	f1 = f1+f3;
	heap32[(r9+1)] = 0;
	r8 = (r6 + r7)|0;
	r6 = r6 | 4;
	heapFloat[(r9+2)] = f1;
	r6 = (r7 + r6)|0;
	r7 = r8 >> 2;
	heap32[(r9+3)] = 0;
	r6 = r6 >> 2;
	f3 = -f1;
	heapFloat[(r7)] = f2;
	heapFloat[(r6)] = f3;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 0;
	r2 = r2 >> 2;
	f3 = heapFloat[(r2+9)];
	f4 = heapFloat[(r1+100)];
	f5 = heapFloat[(r2+10)];
	f6 = heapFloat[(r1+101)];
	f3 = f3*f4;
	f5 = f5*f6;
	f7 = heapFloat[(r2+11)];
	f8 = heapFloat[(r1+102)];
	r6 = heap32[(r5+6)];
	f9 = heapFloat[(r2+5)];
	f10 = heapFloat[(r2+6)];
	f11 = heapFloat[(r2+7)];
	f12 = heapFloat[(r2+1)];
	f13 = heapFloat[(r2+2)];
	f14 = heapFloat[(r2+3)];
	r7 = heap32[(r5+5)];
	f3 = f3+f5;
	f5 = f7*f8;
	f3 = f3+f5;
	r8 = r7 >> 2;
	f5 = f9*f4;
	f7 = f10*f6;
	f5 = f5+f7;
	f7 = f11*f8;
	f9 = -f3;
	heap32[(r8)] = 0;
	f5 = f5+f7;
	r9 = r6 << 2;
	heapFloat[(r8+1)] = f9;
	r9 = (r7 + r9)|0;
	heapFloat[(r8+2)] = f5;
	f4 = f12*f4;
	f6 = f13*f6;
	f4 = f4+f6;
	f6 = f14*f8;
	r9 = r9 >> 2;
	heap32[(r8+3)] = 0;
	f4 = f4+f6;
	heapFloat[(r9)] = f3;
	r6 = r6 << 3;
	f6 = -f4;
	heap32[(r9+1)] = 0;
	r8 = (r6 + r7)|0;
	r6 = r6 | 4;
	heapFloat[(r9+2)] = f6;
	r6 = (r7 + r6)|0;
	r7 = r8 >> 2;
	f6 = -f5;
	heap32[(r9+3)] = 0;
	r6 = r6 >> 2;
	heapFloat[(r7)] = f6;
	heapFloat[(r6)] = f4;
	heap32[(r7+2)] = 0;
	heap32[(r7+3)] = 0;
	r6 = heapU8[r0+580];
	r6 = r6 & 2;
	if(r6 ==0) //_LBB581_4
{
	r4 = (r4 + 4)|0;
}
else{
	r4 = (r0 + 588)|0;
}
	f6 = heapFloat[(r2+13)];
	r4 = r4 >> 2;
	f4 = f4+f6;
	f1 = f4-f1;
	f4 = heapFloat[(r3+13)];
	f6 = heapFloat[(r4)];
	f7 = heapFloat[(r5)];
	r4 = heap32[(r5+7)];
	f6 = f7*f6;
	f1 = f1-f4;
	r4 = r4 >> 2;
	f1 = f1*f6;
	heapFloat[(r4)] = f1;
	r4 = heap32[(r5+9)];
	r4 = r4 >> 2;
	heap32[(r4)] = -8388609;
	r4 = heap32[(r5+10)];
	r4 = r4 >> 2;
	heap32[(r4)] = 2139095039;
	r4 = heapU8[r0+580];
	r4 = r4 & 1;
if(!(r4 ==0)) //_LBB581_7
{
	r4 = heap32[(r5+8)];
	r4 = r4 >> 2;
	heap32[(r4)] = heap32[(r1+146)];
}
	f1 = heapFloat[(r2+14)];
	r4 = heap32[(r5+6)];
	f1 = f5+f1;
	r4 = r4 << 2;
	r6 = heap32[(r5+7)];
	f4 = heapFloat[(r3+14)];
	f1 = f1-f2;
	r4 = (r6 + r4)|0;
	f1 = f1-f4;
	r4 = r4 >> 2;
	f1 = f1*f6;
	heapFloat[(r4)] = f1;
	r4 = heap32[(r5+6)];
	r6 = heap32[(r5+9)];
	r4 = r4 << 2;
	r4 = (r6 + r4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = -8388609;
	r4 = heap32[(r5+6)];
	r6 = heap32[(r5+10)];
	r4 = r4 << 2;
	r4 = (r6 + r4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = 2139095039;
	r4 = heapU8[r0+580];
	r4 = r4 & 1;
if(!(r4 ==0)) //_LBB581_25
{
	r4 = heap32[(r5+6)];
	r6 = heap32[(r5+8)];
	r4 = r4 << 2;
	r4 = (r6 + r4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = heap32[(r1+146)];
}
	f1 = heapFloat[(r2+15)];
	r2 = heap32[(r5+6)];
	f3 = f3+f1;
	r2 = r2 << 3;
	r4 = heap32[(r5+7)];
	f1 = heapFloat[(r3+15)];
	f0 = f3-f0;
	r2 = (r4 + r2)|0;
	f0 = f0-f1;
	r2 = r2 >> 2;
	f0 = f0*f6;
	heapFloat[(r2)] = f0;
	r2 = heap32[(r5+6)];
	r4 = heap32[(r5+9)];
	r2 = r2 << 3;
	r2 = (r4 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = -8388609;
	r2 = heap32[(r5+6)];
	r4 = heap32[(r5+10)];
	r2 = r2 << 3;
	r2 = (r4 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = 2139095039;
	r2 = heapU8[r0+580];
	r2 = r2 & 1;
if(!(r2 ==0)) //_LBB581_8
{
	r2 = heap32[(r5+6)];
	r4 = heap32[(r5+8)];
	r2 = r2 << 3;
	r2 = (r4 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = heap32[(r1+146)];
}
	r2 = heap32[(r5+6)];
	r4 = (r2 * 3)|0;
	r6 = heapU8[r0+514];
_16: do {
	if(r6 !=0) //_LBB581_10
{
	f0 = heapFloat[(r1+111)];
	r6 = heap32[(r5+3)];
	r7 = heap32[(r5+5)];
	f3 = heapFloat[(r1+108)];
if(!(f3 >=f0)) //_LBB581_13
{
	f3 = heapFloat[(r1+109)];
if(!(f3 >=f0)) //_LBB581_13
{
	f0 = heapFloat[(r3+1)];
	f3 = heapFloat[(r1+73)];
	f6 = heapFloat[(r3+2)];
	f1 = heapFloat[(r1+77)];
	r8 = (r4 + 1)|0;
	f2 = heapFloat[(r3+5)];
	f4 = heapFloat[(r3+6)];
	r9 = r4 << 2;
	f5 = f3*f0;
	f7 = f1*f6;
	f8 = heapFloat[(r3+3)];
	f9 = heapFloat[(r1+81)];
	f10 = heapFloat[(r1+74)];
	f11 = heapFloat[(r3+9)];
	f12 = heapFloat[(r1+78)];
	f13 = heapFloat[(r3+10)];
	r10 = (r4 + 2)|0;
	r8 = r8 << 2;
	r11 = (r6 + r9)|0;
	f14 = heapFloat[(r3+11)];
	f15 = heapFloat[(r1+82)];
	f16 = heapFloat[(r3+7)];
	f17 = f3*f2;
	f18 = f1*f4;
	f5 = f5+f7;
	f7 = f9*f8;
	r2 = (r2 + r4)|0;
	r3 = r10 << 2;
	r4 = (r6 + r8)|0;
	f5 = f5+f7;
	f3 = f3*f11;
	f1 = f1*f13;
	f7 = f17+f18;
	f17 = f9*f16;
	r10 = r11 >> 2;
	r11 = (r2 + 1)|0;
	r12 = r2 << 2;
	r13 = (r6 + r3)|0;
	f7 = f7+f17;
	f0 = f10*f0;
	f6 = f12*f6;
	f3 = f3+f1;
	f1 = f9*f14;
	r4 = r4 >> 2;
	heapFloat[(r10)] = f5;
	r10 = (r2 + 2)|0;
	r11 = r11 << 2;
	r14 = (r6 + r12)|0;
	f3 = f3+f1;
	f1 = f10*f2;
	f2 = f12*f4;
	f0 = f0+f6;
	f6 = f15*f8;
	r13 = r13 >> 2;
	heapFloat[(r4)] = f7;
	r4 = r10 << 2;
	r10 = (r6 + r11)|0;
	f0 = f0+f6;
	f6 = f10*f11;
	f4 = f12*f13;
	f1 = f1+f2;
	f2 = f15*f16;
	r14 = r14 >> 2;
	heapFloat[(r13)] = f3;
	r6 = (r6 + r4)|0;
	f1 = f1+f2;
	f6 = f6+f4;
	f2 = f15*f14;
	r10 = r10 >> 2;
	heapFloat[(r14)] = f0;
	r13 = (r7 + r9)|0;
	f6 = f6+f2;
	r6 = r6 >> 2;
	heapFloat[(r10)] = f1;
	r8 = (r7 + r8)|0;
	r10 = r13 >> 2;
	f2 = -f5;
	heapFloat[(r6)] = f6;
	r3 = (r7 + r3)|0;
	r6 = r8 >> 2;
	f4 = -f7;
	heapFloat[(r10)] = f2;
	r8 = (r7 + r12)|0;
	r3 = r3 >> 2;
	f2 = -f3;
	heapFloat[(r6)] = f4;
	r6 = (r7 + r11)|0;
	r8 = r8 >> 2;
	f4 = -f0;
	heapFloat[(r3)] = f2;
	r3 = (r7 + r4)|0;
	r4 = r6 >> 2;
	f2 = -f1;
	heapFloat[(r8)] = f4;
	r3 = r3 >> 2;
	f4 = -f6;
	heapFloat[(r4)] = f2;
	heapFloat[(r3)] = f4;
	f2 = heapFloat[(r1+112)];
	f4 = heapFloat[(r1+113)];
	f8 = heapFloat[(r1+114)];
	f2 = f2*f5;
	f4 = f4*f7;
	r3 = heap32[(r5+7)];
	f2 = f2+f4;
	f3 = f8*f3;
	f4 = heapFloat[(r5)];
	f5 = heapFloat[(r1+106)];
	r3 = (r3 + r9)|0;
	f3 = f2+f3;
	f2 = f4*f5;
	r3 = r3 >> 2;
	f3 = f3*f2;
	heapFloat[(r3)] = f3;
	f3 = heapFloat[(r1+112)];
	f4 = heapFloat[(r1+113)];
	f5 = heapFloat[(r1+114)];
	f0 = f3*f0;
	f3 = f4*f1;
	r3 = heap32[(r5+7)];
	f0 = f0+f3;
	f3 = f5*f6;
	r3 = (r3 + r12)|0;
	f0 = f0+f3;
	r3 = r3 >> 2;
	f0 = f0*f2;
	heapFloat[(r3)] = f0;
	r3 = heap32[(r5+9)];
	r3 = (r3 + r9)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = -8388609;
	r3 = heap32[(r5+10)];
	r3 = (r3 + r9)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = 2139095039;
	r3 = heap32[(r5+9)];
	r3 = (r3 + r12)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = -8388609;
	r3 = heap32[(r5+10)];
	r3 = (r3 + r12)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = 2139095039;
	r3 = heap32[(r5+6)];
	r4 = (r3 + r2)|0;
break _16;
}
}
	r2 = (r4 + 1)|0;
	r3 = r4 << 2;
	f0 = heapFloat[(r1+106)];
	f3 = heapFloat[(r1+112)];
	r8 = (r4 + 2)|0;
	r2 = r2 << 2;
	r9 = (r6 + r3)|0;
	f3 = f3*f0;
	f6 = heapFloat[(r1+114)];
	f1 = heapFloat[(r1+113)];
	r8 = r8 << 2;
	r10 = (r6 + r2)|0;
	f1 = f1*f0;
	f3 = f3*f0;
	r9 = r9 >> 2;
	r6 = (r6 + r8)|0;
	f6 = f6*f0;
	f1 = f1*f0;
	r10 = r10 >> 2;
	heapFloat[(r9)] = f3;
	r9 = (r7 + r3)|0;
	f0 = f6*f0;
	r6 = r6 >> 2;
	heapFloat[(r10)] = f1;
	r2 = (r7 + r2)|0;
	r9 = r9 >> 2;
	f3 = -f3;
	heapFloat[(r6)] = f0;
	r6 = (r7 + r8)|0;
	r2 = r2 >> 2;
	f6 = -f1;
	heapFloat[(r9)] = f3;
	r6 = r6 >> 2;
	f0 = -f0;
	heapFloat[(r2)] = f6;
	heapFloat[(r6)] = f0;
	r2 = heap32[(r5+7)];
	f0 = heapFloat[(r5)];
	f3 = heapFloat[(r1+105)];
	r2 = (r2 + r3)|0;
	f6 = heapFloat[(r1+123)];
	f0 = f0*f3;
	r2 = r2 >> 2;
	f0 = f6*f0;
	heapFloat[(r2)] = f0;
	r2 = heapU8[r0+580];
	r2 = r2 & 4;
if(!(r2 ==0)) //_LBB581_15
{
	r2 = heap32[(r5+8)];
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = heap32[(r1+148)];
}
	r2 = heap32[(r5+9)];
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = 0;
	r2 = heap32[(r5+10)];
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = 2139095039;
	r2 = heap32[(r5+6)];
	r4 = (r2 + r4)|0;
}
} while(0);
	r2 = heapU8[r0+513];
	if(r2 ==0) //_LBB581_28
{
	return;
}
else{
	r2 = (r4 + 1)|0;
	r3 = r4 << 2;
	r6 = heap32[(r5+3)];
	f0 = heapFloat[(r1+106)];
	f3 = heapFloat[(r1+116)];
	r4 = (r4 + 2)|0;
	r2 = r2 << 2;
	r7 = heap32[(r5+5)];
	r8 = (r6 + r3)|0;
	f3 = f3*f0;
	f6 = heapFloat[(r1+118)];
	f1 = heapFloat[(r1+117)];
	r4 = r4 << 2;
	r9 = (r6 + r2)|0;
	f1 = f1*f0;
	f3 = f3*f0;
	r8 = r8 >> 2;
	r6 = (r6 + r4)|0;
	f6 = f6*f0;
	f1 = f1*f0;
	r9 = r9 >> 2;
	heapFloat[(r8)] = f3;
	r8 = (r7 + r3)|0;
	f0 = f6*f0;
	r6 = r6 >> 2;
	heapFloat[(r9)] = f1;
	r2 = (r7 + r2)|0;
	r8 = r8 >> 2;
	f3 = -f3;
	heapFloat[(r6)] = f0;
	r4 = (r7 + r4)|0;
	r2 = r2 >> 2;
	f6 = -f1;
	heapFloat[(r8)] = f3;
	r4 = r4 >> 2;
	f0 = -f0;
	heapFloat[(r2)] = f6;
	heapFloat[(r4)] = f0;
	r2 = heap32[(r5+7)];
	f0 = heapFloat[(r5)];
	f3 = heapFloat[(r1+105)];
	r2 = (r2 + r3)|0;
	f6 = heapFloat[(r1+124)];
	f0 = f0*f3;
	r2 = r2 >> 2;
	f0 = f6*f0;
	heapFloat[(r2)] = f0;
	r0 = heapU8[r0+580];
	r0 = r0 & 4;
if(!(r0 ==0)) //_LBB581_19
{
	r0 = heap32[(r5+8)];
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = heap32[(r1+148)];
}
	f0 = heapFloat[(r1+110)];
	f3 =                         0;
	if(f0 <=f3) //_LBB581_24
{
	r0 = heap32[(r5+9)];
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = -8388609;
}
else{
	r0 = heap32[(r5+9)];
	f0 = heapFloat[(r1+124)];
	if(f0 <=f3) //_LBB581_23
{
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = -8388609;
	r0 = heap32[(r5+10)];
	r3 = (r0 + r3)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = 0;
	return;
}
else{
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
}
}
	r0 = heap32[(r5+10)];
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 2139095039;
	return;
}
}
else{
	r0 = _2E_str1149;
	r1 = _2E_str24;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 126;
	_assert(i7);
}
}

function _ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -624;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+515];
if(!(r1 ==0)) //_LBB582_52
{
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	f0 = heapFloat[(fp+3)];
	heapFloat[(fp+-117)] = f0;
	r3 = r0 >> 2;
	r4 = heapU8[r0+512];
if(!(r4 !=0)) //_LBB582_8
{
	r4 = heap32[(r3+5)];
	r5 = heap32[(r3+6)];
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	f0 = heapFloat[(r4+9)];
	f1 = heapFloat[(r3+84)];
	f2 = heapFloat[(r4+5)];
	f3 = heapFloat[(r4+1)];
	f4 = heapFloat[(r4+10)];
	f5 = heapFloat[(r3+85)];
	f6 = heapFloat[(r4+6)];
	f7 = heapFloat[(r4+2)];
	f8 = heapFloat[(r5+9)];
	f9 = heapFloat[(r3+100)];
	f10 = heapFloat[(r5+5)];
	f11 = heapFloat[(r5+1)];
	f12 = heapFloat[(r5+10)];
	f13 = heapFloat[(r3+101)];
	f14 = heapFloat[(r5+6)];
	f15 = heapFloat[(r5+2)];
	f0 = f0*f1;
	f4 = f4*f5;
	f16 = heapFloat[(r4+11)];
	f17 = heapFloat[(r3+86)];
	f18 = heapFloat[(r4+7)];
	f19 = heapFloat[(r4+3)];
	f2 = f2*f1;
	f6 = f6*f5;
	f1 = f3*f1;
	f3 = f7*f5;
	f5 = f8*f9;
	f7 = f12*f13;
	f8 = heapFloat[(r5+11)];
	f12 = heapFloat[(r3+102)];
	f20 = heapFloat[(r5+7)];
	f21 = heapFloat[(r5+3)];
	f10 = f10*f9;
	f14 = f14*f13;
	f9 = f11*f9;
	f11 = f15*f13;
	f0 = f0+f4;
	f4 = f16*f17;
	f2 = f2+f6;
	f6 = f18*f17;
	f1 = f1+f3;
	f3 = f19*f17;
	f5 = f5+f7;
	f7 = f8*f12;
	f8 = f10+f14;
	f10 = f20*f12;
	f9 = f9+f11;
	f11 = f21*f12;
	f12 = heapFloat[(r4+15)];
	f0 = f0+f4;
	f4 = heapFloat[(r4+14)];
	f2 = f2+f6;
	f6 = heapFloat[(r4+13)];
	f1 = f1+f3;
	f3 = heapFloat[(r5+15)];
	f5 = f5+f7;
	f7 = heapFloat[(r5+14)];
	f8 = f8+f10;
	f10 = heapFloat[(r5+13)];
	f9 = f9+f11;
	f0 = f0+f12;
	heapFloat[(fp+-119)] = f0;
	f0 = f2+f4;
	heapFloat[(fp+-121)] = f0;
	f1 = f1+f6;
	heapFloat[(fp+-120)] = f1;
	f0 = f5+f3;
	heapFloat[(fp+-122)] = f0;
	f0 = f8+f7;
	heapFloat[(fp+-123)] = f0;
	f1 = f9+f10;
	r4 = r1 >> 2;
	r5 = r2 >> 2;
	f2 = heapFloat[(r4+80)];
	f5 = heapFloat[(r4+130)];
	f8 = heapFloat[(r5+80)];
	f9 = heapFloat[(r5+130)];
	f11 = heapFloat[(r4+81)];
	f13 = heapFloat[(r4+131)];
	f14 = heapFloat[(r4+82)];
	f15 = heapFloat[(r4+132)];
	f16 = heapFloat[(r5+81)];
	f17 = heapFloat[(r5+131)];
	f18 = heapFloat[(r5+82)];
	f19 = heapFloat[(r5+132)];
	f20 = heapFloat[(fp+-120)];
	f6 = f20-f6;
	f10 = f1-f10;
	f11 = f11+f13;
	f0 = heapFloat[(fp+-119)];
	f12 = f0-f12;
	f2 = f2+f5;
	f0 = heapFloat[(fp+-121)];
	f4 = f0-f4;
	f5 = f14+f15;
	f13 = f16+f17;
	f0 = heapFloat[(fp+-122)];
	f3 = f0-f3;
	f8 = f8+f9;
	f0 = heapFloat[(fp+-123)];
	f7 = f0-f7;
	f9 = f18+f19;
	f14 = heapFloat[(r4+78)];
	f15 = heapFloat[(r4+128)];
	f16 = f2*f4;
	f17 = f11*f6;
	f18 = heapFloat[(r5+78)];
	f19 = heapFloat[(r5+128)];
	f21 = f8*f7;
	f22 = f13*f10;
	f23 = heapFloat[(r4+77)];
	f24 = heapFloat[(r4+127)];
	f25 = f5*f6;
	f2 = f2*f12;
	f26 = heapFloat[(r5+77)];
	f27 = heapFloat[(r5+127)];
	f28 = f9*f10;
	f8 = f8*f3;
	f29 = heapFloat[(r4+76)];
	f30 = heapFloat[(r4+126)];
	f11 = f11*f12;
	f5 = f5*f4;
	f0 = heapFloat[(r5+76)];
	f20 = heapFloat[(r5+126)];
	f13 = f13*f3;
	f9 = f9*f7;
	f14 = f14+f15;
	f15 = f16-f17;
	f16 = f18+f19;
	f17 = f21-f22;
	f18 = f23+f24;
	f2 = f25-f2;
	f19 = f26+f27;
	f8 = f28-f8;
	f21 = f29+f30;
	f5 = f11-f5;
	f0 = f0+f20;
	f9 = f13-f9;
	f11 = f14+f15;
	f13 = f16+f17;
	f2 = f18+f2;
	f8 = f19+f8;
	f5 = f21+f5;
	f0 = f0+f9;
	f9 = f11-f13;
	f2 = f2-f8;
	heapFloat[(fp+-118)] = f2;
	f0 = f5-f0;
	f2 = heapFloat[(fp+-119)];
	f5 = heapFloat[(fp+-122)];
	f2 = f2-f5;
	f5 = heapFloat[(fp+-121)];
	f8 = heapFloat[(fp+-123)];
	f5 = f5-f8;
	f8 = heapFloat[(fp+-120)];
	f1 = f8-f1;
	r6 = 0;
_5: while(true){
	r7 = (r6 * -21)|0;
	r8 = r7 << 2;
	r8 = (r0 + r8)|0;
	r8 = r8 >> 2;
	f8 = heapFloat[(r8+9)];
	f11 = heapFloat[(r8+10)];
	f13 = heapFloat[(r8+11)];
	f14 = f1*f8;
	f15 = f5*f11;
	f14 = f14+f15;
	f15 = f2*f13;
	f14 = f14+f15;
	f15 =      -0.30000001192092896;
	f16 = f8*f0;
	f17 = heapFloat[(fp+-118)];
	f17 = f11*f17;
	f14 = f14*f15;
	f15 = f16+f17;
	f16 = f13*f9;
	f17 =                         1;
	f18 = heapFloat[(r8+29)];
	f19 = heapFloat[(fp+-117)];
	f14 = f14/f19;
	f17 = f17/f18;
	f15 = f15+f16;
	f14 = f14*f17;
	f15 = f15*f17;
	f14 = f14-f15;
	f15 = heapFloat[(r3+7)];
	f15 = f15+f14;
	heapFloat[(r3+7)] = f15;
	f15 = heapFloat[(r4+84)];
	f16 =                         0;
if(!(f15 ==f16)) //_LBB582_5
{
	r9 = heap32[(r3+5)];
	r9 = r9 >> 2;
	f15 = f6*f11;
	f17 = f4*f8;
	f18 = f12*f8;
	f19 = f6*f13;
	f20 = f4*f13;
	f21 = f12*f11;
	f15 = f15-f17;
	f17 = f18-f19;
	f18 = f20-f21;
	f19 = heapFloat[(r9+84)];
	f20 = f8*f19;
	f20 = f20*f14;
	f21 = heapFloat[(r4+126)];
	f22 = heapFloat[(r9+65)];
	f23 = heapFloat[(r9+64)];
	f24 = heapFloat[(r9+69)];
	f25 = heapFloat[(r9+68)];
	f26 = heapFloat[(r9+73)];
	f27 = heapFloat[(r9+72)];
	f28 = heapFloat[(r9+66)];
	f29 = heapFloat[(r9+70)];
	f30 = heapFloat[(r9+74)];
	f20 = f21+f20;
	f21 = f11*f19;
	heapFloat[(r4+126)] = f20;
	f20 = f21*f14;
	f21 = heapFloat[(r4+127)];
	f20 = f21+f20;
	f19 = f13*f19;
	heapFloat[(r4+127)] = f20;
	f19 = f19*f14;
	f20 = heapFloat[(r4+128)];
	f19 = f20+f19;
	heapFloat[(r4+128)] = f19;
	f19 = f23*f18;
	f20 = f22*f17;
	f21 = heapFloat[(r4+134)];
	f19 = f19+f20;
	f20 = f28*f15;
	f19 = f19+f20;
	f20 = f21*f14;
	f21 = heapFloat[(r4+136)];
	f22 = heapFloat[(r4+135)];
	f23 = heapFloat[(r4+130)];
	f19 = f19*f20;
	f20 = f25*f18;
	f24 = f24*f17;
	f20 = f20+f24;
	f24 = f29*f15;
	f19 = f23+f19;
	heapFloat[(r4+130)] = f19;
	f19 = f20+f24;
	f20 = f22*f14;
	f18 = f27*f18;
	f17 = f26*f17;
	f19 = f19*f20;
	f20 = heapFloat[(r4+131)];
	f19 = f20+f19;
	f17 = f18+f17;
	f15 = f30*f15;
	heapFloat[(r4+131)] = f19;
	f15 = f17+f15;
	f17 = f21*f14;
	f15 = f15*f17;
	f17 = heapFloat[(r4+132)];
	f15 = f17+f15;
	heapFloat[(r4+132)] = f15;
}
	f15 = heapFloat[(r5+84)];
if(!(f15 ==f16)) //_LBB582_7
{
	f15 = f10*f11;
	f16 = f7*f8;
	f8 = f3*f8;
	f17 = f10*f13;
	f13 = f7*f13;
	f11 = f3*f11;
	f15 = f15-f16;
	f8 = f8-f17;
	f11 = f13-f11;
	r9 = heap32[(r3+6)];
	r9 = r9 >> 2;
	f13 = -f14;
	f14 = heapFloat[(r9+84)];
	r10 = r7 << 2;
	r10 = (r0 + r10)|0;
	r10 = r10 >> 2;
	r7 = r7 << 2;
	r7 = (r0 + r7)|0;
	f16 = heapFloat[(r10+9)];
	r7 = r7 >> 2;
	f16 = f16*f14;
	f17 = heapFloat[(r7+10)];
	f18 = heapFloat[(r8+11)];
	f16 = f16*f13;
	f19 = heapFloat[(r5+126)];
	f20 = heapFloat[(r9+65)];
	f21 = heapFloat[(r9+64)];
	f22 = heapFloat[(r9+69)];
	f23 = heapFloat[(r9+68)];
	f24 = heapFloat[(r9+73)];
	f25 = heapFloat[(r9+72)];
	f26 = heapFloat[(r9+66)];
	f27 = heapFloat[(r9+70)];
	f28 = heapFloat[(r9+74)];
	f16 = f19+f16;
	f17 = f17*f14;
	heapFloat[(r5+126)] = f16;
	f16 = f17*f13;
	f17 = heapFloat[(r5+127)];
	f16 = f17+f16;
	f14 = f18*f14;
	heapFloat[(r5+127)] = f16;
	f14 = f14*f13;
	f16 = heapFloat[(r5+128)];
	f14 = f16+f14;
	heapFloat[(r5+128)] = f14;
	f14 = f21*f11;
	f16 = f20*f8;
	f17 = heapFloat[(r5+134)];
	f14 = f14+f16;
	f16 = f26*f15;
	f14 = f14+f16;
	f16 = f17*f13;
	f17 = heapFloat[(r5+136)];
	f18 = heapFloat[(r5+135)];
	f19 = heapFloat[(r5+130)];
	f14 = f14*f16;
	f16 = f23*f11;
	f20 = f22*f8;
	f16 = f16+f20;
	f20 = f27*f15;
	f14 = f19+f14;
	heapFloat[(r5+130)] = f14;
	f14 = f16+f20;
	f16 = f18*f13;
	f11 = f25*f11;
	f8 = f24*f8;
	f14 = f14*f16;
	f16 = heapFloat[(r5+131)];
	f14 = f16+f14;
	f8 = f11+f8;
	f11 = f28*f15;
	heapFloat[(r5+131)] = f14;
	f8 = f8+f11;
	f11 = f17*f13;
	f8 = f8*f11;
	f11 = heapFloat[(r5+132)];
	f8 = f11+f8;
	heapFloat[(r5+132)] = f8;
}
	r6 = (r6 + -1)|0;
if(!(r6 !=-3)) //_LBB582_3
{
break _5;
}
}
}
	r4 = heapU8[r0+540];
_14: do {
	if(r4 ==0) //_LBB582_29
{
	f0 = heapFloat[(r3+107)];
	f1 =   1.1920928955078125e-007;
	if(f0 <=f1) //_LBB582_35
{
break _14;
}
else{
	r4 = r2 >> 2;
	r5 = r1 >> 2;
	f0 = heapFloat[(r4+81)];
	f2 = heapFloat[(r4+131)];
	f3 = heapFloat[(r5+81)];
	f4 = heapFloat[(r5+131)];
	f5 = heapFloat[(r4+80)];
	f6 = heapFloat[(r4+130)];
	f7 = heapFloat[(r5+80)];
	f8 = heapFloat[(r5+130)];
	f9 = heapFloat[(r4+82)];
	f10 = heapFloat[(r4+132)];
	f11 = heapFloat[(r5+82)];
	f12 = heapFloat[(r5+132)];
	f0 = f0+f2;
	f2 = f3+f4;
	f3 = f5+f6;
	f4 = f7+f8;
	f0 = f0-f2;
	f2 = f3-f4;
	f3 = f9+f10;
	f4 = f11+f12;
	f3 = f3-f4;
	f4 = f2*f2;
	f5 = f0*f0;
	f4 = f4+f5;
	f5 = f3*f3;
	f4 = f4+f5;
	if(f4 <=f1) //_LBB582_35
{
break _14;
}
else{
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	r6 = heap32[(r3+5)];
	r7 = heap32[(r3+6)];
	f4 =                         1;
	r6 = r6 >> 2;
	r7 = r7 >> 2;
	f1 = f4/f_g0;
	f5 = heapFloat[(r6+64)];
	f6 = f2*f1;
	f7 = heapFloat[(r6+65)];
	f8 = heapFloat[(r7+64)];
	f9 = heapFloat[(r7+65)];
	f10 = heapFloat[(r6+68)];
	f11 = f0*f1;
	f12 = heapFloat[(r6+69)];
	f13 = heapFloat[(r7+68)];
	f14 = heapFloat[(r7+69)];
	f15 = heapFloat[(r6+66)];
	f16 = heapFloat[(r6+70)];
	f17 = heapFloat[(r7+66)];
	f18 = heapFloat[(r7+70)];
	f5 = f5*f6;
	f10 = f10*f11;
	f19 = heapFloat[(r6+72)];
	f1 = f3*f1;
	f20 = heapFloat[(r6+73)];
	f21 = heapFloat[(r7+72)];
	f22 = heapFloat[(r7+73)];
	f7 = f7*f6;
	f12 = f12*f11;
	f8 = f8*f6;
	f13 = f13*f11;
	f9 = f9*f6;
	f14 = f14*f11;
	f23 = heapFloat[(r6+74)];
	f24 = heapFloat[(r7+74)];
	f5 = f5+f10;
	f10 = f19*f1;
	f7 = f7+f12;
	f12 = f20*f1;
	f15 = f15*f6;
	f16 = f16*f11;
	f8 = f8+f13;
	f13 = f21*f1;
	f9 = f9+f14;
	f14 = f22*f1;
	f17 = f17*f6;
	f18 = f18*f11;
	f5 = f5+f10;
	f7 = f7+f12;
	f8 = f8+f13;
	f9 = f9+f14;
	f10 = f15+f16;
	f12 = f23*f1;
	f13 = f17+f18;
	f14 = f24*f1;
	f10 = f10+f12;
	f12 = f13+f14;
	f5 = f6*f5;
	f7 = f11*f7;
	f6 = f6*f8;
	f8 = f11*f9;
	f5 = f5+f7;
	f7 = f1*f10;
	f6 = f6+f8;
	f1 = f1*f12;
	f5 = f5+f7;
	f1 = f6+f1;
	f1 = f5+f1;
	f5 = heapFloat[(r3+107)];
	f1 = f4/f1;
	f1 = f5*f1;
	f0 = f0*f1;
	f2 = f2*f1;
	f1 = f3*f1;
	f3 = f2*f2;
	f5 = f0*f0;
	f3 = f3+f5;
	f5 = f1*f1;
	f3 = f3+f5;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f3 = f_g0;
	f4 = f4/f3;
	f1 = f1*f4;
	f0 = f0*f4;
	f2 = f2*f4;
	f4 = heapFloat[(r5+84)];
	f5 =                         0;
if(!(f4 ==f5)) //_LBB582_33
{
	r6 = heap32[(r3+5)];
	r6 = r6 >> 2;
	f4 = f3*f5;
	f6 = heapFloat[(r5+126)];
	f7 = heapFloat[(r6+65)];
	f8 = heapFloat[(r6+64)];
	f9 = heapFloat[(r6+69)];
	f10 = heapFloat[(r6+68)];
	f11 = heapFloat[(r6+73)];
	f12 = heapFloat[(r6+72)];
	f13 = heapFloat[(r6+66)];
	f14 = heapFloat[(r6+70)];
	f15 = heapFloat[(r6+74)];
	f6 = f6+f4;
	heapFloat[(r5+126)] = f6;
	f6 = heapFloat[(r5+127)];
	f6 = f6+f4;
	heapFloat[(r5+127)] = f6;
	f6 = heapFloat[(r5+128)];
	f4 = f6+f4;
	heapFloat[(r5+128)] = f4;
	f4 = f8*f2;
	f6 = f7*f0;
	f7 = heapFloat[(r5+134)];
	f4 = f4+f6;
	f6 = f13*f1;
	f4 = f4+f6;
	f6 = f7*f3;
	f7 = heapFloat[(r5+136)];
	f8 = heapFloat[(r5+135)];
	f13 = heapFloat[(r5+130)];
	f4 = f4*f6;
	f6 = f10*f2;
	f9 = f9*f0;
	f6 = f6+f9;
	f9 = f14*f1;
	f4 = f13+f4;
	heapFloat[(r5+130)] = f4;
	f4 = f6+f9;
	f6 = f8*f3;
	f8 = f12*f2;
	f9 = f11*f0;
	f4 = f4*f6;
	f6 = heapFloat[(r5+131)];
	f4 = f6+f4;
	f6 = f8+f9;
	f8 = f15*f1;
	heapFloat[(r5+131)] = f4;
	f4 = f6+f8;
	f6 = f7*f3;
	f4 = f4*f6;
	f6 = heapFloat[(r5+132)];
	f4 = f6+f4;
	heapFloat[(r5+132)] = f4;
}
	f4 = heapFloat[(r4+84)];
	if(f4 ==f5) //_LBB582_35
{
break _14;
}
else{
	f4 = -f3;
	r5 = heap32[(r3+6)];
	r5 = r5 >> 2;
	f5 =                        -0;
	f3 = f3*f5;
	f5 = heapFloat[(r4+126)];
	f6 = heapFloat[(r5+65)];
	f7 = heapFloat[(r5+64)];
	f8 = heapFloat[(r5+69)];
	f9 = heapFloat[(r5+68)];
	f10 = heapFloat[(r5+73)];
	f11 = heapFloat[(r5+72)];
	f12 = heapFloat[(r5+66)];
	f13 = heapFloat[(r5+70)];
	f14 = heapFloat[(r5+74)];
	f5 = f5+f3;
	heapFloat[(r4+126)] = f5;
	f5 = heapFloat[(r4+127)];
	f5 = f5+f3;
	heapFloat[(r4+127)] = f5;
	f5 = heapFloat[(r4+128)];
	f3 = f5+f3;
	heapFloat[(r4+128)] = f3;
	f3 = f7*f2;
	f5 = f6*f0;
	f3 = f3+f5;
	f5 = f12*f1;
	f6 = heapFloat[(r4+134)];
	f3 = f3+f5;
	f5 = f6*f4;
	f6 = heapFloat[(r4+136)];
	f7 = heapFloat[(r4+135)];
	f12 = heapFloat[(r4+130)];
	f3 = f3*f5;
	f5 = f9*f2;
	f8 = f8*f0;
	f5 = f5+f8;
	f8 = f13*f1;
	f3 = f12+f3;
	heapFloat[(r4+130)] = f3;
	f3 = f5+f8;
	f5 = f7*f4;
	f2 = f11*f2;
	f0 = f10*f0;
	f3 = f3*f5;
	f5 = heapFloat[(r4+131)];
	f3 = f5+f3;
	f0 = f2+f0;
	f1 = f14*f1;
	heapFloat[(r4+131)] = f3;
	f0 = f0+f1;
	f1 = f6*f4;
	f0 = f0*f1;
	f1 = heapFloat[(r4+132)];
	f0 = f1+f0;
	heapFloat[(r4+132)] = f0;
}
}
}
}
else{
	r4 = heap32[(r3+5)];
	r5 = sp + -112;
	r4 = r4 >> 2;
	r6 = r5 >> 2;
	heap32[(fp+-28)] = heap32[(r4+1)];
	heap32[(r6+1)] = heap32[(r4+2)];
	heap32[(r6+2)] = heap32[(r4+3)];
	heap32[(r6+3)] = heap32[(r4+4)];
	heap32[(r6+4)] = heap32[(r4+5)];
	heap32[(r6+5)] = heap32[(r4+6)];
	heap32[(r6+6)] = heap32[(r4+7)];
	heap32[(r6+7)] = heap32[(r4+8)];
	heap32[(r6+8)] = heap32[(r4+9)];
	heap32[(r6+9)] = heap32[(r4+10)];
	heap32[(r6+10)] = heap32[(r4+11)];
	heap32[(r6+11)] = heap32[(r4+12)];
	heap32[(r6+12)] = heap32[(r4+13)];
	heap32[(r6+13)] = heap32[(r4+14)];
	heap32[(r6+14)] = heap32[(r4+15)];
	heap32[(r6+15)] = heap32[(r4+16)];
	r4 = heap32[(r3+6)];
	r6 = sp + -176;
	r4 = r4 >> 2;
	r7 = r6 >> 2;
	heap32[(fp+-44)] = heap32[(r4+1)];
	heap32[(r7+1)] = heap32[(r4+2)];
	heap32[(r7+2)] = heap32[(r4+3)];
	heap32[(r7+3)] = heap32[(r4+4)];
	heap32[(r7+4)] = heap32[(r4+5)];
	heap32[(r7+5)] = heap32[(r4+6)];
	heap32[(r7+6)] = heap32[(r4+7)];
	heap32[(r7+7)] = heap32[(r4+8)];
	heap32[(r7+8)] = heap32[(r4+9)];
	heap32[(r7+9)] = heap32[(r4+10)];
	heap32[(r7+10)] = heap32[(r4+11)];
	heap32[(r7+11)] = heap32[(r4+12)];
	heap32[(r7+12)] = heap32[(r4+13)];
	heap32[(r7+13)] = heap32[(r4+14)];
	heap32[(r7+14)] = heap32[(r4+15)];
	r8 = r1 >> 2;
	heap32[(r7+15)] = heap32[(r4+16)];
	f0 = heapFloat[(r8+82)];
	f1 = heapFloat[(r8+132)];
	f2 = heapFloat[(r8+81)];
	f3 = heapFloat[(r8+131)];
	f4 = heapFloat[(r8+80)];
	f5 = heapFloat[(r8+130)];
	r4 = sp + -192;
	f4 = f4+f5;
	r7 = r4 >> 2;
	f2 = f2+f3;
	heapFloat[(fp+-48)] = f4;
	f0 = f0+f1;
	heapFloat[(r7+1)] = f2;
	heapFloat[(r7+2)] = f0;
	r9 = r2 >> 2;
	heap32[(r7+3)] = 0;
	f0 = heapFloat[(r9+82)];
	f1 = heapFloat[(r9+132)];
	f2 = heapFloat[(r9+81)];
	f3 = heapFloat[(r9+131)];
	f4 = heapFloat[(r9+80)];
	f5 = heapFloat[(r9+130)];
	r10 = sp + -208;
	f4 = f4+f5;
	f2 = f2+f3;
	heapFloat[(fp+-52)] = f4;
	r11 = r10 >> 2;
	f0 = f0+f1;
	heapFloat[(r11+1)] = f2;
	heapFloat[(r11+2)] = f0;
	r12 = sp + -272;
	heap32[(r11+3)] = 0;
	r13 = r12 >> 2;
	heap32[(fp+-68)] = 1065353216;
	heap32[(r13+1)] = 0;
	heap32[(r13+2)] = 0;
	heap32[(r13+3)] = 0;
	heap32[(r13+4)] = 0;
	heap32[(r13+5)] = 1065353216;
	heap32[(r13+6)] = 0;
	heap32[(r13+7)] = 0;
	heap32[(r13+8)] = 0;
	heap32[(r13+9)] = 0;
	heap32[(r13+10)] = 1065353216;
	heap32[(r13+11)] = 0;
	heap32[(r13+12)] = 0;
	heap32[(r13+13)] = 0;
	heap32[(r13+14)] = 0;
	heap32[(r13+15)] = 0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	heap32[(g0+3)] = 0;
	heap32[(g0+4)] = r4;
	f0 = heapFloat[(fp+-117)];
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = r12;
	r4 = sp + -336;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
	r12 = r4 >> 2;
	heap32[(fp+-84)] = 1065353216;
	heap32[(r12+1)] = 0;
	heap32[(r12+2)] = 0;
	heap32[(r12+3)] = 0;
	heap32[(r12+4)] = 0;
	heap32[(r12+5)] = 1065353216;
	heap32[(r12+6)] = 0;
	heap32[(r12+7)] = 0;
	heap32[(r12+8)] = 0;
	heap32[(r12+9)] = 0;
	heap32[(r12+10)] = 1065353216;
	heap32[(r12+11)] = 0;
	heap32[(r12+12)] = 0;
	heap32[(r12+13)] = 0;
	heap32[(r12+14)] = 0;
	heap32[(r12+15)] = 0;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	heap32[(g0+3)] = 0;
	heap32[(g0+4)] = r10;
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = r4;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
	f1 = heapFloat[(r3+136)];
	f2 = heapFloat[(r3+137)];
	f3 = heapFloat[(r3+138)];
	f4 = f1*f1;
	f5 = f2*f2;
	f6 = heapFloat[(r3+139)];
	f4 = f4+f5;
	f5 = f3*f3;
	f4 = f4+f5;
	f5 = f6*f6;
	f7 =                         2;
	f4 = f4+f5;
	f4 = f7/f4;
	f5 = f3*f4;
	f7 = f2*f4;
	f4 = f1*f4;
	f3 = f3*f5;
	f8 = f1*f4;
	f9 = f2*f7;
	f0 =                         1;
	heapFloat[(fp+-118)] = f0;
	f10 = f9+f3;
	f3 = f8+f3;
	f11 = f1*f7;
	f12 = f6*f5;
	f10 = f0-f10;
	f0 = heapFloat[(r3+92)];
	heapFloat[(fp+-131)] = f0;
	f13 = f11-f12;
	f0 = heapFloat[(r3+88)];
	heapFloat[(fp+-120)] = f0;
	f11 = f11+f12;
	f12 = heapFloat[(r3+93)];
	heapFloat[(fp+-132)] = f12;
	f0 = heapFloat[(fp+-118)];
	f3 = f0-f3;
	f0 = heapFloat[(r3+89)];
	heapFloat[(fp+-121)] = f0;
	f1 = f1*f5;
	f7 = f6*f7;
	f2 = f2*f5;
	f4 = f6*f4;
	f5 = f1+f7;
	f6 = heapFloat[(r3+96)];
	heapFloat[(fp+-129)] = f6;
	f12 = f2-f4;
	f14 = heapFloat[(r3+97)];
	heapFloat[(fp+-136)] = f14;
	f8 = f8+f9;
	f0 = heapFloat[(fp+-120)];
	f9 = f10*f0;
	f0 = heapFloat[(fp+-121)];
	f15 = f11*f0;
	f0 = heapFloat[(fp+-120)];
	f16 = f13*f0;
	f0 = heapFloat[(fp+-121)];
	f17 = f3*f0;
	f0 = heapFloat[(fp+-131)];
	f18 = f10*f0;
	f19 = heapFloat[(fp+-132)];
	f20 = f11*f19;
	f21 = f13*f0;
	f22 = f3*f19;
	f1 = f1-f7;
	f7 = heapFloat[(r3+94)];
	heapFloat[(fp+-137)] = f7;
	f2 = f2+f4;
	f0 = heapFloat[(r3+90)];
	heapFloat[(fp+-133)] = f0;
	f0 = heapFloat[(fp+-118)];
	f4 = f0-f8;
	f6 = heapFloat[(r3+98)];
	heapFloat[(fp+-130)] = f6;
	f7 = f9+f15;
	f0 = heapFloat[(fp+-133)];
	f8 = f1*f0;
	f9 = f16+f17;
	f14 = f2*f0;
	f0 = heapFloat[(fp+-120)];
	f15 = f5*f0;
	f0 = heapFloat[(fp+-121)];
	f16 = f12*f0;
	f17 = f18+f20;
	f18 = heapFloat[(fp+-137)];
	f19 = f1*f18;
	f20 = f21+f22;
	f21 = f2*f18;
	f0 = heapFloat[(fp+-131)];
	f22 = f5*f0;
	f23 = heapFloat[(fp+-132)];
	f24 = f12*f23;
	f6 = heapFloat[(fp+-129)];
	f10 = f10*f6;
	f25 = heapFloat[(fp+-136)];
	f11 = f11*f25;
	f13 = f13*f6;
	f3 = f3*f25;
	f0 = f7+f8;
	heapFloat[(fp+-124)] = f0;
	f6 = heapFloat[(r3+72)];
	f7 = f17+f19;
	heapFloat[(fp+-134)] = f7;
	f0 = f9+f14;
	heapFloat[(fp+-125)] = f0;
	f7 = heapFloat[(r3+73)];
	f8 = f20+f21;
	heapFloat[(fp+-139)] = f8;
	f9 = f15+f16;
	f0 = heapFloat[(fp+-133)];
	f14 = f4*f0;
	f15 = f22+f24;
	f16 = f4*f18;
	f10 = f10+f11;
	f11 = heapFloat[(fp+-130)];
	f1 = f1*f11;
	f3 = f13+f3;
	f2 = f2*f11;
	f13 = heapFloat[(fp+-129)];
	f5 = f5*f13;
	f12 = f12*f25;
	f17 = heapFloat[(r3+76)];
	f1 = f10+f1;
	heapFloat[(fp+-138)] = f1;
	f10 = heapFloat[(r3+77)];
	f2 = f3+f2;
	heapFloat[(fp+-123)] = f2;
	f0 = heapFloat[(fp+-124)];
	f3 = f6*f0;
	f0 = heapFloat[(fp+-125)];
	f19 = f7*f0;
	f0 = f9+f14;
	heapFloat[(fp+-126)] = f0;
	f1 = heapFloat[(r3+74)];
	f0 = f15+f16;
	heapFloat[(fp+-127)] = f0;
	f2 = heapFloat[(fp+-134)];
	f8 = f6*f2;
	f9 = heapFloat[(fp+-139)];
	f11 = f7*f9;
	f5 = f5+f12;
	f12 = heapFloat[(fp+-130)];
	f4 = f4*f12;
	f13 = heapFloat[(r3+80)];
	f14 = heapFloat[(r3+81)];
	f15 = heapFloat[(r3+78)];
	f4 = f5+f4;
	heapFloat[(fp+-122)] = f4;
	f0 = heapFloat[(fp+-124)];
	f5 = f17*f0;
	f0 = heapFloat[(fp+-125)];
	f16 = f10*f0;
	f18 = f17*f2;
	f20 = f10*f9;
	f3 = f3+f19;
	f0 = heapFloat[(fp+-126)];
	f19 = f1*f0;
	f8 = f8+f11;
	f0 = heapFloat[(fp+-127)];
	f11 = f1*f0;
	f21 = heapFloat[(fp+-138)];
	f22 = f6*f21;
	f2 = heapFloat[(fp+-123)];
	f23 = f7*f2;
	f24 = heapFloat[(r3+82)];
	f0 = heapFloat[(fp+-124)];
	f25 = f13*f0;
	f0 = heapFloat[(fp+-125)];
	f26 = f14*f0;
	f2 = heapFloat[(fp+-134)];
	f27 = f13*f2;
	f28 = f14*f9;
	f5 = f5+f16;
	f0 = heapFloat[(fp+-126)];
	f16 = f15*f0;
	f18 = f18+f20;
	f0 = heapFloat[(fp+-127)];
	f20 = f15*f0;
	f29 = f17*f21;
	f2 = heapFloat[(fp+-123)];
	f30 = f10*f2;
	f3 = f3+f19;
	f19 = heapFloat[(fp+-84)];
	heapFloat[(fp+-140)] = f19;
	f0 = f8+f11;
	heapFloat[(fp+-135)] = f0;
	f2 = heapFloat[(r12+1)];
	heapFloat[(fp+-128)] = f2;
	f4 = f22+f23;
	f8 = heapFloat[(fp+-122)];
	f9 = f1*f8;
	f5 = f5+f16;
	f0 = f18+f20;
	heapFloat[(fp+-119)] = f0;
	f2 = f25+f26;
	f0 = heapFloat[(fp+-126)];
	f8 = f24*f0;
	f11 = f27+f28;
	f0 = heapFloat[(fp+-127)];
	f12 = f24*f0;
	f16 = f13*f21;
	f18 = heapFloat[(fp+-123)];
	f19 = f14*f18;
	f20 = f29+f30;
	f22 = heapFloat[(fp+-122)];
	f23 = f15*f22;
	f25 = heapFloat[(fp+-140)];
	f26 = f3*f25;
	f0 = heapFloat[(fp+-135)];
	f27 = heapFloat[(fp+-128)];
	f28 = f0*f27;
	f4 = f4+f9;
	f9 = heapFloat[(r12+2)];
	f29 = heapFloat[(r3+86)];
	f30 = heapFloat[(r3+85)];
	f0 = heapFloat[(r12+8)];
	heapFloat[(fp+-141)] = f0;
	f2 = f2+f8;
	f8 = heapFloat[(r12+4)];
	f0 = heapFloat[(r12+9)];
	f11 = f11+f12;
	f12 = heapFloat[(r12+5)];
	f20 = f20+f23;
	f18 = heapFloat[(r12+10)];
	heapFloat[(fp+-148)] = f18;
	f21 = heapFloat[(r12+6)];
	f22 = heapFloat[(r3+84)];
	f16 = f16+f19;
	f19 = heapFloat[(fp+-122)];
	f23 = f24*f19;
	f27 = f5*f25;
	f19 = heapFloat[(fp+-119)];
	f18 = heapFloat[(fp+-128)];
	f18 = f19*f18;
	f26 = f26+f28;
	f28 = f4*f9;
	f19 = heapFloat[(r3+102)];
	heapFloat[(fp+-142)] = f19;
	f19 = heapFloat[(r3+101)];
	heapFloat[(fp+-143)] = f19;
	f19 = heapFloat[(r3+100)];
	heapFloat[(fp+-145)] = f19;
	f19 = heapFloat[(r12+14)];
	heapFloat[(fp+-144)] = f19;
	f19 = heapFloat[(r12+13)];
	heapFloat[(fp+-146)] = f19;
	f19 = heapFloat[(r12+12)];
	heapFloat[(fp+-147)] = f19;
	f16 = f16+f23;
	r4 = sp + -400;
	f23 = f2*f25;
	f19 = heapFloat[(fp+-128)];
	f19 = f11*f19;
	f18 = f27+f18;
	f27 = f20*f9;
	f26 = f26+f28;
	f22 = -f22;
	r10 = r4 >> 2;
	f19 = f23+f19;
	f23 = f16*f9;
	f18 = f18+f27;
	heapFloat[(fp+-100)] = f26;
	f6 = f6*f22;
	f17 = f17*f30;
	f7 = f7*f22;
	f10 = f10*f30;
	f26 = f3*f8;
	f27 = heapFloat[(fp+-135)];
	f28 = f27*f12;
	f19 = f19+f23;
	heapFloat[(r10+1)] = f18;
	f18 =                         0;
	heapFloat[(r10+2)] = f19;
	f6 = f6-f17;
	f13 = f13*f29;
	f7 = f7-f10;
	f10 = f14*f29;
	f1 = f1*f22;
	f14 = f15*f30;
	f15 = f5*f8;
	f19 = heapFloat[(fp+-119)];
	f17 = f19*f12;
	f22 = f26+f28;
	f23 = f4*f21;
	f6 = f6-f13;
	f7 = f7-f10;
	f10 = heapFloat[(fp+-120)];
	f10 = f10*f18;
	f13 = heapFloat[(fp+-121)];
	f13 = f13*f18;
	f26 = heapFloat[(fp+-131)];
	f26 = f26*f18;
	f28 = heapFloat[(fp+-132)];
	f28 = f28*f18;
	f1 = f1-f14;
	f14 = f24*f29;
	f24 = f2*f8;
	f29 = f11*f12;
	f15 = f15+f17;
	f17 = f20*f21;
	f22 = f22+f23;
	heap32[(r10+3)] = 0;
	f1 = f1-f14;
	f14 = heapFloat[(fp+-124)];
	f14 = f14*f6;
	f23 = heapFloat[(fp+-125)];
	f23 = f23*f7;
	f10 = f10+f13;
	f13 = heapFloat[(fp+-133)];
	f13 = f13*f18;
	f30 = heapFloat[(fp+-134)];
	f30 = f30*f6;
	f19 = heapFloat[(fp+-139)];
	f19 = f19*f7;
	f26 = f26+f28;
	f28 = heapFloat[(fp+-137)];
	f28 = f28*f18;
	f25 = heapFloat[(fp+-129)];
	f25 = f25*f18;
	f27 = heapFloat[(fp+-136)];
	f27 = f27*f18;
	f24 = f24+f29;
	f29 = f16*f21;
	f15 = f15+f17;
	heapFloat[(r10+4)] = f22;
	f10 = f10+f13;
	f13 = f26+f28;
	f14 = f14+f23;
	f17 = heapFloat[(fp+-126)];
	f17 = f17*f1;
	f19 = f30+f19;
	f22 = heapFloat[(fp+-127)];
	f22 = f22*f1;
	f23 = heapFloat[(fp+-138)];
	f6 = f23*f6;
	f23 = heapFloat[(fp+-123)];
	f7 = f23*f7;
	f23 = f25+f27;
	f25 = heapFloat[(fp+-130)];
	f25 = f25*f18;
	f26 = heapFloat[(fp+-141)];
	f27 = f3*f26;
	f28 = heapFloat[(fp+-135)];
	f30 = f28*f0;
	f24 = f24+f29;
	heapFloat[(r10+5)] = f15;
	f15 = f23+f25;
	heapFloat[(r10+6)] = f24;
	f14 = f14+f17;
	f17 = heapFloat[(fp+-145)];
	f10 = f10+f17;
	f17 = f19+f22;
	f19 = heapFloat[(fp+-143)];
	f13 = f13+f19;
	f6 = f6+f7;
	f19 = heapFloat[(fp+-122)];
	f1 = f19*f1;
	f7 = f5*f26;
	f19 = heapFloat[(fp+-119)];
	f22 = f19*f0;
	f23 = f27+f30;
	f24 = heapFloat[(fp+-148)];
	f25 = f4*f24;
	f13 = f17+f13;
	f10 = f14+f10;
	f1 = f6+f1;
	f19 = heapFloat[(fp+-142)];
	f6 = f15+f19;
	f14 = f2*f26;
	f15 = f11*f0;
	f7 = f7+f22;
	f17 = f20*f24;
	f19 = f23+f25;
	heap32[(r10+7)] = 0;
	f1 = f1+f6;
	f25 = heapFloat[(fp+-140)];
	f6 = f25*f10;
	f22 = heapFloat[(fp+-128)];
	f22 = f22*f13;
	f14 = f14+f15;
	f15 = f16*f24;
	f7 = f7+f17;
	heapFloat[(r10+8)] = f19;
	f8 = f8*f10;
	f12 = f12*f13;
	f6 = f6+f22;
	f9 = f9*f1;
	f14 = f14+f15;
	heapFloat[(r10+9)] = f7;
	f6 = f6+f9;
	heapFloat[(r10+10)] = f14;
	f7 = f26*f10;
	f0 = f0*f13;
	f8 = f8+f12;
	f9 = f21*f1;
	f8 = f8+f9;
	f0 = f7+f0;
	f7 = f24*f1;
	f19 = heapFloat[(fp+-147)];
	f6 = f6+f19;
	heap32[(r10+11)] = 0;
	f0 = f0+f7;
	f19 = heapFloat[(fp+-146)];
	f7 = f8+f19;
	heapFloat[(r10+12)] = f6;
	f19 = heapFloat[(fp+-144)];
	f0 = f0+f19;
	heapFloat[(r10+13)] = f7;
	heapFloat[(r10+14)] = f0;
	heap32[(r10+15)] = 0;
	f0 = heapFloat[(fp+-68)];
	f6 = heapFloat[(r13+1)];
	f7 = heapFloat[(r13+2)];
	f8 = f3*f0;
	f9 = f5*f6;
	f12 = heapFloat[(r13+8)];
	f14 = heapFloat[(r13+9)];
	f15 = heapFloat[(r13+10)];
	f17 = heapFloat[(r13+4)];
	f19 = heapFloat[(r13+5)];
	f21 = heapFloat[(r13+6)];
	f22 = f28*f0;
	f23 = heapFloat[(fp+-119)];
	f24 = f23*f6;
	f8 = f8+f9;
	f9 = f2*f7;
	f25 = heapFloat[(r13+14)];
	f26 = heapFloat[(r13+13)];
	f27 = heapFloat[(r13+12)];
	r10 = sp + -464;
	f29 = f4*f0;
	f30 = f20*f6;
	f22 = f22+f24;
	f24 = f11*f7;
	f8 = f8+f9;
	r12 = r10 >> 2;
	f9 = f29+f30;
	f29 = f16*f7;
	f22 = f22+f24;
	heapFloat[(fp+-116)] = f8;
	f8 = f3*f17;
	f24 = f5*f19;
	f9 = f9+f29;
	heapFloat[(r12+1)] = f22;
	heapFloat[(r12+2)] = f9;
	f9 = f28*f17;
	f22 = f23*f19;
	f8 = f8+f24;
	f24 = f2*f21;
	f29 = f4*f17;
	f30 = f20*f19;
	f9 = f9+f22;
	f22 = f11*f21;
	f8 = f8+f24;
	heap32[(r12+3)] = 0;
	f10 = -f10;
	f24 = f29+f30;
	f29 = f16*f21;
	f9 = f9+f22;
	heapFloat[(r12+4)] = f8;
	f8 = f3*f10;
	f22 = f28*f13;
	f30 = f5*f10;
	f23 = f23*f13;
	f3 = f3*f12;
	f5 = f5*f14;
	f24 = f24+f29;
	heapFloat[(r12+5)] = f9;
	heapFloat[(r12+6)] = f24;
	f8 = f8-f22;
	f9 = f4*f1;
	f22 = f30-f23;
	f23 = f20*f1;
	f10 = f2*f10;
	f13 = f11*f13;
	f24 = f28*f12;
	f28 = heapFloat[(fp+-119)];
	f28 = f28*f14;
	f3 = f3+f5;
	f2 = f2*f15;
	f5 = f8-f9;
	f8 = f22-f23;
	f9 = f10-f13;
	f1 = f16*f1;
	f4 = f4*f12;
	f10 = f20*f14;
	f13 = f24+f28;
	f11 = f11*f15;
	f2 = f3+f2;
	heap32[(r12+7)] = 0;
	f1 = f9-f1;
	f0 = f0*f5;
	f3 = f6*f8;
	f4 = f4+f10;
	f6 = f16*f15;
	f9 = f13+f11;
	heapFloat[(r12+8)] = f2;
	f2 = f17*f5;
	f10 = f19*f8;
	f0 = f0+f3;
	f3 = f7*f1;
	f4 = f4+f6;
	heapFloat[(r12+9)] = f9;
	f0 = f0+f3;
	heapFloat[(r12+10)] = f4;
	f3 = f12*f5;
	f4 = f14*f8;
	f2 = f2+f10;
	f5 = f21*f1;
	f2 = f2+f5;
	f3 = f3+f4;
	f1 = f15*f1;
	f0 = f0+f27;
	heap32[(r12+11)] = 0;
	f1 = f3+f1;
	f2 = f2+f26;
	heapFloat[(r12+12)] = f0;
	f0 = f1+f25;
	heapFloat[(r12+13)] = f2;
	heapFloat[(r12+14)] = f0;
	heap32[(r12+15)] = 0;
	r12 = sp + -16;
	r13 = sp + -20;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r13;
	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
	r4 = r12 >> 2;
	f0 = heapFloat[(r4+2)];
	f1 = heapFloat[(fp+-5)];
	f2 = heapFloat[(r4+1)];
	f3 = heapFloat[(fp+-4)];
	r4 = sp + -40;
	r5 = sp + -44;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
	f2 = f2*f1;
	f5 = heapFloat[(fp+-118)];
	f4 = heapFloat[(fp+-117)];
	f4 = f5/f4;
	f3 = f3*f1;
	r4 = r4 >> 2;
	f0 = f0*f1;
	f1 = f2*f4;
	f2 = heapFloat[(r7+1)];
	f3 = f3*f4;
	f5 = heapFloat[(fp+-48)];
	f1 = f1-f2;
	f2 = f3-f5;
	f0 = f0*f4;
	f3 = heapFloat[(r7+2)];
	f5 = heapFloat[(r4+2)];
	f6 = heapFloat[(fp+-11)];
	f7 = heapFloat[(r4+1)];
	f8 = heapFloat[(fp+-10)];
	f0 = f0-f3;
	f3 = f5*f6;
	f5 = f7*f6;
	f6 = f8*f6;
	f7 = f2*f2;
	f8 = f1*f1;
	f7 = f7+f8;
	f8 = f0*f0;
	f3 = f3*f4;
	f9 = heapFloat[(r11+2)];
	f5 = f5*f4;
	f10 = heapFloat[(r11+1)];
	f4 = f6*f4;
	f6 = heapFloat[(fp+-52)];
	f7 = f7+f8;
	f3 = f3-f9;
	f5 = f5-f10;
	f4 = f4-f6;
	f6 =   1.1920928955078125e-007;
	if(f7 >f6) //_LBB582_11
{
	heapFloat[(g0)] = f7;
	sqrtf(i7);
	r4 = heap32[(r3+5)];
	r4 = r4 >> 2;
	f7 = heapFloat[(fp+-118)];
	f18 = f7/f_g0;
	f7 = f2*f18;
	f8 = heapFloat[(r4+64)];
	f9 = heapFloat[(r4+65)];
	f10 = f1*f18;
	f11 = heapFloat[(r4+68)];
	f12 = heapFloat[(r4+69)];
	f13 = f0*f18;
	f18 = heapFloat[(r4+72)];
	f14 = heapFloat[(r4+73)];
	f15 = heapFloat[(r4+66)];
	f16 = heapFloat[(r4+70)];
	f8 = f8*f7;
	f11 = f11*f10;
	f9 = f9*f7;
	f12 = f12*f10;
	f17 = heapFloat[(r4+74)];
	f8 = f8+f11;
	f18 = f18*f13;
	f9 = f9+f12;
	f11 = f14*f13;
	f12 = f15*f7;
	f14 = f16*f10;
	f18 = f8+f18;
	f8 = f9+f11;
	f9 = f12+f14;
	f11 = f17*f13;
	f9 = f9+f11;
	f18 = f7*f18;
	f8 = f10*f8;
	f18 = f18+f8;
	f8 = f13*f9;
	f18 = f18+f8;
}
	f8 = f4*f4;
	f9 = f5*f5;
	f8 = f8+f9;
	f9 = f3*f3;
	f8 = f8+f9;
	if(f8 >f6) //_LBB582_14
{
	heapFloat[(g0)] = f8;
	sqrtf(i7);
	r4 = heap32[(r3+6)];
	r4 = r4 >> 2;
	f9 = heapFloat[(fp+-118)];
	f8 = f9/f_g0;
	f9 = f4*f8;
	f11 = heapFloat[(r4+64)];
	f12 = heapFloat[(r4+65)];
	f14 = f5*f8;
	f15 = heapFloat[(r4+68)];
	f16 = heapFloat[(r4+69)];
	f17 = f3*f8;
	f8 = heapFloat[(r4+72)];
	f19 = heapFloat[(r4+73)];
	f20 = heapFloat[(r4+66)];
	f21 = heapFloat[(r4+70)];
	f11 = f11*f9;
	f15 = f15*f14;
	f12 = f12*f9;
	f16 = f16*f14;
	f22 = heapFloat[(r4+74)];
	f11 = f11+f15;
	f8 = f8*f17;
	f12 = f12+f16;
	f15 = f19*f17;
	f16 = f20*f9;
	f19 = f21*f14;
	f8 = f11+f8;
	f11 = f12+f15;
	f12 = f16+f19;
	f15 = f22*f17;
	f12 = f12+f15;
	f8 = f9*f8;
	f11 = f14*f11;
	f8 = f8+f11;
	f11 = f17*f12;
	f8 = f8+f11;
}
else{
	f8 =                         0;
}
	f10 = f10*f18;
	f11 = f14*f8;
	f7 = f7*f18;
	f9 = f9*f8;
	f10 = f10+f11;
	f7 = f7+f9;
	f9 = f13*f18;
	f8 = f17*f8;
	f8 = f9+f8;
	f9 = f7*f7;
	f11 = f10*f10;
	f9 = f9+f11;
	f11 = f8*f8;
	f9 = f9+f11;
if(!(f9 <=f6)) //_LBB582_35
{
	heapFloat[(g0)] = f9;
	sqrtf(i7);
	r4 = heap32[(r3+5)];
	r5 = heap32[(r3+6)];
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	f9 = heapFloat[(fp+-118)];
	f6 = f9/f_g0;
	f11 = heapFloat[(r4+64)];
	f7 = f7*f6;
	f12 = heapFloat[(r4+65)];
	f13 = heapFloat[(r5+64)];
	f14 = heapFloat[(r5+65)];
	f15 = heapFloat[(r4+68)];
	f10 = f10*f6;
	f16 = heapFloat[(r4+69)];
	f17 = heapFloat[(r5+68)];
	f18 = heapFloat[(r5+69)];
	f19 = heapFloat[(r4+66)];
	f20 = heapFloat[(r4+70)];
	f21 = heapFloat[(r5+66)];
	f22 = heapFloat[(r5+70)];
	f11 = f11*f7;
	f15 = f15*f10;
	f23 = heapFloat[(r4+72)];
	f6 = f8*f6;
	f8 = heapFloat[(r4+73)];
	f24 = heapFloat[(r5+72)];
	f25 = heapFloat[(r5+73)];
	f12 = f12*f7;
	f16 = f16*f10;
	f13 = f13*f7;
	f17 = f17*f10;
	f14 = f14*f7;
	f18 = f18*f10;
	f26 = heapFloat[(r4+74)];
	f27 = heapFloat[(r5+74)];
	f11 = f11+f15;
	f15 = f23*f6;
	f12 = f12+f16;
	f8 = f8*f6;
	f16 = f19*f7;
	f19 = f20*f10;
	f13 = f13+f17;
	f17 = f24*f6;
	f14 = f14+f18;
	f18 = f25*f6;
	f20 = f21*f7;
	f21 = f22*f10;
	f11 = f11+f15;
	f8 = f12+f8;
	f12 = f13+f17;
	f13 = f14+f18;
	f14 = f16+f19;
	f15 = f26*f6;
	f16 = f20+f21;
	f17 = f27*f6;
	f14 = f14+f15;
	f15 = f16+f17;
	f11 = f7*f11;
	f8 = f10*f8;
	f7 = f7*f12;
	f10 = f10*f13;
	f8 = f11+f8;
	f11 = f6*f14;
	f7 = f7+f10;
	f6 = f6*f15;
	f8 = f8+f11;
	f6 = f7+f6;
	f7 = f8+f6;
	f7 = f7*f7;
	f0 = f0*f8;
	f3 = f3*f6;
	f1 = f1*f8;
	f5 = f5*f6;
	f2 = f2*f8;
	f4 = f4*f6;
	f0 = f0-f3;
	f3 = f9/f7;
	f1 = f1-f5;
	f2 = f2-f4;
	f4 = heapFloat[(r3+140)];
	f0 = f0*f3;
	f1 = f1*f3;
	f2 = f2*f3;
	f3 =                         0;
	if(f4 >=f3) //_LBB582_18
{
	r4 = heapU8[r0+541];
	if(r4 !=0) //_LBB582_20
{
	f4 = f4/f8;
}
	f5 = heapFloat[(r3+141)];
	f6 = heapFloat[(r3+142)];
	f5 = f5+f2;
	f6 = f6+f1;
	f7 = heapFloat[(r3+143)];
	f7 = f7+f0;
	f8 = f5*f5;
	f9 = f6*f6;
	f8 = f8+f9;
	f9 = f7*f7;
	f8 = f8+f9;
	heapFloat[(g0)] = f8;
	sqrtf(i7);
	f9 = f_g0;
	if(f9 >f4) //_LBB582_23
{
	heapFloat[(g0)] = f8;
	sqrtf(i7);
	f1 = heapFloat[(fp+-118)];
	f0 = f1/f_g0;
	f1 = f7*f0;
	f2 = f6*f0;
	f0 = f5*f0;
	f7 = heapFloat[(r3+143)];
	f1 = f1*f4;
	f6 = heapFloat[(r3+142)];
	f2 = f2*f4;
	f5 = heapFloat[(r3+141)];
	f4 = f0*f4;
	f0 = f1-f7;
	f1 = f2-f6;
	f2 = f4-f5;
}
else{
	f5 = heapFloat[(r3+141)];
	f6 = heapFloat[(r3+142)];
	f7 = heapFloat[(r3+143)];
}
	f4 = f5+f2;
	f5 = f6+f1;
	heapFloat[(r3+141)] = f4;
	f4 = f7+f0;
	heapFloat[(r3+142)] = f5;
	heapFloat[(r3+143)] = f4;
}
	f4 = f2*f2;
	f5 = f1*f1;
	f4 = f4+f5;
	f5 = f0*f0;
	f4 = f4+f5;
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	f4 = f_g0;
	f5 = heapFloat[(fp+-118)];
	f5 = f5/f4;
	f0 = f0*f5;
	f1 = f1*f5;
	f2 = f2*f5;
	f5 = heapFloat[(r8+84)];
if(!(f5 ==f3)) //_LBB582_27
{
	r4 = heap32[(r3+5)];
	r4 = r4 >> 2;
	f5 = f4*f3;
	f6 = heapFloat[(r8+126)];
	f7 = heapFloat[(r4+65)];
	f8 = heapFloat[(r4+64)];
	f9 = heapFloat[(r4+69)];
	f10 = heapFloat[(r4+68)];
	f11 = heapFloat[(r4+73)];
	f12 = heapFloat[(r4+72)];
	f13 = heapFloat[(r4+66)];
	f14 = heapFloat[(r4+70)];
	f15 = heapFloat[(r4+74)];
	f6 = f6+f5;
	heapFloat[(r8+126)] = f6;
	f6 = heapFloat[(r8+127)];
	f6 = f6+f5;
	heapFloat[(r8+127)] = f6;
	f6 = heapFloat[(r8+128)];
	f5 = f6+f5;
	heapFloat[(r8+128)] = f5;
	f5 = f8*f2;
	f6 = f7*f1;
	f7 = heapFloat[(r8+134)];
	f5 = f5+f6;
	f6 = f13*f0;
	f5 = f5+f6;
	f6 = f7*f4;
	f7 = heapFloat[(r8+136)];
	f8 = heapFloat[(r8+135)];
	f13 = heapFloat[(r8+130)];
	f5 = f5*f6;
	f6 = f10*f2;
	f9 = f9*f1;
	f6 = f6+f9;
	f9 = f14*f0;
	f5 = f13+f5;
	heapFloat[(r8+130)] = f5;
	f5 = f6+f9;
	f6 = f8*f4;
	f8 = f12*f2;
	f9 = f11*f1;
	f5 = f5*f6;
	f6 = heapFloat[(r8+131)];
	f5 = f6+f5;
	f6 = f8+f9;
	f8 = f15*f0;
	heapFloat[(r8+131)] = f5;
	f5 = f6+f8;
	f6 = f7*f4;
	f5 = f5*f6;
	f6 = heapFloat[(r8+132)];
	f5 = f6+f5;
	heapFloat[(r8+132)] = f5;
}
	f5 = heapFloat[(r9+84)];
if(!(f5 ==f3)) //_LBB582_35
{
	f3 = -f4;
	r4 = heap32[(r3+6)];
	r4 = r4 >> 2;
	f5 =                        -0;
	f4 = f4*f5;
	f5 = heapFloat[(r9+126)];
	f6 = heapFloat[(r4+65)];
	f7 = heapFloat[(r4+64)];
	f8 = heapFloat[(r4+69)];
	f9 = heapFloat[(r4+68)];
	f10 = heapFloat[(r4+73)];
	f11 = heapFloat[(r4+72)];
	f12 = heapFloat[(r4+66)];
	f13 = heapFloat[(r4+70)];
	f14 = heapFloat[(r4+74)];
	f5 = f5+f4;
	heapFloat[(r9+126)] = f5;
	f5 = heapFloat[(r9+127)];
	f5 = f5+f4;
	heapFloat[(r9+127)] = f5;
	f5 = heapFloat[(r9+128)];
	f4 = f5+f4;
	heapFloat[(r9+128)] = f4;
	f4 = f7*f2;
	f5 = f6*f1;
	f4 = f4+f5;
	f5 = f12*f0;
	f6 = heapFloat[(r9+134)];
	f4 = f4+f5;
	f5 = f6*f3;
	f6 = heapFloat[(r9+136)];
	f7 = heapFloat[(r9+135)];
	f12 = heapFloat[(r9+130)];
	f4 = f4*f5;
	f5 = f9*f2;
	f8 = f8*f1;
	f5 = f5+f8;
	f8 = f13*f0;
	f4 = f12+f4;
	heapFloat[(r9+130)] = f4;
	f4 = f5+f8;
	f5 = f7*f3;
	f2 = f11*f2;
	f1 = f10*f1;
	f4 = f4*f5;
	f5 = heapFloat[(r9+131)];
	f4 = f5+f4;
	f1 = f2+f1;
	f0 = f14*f0;
	heapFloat[(r9+131)] = f4;
	f0 = f1+f0;
	f1 = f6*f3;
	f0 = f0*f1;
	f1 = heapFloat[(r9+132)];
	f0 = f1+f0;
	heapFloat[(r9+132)] = f0;
}
}
}
} while(0);
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	f0 = heapFloat[(r1+82)];
	f1 = heapFloat[(r1+132)];
	f2 = heapFloat[(r1+81)];
	f3 = heapFloat[(r1+131)];
	f4 = heapFloat[(r1+80)];
	f5 = heapFloat[(r1+130)];
	f6 = heapFloat[(r2+82)];
	f7 = heapFloat[(r2+132)];
	f8 = heapFloat[(r2+81)];
	f9 = heapFloat[(r2+131)];
	f10 = heapFloat[(r2+80)];
	f11 = heapFloat[(r2+130)];
	f0 = f0+f1;
	f1 = f2+f3;
	f2 = f4+f5;
	f3 = f6+f7;
	f4 = f8+f9;
	f5 = f10+f11;
	r4 = heapU8[r0+514];
if(!(r4 ==0)) //_LBB582_43
{
	f6 = heapFloat[(r3+129)];
	f7 = heapFloat[(r3+123)];
	f8 = heapFloat[(r3+112)];
	f9 = f5-f2;
	f10 = heapFloat[(r3+113)];
	f11 = f4-f1;
	f12 = heapFloat[(r3+114)];
	f13 = f3-f0;
	f9 = f9*f8;
	f11 = f11*f10;
	f7 = f6*f7;
	f14 = heapFloat[(r3+105)];
	f9 = f9+f11;
	f11 = f13*f12;
	f7 = f7*f14;
	f9 = f9+f11;
	f11 = heapFloat[(fp+-117)];
	f7 = f7/f11;
	f11 =                         0;
	if(f9 >f11) //_LBB582_38
{
	f6 = f6*f9;
	f9 = heapFloat[(r3+106)];
	f6 = f6*f9;
	f7 = f6+f7;
}
	f6 = heapFloat[(r3+120)];
	f9 = heapFloat[(r3+126)];
	f6 = f6*f7;
	f6 = f9+f6;
	f6 = f6 > f11 ? f6 : f11;
	heapFloat[(r3+126)] = f6;
	f6 = f6-f9;
	f7 = f8*f6;
	f8 = heapFloat[(r3+131)];
	f9 = f10*f6;
	f10 = heapFloat[(r3+132)];
	f13 = heapFloat[(r3+133)];
	f6 = f12*f6;
	f12 = f7*f8;
	f14 = f9*f10;
	f12 = f12+f14;
	f14 = f6*f13;
	f12 = f12+f14;
	f10 = f10*f12;
	f8 = f8*f12;
	f12 = f13*f12;
	f9 = f9-f10;
	f7 = f7-f8;
	f6 = f6-f12;
	f8 = f7*f7;
	f10 = f9*f9;
	f8 = f8+f10;
	f10 = f6*f6;
	f8 = f8+f10;
	heapFloat[(g0)] = f8;
	sqrtf(i7);
	f8 = f_g0;
	f10 =                         1;
	f10 = f10/f8;
	f6 = f6*f10;
	f9 = f9*f10;
	f7 = f7*f10;
	f10 = heapFloat[(r1+84)];
if(!(f10 ==f11)) //_LBB582_41
{
	r4 = heap32[(r3+5)];
	r4 = r4 >> 2;
	f10 = f8*f11;
	f12 = heapFloat[(r1+126)];
	f13 = heapFloat[(r4+65)];
	f14 = heapFloat[(r4+64)];
	f15 = heapFloat[(r4+69)];
	f16 = heapFloat[(r4+68)];
	f17 = heapFloat[(r4+73)];
	f18 = heapFloat[(r4+72)];
	f19 = heapFloat[(r4+66)];
	f20 = heapFloat[(r4+70)];
	f21 = heapFloat[(r4+74)];
	f12 = f12+f10;
	heapFloat[(r1+126)] = f12;
	f12 = heapFloat[(r1+127)];
	f12 = f12+f10;
	heapFloat[(r1+127)] = f12;
	f12 = heapFloat[(r1+128)];
	f10 = f12+f10;
	heapFloat[(r1+128)] = f10;
	f10 = f14*f7;
	f12 = f13*f9;
	f13 = heapFloat[(r1+134)];
	f10 = f10+f12;
	f12 = f19*f6;
	f10 = f10+f12;
	f12 = f13*f8;
	f13 = heapFloat[(r1+136)];
	f14 = heapFloat[(r1+135)];
	f19 = heapFloat[(r1+130)];
	f10 = f10*f12;
	f12 = f16*f7;
	f15 = f15*f9;
	f12 = f12+f15;
	f15 = f20*f6;
	f10 = f19+f10;
	heapFloat[(r1+130)] = f10;
	f10 = f12+f15;
	f12 = f14*f8;
	f14 = f18*f7;
	f15 = f17*f9;
	f10 = f10*f12;
	f12 = heapFloat[(r1+131)];
	f10 = f12+f10;
	f12 = f14+f15;
	f14 = f21*f6;
	heapFloat[(r1+131)] = f10;
	f10 = f12+f14;
	f12 = f13*f8;
	f10 = f10*f12;
	f12 = heapFloat[(r1+132)];
	f10 = f12+f10;
	heapFloat[(r1+132)] = f10;
}
	f10 = heapFloat[(r2+84)];
if(!(f10 ==f11)) //_LBB582_43
{
	f10 = -f8;
	r4 = heap32[(r3+6)];
	r4 = r4 >> 2;
	f11 =                        -0;
	f8 = f8*f11;
	f11 = heapFloat[(r2+126)];
	f12 = heapFloat[(r4+65)];
	f13 = heapFloat[(r4+64)];
	f14 = heapFloat[(r4+69)];
	f15 = heapFloat[(r4+68)];
	f16 = heapFloat[(r4+73)];
	f17 = heapFloat[(r4+72)];
	f18 = heapFloat[(r4+66)];
	f19 = heapFloat[(r4+70)];
	f20 = heapFloat[(r4+74)];
	f11 = f11+f8;
	heapFloat[(r2+126)] = f11;
	f11 = heapFloat[(r2+127)];
	f11 = f11+f8;
	heapFloat[(r2+127)] = f11;
	f11 = heapFloat[(r2+128)];
	f8 = f11+f8;
	heapFloat[(r2+128)] = f8;
	f8 = f13*f7;
	f11 = f12*f9;
	f8 = f8+f11;
	f11 = f18*f6;
	f12 = heapFloat[(r2+134)];
	f8 = f8+f11;
	f11 = f12*f10;
	f12 = heapFloat[(r2+136)];
	f13 = heapFloat[(r2+135)];
	f18 = heapFloat[(r2+130)];
	f8 = f8*f11;
	f11 = f15*f7;
	f14 = f14*f9;
	f11 = f11+f14;
	f14 = f19*f6;
	f8 = f18+f8;
	heapFloat[(r2+130)] = f8;
	f8 = f11+f14;
	f11 = f13*f10;
	f7 = f17*f7;
	f9 = f16*f9;
	f8 = f8*f11;
	f11 = heapFloat[(r2+131)];
	f8 = f11+f8;
	f7 = f7+f9;
	f6 = f20*f6;
	heapFloat[(r2+131)] = f8;
	f6 = f7+f6;
	f7 = f12*f10;
	f6 = f6*f7;
	f7 = heapFloat[(r2+132)];
	f6 = f7+f6;
	heapFloat[(r2+132)] = f6;
}
}
	r0 = heapU8[r0+513];
if(!(r0 ==0)) //_LBB582_52
{
	f6 = heapFloat[(r3+130)];
	f7 = heapFloat[(r3+124)];
	f8 = heapFloat[(r3+116)];
	f2 = f5-f2;
	f5 = heapFloat[(r3+117)];
	f1 = f4-f1;
	f4 = heapFloat[(r3+118)];
	f0 = f3-f0;
	f2 = f2*f8;
	f1 = f1*f5;
	f3 = f6*f7;
	f7 = heapFloat[(r3+105)];
	f1 = f2+f1;
	f0 = f0*f4;
	f2 = f3*f7;
	f0 = f1+f0;
	f1 = heapFloat[(fp+-117)];
	f1 = f2/f1;
	f2 =                         0;
	if(f0 >f2) //_LBB582_46
{
	f0 = f6*f0;
	f3 = heapFloat[(r3+106)];
	f0 = f0*f3;
	f1 = f0+f1;
}
	f0 = heapFloat[(r3+121)];
	f3 = heapFloat[(r3+127)];
	f0 = f0*f1;
	f0 = f3+f0;
	f0 = f0 > f2 ? f0 : f2;
	heapFloat[(r3+127)] = f0;
	f0 = f0-f3;
	f1 = heapFloat[(r1+84)];
	if(f1 !=f2) //_LBB582_49
{
	r0 = heap32[(r3+5)];
	r0 = r0 >> 2;
	f1 = f0*f2;
	f3 = heapFloat[(r1+126)];
	f6 = heapFloat[(r0+65)];
	f7 = heapFloat[(r0+64)];
	f9 = heapFloat[(r0+69)];
	f10 = heapFloat[(r0+68)];
	f11 = heapFloat[(r0+73)];
	f12 = heapFloat[(r0+72)];
	f13 = heapFloat[(r0+66)];
	f14 = heapFloat[(r0+70)];
	f15 = heapFloat[(r0+74)];
	f3 = f3+f1;
	heapFloat[(r1+126)] = f3;
	f3 = heapFloat[(r1+127)];
	f3 = f3+f1;
	heapFloat[(r1+127)] = f3;
	f3 = heapFloat[(r1+128)];
	f1 = f3+f1;
	heapFloat[(r1+128)] = f1;
	f1 = f7*f8;
	f3 = f6*f5;
	f6 = heapFloat[(r1+134)];
	f1 = f1+f3;
	f3 = f13*f4;
	f1 = f1+f3;
	f3 = f6*f0;
	f6 = heapFloat[(r1+136)];
	f7 = heapFloat[(r1+135)];
	f13 = heapFloat[(r1+130)];
	f1 = f1*f3;
	f3 = f10*f8;
	f9 = f9*f5;
	f3 = f3+f9;
	f9 = f14*f4;
	f1 = f13+f1;
	heapFloat[(r1+130)] = f1;
	f1 = f3+f9;
	f3 = f7*f0;
	f8 = f12*f8;
	f5 = f11*f5;
	f1 = f1*f3;
	f3 = heapFloat[(r1+131)];
	f1 = f3+f1;
	f5 = f8+f5;
	f4 = f15*f4;
	heapFloat[(r1+131)] = f1;
	f4 = f5+f4;
	f5 = f6*f0;
	f4 = f4*f5;
	f5 = heapFloat[(r1+132)];
	f4 = f5+f4;
	heapFloat[(r1+132)] = f4;
	f8 = heapFloat[(r3+116)];
	f5 = heapFloat[(r3+117)];
	f4 = heapFloat[(r3+118)];
}
	f1 = heapFloat[(r2+84)];
if(!(f1 ==f2)) //_LBB582_52
{
	f1 = -f0;
	r0 = heap32[(r3+6)];
	r0 = r0 >> 2;
	f2 =                        -0;
	f0 = f0*f2;
	f2 = heapFloat[(r2+126)];
	f3 = heapFloat[(r0+65)];
	f6 = heapFloat[(r0+64)];
	f7 = heapFloat[(r0+69)];
	f9 = heapFloat[(r0+68)];
	f10 = heapFloat[(r0+73)];
	f11 = heapFloat[(r0+72)];
	f12 = heapFloat[(r0+66)];
	f13 = heapFloat[(r0+70)];
	f14 = heapFloat[(r0+74)];
	f2 = f2+f0;
	heapFloat[(r2+126)] = f2;
	f2 = heapFloat[(r2+127)];
	f2 = f2+f0;
	heapFloat[(r2+127)] = f2;
	f2 = heapFloat[(r2+128)];
	f0 = f2+f0;
	heapFloat[(r2+128)] = f0;
	f0 = f6*f8;
	f2 = f3*f5;
	f0 = f0+f2;
	f2 = f12*f4;
	f3 = heapFloat[(r2+134)];
	f0 = f0+f2;
	f2 = f3*f1;
	f3 = heapFloat[(r2+136)];
	f6 = heapFloat[(r2+135)];
	f12 = heapFloat[(r2+130)];
	f0 = f0*f2;
	f2 = f9*f8;
	f7 = f7*f5;
	f2 = f2+f7;
	f7 = f13*f4;
	f0 = f12+f0;
	heapFloat[(r2+130)] = f0;
	f0 = f2+f7;
	f2 = f6*f1;
	f6 = f11*f8;
	f5 = f10*f5;
	f0 = f0*f2;
	f2 = heapFloat[(r2+131)];
	f0 = f2+f0;
	f2 = f6+f5;
	f4 = f14*f4;
	heapFloat[(r2+131)] = f0;
	f0 = f2+f4;
	f1 = f3*f1;
	f0 = f0*f1;
	f1 = heapFloat[(r2+132)];
	f0 = f1+f0;
	heapFloat[(r2+132)] = f0;
}
}
}
	return;
}

function _ZN21btConeTwistConstraint8setParamEifi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	f0 = heapFloat[(fp+2)];
	r2 = heap32[(fp+3)];
	r3 = (r0 + -3)|0;
	if(uint(r3) <uint(2)) //_LBB583_5
{
	if(uint(r2) >uint(2)) //_LBB583_7
{
	r0 = r1 >> 2;
	heapFloat[(r0+148)] = f0;
	r1 = heap32[(r0+145)];
	r1 = r1 | 4;
	heap32[(r0+145)] = r1;
	return;
}
else{
	r1 = r1 >> 2;
	heapFloat[(r1+146)] = f0;
	r0 = heap32[(r1+145)];
	r0 = r0 | 1;
	heap32[(r1+145)] = r0;
	return;
}
}
else{
	r0 = (r0 + -1)|0;
	if(uint(r0) >uint(1)) //_LBB583_8
{
	r0 = _2E_str10;
	r1 = _2E_str24;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1066;
	_assert(i7);
}
else{
	if(uint(r2) >uint(2)) //_LBB583_4
{
	r1 = r1 >> 2;
	heapFloat[(r1+105)] = f0;
	return;
}
else{
	r1 = r1 >> 2;
	heapFloat[(r1+147)] = f0;
	r2 = heap32[(r1+145)];
	r2 = r2 | 2;
	heap32[(r1+145)] = r2;
	return;
}
}
}
}

function _ZNK21btConeTwistConstraint8getParamEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+2)];
	r3 = (r0 + -3)|0;
	if(uint(r3) <uint(2)) //_LBB584_9
{
	if(uint(r2) >uint(2)) //_LBB584_13
{
	r0 = (r2 + -3)|0;
	if(uint(r0) >uint(2)) //_LBB584_17
{
	r1 = _2E_str10;
	r0 = _2E_str24;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 1107;
	_assert(i7);
}
else{
	r0 = heapU8[r1+580];
	r0 = r0 & 4;
	if(r0 !=0) //_LBB584_16
{
	r1 = (r1 + 592)|0;
}
else{
	r1 = _2E_str543;
	r0 = _2E_str24;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 1102;
	_assert(i7);
}
}
}
else{
	r2 = heapU8[r1+580];
	r2 = r2 & 1;
	if(r2 != 0) //_LBB584_12
{
	r1 = (r1 + 584)|0;
}
else{
	r1 = _2E_str442;
	r2 = _2E_str24;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 1097;
	_assert(i7);
}
}
}
else{
	r0 = (r0 + -1)|0;
	if(uint(r0) >uint(1)) //_LBB584_18
{
	r1 = _2E_str10;
	r0 = _2E_str24;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 1111;
	_assert(i7);
}
else{
	if(uint(r2) >uint(2)) //_LBB584_6
{
	r2 = (r2 + -3)|0;
	if(uint(r2) >uint(2)) //_LBB584_8
{
	r1 = _2E_str10;
	r2 = _2E_str24;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 1090;
	_assert(i7);
}
else{
	r1 = (r1 + 420)|0;
}
}
else{
	r2 = heapU8[r1+580];
	r2 = r2 & 2;
	if(r2 !=0) //_LBB584_5
{
	r1 = (r1 + 588)|0;
}
else{
	r1 = _2E_str1340;
	r2 = _2E_str24;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 1081;
	_assert(i7);
}
}
}
}
	r0 = r1 >> 2;
	f0 = heapFloat[(r0)];
	f_g0 = f0;
	return;
}

function _ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+5)];
	r1 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	f0 = heapFloat[(r0)];
	heapFloat[(r1)] = f0;
	f1 = heapFloat[(r0+1)];
	heapFloat[(r1+1)] = f1;
	f2 = heapFloat[(r0+2)];
	r2 = heap32[(fp+3)];
	heapFloat[(r1+2)] = f2;
	r2 = r2 >> 2;
	heap32[(r1+3)] = heap32[(r0+3)];
	f3 = heapFloat[(r2)];
	f4 = heapFloat[(r2+1)];
	f5 = heapFloat[(r2+2)];
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	f6 = f4*f2;
	f7 = f5*f1;
	f5 = f5*f0;
	f8 = f3*f2;
	f6 = f6-f7;
	f7 = heapFloat[(r0)];
	f5 = f5-f8;
	f8 = heapFloat[(r0+1)];
	f3 = f3*f1;
	f4 = f4*f0;
	f9 = heapFloat[(r0+4)];
	f10 = heapFloat[(r0+5)];
	f7 = f7*f6;
	f8 = f8*f5;
	f3 = f3-f4;
	f4 = heapFloat[(r0+2)];
	f11 = heapFloat[(r0+8)];
	f12 = heapFloat[(r0+9)];
	f13 = heapFloat[(r0+10)];
	f14 = heapFloat[(r0+6)];
	f9 = f9*f6;
	f10 = f10*f5;
	f7 = f7+f8;
	f4 = f4*f3;
	f6 = f11*f6;
	f5 = f12*f5;
	f8 = f9+f10;
	f9 = f14*f3;
	f4 = f7+f4;
	f5 = f6+f5;
	f3 = f13*f3;
	f6 = f8+f9;
	heapFloat[(r1+4)] = f4;
	f3 = f5+f3;
	heapFloat[(r1+5)] = f6;
	r0 = heap32[(fp+4)];
	heapFloat[(r1+6)] = f3;
	r0 = r0 >> 2;
	heap32[(r1+7)] = 0;
	f5 = heapFloat[(r0)];
	f7 = heapFloat[(r0+1)];
	f8 = heapFloat[(r0+2)];
	r0 = heap32[(fp+2)];
	r0 = r0 >> 2;
	f9 = f8*f1;
	f10 = f7*f2;
	f2 = f5*f2;
	f8 = f8*f0;
	f9 = f9-f10;
	f10 = heapFloat[(r0)];
	f2 = f2-f8;
	f8 = heapFloat[(r0+1)];
	f0 = f7*f0;
	f1 = f5*f1;
	f5 = heapFloat[(r0+4)];
	f7 = heapFloat[(r0+5)];
	f10 = f10*f9;
	f8 = f8*f2;
	f0 = f0-f1;
	f1 = heapFloat[(r0+2)];
	f11 = heapFloat[(r0+8)];
	f12 = heapFloat[(r0+9)];
	f13 = heapFloat[(r0+10)];
	f14 = heapFloat[(r0+6)];
	f5 = f5*f9;
	f7 = f7*f2;
	f8 = f10+f8;
	f1 = f1*f0;
	f9 = f11*f9;
	f2 = f12*f2;
	f5 = f5+f7;
	f7 = f14*f0;
	f1 = f8+f1;
	f2 = f9+f2;
	f0 = f13*f0;
	f5 = f5+f7;
	heapFloat[(r1+8)] = f1;
	f0 = f2+f0;
	heapFloat[(r1+9)] = f5;
	r0 = heap32[(fp+6)];
	heapFloat[(r1+10)] = f0;
	r0 = r0 >> 2;
	heap32[(r1+11)] = 0;
	f2 = heapFloat[(r0+2)];
	f7 = heapFloat[(r0+1)];
	f8 = heapFloat[(r0)];
	f8 = f8*f4;
	f7 = f7*f6;
	heapFloat[(r1+12)] = f8;
	f2 = f2*f3;
	heapFloat[(r1+13)] = f7;
	r0 = heap32[(fp+8)];
	heapFloat[(r1+14)] = f2;
	r0 = r0 >> 2;
	heap32[(r1+15)] = 0;
	f9 = heapFloat[(r0+2)];
	f10 = heapFloat[(r0+1)];
	f11 = heapFloat[(r0)];
	f4 = f8*f4;
	f6 = f7*f6;
	f7 = f10*f5;
	f8 = f11*f1;
	f4 = f4+f6;
	f2 = f2*f3;
	f3 = f9*f0;
	heapFloat[(r1+16)] = f8;
	f2 = f4+f2;
	f4 = heapFloat[(fp+7)];
	f1 = f8*f1;
	f5 = f7*f5;
	heapFloat[(r1+17)] = f7;
	f2 = f2+f4;
	f4 = heapFloat[(fp+9)];
	f1 = f1+f5;
	f0 = f3*f0;
	heapFloat[(r1+18)] = f3;
	f2 = f2+f4;
	f0 = f1+f0;
	f0 = f2+f0;
	heap32[(r1+19)] = 0;
	f1 =                         0;
	heapFloat[(r1+20)] = f0;
	if(f0 >f1) //_LBB585_2
{
	return;
}
else{
	r0 = _2E_str846;
	r1 = _2E_str947;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 53;
	_assert(i7);
}
}

function _ZNK21btConeTwistConstraint16GetPointForAngleEff(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	f0 = heapFloat[(fp+2)];
	heapFloat[(g0)] = f0;
	cosf(i7);
	f1 = f_g0;
	r0 = heap32[(fp+1)];
	heapFloat[(g0)] = f0;
	sinf(i7);
	f0 = f_g0;
	r0 = r0 >> 2;
	r1 = heap32[(fp)];
	f2 = heapFloat[(fp+3)];
	f3 = f1; //fstod f1, f3
	f3 = Math.abs(f3);
	f4 =   1.1920928955078125e-007;
	if(f3 >f4) //_LBB586_2
{
	f3 = heapFloat[(r0+109)];
	f4 = heapFloat[(r0+108)];
	f5 = f0*f0;
	f6 = f1*f1;
	f5 = f5/f6;
	f4 = f4*f4;
	f6 =                         1;
	f3 = f3*f3;
	f4 = f5/f4;
	f3 = f6/f3;
	f5 = f5+f6;
	f3 = f4+f3;
	f3 = f5/f3;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f3 = f_g0;
}
else{
	f3 = heapFloat[(r0+108)];
}
	f4 =                         0;
	f5 = f1*f1;
	f5 = f5+f4;
	f6 = f0*f0;
	f5 = f5+f6;
	heapFloat[(g0)] = f5;
	sqrtf(i7);
	f5 = f_g0;
	if(f5 !=f4) //_LBB586_5
{
	f6 =                       0.5;
	f3 = f3*f6;
	heapFloat[(g0)] = f3;
	sinf(i7);
	f5 = f_g0/f5;
	f6 = f5*f4;
	heapFloat[(g0)] = f3;
	f0 = -f0;
	f1 = f1*f5;
	cosf(i7);
	f7 = -f6;
	f0 = f5*f0;
	f5 = f_g0*f2;
	f8 = f1*f4;
	f7 = f2*f7;
	f5 = f5+f8;
	f9 = f0*f4;
	f7 = f7-f8;
	f8 = f0*f2;
	f10 = f_g0*f4;
	f5 = f5-f9;
	f7 = f7-f9;
	f4 = f6*f4;
	f8 = f10+f8;
	f8 = f8-f4;
	f9 = f5*f_g0;
	f11 = f7*f6;
	f4 = f10+f4;
	f2 = f1*f2;
	f2 = f4-f2;
	f4 = f8*f_g0;
	f10 = f7*f1;
	f9 = f9-f11;
	f11 = f8*f0;
	f3 = f2*f_g0;
	f7 = f7*f0;
	f4 = f4-f10;
	f10 = f2*f6;
	f9 = f9-f11;
	f2 = f2*f1;
	r0 = r1 >> 2;
	f2 = f9+f2;
	f3 = f3-f7;
	f1 = f5*f1;
	f4 = f4-f10;
	f0 = f5*f0;
	f1 = f3-f1;
	f3 = f8*f6;
	f0 = f4+f0;
	heapFloat[(r0)] = f2;
	f1 = f1+f3;
	heapFloat[(r0+1)] = f0;
	heapFloat[(r0+2)] = f1;
	heap32[(r0+3)] = 0;
	return;
}
else{
	r1 = _2E_str115;
	r0 = _2E_str685;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 61;
	_assert(i7);
}
}

function _ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -384;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	heap32[(r1+123)] = 0;
	r2 = 0;
	heap32[(r1+122)] = 0;
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	heap8[r0+513] = r2;
	heap8[r0+514] = r2;
	r2 = heapU8[r0+540];
	if(r2 ==0) //_LBB587_7
{
__label__ = 6;
}
else{
	r2 = heapU8[r0+515];
	if(r2 !=0) //_LBB587_7
{
__label__ = 6;
}
else{
	f0 = heapFloat[(r1+136)];
	f1 = heapFloat[(r1+137)];
	f2 = heapFloat[(r1+138)];
	f3 = f0*f0;
	f4 = f1*f1;
	f5 = heapFloat[(r1+139)];
	f3 = f3+f4;
	f4 = f2*f2;
	f3 = f3+f4;
	f4 = f5*f5;
	f6 =                         2;
	f3 = f3+f4;
	r4 = r4 >> 2;
	f3 = f6/f3;
	f4 = f2*f3;
	f6 = f1*f3;
	f3 = f0*f3;
	f7 = heapFloat[(r4)];
	heapFloat[(fp+-48)] = f7;
	f7 = heapFloat[(r1+89)];
	heapFloat[(fp+-64)] = f7;
	f7 = heapFloat[(r1+88)];
	heapFloat[(fp+-66)] = f7;
	f8 = heapFloat[(r4+1)];
	heapFloat[(fp+-49)] = f8;
	f9 = heapFloat[(r1+93)];
	heapFloat[(fp+-65)] = f9;
	f7 = heapFloat[(r1+92)];
	heapFloat[(fp+-67)] = f7;
	f8 = heapFloat[(r1+90)];
	heapFloat[(fp+-54)] = f8;
	f9 = heapFloat[(r1+94)];
	heapFloat[(fp+-55)] = f9;
	f2 = f2*f4;
	f10 = f0*f3;
	f11 = f1*f6;
	f12 = heapFloat[(fp+-66)];
	f7 = heapFloat[(fp+-48)];
	f13 = f12*f7;
	f7 = heapFloat[(fp+-67)];
	f8 = heapFloat[(fp+-49)];
	f14 = f7*f8;
	f15 = heapFloat[(fp+-64)];
	f7 = heapFloat[(fp+-48)];
	f16 = f15*f7;
	f9 = heapFloat[(fp+-65)];
	f17 = f9*f8;
	f18 = heapFloat[(r4+2)];
	heapFloat[(fp+-83)] = f18;
	f19 = heapFloat[(r1+97)];
	heapFloat[(fp+-80)] = f19;
	f20 = heapFloat[(r1+96)];
	heapFloat[(fp+-81)] = f20;
	r3 = r3 >> 2;
	f21 = heapFloat[(r1+98)];
	heapFloat[(fp+-77)] = f21;
	f22 = f11+f2;
	f23 =                         1;
	heapFloat[(fp+-76)] = f23;
	f2 = f10+f2;
	f24 = f0*f6;
	f25 = f5*f4;
	f13 = f13+f14;
	f14 = f20*f18;
	f16 = f16+f17;
	f17 = f19*f18;
	f8 = heapFloat[(fp+-54)];
	f26 = f8*f7;
	f9 = heapFloat[(fp+-55)];
	f8 = heapFloat[(fp+-49)];
	f27 = f9*f8;
	f22 = f23-f22;
	heapFloat[(fp+-78)] = f22;
	f13 = f13+f14;
	heapFloat[(fp+-50)] = f13;
	f14 = f24-f25;
	heapFloat[(fp+-52)] = f14;
	f24 = f24+f25;
	heapFloat[(fp+-79)] = f24;
	f16 = f16+f17;
	heapFloat[(fp+-51)] = f16;
	f2 = f23-f2;
	heapFloat[(fp+-53)] = f2;
	f0 = f0*f4;
	f6 = f5*f6;
	f1 = f1*f4;
	f3 = f5*f3;
	f4 = f26+f27;
	f5 = f21*f18;
	f2 = heapFloat[(r3)];
	heapFloat[(fp+-40)] = f2;
	f7 = heapFloat[(r1+73)];
	f8 = heapFloat[(r1+72)];
	f2 = heapFloat[(r3+1)];
	heapFloat[(fp+-41)] = f2;
	f9 = heapFloat[(r1+77)];
	f12 = heapFloat[(r1+76)];
	f13 = heapFloat[(r4+4)];
	heapFloat[(fp+-59)] = f13;
	f14 = heapFloat[(r4+5)];
	heapFloat[(fp+-60)] = f14;
	f15 = heapFloat[(r3+4)];
	heapFloat[(fp+-68)] = f15;
	f16 = heapFloat[(r3+5)];
	heapFloat[(fp+-69)] = f16;
	f17 = heapFloat[(r1+74)];
	f18 = heapFloat[(r1+78)];
	f19 = f0+f6;
	heapFloat[(fp+-56)] = f19;
	f20 = f1-f3;
	heapFloat[(fp+-58)] = f20;
	f10 = f10+f11;
	f2 = heapFloat[(fp+-40)];
	f11 = f8*f2;
	f2 = heapFloat[(fp+-41)];
	f21 = f12*f2;
	f13 = heapFloat[(fp+-50)];
	f23 = f22*f13;
	f16 = heapFloat[(fp+-51)];
	f25 = f24*f16;
	f0 = f0-f6;
	heapFloat[(fp+-61)] = f0;
	f4 = f4+f5;
	heapFloat[(fp+-57)] = f4;
	f1 = f1+f3;
	heapFloat[(fp+-62)] = f1;
	f2 = heapFloat[(fp+-40)];
	f3 = f7*f2;
	f2 = heapFloat[(fp+-41)];
	f5 = f9*f2;
	f14 = heapFloat[(fp+-52)];
	f6 = f14*f13;
	f2 = heapFloat[(fp+-53)];
	f26 = f2*f16;
	f0 = heapFloat[(r3+2)];
	heapFloat[(fp+-71)] = f0;
	f1 = heapFloat[(r1+81)];
	f2 = heapFloat[(r1+80)];
	f4 = heapFloat[(r3+8)];
	heapFloat[(fp+-38)] = f4;
	f13 = heapFloat[(r3+9)];
	heapFloat[(fp+-39)] = f13;
	f14 = heapFloat[(r4+6)];
	heapFloat[(fp+-37)] = f14;
	f15 = heapFloat[(r3+6)];
	heapFloat[(fp+-70)] = f15;
	f0 = heapFloat[(r1+82)];
	heapFloat[(fp+-82)] = f0;
	f4 = heapFloat[(fp+-76)];
	f10 = f4-f10;
	heapFloat[(fp+-63)] = f10;
	f14 = heapFloat[(fp+-66)];
	f13 = heapFloat[(fp+-59)];
	f15 = f14*f13;
	f16 = heapFloat[(fp+-67)];
	f14 = heapFloat[(fp+-60)];
	f19 = f16*f14;
	f20 = heapFloat[(fp+-64)];
	f22 = f20*f13;
	f24 = heapFloat[(fp+-65)];
	f27 = f24*f14;
	f28 = heapFloat[(fp+-68)];
	f29 = f8*f28;
	f16 = heapFloat[(fp+-69)];
	f30 = f12*f16;
	f0 = f7*f28;
	f4 = f9*f16;
	f11 = f11+f21;
	heapFloat[(fp+-42)] = f11;
	f21 = heapFloat[(fp+-71)];
	f10 = f2*f21;
	heapFloat[(fp+-43)] = f10;
	f10 = f23+f25;
	heapFloat[(fp+-44)] = f10;
	f13 = heapFloat[(fp+-61)];
	f11 = heapFloat[(fp+-57)];
	f14 = f13*f11;
	f3 = f3+f5;
	f5 = f1*f21;
	f6 = f6+f26;
	f16 = heapFloat[(fp+-62)];
	f20 = f16*f11;
	f23 = heapFloat[(fp+-40)];
	f24 = f17*f23;
	f25 = heapFloat[(fp+-41)];
	f26 = f18*f25;
	f28 = heapFloat[(fp+-56)];
	f13 = heapFloat[(fp+-50)];
	f10 = f28*f13;
	f11 = heapFloat[(fp+-58)];
	f16 = heapFloat[(fp+-51)];
	f11 = f11*f16;
	f13 = heapFloat[(r3+10)];
	heapFloat[(fp+-72)] = f13;
	f15 = f15+f19;
	f13 = heapFloat[(fp+-81)];
	f19 = heapFloat[(fp+-37)];
	f13 = f13*f19;
	f22 = f22+f27;
	f19 = heapFloat[(fp+-80)];
	f27 = heapFloat[(fp+-37)];
	f16 = f19*f27;
	f19 = heapFloat[(fp+-54)];
	f21 = heapFloat[(fp+-59)];
	f19 = f19*f21;
	f21 = heapFloat[(fp+-55)];
	f23 = heapFloat[(fp+-60)];
	f21 = f21*f23;
	f23 = heapFloat[(fp+-38)];
	f8 = f8*f23;
	f23 = heapFloat[(fp+-39)];
	f12 = f12*f23;
	f23 = heapFloat[(fp+-38)];
	f7 = f7*f23;
	f23 = heapFloat[(fp+-39)];
	f9 = f9*f23;
	f29 = f29+f30;
	f30 = heapFloat[(fp+-70)];
	f23 = f2*f30;
	f0 = f0+f4;
	f4 = f1*f30;
	f28 = heapFloat[(fp+-68)];
	f25 = f17*f28;
	f27 = heapFloat[(fp+-69)];
	f27 = f18*f27;
	f28 = heapFloat[(fp+-42)];
	f30 = heapFloat[(fp+-43)];
	f28 = f28+f30;
	f30 = heapFloat[(fp+-44)];
	f14 = f30+f14;
	heapFloat[(fp+-73)] = f14;
	f3 = f3+f5;
	f5 = f6+f20;
	heapFloat[(fp+-42)] = f5;
	f6 = f24+f26;
	f20 = heapFloat[(fp+-82)];
	f14 = heapFloat[(fp+-71)];
	f24 = f20*f14;
	f10 = f10+f11;
	f26 = heapFloat[(fp+-63)];
	f11 = heapFloat[(fp+-57)];
	f30 = f26*f11;
	f5 = f15+f13;
	heapFloat[(fp+-44)] = f5;
	f5 = f22+f16;
	heapFloat[(fp+-45)] = f5;
	f11 = f29+f23;
	f0 = f0+f4;
	f4 = f19+f21;
	f21 = heapFloat[(fp+-77)];
	f13 = heapFloat[(fp+-37)];
	f14 = f21*f13;
	f8 = f8+f12;
	f13 = heapFloat[(fp+-72)];
	f2 = f2*f13;
	f7 = f7+f9;
	f1 = f1*f13;
	f23 = heapFloat[(fp+-38)];
	f9 = f17*f23;
	f23 = heapFloat[(fp+-39)];
	f12 = f18*f23;
	f15 = f25+f27;
	f16 = heapFloat[(fp+-70)];
	f17 = f20*f16;
	f18 = heapFloat[(fp+-73)];
	f19 = f28*f18;
	f5 = heapFloat[(fp+-42)];
	f22 = f3*f5;
	f6 = f6+f24;
	f10 = f10+f30;
	heapFloat[(fp+-43)] = f10;
	f4 = f4+f14;
	heapFloat[(fp+-74)] = f4;
	f14 = heapFloat[(r1+84)];
	f24 = heapFloat[(r1+85)];
	f25 = heapFloat[(r1+86)];
	f4 = heapFloat[(r4+8)];
	heapFloat[(fp+-46)] = f4;
	f5 = heapFloat[(r1+100)];
	heapFloat[(fp+-85)] = f5;
	f4 = heapFloat[(r4+9)];
	heapFloat[(fp+-47)] = f4;
	f5 = heapFloat[(r1+101)];
	heapFloat[(fp+-86)] = f5;
	f10 = heapFloat[(r4+10)];
	heapFloat[(fp+-75)] = f10;
	f13 = heapFloat[(r1+102)];
	heapFloat[(fp+-84)] = f13;
	f2 = f8+f2;
	f1 = f7+f1;
	f7 = f15+f17;
	f8 = heapFloat[(fp+-78)];
	f5 = heapFloat[(fp+-44)];
	f15 = f8*f5;
	f16 = heapFloat[(fp+-79)];
	f5 = heapFloat[(fp+-45)];
	f17 = f16*f5;
	f18 = heapFloat[(fp+-52)];
	f5 = heapFloat[(fp+-44)];
	f20 = f18*f5;
	f21 = heapFloat[(fp+-53)];
	f5 = heapFloat[(fp+-45)];
	f23 = f21*f5;
	f9 = f9+f12;
	f12 = heapFloat[(fp+-82)];
	f13 = heapFloat[(fp+-72)];
	f12 = f12*f13;
	f18 = heapFloat[(fp+-73)];
	f26 = f11*f18;
	f5 = heapFloat[(fp+-42)];
	f27 = f0*f5;
	f19 = f19+f22;
	f10 = heapFloat[(fp+-43)];
	f22 = f6*f10;
	f29 = heapFloat[(r3+14)];
	heapFloat[(fp+-82)] = f29;
	f30 = heapFloat[(r3+13)];
	heapFloat[(fp+-87)] = f30;
	f4 = heapFloat[(r3+12)];
	heapFloat[(fp+-89)] = f4;
	f4 = heapFloat[(r4+14)];
	heapFloat[(fp+-88)] = f4;
	f4 = heapFloat[(r4+13)];
	heapFloat[(fp+-90)] = f4;
	f4 = heapFloat[(r4+12)];
	heapFloat[(fp+-91)] = f4;
	r3 = sp + -128;
	f9 = f9+f12;
	f12 = heapFloat[(fp+-66)];
	f4 = heapFloat[(fp+-46)];
	f12 = f12*f4;
	f4 = heapFloat[(fp+-67)];
	f5 = heapFloat[(fp+-47)];
	f4 = f4*f5;
	f5 = heapFloat[(fp+-64)];
	f8 = heapFloat[(fp+-46)];
	f5 = f5*f8;
	f8 = heapFloat[(fp+-65)];
	f10 = heapFloat[(fp+-47)];
	f8 = f8*f10;
	f15 = f15+f17;
	f13 = heapFloat[(fp+-61)];
	f17 = heapFloat[(fp+-74)];
	f10 = f13*f17;
	f20 = f20+f23;
	f16 = heapFloat[(fp+-62)];
	f23 = f16*f17;
	f13 = heapFloat[(fp+-56)];
	f16 = heapFloat[(fp+-44)];
	f13 = f13*f16;
	f16 = heapFloat[(fp+-58)];
	f17 = heapFloat[(fp+-45)];
	f16 = f16*f17;
	f17 = f2*f18;
	f18 = heapFloat[(fp+-42)];
	f18 = f1*f18;
	f26 = f26+f27;
	f27 = heapFloat[(fp+-43)];
	f21 = f7*f27;
	f19 = f19+f22;
	f10 = f15+f10;
	f15 = f20+f23;
	r4 = r3 >> 2;
	f20 = heapFloat[(fp+-40)];
	f20 = f20*f14;
	f22 = heapFloat[(fp+-41)];
	f22 = f22*f24;
	f4 = f12+f4;
	f12 = heapFloat[(fp+-81)];
	f23 = heapFloat[(fp+-75)];
	f12 = f12*f23;
	f5 = f5+f8;
	f8 = heapFloat[(fp+-80)];
	f8 = f8*f23;
	f23 = heapFloat[(fp+-54)];
	f27 = heapFloat[(fp+-46)];
	f23 = f23*f27;
	f27 = heapFloat[(fp+-55)];
	f29 = heapFloat[(fp+-47)];
	f27 = f27*f29;
	f13 = f13+f16;
	f16 = heapFloat[(fp+-63)];
	f29 = heapFloat[(fp+-74)];
	f16 = f16*f29;
	f17 = f17+f18;
	f18 = heapFloat[(fp+-43)];
	f18 = f9*f18;
	f21 = f26+f21;
	heapFloat[(fp+-32)] = f19;
	f4 = f4+f12;
	f5 = f5+f8;
	f8 = f13+f16;
	f12 = f20+f22;
	f13 = heapFloat[(fp+-71)];
	f13 = f13*f25;
	f16 = heapFloat[(fp+-68)];
	f16 = f16*f14;
	f19 = heapFloat[(fp+-69)];
	f19 = f19*f24;
	f20 = f23+f27;
	f22 = heapFloat[(fp+-77)];
	f23 = heapFloat[(fp+-75)];
	f22 = f22*f23;
	f26 = f28*f10;
	f27 = f3*f15;
	f17 = f17+f18;
	heapFloat[(r4+1)] = f21;
	f18 = f20+f22;
	f12 = f12+f13;
	heapFloat[(r4+2)] = f17;
	f13 = f16+f19;
	f16 = heapFloat[(fp+-70)];
	f16 = f16*f25;
	f17 = heapFloat[(fp+-38)];
	f14 = f17*f14;
	f17 = heapFloat[(fp+-39)];
	f17 = f17*f24;
	f19 = heapFloat[(fp+-78)];
	f19 = f19*f4;
	f20 = heapFloat[(fp+-79)];
	f20 = f20*f5;
	f21 = heapFloat[(fp+-52)];
	f21 = f21*f4;
	f22 = heapFloat[(fp+-53)];
	f22 = f22*f5;
	f24 = f11*f10;
	f23 = f0*f15;
	f26 = f26+f27;
	f27 = f6*f8;
	f29 = heapFloat[(fp+-89)];
	f12 = f12+f29;
	f13 = f13+f16;
	f14 = f14+f17;
	f16 = heapFloat[(fp+-72)];
	f16 = f16*f25;
	f17 = f19+f20;
	f19 = heapFloat[(fp+-61)];
	f19 = f19*f18;
	f20 = f21+f22;
	f21 = heapFloat[(fp+-62)];
	f21 = f21*f18;
	f22 = heapFloat[(fp+-56)];
	f22 = f22*f4;
	f25 = heapFloat[(fp+-58)];
	f25 = f25*f5;
	f29 = f2*f10;
	f30 = f1*f15;
	f23 = f24+f23;
	f24 = f7*f8;
	f26 = f26+f27;
	heap32[(r4+3)] = 0;
	f12 = -f12;
	f27 = heapFloat[(fp+-87)];
	f13 = f13+f27;
	f17 = f17+f19;
	f19 = f20+f21;
	f14 = f14+f16;
	f16 = f22+f25;
	f20 = heapFloat[(fp+-63)];
	f20 = f20*f18;
	f21 = f29+f30;
	f22 = f9*f8;
	f23 = f23+f24;
	heapFloat[(r4+4)] = f26;
	f29 = heapFloat[(fp+-82)];
	f14 = f14+f29;
	f16 = f16+f20;
	f20 = f28*f12;
	f24 = f11*f13;
	f25 = f3*f12;
	f26 = f0*f13;
	f27 = f28*f17;
	f3 = f3*f19;
	f21 = f21+f22;
	heapFloat[(r4+5)] = f23;
	f22 =                         0;
	heapFloat[(r4+6)] = f21;
	f20 = f20-f24;
	f21 = f2*f14;
	f23 = f25-f26;
	f24 = f1*f14;
	f12 = f6*f12;
	f13 = f7*f13;
	f25 = heapFloat[(fp+-48)];
	f26 = heapFloat[(fp+-85)];
	f25 = f25*f26;
	f28 = heapFloat[(fp+-49)];
	f29 = heapFloat[(fp+-86)];
	f28 = f28*f29;
	f11 = f11*f17;
	f0 = f0*f19;
	f3 = f27+f3;
	f6 = f6*f16;
	f20 = f20-f21;
	f21 = f23-f24;
	f23 = heapFloat[(fp+-59)];
	f23 = f23*f26;
	f24 = heapFloat[(fp+-60)];
	f24 = f24*f29;
	f12 = f12-f13;
	f13 = f9*f14;
	f14 = heapFloat[(fp+-50)];
	f14 = f14*f22;
	f27 = heapFloat[(fp+-51)];
	f27 = f27*f22;
	f25 = f25+f28;
	f28 = heapFloat[(fp+-83)];
	f30 = heapFloat[(fp+-84)];
	f28 = f28*f30;
	f2 = f2*f17;
	f1 = f1*f19;
	f0 = f11+f0;
	f7 = f7*f16;
	f3 = f3+f6;
	heap32[(r4+7)] = 0;
	f6 = f12-f13;
	f11 = f25+f28;
	f12 = heapFloat[(fp+-46)];
	f12 = f12*f26;
	f13 = heapFloat[(fp+-47)];
	f13 = f13*f29;
	f25 = heapFloat[(fp+-44)];
	f25 = f25*f22;
	f26 = heapFloat[(fp+-45)];
	f26 = f26*f22;
	f23 = f23+f24;
	f24 = heapFloat[(fp+-37)];
	f24 = f24*f30;
	f28 = heapFloat[(fp+-73)];
	f28 = f28*f20;
	f29 = heapFloat[(fp+-42)];
	f29 = f29*f21;
	f14 = f14+f27;
	f27 = heapFloat[(fp+-57)];
	f27 = f27*f22;
	f1 = f2+f1;
	f2 = f9*f16;
	f0 = f0+f7;
	heapFloat[(r4+8)] = f3;
	f3 = f23+f24;
	f4 = f4*f22;
	f5 = f5*f22;
	f7 = f12+f13;
	f23 = heapFloat[(fp+-75)];
	f9 = f23*f30;
	f10 = f10*f20;
	f12 = f15*f21;
	f13 = f25+f26;
	f15 = heapFloat[(fp+-74)];
	f15 = f15*f22;
	f23 = f28+f29;
	f24 = heapFloat[(fp+-43)];
	f24 = f24*f6;
	f14 = f14+f27;
	f25 = heapFloat[(fp+-91)];
	f11 = f11+f25;
	f1 = f1+f2;
	heapFloat[(r4+9)] = f0;
	f0 = f7+f9;
	heapFloat[(r4+10)] = f1;
	f1 = f17*f20;
	f2 = f19*f21;
	f4 = f4+f5;
	f5 = f18*f22;
	f7 = f10+f12;
	f8 = f8*f6;
	f9 = f13+f15;
	f10 = heapFloat[(fp+-90)];
	f3 = f3+f10;
	f10 = f23+f24;
	f11 = f14+f11;
	f1 = f1+f2;
	f2 = f16*f6;
	f4 = f4+f5;
	f5 = heapFloat[(fp+-88)];
	f0 = f0+f5;
	f5 = f7+f8;
	f3 = f9+f3;
	f6 = f10+f11;
	heap32[(r4+11)] = 0;
	f1 = f1+f2;
	f0 = f4+f0;
	f2 = f5+f3;
	heapFloat[(r4+12)] = f6;
	f0 = f1+f0;
	heapFloat[(r4+13)] = f2;
	heapFloat[(r4+14)] = f0;
	heap32[(r4+15)] = 0;
	r4 = sp + -144;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
	r3 = r4 >> 2;
	f0 = heapFloat[(r3+2)];
	f1 = heapFloat[(r3+1)];
	f2 = heapFloat[(fp+-36)];
	heapFloat[(r1+112)] = f2;
	heapFloat[(r1+113)] = f1;
	heapFloat[(r1+114)] = f0;
	heap32[(r1+115)] = 0;
	f2 = f2*f2;
	f1 = f1*f1;
	f1 = f2+f1;
	f0 = f0*f0;
	f0 = f1+f0;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f4 = heapFloat[(fp+-76)];
	f0 = f4/f_g0;
	f1 = heapFloat[(r1+112)];
	f1 = f1*f0;
	heapFloat[(r1+112)] = f1;
	f1 = heapFloat[(r1+113)];
	f1 = f1*f0;
	heapFloat[(r1+113)] = f1;
	f1 = heapFloat[(r1+114)];
	f0 = f1*f0;
	heapFloat[(r1+114)] = f0;
	f0 = heapFloat[(r3+3)];
	f1 =                        -1;
	f0 = f0 < f1 ? f1 : f0;
	f0 = f0 > f4 ? f4 : f0;
	heapFloat[(g0)] = f0;
	acosf(i7);
	f0 = f_g0+f_g0;
	heapFloat[(r1+123)] = f0;
	if(f0 <f22) //_LBB587_4
{
	f0 = -f0;
}
	f1 =   1.1920928955078125e-007;
	if(f0 <f1) //_LBB587_83
{
__label__ = 72;
}
else{
	r1 = 1;
	heap8[r0+514] = r1;
	return;
}
}
}
_8: do {
if (__label__ == 6){
	r2 = heap32[(fp+3)];
	r5 = heap32[(fp+4)];
	r6 = sp + -64;
	r7 = (r0 + 288)|0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r6;
	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
	r7 = sp + -48;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r7;
	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
	r7 = r7 >> 2;
	r6 = r6 >> 2;
	f0 = heapFloat[(r7+3)];
	f1 = heapFloat[(r6+3)];
	f2 = heapFloat[(fp+-12)];
	f3 = heapFloat[(fp+-16)];
	f4 = heapFloat[(r7+1)];
	f5 = heapFloat[(r6+1)];
	f6 = heapFloat[(r7+2)];
	f7 = heapFloat[(r6+2)];
	r6 = sp + -32;
	r7 = (r0 + 352)|0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r6;
	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
	r7 = sp + -16;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r7;
	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
	r6 = r6 >> 2;
	r7 = r7 >> 2;
	f8 = heapFloat[(r7+3)];
	f9 = heapFloat[(r6+3)];
	f10 = heapFloat[(fp+-4)];
	f11 = heapFloat[(r6+1)];
	f12 = heapFloat[(r7+1)];
	f13 = heapFloat[(fp+-8)];
	f14 = heapFloat[(r6+2)];
	f15 = heapFloat[(r7+2)];
	f16 = f8*f9;
	f17 = f10*f13;
	f18 = f0*f3;
	f19 = f2*f1;
	f20 = f0*f1;
	f21 = f2*f3;
	f22 = f8*f13;
	f23 = f10*f9;
	f24 = f8*f11;
	f25 = f12*f9;
	f26 = f0*f5;
	f27 = f4*f1;
	f16 = f16-f17;
	f17 = f12*f11;
	f18 = f18+f19;
	f19 = f4*f7;
	f20 = f20-f21;
	f21 = f4*f5;
	f22 = f22+f23;
	f23 = f12*f14;
	f0 = f0*f7;
	f1 = f6*f1;
	f24 = f24+f25;
	f25 = f15*f13;
	f26 = f26+f27;
	f27 = f6*f3;
	f8 = f8*f14;
	f9 = f15*f9;
	f16 = f16-f17;
	f17 = f15*f14;
	f18 = f18+f19;
	f19 = f6*f5;
	f20 = f20-f21;
	f6 = f6*f7;
	f21 = f22+f23;
	f15 = f15*f11;
	f0 = f0+f1;
	f1 = f2*f5;
	f5 = f24+f25;
	f14 = f10*f14;
	f22 = f26+f27;
	f2 = f2*f7;
	f7 = f8+f9;
	f8 = f10*f11;
	f9 = f21-f15;
	heapFloat[(fp+-46)] = f9;
	f10 = f18-f19;
	heapFloat[(fp+-49)] = f10;
	f5 = f5-f14;
	heapFloat[(fp+-45)] = f5;
	f6 = f20-f6;
	heapFloat[(fp+-52)] = f6;
	f11 = f16-f17;
	heapFloat[(fp+-48)] = f11;
	f2 = f22-f2;
	heapFloat[(fp+-50)] = f2;
	f0 = f0+f1;
	f1 = f4*f3;
	f3 = f7+f8;
	f4 = f12*f13;
	f3 = f3-f4;
	heapFloat[(fp+-47)] = f3;
	f0 = f0-f1;
	heapFloat[(fp+-51)] = f0;
	f1 = f11*f2;
	f4 = f6*f5;
	f7 = f11*f6;
	f8 = f10*f9;
	f12 = f11*f10;
	f13 = f6*f9;
	f1 = f1-f4;
	f4 = f10*f3;
	f7 = f7+f8;
	f8 = f2*f5;
	f11 = f11*f0;
	f6 = f6*f3;
	f12 = f12-f13;
	f13 = f0*f5;
	f1 = f1-f4;
	f4 = f0*f9;
	f7 = f7+f8;
	f0 = f0*f3;
	f6 = f11-f6;
	f8 = f2*f9;
	f11 = f12-f13;
	f2 = f2*f3;
	f2 = f11+f2;
	f1 = f1+f4;
	f4 =                         0;
	f0 = f7+f0;
	f6 = f6-f8;
	f7 = f10*f5;
	f6 = f6+f7;
	f7 = f1*f4;
	f8 = -f2;
	f10 = f0*f4;
	f11 = f2*f4;
	f12 = f10+f6;
	f8 = f8-f7;
	f13 = f6*f4;
	f7 = f0+f7;
	f8 = f8-f13;
	f7 = f7-f13;
	f12 = f12-f11;
	f10 = f10+f11;
	f10 = f10-f1;
	f11 = f7*f0;
	f13 = f8*f2;
	f14 = f12*f0;
	f15 = f8*f1;
	f11 = f11-f13;
	f13 = f12*f6;
	f14 = f14-f15;
	f15 = f10*f2;
	f16 = f10*f0;
	f8 = f8*f6;
	f11 = f11-f13;
	f10 = f10*f1;
	f13 = f14-f15;
	f14 = f7*f6;
	f8 = f16-f8;
	f7 = f7*f1;
	f10 = f11+f10;
	f11 = f13+f14;
	f7 = f8-f7;
	f8 = f12*f2;
	f7 = f7+f8;
	f8 = f10*f10;
	f12 = f11*f11;
	f8 = f8+f12;
	f12 = f7*f7;
	f8 = f8+f12;
	heapFloat[(g0)] = f8;
	f8 =                         1;
	sqrtf(i7);
	f12 = f8/f_g0;
	f11 = f11*f12;
	f7 = f7*f12;
	f10 = f10*f12;
	f12 = f11*f4;
	f13 = f7*f4;
	f14 = f10+f12;
	f14 = f14+f13;
	f3 = -f3;
	heapFloat[(fp+-43)] = f3;
	f3 = -f5;
	heapFloat[(fp+-44)] = f3;
	f3 = -f9;
	heapFloat[(fp+-42)] = f3;
	f3 =      -0.99999988079071045;
	if(f14 >=f3) //_LBB587_9
{
	f3 = f14+f8;
	f3 = f3+f3;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f10 = f10*f4;
	f5 =                       0.5;
	f11 = f11-f10;
	f9 = f8/f_g0;
	f7 = f10-f7;
	f13 = f13-f12;
	f12 = f_g0*f5;
	f11 = f11*f9;
	f10 = f7*f9;
	f7 = f13*f9;
}
else{
	f7 =                        -0;
	f10 =                         1;
	f11 =                         0;
	f12 = f11;
}
	f3 = f7*f7;
	f5 = f10*f10;
	f3 = f3+f5;
	f5 = f11*f11;
	f3 = f3+f5;
	f5 = f12*f12;
	f3 = f3+f5;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f3 = f_g0;
	if(f3 !=f4) //_LBB587_12
{
	f3 = f8/f3;
	f5 = f12*f3;
	f7 = f7*f3;
	f9 = f10*f3;
	f3 = f11*f3;
	f10 = f5*f1;
	f11 = f0*f9;
	f12 = f5*f2;
	f13 = f0*f7;
	f14 = f5*f6;
	f15 = f0*f3;
	f10 = f10-f11;
	f11 = f2*f3;
	f12 = f12-f13;
	f13 = f6*f9;
	f0 = f5*f0;
	f16 = f2*f7;
	f14 = f14-f15;
	f15 = f1*f7;
	f10 = f10-f11;
	f11 = f6*f7;
	f12 = f12-f13;
	f13 = f1*f3;
	f10 = f10+f11;
	f11 = f12+f13;
	f0 = f0+f16;
	f1 = f1*f9;
	f12 = f14-f15;
	f2 = f2*f9;
	f2 = f12+f2;
	f12 = f11*f11;
	f13 = f10*f10;
	f0 = f0+f1;
	f1 = f6*f3;
	f0 = f0+f1;
	f1 = f12+f13;
	f6 = f2*f2;
	f1 = f1+f6;
	f6 = f0*f0;
	f1 = f1+f6;
	heapFloat[(g0)] = f1;
	sqrtf(i7);
	f1 = f_g0;
	if(f1 !=f4) //_LBB587_14
{
	f1 = f8/f1;
	f6 = heapFloat[(r1+108)];
	heapFloat[(fp+-40)] = f6;
	f12 = heapFloat[(r1+111)];
	f11 = f11*f1;
	heapFloat[(fp+-37)] = f11;
	f10 = f10*f1;
	heapFloat[(fp+-38)] = f10;
	f2 = f2*f1;
	heapFloat[(fp+-39)] = f2;
	f0 = f0*f1;
	heapFloat[(fp+-41)] = f0;
	if(f6 <f12) //_LBB587_33
{
__label__ = 27;
}
else{
	f0 = heapFloat[(r1+109)];
	if(f0 <f12) //_LBB587_33
{
__label__ = 27;
}
else{
	f12 =                        -1;
	f12 = f5 < f12 ? f12 : f5;
	f12 = f12 > f8 ? f8 : f12;
	heapFloat[(g0)] = f12;
	acosf(i7);
	f12 = f_g0+f_g0;
	f0 =   1.1920928955078125e-007;
	if(f12 >f0) //_LBB587_18
{
	f4 = f7*f7;
	f0 = f9*f9;
	f4 = f4+f0;
	f0 = f3*f3;
	f4 = f4+f0;
	heapFloat[(g0)] = f4;
	f4 =                         1;
	sqrtf(i7);
	f0 = f4/f_g0;
	f1 = f9*f0;
	f2 = f7*f0;
	f0 = f3*f0;
	f3 = f1; //fstod f1, f3
	f3 = Math.abs(f3);
	f5 =   1.1920928955078125e-007;
	if(f3 >f5) //_LBB587_20
{
	f3 = heapFloat[(r1+109)];
	f5 = heapFloat[(r1+108)];
	f6 = f0*f0;
	f7 = f1*f1;
	f6 = f6/f7;
	f5 = f5*f5;
	f3 = f3*f3;
	f5 = f6/f5;
	f3 = f4/f3;
	f4 = f6+f4;
	f3 = f5+f3;
	f4 = f4/f3;
	heapFloat[(g0)] = f4;
	sqrtf(i7);
	f4 = f_g0;
}
else{
	f4 = heapFloat[(r1+108)];
}
}
	f3 = heapFloat[(r1+104)];
	f5 = f3*f4;
	if(f5 >=f12) //_LBB587_67
{
__label__ = 58;
}
else{
	r3 = 1;
	heap8[r0+514] = r3;
if(!(f12 >=f4)) //_LBB587_24
{
	f6 =       0.99999988079071045;
	if(f3 <f6) //_LBB587_25
{
	f8 = f12-f5;
	f3 = f4-f5;
	f8 = f8/f3;
}
}
	f12 = f12-f5;
	heapFloat[(r1+129)] = f8;
	f3 = f1; //fstod f1, f3
	heapFloat[(r1+123)] = f12;
	f12 = Math.abs(f3);
	f3 =   1.1920928955078125e-007;
	if(f12 >f3) //_LBB587_28
{
	f0 = -f0;
	f12 = heapFloat[(r1+109)];
	f3 = heapFloat[(r1+108)];
	f12 = f12/f3;
	f3 = f0/f1;
	f12 = f12*f3;
	f12 = f12*f1;
	f12 = f12; //fstod f12, f12
	f12 = Math.abs(f12);
	f12 = f12; //fdtos f12, f12
	f3 =                         0;
	if(f0 <=f3) //_LBB587_30
{
	f12 = -f12;
}
	f0 = f2*f2;
	f3 = f1*f1;
	f0 = f0+f3;
	f3 = f12*f12;
	f0 = f0+f3;
	heapFloat[(g0)] = f0;
	f0 =                         1;
	sqrtf(i7);
	f0 = f0/f_g0;
	f12 = -f12;
	f2 = f2*f0;
	f1 = f1*f0;
	f0 = f0*f12;
}
	f12 = -f2;
	f3 = -f1;
	f4 = heapFloat[(fp+-46)];
	f5 = f2*f4;
	f6 = heapFloat[(fp+-45)];
	f7 = f6*f1;
	f8 = heapFloat[(fp+-48)];
	f12 = f8*f12;
	f9 = f6*f0;
	f10 = -f0;
	f5 = f5+f7;
	f7 = heapFloat[(fp+-47)];
	f11 = f7*f0;
	f12 = f12-f9;
	f9 = f7*f1;
	f3 = f8*f3;
	f7 = f7*f2;
	f12 = f12+f9;
	f5 = f5+f11;
	f3 = f3-f7;
	f0 = f4*f0;
	f7 = f8*f10;
	f1 = f4*f1;
	f0 = f3+f0;
	f3 = heapFloat[(fp+-42)];
	f4 = f5*f3;
	f9 = f12*f8;
	f1 = f7-f1;
	f2 = f6*f2;
	f1 = f1+f2;
	f2 = heapFloat[(fp+-44)];
	f6 = f5*f2;
	f7 = f0*f8;
	f4 = f4+f9;
	f9 = heapFloat[(fp+-43)];
	f10 = f0*f9;
	f5 = f5*f9;
	f8 = f1*f8;
	f6 = f6+f7;
	f7 = f1*f3;
	f4 = f4+f10;
	f1 = f1*f2;
	f1 = f4-f1;
	f4 = f5+f8;
	f2 = f12*f2;
	f5 = f6+f7;
	f12 = f12*f9;
	f2 = f4+f2;
	f0 = f0*f3;
	f12 = f5-f12;
	heapFloat[(r1+112)] = f1;
	f0 = f2-f0;
	heapFloat[(r1+113)] = f12;
	heapFloat[(r1+114)] = f0;
	heap32[(r1+115)] = 0;
	heap32[(r1+131)] = 0;
	heap32[(r1+132)] = 0;
	heap32[(r1+133)] = 0;
	r3 = r2 >> 2;
	heap32[(r1+134)] = 0;
	r4 = r5 >> 2;
	f2 = heapFloat[(r3+1)];
	f3 = heapFloat[(r3+5)];
	f4 = heapFloat[(r3)];
	f5 = heapFloat[(r3+4)];
	f6 = heapFloat[(r4+1)];
	f7 = heapFloat[(r4+5)];
	f8 = heapFloat[(r4)];
	f9 = heapFloat[(r4+4)];
	f10 = heapFloat[(r3+2)];
	f11 = heapFloat[(r3+6)];
	f13 = heapFloat[(r3+9)];
	f14 = heapFloat[(r3+8)];
	f15 = heapFloat[(r4+2)];
	f16 = heapFloat[(r4+6)];
	f17 = heapFloat[(r4+9)];
	f18 = heapFloat[(r4+8)];
	f4 = f4*f1;
	f5 = f5*f12;
	f2 = f2*f1;
	f3 = f3*f12;
	f8 = f8*f1;
	f9 = f9*f12;
	f6 = f6*f1;
	f7 = f7*f12;
	f19 = heapFloat[(r3+10)];
	f20 = heapFloat[(r4+10)];
	f4 = f4+f5;
	f5 = f14*f0;
	f2 = f2+f3;
	f3 = f13*f0;
	f10 = f10*f1;
	f11 = f11*f12;
	f8 = f8+f9;
	f9 = f18*f0;
	f6 = f6+f7;
	f7 = f17*f0;
	f13 = f15*f1;
	f14 = f16*f12;
	f4 = f4+f5;
	f2 = f2+f3;
	f3 = f8+f9;
	f5 = f6+f7;
	f6 = f10+f11;
	f7 = f19*f0;
	f8 = f13+f14;
	f9 = f20*f0;
	f6 = f6+f7;
	f7 = f8+f9;
	f4 = f1*f4;
	f2 = f12*f2;
	f1 = f1*f3;
	f12 = f12*f5;
	f2 = f4+f2;
	f3 = f0*f6;
	f12 = f1+f12;
	f0 = f0*f7;
	f1 = f2+f3;
	f12 = f12+f0;
	f0 =                         1;
	f12 = f1+f12;
	f12 = f0/f12;
	heapFloat[(r1+120)] = f12;
__label__ = 58;
}
}
}
_37: do {
if (__label__ == 27){
	r4 = r4 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r1+72)];
	f1 = heapFloat[(r3)];
	f2 = heapFloat[(r1+73)];
	f3 = heapFloat[(r3+4)];
	f4 = heapFloat[(r1+74)];
	f5 = heapFloat[(r1+76)];
	f6 = heapFloat[(r3+1)];
	f7 = heapFloat[(r1+77)];
	f8 = heapFloat[(r3+5)];
	f9 = heapFloat[(r1+78)];
	f10 = heapFloat[(r4)];
	f11 = heapFloat[(r1+88)];
	f13 = heapFloat[(r4+4)];
	heapFloat[(fp+-55)] = f13;
	f14 = heapFloat[(r4+1)];
	f15 = heapFloat[(r1+92)];
	f13 = heapFloat[(r4+5)];
	heapFloat[(fp+-56)] = f13;
	f16 = heapFloat[(r3+8)];
	f17 = heapFloat[(r3+9)];
	f18 = heapFloat[(r4+8)];
	heapFloat[(fp+-53)] = f18;
	f19 = heapFloat[(r4+9)];
	heapFloat[(fp+-54)] = f19;
	f13 = f1*f0;
	heapFloat[(fp+-57)] = f13;
	f13 = f6*f5;
	heapFloat[(fp+-61)] = f13;
	f18 = f3*f0;
	heapFloat[(fp+-59)] = f18;
	f13 = f8*f5;
	heapFloat[(fp+-62)] = f13;
	f18 = heapFloat[(r1+80)];
	f19 = heapFloat[(r3+2)];
	f20 = heapFloat[(r1+81)];
	f21 = heapFloat[(r3+6)];
	f22 = heapFloat[(r1+82)];
	f23 = f1*f2;
	f24 = f6*f7;
	f25 = f3*f2;
	f26 = f8*f7;
	f10 = f10*f11;
	heapFloat[(fp+-60)] = f10;
	f10 = f14*f15;
	heapFloat[(fp+-63)] = f10;
	f10 = heapFloat[(r4+2)];
	heapFloat[(fp+-64)] = f10;
	f13 = heapFloat[(r1+96)];
	f14 = heapFloat[(r4+6)];
	heapFloat[(fp+-58)] = f14;
	f1 = f1*f4;
	f6 = f6*f9;
	f27 = heapFloat[(fp+-55)];
	f27 = f27*f11;
	f28 = heapFloat[(fp+-56)];
	f28 = f28*f15;
	f3 = f3*f4;
	f8 = f8*f9;
	f29 = heapFloat[(r3+10)];
	f30 = heapFloat[(r4+10)];
	heapFloat[(fp+-55)] = f30;
	f10 = heapFloat[(fp+-57)];
	f14 = heapFloat[(fp+-61)];
	f10 = f10+f14;
	heapFloat[(fp+-56)] = f10;
	f14 = f19*f18;
	f10 = heapFloat[(fp+-59)];
	f30 = heapFloat[(fp+-62)];
	f10 = f10+f30;
	f30 = f21*f18;
	f0 = f16*f0;
	heapFloat[(fp+-57)] = f0;
	f0 = f17*f5;
	heapFloat[(fp+-59)] = f0;
	f5 = f23+f24;
	f23 = f19*f20;
	f24 = f25+f26;
	f25 = f21*f20;
	f2 = f16*f2;
	f7 = f17*f7;
	f26 = heapFloat[(fp+-60)];
	f0 = heapFloat[(fp+-63)];
	f0 = f26+f0;
	f26 = heapFloat[(fp+-64)];
	f26 = f26*f13;
	f1 = f1+f6;
	f6 = f19*f22;
	f19 = f27+f28;
	f27 = heapFloat[(fp+-58)];
	f27 = f27*f13;
	f3 = f3+f8;
	f8 = f21*f22;
	f21 = heapFloat[(fp+-53)];
	f11 = f21*f11;
	f21 = heapFloat[(fp+-54)];
	f15 = f21*f15;
	f4 = f16*f4;
	f9 = f17*f9;
	f16 = heapFloat[(fp+-56)];
	f14 = f16+f14;
	f0 = f0+f26;
	f5 = f5+f23;
	f1 = f1+f6;
	f6 = f10+f30;
	f10 = f19+f27;
	f16 = f24+f25;
	f3 = f3+f8;
	f8 = heapFloat[(fp+-57)];
	f17 = heapFloat[(fp+-59)];
	f8 = f8+f17;
	f17 = f29*f18;
	f2 = f2+f7;
	f7 = f29*f20;
	f11 = f11+f15;
	f30 = heapFloat[(fp+-55)];
	f13 = f30*f13;
	f4 = f4+f9;
	f9 = f29*f22;
	f8 = f8+f17;
	f11 = f11+f13;
	f2 = f2+f7;
	f4 = f4+f9;
	f7 = f0*f5;
	f9 = f10*f16;
	f13 = f0*f1;
	f15 = f10*f3;
	f7 = f7+f9;
	f9 = f11*f2;
	f13 = f13+f15;
	f15 = f11*f4;
	f7 = f7+f9;
	f9 = f13+f15;
	f13 = heapFloat[(fp+-40)];
if(!(f13 >=f12)) //_LBB587_44
{
	f13 = heapFloat[(r1+109)];
if(!(f13 >=f12)) //_LBB587_44
{
	f1 =                         0;
	if(f7 <f1) //_LBB587_37
{
	f7 = -f7;
}
	f2 =   1.1920928955078125e-007;
if(!(f7 >=f2)) //_LBB587_43
{
	if(f9 <f1) //_LBB587_41
{
	f9 = -f9;
}
	if(f9 <f2) //_LBB587_67
{
break _37;
}
}
	f1 = f10*f8;
	f2 = f11*f6;
	f1 = f1-f2;
	r3 = 1;
	f2 = f11*f14;
	f3 = f0*f8;
	f2 = f2-f3;
	f0 = f0*f6;
	f3 = f10*f14;
	f1 = -f1;
	heap8[r0+514] = r3;
	f0 = f0-f3;
	f2 = -f2;
	heapFloat[(r1+112)] = f1;
	f0 = -f0;
	heapFloat[(r1+113)] = f2;
	heapFloat[(r1+114)] = f0;
	heap32[(r1+115)] = 0;
break _37;
}
}
	f13 = f0*f14;
	f15 = f10*f6;
	f13 = f13+f15;
	f15 = f11*f8;
	f13 = f13+f15;
	f15 = heapFloat[(fp+-40)];
_52: do {
	if(f15 >=f12) //_LBB587_56
{
	f15 =                         0;
	if(f9 <f15) //_LBB587_58
{
	f17 = -f9;
}
else{
	f17 = f9;
}
	f18 =   1.1920928955078125e-007;
	if(f17 <f18) //_LBB587_49
{
break _52;
}
else{
	r3 = 1;
	heap8[r0+514] = r3;
	f17 = heapFloat[(fp+-40)];
	if(f17 <f12) //_LBB587_49
{
break _52;
}
else{
	heapFloat[(g0)] = f7;
	heapFloat[(g0+1)] = f13;
	atan2f(i7);
	f9 = f_g0;
	f12 = heapFloat[(r1+108)];
	if(f12 >=f9) //_LBB587_63
{
	f17 = -f12;
	if(f9 <f17) //_LBB587_65
{
	heapFloat[(g0)] = f12;
	cosf(i7);
	f13 = f_g0;
	f7 = heapFloat[(r1+108)];
	heapFloat[(g0)] = f7;
	sinf(i7);
	f7 = -f_g0;
	f9 =                         0;
}
else{
	f9 = f15;
}
}
else{
	heapFloat[(g0)] = f12;
	cosf(i7);
	f13 = f_g0;
	f9 = heapFloat[(r1+108)];
	heapFloat[(g0)] = f9;
	f9 =                         0;
	sinf(i7);
	f7 = f_g0;
}
}
}
}
else{
	f15 =                         0;
	if(f7 <f15) //_LBB587_47
{
	f17 = -f7;
}
else{
	f17 = f7;
}
	f18 =   1.1920928955078125e-007;
	if(f17 >=f18) //_LBB587_50
{
	r3 = 1;
	heap8[r0+514] = r3;
	f17 = heapFloat[(r1+109)];
if(!(f17 <f12)) //_LBB587_49
{
	heapFloat[(g0)] = f9;
	heapFloat[(g0+1)] = f13;
	atan2f(i7);
	f7 = f_g0;
	f12 = heapFloat[(r1+109)];
	if(f12 >=f7) //_LBB587_53
{
	f17 = -f12;
	if(f7 <f17) //_LBB587_55
{
	heapFloat[(g0)] = f12;
	cosf(i7);
	f13 = f_g0;
	f7 = heapFloat[(r1+109)];
	heapFloat[(g0)] = f7;
	sinf(i7);
	f9 = -f_g0;
	f7 =                         0;
}
else{
	f7 = f15;
}
}
else{
	heapFloat[(g0)] = f12;
	cosf(i7);
	f13 = f_g0;
	f7 = heapFloat[(r1+109)];
	heapFloat[(g0)] = f7;
	f7 =                         0;
	sinf(i7);
	f9 = f_g0;
}
}
}
}
} while(0);
	f12 = f14*f13;
	f5 = f5*f7;
	f6 = f6*f13;
	f14 = f16*f7;
	f5 = f12+f5;
	f1 = f1*f9;
	f6 = f6+f14;
	f3 = f3*f9;
	f8 = f8*f13;
	f2 = f2*f7;
	f1 = f5+f1;
	f3 = f6+f3;
	f2 = f8+f2;
	f4 = f4*f9;
	f2 = f2+f4;
	f4 = f1*f1;
	f5 = f3*f3;
	f4 = f4+f5;
	f5 = f2*f2;
	f4 = f4+f5;
	heapFloat[(g0)] = f4;
	f4 =                         1;
	sqrtf(i7);
	f5 = f4/f_g0;
	f2 = f2*f5;
	f3 = f3*f5;
	f1 = f1*f5;
	f5 = f10*f2;
	f6 = f11*f3;
	f5 = f5-f6;
	f6 = f11*f1;
	f2 = f0*f2;
	f2 = f6-f2;
	f6 = -f5;
	f0 = f0*f3;
	f1 = f10*f1;
	f0 = f0-f1;
	f1 = -f2;
	heapFloat[(r1+112)] = f6;
	f3 = -f0;
	heapFloat[(r1+113)] = f1;
	heapFloat[(r1+114)] = f3;
	heap32[(r1+115)] = 0;
	f1 = f5*f5;
	f2 = f2*f2;
	f1 = f1+f2;
	f0 = f0*f0;
	f0 = f1+f0;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	heapFloat[(r1+123)] = f_g0;
	f0 = heapFloat[(r1+112)];
	f1 = heapFloat[(r1+113)];
	f2 = heapFloat[(r1+114)];
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f4/f_g0;
	f1 = heapFloat[(r1+112)];
	f1 = f1*f0;
	heapFloat[(r1+112)] = f1;
	f1 = heapFloat[(r1+113)];
	f1 = f1*f0;
	heapFloat[(r1+113)] = f1;
	f1 = heapFloat[(r1+114)];
	f0 = f1*f0;
	heapFloat[(r1+114)] = f0;
}
} while(0);
	f0 = heapFloat[(r1+110)];
	f1 =                         0;
	if(f0 <f1) //_LBB587_82
{
	heap32[(r1+125)] = 0;
break _8;
}
else{
	f0 =                        -1;
	f1 = heapFloat[(fp+-41)];
	f1 = f1 < f0 ? f0 : f1;
	f2 =                         1;
	f1 = f1 > f2 ? f2 : f1;
	heapFloat[(g0)] = f1;
	acosf(i7);
	f1 = f_g0+f_g0;
	heapFloat[(r1+125)] = f1;
	f3 =        3.1415927410125732;
	if(f1 >f3) //_LBB587_70
{
	f1 = heapFloat[(fp+-41)];
	f1 = -f1;
	f1 = f1 < f0 ? f0 : f1;
	f0 =                         1;
	f1 = f1 > f0 ? f0 : f1;
	heapFloat[(g0)] = f1;
	acosf(i7);
	f0 = heapFloat[(fp+-39)];
	f0 = -f0;
	heapFloat[(fp+-39)] = f0;
	f0 = heapFloat[(fp+-38)];
	f0 = -f0;
	heapFloat[(fp+-38)] = f0;
	f0 = heapFloat[(fp+-37)];
	f0 = -f0;
	heapFloat[(fp+-37)] = f0;
	f1 = f_g0+f_g0;
	heapFloat[(r1+125)] = f1;
}
	f0 =   1.1920928955078125e-007;
	if(f1 >f0) //_LBB587_73
{
	f1 = heapFloat[(fp+-37)];
	f0 = f1*f1;
	f3 = heapFloat[(fp+-38)];
	f4 = f3*f3;
	f0 = f0+f4;
	f4 = heapFloat[(fp+-39)];
	f5 = f4*f4;
	f0 = f0+f5;
	heapFloat[(g0)] = f0;
	f0 =                         1;
	sqrtf(i7);
	f0 = f0/f_g0;
	f1 = f1*f0;
	heapFloat[(fp+-37)] = f1;
	f3 = f3*f0;
	heapFloat[(fp+-38)] = f3;
	f4 = f4*f0;
	heapFloat[(fp+-39)] = f4;
	f1 = heapFloat[(r1+125)];
}
	f0 = heapFloat[(r1+110)];
	f3 = heapFloat[(r1+104)];
	f4 = f0*f3;
if(!(f1 <=f4)) //_LBB587_80
{
	r3 = 1;
	heap8[r0+513] = r3;
	if(f1 >=f0) //_LBB587_77
{
__label__ = 66;
}
else{
	f5 =       0.99999988079071045;
	if(f3 <f5) //_LBB587_78
{
	f3 = f1-f4;
	f0 = f0-f4;
	f0 = f3/f0;
__label__ = 68;
}
else{
__label__ = 66;
}
}
if (__label__ == 66){
	f0 = f2;
}
	f3 = heapFloat[(fp+-37)];
	f5 = -f3;
	f6 = heapFloat[(fp+-38)];
	f7 = -f6;
	f8 = heapFloat[(fp+-46)];
	f9 = f3*f8;
	f10 = heapFloat[(fp+-45)];
	f11 = f10*f6;
	f12 = heapFloat[(fp+-48)];
	f5 = f12*f5;
	f13 = heapFloat[(fp+-39)];
	f14 = f10*f13;
	f15 = -f13;
	f9 = f9+f11;
	f11 = heapFloat[(fp+-47)];
	f16 = f11*f13;
	f5 = f5-f14;
	f14 = f11*f6;
	f7 = f12*f7;
	f11 = f11*f3;
	f5 = f5+f14;
	f9 = f9+f16;
	f7 = f7-f11;
	f11 = f8*f13;
	f13 = f12*f15;
	f6 = f8*f6;
	f7 = f7+f11;
	f8 = heapFloat[(fp+-42)];
	f11 = f9*f8;
	f14 = f5*f12;
	f6 = f13-f6;
	f3 = f10*f3;
	f3 = f6+f3;
	f6 = heapFloat[(fp+-44)];
	f10 = f9*f6;
	f13 = f7*f12;
	f11 = f11+f14;
	f14 = heapFloat[(fp+-43)];
	f15 = f7*f14;
	f9 = f9*f14;
	f12 = f3*f12;
	f10 = f10+f13;
	f13 = f3*f8;
	f11 = f11+f15;
	f3 = f3*f6;
	f1 = f1-f4;
	heapFloat[(r1+130)] = f0;
	f0 = f9+f12;
	f4 = f5*f6;
	f6 = f10+f13;
	f5 = f5*f14;
	f3 = f11-f3;
	heapFloat[(r1+124)] = f1;
	f0 = f0+f4;
	f1 = f7*f8;
	f4 = f6-f5;
	heapFloat[(r1+116)] = f3;
	f0 = f0-f1;
	heapFloat[(r1+117)] = f4;
	heapFloat[(r1+118)] = f0;
	r2 = r2 >> 2;
	heap32[(r1+119)] = 0;
	r3 = r5 >> 2;
	f1 = heapFloat[(r2+1)];
	f5 = heapFloat[(r2+5)];
	f6 = heapFloat[(r2)];
	f7 = heapFloat[(r2+4)];
	f8 = heapFloat[(r3+1)];
	f9 = heapFloat[(r3+5)];
	f10 = heapFloat[(r3)];
	f11 = heapFloat[(r3+4)];
	f12 = heapFloat[(r2+2)];
	f13 = heapFloat[(r2+6)];
	f14 = heapFloat[(r2+9)];
	f15 = heapFloat[(r2+8)];
	f16 = heapFloat[(r3+2)];
	f17 = heapFloat[(r3+6)];
	f18 = heapFloat[(r3+9)];
	f19 = heapFloat[(r3+8)];
	f6 = f6*f3;
	f7 = f7*f4;
	f1 = f1*f3;
	f5 = f5*f4;
	f10 = f10*f3;
	f11 = f11*f4;
	f8 = f8*f3;
	f9 = f9*f4;
	f20 = heapFloat[(r2+10)];
	f21 = heapFloat[(r3+10)];
	f6 = f6+f7;
	f7 = f15*f0;
	f1 = f1+f5;
	f5 = f14*f0;
	f12 = f12*f3;
	f13 = f13*f4;
	f10 = f10+f11;
	f11 = f19*f0;
	f8 = f8+f9;
	f9 = f18*f0;
	f14 = f16*f3;
	f15 = f17*f4;
	f6 = f6+f7;
	f1 = f1+f5;
	f5 = f10+f11;
	f7 = f8+f9;
	f8 = f12+f13;
	f9 = f20*f0;
	f10 = f14+f15;
	f11 = f21*f0;
	f8 = f8+f9;
	f9 = f10+f11;
	f6 = f3*f6;
	f1 = f4*f1;
	f3 = f3*f5;
	f4 = f4*f7;
	f1 = f6+f1;
	f5 = f0*f8;
	f3 = f3+f4;
	f0 = f0*f9;
	f1 = f1+f5;
	f0 = f3+f0;
	f0 = f1+f0;
	f0 = f2/f0;
	heapFloat[(r1+121)] = f0;
}
	r0 = heapU8[r0+514];
	if(r0 ==0) //_LBB587_83
{
break _8;
}
else{
	f0 = heapFloat[(fp+-37)];
	f1 = -f0;
	f2 = heapFloat[(fp+-38)];
	f3 = -f2;
	f4 = heapFloat[(fp+-52)];
	f1 = f4*f1;
	f6 = heapFloat[(fp+-39)];
	f5 = heapFloat[(fp+-50)];
	f7 = f5*f6;
	f8 = heapFloat[(fp+-49)];
	f9 = f0*f8;
	f10 = f5*f2;
	f11 = -f6;
	f1 = f1-f7;
	f7 = heapFloat[(fp+-51)];
	f12 = f7*f2;
	f9 = f9+f10;
	f10 = f7*f6;
	f3 = f4*f3;
	f13 = f7*f0;
	f1 = f1+f12;
	f9 = f9+f10;
	f3 = f3-f13;
	f6 = f8*f6;
	f10 = f4*f11;
	f2 = f8*f2;
	f3 = f3+f6;
	f6 = f1*f4;
	f11 = f9*f8;
	f2 = f10-f2;
	f0 = f5*f0;
	f0 = f2+f0;
	f2 = f3*f4;
	f10 = f9*f5;
	f6 = f6-f11;
	f11 = f3*f7;
	f4 = f0*f4;
	f9 = f9*f7;
	f2 = f2-f10;
	f10 = f0*f8;
	f6 = f6-f11;
	f0 = f0*f5;
	f0 = f6+f0;
	f4 = f4-f9;
	f5 = f1*f5;
	f2 = f2-f10;
	f1 = f1*f7;
	f4 = f4-f5;
	f3 = f3*f8;
	f1 = f2+f1;
	heapFloat[(r1+131)] = f0;
	f0 = f4+f3;
	heapFloat[(r1+132)] = f1;
	heapFloat[(r1+133)] = f0;
	heap32[(r1+134)] = 0;
	return;
}
}
}
}
	r0 = _2E_str584;
	r1 = _2E_str685;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 188;
	_assert(i7);
}
} while(0);
	return;
}

function _ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	heap32[(r0+2)] = 0;
	r1 = r1 >> 2;
	heap32[(r0+3)] = 0;
	r2 = r2 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r2)];
	f2 = heapFloat[(r1+1)];
	f3 = heapFloat[(r2+1)];
	f4 = heapFloat[(r2+4)];
	f5 = heapFloat[(r2+5)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r1+2)];
	f7 = heapFloat[(r2+2)];
	f8 = heapFloat[(r2+8)];
	f9 = heapFloat[(r2+9)];
	f10 = heapFloat[(r2+10)];
	f11 = heapFloat[(r2+6)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f11*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f10*f6;
	f3 = f4+f5;
	heapFloat[(r0+4)] = f1;
	f0 = f0+f2;
	heapFloat[(r0+5)] = f3;
	heapFloat[(r0+6)] = f0;
	heap32[(r0+7)] = 0;
	r2 = heap32[(fp+3)];
	r2 = r2 >> 2;
	f2 = heapFloat[(r1)];
	f2 = -f2;
	f4 = heapFloat[(r2)];
	f5 = heapFloat[(r1+1)];
	f6 = heapFloat[(r2+1)];
	f7 = heapFloat[(r2+4)];
	f8 = heapFloat[(r2+5)];
	f4 = f4*f2;
	f6 = f6*f5;
	f9 = heapFloat[(r1+2)];
	f10 = heapFloat[(r2+2)];
	f11 = heapFloat[(r2+8)];
	f12 = heapFloat[(r2+9)];
	f13 = heapFloat[(r2+10)];
	f14 = heapFloat[(r2+6)];
	f7 = f7*f2;
	f8 = f8*f5;
	f4 = f4-f6;
	f6 = f10*f9;
	f2 = f11*f2;
	f5 = f12*f5;
	f7 = f7-f8;
	f8 = f14*f9;
	f4 = f4-f6;
	f2 = f2-f5;
	f5 = f13*f9;
	f6 = f7-f8;
	heapFloat[(r0+8)] = f4;
	f2 = f2-f5;
	heapFloat[(r0+9)] = f6;
	r1 = heap32[(fp+4)];
	heapFloat[(r0+10)] = f2;
	r1 = r1 >> 2;
	heap32[(r0+11)] = 0;
	f5 = heapFloat[(r1+2)];
	f7 = heapFloat[(r1+1)];
	f8 = heapFloat[(r1)];
	f8 = f8*f1;
	f7 = f7*f3;
	heapFloat[(r0+12)] = f8;
	f5 = f5*f0;
	heapFloat[(r0+13)] = f7;
	r1 = heap32[(fp+5)];
	heapFloat[(r0+14)] = f5;
	r1 = r1 >> 2;
	heap32[(r0+15)] = 0;
	f9 = heapFloat[(r1+2)];
	f10 = heapFloat[(r1+1)];
	f11 = heapFloat[(r1)];
	f10 = f10*f6;
	f11 = f11*f4;
	f9 = f9*f2;
	heapFloat[(r0+16)] = f11;
	f1 = f8*f1;
	f3 = f7*f3;
	f4 = f11*f4;
	f6 = f10*f6;
	heapFloat[(r0+17)] = f10;
	f1 = f1+f3;
	f0 = f5*f0;
	f3 = f4+f6;
	f2 = f9*f2;
	heapFloat[(r0+18)] = f9;
	f0 = f1+f0;
	f1 = f3+f2;
	f0 = f0+f1;
	heap32[(r0+19)] = 0;
	f1 =                         0;
	heapFloat[(r0+20)] = f0;
	if(f0 >f1) //_LBB588_2
{
	return;
}
else{
	r0 = _2E_str846;
	r1 = _2E_str947;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 70;
	_assert(i7);
}
}

function _Z21btAdjustAngleToLimitsfff(sp)
{
	var i7;
	var fp = sp>>2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	f0 = heapFloat[(fp+1)];
	f1 = heapFloat[(fp+2)];
	f2 = heapFloat[(fp)];
_1: do {
if(!(f0 >=f1)) //_LBB589_39
{
	if(f2 >=f0) //_LBB589_20
{
	if(f2 <=f1) //_LBB589_39
{
break _1;
}
else{
	f1 = f2-f1;
	heapFloat[(g0)] = f1;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f1 = f_g0;
	f3 =       -3.1415927410125732;
	if(f1 >=f3) //_LBB589_23
{
	f4 =        3.1415927410125732;
	if(f1 >f4) //_LBB589_25
{
	f4 =       -6.2831854820251465;
	f1 = f1+f4;
}
}
else{
	f4 =        6.2831854820251465;
	f1 = f1+f4;
}
	f4 =                         0;
	if(f1 <f4) //_LBB589_28
{
	f1 = -f1;
}
	f0 = f2-f0;
	heapFloat[(g0)] = f0;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f0 = f_g0;
	if(f0 >=f3) //_LBB589_31
{
	f3 =        3.1415927410125732;
	if(f0 >f3) //_LBB589_33
{
	f3 =       -6.2831854820251465;
	f0 = f0+f3;
}
}
else{
	f3 =        6.2831854820251465;
	f0 = f0+f3;
}
	if(f0 <f4) //_LBB589_36
{
	f0 = -f0;
}
	if(f0 >=f1) //_LBB589_39
{
break _1;
}
else{
	f0 =       -6.2831854820251465;
	f2 = f2+f0;
}
}
}
else{
	f0 = f0-f2;
	heapFloat[(g0)] = f0;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f0 = f_g0;
	f3 =       -3.1415927410125732;
	if(f0 >=f3) //_LBB589_4
{
	f4 =        3.1415927410125732;
	if(f0 >f4) //_LBB589_6
{
	f4 =       -6.2831854820251465;
	f0 = f0+f4;
}
}
else{
	f4 =        6.2831854820251465;
	f0 = f0+f4;
}
	f4 =                         0;
	if(f0 <f4) //_LBB589_9
{
	f0 = -f0;
}
	f1 = f1-f2;
	heapFloat[(g0)] = f1;
	heap32[(g0+1)] = 1086918619;
	fmodf(i7);
	f1 = f_g0;
	if(f1 >=f3) //_LBB589_12
{
	f3 =        3.1415927410125732;
	if(f1 >f3) //_LBB589_14
{
	f3 =       -6.2831854820251465;
	f1 = f1+f3;
}
}
else{
	f3 =        6.2831854820251465;
	f1 = f1+f3;
}
	if(f1 <f4) //_LBB589_17
{
	f1 = -f1;
}
if(!(f0 <f1)) //_LBB589_39
{
	f0 =        6.2831854820251465;
	f0 = f2+f0;
	f_g0 = f0;
	return;
}
}
}
} while(0);
	f_g0 = f2;
	return;
}

function _ZNK17btHingeConstraint28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 212;
	r_g0 = r0;
	return;
}

function _ZNK17btHingeConstraint9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	r1 = r1 >> 2;
	r2 = r0 >> 2;
	_ZNK17btTypedConstraint9serializeEPvP12btSerializer(i7);
	heap32[(r1+11)] = heap32[(r2+135)];
	heap32[(r1+12)] = heap32[(r2+136)];
	heap32[(r1+13)] = heap32[(r2+137)];
	heap32[(r1+14)] = heap32[(r2+138)];
	heap32[(r1+15)] = heap32[(r2+139)];
	heap32[(r1+16)] = heap32[(r2+140)];
	heap32[(r1+17)] = heap32[(r2+141)];
	heap32[(r1+18)] = heap32[(r2+142)];
	heap32[(r1+19)] = heap32[(r2+143)];
	heap32[(r1+20)] = heap32[(r2+144)];
	heap32[(r1+21)] = heap32[(r2+145)];
	heap32[(r1+22)] = heap32[(r2+146)];
	heap32[(r1+23)] = heap32[(r2+147)];
	heap32[(r1+24)] = heap32[(r2+148)];
	heap32[(r1+25)] = heap32[(r2+149)];
	heap32[(r1+26)] = heap32[(r2+150)];
	heap32[(r1+27)] = heap32[(r2+151)];
	heap32[(r1+28)] = heap32[(r2+152)];
	heap32[(r1+29)] = heap32[(r2+153)];
	heap32[(r1+30)] = heap32[(r2+154)];
	heap32[(r1+31)] = heap32[(r2+155)];
	heap32[(r1+32)] = heap32[(r2+156)];
	heap32[(r1+33)] = heap32[(r2+157)];
	heap32[(r1+34)] = heap32[(r2+158)];
	heap32[(r1+35)] = heap32[(r2+159)];
	heap32[(r1+36)] = heap32[(r2+160)];
	heap32[(r1+37)] = heap32[(r2+161)];
	heap32[(r1+38)] = heap32[(r2+162)];
	heap32[(r1+39)] = heap32[(r2+163)];
	heap32[(r1+40)] = heap32[(r2+164)];
	heap32[(r1+41)] = heap32[(r2+165)];
	heap32[(r1+42)] = heap32[(r2+166)];
	r3 = heapU8[r0+720];
	heap32[(r1+44)] = r3;
	r3 = heapU8[r0+721];
	heap32[(r1+45)] = r3;
	heap32[(r1+47)] = heap32[(r2+168)];
	heap32[(r1+46)] = heap32[(r2+167)];
	r0 = heapU8[r0+725];
	heap32[(r1+43)] = r0;
	heap32[(r1+48)] = heap32[(r2+172)];
	heap32[(r1+49)] = heap32[(r2+173)];
	heap32[(r1+50)] = heap32[(r2+169)];
	heap32[(r1+51)] = heap32[(r2+170)];
	heap32[(r1+52)] = heap32[(r2+171)];
	r0 = _2E_str29;
	r_g0 = r0;
	return;
}

function _ZN17btHingeConstraintD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17btHingeConstraint;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN17btHingeConstraintD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV17btHingeConstraint;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN17btHingeConstraint13buildJacobianEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
var __label__ = 0;
	i7 = sp + -552;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+723];
if(!(r1 ==0)) //_LBB594_25
{
	r1 = r0 >> 2;
	heap32[(r1+7)] = 0;
	heap32[(r1+182)] = 0;
	r2 = heapU8[r0+720];
if(!(r2 !=0)) //_LBB594_13
{
	r2 = heap32[(r1+6)];
	r3 = heap32[(r1+5)];
	r2 = r2 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r2+5)];
	f1 = heapFloat[(r1+163)];
	f2 = heapFloat[(r2+1)];
	f3 = heapFloat[(r2+6)];
	f4 = heapFloat[(r1+164)];
	f5 = heapFloat[(r2+2)];
	f6 = heapFloat[(r3+5)];
	f7 = heapFloat[(r1+147)];
	f8 = heapFloat[(r3+1)];
	f9 = heapFloat[(r3+6)];
	f10 = heapFloat[(r1+148)];
	f11 = heapFloat[(r3+2)];
	f12 = heapFloat[(r2+9)];
	f13 = heapFloat[(r2+10)];
	f14 = heapFloat[(r3+9)];
	f15 = heapFloat[(r3+10)];
	f0 = f0*f1;
	f3 = f3*f4;
	f16 = heapFloat[(r2+7)];
	f17 = heapFloat[(r1+165)];
	f18 = heapFloat[(r2+3)];
	f6 = f6*f7;
	f9 = f9*f10;
	f19 = heapFloat[(r3+7)];
	f20 = heapFloat[(r1+149)];
	f21 = heapFloat[(r3+3)];
	f2 = f2*f1;
	f5 = f5*f4;
	f8 = f8*f7;
	f11 = f11*f10;
	f22 = heapFloat[(r2+11)];
	f23 = heapFloat[(r3+11)];
	f1 = f12*f1;
	f4 = f13*f4;
	f7 = f14*f7;
	f10 = f15*f10;
	f0 = f0+f3;
	f3 = f16*f17;
	f6 = f6+f9;
	f9 = f19*f20;
	f2 = f2+f5;
	f5 = f18*f17;
	f8 = f8+f11;
	f11 = f21*f20;
	f1 = f1+f4;
	f4 = f22*f17;
	f7 = f7+f10;
	f10 = f23*f20;
	f0 = f0+f3;
	f3 = heapFloat[(r2+14)];
	f6 = f6+f9;
	f9 = heapFloat[(r3+14)];
	f2 = f2+f5;
	f5 = heapFloat[(r2+13)];
	f8 = f8+f11;
	f11 = heapFloat[(r3+13)];
	f0 = f0+f3;
	f3 = f6+f9;
	f2 = f2+f5;
	f5 = f8+f11;
	f1 = f1+f4;
	f4 = heapFloat[(r2+15)];
	f6 = f7+f10;
	f7 = heapFloat[(r3+15)];
	f8 = f0-f3;
	f9 = f2-f5;
	f1 = f1+f4;
	f4 = f6+f7;
	f6 = f1-f4;
	f7 = f9*f9;
	f10 = f8*f8;
	f7 = f7+f10;
	f10 = f6*f6;
	f7 = f7+f10;
	f10 =   1.1920928955078125e-007;
	if(f7 >f10) //_LBB594_4
{
	heapFloat[(g0)] = f7;
	f10 =                         1;
	sqrtf(i7);
	f11 = f10/f_g0;
	r2 = sp + -512;
	f7 = f9*f11;
	f8 = f8*f11;
	r3 = r2 >> 2;
	heapFloat[(fp+-128)] = f7;
	f6 = f6*f11;
	heapFloat[(r3+1)] = f8;
	r2 = (r2 + 8)|0;
	heapFloat[(r3+2)] = f6;
	heap32[(r3+3)] = 0;
	f9 =                         0;
	if(f6 <f9) //_LBB594_6
{
	f9 = -f6;
}
else{
	f9 = f6;
}
	f11 =       0.70710676908493042;
	if(f9 >f11) //_LBB594_9
{
	f7 = f8*f8;
	f8 = f6*f6;
	f7 = f7+f8;
	heapFloat[(g0)] = f7;
	sqrtf(i7);
	heap32[(r3+4)] = 0;
	f6 = heapFloat[(r3+2)];
	f8 = f10/f_g0;
	f6 = -f6;
	f6 = f8*f6;
	heapFloat[(r3+5)] = f6;
	f9 = heapFloat[(r3+1)];
	f9 = f9*f8;
	f7 = f7*f8;
	heapFloat[(r3+6)] = f9;
	heapFloat[(r3+8)] = f7;
	f7 = heapFloat[(fp+-128)];
	f8 = -f7;
	f8 = f9*f8;
	f7 = f7*f6;
	heapFloat[(r3+9)] = f8;
	heapFloat[(r3+10)] = f7;
__label__ = 10;
}
else{
__label__ = 9;
}
}
else{
	r2 = sp + -512;
	r3 = r2 >> 2;
	heap32[(fp+-128)] = 1065353216;
	heap32[(r3+1)] = 0;
	r2 = (r2 + 8)|0;
	f7 =                         1;
	f8 =                         0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = 0;
__label__ = 9;
}
if (__label__ == 9){
	f6 = f7*f7;
	f7 = f8*f8;
	f6 = f6+f7;
	r3 = sp + -512;
	heapFloat[(g0)] = f6;
	r3 = r3 >> 2;
	sqrtf(i7);
	f8 =                         1;
	f9 = heapFloat[(r3+1)];
	f7 = f8/f_g0;
	f8 = -f9;
	f8 = f7*f8;
	heapFloat[(r3+4)] = f8;
	f9 = heapFloat[(fp+-128)];
	f9 = f9*f7;
	heapFloat[(r3+5)] = f9;
	r2 = r2 >> 2;
	heap32[(r3+6)] = 0;
	f10 = heapFloat[(r2)];
	f11 = -f10;
	f9 = f9*f11;
	f8 = f10*f8;
	heapFloat[(r3+8)] = f9;
	f6 = f6*f7;
	heapFloat[(r3+9)] = f8;
	heapFloat[(r3+10)] = f6;
}
	r2 = (r0 + 36)|0;
	r3 = 0;
_16: while(true){
	r4 = heap32[(r1+5)];
	r5 = r4 >> 2;
	r6 = sp + -416;
	r7 = r6 >> 2;
	heap32[(fp+-104)] = heap32[(r5+1)];
	heap32[(r7+1)] = heap32[(r5+5)];
	heap32[(r7+2)] = heap32[(r5+9)];
	heap32[(r7+3)] = 0;
	heap32[(r7+4)] = heap32[(r5+2)];
	heap32[(r7+5)] = heap32[(r5+6)];
	heap32[(r7+6)] = heap32[(r5+10)];
	heap32[(r7+7)] = 0;
	heap32[(r7+8)] = heap32[(r5+3)];
	heap32[(r7+9)] = heap32[(r5+7)];
	heap32[(r7+10)] = heap32[(r5+11)];
	heap32[(r7+11)] = 0;
	r7 = heap32[(r1+6)];
	r8 = sp + -368;
	r9 = r7 >> 2;
	r10 = r8 >> 2;
	heap32[(fp+-92)] = heap32[(r9+1)];
	heap32[(r10+1)] = heap32[(r9+5)];
	heap32[(r10+2)] = heap32[(r9+9)];
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = heap32[(r9+2)];
	heap32[(r10+5)] = heap32[(r9+6)];
	heap32[(r10+6)] = heap32[(r9+10)];
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = heap32[(r9+3)];
	heap32[(r10+9)] = heap32[(r9+7)];
	heap32[(r10+10)] = heap32[(r9+11)];
	heap32[(r10+11)] = 0;
	f6 = heapFloat[(r5+13)];
	f7 = heapFloat[(r5+15)];
	f8 = heapFloat[(r5+14)];
	r10 = sp + -320;
	f6 = f5-f6;
	r11 = r10 >> 2;
	f8 = f3-f8;
	heapFloat[(fp+-80)] = f6;
	f6 = f4-f7;
	heapFloat[(r11+1)] = f8;
	heapFloat[(r11+2)] = f6;
	heap32[(r11+3)] = 0;
	f6 = heapFloat[(r9+13)];
	f7 = heapFloat[(r9+15)];
	f8 = heapFloat[(r9+14)];
	r11 = sp + -304;
	f6 = f2-f6;
	r12 = r11 >> 2;
	f8 = f0-f8;
	heapFloat[(fp+-76)] = f6;
	f6 = f1-f7;
	heapFloat[(r12+1)] = f8;
	heapFloat[(r12+2)] = f6;
	heap32[(r12+3)] = 0;
	f6 = heapFloat[(r9+84)];
	f7 = heapFloat[(r5+84)];
	r5 = sp + -512;
	r5 = (r5 + r3)|0;
	r4 = (r4 + 388)|0;
	r7 = (r7 + 388)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r11;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = r4;
	heapFloat[(g0+7)] = f7;
	heap32[(g0+8)] = r7;
	heapFloat[(g0+9)] = f6;
	r3 = (r3 + 16)|0;
	r2 = (r2 + 84)|0;
	_ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(i7);
if(!(r3 !=48)) //_LBB594_12
{
break _16;
}
}
}
	f0 = heapFloat[(r1+145)];
	f1 = heapFloat[(r1+137)];
	f2 = heapFloat[(r1+141)];
	f3 =                         0;
	if(f0 <f3) //_LBB594_15
{
	f4 = -f0;
}
else{
	f4 = f0;
}
	f5 =       0.70710676908493042;
	if(f4 <=f5) //_LBB594_18
{
	f4 = f1*f1;
	f6 = f2*f2;
	f5 = f4+f6;
	heapFloat[(g0)] = f5;
	f4 =                         1;
	sqrtf(i7);
	f7 = f4/f_g0;
	f2 = -f2;
	f4 = f7*f2;
	f6 = f1*f7;
	f1 = -f0;
	f2 = f6*f1;
	f0 = f0*f4;
	f1 = f5*f7;
}
else{
	f3 = f2*f2;
	f4 = f0*f0;
	f4 = f3+f4;
	heapFloat[(g0)] = f4;
	f3 =                         1;
	sqrtf(i7);
	f5 = f3/f_g0;
	f0 = -f0;
	f6 = f5*f0;
	f3 = f2*f5;
	f0 = -f1;
	f2 = f4*f5;
	f0 = f3*f0;
	f1 = f1*f6;
	f4 =                         0;
}
	r2 = heap32[(r1+5)];
	r3 = r2 >> 2;
	f5 = heapFloat[(r3+2)];
	f7 = heapFloat[(r3+1)];
	f8 = heapFloat[(r3+6)];
	f9 = heapFloat[(r3+5)];
	f10 = heapFloat[(r3+3)];
	f11 = f7*f4;
	f12 = f5*f6;
	f13 = heapFloat[(r3+11)];
	f14 = heapFloat[(r3+7)];
	f15 = heapFloat[(r3+10)];
	f16 = heapFloat[(r3+9)];
	f17 = f9*f4;
	f18 = f8*f6;
	f11 = f11+f12;
	f12 = f10*f3;
	r3 = sp + -432;
	f4 = f16*f4;
	f6 = f15*f6;
	f17 = f17+f18;
	f18 = f14*f3;
	f11 = f11+f12;
	r4 = r3 >> 2;
	f4 = f4+f6;
	f3 = f13*f3;
	f6 = f17+f18;
	heapFloat[(fp+-108)] = f11;
	f11 = f7*f2;
	f12 = f5*f0;
	f3 = f4+f3;
	heapFloat[(r4+1)] = f6;
	heapFloat[(r4+2)] = f3;
	f3 = f9*f2;
	f4 = f8*f0;
	f6 = f11+f12;
	f11 = f10*f1;
	r5 = sp + -448;
	f2 = f16*f2;
	f0 = f15*f0;
	f3 = f3+f4;
	f4 = f14*f1;
	f6 = f6+f11;
	heap32[(r4+3)] = 0;
	r4 = r5 >> 2;
	f0 = f2+f0;
	f1 = f13*f1;
	f2 = f3+f4;
	heapFloat[(fp+-112)] = f6;
	f0 = f0+f1;
	heapFloat[(r4+1)] = f2;
	heapFloat[(r4+2)] = f0;
	heap32[(r4+3)] = 0;
	f0 = heapFloat[(r1+137)];
	f1 = heapFloat[(r1+141)];
	f2 = heapFloat[(r1+145)];
	f3 = f7*f0;
	f4 = f5*f1;
	f6 = f9*f0;
	f11 = f8*f1;
	f3 = f3+f4;
	f4 = f10*f2;
	r4 = sp + -464;
	f0 = f16*f0;
	f1 = f15*f1;
	f6 = f6+f11;
	f11 = f14*f2;
	f3 = f3+f4;
	r6 = r4 >> 2;
	f0 = f0+f1;
	f1 = f13*f2;
	f2 = f6+f11;
	heapFloat[(fp+-116)] = f3;
	f0 = f0+f1;
	heapFloat[(r6+1)] = f2;
	heapFloat[(r6+2)] = f0;
	r7 = sp + -288;
	heap32[(r6+3)] = 0;
	r6 = r7 >> 2;
	heapFloat[(fp+-72)] = f7;
	heapFloat[(r6+1)] = f9;
	heapFloat[(r6+2)] = f16;
	heap32[(r6+3)] = 0;
	heapFloat[(r6+4)] = f5;
	heapFloat[(r6+5)] = f8;
	heapFloat[(r6+6)] = f15;
	heap32[(r6+7)] = 0;
	heapFloat[(r6+8)] = f10;
	heapFloat[(r6+9)] = f14;
	heapFloat[(r6+10)] = f13;
	heap32[(r6+11)] = 0;
	r6 = heap32[(r1+6)];
	r8 = sp + -240;
	r9 = r6 >> 2;
	r10 = r8 >> 2;
	heap32[(fp+-60)] = heap32[(r9+1)];
	heap32[(r10+1)] = heap32[(r9+5)];
	heap32[(r10+2)] = heap32[(r9+9)];
	heap32[(r10+3)] = 0;
	heap32[(r10+4)] = heap32[(r9+2)];
	heap32[(r10+5)] = heap32[(r9+6)];
	heap32[(r10+6)] = heap32[(r9+10)];
	heap32[(r10+7)] = 0;
	heap32[(r10+8)] = heap32[(r9+3)];
	heap32[(r10+9)] = heap32[(r9+7)];
	heap32[(r10+10)] = heap32[(r9+11)];
	heap32[(r10+11)] = 0;
	r9 = (r0 + 288)|0;
	r2 = (r2 + 388)|0;
	r6 = (r6 + 388)|0;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r8;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r6;
	_ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7);
	r2 = heap32[(r1+5)];
	r3 = sp + -192;
	r6 = r2 >> 2;
	r7 = r3 >> 2;
	heap32[(fp+-48)] = heap32[(r6+1)];
	heap32[(r7+1)] = heap32[(r6+5)];
	heap32[(r7+2)] = heap32[(r6+9)];
	heap32[(r7+3)] = 0;
	heap32[(r7+4)] = heap32[(r6+2)];
	heap32[(r7+5)] = heap32[(r6+6)];
	heap32[(r7+6)] = heap32[(r6+10)];
	heap32[(r7+7)] = 0;
	heap32[(r7+8)] = heap32[(r6+3)];
	heap32[(r7+9)] = heap32[(r6+7)];
	heap32[(r7+10)] = heap32[(r6+11)];
	heap32[(r7+11)] = 0;
	r6 = heap32[(r1+6)];
	r7 = sp + -144;
	r8 = r6 >> 2;
	r9 = r7 >> 2;
	heap32[(fp+-36)] = heap32[(r8+1)];
	heap32[(r9+1)] = heap32[(r8+5)];
	heap32[(r9+2)] = heap32[(r8+9)];
	heap32[(r9+3)] = 0;
	heap32[(r9+4)] = heap32[(r8+2)];
	heap32[(r9+5)] = heap32[(r8+6)];
	heap32[(r9+6)] = heap32[(r8+10)];
	heap32[(r9+7)] = 0;
	heap32[(r9+8)] = heap32[(r8+3)];
	heap32[(r9+9)] = heap32[(r8+7)];
	heap32[(r9+10)] = heap32[(r8+11)];
	heap32[(r9+11)] = 0;
	r8 = (r0 + 372)|0;
	r2 = (r2 + 388)|0;
	r6 = (r6 + 388)|0;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r6;
	_ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7);
	r2 = heap32[(r1+5)];
	r3 = sp + -96;
	r5 = r2 >> 2;
	r6 = r3 >> 2;
	heap32[(fp+-24)] = heap32[(r5+1)];
	heap32[(r6+1)] = heap32[(r5+5)];
	heap32[(r6+2)] = heap32[(r5+9)];
	heap32[(r6+3)] = 0;
	heap32[(r6+4)] = heap32[(r5+2)];
	heap32[(r6+5)] = heap32[(r5+6)];
	heap32[(r6+6)] = heap32[(r5+10)];
	heap32[(r6+7)] = 0;
	heap32[(r6+8)] = heap32[(r5+3)];
	heap32[(r6+9)] = heap32[(r5+7)];
	heap32[(r6+10)] = heap32[(r5+11)];
	heap32[(r6+11)] = 0;
	r5 = heap32[(r1+6)];
	r6 = sp + -48;
	r7 = r5 >> 2;
	r8 = r6 >> 2;
	heap32[(fp+-12)] = heap32[(r7+1)];
	heap32[(r8+1)] = heap32[(r7+5)];
	heap32[(r8+2)] = heap32[(r7+9)];
	heap32[(r8+3)] = 0;
	heap32[(r8+4)] = heap32[(r7+2)];
	heap32[(r8+5)] = heap32[(r7+6)];
	heap32[(r8+6)] = heap32[(r7+10)];
	heap32[(r8+7)] = 0;
	heap32[(r8+8)] = heap32[(r7+3)];
	heap32[(r8+9)] = heap32[(r7+7)];
	heap32[(r8+10)] = heap32[(r7+11)];
	heap32[(r8+11)] = 0;
	r7 = (r0 + 456)|0;
	r2 = (r2 + 388)|0;
	r5 = (r5 + 388)|0;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r6;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r5;
	_ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7);
	heap32[(r1+177)] = 0;
	r2 = heap32[(r1+6)];
	r3 = heap32[(r1+5)];
	r3 = (r3 + 4)|0;
	r2 = (r2 + 4)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	_ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(i7);
	f0 = f_g0;
	heapFloat[(r1+178)] = f0;
	heap32[(r1+176)] = 0;
	r2 = 0;
	heap32[(r1+175)] = 0;
	heap8[r0+722] = r2;
	f1 = heapFloat[(r1+172)];
	f2 = heapFloat[(r1+173)];
if(!(f1 >f2)) //_LBB594_24
{
	heapFloat[(g0)] = f0;
	heapFloat[(g0+1)] = f1;
	heapFloat[(g0+2)] = f2;
	_Z21btAdjustAngleToLimitsfff(i7);
	f0 = f_g0;
	heapFloat[(r1+178)] = f0;
	f1 = heapFloat[(r1+172)];
	if(f0 >f1) //_LBB594_22
{
	f1 = heapFloat[(r1+173)];
if(!(f0 <f1)) //_LBB594_24
{
	f0 = f1-f0;
	heapFloat[(r1+176)] = f0;
	r2 = 1;
	heap32[(r1+175)] = -1082130432;
	heap8[r0+722] = r2;
}
}
else{
	f0 = f1-f0;
	heapFloat[(r1+176)] = f0;
	r2 = 1;
	heap32[(r1+175)] = 1065353216;
	heap8[r0+722] = r2;
}
}
	r0 = heap32[(r1+5)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r1+137)];
	f1 = heapFloat[(r0+5)];
	f2 = heapFloat[(r0+1)];
	f3 = heapFloat[(r1+141)];
	f4 = heapFloat[(r0+6)];
	f5 = heapFloat[(r0+2)];
	f6 = heapFloat[(r0+9)];
	f7 = heapFloat[(r0+10)];
	r2 = heap32[(r1+6)];
	f2 = f2*f0;
	f5 = f5*f3;
	f1 = f1*f0;
	f4 = f4*f3;
	f8 = heapFloat[(r1+145)];
	f9 = heapFloat[(r0+7)];
	f10 = heapFloat[(r0+3)];
	r2 = r2 >> 2;
	f11 = heapFloat[(r0+11)];
	f0 = f6*f0;
	f3 = f7*f3;
	f2 = f2+f5;
	f5 = f10*f8;
	f1 = f1+f4;
	f4 = f9*f8;
	f0 = f0+f3;
	f3 = f11*f8;
	f2 = f2+f5;
	f5 = heapFloat[(r0+65)];
	f6 = heapFloat[(r0+64)];
	f7 = heapFloat[(r2+65)];
	f8 = heapFloat[(r2+64)];
	f1 = f1+f4;
	f4 = heapFloat[(r0+69)];
	f9 = heapFloat[(r0+68)];
	f10 = heapFloat[(r2+69)];
	f11 = heapFloat[(r2+68)];
	f12 = heapFloat[(r0+66)];
	f13 = heapFloat[(r0+70)];
	f14 = heapFloat[(r2+66)];
	f15 = heapFloat[(r2+70)];
	f6 = f6*f2;
	f9 = f9*f1;
	f5 = f5*f2;
	f4 = f4*f1;
	f8 = f8*f2;
	f11 = f11*f1;
	f7 = f7*f2;
	f10 = f10*f1;
	f0 = f0+f3;
	f3 = heapFloat[(r0+73)];
	f16 = heapFloat[(r0+72)];
	f17 = heapFloat[(r2+73)];
	f18 = heapFloat[(r2+72)];
	f19 = heapFloat[(r0+74)];
	f20 = heapFloat[(r2+74)];
	f6 = f6+f9;
	f9 = f16*f0;
	f4 = f5+f4;
	f3 = f3*f0;
	f5 = f12*f2;
	f12 = f13*f1;
	f8 = f8+f11;
	f11 = f18*f0;
	f7 = f7+f10;
	f10 = f17*f0;
	f13 = f14*f2;
	f14 = f15*f1;
	f6 = f6+f9;
	f3 = f4+f3;
	f4 = f8+f11;
	f7 = f7+f10;
	f5 = f5+f12;
	f8 = f19*f0;
	f9 = f13+f14;
	f10 = f20*f0;
	f5 = f5+f8;
	f8 = f9+f10;
	f6 = f2*f6;
	f3 = f1*f3;
	f2 = f2*f4;
	f1 = f1*f7;
	f3 = f6+f3;
	f4 = f0*f5;
	f1 = f2+f1;
	f0 = f0*f8;
	f2 = f3+f4;
	f0 = f1+f0;
	f1 =                         1;
	f0 = f2+f0;
	f0 = f1/f0;
	heapFloat[(r1+174)] = f0;
}
	return;
}

function _ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heapU8[r0+723];
	if(r2 ==0) //_LBB595_2
{
	r1 = r1 >> 2;
	heap32[(r1)] = 5;
	heap32[(r1+1)] = 1;
	r2 = r0 >> 2;
	r3 = heap32[(r2+6)];
	r4 = heap32[(r2+5)];
	r4 = (r4 + 4)|0;
	r3 = (r3 + 4)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r3;
	_ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(i7);
	f0 = f_g0;
	heapFloat[(r2+178)] = f0;
	heap32[(r2+176)] = 0;
	r3 = 0;
	heap32[(r2+175)] = 0;
	heap8[r0+722] = r3;
	f1 = heapFloat[(r2+172)];
	f2 = heapFloat[(r2+173)];
	if(f1 >f2) //_LBB595_8
{
__label__ = 8;
}
else{
	heapFloat[(g0)] = f0;
	heapFloat[(g0+1)] = f1;
	heapFloat[(g0+2)] = f2;
	_Z21btAdjustAngleToLimitsfff(i7);
	f0 = f_g0;
	heapFloat[(r2+178)] = f0;
	f1 = heapFloat[(r2+172)];
	if(f0 >f1) //_LBB595_5
{
	f1 = heapFloat[(r2+173)];
	if(f0 <f1) //_LBB595_7
{
	r2 = heapU8[r0+722];
	if(r2 !=0) //_LBB595_10
{
__label__ = 10;
}
else{
__label__ = 8;
}
}
else{
	f0 = f1-f0;
	heapFloat[(r2+176)] = f0;
	r3 = 1;
	heap32[(r2+175)] = -1082130432;
	heap8[r0+722] = r3;
__label__ = 10;
}
}
else{
	f0 = f1-f0;
	heapFloat[(r2+176)] = f0;
	r3 = 1;
	heap32[(r2+175)] = 1065353216;
	heap8[r0+722] = r3;
__label__ = 10;
}
}
if (__label__ == 8){
	r0 = heapU8[r0+721];
if(!(r0 !=0)) //_LBB595_10
{
	return;
}
}
	r0 = heap32[(r1)];
	r0 = (r0 + 1)|0;
	heap32[(r1)] = r0;
	r0 = heap32[(r1+1)];
	r0 = (r0 + -1)|0;
	heap32[(r1+1)] = r0;
	return;
}
else{
	r0 = r1 >> 2;
	heap32[(r0)] = 0;
	heap32[(r0+1)] = 0;
	return;
}
}

function _ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -136;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r3 = heap32[(r1+6)];
	r4 = heap32[(r1+5)];
	r5 = heapU8[r0+723];
	r6 = heapU8[r0+724];
_1: do {
	if(r6 ==0) //_LBB596_60
{
	r5 = r5 & 255;
	if(r5 ==0) //_LBB596_62
{
	r4 = r4 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r1+147)];
	f1 = heapFloat[(r4+9)];
	f2 = heapFloat[(r4+5)];
	f3 = heapFloat[(r4+1)];
	f4 = heapFloat[(r1+148)];
	f5 = heapFloat[(r4+10)];
	f6 = heapFloat[(r4+6)];
	f7 = heapFloat[(r4+2)];
	f8 = heapFloat[(r1+163)];
	f9 = heapFloat[(r3+9)];
	heapFloat[(fp+-3)] = f9;
	f10 = heapFloat[(r3+5)];
	heapFloat[(fp+-2)] = f10;
	f11 = heapFloat[(r3+1)];
	heapFloat[(fp+-1)] = f11;
	f12 = heapFloat[(r1+164)];
	f13 = heapFloat[(r3+10)];
	f14 = heapFloat[(r3+6)];
	f9 = heapFloat[(r3+2)];
	heapFloat[(fp+-7)] = f9;
	f10 = heapFloat[(r1+137)];
	f11 = heapFloat[(r1+141)];
	f15 = heapFloat[(r1+136)];
	f16 = heapFloat[(r1+140)];
	f17 = heapFloat[(r1+135)];
	f18 = heapFloat[(r1+139)];
	f19 = heapFloat[(r1+153)];
	f20 = heapFloat[(r1+157)];
	f21 = f1*f0;
	f22 = f5*f4;
	f23 = f2*f0;
	f24 = f6*f4;
	f0 = f3*f0;
	f4 = f7*f4;
	f25 = heapFloat[(r1+149)];
	f26 = heapFloat[(r4+11)];
	f27 = heapFloat[(r4+7)];
	f28 = heapFloat[(r4+3)];
	f9 = heapFloat[(fp+-3)];
	f29 = f9*f8;
	heapFloat[(fp+-8)] = f29;
	f30 = f13*f12;
	heapFloat[(fp+-10)] = f30;
	f9 = heapFloat[(fp+-2)];
	f9 = f9*f8;
	heapFloat[(fp+-9)] = f9;
	f9 = f14*f12;
	heapFloat[(fp+-12)] = f9;
	f9 = heapFloat[(fp+-1)];
	f8 = f9*f8;
	heapFloat[(fp+-11)] = f8;
	f9 = heapFloat[(fp+-7)];
	f12 = f9*f12;
	heapFloat[(fp+-13)] = f12;
	f8 = heapFloat[(r1+165)];
	f9 = heapFloat[(r3+11)];
	heapFloat[(fp+-4)] = f9;
	f9 = heapFloat[(r3+7)];
	heapFloat[(fp+-6)] = f9;
	f9 = heapFloat[(r3+3)];
	heapFloat[(fp+-5)] = f9;
	f9 = heapFloat[(r1+145)];
	f12 = heapFloat[(r1+144)];
	f29 = heapFloat[(r1+143)];
	f30 = heapFloat[(r1+161)];
	f21 = f21+f22;
	heapFloat[(fp+-15)] = f21;
	f22 = f26*f25;
	f21 = f23+f24;
	heapFloat[(fp+-16)] = f21;
	f23 = f27*f25;
	f0 = f0+f4;
	heapFloat[(fp+-14)] = f0;
	f0 = f28*f25;
	heapFloat[(fp+-23)] = f0;
	f0 = f10*f1;
	heapFloat[(fp+-24)] = f0;
	f4 = f11*f5;
	f21 = f15*f1;
	heapFloat[(fp+-18)] = f21;
	f24 = f16*f5;
	f1 = f17*f1;
	heapFloat[(fp+-20)] = f1;
	f5 = f18*f5;
	f25 = f10*f2;
	heapFloat[(fp+-17)] = f25;
	f0 = f11*f6;
	f1 = f15*f2;
	heapFloat[(fp+-19)] = f1;
	f1 = f16*f6;
	heapFloat[(fp+-28)] = f1;
	f2 = f17*f2;
	heapFloat[(fp+-21)] = f2;
	f1 = f18*f6;
	heapFloat[(fp+-29)] = f1;
	f2 = f10*f3;
	heapFloat[(fp+-25)] = f2;
	f6 = f11*f7;
	f10 = f15*f3;
	heapFloat[(fp+-26)] = f10;
	f11 = f16*f7;
	f3 = f17*f3;
	heapFloat[(fp+-22)] = f3;
	f7 = f18*f7;
	f15 = heapFloat[(fp+-8)];
	f16 = heapFloat[(fp+-10)];
	f15 = f15+f16;
	heapFloat[(fp+-27)] = f15;
	f16 = heapFloat[(fp+-4)];
	f17 = f16*f8;
	f18 = heapFloat[(fp+-9)];
	f21 = heapFloat[(fp+-12)];
	f18 = f18+f21;
	heapFloat[(fp+-8)] = f18;
	f21 = heapFloat[(fp+-6)];
	f25 = f21*f8;
	f1 = heapFloat[(fp+-11)];
	f2 = heapFloat[(fp+-13)];
	f1 = f1+f2;
	heapFloat[(fp+-9)] = f1;
	f2 = heapFloat[(fp+-5)];
	f1 = f2*f8;
	heapFloat[(fp+-11)] = f1;
	f2 = heapFloat[(fp+-3)];
	f2 = f19*f2;
	heapFloat[(fp+-3)] = f2;
	f1 = f20*f13;
	heapFloat[(fp+-12)] = f1;
	f2 = heapFloat[(fp+-2)];
	f2 = f19*f2;
	heapFloat[(fp+-10)] = f2;
	f1 = f20*f14;
	heapFloat[(fp+-13)] = f1;
	f2 = heapFloat[(fp+-1)];
	f2 = f19*f2;
	heapFloat[(fp+-2)] = f2;
	f3 = heapFloat[(fp+-7)];
	f1 = f20*f3;
	heapFloat[(fp+-30)] = f1;
	r5 = r2 >> 2;
	f2 = heapFloat[(r4+15)];
	f3 = heapFloat[(fp+-15)];
	f3 = f3+f22;
	heapFloat[(fp+-7)] = f3;
	f8 = heapFloat[(r4+14)];
	f10 = heapFloat[(fp+-16)];
	f1 = f10+f23;
	heapFloat[(fp+-15)] = f1;
	f1 = heapFloat[(r4+13)];
	heapFloat[(fp+-1)] = f1;
	f3 = heapFloat[(fp+-14)];
	f10 = heapFloat[(fp+-23)];
	f3 = f3+f10;
	heapFloat[(fp+-16)] = f3;
	f10 = heapFloat[(fp+-24)];
	f4 = f10+f4;
	heapFloat[(fp+-14)] = f4;
	f1 = f9*f26;
	heapFloat[(fp+-23)] = f1;
	f3 = heapFloat[(fp+-18)];
	f1 = f3+f24;
	heapFloat[(fp+-18)] = f1;
	f3 = f12*f26;
	f4 = heapFloat[(fp+-20)];
	f4 = f4+f5;
	f5 = f29*f26;
	f10 = heapFloat[(fp+-17)];
	f0 = f10+f0;
	f10 = f9*f27;
	f13 = heapFloat[(fp+-19)];
	f14 = heapFloat[(fp+-28)];
	f13 = f13+f14;
	f14 = f12*f27;
	f15 = heapFloat[(fp+-21)];
	f16 = heapFloat[(fp+-29)];
	f15 = f15+f16;
	f16 = f29*f27;
	f18 = heapFloat[(fp+-25)];
	f6 = f18+f6;
	f9 = f9*f28;
	f18 = heapFloat[(fp+-26)];
	f11 = f18+f11;
	f12 = f12*f28;
	f18 = heapFloat[(fp+-22)];
	f7 = f18+f7;
	f18 = f29*f28;
	f19 = heapFloat[(fp+-27)];
	f17 = f19+f17;
	f19 = heapFloat[(r3+15)];
	f20 = heapFloat[(fp+-8)];
	f20 = f20+f25;
	f21 = heapFloat[(r3+14)];
	f22 = heapFloat[(fp+-9)];
	f23 = heapFloat[(fp+-11)];
	f22 = f22+f23;
	f23 = heapFloat[(r3+13)];
	f24 = heapFloat[(fp+-3)];
	f25 = heapFloat[(fp+-12)];
	f24 = f24+f25;
	f25 = heapFloat[(fp+-4)];
	f25 = f30*f25;
	f26 = heapFloat[(fp+-10)];
	f27 = heapFloat[(fp+-13)];
	f26 = f26+f27;
	f27 = heapFloat[(fp+-6)];
	f27 = f30*f27;
	f28 = heapFloat[(fp+-2)];
	f29 = heapFloat[(fp+-30)];
	f28 = f28+f29;
	f29 = heapFloat[(fp+-5)];
	f29 = f30*f29;
	r6 = heap32[(r5+6)];
	f30 = heapFloat[(fp+-7)];
	f30 = f30+f2;
	heapFloat[(fp+-2)] = f30;
	f30 = heapFloat[(fp+-15)];
	f30 = f30+f8;
	heapFloat[(fp+-3)] = f30;
	f30 = heapFloat[(fp+-16)];
	f1 = heapFloat[(fp+-1)];
	f1 = f30+f1;
	heapFloat[(fp+-4)] = f1;
	f1 = heapFloat[(fp+-14)];
	f30 = heapFloat[(fp+-23)];
	f1 = f1+f30;
	f30 = heapFloat[(fp+-18)];
	f3 = f30+f3;
	f4 = f4+f5;
	f0 = f0+f10;
	f5 = f13+f14;
	f10 = f15+f16;
	f6 = f6+f9;
	f9 = f11+f12;
	f7 = f7+f18;
	f11 = f17+f19;
	f12 = f20+f21;
	f13 = f22+f23;
	f14 = f24+f25;
	f15 = f26+f27;
	f16 = f28+f29;
	r7 = heapU8[r0+720];
	if(r7 ==0) //_LBB596_64
{
	r7 = heap32[(r5+2)];
	r7 = r7 >> 2;
	heap32[(r7)] = 1065353216;
	r7 = r6 << 2;
	r8 = heap32[(r5+2)];
	r7 = (r7 + r8)|0;
	r7 = r7 >> 2;
	heap32[(r7+1)] = 1065353216;
	r7 = r6 << 3;
	r8 = heap32[(r5+2)];
	r7 = (r7 + r8)|0;
	r7 = r7 >> 2;
	heap32[(r7+2)] = 1065353216;
	f2 = heapFloat[(r4+15)];
	f8 = heapFloat[(r4+14)];
	f17 = heapFloat[(r4+13)];
	heapFloat[(fp+-1)] = f17;
}
	r7 = heap32[(r5+3)];
	r8 = r7 >> 2;
	f17 = heapFloat[(fp+-3)];
	f8 = f17-f8;
	f17 = heapFloat[(fp+-2)];
	f2 = f17-f2;
	heap32[(r8)] = 0;
	r9 = (r6 + 1)|0;
	r10 = r6 << 2;
	f17 = -f8;
	heapFloat[(r8+1)] = f2;
	r11 = (r6 + 2)|0;
	r9 = r9 << 2;
	r12 = (r7 + r10)|0;
	heapFloat[(r8+2)] = f17;
	r13 = (r6 + 3)|0;
	r11 = r11 << 2;
	r14 = (r7 + r9)|0;
	r12 = r12 >> 2;
	f2 = -f2;
	heap32[(r8+3)] = 0;
	r8 = r13 << 2;
	r13 = (r7 + r11)|0;
	r14 = r14 >> 2;
	heapFloat[(r12)] = f2;
	r12 = r6 << 3;
	r15 = (r7 + r8)|0;
	f17 = heapFloat[(fp+-4)];
	f2 = heapFloat[(fp+-1)];
	f2 = f17-f2;
	r13 = r13 >> 2;
	heap32[(r14)] = 0;
	r14 = r12 | 4;
	r16 = (r7 + r12)|0;
	r15 = r15 >> 2;
	heapFloat[(r13)] = f2;
	r13 = (r12 + 8)|0;
	r17 = (r7 + r14)|0;
	r16 = r16 >> 2;
	heap32[(r15)] = 0;
	r15 = (r12 + 12)|0;
	r18 = (r7 + r13)|0;
	r17 = r17 >> 2;
	f2 = -f2;
	heapFloat[(r16)] = f8;
	r7 = (r7 + r15)|0;
	r16 = r18 >> 2;
	heapFloat[(r17)] = f2;
	r7 = r7 >> 2;
	heap32[(r16)] = 0;
	heap32[(r7)] = 0;
	r7 = heap32[(r5+5)];
	f2 = heapFloat[(r3+15)];
	f8 = heapFloat[(r3+14)];
	f17 = heapFloat[(r3+13)];
	f2 = f11-f2;
	r16 = r7 >> 2;
	f18 = -f2;
	heap32[(r16)] = 0;
	f8 = f12-f8;
	heapFloat[(r16+1)] = f18;
	r17 = (r7 + r10)|0;
	heapFloat[(r16+2)] = f8;
	r9 = (r7 + r9)|0;
	r17 = r17 >> 2;
	heap32[(r16+3)] = 0;
	f17 = f13-f17;
	r11 = (r7 + r11)|0;
	r9 = r9 >> 2;
	heapFloat[(r17)] = f2;
	r8 = (r7 + r8)|0;
	r11 = r11 >> 2;
	f2 = -f17;
	heap32[(r9)] = 0;
	r9 = (r7 + r12)|0;
	r8 = r8 >> 2;
	heapFloat[(r11)] = f2;
	r11 = (r7 + r14)|0;
	r9 = r9 >> 2;
	f2 = -f8;
	heap32[(r8)] = 0;
	r8 = (r7 + r13)|0;
	r11 = r11 >> 2;
	heapFloat[(r9)] = f2;
	r7 = (r7 + r15)|0;
	r8 = r8 >> 2;
	heapFloat[(r11)] = f17;
	r7 = r7 >> 2;
	heap32[(r8)] = 0;
	heap32[(r7)] = 0;
	f2 = heapFloat[(r5)];
	f8 = heapFloat[(r5+1)];
	f2 = f2*f8;
	r7 = heapU8[r0+720];
if(!(r7 !=0)) //_LBB596_67
{
	r6 = r6 << 1;
	r7 = heap32[(r5+7)];
	f8 = heapFloat[(fp+-4)];
	f8 = f13-f8;
	r7 = r7 >> 2;
	f8 = f8*f2;
	heapFloat[(r7)] = f8;
	r7 = heap32[(r5+7)];
	r7 = (r7 + r10)|0;
	f8 = heapFloat[(fp+-3)];
	f8 = f12-f8;
	r7 = r7 >> 2;
	f8 = f8*f2;
	heapFloat[(r7)] = f8;
	r6 = r6 << 2;
	r7 = heap32[(r5+7)];
	r6 = (r7 + r6)|0;
	f8 = heapFloat[(fp+-2)];
	f8 = f11-f8;
	r6 = r6 >> 2;
	f8 = f8*f2;
	heapFloat[(r6)] = f8;
}
	r2 = (r2 + 4)|0;
	r6 = heap32[(r5+6)];
	r7 = (r6 * 3)|0;
	r8 = heap32[(r5+3)];
	r9 = r7 << 2;
	r8 = (r8 + r9)|0;
	r8 = r8 >> 2;
	r10 = (r7 + 1)|0;
	heapFloat[(r8)] = f7;
	r8 = r10 << 2;
	r10 = heap32[(r5+3)];
	r10 = (r10 + r8)|0;
	r10 = r10 >> 2;
	r7 = (r7 + 2)|0;
	heapFloat[(r10)] = f10;
	r7 = r7 << 2;
	r10 = heap32[(r5+3)];
	r10 = (r10 + r7)|0;
	r10 = r10 >> 2;
	heapFloat[(r10)] = f4;
	r6 = r6 << 4;
	r10 = heap32[(r5+3)];
	r10 = (r10 + r6)|0;
	r10 = r10 >> 2;
	heapFloat[(r10)] = f9;
	r10 = r6 | 4;
	r11 = heap32[(r5+3)];
	r11 = (r11 + r10)|0;
	r11 = r11 >> 2;
	heapFloat[(r11)] = f5;
	r11 = r6 | 8;
	r12 = heap32[(r5+3)];
	r12 = (r12 + r11)|0;
	r12 = r12 >> 2;
	heapFloat[(r12)] = f3;
	r12 = heap32[(r5+5)];
	r12 = (r12 + r9)|0;
	r12 = r12 >> 2;
	f8 = -f7;
	heapFloat[(r12)] = f8;
	r12 = heap32[(r5+5)];
	r8 = (r12 + r8)|0;
	r8 = r8 >> 2;
	f8 = -f10;
	heapFloat[(r8)] = f8;
	r8 = heap32[(r5+5)];
	r7 = (r8 + r7)|0;
	r7 = r7 >> 2;
	f8 = -f4;
	heapFloat[(r7)] = f8;
	r7 = heap32[(r5+5)];
	r7 = (r7 + r6)|0;
	r7 = r7 >> 2;
	f8 = -f9;
	heapFloat[(r7)] = f8;
	r7 = heap32[(r5+5)];
	r7 = (r7 + r10)|0;
	r7 = r7 >> 2;
	f8 = -f5;
	heapFloat[(r7)] = f8;
	r7 = heap32[(r5+5)];
	r7 = (r7 + r11)|0;
	f8 = f0*f14;
	f11 = f1*f15;
	f12 = f1*f16;
	f13 = f6*f14;
	f8 = f8-f11;
	f11 = f12-f13;
	f12 = f6*f15;
	f13 = f0*f16;
	r7 = r7 >> 2;
	f14 = -f3;
	f12 = f12-f13;
	heapFloat[(r7)] = f14;
	f7 = f8*f7;
	f10 = f11*f10;
	r7 = heap32[(r5+7)];
	f7 = f7+f10;
	f4 = f12*f4;
	r7 = (r7 + r9)|0;
	f4 = f7+f4;
	r7 = r7 >> 2;
	f4 = f4*f2;
	heapFloat[(r7)] = f4;
	f4 = f8*f9;
	f5 = f11*f5;
	r7 = heap32[(r5+7)];
	f4 = f4+f5;
	f3 = f12*f3;
	r6 = (r7 + r6)|0;
	f3 = f4+f3;
	r6 = r6 >> 2;
	f2 = f3*f2;
	heapFloat[(r6)] = f2;
	r6 = heapU8[r0+722];
	if(r6 !=0) //_LBB596_69
{
	f2 = heapFloat[(r1+176)];
	f3 = heapFloat[(r1+179)];
	f2 = f2*f3;
	f3 =                         0;
	r6 = 1;
	r7 = 2;
	r6 = f2 > f3 ? r6 : r7;
}
else{
	f2 =                         0;
	r6 = 0;
}
	r7 = heapU8[r0+721];
	r8 = 0;
	r9 = r7 != r8;
	r9 = r9 & 1;
	r9 = r9 | r6;
	if(r9 ==0) //_LBB596_59
{
__label__ = 54;
break _1;
}
else{
	r9 = heap32[(r5+6)];
	r9 = (r9 * 5)|0;
	r10 = heap32[(r5+3)];
	r11 = r9 << 2;
	r10 = (r10 + r11)|0;
	r10 = r10 >> 2;
	r12 = (r9 + 1)|0;
	heapFloat[(r10)] = f6;
	r10 = r12 << 2;
	r12 = heap32[(r5+3)];
	r12 = (r12 + r10)|0;
	r12 = r12 >> 2;
	r9 = (r9 + 2)|0;
	heapFloat[(r12)] = f0;
	r9 = r9 << 2;
	r12 = heap32[(r5+3)];
	r12 = (r12 + r9)|0;
	r12 = r12 >> 2;
	heapFloat[(r12)] = f1;
	r12 = heap32[(r5+5)];
	r12 = (r12 + r11)|0;
	r12 = r12 >> 2;
	f3 = -f6;
	heapFloat[(r12)] = f3;
	r12 = heap32[(r5+5)];
	r10 = (r12 + r10)|0;
	r10 = r10 >> 2;
	f3 = -f0;
	heapFloat[(r10)] = f3;
	r10 = heap32[(r5+5)];
	r9 = (r10 + r9)|0;
	r9 = r9 >> 2;
	f3 = -f1;
	heapFloat[(r9)] = f3;
	r9 = heap32[(r5+7)];
	r9 = (r9 + r11)|0;
	f3 = heapFloat[(r1+172)];
	f4 = heapFloat[(r1+173)];
	r9 = r9 >> 2;
	heap32[(r9)] = 0;
	r9 = r6 != r8;
	r10 = f3 == f4;
	r12 = heap32[(r1+183)];
	r9 = r9 & r10;
	r10 = r12 & 2;
	if(r10 !=0) //_LBB596_73
{
	r2 = (r0 + 744)|0;
}
	r2 = r2 >> 2;
	f5 = heapFloat[(r2)];
	r2 = r7 == r8;
	r2 = r9 | r2;
if(!(r2 != 0)) //_LBB596_91
{
	r2 = r12 & 4;
if(!(r2 ==0)) //_LBB596_77
{
	r2 = heap32[(r5+8)];
	r2 = (r2 + r11)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = heap32[(r1+184)];
}
	f7 =                         1;
	f8 =                         0;
	f9 = heapFloat[(r1+167)];
_24: do {
	if(f3 <f4) //_LBB596_79
{
	f10 = heapFloat[(r1+178)];
	f11 = heapFloat[(r5)];
	f11 = f11*f5;
	f11 = f9/f11;
	if(f11 >=f8) //_LBB596_84
{
	if(f11 >f8) //_LBB596_86
{
if(!(f10 >f4)) //_LBB596_89
{
	f8 = f4-f11;
if(!(f8 >=f10)) //_LBB596_89
{
	f7 = f4-f10;
	f8 = f7/f11;
break _24;
}
}
	f8 =                         0;
	f8 = f10 > f4 ? f8 : f7;
}
else{
break _24;
}
}
else{
if(!(f10 <f3)) //_LBB596_83
{
	f8 = f3-f11;
if(!(f8 <=f10)) //_LBB596_83
{
	f7 = f3-f10;
	f8 = f7/f11;
break _24;
}
}
	f8 =                         0;
	f8 = f10 < f3 ? f8 : f7;
}
}
else{
	f8 = f3 > f4 ? f7 : f8;
}
} while(0);
	r2 = heap32[(r5+7)];
	r2 = (r2 + r11)|0;
	r2 = r2 >> 2;
	f7 = f9*f8;
	f8 = heapFloat[(r1+179)];
	f9 = heapFloat[(r2)];
	f7 = f7*f8;
	f7 = f9+f7;
	heapFloat[(r2)] = f7;
	r2 = heap32[(r5+9)];
	f7 = heapFloat[(r1+168)];
	r2 = (r2 + r11)|0;
	r2 = r2 >> 2;
	f7 = -f7;
	heapFloat[(r2)] = f7;
	r2 = heap32[(r5+10)];
	r2 = (r2 + r11)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = heap32[(r1+168)];
}
	if(r6 ==0) //_LBB596_59
{
__label__ = 54;
break _1;
}
else{
	r2 = heap32[(r5+7)];
	r2 = (r2 + r11)|0;
	f7 = heapFloat[(r5)];
	r2 = r2 >> 2;
	f5 = f7*f5;
	f7 = heapFloat[(r2)];
	f2 = f5*f2;
	f2 = f7+f2;
	heapFloat[(r2)] = f2;
	r0 = heapU8[r0+732];
	r0 = r0 & 1;
if(!(r0 ==0)) //_LBB596_94
{
	r0 = heap32[(r5+8)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = heap32[(r1+185)];
}
	if(f3 !=f4) //_LBB596_96
{
	r0 = heap32[(r5+9)];
	if(r6 !=1) //_LBB596_98
{
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = -8388609;
	r0 = heap32[(r5+10)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
}
else{
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	r0 = heap32[(r5+10)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 2139095039;
}
}
else{
	r0 = heap32[(r5+9)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = -8388609;
	r0 = heap32[(r5+10)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 2139095039;
}
	f2 = heapFloat[(r1+171)];
	f3 =                         0;
	if(f2 <=f3) //_LBB596_107
{
__label__ = 53;
break _1;
}
else{
	f4 = heapFloat[(r4+80)];
	f5 = heapFloat[(r3+80)];
	f7 = heapFloat[(r4+81)];
	f8 = heapFloat[(r3+81)];
	f4 = f4*f6;
	f7 = f7*f0;
	f9 = heapFloat[(r4+82)];
	f10 = heapFloat[(r3+82)];
	f5 = f5*f6;
	f0 = f8*f0;
	f4 = f4+f7;
	f6 = f9*f1;
	f0 = f5+f0;
	f1 = f10*f1;
	f4 = f4+f6;
	f0 = f0+f1;
	f0 = f4-f0;
	if(r6 !=1) //_LBB596_104
{
	if(f0 <=f3) //_LBB596_107
{
__label__ = 53;
break _1;
}
else{
	r0 = heap32[(r5+7)];
	f1 = -f2;
	r0 = (r0 + r11)|0;
	f0 = f0*f1;
	r0 = r0 >> 2;
	f1 = heapFloat[(r0)];
	if(f1 <=f0) //_LBB596_107
{
__label__ = 53;
break _1;
}
else{
	heapFloat[(r0)] = f0;
__label__ = 53;
break _1;
}
}
}
else{
	if(f0 >=f3) //_LBB596_107
{
__label__ = 53;
break _1;
}
else{
	r0 = heap32[(r5+7)];
	f2 = -f2;
	r0 = (r0 + r11)|0;
	f0 = f0*f2;
	r0 = r0 >> 2;
	f2 = heapFloat[(r0)];
	if(f2 >=f0) //_LBB596_107
{
__label__ = 53;
break _1;
}
else{
	heapFloat[(r0)] = f0;
__label__ = 53;
break _1;
}
}
}
}
}
}
}
else{
	r0 = _2E_str1149;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 331;
	_assert(i7);
}
}
else{
	r5 = r5 & 255;
	if(r5 ==0) //_LBB596_3
{
	r4 = r4 >> 2;
	r3 = r3 >> 2;
	f0 = heapFloat[(r3+9)];
	heapFloat[(fp+-5)] = f0;
	f1 = heapFloat[(r1+163)];
	f0 = heapFloat[(r3+5)];
	heapFloat[(fp+-6)] = f0;
	f2 = heapFloat[(r3+1)];
	heapFloat[(fp+-4)] = f2;
	f0 = heapFloat[(r3+10)];
	heapFloat[(fp+-7)] = f0;
	f2 = heapFloat[(r1+164)];
	f0 = heapFloat[(r3+6)];
	heapFloat[(fp+-8)] = f0;
	f3 = heapFloat[(r3+2)];
	heapFloat[(fp+-9)] = f3;
	f4 = heapFloat[(r4+9)];
	f5 = heapFloat[(r1+147)];
	f6 = heapFloat[(r4+5)];
	f7 = heapFloat[(r4+1)];
	f8 = heapFloat[(r4+10)];
	f9 = heapFloat[(r1+148)];
	f10 = heapFloat[(r4+6)];
	f11 = heapFloat[(r4+2)];
	f0 = heapFloat[(fp+-5)];
	f12 = f0*f1;
	f0 = heapFloat[(fp+-7)];
	f13 = f0*f2;
	f14 = heapFloat[(r3+11)];
	heapFloat[(fp+-2)] = f14;
	f15 = heapFloat[(r1+165)];
	f16 = heapFloat[(r3+7)];
	heapFloat[(fp+-3)] = f16;
	f17 = heapFloat[(r3+3)];
	heapFloat[(fp+-1)] = f17;
	f18 = f4*f5;
	f19 = f8*f9;
	f20 = heapFloat[(r4+11)];
	f21 = heapFloat[(r1+149)];
	f22 = heapFloat[(r4+7)];
	f23 = heapFloat[(r4+3)];
	f0 = heapFloat[(fp+-6)];
	f24 = f0*f1;
	f0 = heapFloat[(fp+-8)];
	f25 = f0*f2;
	f26 = f6*f5;
	f27 = f10*f9;
	f28 = heapFloat[(fp+-4)];
	f1 = f28*f1;
	f2 = f3*f2;
	f5 = f7*f5;
	f9 = f11*f9;
	f29 = heapFloat[(r1+137)];
	f30 = heapFloat[(r1+141)];
	f0 = heapFloat[(r1+136)];
	f3 = heapFloat[(r1+140)];
	f14 = heapFloat[(r1+153)];
	f16 = heapFloat[(r1+157)];
	f12 = f12+f13;
	heapFloat[(fp+-14)] = f12;
	f13 = heapFloat[(fp+-2)];
	f17 = f13*f15;
	f18 = f18+f19;
	f19 = f20*f21;
	f24 = f24+f25;
	f25 = heapFloat[(fp+-3)];
	f28 = f25*f15;
	f26 = f26+f27;
	f27 = f22*f21;
	f1 = f1+f2;
	heapFloat[(fp+-10)] = f1;
	f2 = heapFloat[(fp+-1)];
	f15 = f2*f15;
	f5 = f5+f9;
	heapFloat[(fp+-12)] = f5;
	f9 = f23*f21;
	f21 = heapFloat[(r1+145)];
	f1 = heapFloat[(r1+144)];
	f2 = heapFloat[(r1+161)];
	f5 = heapFloat[(r3+84)];
	f12 = heapFloat[(r4+84)];
	f13 =   1.1920928955078125e-007;
	heapFloat[(fp+-11)] = f13;
	f25 = f29*f4;
	heapFloat[(fp+-13)] = f25;
	f25 = f30*f8;
	f4 = f0*f4;
	heapFloat[(fp+-16)] = f4;
	f8 = f3*f8;
	f4 = f29*f6;
	heapFloat[(fp+-15)] = f4;
	f4 = f30*f10;
	f6 = f0*f6;
	heapFloat[(fp+-18)] = f6;
	f10 = f3*f10;
	f29 = f29*f7;
	f30 = f30*f11;
	f0 = f0*f7;
	heapFloat[(fp+-17)] = f0;
	f3 = f3*f11;
	f7 = heapFloat[(fp+-5)];
	f0 = f14*f7;
	heapFloat[(fp+-19)] = f0;
	f6 = heapFloat[(fp+-7)];
	f6 = f16*f6;
	f7 = heapFloat[(fp+-6)];
	f7 = f14*f7;
	heapFloat[(fp+-5)] = f7;
	f11 = heapFloat[(fp+-8)];
	f11 = f16*f11;
	f0 = heapFloat[(fp+-4)];
	f0 = f14*f0;
	heapFloat[(fp+-4)] = f0;
	f14 = heapFloat[(fp+-9)];
	f14 = f16*f14;
	f16 = heapFloat[(fp+-14)];
	f16 = f16+f17;
	f17 = heapFloat[(r3+15)];
	f18 = f18+f19;
	f19 = heapFloat[(r4+15)];
	f24 = f24+f28;
	f28 = heapFloat[(r3+14)];
	f26 = f26+f27;
	f27 = heapFloat[(r4+14)];
	f0 = heapFloat[(fp+-10)];
	f0 = f0+f15;
	f15 = heapFloat[(r3+13)];
	f7 = heapFloat[(fp+-12)];
	f7 = f7+f9;
	f9 = heapFloat[(r4+13)];
	r5 = r2 >> 2;
	f16 = f16+f17;
	f17 = f18+f19;
	f18 = f24+f28;
	f19 = f26+f27;
	f0 = f0+f15;
	f7 = f7+f9;
	f9 = heapFloat[(fp+-13)];
	f9 = f9+f25;
	f15 = f21*f20;
	f24 = heapFloat[(fp+-16)];
	f8 = f24+f8;
	f20 = f1*f20;
	f24 = heapFloat[(fp+-15)];
	f4 = f24+f4;
	f24 = f21*f22;
	f25 = heapFloat[(fp+-18)];
	f10 = f25+f10;
	f22 = f1*f22;
	f25 = f29+f30;
	f21 = f21*f23;
	f26 = heapFloat[(fp+-17)];
	f3 = f26+f3;
	f1 = f1*f23;
	f23 = heapFloat[(fp+-19)];
	f6 = f23+f6;
	f23 = heapFloat[(fp+-2)];
	f23 = f2*f23;
	f26 = heapFloat[(fp+-5)];
	f11 = f26+f11;
	f26 = heapFloat[(fp+-3)];
	f26 = f2*f26;
	f27 = heapFloat[(fp+-4)];
	f14 = f27+f14;
	f27 = heapFloat[(fp+-1)];
	f2 = f2*f27;
	r6 = f12 < f13;
	r7 = f5 < f13;
	f12 = f12+f5;
	r8 = heap32[(r5+6)];
	f9 = f9+f15;
	heapFloat[(fp+-3)] = f9;
	f8 = f8+f20;
	f4 = f4+f24;
	heapFloat[(fp+-2)] = f4;
	f4 = f10+f22;
	f9 = f25+f21;
	heapFloat[(fp+-4)] = f9;
	f1 = f3+f1;
	f3 = f6+f23;
	heapFloat[(fp+-7)] = f3;
	f3 = f11+f26;
	heapFloat[(fp+-6)] = f3;
	f2 = f14+f2;
	heapFloat[(fp+-5)] = f2;
	f2 = f16-f17;
	heapFloat[(fp+-8)] = f2;
	f2 = f18-f19;
	heapFloat[(fp+-9)] = f2;
	f2 = f0-f7;
	heapFloat[(fp+-10)] = f2;
	r6 = r6 | r7;
	f2 =                         0;
	if(f12 >f2) //_LBB596_5
{
	f5 = f5/f12;
}
else{
	f5 =                       0.5;
}
	f3 =                         1;
	heapFloat[(fp+-1)] = f3;
	f6 = f3-f5;
	f9 = heapFloat[(fp+-4)];
	f9 = f9*f5;
	f10 = heapFloat[(fp+-5)];
	f10 = f10*f6;
	f11 = heapFloat[(fp+-2)];
	f11 = f11*f5;
	f12 = heapFloat[(fp+-6)];
	f12 = f12*f6;
	f9 = f9+f10;
	f10 = f11+f12;
	f11 = heapFloat[(fp+-3)];
	f11 = f11*f5;
	f12 = heapFloat[(fp+-7)];
	f12 = f12*f6;
	f11 = f11+f12;
	f12 = f9*f9;
	f13 = f10*f10;
	f12 = f12+f13;
	f13 = f11*f11;
	f12 = f12+f13;
	heapFloat[(g0)] = f12;
	sqrtf(i7);
	f3 = f3/f_g0;
	f12 = heapFloat[(r3+13)];
	f13 = heapFloat[(r3+14)];
	f14 = heapFloat[(r4+13)];
	f15 = heapFloat[(r4+14)];
	f9 = f9*f3;
	f0 = f0-f12;
	f7 = f7-f14;
	f10 = f10*f3;
	f12 = f18-f13;
	f13 = f19-f15;
	f14 = heapFloat[(r3+15)];
	f15 = heapFloat[(r4+15)];
	f3 = f11*f3;
	f11 = f16-f14;
	f14 = f17-f15;
	f15 = f0*f9;
	f16 = f12*f10;
	f17 = f7*f9;
	f18 = f13*f10;
	f15 = f15+f16;
	f16 = f11*f3;
	f17 = f17+f18;
	f18 = f14*f3;
	f15 = f15+f16;
	f16 = f17+f18;
	f17 = f10*f15;
	f18 = f10*f16;
	f19 = f9*f15;
	f20 = f9*f16;
	f15 = f3*f15;
	f16 = f3*f16;
	f12 = f12-f17;
	f13 = f13-f18;
	f0 = f0-f19;
	f7 = f7-f20;
	f11 = f11-f15;
	f14 = f14-f16;
	f21 = f12*f5;
	f22 = f13*f6;
	f23 = f0*f5;
	f24 = f7*f6;
	f21 = f21+f22;
	f22 = f23+f24;
	f23 = f11*f5;
	f24 = f14*f6;
	f15 = f16-f15;
	f16 = f18-f17;
	f17 = f20-f19;
	f18 = f23+f24;
	f19 = f22*f22;
	f20 = f21*f21;
	f23 = f15*f5;
	f24 = f16*f5;
	f25 = f17*f5;
	f15 = f15*f6;
	f16 = f16*f6;
	f17 = f17*f6;
	f19 = f19+f20;
	f20 = f18*f18;
	f19 = f19+f20;
	r7 = r8 << 1;
	f14 = f14+f23;
	f13 = f13+f24;
	f7 = f7+f25;
	f11 = f11-f15;
	f12 = f12-f16;
	f0 = f0-f17;
	f15 = heapFloat[(fp+-11)];
	if(f19 >f15) //_LBB596_8
{
	heapFloat[(g0)] = f19;
	sqrtf(i7);
	f4 = heapFloat[(fp+-1)];
	f8 = f4/f_g0;
	f1 = f22*f8;
	f4 = f21*f8;
	f8 = f18*f8;
}
	r9 = heap32[(r5+3)];
	f15 = f13*f8;
	f16 = f14*f4;
	r9 = r9 >> 2;
	f15 = f15-f16;
	heapFloat[(r9)] = f15;
	r9 = heap32[(r5+3)];
	f15 = f14*f1;
	f16 = f7*f8;
	r9 = r9 >> 2;
	f15 = f15-f16;
	heapFloat[(r9+1)] = f15;
	r9 = heap32[(r5+3)];
	f15 = f7*f4;
	f16 = f13*f1;
	r9 = r9 >> 2;
	f15 = f15-f16;
	heapFloat[(r9+2)] = f15;
	f15 = f12*f8;
	f16 = f11*f4;
	f15 = f15-f16;
	r9 = heap32[(r5+5)];
	r9 = r9 >> 2;
	f15 = -f15;
	heapFloat[(r9)] = f15;
	f15 = f11*f1;
	f16 = f0*f8;
	f15 = f15-f16;
	r9 = heap32[(r5+5)];
	f16 = f10*f8;
	f17 = f3*f4;
	f18 = f9*f4;
	f19 = f10*f1;
	f20 = f3*f1;
	f21 = f9*f8;
	r9 = r9 >> 2;
	f15 = -f15;
	f16 = f16-f17;
	f17 = f18-f19;
	f18 = f20-f21;
	heapFloat[(r9+1)] = f15;
	f15 = f0*f4;
	f19 = f12*f1;
	f15 = f15-f19;
	r9 = heap32[(r5+5)];
	f19 = f7*f18;
	f20 = f13*f16;
	f21 = f14*f16;
	f22 = f7*f17;
	f23 = f13*f17;
	f24 = f14*f18;
	f25 = f0*f18;
	f26 = f12*f16;
	f27 = f11*f16;
	f28 = f0*f17;
	f29 = f12*f17;
	f30 = f11*f18;
	f19 = f19-f20;
	f20 = f21-f22;
	f21 = f23-f24;
	f22 = f25-f26;
	f23 = f27-f28;
	f24 = f29-f30;
	r9 = r9 >> 2;
	f15 = -f15;
	heapFloat[(r9+2)] = f15;
	if(r6 != 0) //_LBB596_11
{
	r9 = heapU8[r0+722];
if(!(r9 ==0)) //_LBB596_10
{
	f24 = f24*f6;
	f23 = f23*f6;
	f22 = f22*f6;
	f21 = f21*f5;
	f20 = f20*f5;
	f19 = f19*f5;
}
}
	r9 = r8 << 2;
	r10 = heap32[(r5+3)];
	r10 = (r10 + r9)|0;
	r10 = r10 >> 2;
	r11 = (r8 + 1)|0;
	heapFloat[(r10)] = f21;
	r10 = r11 << 2;
	r11 = heap32[(r5+3)];
	r11 = (r11 + r10)|0;
	r11 = r11 >> 2;
	r12 = (r8 + 2)|0;
	heapFloat[(r11)] = f20;
	r11 = r12 << 2;
	r12 = heap32[(r5+3)];
	r12 = (r12 + r11)|0;
	r12 = r12 >> 2;
	heapFloat[(r12)] = f19;
	r12 = heap32[(r5+5)];
	r12 = (r12 + r9)|0;
	r12 = r12 >> 2;
	f15 = -f24;
	heapFloat[(r12)] = f15;
	r12 = heap32[(r5+5)];
	r10 = (r12 + r10)|0;
	r10 = r10 >> 2;
	f15 = -f23;
	heapFloat[(r10)] = f15;
	r10 = heap32[(r5+5)];
	r10 = (r10 + r11)|0;
	f15 = f7*f10;
	f19 = f13*f9;
	f20 = f14*f9;
	f7 = f7*f3;
	f13 = f13*f3;
	f14 = f14*f10;
	f21 = f0*f10;
	f23 = f12*f9;
	f24 = f11*f9;
	f0 = f0*f3;
	f12 = f12*f3;
	f11 = f11*f10;
	f15 = f15-f19;
	f7 = f20-f7;
	f13 = f13-f14;
	f14 = f21-f23;
	f0 = f24-f0;
	f11 = f12-f11;
	r10 = r10 >> 2;
	f12 = -f22;
	heapFloat[(r10)] = f12;
	if(r6 != 0) //_LBB596_15
{
	f11 = f11*f6;
	f0 = f0*f6;
	f14 = f14*f6;
	f13 = f13*f5;
	f7 = f7*f5;
	f15 = f15*f5;
}
	r6 = r7 << 2;
	r10 = heap32[(r5+3)];
	r10 = (r10 + r6)|0;
	r10 = r10 >> 2;
	r11 = r7 | 1;
	heapFloat[(r10)] = f13;
	r10 = r11 << 2;
	r11 = heap32[(r5+3)];
	r11 = (r11 + r10)|0;
	r11 = r11 >> 2;
	r7 = (r7 + 2)|0;
	heapFloat[(r11)] = f7;
	r7 = r7 << 2;
	r11 = heap32[(r5+3)];
	r11 = (r11 + r7)|0;
	r11 = r11 >> 2;
	heapFloat[(r11)] = f15;
	r11 = heap32[(r5+5)];
	r11 = (r11 + r6)|0;
	r11 = r11 >> 2;
	f5 = -f11;
	heapFloat[(r11)] = f5;
	r11 = heap32[(r5+5)];
	r11 = (r11 + r10)|0;
	r11 = r11 >> 2;
	f0 = -f0;
	heapFloat[(r11)] = f0;
	r11 = heap32[(r5+5)];
	r7 = (r11 + r7)|0;
	r7 = r7 >> 2;
	f0 = -f14;
	heapFloat[(r7)] = f0;
	r7 = heapU8[r0+720];
if(!(r7 !=0)) //_LBB596_18
{
	f0 = heapFloat[(r5)];
	f5 = heapFloat[(r5+1)];
	f0 = f0*f5;
	r7 = heap32[(r5+2)];
	r7 = r7 >> 2;
	heapFloat[(r7)] = f1;
	r7 = heap32[(r5+2)];
	r7 = r7 >> 2;
	heapFloat[(r7+1)] = f4;
	r7 = heap32[(r5+2)];
	r7 = r7 >> 2;
	heapFloat[(r7+2)] = f8;
	r7 = heap32[(r5+2)];
	r7 = (r7 + r9)|0;
	r7 = r7 >> 2;
	heapFloat[(r7)] = f16;
	r7 = heap32[(r5+2)];
	r7 = (r7 + r9)|0;
	r7 = r7 >> 2;
	heapFloat[(r7+1)] = f18;
	r7 = heap32[(r5+2)];
	r7 = (r7 + r9)|0;
	r7 = r7 >> 2;
	heapFloat[(r7+2)] = f17;
	r7 = heap32[(r5+2)];
	r7 = (r7 + r6)|0;
	r7 = r7 >> 2;
	heapFloat[(r7)] = f9;
	r7 = heap32[(r5+2)];
	r7 = (r7 + r10)|0;
	r7 = r7 >> 2;
	heapFloat[(r7)] = f10;
	r7 = heap32[(r5+2)];
	r7 = (r7 + r6)|0;
	r7 = r7 >> 2;
	f5 = heapFloat[(fp+-10)];
	f6 = f1*f5;
	f7 = heapFloat[(fp+-9)];
	f11 = f4*f7;
	heapFloat[(r7+2)] = f3;
	f6 = f6+f11;
	f11 = heapFloat[(fp+-8)];
	f12 = f8*f11;
	r7 = heap32[(r5+7)];
	f6 = f6+f12;
	r7 = r7 >> 2;
	f6 = f6*f0;
	heapFloat[(r7)] = f6;
	f6 = f16*f5;
	f12 = f18*f7;
	r7 = heap32[(r5+7)];
	f6 = f6+f12;
	f12 = f17*f11;
	r7 = (r7 + r9)|0;
	f6 = f6+f12;
	r7 = r7 >> 2;
	f6 = f6*f0;
	heapFloat[(r7)] = f6;
	f5 = f9*f5;
	f6 = f10*f7;
	r7 = heap32[(r5+7)];
	f5 = f5+f6;
	f6 = f3*f11;
	r6 = (r7 + r6)|0;
	f5 = f5+f6;
	r6 = r6 >> 2;
	f0 = f5*f0;
	heapFloat[(r6)] = f0;
}
	r2 = (r2 + 4)|0;
	r6 = (r8 * 3)|0;
	r7 = r6 << 2;
	r9 = heap32[(r5+3)];
	r9 = (r9 + r7)|0;
	r9 = r9 >> 2;
	r10 = (r6 + 1)|0;
	heapFloat[(r9)] = f1;
	r9 = r10 << 2;
	r10 = heap32[(r5+3)];
	r10 = (r10 + r9)|0;
	r10 = r10 >> 2;
	r6 = (r6 + 2)|0;
	heapFloat[(r10)] = f4;
	r6 = r6 << 2;
	r10 = heap32[(r5+3)];
	r10 = (r10 + r6)|0;
	r10 = r10 >> 2;
	heapFloat[(r10)] = f8;
	r8 = r8 << 4;
	r10 = heap32[(r5+3)];
	r10 = (r10 + r8)|0;
	r10 = r10 >> 2;
	heapFloat[(r10)] = f16;
	r10 = r8 | 4;
	r11 = heap32[(r5+3)];
	r11 = (r11 + r10)|0;
	r11 = r11 >> 2;
	heapFloat[(r11)] = f18;
	r11 = r8 | 8;
	r12 = heap32[(r5+3)];
	r12 = (r12 + r11)|0;
	r12 = r12 >> 2;
	heapFloat[(r12)] = f17;
	r12 = heap32[(r5+5)];
	r12 = (r12 + r7)|0;
	r12 = r12 >> 2;
	f0 = -f1;
	heapFloat[(r12)] = f0;
	r12 = heap32[(r5+5)];
	r9 = (r12 + r9)|0;
	r9 = r9 >> 2;
	f0 = -f4;
	heapFloat[(r9)] = f0;
	r9 = heap32[(r5+5)];
	r6 = (r9 + r6)|0;
	r6 = r6 >> 2;
	f0 = -f8;
	heapFloat[(r6)] = f0;
	r6 = heap32[(r5+5)];
	r6 = (r6 + r8)|0;
	r6 = r6 >> 2;
	f0 = -f16;
	heapFloat[(r6)] = f0;
	r6 = heap32[(r5+5)];
	r6 = (r6 + r10)|0;
	r6 = r6 >> 2;
	f0 = -f18;
	heapFloat[(r6)] = f0;
	r6 = heap32[(r5+5)];
	r6 = (r6 + r11)|0;
	f5 = heapFloat[(fp+-7)];
	f0 = heapFloat[(fp+-2)];
	f6 = f0*f5;
	f11 = heapFloat[(fp+-6)];
	f7 = heapFloat[(fp+-3)];
	f12 = f7*f11;
	f13 = heapFloat[(fp+-5)];
	f7 = f7*f13;
	f14 = heapFloat[(fp+-4)];
	f5 = f14*f5;
	f6 = f6-f12;
	f5 = f7-f5;
	f7 = f14*f11;
	f0 = f0*f13;
	r6 = r6 >> 2;
	f11 = -f17;
	heapFloat[(r6)] = f11;
	f0 = f7-f0;
	f1 = f6*f1;
	f4 = f5*f4;
	r6 = heap32[(r5+7)];
	f1 = f1+f4;
	f4 = f0*f8;
	f7 = heapFloat[(r5)];
	f8 = heapFloat[(r5+1)];
	r6 = (r6 + r7)|0;
	f1 = f1+f4;
	f4 = f7*f8;
	r6 = r6 >> 2;
	f1 = f1*f4;
	heapFloat[(r6)] = f1;
	f1 = f6*f16;
	f5 = f5*f18;
	r6 = heap32[(r5+7)];
	f1 = f1+f5;
	f0 = f0*f17;
	r6 = (r6 + r8)|0;
	f0 = f1+f0;
	r6 = r6 >> 2;
	f0 = f0*f4;
	heapFloat[(r6)] = f0;
	r6 = heapU8[r0+722];
	if(r6 !=0) //_LBB596_20
{
	f0 = heapFloat[(r1+176)];
	f1 = heapFloat[(r1+179)];
	f0 = f0*f1;
	r6 = 1;
	r7 = 2;
	r6 = f0 > f2 ? r6 : r7;
}
else{
	f0 =                         0;
	r6 = 0;
}
	r7 = heapU8[r0+721];
	r8 = 0;
	r9 = r7 != r8;
	r9 = r9 & 1;
	r9 = r9 | r6;
	if(r9 ==0) //_LBB596_59
{
__label__ = 54;
}
else{
	r9 = heap32[(r5+6)];
	r9 = (r9 * 5)|0;
	r10 = heap32[(r5+3)];
	r11 = r9 << 2;
	r10 = (r10 + r11)|0;
	r10 = r10 >> 2;
	r12 = (r9 + 1)|0;
	heapFloat[(r10)] = f9;
	r10 = r12 << 2;
	r12 = heap32[(r5+3)];
	r12 = (r12 + r10)|0;
	r12 = r12 >> 2;
	r9 = (r9 + 2)|0;
	heapFloat[(r12)] = f10;
	r9 = r9 << 2;
	r12 = heap32[(r5+3)];
	r12 = (r12 + r9)|0;
	r12 = r12 >> 2;
	heapFloat[(r12)] = f3;
	r12 = heap32[(r5+5)];
	r12 = (r12 + r11)|0;
	r12 = r12 >> 2;
	f1 = -f9;
	heapFloat[(r12)] = f1;
	r12 = heap32[(r5+5)];
	r10 = (r12 + r10)|0;
	r10 = r10 >> 2;
	f1 = -f10;
	heapFloat[(r10)] = f1;
	r10 = heap32[(r5+5)];
	r9 = (r10 + r9)|0;
	r9 = r9 >> 2;
	f1 = -f3;
	heapFloat[(r9)] = f1;
	r9 = heap32[(r5+7)];
	r9 = (r9 + r11)|0;
	f1 = heapFloat[(r1+172)];
	f4 = heapFloat[(r1+173)];
	r9 = r9 >> 2;
	heap32[(r9)] = 0;
	r9 = r6 != r8;
	r10 = f1 == f4;
	r12 = heap32[(r1+183)];
	r9 = r9 & r10;
	r10 = r12 & 2;
	if(r10 !=0) //_LBB596_24
{
	r2 = (r0 + 744)|0;
}
	r2 = r2 >> 2;
	f5 = heapFloat[(r2)];
	r2 = r7 == r8;
	r2 = r9 | r2;
if(!(r2 != 0)) //_LBB596_42
{
	r2 = r12 & 4;
if(!(r2 ==0)) //_LBB596_28
{
	r2 = heap32[(r5+8)];
	r2 = (r2 + r11)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = heap32[(r1+184)];
}
	f6 = heapFloat[(r1+167)];
_94: do {
	if(f1 <f4) //_LBB596_30
{
	f7 = heapFloat[(r1+178)];
	f8 = heapFloat[(r5)];
	f8 = f8*f5;
	f8 = f6/f8;
	if(f8 >=f2) //_LBB596_35
{
	if(f8 >f2) //_LBB596_37
{
if(!(f7 >f4)) //_LBB596_40
{
	f2 = f4-f8;
if(!(f2 >=f7)) //_LBB596_40
{
	f2 = f4-f7;
	f2 = f2/f8;
break _94;
}
}
	f2 =                         0;
	f8 = heapFloat[(fp+-1)];
	f2 = f7 > f4 ? f2 : f8;
}
else{
break _94;
}
}
else{
if(!(f7 <f1)) //_LBB596_34
{
	f2 = f1-f8;
if(!(f2 <=f7)) //_LBB596_34
{
	f2 = f1-f7;
	f2 = f2/f8;
break _94;
}
}
	f2 =                         0;
	f8 = heapFloat[(fp+-1)];
	f2 = f7 < f1 ? f2 : f8;
}
}
else{
	f7 = heapFloat[(fp+-1)];
	f2 = f1 > f4 ? f7 : f2;
}
} while(0);
	r2 = heap32[(r5+7)];
	r2 = (r2 + r11)|0;
	r2 = r2 >> 2;
	f2 = f6*f2;
	f6 = heapFloat[(r1+179)];
	f7 = heapFloat[(r2)];
	f2 = f2*f6;
	f2 = f7+f2;
	heapFloat[(r2)] = f2;
	r2 = heap32[(r5+9)];
	f2 = heapFloat[(r1+168)];
	r2 = (r2 + r11)|0;
	r2 = r2 >> 2;
	f2 = -f2;
	heapFloat[(r2)] = f2;
	r2 = heap32[(r5+10)];
	r2 = (r2 + r11)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = heap32[(r1+168)];
}
	if(r6 ==0) //_LBB596_59
{
__label__ = 54;
}
else{
	r2 = heap32[(r5+7)];
	r2 = (r2 + r11)|0;
	f2 = heapFloat[(r5)];
	r2 = r2 >> 2;
	f2 = f2*f5;
	f5 = heapFloat[(r2)];
	f0 = f2*f0;
	f0 = f5+f0;
	heapFloat[(r2)] = f0;
	r0 = heapU8[r0+732];
	r0 = r0 & 1;
if(!(r0 ==0)) //_LBB596_45
{
	r0 = heap32[(r5+8)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = heap32[(r1+185)];
}
	if(f1 !=f4) //_LBB596_47
{
	r0 = heap32[(r5+9)];
	if(r6 !=1) //_LBB596_49
{
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = -8388609;
	r0 = heap32[(r5+10)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
}
else{
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	r0 = heap32[(r5+10)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 2139095039;
}
}
else{
	r0 = heap32[(r5+9)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = -8388609;
	r0 = heap32[(r5+10)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 2139095039;
}
	f0 = heapFloat[(r1+171)];
	f1 =                         0;
	if(f0 <=f1) //_LBB596_58
{
__label__ = 53;
}
else{
	f2 = heapFloat[(r4+80)];
	f4 = heapFloat[(r3+80)];
	f5 = heapFloat[(r4+81)];
	f6 = heapFloat[(r3+81)];
	f2 = f2*f9;
	f5 = f5*f10;
	f7 = heapFloat[(r4+82)];
	f8 = heapFloat[(r3+82)];
	f4 = f4*f9;
	f6 = f6*f10;
	f2 = f2+f5;
	f5 = f7*f3;
	f4 = f4+f6;
	f3 = f8*f3;
	f2 = f2+f5;
	f3 = f4+f3;
	f2 = f2-f3;
	if(r6 !=1) //_LBB596_55
{
	if(f2 <=f1) //_LBB596_58
{
__label__ = 53;
}
else{
	r0 = heap32[(r5+7)];
	f0 = -f0;
	r0 = (r0 + r11)|0;
	f0 = f2*f0;
	r0 = r0 >> 2;
	f1 = heapFloat[(r0)];
	if(f1 <=f0) //_LBB596_58
{
__label__ = 53;
}
else{
	heapFloat[(r0)] = f0;
__label__ = 53;
}
}
}
else{
	if(f2 >=f1) //_LBB596_58
{
__label__ = 53;
}
else{
	r0 = heap32[(r5+7)];
	f0 = -f0;
	r0 = (r0 + r11)|0;
	f0 = f2*f0;
	r0 = r0 >> 2;
	f1 = heapFloat[(r0)];
	if(f1 >=f0) //_LBB596_58
{
__label__ = 53;
}
else{
	heapFloat[(r0)] = f0;
__label__ = 53;
}
}
}
}
}
}
}
else{
	r0 = _2E_str1149;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 682;
	_assert(i7);
}
}
} while(0);
if (__label__ == 53){
	r0 = heap32[(r5+7)];
	r0 = (r0 + r11)|0;
	r0 = r0 >> 2;
	f0 = heapFloat[(r0)];
	f1 = heapFloat[(r1+170)];
	f0 = f0*f1;
	heapFloat[(r0)] = f0;
}
	return;
}

function _ZN17btHingeConstraint8setParamEifi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
if(!(r0 ==-1)) //_LBB597_2
{
	if(r0 !=5) //_LBB597_9
{
	r0 = _2E_str10;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 969;
	_assert(i7);
}
}
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	f0 = heapFloat[(fp+2)];
	if(r1 ==4) //_LBB597_6
{
	r0 = r0 >> 2;
	heapFloat[(r0+185)] = f0;
	r1 = heap32[(r0+183)];
	r1 = r1 | 1;
	heap32[(r0+183)] = r1;
	return;
}
else{
	if(r1 ==3) //_LBB597_7
{
	r0 = r0 >> 2;
	heapFloat[(r0+184)] = f0;
	r1 = heap32[(r0+183)];
	r1 = r1 | 4;
	heap32[(r0+183)] = r1;
	return;
}
else{
	if(r1 !=2) //_LBB597_8
{
	r0 = _2E_str10;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 964;
	_assert(i7);
}
else{
	r0 = r0 >> 2;
	heapFloat[(r0+186)] = f0;
	r1 = heap32[(r0+183)];
	r1 = r1 | 2;
	heap32[(r0+183)] = r1;
	return;
}
}
}
}

function _ZNK17btHingeConstraint8getParamEii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
if(!(r0 ==-1)) //_LBB598_2
{
	if(r0 !=5) //_LBB598_15
{
	r0 = _2E_str10;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 999;
	_assert(i7);
}
}
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	if(r1 ==4) //_LBB598_8
{
	r1 = heapU8[r0+732];
	r1 = r1 & 1;
	if(r1 != 0) //_LBB598_10
{
	r0 = (r0 + 740)|0;
}
else{
	r0 = _2E_str332;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 986;
	_assert(i7);
}
}
else{
	if(r1 ==3) //_LBB598_11
{
	r1 = heapU8[r0+732];
	r1 = r1 & 4;
	if(r1 !=0) //_LBB598_13
{
	r0 = (r0 + 736)|0;
}
else{
	r0 = _2E_str433;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 990;
	_assert(i7);
}
}
else{
	if(r1 !=2) //_LBB598_14
{
	r0 = _2E_str10;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 994;
	_assert(i7);
}
else{
	r1 = heapU8[r0+732];
	r1 = r1 & 2;
	if(r1 !=0) //_LBB598_7
{
	r0 = (r0 + 744)|0;
}
else{
	r0 = _2E_str130;
	r1 = _2E_str231;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 982;
	_assert(i7);
}
}
}
}
	r0 = r0 >> 2;
	f0 = heapFloat[(r0)];
	f_g0 = f0;
	return;
}

function _ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	f0 = heapFloat[(r2+135)];
	f1 = heapFloat[(r0+4)];
	f2 = heapFloat[(r0)];
	f3 = heapFloat[(r2+136)];
	f4 = heapFloat[(r2+139)];
	f5 = heapFloat[(r0+5)];
	f6 = heapFloat[(r0+1)];
	f7 = heapFloat[(r2+140)];
	f8 = heapFloat[(r2+152)];
	f9 = heapFloat[(r1+4)];
	f10 = heapFloat[(r1)];
	f11 = heapFloat[(r2+156)];
	f12 = heapFloat[(r1+5)];
	f13 = heapFloat[(r1+1)];
	f14 = heapFloat[(r0+8)];
	f15 = heapFloat[(r0+9)];
	f16 = heapFloat[(r1+8)];
	f17 = heapFloat[(r1+9)];
	f18 = f2*f0;
	f19 = f6*f4;
	f20 = f1*f0;
	f21 = f5*f4;
	f10 = f10*f8;
	f13 = f13*f11;
	f2 = f2*f3;
	f6 = f6*f7;
	f9 = f9*f8;
	f12 = f12*f11;
	f1 = f1*f3;
	f5 = f5*f7;
	f22 = heapFloat[(r2+143)];
	f23 = heapFloat[(r0+6)];
	f24 = heapFloat[(r0+2)];
	f25 = heapFloat[(r2+144)];
	f26 = heapFloat[(r2+160)];
	f27 = heapFloat[(r1+6)];
	f28 = heapFloat[(r1+2)];
	f29 = heapFloat[(r0+10)];
	f30 = heapFloat[(r1+10)];
	f18 = f18+f19;
	f19 = f24*f22;
	f20 = f20+f21;
	f21 = f23*f22;
	f0 = f14*f0;
	f4 = f15*f4;
	f10 = f10+f13;
	f13 = f28*f26;
	f2 = f2+f6;
	f6 = f24*f25;
	f9 = f9+f12;
	f12 = f27*f26;
	f1 = f1+f5;
	f5 = f23*f25;
	f8 = f16*f8;
	f11 = f17*f11;
	f3 = f14*f3;
	f7 = f15*f7;
	f14 = f18+f19;
	f10 = f10+f13;
	f2 = f2+f6;
	f6 = f20+f21;
	f9 = f9+f12;
	f1 = f1+f5;
	f0 = f0+f4;
	f4 = f29*f22;
	f5 = f8+f11;
	f8 = f30*f26;
	f3 = f3+f7;
	f7 = f29*f25;
	f11 = f10*f14;
	f6 = f9*f6;
	f0 = f0+f4;
	f4 = f5+f8;
	f3 = f3+f7;
	f2 = f10*f2;
	f1 = f9*f1;
	f5 = f11+f6;
	f0 = f4*f0;
	f1 = f2+f1;
	f2 = f4*f3;
	f0 = f5+f0;
	f1 = f1+f2;
	heapFloat[(g0)] = f0;
	heapFloat[(g0+1)] = f1;
	atan2f(i7);
	f1 = heapFloat[(r2+179)];
	f0 = f1*f_g0;
	f_g0 = f0;
	return;
}

function _ZN18btConstraintSolver12prepareSolveEii(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+2)];
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r2 = r2 >> 2;
	f0 = heapFloat[(r1+4)];
	f1 = heapFloat[(r0+126)];
	f2 = heapFloat[(r1+5)];
	f3 = heapFloat[(r0+127)];
	f4 = heapFloat[(r1)];
	f5 = heapFloat[(r0+130)];
	f6 = heapFloat[(r1+1)];
	f7 = heapFloat[(r0+131)];
	f8 = heapFloat[(r2+126)];
	f9 = heapFloat[(r2+127)];
	f10 = heapFloat[(r1+6)];
	f11 = heapFloat[(r0+128)];
	f1 = f0*f1;
	f3 = f2*f3;
	f4 = f4*f5;
	f5 = f6*f7;
	f6 = heapFloat[(r1+2)];
	f7 = heapFloat[(r0+132)];
	f12 = heapFloat[(r1+8)];
	f13 = heapFloat[(r2+130)];
	f14 = heapFloat[(r1+9)];
	f15 = heapFloat[(r2+131)];
	f16 = heapFloat[(r2+128)];
	f1 = f1+f3;
	f3 = f10*f11;
	f4 = f4+f5;
	f5 = f6*f7;
	f6 = f12*f13;
	f7 = f14*f15;
	f11 = heapFloat[(r1+10)];
	f12 = heapFloat[(r2+132)];
	f8 = f0*f8;
	f9 = f2*f9;
	f13 = heapFloat[(r1+21)];
	f14 = heapFloat[(r1+30)];
	f1 = f1+f3;
	f3 = f4+f5;
	f4 = f6+f7;
	f5 = f11*f12;
	f6 = f8+f9;
	f7 = f10*f16;
	f8 = heapFloat[(r1+29)];
	f9 = f13*f14;
	f1 = f1+f3;
	f3 = heapFloat[(r1+23)];
	f4 = f4+f5;
	f5 = f6+f7;
	f4 = f4-f5;
	f5 = f8-f9;
	f1 = f3*f1;
	f1 = f5-f1;
	f3 = f3*f4;
	f1 = f1-f3;
	f3 = heapFloat[(r1+31)];
	f4 = f13+f1;
	if(f3 <=f4) //_LBB602_2
{
	f3 = heapFloat[(r1+32)];
	if(f3 >=f4) //_LBB602_4
{
	heapFloat[(r1+21)] = f4;
}
else{
	f1 = f3-f13;
	heapFloat[(r1+21)] = f3;
}
}
else{
	f1 = f3-f13;
	heapFloat[(r1+21)] = f3;
}
	f3 = heapFloat[(r0+84)];
	f4 =                         0;
if(!(f3 ==f4)) //_LBB602_7
{
	f3 = heapFloat[(r0+138)];
	f0 = f0*f3;
	f0 = f0*f1;
	f3 = heapFloat[(r0+126)];
	f5 = heapFloat[(r0+139)];
	f6 = heapFloat[(r0+140)];
	f0 = f3+f0;
	f2 = f2*f5;
	heapFloat[(r0+126)] = f0;
	f0 = f2*f1;
	f2 = heapFloat[(r0+127)];
	f0 = f2+f0;
	f2 = f10*f6;
	heapFloat[(r0+127)] = f0;
	f0 = f2*f1;
	f2 = heapFloat[(r0+128)];
	f0 = f2+f0;
	heapFloat[(r0+128)] = f0;
	f0 = heapFloat[(r0+134)];
	f0 = f0*f1;
	f2 = heapFloat[(r1+12)];
	f3 = heapFloat[(r0+136)];
	f5 = heapFloat[(r0+135)];
	f0 = f2*f0;
	f2 = heapFloat[(r0+130)];
	f6 = heapFloat[(r1+14)];
	f7 = heapFloat[(r1+13)];
	f0 = f2+f0;
	f2 = f5*f1;
	heapFloat[(r0+130)] = f0;
	f0 = f7*f2;
	f2 = heapFloat[(r0+131)];
	f0 = f2+f0;
	f2 = f3*f1;
	heapFloat[(r0+131)] = f0;
	f0 = f6*f2;
	f2 = heapFloat[(r0+132)];
	f0 = f2+f0;
	heapFloat[(r0+132)] = f0;
}
	f0 = heapFloat[(r2+84)];
if(!(f0 ==f4)) //_LBB602_9
{
	f0 = heapFloat[(r1+4)];
	f2 = heapFloat[(r2+138)];
	f0 = f2*f0;
	f0 = f0*f1;
	f2 = heapFloat[(r2+126)];
	f3 = heapFloat[(r1+5)];
	f4 = heapFloat[(r2+139)];
	f5 = heapFloat[(r1+6)];
	f6 = heapFloat[(r2+140)];
	f0 = f2-f0;
	f2 = f4*f3;
	heapFloat[(r2+126)] = f0;
	f0 = f2*f1;
	f2 = heapFloat[(r2+127)];
	f0 = f2-f0;
	f2 = f6*f5;
	heapFloat[(r2+127)] = f0;
	f0 = f2*f1;
	f2 = heapFloat[(r2+128)];
	f0 = f2-f0;
	heapFloat[(r2+128)] = f0;
	f0 = heapFloat[(r2+134)];
	f0 = f0*f1;
	f2 = heapFloat[(r1+16)];
	f3 = heapFloat[(r2+136)];
	f4 = heapFloat[(r2+135)];
	f0 = f2*f0;
	f2 = heapFloat[(r2+130)];
	f5 = heapFloat[(r1+18)];
	f6 = heapFloat[(r1+17)];
	f0 = f2+f0;
	f2 = f4*f1;
	heapFloat[(r2+130)] = f0;
	f0 = f6*f2;
	f2 = heapFloat[(r2+131)];
	f0 = f2+f0;
	f1 = f3*f1;
	heapFloat[(r2+131)] = f0;
	f0 = f5*f1;
	f1 = heapFloat[(r2+132)];
	f0 = f1+f0;
	heapFloat[(r2+132)] = f0;
}
	return;
}

function _ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+2)];
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r2 = r2 >> 2;
	f0 = heapFloat[(r1+4)];
	f1 = heapFloat[(r0+126)];
	f2 = heapFloat[(r1+5)];
	f3 = heapFloat[(r0+127)];
	f4 = heapFloat[(r1)];
	f5 = heapFloat[(r0+130)];
	f6 = heapFloat[(r1+1)];
	f7 = heapFloat[(r0+131)];
	f8 = heapFloat[(r2+126)];
	f9 = heapFloat[(r2+127)];
	f10 = heapFloat[(r1+6)];
	f11 = heapFloat[(r0+128)];
	f1 = f0*f1;
	f3 = f2*f3;
	f4 = f4*f5;
	f5 = f6*f7;
	f6 = heapFloat[(r1+2)];
	f7 = heapFloat[(r0+132)];
	f12 = heapFloat[(r1+8)];
	f13 = heapFloat[(r2+130)];
	f14 = heapFloat[(r1+9)];
	f15 = heapFloat[(r2+131)];
	f16 = heapFloat[(r2+128)];
	f1 = f1+f3;
	f3 = f10*f11;
	f4 = f4+f5;
	f5 = f6*f7;
	f6 = f12*f13;
	f7 = f14*f15;
	f11 = heapFloat[(r1+10)];
	f12 = heapFloat[(r2+132)];
	f8 = f0*f8;
	f9 = f2*f9;
	f13 = heapFloat[(r1+21)];
	f14 = heapFloat[(r1+30)];
	f1 = f1+f3;
	f3 = f4+f5;
	f4 = f6+f7;
	f5 = f11*f12;
	f6 = f8+f9;
	f7 = f10*f16;
	f8 = heapFloat[(r1+29)];
	f9 = f13*f14;
	f1 = f1+f3;
	f3 = heapFloat[(r1+23)];
	f4 = f4+f5;
	f5 = f6+f7;
	f4 = f4-f5;
	f5 = f8-f9;
	f1 = f3*f1;
	f1 = f5-f1;
	f3 = f3*f4;
	f1 = f1-f3;
	f3 = heapFloat[(r1+31)];
	f4 = f13+f1;
	if(f3 >f4) //_LBB603_2
{
	f1 = f3-f13;
	f4 = f3;
}
	heapFloat[(r1+21)] = f4;
	f3 = heapFloat[(r0+84)];
	f4 =                         0;
if(!(f3 ==f4)) //_LBB603_5
{
	f3 = heapFloat[(r0+138)];
	f0 = f0*f3;
	f0 = f0*f1;
	f3 = heapFloat[(r0+126)];
	f5 = heapFloat[(r0+139)];
	f6 = heapFloat[(r0+140)];
	f0 = f3+f0;
	f2 = f2*f5;
	heapFloat[(r0+126)] = f0;
	f0 = f2*f1;
	f2 = heapFloat[(r0+127)];
	f0 = f2+f0;
	f2 = f10*f6;
	heapFloat[(r0+127)] = f0;
	f0 = f2*f1;
	f2 = heapFloat[(r0+128)];
	f0 = f2+f0;
	heapFloat[(r0+128)] = f0;
	f0 = heapFloat[(r0+134)];
	f0 = f0*f1;
	f2 = heapFloat[(r1+12)];
	f3 = heapFloat[(r0+136)];
	f5 = heapFloat[(r0+135)];
	f0 = f2*f0;
	f2 = heapFloat[(r0+130)];
	f6 = heapFloat[(r1+14)];
	f7 = heapFloat[(r1+13)];
	f0 = f2+f0;
	f2 = f5*f1;
	heapFloat[(r0+130)] = f0;
	f0 = f7*f2;
	f2 = heapFloat[(r0+131)];
	f0 = f2+f0;
	f2 = f3*f1;
	heapFloat[(r0+131)] = f0;
	f0 = f6*f2;
	f2 = heapFloat[(r0+132)];
	f0 = f2+f0;
	heapFloat[(r0+132)] = f0;
}
	f0 = heapFloat[(r2+84)];
if(!(f0 ==f4)) //_LBB603_7
{
	f0 = heapFloat[(r1+4)];
	f2 = heapFloat[(r2+138)];
	f0 = f2*f0;
	f0 = f0*f1;
	f2 = heapFloat[(r2+126)];
	f3 = heapFloat[(r1+5)];
	f4 = heapFloat[(r2+139)];
	f5 = heapFloat[(r1+6)];
	f6 = heapFloat[(r2+140)];
	f0 = f2-f0;
	f2 = f4*f3;
	heapFloat[(r2+126)] = f0;
	f0 = f2*f1;
	f2 = heapFloat[(r2+127)];
	f0 = f2-f0;
	f2 = f6*f5;
	heapFloat[(r2+127)] = f0;
	f0 = f2*f1;
	f2 = heapFloat[(r2+128)];
	f0 = f2-f0;
	heapFloat[(r2+128)] = f0;
	f0 = heapFloat[(r2+134)];
	f0 = f0*f1;
	f2 = heapFloat[(r1+16)];
	f3 = heapFloat[(r2+136)];
	f4 = heapFloat[(r2+135)];
	f0 = f2*f0;
	f2 = heapFloat[(r2+130)];
	f5 = heapFloat[(r1+18)];
	f6 = heapFloat[(r1+17)];
	f0 = f2+f0;
	f2 = f4*f1;
	heapFloat[(r2+130)] = f0;
	f0 = f6*f2;
	f2 = heapFloat[(r2+131)];
	f0 = f2+f0;
	f1 = f3*f1;
	heapFloat[(r2+131)] = f0;
	f0 = f5*f1;
	f1 = heapFloat[(r2+132)];
	f0 = f1+f0;
	heapFloat[(r2+132)] = f0;
}
	return;
}

function _ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+33)];
	f1 =                         0;
if(!(f0 ==f1)) //_LBB604_8
{
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
	r3 = gNumSplitImpulseRecoveries;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r2 = r2 >> 2;
	f2 = heapFloat[(r0+4)];
	f3 = heapFloat[(r1+142)];
	f4 = heapFloat[(r0+5)];
	f5 = heapFloat[(r1+143)];
	f6 = heapFloat[(r0)];
	f7 = heapFloat[(r1+146)];
	f8 = heapFloat[(r0+1)];
	f9 = heapFloat[(r1+147)];
	f10 = heapFloat[(r2+142)];
	f11 = heapFloat[(r2+143)];
	f12 = heapFloat[(r0+6)];
	f13 = heapFloat[(r1+144)];
	f3 = f2*f3;
	f5 = f4*f5;
	f6 = f6*f7;
	f7 = f8*f9;
	f8 = heapFloat[(r0+2)];
	f9 = heapFloat[(r1+148)];
	f14 = heapFloat[(r0+8)];
	f15 = heapFloat[(r2+146)];
	f16 = heapFloat[(r0+9)];
	f17 = heapFloat[(r2+147)];
	f18 = heapFloat[(r2+144)];
	f3 = f3+f5;
	f5 = f12*f13;
	f6 = f6+f7;
	f7 = f8*f9;
	f8 = f14*f15;
	f9 = f16*f17;
	f13 = heapFloat[(r0+10)];
	f14 = heapFloat[(r2+148)];
	f10 = f2*f10;
	f11 = f4*f11;
	f15 = heapFloat[(r0+20)];
	f16 = heapFloat[(r0+30)];
	f3 = f3+f5;
	f5 = f6+f7;
	f6 = f8+f9;
	f7 = f13*f14;
	f8 = f10+f11;
	f9 = f12*f18;
	f10 = f15*f16;
	f3 = f3+f5;
	f5 = heapFloat[(r0+23)];
	f6 = f6+f7;
	f7 = f8+f9;
	f6 = f6-f7;
	f0 = f0-f10;
	f3 = f5*f3;
	f0 = f0-f3;
	f3 = f5*f6;
	f0 = f0-f3;
	f3 = heapFloat[(r0+31)];
	f5 = f15+f0;
	if(f3 >f5) //_LBB604_3
{
	f0 = f3-f15;
	f5 = f3;
}
	heapFloat[(r0+20)] = f5;
	f3 = heapFloat[(r1+84)];
if(!(f3 ==f1)) //_LBB604_6
{
	f3 = heapFloat[(r1+138)];
	f2 = f2*f3;
	f2 = f2*f0;
	f3 = heapFloat[(r1+142)];
	f5 = heapFloat[(r1+139)];
	f6 = heapFloat[(r1+140)];
	f2 = f3+f2;
	f3 = f4*f5;
	heapFloat[(r1+142)] = f2;
	f2 = f3*f0;
	f3 = heapFloat[(r1+143)];
	f2 = f3+f2;
	f3 = f12*f6;
	heapFloat[(r1+143)] = f2;
	f2 = f3*f0;
	f3 = heapFloat[(r1+144)];
	f2 = f3+f2;
	heapFloat[(r1+144)] = f2;
	f2 = heapFloat[(r1+134)];
	f2 = f2*f0;
	f3 = heapFloat[(r0+12)];
	f4 = heapFloat[(r1+136)];
	f5 = heapFloat[(r1+135)];
	f2 = f3*f2;
	f3 = heapFloat[(r1+146)];
	f6 = heapFloat[(r0+14)];
	f7 = heapFloat[(r0+13)];
	f2 = f3+f2;
	f3 = f5*f0;
	heapFloat[(r1+146)] = f2;
	f2 = f7*f3;
	f3 = heapFloat[(r1+147)];
	f2 = f3+f2;
	f3 = f4*f0;
	heapFloat[(r1+147)] = f2;
	f2 = f6*f3;
	f3 = heapFloat[(r1+148)];
	f2 = f3+f2;
	heapFloat[(r1+148)] = f2;
}
	f2 = heapFloat[(r2+84)];
if(!(f2 ==f1)) //_LBB604_8
{
	f1 = heapFloat[(r0+4)];
	f2 = heapFloat[(r2+138)];
	f1 = f2*f1;
	f1 = f1*f0;
	f2 = heapFloat[(r2+142)];
	f3 = heapFloat[(r0+5)];
	f4 = heapFloat[(r2+139)];
	f5 = heapFloat[(r0+6)];
	f6 = heapFloat[(r2+140)];
	f1 = f2-f1;
	f2 = f4*f3;
	heapFloat[(r2+142)] = f1;
	f1 = f2*f0;
	f2 = heapFloat[(r2+143)];
	f1 = f2-f1;
	f2 = f6*f5;
	heapFloat[(r2+143)] = f1;
	f1 = f2*f0;
	f2 = heapFloat[(r2+144)];
	f1 = f2-f1;
	heapFloat[(r2+144)] = f1;
	f1 = heapFloat[(r2+134)];
	f1 = f1*f0;
	f2 = heapFloat[(r0+16)];
	f3 = heapFloat[(r2+136)];
	f4 = heapFloat[(r2+135)];
	f1 = f2*f1;
	f2 = heapFloat[(r2+146)];
	f5 = heapFloat[(r0+18)];
	f6 = heapFloat[(r0+17)];
	f1 = f2+f1;
	f2 = f4*f0;
	heapFloat[(r2+146)] = f1;
	f1 = f6*f2;
	f2 = heapFloat[(r2+147)];
	f1 = f2+f1;
	f0 = f3*f0;
	heapFloat[(r2+147)] = f1;
	f0 = f5*f0;
	f1 = heapFloat[(r2+148)];
	f0 = f1+f0;
	heapFloat[(r2+148)] = f0;
}
}
	return;
}

function _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
if(!(r0 ==0)) //_LBB605_2
{
	r0 = r0 >> 2;
	r1 = heap32[(r0+45)];
	if(r1 !=0) //_LBB605_3
{
	r1 = heap32[(fp+1)];
	r1 = r1 >> 2;
	f0 = heapFloat[(r1)];
	f1 = heapFloat[(r0+2)];
	f2 = heapFloat[(r0+1)];
	f3 = heapFloat[(r1+1)];
	f4 = heapFloat[(r0+6)];
	f5 = heapFloat[(r0+5)];
	f6 = heapFloat[(r0+3)];
	f7 = heapFloat[(r0+7)];
	f8 = f2*f0;
	f9 = f5*f3;
	f10 = f1*f0;
	f11 = f4*f3;
	f12 = heapFloat[(r1+2)];
	f13 = heapFloat[(r0+10)];
	f14 = heapFloat[(r0+9)];
	f15 = heapFloat[(r0+11)];
	f8 = f8+f9;
	f9 = f14*f12;
	f10 = f10+f11;
	f11 = f13*f12;
	f0 = f6*f0;
	f3 = f7*f3;
	f8 = f8+f9;
	f9 = heapFloat[(r0+41)];
	f10 = f10+f11;
	f11 = heapFloat[(r0+42)];
	f0 = f0+f3;
	f3 = f15*f12;
	f8 = f8*f9;
	f9 = f10*f11;
	f10 = heapFloat[(r0+43)];
	f0 = f0+f3;
	f0 = f0*f10;
	f2 = f2*f8;
	f1 = f1*f9;
	f3 = f5*f8;
	f4 = f4*f9;
	f1 = f2+f1;
	f2 = f6*f0;
	f5 = f14*f8;
	f6 = f13*f9;
	f3 = f3+f4;
	f4 = f7*f0;
	f1 = f1+f2;
	f2 = f5+f6;
	f0 = f15*f0;
	f3 = f3+f4;
	heapFloat[(r1)] = f1;
	f0 = f2+f0;
	heapFloat[(r1+1)] = f3;
	heapFloat[(r1+2)] = f0;
	heap32[(r1+3)] = 0;
	return;
}
}
	return;
}

function _ZN35btSequentialImpulseConstraintSolver5resetEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	heap32[(r0+31)] = 0;
	return;
}

function _ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+7)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+11)];
_1: do {
if(!(r2 ==0)) //_LBB607_14
{
	r2 = heap32[(fp)];
	r0 = heapU8[r0+61];
	r3 = heap32[(r1+5)];
	r0 = r0 & 1;
	if(r0 != 0) //_LBB607_3
{
if(!(r3 <1)) //_LBB607_14
{
	r0 = 0;
_6: while(true){
	r3 = r2 >> 2;
	r4 = heap32[(r3+2)];
if(!(r4 <1)) //_LBB607_8
{
	r5 = 0;
_10: while(true){
	r6 = heap32[(r3+19)];
	r7 = r5 << 2;
	r6 = (r6 + r7)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	r6 = (r6 * 136)|0;
	r7 = heap32[(r3+4)];
	r6 = (r7 + r6)|0;
	r7 = r6 >> 2;
	r8 = heap32[(r7+27)];
	r7 = heap32[(r7+26)];
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r6;
	r5 = (r5 + 1)|0;
	_ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(i7);
if(!(r4 !=r5)) //_LBB607_7
{
break _10;
}
}
}
	r0 = (r0 + 1)|0;
	r3 = heap32[(r1+5)];
	if(r3 >r0) //_LBB607_5
{
continue _6;
}
else{
break _1;
}
}
}
}
else{
	if(r3 >0) //_LBB607_9
{
	r0 = 0;
_15: while(true){
	r3 = r2 >> 2;
	r4 = heap32[(r3+2)];
if(!(r4 <1)) //_LBB607_13
{
	r5 = 0;
_19: while(true){
	r6 = heap32[(r3+19)];
	r7 = r5 << 2;
	r6 = (r6 + r7)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	r6 = (r6 * 136)|0;
	r7 = heap32[(r3+4)];
	r6 = (r7 + r6)|0;
	r7 = r6 >> 2;
	r8 = heap32[(r7+27)];
	r7 = heap32[(r7+26)];
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r6;
	r5 = (r5 + 1)|0;
	_ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(i7);
if(!(r4 !=r5)) //_LBB607_12
{
break _19;
}
}
}
	r0 = (r0 + 1)|0;
	r3 = heap32[(r1+5)];
	if(r3 >r0) //_LBB607_10
{
continue _15;
}
else{
break _1;
}
}
}
}
}
} while(0);
	return;
}

function _ZN35btSequentialImpulseConstraintSolverD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV35btSequentialImpulseConstraintSolver;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+29)];
if(!(r1 ==0)) //_LBB608_4
{
	r3 = heapU8[r0+120];
if(!(r3 ==0)) //_LBB608_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+29)] = 0;
}
	r1 = 1;
	heap8[r0+120] = r1;
	heap32[(r2+29)] = 0;
	heap32[(r2+27)] = 0;
	heap32[(r2+28)] = 0;
	r3 = heap32[(r2+24)];
if(!(r3 ==0)) //_LBB608_8
{
	r4 = heapU8[r0+100];
if(!(r4 ==0)) //_LBB608_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+24)] = 0;
}
	heap8[r0+100] = r1;
	heap32[(r2+24)] = 0;
	heap32[(r2+22)] = 0;
	heap32[(r2+23)] = 0;
	r3 = heap32[(r2+19)];
if(!(r3 ==0)) //_LBB608_12
{
	r4 = heapU8[r0+80];
if(!(r4 ==0)) //_LBB608_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+19)] = 0;
}
	heap8[r0+80] = r1;
	heap32[(r2+19)] = 0;
	heap32[(r2+17)] = 0;
	heap32[(r2+18)] = 0;
	r3 = heap32[(r2+14)];
if(!(r3 ==0)) //_LBB608_16
{
	r4 = heapU8[r0+60];
if(!(r4 ==0)) //_LBB608_15
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+14)] = 0;
}
	heap8[r0+60] = r1;
	heap32[(r2+14)] = 0;
	heap32[(r2+12)] = 0;
	heap32[(r2+13)] = 0;
	r3 = heap32[(r2+9)];
if(!(r3 ==0)) //_LBB608_20
{
	r4 = heapU8[r0+40];
if(!(r4 ==0)) //_LBB608_19
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+9)] = 0;
}
	heap8[r0+40] = r1;
	heap32[(r2+9)] = 0;
	heap32[(r2+7)] = 0;
	heap32[(r2+8)] = 0;
	r3 = heap32[(r2+4)];
if(!(r3 ==0)) //_LBB608_24
{
	r4 = heapU8[r0+20];
if(!(r4 ==0)) //_LBB608_23
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	return;
}

function _ZN35btSequentialImpulseConstraintSolverD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV35btSequentialImpulseConstraintSolver;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+29)];
if(!(r1 ==0)) //_LBB609_4
{
	r3 = heapU8[r0+120];
if(!(r3 ==0)) //_LBB609_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+29)] = 0;
}
	r1 = 1;
	heap8[r0+120] = r1;
	heap32[(r2+29)] = 0;
	heap32[(r2+27)] = 0;
	heap32[(r2+28)] = 0;
	r3 = heap32[(r2+24)];
if(!(r3 ==0)) //_LBB609_8
{
	r4 = heapU8[r0+100];
if(!(r4 ==0)) //_LBB609_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+24)] = 0;
}
	heap8[r0+100] = r1;
	heap32[(r2+24)] = 0;
	heap32[(r2+22)] = 0;
	heap32[(r2+23)] = 0;
	r3 = heap32[(r2+19)];
if(!(r3 ==0)) //_LBB609_12
{
	r4 = heapU8[r0+80];
if(!(r4 ==0)) //_LBB609_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+19)] = 0;
}
	heap8[r0+80] = r1;
	heap32[(r2+19)] = 0;
	heap32[(r2+17)] = 0;
	heap32[(r2+18)] = 0;
	r3 = heap32[(r2+14)];
if(!(r3 ==0)) //_LBB609_16
{
	r4 = heapU8[r0+60];
if(!(r4 ==0)) //_LBB609_15
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+14)] = 0;
}
	heap8[r0+60] = r1;
	heap32[(r2+14)] = 0;
	heap32[(r2+12)] = 0;
	heap32[(r2+13)] = 0;
	r3 = heap32[(r2+9)];
if(!(r3 ==0)) //_LBB609_20
{
	r4 = heapU8[r0+40];
if(!(r4 ==0)) //_LBB609_19
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+9)] = 0;
}
	heap8[r0+40] = r1;
	heap32[(r2+9)] = 0;
	heap32[(r2+7)] = 0;
	heap32[(r2+8)] = 0;
	r3 = heap32[(r2+4)];
if(!(r3 ==0)) //_LBB609_24
{
	r4 = heapU8[r0+20];
if(!(r4 ==0)) //_LBB609_23
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+4)] = 0;
}
	heap8[r0+20] = r1;
	heap32[(r2+4)] = 0;
	heap32[(r2+2)] = 0;
	heap32[(r2+3)] = 0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = _2E_str450;
	r1 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	if(r1 !=0) //_LBB610_2
{
	r0 = heap32[(fp+2)];
	if(r0 !=0) //_LBB610_4
{
	r2 = heap32[(fp)];
	r3 = heap32[(fp+3)];
	r4 = heap32[(fp+4)];
	r5 = heap32[(fp+5)];
	r6 = heap32[(fp+6)];
	r7 = heap32[(fp+7)];
	r8 = heap32[(fp+8)];
	r9 = heap32[(fp+9)];
	r10 = r2 >> 2;
	r11 = heap32[(r10)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+8)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = r6;
	heap32[(g0+7)] = r7;
	heap32[(g0+8)] = r8;
	heap32[(g0+9)] = r9;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r11 = heap32[(r10)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+9)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = r6;
	heap32[(g0+7)] = r7;
	heap32[(g0+8)] = r8;
	heap32[(g0+9)] = r9;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+7)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r4;
	heap32[(g0+5)] = r5;
	heap32[(g0+6)] = r6;
	heap32[(g0+7)] = r7;
	heap32[(g0+8)] = r8;
	heap32[(g0+9)] = r9;
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_5: do {
if(!(r3 !=0)) //_LBB610_10
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB610_7
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB610_10
{
break _5;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	f0 =                         0;
	f_g0 = f0;
	return;
}
else{
	r0 = _2E_str753;
	r1 = _2E_str652;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1186;
	_assert(i7);
}
}
else{
	r1 = _2E_str551;
	r0 = _2E_str652;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 1185;
	_assert(i7);
}
}

function _ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
var __label__ = 0;
	i7 = sp + -504;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+7)];
	r5 = heap32[(r1+2)];
	r6 = 0;
_1: while(true){
	if(r6 <r5) //_LBB611_1
{
	r7 = (r6 * 34)|0;
	r8 = heap32[(r1+4)];
	r7 = r7 << 2;
	r7 = (r8 + r7)|0;
	r7 = r7 >> 2;
	r8 = heap32[(r7+28)];
	if(r8 !=0) //_LBB611_3
{
	r8 = r8 >> 2;
	heap32[(r8+28)] = heap32[(r7+21)];
	r9 = heapU8[r4+60];
	r9 = r9 & 8;
if(!(r9 ==0)) //_LBB611_5
{
	r9 = heap32[(r7+25)];
	r10 = heap32[(r1+14)];
	r9 = (r9 * 136)|0;
	r9 = (r10 + r9)|0;
	r9 = r9 >> 2;
	heap32[(r8+30)] = heap32[(r9+21)];
	r7 = heap32[(r7+25)];
	r9 = heap32[(r1+14)];
	r7 = (r7 * 136)|0;
	r7 = (r7 + r9)|0;
	r7 = r7 >> 2;
	heap32[(r8+31)] = heap32[(r7+55)];
}
	r6 = (r6 + 1)|0;
continue _1;
}
else{
__label__ = 2;
break _1;
}
}
else{
__label__ = 7;
break _1;
}
}
switch(__label__ ){//multiple entries
case 7:
	r5 = heap32[(r1+7)];
_10: do {
if(!(r5 <1)) //_LBB611_10
{
	r6 = 0;
_12: while(true){
	r7 = (r6 * 34)|0;
	r8 = heap32[(r1+9)];
	r7 = r7 << 2;
	r7 = (r8 + r7)|0;
	r7 = r7 >> 2;
	r8 = heap32[(r7+28)];
	r8 = r8 >> 2;
	f0 = heapFloat[(r8+7)];
	f1 = heapFloat[(r7+21)];
	r6 = (r6 + 1)|0;
	f0 = f1+f0;
	heapFloat[(r8+7)] = f0;
	if(r5 !=r6) //_LBB611_9
{
continue _12;
}
else{
break _10;
}
}
}
} while(0);
	r4 = r4 >> 2;
	r5 = heap32[(r4+11)];
_15: do {
	if(r5 !=0) //_LBB611_13
{
if(!(r3 <1)) //_LBB611_24
{
__label__ = 13; //SET chanka
_17: while(true){
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	r6 = heapU8[r5+232];
	r6 = r6 & 2;
if(!(r6 ==0)) //_LBB611_18
{
if(!(r5 ==0)) //_LBB611_18
{
	r6 = r5 >> 2;
	f0 = heapFloat[(r6+84)];
	f1 =                         0;
if(!(f0 ==f1)) //_LBB611_18
{
	f0 = heapFloat[(r4+3)];
	f1 = heapFloat[(r6+78)];
	f2 = heapFloat[(r6+128)];
	f3 = heapFloat[(r6+77)];
	f4 = heapFloat[(r6+127)];
	f5 = heapFloat[(r6+76)];
	f6 = heapFloat[(r6+126)];
	f5 = f5+f6;
	f3 = f3+f4;
	heapFloat[(r6+76)] = f5;
	f1 = f1+f2;
	heapFloat[(r6+77)] = f3;
	heapFloat[(r6+78)] = f1;
	heap32[(r6+79)] = 0;
	f1 = heapFloat[(r6+82)];
	f2 = heapFloat[(r6+132)];
	f3 = heapFloat[(r6+81)];
	f4 = heapFloat[(r6+131)];
	f5 = heapFloat[(r6+80)];
	f6 = heapFloat[(r6+130)];
	f5 = f5+f6;
	f3 = f3+f4;
	heapFloat[(r6+80)] = f5;
	f1 = f1+f2;
	heapFloat[(r6+81)] = f3;
	heapFloat[(r6+82)] = f1;
	heap32[(r6+83)] = 0;
	f1 = heapFloat[(r6+142)];
	f2 = heapFloat[(r6+143)];
	f3 = heapFloat[(r6+144)];
	r7 = sp + -64;
	r8 = (r5 + 4)|0;
	r5 = (r5 + 584)|0;
	heap32[(g0)] = r8;
	heapFloat[(g0+1)] = f1;
	heapFloat[(g0+2)] = f2;
	heapFloat[(g0+3)] = f3;
	heap32[(g0+4)] = r5;
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = r7;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
	r5 = r7 >> 2;
	heap32[(r6+1)] = heap32[(fp+-16)];
	heap32[(r6+2)] = heap32[(r5+1)];
	heap32[(r6+3)] = heap32[(r5+2)];
	heap32[(r6+4)] = heap32[(r5+3)];
	heap32[(r6+5)] = heap32[(r5+4)];
	heap32[(r6+6)] = heap32[(r5+5)];
	heap32[(r6+7)] = heap32[(r5+6)];
	heap32[(r6+8)] = heap32[(r5+7)];
	heap32[(r6+9)] = heap32[(r5+8)];
	heap32[(r6+10)] = heap32[(r5+9)];
	heap32[(r6+11)] = heap32[(r5+10)];
	heap32[(r6+12)] = heap32[(r5+11)];
	heap32[(r6+13)] = heap32[(r5+12)];
	heap32[(r6+14)] = heap32[(r5+13)];
	heap32[(r6+15)] = heap32[(r5+14)];
	heap32[(r6+16)] = heap32[(r5+15)];
}
}
}
	r3 = (r3 + -1)|0;
	r2 = (r2 + 4)|0;
	if(r3 ==0) //_LBB611_24
{
break _15;
}
else{
continue _17;
}
}
}
}
else{
if(!(r3 <1)) //_LBB611_24
{
__label__ = 18; //SET chanka
_25: while(true){
	r4 = r2 >> 2;
	r4 = heap32[(r4)];
	r5 = heapU8[r4+232];
	r5 = r5 & 2;
if(!(r5 ==0)) //_LBB611_23
{
if(!(r4 ==0)) //_LBB611_23
{
	r4 = r4 >> 2;
	f0 = heapFloat[(r4+84)];
	f1 =                         0;
if(!(f0 ==f1)) //_LBB611_23
{
	f0 = heapFloat[(r4+78)];
	f1 = heapFloat[(r4+128)];
	f2 = heapFloat[(r4+77)];
	f3 = heapFloat[(r4+127)];
	f4 = heapFloat[(r4+76)];
	f5 = heapFloat[(r4+126)];
	f4 = f4+f5;
	f2 = f2+f3;
	heapFloat[(r4+76)] = f4;
	f0 = f0+f1;
	heapFloat[(r4+77)] = f2;
	heapFloat[(r4+78)] = f0;
	heap32[(r4+79)] = 0;
	f0 = heapFloat[(r4+82)];
	f1 = heapFloat[(r4+132)];
	f2 = heapFloat[(r4+81)];
	f3 = heapFloat[(r4+131)];
	f4 = heapFloat[(r4+80)];
	f5 = heapFloat[(r4+130)];
	f4 = f4+f5;
	f2 = f2+f3;
	heapFloat[(r4+80)] = f4;
	f0 = f0+f1;
	heapFloat[(r4+81)] = f2;
	heapFloat[(r4+82)] = f0;
	heap32[(r4+83)] = 0;
}
}
}
	r3 = (r3 + -1)|0;
	r2 = (r2 + 4)|0;
	if(r3 !=0) //_LBB611_19
{
continue _25;
}
else{
break _15;
}
}
}
}
} while(0);
	r2 = heap32[(r1+2)];
_33: do {
if(!(r2 >-1)) //_LBB611_33
{
	r3 = heap32[(r1+3)];
if(!(r3 >-1)) //_LBB611_31
{
	r3 = heap32[(r1+4)];
if(!(r3 ==0)) //_LBB611_30
{
	r4 = heapU8[r0+20];
if(!(r4 ==0)) //_LBB611_29
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r1+4)] = 0;
}
	r3 = 1;
	heap8[r0+20] = r3;
	heap32[(r1+4)] = 0;
	heap32[(r1+3)] = 0;
}
	r3 = (r2 * 136)|0;
_44: while(true){
	r4 = heap32[(r1+4)];
	r4 = (r4 + r3)|0;
	r5 = sp + -472;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = 136;
	r2 = (r2 + 1)|0;
	r3 = (r3 + 136)|0;
	memcpy(i7);
	if(r2 !=0) //_LBB611_32
{
continue _44;
}
else{
break _33;
}
}
}
} while(0);
	heap32[(r1+2)] = 0;
	r2 = heap32[(r1+7)];
_47: do {
if(!(r2 >-1)) //_LBB611_42
{
	r3 = heap32[(r1+8)];
if(!(r3 >-1)) //_LBB611_40
{
	r3 = heap32[(r1+9)];
if(!(r3 ==0)) //_LBB611_39
{
	r4 = heapU8[r0+40];
if(!(r4 ==0)) //_LBB611_38
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r1+9)] = 0;
}
	r3 = 1;
	heap8[r0+40] = r3;
	heap32[(r1+9)] = 0;
	heap32[(r1+8)] = 0;
}
	r3 = (r2 * 136)|0;
_58: while(true){
	r4 = heap32[(r1+9)];
	r4 = (r4 + r3)|0;
	r5 = sp + -336;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = 136;
	r2 = (r2 + 1)|0;
	r3 = (r3 + 136)|0;
	memcpy(i7);
	if(r2 !=0) //_LBB611_41
{
continue _58;
}
else{
break _47;
}
}
}
} while(0);
	heap32[(r1+7)] = 0;
	r2 = heap32[(r1+12)];
_61: do {
if(!(r2 >-1)) //_LBB611_51
{
	r3 = heap32[(r1+13)];
if(!(r3 >-1)) //_LBB611_49
{
	r3 = heap32[(r1+14)];
if(!(r3 ==0)) //_LBB611_48
{
	r4 = heapU8[r0+60];
if(!(r4 ==0)) //_LBB611_47
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r1+14)] = 0;
}
	r3 = 1;
	heap8[r0+60] = r3;
	heap32[(r1+14)] = 0;
	heap32[(r1+13)] = 0;
}
	r0 = (r2 * 136)|0;
_72: while(true){
	r3 = heap32[(r1+14)];
	r3 = (r3 + r0)|0;
	r4 = sp + -200;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = 136;
	r2 = (r2 + 1)|0;
	r0 = (r0 + 136)|0;
	memcpy(i7);
	if(r2 !=0) //_LBB611_50
{
continue _72;
}
else{
break _61;
}
}
}
} while(0);
	heap32[(r1+12)] = 0;
	f0 =                         0;
	f_g0 = f0;
	return;
break;
case 2:
	r0 = _2E_str955;
	r1 = _2E_str652;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1129;
	_assert(i7);
break;
}
}

function _ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
var __label__ = 0;
	i7 = sp + -584;var g0 = i7>>2; // save stack
	r0 = _2E_str1056;
	r1 = heap32[(fp+6)];
	heap32[(g0)] = r0;
	r0 = heap32[(fp+4)];
	heap32[(fp+-133)] = r0;
	r2 = 0;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r0 = (r2 - r0)|0;
_1: do {
if(!(r1 ==r0)) //_LBB612_269
{
	r0 = heap32[(fp)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	heap32[(fp+-132)] = r5;
	r5 = heap32[(fp+5)];
	heap32[(fp+-127)] = r5;
	r5 = heap32[(fp+7)];
	r6 = r5 >> 2;
	r7 = heap32[(r6+11)];
_3: do {
	if(r7 !=0) //_LBB612_4
{
if(!(r4 <1)) //_LBB612_14
{
__label__ = 4; //SET chanka
_5: while(true){
	r7 = r3 >> 2;
	r7 = heap32[(r7)];
	r8 = heapU8[r7+232];
	r8 = r8 & 2;
if(!(r8 ==0)) //_LBB612_8
{
if(!(r7 ==0)) //_LBB612_8
{
	r7 = r7 >> 2;
	heap32[(r7+126)] = 0;
	heap32[(r7+127)] = 0;
	heap32[(r7+128)] = 0;
	heap32[(r7+129)] = 0;
	heap32[(r7+130)] = 0;
	heap32[(r7+131)] = 0;
	heap32[(r7+132)] = 0;
	heap32[(r7+133)] = 0;
	heap32[(r7+142)] = 0;
	heap32[(r7+143)] = 0;
	heap32[(r7+144)] = 0;
	heap32[(r7+145)] = 0;
	heap32[(r7+146)] = 0;
	heap32[(r7+147)] = 0;
	heap32[(r7+148)] = 0;
	heap32[(r7+149)] = 0;
}
}
	r4 = (r4 + -1)|0;
	r3 = (r3 + 4)|0;
	if(r4 ==0) //_LBB612_14
{
break _3;
}
else{
continue _5;
}
}
}
}
else{
if(!(r4 <1)) //_LBB612_14
{
__label__ = 8; //SET chanka
_12: while(true){
	r7 = r3 >> 2;
	r7 = heap32[(r7)];
	r8 = heapU8[r7+232];
	r8 = r8 & 2;
if(!(r8 ==0)) //_LBB612_12
{
if(!(r7 ==0)) //_LBB612_12
{
	r7 = r7 >> 2;
	heap32[(r7+126)] = 0;
	heap32[(r7+127)] = 0;
	heap32[(r7+128)] = 0;
	heap32[(r7+129)] = 0;
	heap32[(r7+130)] = 0;
	heap32[(r7+131)] = 0;
	heap32[(r7+132)] = 0;
	heap32[(r7+133)] = 0;
}
}
	r4 = (r4 + -1)|0;
	r3 = (r3 + 4)|0;
	if(r4 ==0) //_LBB612_14
{
break _3;
}
}
}
}
} while(0);
_19: do {
	if(r1 <1) //_LBB612_40
{
	r4 = r0 >> 2;
	r3 = heap32[(r4+27)];
_21: do {
if(!(r3 >r1)) //_LBB612_59
{
if(!(r3 >=r1)) //_LBB612_59
{
	r7 = heap32[(r4+28)];
if(!(r7 >=r1)) //_LBB612_58
{
	if(r1 !=0) //_LBB612_45
{
	r7 = gNumAlignedAllocs;
	r7 = r7 >> 2;
	r8 = heap32[(r7)];
	r9 = r1 << 3;
	r8 = (r8 + 1)|0;
	r9 = r9 | 3;
	heap32[(r7)] = r8;
	r7 = (r9 + 16)|0;
	heap32[(g0)] = r7;
	malloc(i7);
	r7 = r_g0;
	if(r7 !=0) //_LBB612_47
{
	r8 = (r7 + 4)|0;
	r8 = (r2 - r8)|0;
	r8 = r8 & 15;
	r8 = (r7 + r8)|0;
	r9 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r7;
	r7 = r9;
}
}
else{
	r7 = 0;
}
	r8 = (r0 + 116)|0;
	if(r3 <1) //_LBB612_50
{
	r2 = r8 >> 2;
	r9 = heap32[(r2)];
}
else{
_33: while(true){
	r9 = r8 >> 2;
	r9 = heap32[(r9)];
	r10 = r2 << 3;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r7 + r10)|0;
	r12 = heap32[(r11+1)];
	r11 = heap32[(r11)];
	r10 = r10 >> 2;
	r2 = (r2 + 1)|0;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = r12;
if(!(r3 !=r2)) //_LBB612_51
{
break _33;
}
}
	r8 = (r0 + 116)|0;
}
if(!(r9 ==0)) //_LBB612_57
{
	r2 = heapU8[r0+120];
if(!(r2 ==0)) //_LBB612_56
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r10 = heap32[(r2)];
	r10 = (r10 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r2)] = r10;
	r2 = heap32[(r9+-1)];
	heap32[(g0)] = r2;
	free(i7);
}
	r2 = r8 >> 2;
	heap32[(r2)] = 0;
}
	r2 = 1;
	r8 = r8 >> 2;
	heap8[r0+120] = r2;
	heap32[(r8)] = r7;
	heap32[(r4+28)] = r1;
	if(r3 >=r1) //_LBB612_59
{
break _21;
}
}
_43: while(true){
	r2 = r3 << 3;
	r7 = heap32[(r4+29)];
	r2 = (r7 + r2)|0;
	r2 = r2 >> 2;
	r3 = (r3 + 1)|0;
	heap32[(r2)] = 0;
	heap32[(r2+1)] = 0;
if(!(r1 !=r3)) //_LBB612_58
{
break _21;
}
}
}
}
} while(0);
	r3 = 0;
	heap32[(r4+27)] = r1;
}
else{
	r2 = 0;
_47: while(true){
	r3 = r2 << 2;
	r4 = heap32[(fp+-127)];
	r3 = (r4 + r3)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	r2 = (r2 + 1)|0;
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	if(r1 ==r2) //_LBB612_16
{
break _47;
}
}
	r2 = r0 >> 2;
	r3 = heap32[(r2+27)];
_50: do {
if(!(r3 >r1)) //_LBB612_35
{
if(!(r3 >=r1)) //_LBB612_35
{
	r4 = heap32[(r2+28)];
if(!(r4 >=r1)) //_LBB612_34
{
	if(r1 !=0) //_LBB612_21
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r7 = heap32[(r4)];
	r8 = r1 << 3;
	r7 = (r7 + 1)|0;
	r8 = r8 | 3;
	heap32[(r4)] = r7;
	r4 = (r8 + 16)|0;
	heap32[(g0)] = r4;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB612_23
{
	r7 = 0;
	r8 = (r4 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r4 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r4;
	r4 = r8;
}
}
else{
	r4 = 0;
}
	r7 = (r0 + 116)|0;
	if(r3 <1) //_LBB612_26
{
	r8 = r7 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_63: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 3;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r4 + r10)|0;
	r12 = heap32[(r11+1)];
	r11 = heap32[(r11)];
	r10 = r10 >> 2;
	r8 = (r8 + 1)|0;
	heap32[(r10)] = r11;
	heap32[(r10+1)] = r12;
if(!(r3 !=r8)) //_LBB612_27
{
break _63;
}
}
	r7 = (r0 + 116)|0;
}
if(!(r9 ==0)) //_LBB612_33
{
	r8 = heapU8[r0+120];
if(!(r8 ==0)) //_LBB612_32
{
	r8 = gNumAlignedFree;
	r8 = r8 >> 2;
	r10 = heap32[(r8)];
	r10 = (r10 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r8)] = r10;
	r8 = heap32[(r9+-1)];
	heap32[(g0)] = r8;
	free(i7);
}
	r8 = r7 >> 2;
	heap32[(r8)] = 0;
}
	r8 = 1;
	r7 = r7 >> 2;
	heap8[r0+120] = r8;
	heap32[(r7)] = r4;
	heap32[(r2+28)] = r1;
	if(r3 >=r1) //_LBB612_35
{
break _50;
}
}
_73: while(true){
	r4 = r3 << 3;
	r7 = heap32[(r2+29)];
	r4 = (r7 + r4)|0;
	r4 = r4 >> 2;
	r3 = (r3 + 1)|0;
	heap32[(r4)] = 0;
	heap32[(r4+1)] = 0;
if(!(r1 !=r3)) //_LBB612_34
{
break _50;
}
}
}
}
} while(0);
	heap32[(r2+27)] = r1;
	if(r1 >0) //_LBB612_37
{
	r4 = 0;
	r7 = heap32[(fp+-127)];
	r8 = r1;
	r3 = r4;
_78: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = r9 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+4)];
	r11 = heap32[(r2+29)];
	r11 = (r11 + r4)|0;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r11;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r9 = r11 >> 2;
	r9 = heap32[(r9)];
	r8 = (r8 + -1)|0;
	r3 = (r9 + r3)|0;
	r4 = (r4 + 8)|0;
	r7 = (r7 + 4)|0;
if(!(r8 !=0)) //_LBB612_38
{
break _19;
}
}
}
else{
	r3 = 0;
}
}
} while(0);
	r2 = r0 >> 2;
	r4 = heap32[(r2+7)];
_82: do {
if(!(r4 >r3)) //_LBB612_80
{
if(!(r4 >=r3)) //_LBB612_80
{
	r7 = heap32[(r2+8)];
if(!(r7 >=r3)) //_LBB612_78
{
	if(r3 !=0) //_LBB612_65
{
	r7 = gNumAlignedAllocs;
	r7 = r7 >> 2;
	r8 = heap32[(r7)];
	r9 = (r3 * 136)|0;
	r8 = (r8 + 1)|0;
	r9 = r9 | 3;
	heap32[(r7)] = r8;
	r7 = (r9 + 16)|0;
	heap32[(g0)] = r7;
	malloc(i7);
	r7 = r_g0;
	if(r7 !=0) //_LBB612_67
{
	r8 = 0;
	r9 = (r7 + 4)|0;
	r8 = (r8 - r9)|0;
	r8 = r8 & 15;
	r8 = (r7 + r8)|0;
	r9 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r7;
	r7 = r9;
}
}
else{
	r7 = 0;
}
	r8 = (r0 + 36)|0;
	if(r4 <1) //_LBB612_70
{
	r9 = r8 >> 2;
	r11 = heap32[(r9)];
}
else{
	r9 = 0;
	r10 = r4;
_95: while(true){
	r11 = r8 >> 2;
	r11 = heap32[(r11)];
	r12 = (r7 + r9)|0;
	r13 = (r11 + r9)|0;
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r13;
	heap32[(g0+2)] = 136;
	r10 = (r10 + -1)|0;
	r9 = (r9 + 136)|0;
	memcpy(i7);
if(!(r10 !=0)) //_LBB612_71
{
break _95;
}
}
	r8 = (r0 + 36)|0;
}
if(!(r11 ==0)) //_LBB612_77
{
	r9 = heapU8[r0+40];
if(!(r9 ==0)) //_LBB612_76
{
	r9 = gNumAlignedFree;
	r9 = r9 >> 2;
	r10 = heap32[(r9)];
	r10 = (r10 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r9)] = r10;
	r9 = heap32[(r11+-1)];
	heap32[(g0)] = r9;
	free(i7);
}
	r9 = r8 >> 2;
	heap32[(r9)] = 0;
}
	r9 = 1;
	r8 = r8 >> 2;
	heap8[r0+40] = r9;
	heap32[(r8)] = r7;
	heap32[(r2+8)] = r3;
	if(r4 >=r3) //_LBB612_80
{
break _82;
}
}
	r7 = (r3 - r4)|0;
	r4 = (r4 * 136)|0;
_106: while(true){
	r8 = heap32[(r2+9)];
	r8 = (r8 + r4)|0;
	r9 = sp + -448;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r9;
	heap32[(g0+2)] = 136;
	r7 = (r7 + -1)|0;
	r4 = (r4 + 136)|0;
	memcpy(i7);
if(!(r7 !=0)) //_LBB612_79
{
break _82;
}
}
}
}
} while(0);
	r4 = 0;
	heap32[(r2+7)] = r3;
	r7 = r4;
_109: while(true){
	if(r4 <r1) //_LBB612_81
{
	r8 = heap32[(r2+29)];
	r9 = r4 << 3;
	r10 = (r8 + r9)|0;
	r10 = r10 >> 2;
	r10 = heap32[(r10)];
	if(r10 !=0) //_LBB612_83
{
	if(r7 <r3) //_LBB612_85
{
	r11 = r4 << 1;
	r12 = r4 << 2;
	r13 = heap32[(fp+-127)];
	r12 = (r13 + r12)|0;
	r12 = r12 >> 2;
	r13 = heap32[(r12)];
	r14 = r13 >> 2;
	r15 = heap32[(r2+9)];
	r16 = heap32[(r14+5)];
	r17 = heap32[(r14+6)];
if(!(r10 <1)) //_LBB612_90
{
	r10 = (r7 * 136)|0;
	r10 = (r15 + r10)|0;
	r18 = 0;
	r19 = r18;
_117: while(true){
	r20 = (r19 * 34)|0;
	r21 = 136;
	r22 = r18;
_119: while(true){
	r21 = (r21 + -1)|0;
	r23 = (r22 + 1)|0;
	r22 = (r10 + r22)|0;
	r24 = (r19 * 136)|0;
	heap8[r22+r24] = r18;
	r22 = r23;
if(!(r21 !=0)) //_LBB612_88
{
break _119;
}
}
	r21 = r20 << 2;
	r22 = r20 << 2;
	r21 = (r10 + r21)|0;
	r23 = r20 << 2;
	r22 = (r10 + r22)|0;
	r21 = r21 >> 2;
	r24 = r20 << 2;
	r23 = (r10 + r23)|0;
	r22 = r22 >> 2;
	heap32[(r21+31)] = -8388609;
	r21 = r20 << 2;
	r24 = (r10 + r24)|0;
	r23 = r23 >> 2;
	heap32[(r22+32)] = 2139095039;
	r20 = r20 << 2;
	r21 = (r10 + r21)|0;
	r22 = r24 >> 2;
	heap32[(r23+21)] = 0;
	r20 = (r10 + r20)|0;
	r23 = r11 << 2;
	r21 = r21 >> 2;
	heap32[(r22+20)] = 0;
	r22 = (r8 + r23)|0;
	r19 = (r19 + 1)|0;
	r20 = r20 >> 2;
	heap32[(r21+26)] = r16;
	r21 = r22 >> 2;
	heap32[(r20+27)] = r17;
	r20 = heap32[(r21)];
if(!(r20 >r19)) //_LBB612_87
{
break _117;
}
}
}
	r10 = r16 >> 2;
	heap32[(r10+126)] = 0;
	heap32[(r10+127)] = 0;
	heap32[(r10+128)] = 0;
	heap32[(r10+129)] = 0;
	heap32[(r10+130)] = 0;
	heap32[(r10+131)] = 0;
	heap32[(r10+132)] = 0;
	heap32[(r10+133)] = 0;
	r16 = r17 >> 2;
	heap32[(r16+126)] = 0;
	heap32[(r16+127)] = 0;
	heap32[(r16+128)] = 0;
	heap32[(r16+129)] = 0;
	heap32[(r16+130)] = 0;
	heap32[(r16+131)] = 0;
	heap32[(r16+132)] = 0;
	heap32[(r16+133)] = 0;
	f0 =                         1;
	f1 = heapFloat[(r6+3)];
	r17 = sp + -504;
	f1 = f0/f1;
	r18 = (r7 * 136)|0;
	r15 = (r15 + r18)|0;
	r18 = r17 >> 2;
	heapFloat[(fp+-126)] = f1;
	r19 = (r15 + 16)|0;
	heap32[(r18+1)] = heap32[(r6+8)];
	heap32[(r18+2)] = r19;
	heap32[(r18+3)] = r15;
	r19 = (r15 + 32)|0;
	heap32[(r18+4)] = 0;
	heap32[(r18+5)] = r19;
	r19 = (r15 + 116)|0;
	heap32[(r18+6)] = 34;
	r20 = r15 >> 2;
	heap32[(r18+7)] = r19;
	heap32[(r20+30)] = heap32[(r6+10)];
	r19 = (r15 + 120)|0;
	heap32[(r18+13)] = heap32[(r6+1)];
	r20 = (r15 + 124)|0;
	heap32[(r18+8)] = r19;
	r19 = (r15 + 128)|0;
	heap32[(r18+9)] = r20;
	heap32[(r18+10)] = r19;
	r19 = heap32[(r6+5)];
	heap32[(r18+12)] = r19;
	r12 = heap32[(r12)];
	r19 = r12 >> 2;
	r19 = heap32[(r19)];
	r19 = r19 >> 2;
	r19 = heap32[(r19+5)];
	r11 = r11 << 2;
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r17;
	r8 = (r8 + r11)|0;
	r8 = r8 >> 2;
	__FUNCTION_TABLE__[(r19)>>2](i7);
	r11 = heap32[(r8)];
_123: do {
if(!(r11 <1)) //_LBB612_93
{
	r11 = 0;
_125: while(true){
	r12 = (r11 * 34)|0;
	r12 = r12 << 2;
	r12 = (r15 + r12)|0;
	r12 = r12 >> 2;
	heap32[(r12+28)] = r13;
	r17 = heap32[(r14+5)];
	r17 = r17 >> 2;
	f1 = heapFloat[(r12)];
	f2 = heapFloat[(r17+64)];
	f3 = heapFloat[(r12+1)];
	f4 = heapFloat[(r17+65)];
	f5 = heapFloat[(r17+68)];
	f6 = heapFloat[(r17+69)];
	f2 = f2*f1;
	f4 = f4*f3;
	f7 = heapFloat[(r12+2)];
	f8 = heapFloat[(r17+66)];
	f9 = heapFloat[(r17+72)];
	f10 = heapFloat[(r17+73)];
	f11 = heapFloat[(r17+70)];
	f5 = f5*f1;
	f6 = f6*f3;
	f2 = f2+f4;
	f4 = f8*f7;
	f8 = heapFloat[(r17+74)];
	f9 = f9*f1;
	f10 = f10*f3;
	f5 = f5+f6;
	f6 = f11*f7;
	f2 = f2+f4;
	f4 = heapFloat[(r17+134)];
	f11 = heapFloat[(r17+136)];
	f12 = heapFloat[(r17+135)];
	f5 = f5+f6;
	f6 = f9+f10;
	f8 = f8*f7;
	f2 = f2*f4;
	f4 = f6+f8;
	f5 = f5*f12;
	heapFloat[(r12+12)] = f2;
	f2 = f4*f11;
	heapFloat[(r12+13)] = f5;
	heapFloat[(r12+14)] = f2;
	heap32[(r12+15)] = 0;
	r17 = heap32[(r14+6)];
	r17 = r17 >> 2;
	f2 = heapFloat[(r12+8)];
	f4 = heapFloat[(r17+64)];
	f5 = heapFloat[(r12+9)];
	f6 = heapFloat[(r17+65)];
	f8 = heapFloat[(r17+68)];
	f9 = heapFloat[(r17+69)];
	f4 = f4*f2;
	f6 = f6*f5;
	f10 = heapFloat[(r12+10)];
	f11 = heapFloat[(r17+66)];
	f12 = heapFloat[(r17+72)];
	f13 = heapFloat[(r17+73)];
	f14 = heapFloat[(r17+70)];
	f8 = f8*f2;
	f9 = f9*f5;
	f4 = f4+f6;
	f6 = f11*f10;
	f11 = heapFloat[(r17+74)];
	f12 = f12*f2;
	f13 = f13*f5;
	f8 = f8+f9;
	f9 = f14*f10;
	f4 = f4+f6;
	f6 = heapFloat[(r17+134)];
	f14 = heapFloat[(r17+136)];
	f15 = heapFloat[(r17+135)];
	f8 = f8+f9;
	f9 = f12+f13;
	f11 = f11*f10;
	f4 = f4*f6;
	f6 = f9+f11;
	f8 = f8*f15;
	heapFloat[(r12+16)] = f4;
	f4 = f6*f14;
	heapFloat[(r12+17)] = f8;
	heapFloat[(r12+18)] = f4;
	heap32[(r12+19)] = 0;
	f4 = heapFloat[(r10+68)];
	f6 = heapFloat[(r10+69)];
	f8 = heapFloat[(r10+64)];
	f9 = heapFloat[(r10+65)];
	f11 = heapFloat[(r10+72)];
	f12 = heapFloat[(r10+73)];
	f13 = heapFloat[(r10+70)];
	f14 = heapFloat[(r10+66)];
	f8 = f8*f1;
	f9 = f9*f3;
	f4 = f4*f1;
	f6 = f6*f3;
	f15 = heapFloat[(r10+74)];
	f16 = heapFloat[(r16+68)];
	f17 = heapFloat[(r16+69)];
	f18 = heapFloat[(r16+64)];
	f19 = heapFloat[(r16+65)];
	f8 = f8+f9;
	f9 = f14*f7;
	f4 = f4+f6;
	f6 = f13*f7;
	f11 = f11*f1;
	f12 = f12*f3;
	f13 = heapFloat[(r10+84)];
	f14 = heapFloat[(r12+5)];
	f20 = heapFloat[(r12+4)];
	f21 = heapFloat[(r16+84)];
	f22 = heapFloat[(r12+6)];
	f8 = f8+f9;
	f4 = f4+f6;
	f6 = f20*f13;
	f9 = f14*f13;
	f23 = heapFloat[(r16+72)];
	f24 = heapFloat[(r16+73)];
	f25 = heapFloat[(r16+70)];
	f26 = heapFloat[(r16+66)];
	f18 = f18*f2;
	f19 = f19*f5;
	f16 = f16*f2;
	f17 = f17*f5;
	f11 = f11+f12;
	f12 = f15*f7;
	f15 = heapFloat[(r16+74)];
	f27 = f20*f21;
	f28 = f14*f21;
	f11 = f11+f12;
	f12 = f22*f13;
	f13 = f18+f19;
	f18 = f26*f10;
	f16 = f16+f17;
	f17 = f25*f10;
	f19 = f23*f2;
	f23 = f24*f5;
	f8 = f8*f1;
	f4 = f4*f3;
	f6 = f6*f20;
	f9 = f9*f14;
	f13 = f13+f18;
	f16 = f16+f17;
	f17 = f22*f21;
	f18 = f19+f23;
	f15 = f15*f10;
	f19 = f27*f20;
	f21 = f28*f14;
	f4 = f8+f4;
	f8 = f11*f7;
	f6 = f6+f9;
	f9 = f12*f22;
	f11 = f18+f15;
	f12 = f13*f2;
	f13 = f16*f5;
	f15 = f19+f21;
	f16 = f17*f22;
	f4 = f4+f8;
	f6 = f6+f9;
	f8 = f12+f13;
	f9 = f11*f10;
	f11 = f15+f16;
	f4 = f4+f6;
	f6 = f8+f9;
	f4 = f11+f4;
	f4 = f6+f4;
	f4 = f0/f4;
	heapFloat[(r12+23)] = f4;
	f6 = heapFloat[(r10+76)];
	f8 = heapFloat[(r10+77)];
	f9 = heapFloat[(r10+80)];
	f11 = heapFloat[(r10+81)];
	f12 = heapFloat[(r16+80)];
	f13 = heapFloat[(r16+81)];
	f15 = heapFloat[(r16+76)];
	f16 = heapFloat[(r16+77)];
	f17 = heapFloat[(r10+78)];
	f18 = heapFloat[(r10+82)];
	f19 = heapFloat[(r16+82)];
	f21 = heapFloat[(r16+78)];
	f6 = f20*f6;
	f8 = f14*f8;
	f1 = f1*f9;
	f3 = f3*f11;
	f2 = f2*f12;
	f5 = f5*f13;
	f9 = f20*f15;
	f11 = f14*f16;
	f6 = f6+f8;
	f8 = f22*f17;
	f1 = f1+f3;
	f3 = f7*f18;
	f2 = f2+f5;
	f5 = f10*f19;
	f7 = f9+f11;
	f9 = f22*f21;
	f6 = f6+f8;
	f1 = f1+f3;
	f2 = f2+f5;
	f3 = f7+f9;
	f1 = f6+f1;
	f2 = f2-f3;
	f1 = f1+f2;
	f2 = heapFloat[(r18+13)];
	f3 =                         0;
	f1 = f2*f1;
	f2 = heapFloat[(r12+29)];
	f1 = f3-f1;
	f2 = f4*f2;
	f1 = f4*f1;
	f1 = f2+f1;
	r11 = (r11 + 1)|0;
	heapFloat[(r12+29)] = f1;
	heap32[(r12+21)] = 0;
	r12 = heap32[(r8)];
if(!(r12 >r11)) //_LBB612_92
{
break _123;
}
}
}
} while(0);
	r8 = heap32[(r2+29)];
	r8 = (r8 + r9)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
}
else{
__label__ = 78;
break _109;
}
}
else{
	r8 = 0;
}
	r7 = (r8 + r7)|0;
	r4 = (r4 + 1)|0;
}
else{
__label__ = 90;
break _109;
}
}
switch(__label__ ){//multiple entries
case 90:
	r1 = heap32[(fp+-133)];
_132: do {
if(!(r1 <1)) //_LBB612_225
{
_133: while(true){
	r1 = heap32[(fp+-132)];
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	heap32[(fp+-128)] = r1;
	r1 = r1 >> 2;
	heap32[(fp+-127)] = r1;
	r3 = heap32[(r1+277)];
	r1 = heap32[(r1+278)];
	r4 = heapU8[r3+232];
	r4 = r4 & 2;
	if(r4 !=0) //_LBB612_99
{
	r4 = r3;
}
else{
	r4 = 0;
}
	r7 = heapU8[r1+232];
	r7 = r7 & 2;
	if(r7 !=0) //_LBB612_102
{
	r7 = r1;
}
else{
	r7 = 0;
}
	if(r4 ==0) //_LBB612_105
{
__label__ = 99;
}
else{
	r4 = r4 >> 2;
	f0 = heapFloat[(r4+84)];
	f1 =                         0;
	if(f0 !=f1) //_LBB612_107
{
__label__ = 101;
}
else{
__label__ = 99;
}
}
if (__label__ == 99){
	if(r7 ==0) //_LBB612_224
{
__label__ = 216;
}
else{
	r4 = r7 >> 2;
	f0 = heapFloat[(r4+84)];
	f1 =                         0;
	if(f0 ==f1) //_LBB612_224
{
__label__ = 216;
}
else{
__label__ = 101;
}
}
}
if (__label__ == 101){
	r4 = heap32[(fp+-128)];
	r7 = (r4 + 4)|0;
	heap32[(fp+-129)] = r7;
	r7 = (r4 + 152)|0;
	heap32[(fp+-130)] = r7;
	r4 = (r4 + 168)|0;
	heap32[(fp+-131)] = r4;
	r4 = 0;
	r7 = r4;
_150: while(true){
	r8 = heap32[(fp+-127)];
	r8 = heap32[(r8+279)];
	if(r8 >r7) //_LBB612_108
{
	r8 = heap32[(fp+-128)];
	r8 = (r8 + r4)|0;
	r9 = r8 >> 2;
	f0 = heapFloat[(r9+21)];
	r10 = heap32[(fp+-127)];
	f1 = heapFloat[(r10+281)];
_153: do {
if(!(f0 >f1)) //_LBB612_222
{
	r10 = heap32[(fp+-129)];
	r10 = (r10 + r4)|0;
	r11 = heap32[(fp+-131)];
	r11 = (r11 + r4)|0;
	r12 = heap32[(fp+-130)];
	r12 = (r12 + r4)|0;
	r13 = heap32[(r2+3)];
	r14 = heap32[(r2+2)];
	if(r13 ==r14) //_LBB612_111
{
	r15 = 1;
	r16 = r14 << 1;
	r16 = r14 == 0 ? r15 : r16;
	if(r13 >=r16) //_LBB612_110
{
__label__ = 104;
}
else{
	if(r16 !=0) //_LBB612_114
{
	r13 = gNumAlignedAllocs;
	r13 = r13 >> 2;
	r17 = heap32[(r13)];
	r18 = (r16 * 136)|0;
	r17 = (r17 + 1)|0;
	r18 = r18 | 3;
	heap32[(r13)] = r17;
	r13 = (r18 + 16)|0;
	heap32[(g0)] = r13;
	malloc(i7);
	r17 = r_g0;
	if(r17 !=0) //_LBB612_116
{
	r13 = 0;
	r18 = (r17 + 4)|0;
	r13 = (r13 - r18)|0;
	r13 = r13 & 15;
	r13 = (r17 + r13)|0;
	r18 = (r13 + 4)|0;
	r13 = r13 >> 2;
	heap32[(r13)] = r17;
	r17 = r18;
}
}
else{
	r17 = 0;
}
	if(r14 <1) //_LBB612_119
{
	r19 = heap32[(r2+4)];
}
else{
	r13 = 0;
	r18 = r14;
_166: while(true){
	r19 = heap32[(r2+4)];
	r20 = (r17 + r13)|0;
	r21 = (r19 + r13)|0;
	heap32[(g0)] = r20;
	heap32[(g0+1)] = r21;
	heap32[(g0+2)] = 136;
	r18 = (r18 + -1)|0;
	r13 = (r13 + 136)|0;
	memcpy(i7);
if(!(r18 !=0)) //_LBB612_120
{
break _166;
}
}
}
	if(r19 !=0) //_LBB612_123
{
	r13 = heapU8[r0+20];
	if(r13 !=0) //_LBB612_125
{
	r13 = gNumAlignedFree;
	r13 = r13 >> 2;
	r18 = heap32[(r13)];
	r18 = (r18 + 1)|0;
	r19 = r19 >> 2;
	heap32[(r13)] = r18;
	r13 = heap32[(r19+-1)];
	heap32[(g0)] = r13;
	free(i7);
	r13 = heap32[(r2+2)];
}
else{
	r13 = r14;
}
	heap32[(r2+4)] = 0;
}
else{
	r13 = r14;
}
	heap8[r0+20] = r15;
	heap32[(r2+4)] = r17;
	heap32[(r2+3)] = r16;
__label__ = 121;
}
}
else{
__label__ = 104;
}
if (__label__ == 104){
	r13 = r14;
}
	r13 = (r13 + 1)|0;
	heap32[(r2+2)] = r13;
	r13 = heapU8[r3+232];
	r15 = heapU8[r1+232];
	r13 = r13 & 2;
	r16 = 0;
	r15 = r15 & 2;
	r13 = r13 == 0 ? r16 : r3;
	r17 = heap32[(r2+4)];
	r15 = r15 == 0 ? r16 : r1;
	if(r13 ==0) //_LBB612_130
{
	r18 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r19 = heapU8[r18];
if(!(r19 !=0)) //_LBB612_132
{
	r19 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r20 = r19 >> 2;
	heap32[(r20+41)] = 1065353216;
	heap32[(r20+42)] = 1065353216;
	heap32[(r20+43)] = 1065353216;
	heap32[(r20+44)] = 0;
	heap32[(r20+45)] = 0;
	heap32[(r20+46)] = 1566444395;
	heap32[(r20+47)] = 0;
	heap32[(r20+48)] = 0;
	heap32[(r20+49)] = 0;
	heap32[(r20+50)] = 0;
	heap32[(r20+51)] = 1;
	heap32[(r20+52)] = -1;
	heap32[(r20+53)] = -1;
	heap32[(r20+54)] = 1;
	heap32[(r20+55)] = 0;
	heap32[(r20+56)] = 1056964608;
	heap32[(r20+57)] = 0;
	heap32[(r20+58)] = 1;
	heap32[(r20+59)] = 0;
	heap32[(r20+60)] = 1065353216;
	heap32[(r20+61)] = 0;
	heap32[(r20+62)] = 0;
	heap32[(r20+63)] = 0;
	heap32[(r20+1)] = 1065353216;
	heap32[(r20+2)] = 0;
	heap32[(r20+3)] = 0;
	heap32[(r20+4)] = 0;
	heap32[(r20+5)] = 0;
	heap32[(r20+6)] = 1065353216;
	heap32[(r20+7)] = 0;
	heap32[(r20+8)] = 0;
	heap32[(r20+9)] = 0;
	heap32[(r20+10)] = 0;
	heap32[(r20+11)] = 1065353216;
	heap32[(r20+12)] = 0;
	heap32[(r20+13)] = 0;
	heap32[(r20+14)] = 0;
	r21 = _ZTV11btRigidBody;
	heap32[(r20+15)] = 0;
	r21 = (r21 + 8)|0;
	heap32[(r20+16)] = 0;
	r22 = 1;
	heap32[(r20)] = r21;
	heap8[r19+492] = r22;
	heap32[(r20+122)] = 0;
	heap32[(r20+120)] = 0;
	r21 = sp + -280;
	heap32[(r20+121)] = 0;
	r20 = r21 >> 2;
	heap32[(fp+-70)] = 0;
	heap32[(r20+1)] = 0;
	heap32[(r20+18)] = 0;
	heap32[(r20+19)] = 0;
	heap32[(r20+20)] = 0;
	heap32[(r20+21)] = 0;
	heap32[(r20+22)] = 0;
	heap32[(r20+23)] = 0;
	heap32[(r20+24)] = 0;
	heap32[(r20+25)] = 1056964608;
	heap32[(r20+26)] = 0;
	heap32[(r20+27)] = 1061997773;
	heap32[(r20+28)] = 1065353216;
	heap8[sp+-164] = r16;
	heap32[(r20+30)] = 1000593162;
	heap32[(r20+31)] = 1008981770;
	heap32[(r20+32)] = 1008981770;
	heap32[(r20+33)] = 1008981770;
	heap32[(r20+2)] = 1065353216;
	heap32[(r20+3)] = 0;
	heap32[(r20+4)] = 0;
	heap32[(r20+5)] = 0;
	heap32[(r20+6)] = 0;
	heap32[(r20+7)] = 1065353216;
	heap32[(r20+8)] = 0;
	heap32[(r20+9)] = 0;
	heap32[(r20+10)] = 0;
	heap32[(r20+11)] = 0;
	heap32[(r20+12)] = 1065353216;
	heap32[(r20+13)] = 0;
	heap32[(r20+14)] = 0;
	heap32[(r20+15)] = 0;
	heap32[(r20+16)] = 0;
	heap32[(r20+17)] = 0;
	heap32[(g0)] = r19;
	heap32[(g0+1)] = r21;
	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
	heap8[r18] = r22;
}
	r18 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r19 = r18 >> 2;
	r20 = heap32[(r19+51)];
	r20 = r20 | 1;
	heap32[(r19+51)] = r20;
	heap32[(r19+84)] = 0;
	f0 =                         0;
	f1 = heapFloat[(r19+95)];
	f2 = heapFloat[(r19+94)];
	f3 = heapFloat[(r19+93)];
	f3 = f3*f0;
	f2 = f2*f0;
	heapFloat[(r19+89)] = f3;
	f1 = f1*f0;
	heapFloat[(r19+90)] = f2;
	heapFloat[(r19+91)] = f1;
	heap32[(r19+92)] = 0;
	heap32[(r19+97)] = 0;
	heap32[(r19+98)] = 0;
	heap32[(r19+99)] = 0;
	heap32[(r19+100)] = 0;
	f1 = heapFloat[(r19+87)];
	f2 = heapFloat[(r19+86)];
	f3 = heapFloat[(r19+85)];
	f3 = f3*f0;
	f2 = f2*f0;
	heapFloat[(r19+138)] = f3;
	f0 = f1*f0;
	heapFloat[(r19+139)] = f2;
	heapFloat[(r19+140)] = f0;
	heap32[(r19+141)] = 0;
}
else{
	r18 = r13;
}
	r19 = (r14 * 136)|0;
	r17 = (r17 + r19)|0;
	r17 = r17 >> 2;
	heap32[(r17+26)] = r18;
	if(r15 ==0) //_LBB612_135
{
	r18 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r19 = heapU8[r18];
if(!(r19 !=0)) //_LBB612_137
{
	r19 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r20 = r19 >> 2;
	heap32[(r20+41)] = 1065353216;
	heap32[(r20+42)] = 1065353216;
	heap32[(r20+43)] = 1065353216;
	heap32[(r20+44)] = 0;
	heap32[(r20+45)] = 0;
	heap32[(r20+46)] = 1566444395;
	heap32[(r20+47)] = 0;
	heap32[(r20+48)] = 0;
	heap32[(r20+49)] = 0;
	heap32[(r20+50)] = 0;
	heap32[(r20+51)] = 1;
	heap32[(r20+52)] = -1;
	heap32[(r20+53)] = -1;
	heap32[(r20+54)] = 1;
	heap32[(r20+55)] = 0;
	heap32[(r20+56)] = 1056964608;
	heap32[(r20+57)] = 0;
	heap32[(r20+58)] = 1;
	heap32[(r20+59)] = 0;
	heap32[(r20+60)] = 1065353216;
	heap32[(r20+61)] = 0;
	heap32[(r20+62)] = 0;
	heap32[(r20+63)] = 0;
	heap32[(r20+1)] = 1065353216;
	heap32[(r20+2)] = 0;
	heap32[(r20+3)] = 0;
	heap32[(r20+4)] = 0;
	heap32[(r20+5)] = 0;
	heap32[(r20+6)] = 1065353216;
	heap32[(r20+7)] = 0;
	heap32[(r20+8)] = 0;
	heap32[(r20+9)] = 0;
	heap32[(r20+10)] = 0;
	heap32[(r20+11)] = 1065353216;
	heap32[(r20+12)] = 0;
	heap32[(r20+13)] = 0;
	heap32[(r20+14)] = 0;
	r21 = _ZTV11btRigidBody;
	heap32[(r20+15)] = 0;
	r21 = (r21 + 8)|0;
	heap32[(r20+16)] = 0;
	r22 = 1;
	heap32[(r20)] = r21;
	heap8[r19+492] = r22;
	heap32[(r20+122)] = 0;
	heap32[(r20+120)] = 0;
	r21 = sp + -144;
	heap32[(r20+121)] = 0;
	r20 = r21 >> 2;
	heap32[(fp+-36)] = 0;
	heap32[(r20+1)] = 0;
	heap32[(r20+18)] = 0;
	heap32[(r20+19)] = 0;
	heap32[(r20+20)] = 0;
	heap32[(r20+21)] = 0;
	heap32[(r20+22)] = 0;
	heap32[(r20+23)] = 0;
	heap32[(r20+24)] = 0;
	heap32[(r20+25)] = 1056964608;
	heap32[(r20+26)] = 0;
	heap32[(r20+27)] = 1061997773;
	heap32[(r20+28)] = 1065353216;
	heap8[sp+-28] = r16;
	heap32[(r20+30)] = 1000593162;
	heap32[(r20+31)] = 1008981770;
	heap32[(r20+32)] = 1008981770;
	heap32[(r20+33)] = 1008981770;
	heap32[(r20+2)] = 1065353216;
	heap32[(r20+3)] = 0;
	heap32[(r20+4)] = 0;
	heap32[(r20+5)] = 0;
	heap32[(r20+6)] = 0;
	heap32[(r20+7)] = 1065353216;
	heap32[(r20+8)] = 0;
	heap32[(r20+9)] = 0;
	heap32[(r20+10)] = 0;
	heap32[(r20+11)] = 0;
	heap32[(r20+12)] = 1065353216;
	heap32[(r20+13)] = 0;
	heap32[(r20+14)] = 0;
	heap32[(r20+15)] = 0;
	heap32[(r20+16)] = 0;
	heap32[(r20+17)] = 0;
	heap32[(g0)] = r19;
	heap32[(g0+1)] = r21;
	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
	heap8[r18] = r22;
}
	r18 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r19 = r18 >> 2;
	r20 = heap32[(r19+51)];
	r20 = r20 | 1;
	heap32[(r19+51)] = r20;
	heap32[(r19+84)] = 0;
	f0 =                         0;
	f1 = heapFloat[(r19+95)];
	f2 = heapFloat[(r19+94)];
	f3 = heapFloat[(r19+93)];
	f3 = f3*f0;
	f2 = f2*f0;
	heapFloat[(r19+89)] = f3;
	f1 = f1*f0;
	heapFloat[(r19+90)] = f2;
	heapFloat[(r19+91)] = f1;
	heap32[(r19+92)] = 0;
	heap32[(r19+97)] = 0;
	heap32[(r19+98)] = 0;
	heap32[(r19+99)] = 0;
	heap32[(r19+100)] = 0;
	f1 = heapFloat[(r19+87)];
	f2 = heapFloat[(r19+86)];
	f3 = heapFloat[(r19+85)];
	f3 = f3*f0;
	f2 = f2*f0;
	heapFloat[(r19+138)] = f3;
	f0 = f1*f0;
	heapFloat[(r19+139)] = f2;
	heapFloat[(r19+140)] = f0;
	heap32[(r19+141)] = 0;
}
else{
	r18 = r15;
}
	heap32[(r17+27)] = r18;
	r18 = r1 >> 2;
	heap32[(r17+28)] = r10;
	r19 = r3 >> 2;
	r20 = heap32[(r19+58)];
	r21 = heap32[(r18+58)];
	f0 = heapFloat[(r9+15)];
	f1 = heapFloat[(r19+15)];
	f2 = heapFloat[(r9+14)];
	f3 = heapFloat[(r19+14)];
	f4 = heapFloat[(r9+13)];
	f5 = heapFloat[(r19+13)];
	r19 = sp + -296;
	f4 = f4-f5;
	f2 = f2-f3;
	r22 = r19 >> 2;
	heapFloat[(fp+-74)] = f4;
	f0 = f0-f1;
	heapFloat[(r22+1)] = f2;
	heapFloat[(r22+2)] = f0;
	heap32[(r22+3)] = 0;
	f1 = heapFloat[(r9+11)];
	f3 = heapFloat[(r18+15)];
	f5 = heapFloat[(r9+10)];
	f6 = heapFloat[(r18+14)];
	f7 = heapFloat[(r9+9)];
	f8 = heapFloat[(r18+13)];
	r18 = sp + -312;
	f7 = f7-f8;
	f5 = f5-f6;
	r22 = r18 >> 2;
	heapFloat[(fp+-78)] = f7;
	f1 = f1-f3;
	heapFloat[(r22+1)] = f5;
	heapFloat[(r22+2)] = f1;
	r23 = r8 >> 2;
	heap32[(r22+3)] = 0;
	r22 = r8 >> 2;
	r24 = r8 >> 2;
	r20 = r20 & 2;
	r21 = r21 & 2;
	r20 = r20 == 0 ? r16 : r3;
	r16 = r21 == 0 ? r16 : r1;
	if(r20 ==0) //_LBB612_140
{
	heap32[(r17+12)] = 0;
	heap32[(r17+13)] = 0;
	f3 =                         0;
	heap32[(r17+14)] = 0;
	heap32[(r17+15)] = 0;
	f6 = f3;
	f8 = f3;
}
else{
	f3 = heapFloat[(r23+17)];
	f6 = heapFloat[(r22+19)];
	f8 = heapFloat[(r24+18)];
	f9 = f4*f8;
	f10 = f2*f3;
	f3 = f0*f3;
	f11 = f4*f6;
	f6 = f2*f6;
	f8 = f0*f8;
	f9 = f9-f10;
	f3 = f3-f11;
	f6 = f6-f8;
	r21 = r20 >> 2;
	f8 = heapFloat[(r21+64)];
	f10 = heapFloat[(r21+65)];
	f11 = heapFloat[(r21+68)];
	f12 = heapFloat[(r21+69)];
	f8 = f8*f6;
	f10 = f10*f3;
	f13 = heapFloat[(r21+66)];
	f14 = heapFloat[(r21+72)];
	f15 = heapFloat[(r21+73)];
	f16 = heapFloat[(r21+70)];
	f11 = f11*f6;
	f12 = f12*f3;
	f8 = f8+f10;
	f10 = f13*f9;
	f13 = heapFloat[(r21+74)];
	f6 = f14*f6;
	f3 = f15*f3;
	f11 = f11+f12;
	f12 = f16*f9;
	f8 = f8+f10;
	f10 = heapFloat[(r21+134)];
	f14 = heapFloat[(r21+136)];
	f15 = heapFloat[(r21+135)];
	f11 = f11+f12;
	f8 = f8*f10;
	f3 = f6+f3;
	f6 = f13*f9;
	f3 = f3+f6;
	f6 = f11*f15;
	heapFloat[(r17+12)] = f8;
	f3 = f3*f14;
	heapFloat[(r17+13)] = f6;
	heapFloat[(r17+14)] = f3;
	heap32[(r17+15)] = 0;
}
	if(r16 ==0) //_LBB612_143
{
	heap32[(r17+16)] = 0;
	heap32[(r17+17)] = 0;
	f10 =                         0;
	heap32[(r17+18)] = 0;
	heap32[(r17+19)] = 0;
	f11 = f10;
	f9 = f10;
}
else{
	f9 = heapFloat[(r24+18)];
	f10 = heapFloat[(r23+17)];
	f11 = heapFloat[(r22+19)];
	f12 = f5*f11;
	f13 = f1*f9;
	r21 = r16 >> 2;
	f12 = f12-f13;
	f13 = f1*f10;
	f11 = f7*f11;
	f12 = -f12;
	f14 = heapFloat[(r21+64)];
	f11 = f13-f11;
	f13 = heapFloat[(r21+65)];
	f9 = f7*f9;
	f10 = f5*f10;
	f15 = heapFloat[(r21+68)];
	f16 = heapFloat[(r21+69)];
	f14 = f14*f12;
	f13 = f13*f11;
	f9 = f9-f10;
	f10 = heapFloat[(r21+66)];
	f17 = heapFloat[(r21+72)];
	f18 = heapFloat[(r21+73)];
	f19 = heapFloat[(r21+70)];
	f15 = f15*f12;
	f16 = f16*f11;
	f13 = f14-f13;
	f10 = f10*f9;
	f14 = heapFloat[(r21+74)];
	f12 = f17*f12;
	f11 = f18*f11;
	f15 = f15-f16;
	f16 = f19*f9;
	f10 = f13-f10;
	f13 = heapFloat[(r21+134)];
	f17 = heapFloat[(r21+136)];
	f18 = heapFloat[(r21+135)];
	f15 = f15-f16;
	f10 = f10*f13;
	f11 = f12-f11;
	f9 = f14*f9;
	f9 = f11-f9;
	f11 = f15*f18;
	heapFloat[(r17+16)] = f10;
	f9 = f9*f17;
	heapFloat[(r17+17)] = f11;
	heapFloat[(r17+18)] = f9;
	heap32[(r17+19)] = 0;
}
	if(r20 !=0) //_LBB612_146
{
	f12 = f6*f0;
	f13 = f3*f2;
	f3 = f3*f4;
	f14 = f8*f0;
	f15 = heapFloat[(r23+17)];
	f12 = f12-f13;
	f13 = heapFloat[(r24+18)];
	f3 = f3-f14;
	f8 = f8*f2;
	f6 = f6*f4;
	f12 = f15*f12;
	f3 = f13*f3;
	f13 = heapFloat[(r22+19)];
	f6 = f8-f6;
	r21 = r20 >> 2;
	f3 = f12+f3;
	f6 = f13*f6;
	f8 = heapFloat[(r21+84)];
	f3 = f3+f6;
	f3 = f8+f3;
}
else{
	f3 =                         0;
}
	if(r16 !=0) //_LBB612_149
{
	f6 = f5*f9;
	f8 = f1*f11;
	f12 = f1*f10;
	f9 = f7*f9;
	f13 = heapFloat[(r23+17)];
	f6 = f6-f8;
	f8 = heapFloat[(r24+18)];
	f9 = f12-f9;
	f11 = f7*f11;
	f10 = f5*f10;
	f6 = f13*f6;
	f9 = f8*f9;
	f8 = heapFloat[(r22+19)];
	f10 = f11-f10;
	r21 = r16 >> 2;
	f9 = f6+f9;
	f6 = f8*f10;
	f8 = heapFloat[(r21+84)];
	f9 = f9+f6;
	f9 = f8+f9;
}
else{
	f9 =                         0;
}
	f6 =                         1;
	f3 = f3+f9;
	f3 = f6/f3;
	heapFloat[(r17+23)] = f3;
	f3 = heapFloat[(r23+17)];
	heapFloat[(r17+4)] = f3;
	f8 = heapFloat[(r24+18)];
	heapFloat[(r17+5)] = f8;
	f9 = heapFloat[(r22+19)];
	heapFloat[(r17+6)] = f9;
	heap32[(r17+7)] = heap32[(r9+20)];
	f10 = heapFloat[(r22+19)];
	f11 = heapFloat[(r24+18)];
	f12 = heapFloat[(r23+17)];
	f13 = f2*f10;
	f14 = f0*f11;
	f15 = f0*f12;
	f10 = f4*f10;
	f13 = f13-f14;
	f11 = f4*f11;
	f12 = f2*f12;
	f10 = f15-f10;
	heapFloat[(r17)] = f13;
	f11 = f11-f12;
	heapFloat[(r17+1)] = f10;
	heapFloat[(r17+2)] = f11;
	heap32[(r17+3)] = 0;
	f10 = heapFloat[(r24+18)];
	f11 = heapFloat[(r22+19)];
	f12 = heapFloat[(r23+17)];
	f13 = f1*f10;
	f14 = f5*f11;
	f11 = f7*f11;
	f15 = f1*f12;
	f13 = f13-f14;
	f12 = f5*f12;
	f10 = f7*f10;
	f11 = f11-f15;
	heapFloat[(r17+8)] = f13;
	f10 = f12-f10;
	heapFloat[(r17+9)] = f11;
	heapFloat[(r17+10)] = f10;
	heap32[(r17+11)] = 0;
	if(r20 !=0) //_LBB612_152
{
	r21 = r20 >> 2;
	f10 = heapFloat[(r21+81)];
	f11 = heapFloat[(r21+80)];
	f12 = heapFloat[(r21+82)];
	f13 = f11*f2;
	f14 = f10*f4;
	f4 = f12*f4;
	f11 = f11*f0;
	f0 = f10*f0;
	f2 = f12*f2;
	f10 = heapFloat[(r21+78)];
	f12 = f13-f14;
	f13 = heapFloat[(r21+77)];
	f11 = f4-f11;
	f14 = heapFloat[(r21+76)];
	f0 = f0-f2;
	f4 = f10+f12;
	f2 = f13+f11;
	f0 = f14+f0;
}
else{
	f0 =                         0;
	f2 = f0;
	f4 = f0;
}
	if(r16 !=0) //_LBB612_155
{
	r21 = r16 >> 2;
	f10 = heapFloat[(r21+81)];
	f11 = heapFloat[(r21+80)];
	f12 = heapFloat[(r21+82)];
	f13 = f11*f5;
	f14 = f10*f7;
	f7 = f12*f7;
	f11 = f11*f1;
	f1 = f10*f1;
	f5 = f12*f5;
	f10 = heapFloat[(r21+78)];
	f12 = f13-f14;
	f13 = heapFloat[(r21+77)];
	f11 = f7-f11;
	f14 = heapFloat[(r21+76)];
	f1 = f1-f5;
	f7 = f10+f12;
	f5 = f13+f11;
	f1 = f14+f1;
}
else{
	f1 =                         0;
	f5 = f1;
	f7 = f1;
}
	f0 = f0-f1;
	f1 = f2-f5;
	f2 = heapFloat[(r23+17)];
	f5 = heapFloat[(r24+18)];
	f4 = f4-f7;
	f7 = heapFloat[(r22+19)];
	f2 = f2*f0;
	f5 = f5*f1;
	f2 = f2+f5;
	f5 = f7*f4;
	f7 = heapFloat[(r9+21)];
	f10 = heapFloat[(r6+13)];
	f2 = f2+f5;
	f5 = f7+f10;
	heap32[(r17+22)] = heap32[(r9+22)];
	r21 = heap32[(r9+37)];
	r25 = heap32[(r6+16)];
	if(r21 >r25) //_LBB612_159
{
__label__ = 151;
}
else{
	f7 = heapFloat[(r9+23)];
	f10 = -f2;
	f7 = f7*f10;
	f10 =                         0;
	if(f7 <=f10) //_LBB612_159
{
__label__ = 151;
}
else{
__label__ = 152;
}
}
if (__label__ == 151){
	f7 =                         0;
}
	r21 = heapU8[r5+60];
	r21 = r21 & 4;
	if(r21 ==0) //_LBB612_167
{
	heap32[(r17+21)] = 0;
}
else{
	f10 = heapFloat[(r9+29)];
	f11 = heapFloat[(r6+14)];
	f10 = f10*f11;
	heapFloat[(r17+21)] = f10;
if(!(r20 ==0)) //_LBB612_164
{
	r21 = r20 >> 2;
	f11 = heapFloat[(r21+84)];
	f12 =                         0;
if(!(f11 ==f12)) //_LBB612_164
{
	f3 = f3*f11;
	f12 = heapFloat[(r21+85)];
	f3 = f3*f12;
	f3 = f3*f10;
	f12 = heapFloat[(r21+126)];
	f13 = heapFloat[(r21+86)];
	f14 = heapFloat[(r21+87)];
	f8 = f8*f11;
	f3 = f12+f3;
	f8 = f8*f13;
	heapFloat[(r21+126)] = f3;
	f3 = f8*f10;
	f8 = heapFloat[(r21+127)];
	f9 = f9*f11;
	f3 = f8+f3;
	f8 = f9*f14;
	heapFloat[(r21+127)] = f3;
	f3 = f8*f10;
	f8 = heapFloat[(r21+128)];
	f3 = f8+f3;
	heapFloat[(r21+128)] = f3;
	f3 = heapFloat[(r21+134)];
	f3 = f3*f10;
	f8 = heapFloat[(r17+12)];
	f9 = heapFloat[(r21+136)];
	f11 = heapFloat[(r21+135)];
	f3 = f8*f3;
	f8 = heapFloat[(r21+130)];
	f12 = heapFloat[(r17+14)];
	f13 = heapFloat[(r17+13)];
	f3 = f8+f3;
	f8 = f11*f10;
	heapFloat[(r21+130)] = f3;
	f3 = f13*f8;
	f8 = heapFloat[(r21+131)];
	f3 = f8+f3;
	f8 = f9*f10;
	heapFloat[(r21+131)] = f3;
	f3 = f12*f8;
	f8 = heapFloat[(r21+132)];
	f3 = f8+f3;
	heapFloat[(r21+132)] = f3;
}
}
if(!(r16 ==0)) //_LBB612_168
{
	r21 = r16 >> 2;
	f3 = heapFloat[(r21+84)];
	f8 =                         0;
if(!(f3 ==f8)) //_LBB612_168
{
	f8 = heapFloat[(r17+21)];
	f8 = -f8;
	f9 = heapFloat[(r17+4)];
	f9 = f9*f3;
	f10 = heapFloat[(r21+85)];
	f9 = f9*f10;
	f10 = heapFloat[(r17+5)];
	f11 = heapFloat[(r17+6)];
	f9 = f9*f8;
	f12 = heapFloat[(r21+126)];
	f13 = heapFloat[(r21+86)];
	f14 = heapFloat[(r21+87)];
	f15 = heapFloat[(r17+16)];
	f16 = heapFloat[(r17+17)];
	f17 = heapFloat[(r17+18)];
	f10 = f10*f3;
	f9 = f12+f9;
	f10 = f10*f13;
	heapFloat[(r21+126)] = f9;
	f9 = f10*f8;
	f10 = heapFloat[(r21+127)];
	f3 = f11*f3;
	f9 = f10+f9;
	f3 = f3*f14;
	heapFloat[(r21+127)] = f9;
	f3 = f3*f8;
	f9 = heapFloat[(r21+128)];
	f3 = f9+f3;
	heapFloat[(r21+128)] = f3;
	f3 = heapFloat[(r21+134)];
	f3 = f3*f8;
	f9 = heapFloat[(r21+136)];
	f10 = heapFloat[(r21+135)];
	f11 = heapFloat[(r21+130)];
	f3 = f3*f15;
	f3 = f11-f3;
	f10 = f10*f8;
	heapFloat[(r21+130)] = f3;
	f3 = f10*f16;
	f10 = heapFloat[(r21+131)];
	f3 = f10-f3;
	f8 = f9*f8;
	heapFloat[(r21+131)] = f3;
	f3 = f8*f17;
	f8 = heapFloat[(r21+132)];
	f3 = f8-f3;
	heapFloat[(r21+132)] = f3;
}
}
}
	heap32[(r17+20)] = 0;
	if(r20 !=0) //_LBB612_170
{
	r21 = r20 >> 2;
	f9 = heapFloat[(r21+76)];
	f8 = heapFloat[(r21+77)];
	f3 = heapFloat[(r21+78)];
}
else{
	f3 =                         0;
	f8 = f3;
	f9 = f3;
}
	f10 = heapFloat[(r17+4)];
	f11 = heapFloat[(r17+5)];
	f12 = heapFloat[(r17+6)];
	f9 = f10*f9;
	f8 = f11*f8;
	f8 = f9+f8;
	f3 = f12*f3;
	f3 = f8+f3;
	if(r20 !=0) //_LBB612_173
{
	r20 = r20 >> 2;
	f13 = heapFloat[(r20+80)];
	f9 = heapFloat[(r20+81)];
	f8 = heapFloat[(r20+82)];
}
else{
	f8 =                         0;
	f9 = f8;
	f13 = f8;
}
	f14 = heapFloat[(r17)];
	f15 = heapFloat[(r17+1)];
	f13 = f14*f13;
	f9 = f15*f9;
	f14 = heapFloat[(r17+2)];
	f9 = f13+f9;
	f8 = f14*f8;
	f8 = f9+f8;
	f3 = f3+f8;
	if(r16 !=0) //_LBB612_176
{
	r20 = r16 >> 2;
	f13 = heapFloat[(r20+80)];
	f9 = heapFloat[(r20+81)];
	f8 = heapFloat[(r20+82)];
}
else{
	f8 =                         0;
	f9 = f8;
	f13 = f8;
}
	f14 = heapFloat[(r17+8)];
	f15 = heapFloat[(r17+9)];
	f13 = f14*f13;
	f9 = f15*f9;
	f14 = heapFloat[(r17+10)];
	f9 = f13+f9;
	f8 = f14*f8;
	f8 = f9+f8;
	if(r16 !=0) //_LBB612_179
{
	r16 = r16 >> 2;
	f14 = heapFloat[(r16+76)];
	f13 = heapFloat[(r16+77)];
	f9 = heapFloat[(r16+78)];
}
else{
	f9 =                         0;
	f13 = f9;
	f14 = f9;
}
	f10 = f10*f14;
	f11 = f11*f13;
	f10 = f10+f11;
	f9 = f12*f9;
	f9 = f10+f9;
	f10 = heapFloat[(r6+8)];
	f11 = -f5;
	f8 = f8-f9;
	f9 = f10*f11;
	f10 = heapFloat[(r6+3)];
	f3 = f3+f8;
	f8 = f9/f10;
	f9 = heapFloat[(r17+23)];
	f3 = f7-f3;
	f7 = f9*f8;
	f3 = f9*f3;
	r16 = heap32[(r6+11)];
	if(r16 ==0) //_LBB612_182
{
__label__ = 174;
}
else{
	f8 = heapFloat[(r6+12)];
	if(f8 >=f5) //_LBB612_183
{
	heapFloat[(r17+29)] = f3;
	heapFloat[(r17+33)] = f7;
__label__ = 176;
}
else{
__label__ = 174;
}
}
if (__label__ == 174){
	f3 = f7+f3;
	heapFloat[(r17+29)] = f3;
	heap32[(r17+33)] = 0;
}
	heap32[(r17+30)] = 0;
	heap32[(r17+31)] = 0;
	heap32[(r17+32)] = 1343554297;
	r16 = heap32[(r2+12)];
	heap32[(r17+25)] = r16;
	r16 = heapU8[r5+60];
	r16 = r16 & 32;
	if(r16 ==0) //_LBB612_186
{
__label__ = 178;
}
else{
	r16 = heapU8[r8+120];
	if(r16 !=0) //_LBB612_200
{
	r16 = r8 >> 2;
	f0 = heapFloat[(r9+35)];
	f1 = heapFloat[(r16+33)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r14;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r19;
	heap32[(g0+5)] = r18;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r1;
	heap32[(g0+8)] = 1065353216;
	heapFloat[(g0+9)] = f1;
	heapFloat[(g0+10)] = f0;
	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
	r12 = heapU8[r5+60];
	r12 = r12 & 16;
	if(r12 ==0) //_LBB612_202
{
__label__ = 194;
}
else{
	r12 = r8 >> 2;
	r8 = r8 >> 2;
	f0 = heapFloat[(r12+36)];
	f1 = heapFloat[(r8+34)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r14;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r19;
	heap32[(g0+5)] = r18;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r1;
	heap32[(g0+8)] = 1065353216;
	heapFloat[(g0+9)] = f1;
	heapFloat[(g0+10)] = f0;
	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
__label__ = 194;
}
}
else{
__label__ = 178;
}
}
_259: do {
if (__label__ == 178){
	f3 = heapFloat[(r23+17)];
	f5 = heapFloat[(r22+19)];
	f7 = heapFloat[(r24+18)];
	f8 = f3*f2;
	f0 = f0-f8;
	f8 = f7*f2;
	r16 = r8 >> 2;
	f1 = f1-f8;
	f2 = f5*f2;
	r20 = r8 >> 2;
	heapFloat[(r16+38)] = f0;
	f2 = f4-f2;
	r21 = r8 >> 2;
	heapFloat[(r20+39)] = f1;
	r25 = r8 >> 2;
	heapFloat[(r21+40)] = f2;
	heap32[(r25+41)] = 0;
	r25 = heapU8[r5+60];
	r25 = r25 & 64;
if(!(r25 !=0)) //_LBB612_191
{
	f0 = f0*f0;
	f1 = f1*f1;
	f0 = f0+f1;
	f1 = f2*f2;
	f0 = f0+f1;
	f1 =   1.1920928955078125e-007;
if(!(f0 <=f1)) //_LBB612_191
{
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f3 = f6/f_g0;
	f5 = heapFloat[(r16+38)];
	f5 = f5*f3;
	heapFloat[(r16+38)] = f5;
	f7 = heapFloat[(r20+39)];
	f7 = f7*f3;
	heapFloat[(r20+39)] = f7;
	f0 = heapFloat[(r21+40)];
	f3 = f0*f3;
	heapFloat[(r21+40)] = f3;
	r16 = heapU8[r5+60];
	r16 = r16 & 16;
if(!(r16 ==0)) //_LBB612_190
{
	f0 = heapFloat[(r22+19)];
	f1 = heapFloat[(r24+18)];
	f2 = heapFloat[(r23+17)];
	f4 = f7*f0;
	f8 = f3*f1;
	f4 = f4-f8;
	f3 = f3*f2;
	f0 = f5*f0;
	r16 = r8 >> 2;
	f3 = f3-f0;
	f5 = f5*f1;
	f7 = f7*f2;
	r20 = r8 >> 2;
	heapFloat[(r16+42)] = f4;
	f5 = f5-f7;
	r21 = r8 >> 2;
	heapFloat[(r20+43)] = f3;
	f7 = f4*f4;
	f3 = f3*f3;
	r22 = r8 >> 2;
	heapFloat[(r21+44)] = f5;
	heap32[(r22+45)] = 0;
	f3 = f7+f3;
	f5 = f5*f5;
	f3 = f3+f5;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f3 = f6/f_g0;
	f5 = heapFloat[(r16+42)];
	f5 = f5*f3;
	heapFloat[(r16+42)] = f5;
	f5 = heapFloat[(r20+43)];
	f5 = f5*f3;
	heapFloat[(r20+43)] = f5;
	f5 = heapFloat[(r21+44)];
	f3 = f5*f3;
	heapFloat[(r21+44)] = f3;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r11;
	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r11;
	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r14;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r19;
	heap32[(g0+5)] = r18;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r1;
	heap32[(g0+8)] = 1065353216;
	heap32[(g0+9)] = 0;
	heap32[(g0+10)] = 0;
	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
}
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r12;
	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r12;
	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r14;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r19;
	heap32[(g0+5)] = r18;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r1;
	heap32[(g0+8)] = 1065353216;
	heap32[(g0+9)] = 0;
	heap32[(g0+10)] = 0;
	r10 = 1;
	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
	heap8[r8+120] = r10;
break _259;
}
}
	f0 =                         0;
	if(f5 <f0) //_LBB612_193
{
	f0 = -f5;
}
else{
	f0 = f5;
}
	f1 =       0.70710676908493042;
	if(f0 <=f1) //_LBB612_196
{
	f3 = f3*f3;
	f0 = f7*f7;
	f3 = f3+f0;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	f1 = heapFloat[(r24+18)];
	f0 = f6/f_g0;
	f1 = -f1;
	f1 = f0*f1;
	heapFloat[(r16+38)] = f1;
	f2 = heapFloat[(r23+17)];
	f2 = f2*f0;
	heapFloat[(r20+39)] = f2;
	heap32[(r21+40)] = 0;
	f4 = heapFloat[(r22+19)];
	f5 = -f4;
	r16 = r8 >> 2;
	f2 = f2*f5;
	f3 = f3*f0;
	r20 = r8 >> 2;
	f0 = f4*f1;
	heapFloat[(r16+42)] = f2;
	heapFloat[(r20+43)] = f0;
}
else{
	f3 = f7*f7;
	f7 = f5*f5;
	f3 = f3+f7;
	heapFloat[(g0)] = f3;
	sqrtf(i7);
	heap32[(r16+38)] = 0;
	f0 = heapFloat[(r22+19)];
	f6 = f6/f_g0;
	f7 = -f0;
	f7 = f6*f7;
	heapFloat[(r20+39)] = f7;
	f0 = heapFloat[(r24+18)];
	f0 = f0*f6;
	r16 = r8 >> 2;
	f3 = f3*f6;
	heapFloat[(r21+40)] = f0;
	heapFloat[(r16+42)] = f3;
	f3 = heapFloat[(r23+17)];
	f6 = -f3;
	f3 = f3*f7;
	r16 = r8 >> 2;
	f6 = f0*f6;
	heapFloat[(r16+43)] = f6;
}
	r16 = r8 >> 2;
	heapFloat[(r16+44)] = f3;
	r16 = heapU8[r5+60];
	r16 = r16 & 16;
if(!(r16 ==0)) //_LBB612_199
{
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r11;
	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r11;
	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r14;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r19;
	heap32[(g0+5)] = r18;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r1;
	heap32[(g0+8)] = 1065353216;
	heap32[(g0+9)] = 0;
	heap32[(g0+10)] = 0;
	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
}
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r12;
	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r12;
	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r14;
	heap32[(g0+3)] = r10;
	heap32[(g0+4)] = r19;
	heap32[(g0+5)] = r18;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r1;
	heap32[(g0+8)] = 1065353216;
	heap32[(g0+9)] = 0;
	heap32[(g0+10)] = 0;
	r10 = 1;
	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
	heap8[r8+120] = r10;
}
} while(0);
	r8 = heap32[(r6+15)];
	r10 = heap32[(r17+25)];
	r11 = heap32[(r2+14)];
	r12 = r8 & 8;
	if(r12 ==0) //_LBB612_220
{
	r8 = (r10 * 136)|0;
	r8 = (r11 + r8)|0;
	r8 = r8 >> 2;
	heap32[(r8+21)] = 0;
	r8 = heapU8[r5+60];
	r8 = r8 & 16;
	if(r8 ==0) //_LBB612_222
{
break _153;
}
else{
	r8 = heap32[(r17+25)];
	r9 = heap32[(r2+14)];
	r8 = (r8 * 136)|0;
	r8 = (r8 + r9)|0;
	r8 = r8 >> 2;
	heap32[(r8+55)] = 0;
}
}
else{
	r8 = r8 & 4;
	if(r8 ==0) //_LBB612_210
{
	r10 = (r10 * 136)|0;
	r10 = (r11 + r10)|0;
	r10 = r10 >> 2;
	heap32[(r10+21)] = 0;
}
else{
	r10 = (r10 * 136)|0;
	r10 = (r11 + r10)|0;
	f0 = heapFloat[(r9+31)];
	f1 = heapFloat[(r6+14)];
	f0 = f0*f1;
	r10 = r10 >> 2;
	heapFloat[(r10+21)] = f0;
if(!(r13 ==0)) //_LBB612_207
{
	r11 = r13 >> 2;
	f1 = heapFloat[(r11+84)];
	f2 =                         0;
if(!(f1 ==f2)) //_LBB612_207
{
	f2 = heapFloat[(r10+4)];
	f2 = f2*f1;
	f3 = heapFloat[(r11+85)];
	f2 = f2*f3;
	f3 = heapFloat[(r10+5)];
	f4 = heapFloat[(r10+6)];
	f2 = f2*f0;
	f5 = heapFloat[(r11+126)];
	f6 = heapFloat[(r11+86)];
	f7 = heapFloat[(r11+87)];
	f3 = f3*f1;
	f2 = f5+f2;
	f3 = f3*f6;
	heapFloat[(r11+126)] = f2;
	f2 = f3*f0;
	f3 = heapFloat[(r11+127)];
	f1 = f4*f1;
	f2 = f3+f2;
	f1 = f1*f7;
	heapFloat[(r11+127)] = f2;
	f1 = f1*f0;
	f2 = heapFloat[(r11+128)];
	f1 = f2+f1;
	heapFloat[(r11+128)] = f1;
	f1 = heapFloat[(r11+134)];
	f1 = f1*f0;
	f2 = heapFloat[(r10+12)];
	f3 = heapFloat[(r11+136)];
	f4 = heapFloat[(r11+135)];
	f1 = f2*f1;
	f2 = heapFloat[(r11+130)];
	f5 = heapFloat[(r10+14)];
	f6 = heapFloat[(r10+13)];
	f1 = f2+f1;
	f2 = f4*f0;
	heapFloat[(r11+130)] = f1;
	f1 = f6*f2;
	f2 = heapFloat[(r11+131)];
	f1 = f2+f1;
	f0 = f3*f0;
	heapFloat[(r11+131)] = f1;
	f0 = f5*f0;
	f1 = heapFloat[(r11+132)];
	f0 = f1+f0;
	heapFloat[(r11+132)] = f0;
}
}
if(!(r15 ==0)) //_LBB612_211
{
	r11 = r15 >> 2;
	f0 = heapFloat[(r11+84)];
	f1 =                         0;
if(!(f0 ==f1)) //_LBB612_211
{
	f1 = heapFloat[(r10+21)];
	f1 = -f1;
	f2 = heapFloat[(r10+4)];
	f2 = f2*f0;
	f3 = heapFloat[(r11+85)];
	f2 = f2*f3;
	f3 = heapFloat[(r10+5)];
	f4 = heapFloat[(r10+6)];
	f2 = f2*f1;
	f5 = heapFloat[(r11+126)];
	f6 = heapFloat[(r11+86)];
	f7 = heapFloat[(r11+87)];
	f8 = heapFloat[(r10+16)];
	f9 = heapFloat[(r10+17)];
	f10 = heapFloat[(r10+18)];
	f3 = f3*f0;
	f2 = f5+f2;
	f3 = f3*f6;
	heapFloat[(r11+126)] = f2;
	f2 = f3*f1;
	f3 = heapFloat[(r11+127)];
	f0 = f4*f0;
	f2 = f3+f2;
	f0 = f0*f7;
	heapFloat[(r11+127)] = f2;
	f0 = f0*f1;
	f2 = heapFloat[(r11+128)];
	f0 = f2+f0;
	heapFloat[(r11+128)] = f0;
	f0 = heapFloat[(r11+134)];
	f0 = f0*f1;
	f2 = heapFloat[(r11+136)];
	f3 = heapFloat[(r11+135)];
	f4 = heapFloat[(r11+130)];
	f0 = f0*f8;
	f0 = f4-f0;
	f3 = f3*f1;
	heapFloat[(r11+130)] = f0;
	f0 = f3*f9;
	f3 = heapFloat[(r11+131)];
	f0 = f3-f0;
	f1 = f2*f1;
	heapFloat[(r11+131)] = f0;
	f0 = f1*f10;
	f1 = heapFloat[(r11+132)];
	f0 = f1-f0;
	heapFloat[(r11+132)] = f0;
}
}
}
	r10 = heap32[(r6+15)];
	r11 = r10 & 16;
if(!(r11 ==0)) //_LBB612_222
{
	r11 = heap32[(r17+25)];
	r17 = heap32[(r2+14)];
	r10 = r10 & 4;
	if(r10 ==0) //_LBB612_219
{
	r10 = (r11 * 136)|0;
	r10 = (r17 + r10)|0;
	r10 = r10 >> 2;
	heap32[(r10+55)] = 0;
}
else{
	r11 = (r11 * 136)|0;
	r11 = (r17 + r11)|0;
	f0 = heapFloat[(r9+32)];
	f1 = heapFloat[(r6+14)];
	f0 = f0*f1;
	r11 = r11 >> 2;
	heapFloat[(r11+55)] = f0;
if(!(r13 ==0)) //_LBB612_216
{
	r17 = r13 >> 2;
	f1 = heapFloat[(r17+84)];
	f2 =                         0;
if(!(f1 ==f2)) //_LBB612_216
{
	f2 = heapFloat[(r11+38)];
	f2 = f2*f1;
	f3 = heapFloat[(r11+39)];
	f4 = heapFloat[(r11+40)];
	f5 = heapFloat[(r17+126)];
	f2 = f2*f0;
	f2 = f5+f2;
	f3 = f3*f1;
	heapFloat[(r17+126)] = f2;
	f2 = f3*f0;
	f3 = heapFloat[(r17+127)];
	f2 = f3+f2;
	f1 = f4*f1;
	heapFloat[(r17+127)] = f2;
	f1 = f1*f0;
	f2 = heapFloat[(r17+128)];
	f1 = f2+f1;
	heapFloat[(r17+128)] = f1;
	f1 = heapFloat[(r17+134)];
	f1 = f1*f0;
	f2 = heapFloat[(r11+46)];
	f3 = heapFloat[(r17+136)];
	f4 = heapFloat[(r17+135)];
	f1 = f2*f1;
	f2 = heapFloat[(r17+130)];
	f5 = heapFloat[(r11+48)];
	f6 = heapFloat[(r11+47)];
	f1 = f2+f1;
	f2 = f4*f0;
	heapFloat[(r17+130)] = f1;
	f1 = f6*f2;
	f2 = heapFloat[(r17+131)];
	f1 = f2+f1;
	f0 = f3*f0;
	heapFloat[(r17+131)] = f1;
	f0 = f5*f0;
	f1 = heapFloat[(r17+132)];
	f0 = f1+f0;
	heapFloat[(r17+132)] = f0;
}
}
if(!(r15 ==0)) //_LBB612_222
{
	r17 = r15 >> 2;
	f0 = heapFloat[(r17+84)];
	f1 =                         0;
if(!(f0 ==f1)) //_LBB612_222
{
	f1 = heapFloat[(r11+55)];
	f1 = -f1;
	f2 = heapFloat[(r11+38)];
	f2 = f2*f0;
	f3 = heapFloat[(r11+39)];
	f4 = heapFloat[(r11+40)];
	f2 = f2*f1;
	f5 = heapFloat[(r17+126)];
	f6 = heapFloat[(r11+50)];
	f7 = heapFloat[(r11+51)];
	f8 = heapFloat[(r11+52)];
	f2 = f5+f2;
	f3 = f3*f0;
	heapFloat[(r17+126)] = f2;
	f2 = f3*f1;
	f3 = heapFloat[(r17+127)];
	f2 = f3+f2;
	f0 = f4*f0;
	heapFloat[(r17+127)] = f2;
	f0 = f0*f1;
	f2 = heapFloat[(r17+128)];
	f0 = f2+f0;
	heapFloat[(r17+128)] = f0;
	f0 = heapFloat[(r17+134)];
	f0 = f0*f1;
	f2 = heapFloat[(r17+136)];
	f3 = heapFloat[(r17+135)];
	f4 = heapFloat[(r17+130)];
	f0 = f0*f6;
	f0 = f4-f0;
	f3 = f3*f1;
	heapFloat[(r17+130)] = f0;
	f0 = f3*f7;
	f3 = heapFloat[(r17+131)];
	f0 = f3-f0;
	f1 = f2*f1;
	heapFloat[(r17+131)] = f0;
	f0 = f1*f8;
	f1 = heapFloat[(r17+132)];
	f0 = f1-f0;
	heapFloat[(r17+132)] = f0;
}
}
}
}
}
}
} while(0);
	r7 = (r7 + 1)|0;
	r4 = (r4 + 276)|0;
}
else{
break _150;
}
}
}
	r1 = heap32[(fp+-133)];
	r1 = (r1 + -1)|0;
	heap32[(fp+-133)] = r1;
	r3 = heap32[(fp+-132)];
	r3 = (r3 + 4)|0;
	heap32[(fp+-132)] = r3;
if(!(r1 !=0)) //_LBB612_97
{
break _132;
}
}
}
} while(0);
	r1 = heap32[(r2+17)];
	r3 = heap32[(r2+2)];
	r4 = heap32[(r2+12)];
_307: do {
if(!(r1 >r3)) //_LBB612_244
{
if(!(r1 >=r3)) //_LBB612_244
{
	r5 = heap32[(r2+18)];
if(!(r5 >=r3)) //_LBB612_243
{
	if(r3 !=0) //_LBB612_230
{
	r5 = gNumAlignedAllocs;
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r7 = r3 << 2;
	r6 = (r6 + 1)|0;
	r7 = r7 | 3;
	heap32[(r5)] = r6;
	r5 = (r7 + 16)|0;
	heap32[(g0)] = r5;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB612_232
{
	r6 = 0;
	r7 = (r5 + 4)|0;
	r6 = (r6 - r7)|0;
	r6 = r6 & 15;
	r6 = (r5 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r5;
	r5 = r7;
}
}
else{
	r5 = 0;
}
	r6 = (r0 + 76)|0;
	if(r1 <1) //_LBB612_235
{
	r7 = r6 >> 2;
	r8 = heap32[(r7)];
}
else{
	r7 = 0;
_320: while(true){
	r8 = r6 >> 2;
	r8 = heap32[(r8)];
	r9 = r7 << 2;
	r10 = (r8 + r9)|0;
	r10 = r10 >> 2;
	r9 = (r5 + r9)|0;
	r10 = heap32[(r10)];
	r7 = (r7 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r10;
if(!(r1 !=r7)) //_LBB612_236
{
break _320;
}
}
	r6 = (r0 + 76)|0;
}
if(!(r8 ==0)) //_LBB612_242
{
	r7 = heapU8[r0+80];
if(!(r7 ==0)) //_LBB612_241
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r9 = heap32[(r7)];
	r9 = (r9 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r7)] = r9;
	r7 = heap32[(r8+-1)];
	heap32[(g0)] = r7;
	free(i7);
}
	r7 = r6 >> 2;
	heap32[(r7)] = 0;
}
	r7 = 1;
	r6 = r6 >> 2;
	heap8[r0+80] = r7;
	heap32[(r6)] = r5;
	heap32[(r2+18)] = r3;
	if(r1 >=r3) //_LBB612_244
{
break _307;
}
}
_330: while(true){
	r5 = r1 << 2;
	r6 = heap32[(r2+19)];
	r5 = (r6 + r5)|0;
	r1 = (r1 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r5)] = 0;
if(!(r3 !=r1)) //_LBB612_243
{
break _307;
}
}
}
}
} while(0);
	heap32[(r2+17)] = r3;
	r1 = heap32[(r2+22)];
_333: do {
if(!(r1 >r4)) //_LBB612_263
{
if(!(r1 >=r4)) //_LBB612_263
{
	r5 = heap32[(r2+23)];
if(!(r5 >=r4)) //_LBB612_262
{
	if(r4 !=0) //_LBB612_249
{
	r5 = gNumAlignedAllocs;
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r7 = r4 << 2;
	r6 = (r6 + 1)|0;
	r7 = r7 | 3;
	heap32[(r5)] = r6;
	r5 = (r7 + 16)|0;
	heap32[(g0)] = r5;
	malloc(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB612_251
{
	r6 = 0;
	r7 = (r5 + 4)|0;
	r6 = (r6 - r7)|0;
	r6 = r6 & 15;
	r6 = (r5 + r6)|0;
	r7 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r5;
	r5 = r7;
}
}
else{
	r5 = 0;
}
	r6 = (r0 + 96)|0;
	if(r1 <1) //_LBB612_254
{
	r7 = r6 >> 2;
	r8 = heap32[(r7)];
}
else{
	r7 = 0;
_346: while(true){
	r8 = r6 >> 2;
	r8 = heap32[(r8)];
	r9 = r7 << 2;
	r10 = (r8 + r9)|0;
	r10 = r10 >> 2;
	r9 = (r5 + r9)|0;
	r10 = heap32[(r10)];
	r7 = (r7 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r10;
if(!(r1 !=r7)) //_LBB612_255
{
break _346;
}
}
	r6 = (r0 + 96)|0;
}
if(!(r8 ==0)) //_LBB612_261
{
	r7 = heapU8[r0+100];
if(!(r7 ==0)) //_LBB612_260
{
	r7 = gNumAlignedFree;
	r7 = r7 >> 2;
	r9 = heap32[(r7)];
	r9 = (r9 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r7)] = r9;
	r7 = heap32[(r8+-1)];
	heap32[(g0)] = r7;
	free(i7);
}
	r7 = r6 >> 2;
	heap32[(r7)] = 0;
}
	r7 = 1;
	r6 = r6 >> 2;
	heap8[r0+100] = r7;
	heap32[(r6)] = r5;
	heap32[(r2+23)] = r4;
	if(r1 >=r4) //_LBB612_263
{
break _333;
}
}
_356: while(true){
	r0 = r1 << 2;
	r5 = heap32[(r2+24)];
	r0 = (r5 + r0)|0;
	r1 = (r1 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
if(!(r4 !=r1)) //_LBB612_262
{
break _333;
}
}
}
}
} while(0);
	heap32[(r2+22)] = r4;
_359: do {
if(!(r3 <1)) //_LBB612_266
{
	r0 = 0;
_361: while(true){
	r1 = r0 << 2;
	r5 = heap32[(r2+19)];
	r1 = (r5 + r1)|0;
	r5 = (r0 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = r0;
	r0 = r5;
if(!(r3 !=r5)) //_LBB612_265
{
break _359;
}
}
}
} while(0);
	if(r4 <1) //_LBB612_269
{
break _1;
}
else{
	r0 = 0;
_365: while(true){
	r1 = r0 << 2;
	r3 = heap32[(r2+24)];
	r1 = (r3 + r1)|0;
	r3 = (r0 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = r0;
	r0 = r3;
if(!(r4 !=r3)) //_LBB612_268
{
break _1;
}
}
}
break;
case 78:
	r8 = _2E_str1157;
	r0 = _2E_str652;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 813;
	_assert(i7);
break;
}
}
} while(0);
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_369: do {
if(!(r3 !=0)) //_LBB612_275
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB612_272
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB612_275
{
break _369;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	f0 =                         0;
	f_g0 = f0;
	return;
}

function _ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = _2E_str854;
	r1 = heap32[(fp+7)];
	heap32[(g0)] = r0;
	r0 = heap32[(fp)];
	r2 = heap32[(fp+5)];
	r3 = heap32[(fp+6)];
	r4 = r1 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r5 = heap32[(r4+5)];
if(!(r5 <1)) //_LBB613_64
{
	r5 = 0;
_3: while(true){
	r6 = r0 >> 2;
	r7 = heap32[(r4+15)];
	r8 = r7 & 1;
	if(r8 != 0) //_LBB613_4
{
	r8 = r5 & 7;
if(!(r8 !=0)) //_LBB613_3
{
	r7 = heap32[(r6+2)];
	r8 = heap32[(r6+12)];
if(!(r7 <1)) //_LBB613_19
{
	r9 = 0;
	r7 = (r9 - r7)|0;
	r9 = 1;
_10: while(true){
	r10 = heap32[(r6+19)];
	r11 = r9 << 2;
	r11 = (r10 + r11)|0;
	r11 = r11 >> 2;
	r12 = heap32[(r6+31)];
	r13 = heap32[(r11+-1)];
	r12 = (r12 * 1664525)|0;
	r12 = (r12 + 1013904223)|0;
	heap32[(r6+31)] = r12;
	if(uint(r9) <uint(65537)) //_LBB613_9
{
	r14 = r12 >>> 16;
	r12 = r14 ^ r12;
	if(uint(r9) <uint(257)) //_LBB613_11
{
	r14 = r12 >>> 8;
	r12 = r14 ^ r12;
	if(uint(r9) <uint(17)) //_LBB613_13
{
	r14 = r12 >>> 4;
	r12 = r14 ^ r12;
	if(uint(r9) <uint(5)) //_LBB613_15
{
	r14 = r12 >>> 2;
	r12 = r14 ^ r12;
	if(uint(r9) <uint(3)) //_LBB613_17
{
	r14 = r12 >>> 1;
	r12 = r14 ^ r12;
}
}
}
}
}
	r12 = Math.floor(uint(r12) % uint(r9));
	r12 = r12 << 2;
	r10 = (r10 + r12)|0;
	r10 = r10 >> 2;
	r10 = heap32[(r10)];
	heap32[(r11+-1)] = r10;
	r10 = heap32[(r6+19)];
	r10 = (r10 + r12)|0;
	r9 = (r9 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r13;
	r10 = (r7 + r9)|0;
if(!(r10 !=1)) //_LBB613_7
{
break _10;
}
}
}
_20: do {
if(!(r8 <1)) //_LBB613_33
{
	r7 = 0;
	r7 = (r7 - r8)|0;
	r8 = 1;
_22: while(true){
	r9 = heap32[(r6+24)];
	r10 = r8 << 2;
	r10 = (r9 + r10)|0;
	r10 = r10 >> 2;
	r11 = heap32[(r6+31)];
	r12 = heap32[(r10+-1)];
	r11 = (r11 * 1664525)|0;
	r11 = (r11 + 1013904223)|0;
	heap32[(r6+31)] = r11;
	if(uint(r8) <uint(65537)) //_LBB613_23
{
	r13 = r11 >>> 16;
	r11 = r13 ^ r11;
	if(uint(r8) <uint(257)) //_LBB613_25
{
	r13 = r11 >>> 8;
	r11 = r13 ^ r11;
	if(uint(r8) <uint(17)) //_LBB613_27
{
	r13 = r11 >>> 4;
	r11 = r13 ^ r11;
	if(uint(r8) <uint(5)) //_LBB613_29
{
	r13 = r11 >>> 2;
	r11 = r13 ^ r11;
	if(uint(r8) <uint(3)) //_LBB613_31
{
	r13 = r11 >>> 1;
	r11 = r13 ^ r11;
}
}
}
}
}
	r11 = Math.floor(uint(r11) % uint(r8));
	r11 = r11 << 2;
	r9 = (r9 + r11)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	heap32[(r10+-1)] = r9;
	r9 = heap32[(r6+24)];
	r9 = (r9 + r11)|0;
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r12;
	r9 = (r7 + r8)|0;
if(!(r9 !=1)) //_LBB613_21
{
break _20;
}
}
}
} while(0);
	r7 = heap32[(r4+15)];
}
}
	r8 = heap32[(r6+7)];
	r7 = r7 & 256;
_33: do {
	if(r7 !=0) //_LBB613_37
{
_35: do {
if(!(r8 <1)) //_LBB613_40
{
	r7 = 0;
	r8 = r7;
_37: while(true){
	r9 = (r8 * 34)|0;
	r10 = heap32[(r6+9)];
	r9 = r9 << 2;
	r9 = (r10 + r9)|0;
	r9 = r9 >> 2;
	r11 = heap32[(r9+27)];
	r9 = heap32[(r9+26)];
	r10 = (r10 + r7)|0;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r10;
	r8 = (r8 + 1)|0;
	r7 = (r7 + 136)|0;
	_ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7);
	r9 = heap32[(r6+7)];
if(!(r9 >r8)) //_LBB613_39
{
break _35;
}
}
}
} while(0);
_40: do {
if(!(r3 <1)) //_LBB613_43
{
	r7 = r2;
	r8 = r3;
_42: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = r9 >> 2;
	r11 = heap32[(r10)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+6)];
	f0 = heapFloat[(r4+3)];
	r12 = heap32[(r10+6)];
	r10 = heap32[(r10+5)];
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r12;
	heapFloat[(g0+3)] = f0;
	r8 = (r8 + -1)|0;
	r7 = (r7 + 4)|0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
if(!(r8 !=0)) //_LBB613_42
{
break _40;
}
}
}
} while(0);
	r7 = heap32[(r6+2)];
_45: do {
if(!(r7 <1)) //_LBB613_46
{
	r8 = 0;
_47: while(true){
	r9 = heap32[(r6+19)];
	r10 = r8 << 2;
	r9 = (r9 + r10)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	r9 = (r9 * 136)|0;
	r10 = heap32[(r6+4)];
	r9 = (r10 + r9)|0;
	r10 = r9 >> 2;
	r11 = heap32[(r10+27)];
	r10 = heap32[(r10+26)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r9;
	r8 = (r8 + 1)|0;
	_ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(i7);
if(!(r7 !=r8)) //_LBB613_45
{
break _45;
}
}
}
} while(0);
	r7 = heap32[(r6+12)];
	if(r7 <1) //_LBB613_63
{
break _33;
}
else{
	r8 = 0;
_51: while(true){
	r9 = heap32[(r6+24)];
	r10 = r8 << 2;
	r9 = (r9 + r10)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	r10 = heap32[(r6+14)];
	r9 = (r9 * 136)|0;
	r9 = (r10 + r9)|0;
	r10 = r9 >> 2;
	r11 = heap32[(r10+25)];
	r12 = heap32[(r6+4)];
	r11 = (r11 * 136)|0;
	r11 = (r12 + r11)|0;
	r11 = r11 >> 2;
	f0 = heapFloat[(r11+21)];
	f1 =                         0;
if(!(f0 <=f1)) //_LBB613_50
{
	f1 = heapFloat[(r10+22)];
	f0 = f1*f0;
	f1 = -f0;
	heapFloat[(r10+31)] = f1;
	heapFloat[(r10+32)] = f0;
	r11 = heap32[(r10+27)];
	r10 = heap32[(r10+26)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r9;
	_ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7);
}
	r8 = (r8 + 1)|0;
	if(r7 ==r8) //_LBB613_63
{
break _33;
}
else{
continue _51;
}
}
}
}
else{
_57: do {
if(!(r8 <1)) //_LBB613_52
{
	r8 = 0;
	r7 = r8;
_59: while(true){
	r9 = (r7 * 34)|0;
	r10 = heap32[(r6+9)];
	r9 = r9 << 2;
	r9 = (r10 + r9)|0;
	r9 = r9 >> 2;
	r11 = heap32[(r9+27)];
	r9 = heap32[(r9+26)];
	r10 = (r10 + r8)|0;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r10;
	r7 = (r7 + 1)|0;
	r8 = (r8 + 136)|0;
	_ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7);
	r9 = heap32[(r6+7)];
if(!(r9 >r7)) //_LBB613_51
{
break _57;
}
}
}
} while(0);
_62: do {
if(!(r3 <1)) //_LBB613_55
{
	r7 = r2;
	r8 = r3;
_64: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = r9 >> 2;
	r11 = heap32[(r10)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+6)];
	f0 = heapFloat[(r4+3)];
	r12 = heap32[(r10+6)];
	r10 = heap32[(r10+5)];
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r12;
	heapFloat[(g0+3)] = f0;
	r8 = (r8 + -1)|0;
	r7 = (r7 + 4)|0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
if(!(r8 !=0)) //_LBB613_54
{
break _62;
}
}
}
} while(0);
	r7 = heap32[(r6+2)];
_67: do {
if(!(r7 <1)) //_LBB613_58
{
	r8 = 0;
_69: while(true){
	r9 = heap32[(r6+19)];
	r10 = r8 << 2;
	r9 = (r9 + r10)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	r9 = (r9 * 136)|0;
	r10 = heap32[(r6+4)];
	r9 = (r10 + r9)|0;
	r10 = r9 >> 2;
	r11 = heap32[(r10+27)];
	r10 = heap32[(r10+26)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r9;
	r8 = (r8 + 1)|0;
	_ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(i7);
if(!(r7 !=r8)) //_LBB613_57
{
break _67;
}
}
}
} while(0);
	r7 = heap32[(r6+12)];
if(!(r7 <1)) //_LBB613_63
{
	r8 = 0;
_73: while(true){
	r9 = heap32[(r6+24)];
	r10 = r8 << 2;
	r9 = (r9 + r10)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	r10 = heap32[(r6+14)];
	r9 = (r9 * 136)|0;
	r9 = (r10 + r9)|0;
	r10 = r9 >> 2;
	r11 = heap32[(r10+25)];
	r12 = heap32[(r6+4)];
	r11 = (r11 * 136)|0;
	r11 = (r12 + r11)|0;
	r11 = r11 >> 2;
	f0 = heapFloat[(r11+21)];
	f1 =                         0;
if(!(f0 <=f1)) //_LBB613_62
{
	f1 = heapFloat[(r10+22)];
	f0 = f1*f0;
	f1 = -f0;
	heapFloat[(r10+31)] = f1;
	heapFloat[(r10+32)] = f0;
	r11 = heap32[(r10+27)];
	r10 = heap32[(r10+26)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r11;
	heap32[(g0+2)] = r9;
	_ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7);
}
	r8 = (r8 + 1)|0;
if(!(r7 !=r8)) //_LBB613_60
{
break _33;
}
}
}
}
} while(0);
	r5 = (r5 + 1)|0;
	r6 = heap32[(r4+5)];
	if(r6 >r5) //_LBB613_2
{
continue _3;
}
else{
break _3;
}
}
}
	r4 = heap32[(fp+1)];
	r5 = heap32[(fp+2)];
	r6 = heap32[(fp+3)];
	r7 = heap32[(fp+4)];
	r8 = heap32[(fp+8)];
	r9 = heap32[(fp+9)];
	r10 = r0 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r6;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r2;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r1;
	heap32[(g0+8)] = r8;
	heap32[(g0+9)] = r9;
	r0 = _ZN15CProfileManager11CurrentNodeE;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_80: do {
if(!(r3 !=0)) //_LBB613_70
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB613_67
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB613_70
{
break _80;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	f0 =                         0;
	f_g0 = f0;
	return;
}

function _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
var __label__ = 0;
	i7 = sp + -288;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+13)];
	r3 = heap32[(r1+12)];
	r4 = heap32[(fp+1)];
	r5 = heap32[(fp+2)];
	r6 = heap32[(fp+3)];
	r7 = heap32[(fp+4)];
	r8 = heap32[(fp+5)];
	r9 = heap32[(fp+6)];
	r10 = heap32[(fp+7)];
	f0 = heapFloat[(fp+8)];
	f1 = heapFloat[(fp+9)];
	f2 = heapFloat[(fp+10)];
	if(r2 ==r3) //_LBB614_2
{
	r11 = 1;
	r12 = r3 << 1;
	r12 = r3 == 0 ? r11 : r12;
	if(r2 >=r12) //_LBB614_1
{
__label__ = 1;
}
else{
	if(r12 !=0) //_LBB614_5
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r13 = heap32[(r2)];
	r14 = (r12 * 136)|0;
	r13 = (r13 + 1)|0;
	r14 = r14 | 3;
	heap32[(r2)] = r13;
	r2 = (r14 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r13 = r_g0;
	if(r13 !=0) //_LBB614_7
{
	r2 = 0;
	r14 = (r13 + 4)|0;
	r2 = (r2 - r14)|0;
	r2 = r2 & 15;
	r2 = (r13 + r2)|0;
	r14 = (r2 + 4)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = r13;
	r13 = r14;
}
}
else{
	r13 = 0;
}
	r14 = (r0 + 56)|0;
	if(r3 <1) //_LBB614_10
{
	r2 = r14 >> 2;
	r16 = heap32[(r2)];
}
else{
	r2 = 0;
	r15 = r3;
_12: while(true){
	r16 = r14 >> 2;
	r16 = heap32[(r16)];
	r17 = (r13 + r2)|0;
	r18 = (r16 + r2)|0;
	heap32[(g0)] = r17;
	heap32[(g0+1)] = r18;
	heap32[(g0+2)] = 136;
	r15 = (r15 + -1)|0;
	r2 = (r2 + 136)|0;
	memcpy(i7);
if(!(r15 !=0)) //_LBB614_11
{
break _12;
}
}
	r14 = (r0 + 56)|0;
}
	if(r16 !=0) //_LBB614_15
{
	r2 = heapU8[r0+60];
	if(r2 !=0) //_LBB614_17
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r15 = heap32[(r2)];
	r15 = (r15 + 1)|0;
	r16 = r16 >> 2;
	heap32[(r2)] = r15;
	r2 = heap32[(r16+-1)];
	heap32[(g0)] = r2;
	free(i7);
	r2 = heap32[(r1+12)];
}
else{
	r2 = r3;
}
	r15 = r14 >> 2;
	heap32[(r15)] = 0;
}
else{
	r2 = r3;
}
	r14 = r14 >> 2;
	heap8[r0+60] = r11;
	heap32[(r14)] = r13;
	heap32[(r1+13)] = r12;
__label__ = 19;
}
}
else{
__label__ = 1;
}
if (__label__ == 1){
	r2 = r3;
}
	r0 = (r2 + 1)|0;
	heap32[(r1+12)] = r0;
	r0 = heap32[(r1+14)];
	r1 = (r3 * 136)|0;
	r0 = (r0 + r1)|0;
	r0 = r0 >> 2;
	heap32[(r0+25)] = r5;
	r1 = heapU8[r9+232];
	r1 = r1 & 2;
if(!(r1 !=0)) //_LBB614_22
{
	r9 = 0;
}
	r1 = heapU8[r10+232];
	r1 = r1 & 2;
if(!(r1 !=0)) //_LBB614_24
{
	r10 = 0;
}
	r1 = r4 >> 2;
	heap32[(r0+4)] = heap32[(r1)];
	heap32[(r0+5)] = heap32[(r1+1)];
	heap32[(r0+6)] = heap32[(r1+2)];
	heap32[(r0+7)] = heap32[(r1+3)];
	if(r9 ==0) //_LBB614_26
{
	r2 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r3 = heapU8[r2];
if(!(r3 !=0)) //_LBB614_28
{
	r3 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r4 = r3 >> 2;
	heap32[(r4+41)] = 1065353216;
	heap32[(r4+42)] = 1065353216;
	heap32[(r4+43)] = 1065353216;
	heap32[(r4+44)] = 0;
	heap32[(r4+45)] = 0;
	heap32[(r4+46)] = 1566444395;
	heap32[(r4+47)] = 0;
	heap32[(r4+48)] = 0;
	heap32[(r4+49)] = 0;
	heap32[(r4+50)] = 0;
	heap32[(r4+51)] = 1;
	heap32[(r4+52)] = -1;
	heap32[(r4+53)] = -1;
	heap32[(r4+54)] = 1;
	heap32[(r4+55)] = 0;
	heap32[(r4+56)] = 1056964608;
	heap32[(r4+57)] = 0;
	heap32[(r4+58)] = 1;
	heap32[(r4+59)] = 0;
	heap32[(r4+60)] = 1065353216;
	heap32[(r4+61)] = 0;
	heap32[(r4+62)] = 0;
	heap32[(r4+63)] = 0;
	heap32[(r4+1)] = 1065353216;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	heap32[(r4+4)] = 0;
	heap32[(r4+5)] = 0;
	heap32[(r4+6)] = 1065353216;
	heap32[(r4+7)] = 0;
	heap32[(r4+8)] = 0;
	heap32[(r4+9)] = 0;
	heap32[(r4+10)] = 0;
	heap32[(r4+11)] = 1065353216;
	heap32[(r4+12)] = 0;
	heap32[(r4+13)] = 0;
	heap32[(r4+14)] = 0;
	r5 = _ZTV11btRigidBody;
	heap32[(r4+15)] = 0;
	r5 = (r5 + 8)|0;
	heap32[(r4+16)] = 0;
	r11 = 1;
	heap32[(r4)] = r5;
	heap8[r3+492] = r11;
	heap32[(r4+122)] = 0;
	heap32[(r4+120)] = 0;
	r5 = sp + -272;
	heap32[(r4+121)] = 0;
	r4 = r5 >> 2;
	heap32[(fp+-68)] = 0;
	heap32[(r4+1)] = 0;
	heap32[(r4+18)] = 0;
	heap32[(r4+19)] = 0;
	heap32[(r4+20)] = 0;
	heap32[(r4+21)] = 0;
	heap32[(r4+22)] = 0;
	heap32[(r4+23)] = 0;
	heap32[(r4+24)] = 0;
	heap32[(r4+25)] = 1056964608;
	heap32[(r4+26)] = 0;
	heap32[(r4+27)] = 1061997773;
	r12 = 0;
	heap32[(r4+28)] = 1065353216;
	heap8[sp+-156] = r12;
	heap32[(r4+30)] = 1000593162;
	heap32[(r4+31)] = 1008981770;
	heap32[(r4+32)] = 1008981770;
	heap32[(r4+33)] = 1008981770;
	heap32[(r4+2)] = 1065353216;
	heap32[(r4+3)] = 0;
	heap32[(r4+4)] = 0;
	heap32[(r4+5)] = 0;
	heap32[(r4+6)] = 0;
	heap32[(r4+7)] = 1065353216;
	heap32[(r4+8)] = 0;
	heap32[(r4+9)] = 0;
	heap32[(r4+10)] = 0;
	heap32[(r4+11)] = 0;
	heap32[(r4+12)] = 1065353216;
	heap32[(r4+13)] = 0;
	heap32[(r4+14)] = 0;
	heap32[(r4+15)] = 0;
	heap32[(r4+16)] = 0;
	heap32[(r4+17)] = 0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
	heap8[r2] = r11;
}
	r2 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r3 = r2 >> 2;
	r4 = heap32[(r3+51)];
	r4 = r4 | 1;
	heap32[(r3+51)] = r4;
	heap32[(r3+84)] = 0;
	f3 =                         0;
	f4 = heapFloat[(r3+95)];
	f5 = heapFloat[(r3+94)];
	f6 = heapFloat[(r3+93)];
	f6 = f6*f3;
	f5 = f5*f3;
	heapFloat[(r3+89)] = f6;
	f4 = f4*f3;
	heapFloat[(r3+90)] = f5;
	heapFloat[(r3+91)] = f4;
	heap32[(r3+92)] = 0;
	heap32[(r3+97)] = 0;
	heap32[(r3+98)] = 0;
	heap32[(r3+99)] = 0;
	heap32[(r3+100)] = 0;
	f4 = heapFloat[(r3+87)];
	f5 = heapFloat[(r3+86)];
	f6 = heapFloat[(r3+85)];
	f6 = f6*f3;
	f5 = f5*f3;
	heapFloat[(r3+138)] = f6;
	f3 = f4*f3;
	heapFloat[(r3+139)] = f5;
	heapFloat[(r3+140)] = f3;
	heap32[(r3+141)] = 0;
}
else{
	r2 = r9;
}
	heap32[(r0+26)] = r2;
	if(r10 ==0) //_LBB614_31
{
	r2 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r3 = heapU8[r2];
if(!(r3 !=0)) //_LBB614_33
{
	r3 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r4 = r3 >> 2;
	heap32[(r4+41)] = 1065353216;
	heap32[(r4+42)] = 1065353216;
	heap32[(r4+43)] = 1065353216;
	heap32[(r4+44)] = 0;
	heap32[(r4+45)] = 0;
	heap32[(r4+46)] = 1566444395;
	heap32[(r4+47)] = 0;
	heap32[(r4+48)] = 0;
	heap32[(r4+49)] = 0;
	heap32[(r4+50)] = 0;
	heap32[(r4+51)] = 1;
	heap32[(r4+52)] = -1;
	heap32[(r4+53)] = -1;
	heap32[(r4+54)] = 1;
	heap32[(r4+55)] = 0;
	heap32[(r4+56)] = 1056964608;
	heap32[(r4+57)] = 0;
	heap32[(r4+58)] = 1;
	heap32[(r4+59)] = 0;
	heap32[(r4+60)] = 1065353216;
	heap32[(r4+61)] = 0;
	heap32[(r4+62)] = 0;
	heap32[(r4+63)] = 0;
	heap32[(r4+1)] = 1065353216;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	heap32[(r4+4)] = 0;
	heap32[(r4+5)] = 0;
	heap32[(r4+6)] = 1065353216;
	heap32[(r4+7)] = 0;
	heap32[(r4+8)] = 0;
	heap32[(r4+9)] = 0;
	heap32[(r4+10)] = 0;
	heap32[(r4+11)] = 1065353216;
	heap32[(r4+12)] = 0;
	heap32[(r4+13)] = 0;
	heap32[(r4+14)] = 0;
	r5 = _ZTV11btRigidBody;
	heap32[(r4+15)] = 0;
	r5 = (r5 + 8)|0;
	heap32[(r4+16)] = 0;
	r11 = 1;
	heap32[(r4)] = r5;
	heap8[r3+492] = r11;
	heap32[(r4+122)] = 0;
	heap32[(r4+120)] = 0;
	r5 = sp + -136;
	heap32[(r4+121)] = 0;
	r4 = r5 >> 2;
	heap32[(fp+-34)] = 0;
	heap32[(r4+1)] = 0;
	heap32[(r4+18)] = 0;
	heap32[(r4+19)] = 0;
	heap32[(r4+20)] = 0;
	heap32[(r4+21)] = 0;
	heap32[(r4+22)] = 0;
	heap32[(r4+23)] = 0;
	heap32[(r4+24)] = 0;
	heap32[(r4+25)] = 1056964608;
	heap32[(r4+26)] = 0;
	heap32[(r4+27)] = 1061997773;
	r12 = 0;
	heap32[(r4+28)] = 1065353216;
	heap8[sp+-20] = r12;
	heap32[(r4+30)] = 1000593162;
	heap32[(r4+31)] = 1008981770;
	heap32[(r4+32)] = 1008981770;
	heap32[(r4+33)] = 1008981770;
	heap32[(r4+2)] = 1065353216;
	heap32[(r4+3)] = 0;
	heap32[(r4+4)] = 0;
	heap32[(r4+5)] = 0;
	heap32[(r4+6)] = 0;
	heap32[(r4+7)] = 1065353216;
	heap32[(r4+8)] = 0;
	heap32[(r4+9)] = 0;
	heap32[(r4+10)] = 0;
	heap32[(r4+11)] = 0;
	heap32[(r4+12)] = 1065353216;
	heap32[(r4+13)] = 0;
	heap32[(r4+14)] = 0;
	heap32[(r4+15)] = 0;
	heap32[(r4+16)] = 0;
	heap32[(r4+17)] = 0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
	heap8[r2] = r11;
}
	r2 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
	r3 = r2 >> 2;
	r4 = heap32[(r3+51)];
	r4 = r4 | 1;
	heap32[(r3+51)] = r4;
	heap32[(r3+84)] = 0;
	f3 =                         0;
	f4 = heapFloat[(r3+95)];
	f5 = heapFloat[(r3+94)];
	f6 = heapFloat[(r3+93)];
	f6 = f6*f3;
	f5 = f5*f3;
	heapFloat[(r3+89)] = f6;
	f4 = f4*f3;
	heapFloat[(r3+90)] = f5;
	heapFloat[(r3+91)] = f4;
	heap32[(r3+92)] = 0;
	heap32[(r3+97)] = 0;
	heap32[(r3+98)] = 0;
	heap32[(r3+99)] = 0;
	heap32[(r3+100)] = 0;
	f4 = heapFloat[(r3+87)];
	f5 = heapFloat[(r3+86)];
	f6 = heapFloat[(r3+85)];
	f6 = f6*f3;
	f5 = f5*f3;
	heapFloat[(r3+138)] = f6;
	f3 = f4*f3;
	heapFloat[(r3+139)] = f5;
	heapFloat[(r3+140)] = f3;
	heap32[(r3+141)] = 0;
}
else{
	r2 = r10;
}
	r3 = r6 >> 2;
	heap32[(r0+27)] = r2;
	heap32[(r0+22)] = heap32[(r3+21)];
	heap32[(r0+28)] = 0;
	heap32[(r0+21)] = 0;
	heap32[(r0+20)] = 0;
	r2 = r7 >> 2;
	f3 = heapFloat[(r0+5)];
	f4 = heapFloat[(r2+2)];
	f5 = heapFloat[(r0+6)];
	f6 = heapFloat[(r2+1)];
	f7 = heapFloat[(r0+4)];
	f8 = heapFloat[(r2)];
	f9 = f6*f5;
	f10 = f4*f3;
	f9 = f9-f10;
	f4 = f4*f7;
	f10 = f8*f5;
	f4 = f4-f10;
	heapFloat[(r0)] = f9;
	f8 = f8*f3;
	f6 = f6*f7;
	f6 = f8-f6;
	heapFloat[(r0+1)] = f4;
	heapFloat[(r0+2)] = f6;
	heap32[(r0+3)] = 0;
	if(r9 ==0) //_LBB614_36
{
	heap32[(r0+12)] = 0;
	heap32[(r0+13)] = 0;
	f10 =                         0;
	heap32[(r0+14)] = 0;
	heap32[(r0+15)] = 0;
	f11 = f10;
	f8 = f10;
}
else{
	r3 = r9 >> 2;
	f8 = heapFloat[(r3+64)];
	f10 = heapFloat[(r3+65)];
	f11 = heapFloat[(r3+68)];
	f12 = heapFloat[(r3+69)];
	f8 = f8*f9;
	f10 = f10*f4;
	f13 = heapFloat[(r3+66)];
	f14 = heapFloat[(r3+72)];
	f15 = heapFloat[(r3+73)];
	f16 = heapFloat[(r3+70)];
	f11 = f11*f9;
	f12 = f12*f4;
	f8 = f8+f10;
	f10 = f13*f6;
	f13 = heapFloat[(r3+74)];
	f14 = f14*f9;
	f15 = f15*f4;
	f11 = f11+f12;
	f12 = f16*f6;
	f8 = f8+f10;
	f10 = heapFloat[(r3+134)];
	f16 = heapFloat[(r3+136)];
	f17 = heapFloat[(r3+135)];
	f11 = f11+f12;
	f8 = f8*f10;
	f10 = f14+f15;
	f12 = f13*f6;
	f10 = f10+f12;
	f11 = f11*f17;
	heapFloat[(r0+12)] = f8;
	f10 = f10*f16;
	heapFloat[(r0+13)] = f11;
	heapFloat[(r0+14)] = f10;
	heap32[(r0+15)] = 0;
}
	r3 = r8 >> 2;
	f12 = heapFloat[(r3+2)];
	f13 = heapFloat[(r3+1)];
	f14 = heapFloat[(r3)];
	f15 = f12*f3;
	f16 = f13*f5;
	f15 = f15-f16;
	f16 = f14*f5;
	f12 = f12*f7;
	f12 = f16-f12;
	heapFloat[(r0+8)] = f15;
	f13 = f13*f7;
	f14 = f14*f3;
	f13 = f13-f14;
	heapFloat[(r0+9)] = f12;
	heapFloat[(r0+10)] = f13;
	heap32[(r0+11)] = 0;
	if(r10 ==0) //_LBB614_39
{
	heap32[(r0+16)] = 0;
	heap32[(r0+17)] = 0;
	f14 =                         0;
	heap32[(r0+18)] = 0;
	heap32[(r0+19)] = 0;
	f17 = f14;
	f16 = f14;
}
else{
	r4 = r10 >> 2;
	f14 = heapFloat[(r4+64)];
	f16 = heapFloat[(r4+65)];
	f17 = heapFloat[(r4+68)];
	f18 = heapFloat[(r4+69)];
	f14 = f14*f15;
	f16 = f16*f12;
	f19 = heapFloat[(r4+66)];
	f20 = heapFloat[(r4+72)];
	f21 = heapFloat[(r4+73)];
	f22 = heapFloat[(r4+70)];
	f17 = f17*f15;
	f18 = f18*f12;
	f14 = f14+f16;
	f16 = f19*f13;
	f19 = heapFloat[(r4+74)];
	f20 = f20*f15;
	f21 = f21*f12;
	f17 = f17+f18;
	f18 = f22*f13;
	f14 = f14+f16;
	f16 = heapFloat[(r4+134)];
	f22 = heapFloat[(r4+136)];
	f23 = heapFloat[(r4+135)];
	f17 = f17+f18;
	f14 = f14*f16;
	f16 = f20+f21;
	f18 = f19*f13;
	f16 = f16+f18;
	f17 = f17*f23;
	heapFloat[(r0+16)] = f14;
	f16 = f16*f22;
	heapFloat[(r0+17)] = f17;
	heapFloat[(r0+18)] = f16;
	heap32[(r0+19)] = 0;
}
	if(r9 !=0) //_LBB614_42
{
	f18 = heapFloat[(r2+1)];
	f19 = heapFloat[(r2+2)];
	f20 = heapFloat[(r2)];
	f21 = f11*f19;
	f22 = f10*f18;
	f10 = f10*f20;
	f19 = f8*f19;
	f23 = heapFloat[(r1)];
	f21 = f21-f22;
	f22 = heapFloat[(r1+1)];
	f10 = f10-f19;
	f8 = f8*f18;
	f11 = f11*f20;
	f18 = f23*f21;
	f10 = f22*f10;
	f19 = heapFloat[(r1+2)];
	f8 = f8-f11;
	r2 = r9 >> 2;
	f10 = f18+f10;
	f8 = f19*f8;
	f11 = heapFloat[(r2+84)];
	f8 = f10+f8;
	f8 = f11+f8;
}
else{
	f8 =                         0;
}
	if(r10 !=0) //_LBB614_45
{
	f10 = heapFloat[(r3+2)];
	f11 = heapFloat[(r3)];
	f18 = heapFloat[(r3+1)];
	f19 = f18*f16;
	f20 = f10*f17;
	f10 = f10*f14;
	f16 = f11*f16;
	f21 = heapFloat[(r1)];
	f19 = f19-f20;
	f20 = heapFloat[(r1+1)];
	f10 = f10-f16;
	f11 = f11*f17;
	f14 = f18*f14;
	f16 = f21*f19;
	f10 = f20*f10;
	f17 = heapFloat[(r1+2)];
	f14 = f11-f14;
	r1 = r10 >> 2;
	f10 = f16+f10;
	f14 = f17*f14;
	f11 = heapFloat[(r1+84)];
	f14 = f10+f14;
	f14 = f11+f14;
}
else{
	f14 =                         0;
}
	f8 = f8+f14;
	f0 = f0/f8;
	heapFloat[(r0+23)] = f0;
	if(r9 !=0) //_LBB614_48
{
	r1 = r9 >> 2;
	f8 = heapFloat[(r1+76)];
	f10 = heapFloat[(r1+77)];
	f8 = f7*f8;
	f10 = f3*f10;
	f11 = heapFloat[(r1+78)];
	f8 = f8+f10;
	f10 = f5*f11;
	f10 = f8+f10;
	f14 = heapFloat[(r1+80)];
	f11 = heapFloat[(r1+81)];
	f8 = heapFloat[(r1+82)];
}
else{
	f8 =                         0;
	f10 = f7*f8;
	f11 = f3*f8;
	f10 = f10+f11;
	f11 = f5*f8;
	f10 = f10+f11;
	f11 = f8;
	f14 = f8;
}
	f9 = f9*f14;
	f4 = f4*f11;
	f4 = f9+f4;
	f6 = f6*f8;
	f4 = f4+f6;
	f4 = f10+f4;
	if(r10 !=0) //_LBB614_51
{
	r1 = r10 >> 2;
	f6 = heapFloat[(r1+80)];
	f8 = heapFloat[(r1+81)];
	f6 = f15*f6;
	f12 = f12*f8;
	f15 = heapFloat[(r1+82)];
	f6 = f6+f12;
	f12 = f13*f15;
	f12 = f6+f12;
	f15 = heapFloat[(r1+76)];
	f13 = heapFloat[(r1+77)];
	f6 = heapFloat[(r1+78)];
}
else{
	f6 =                         0;
	f15 = f15*f6;
	f12 = f12*f6;
	f12 = f15+f12;
	f13 = f13*f6;
	f12 = f12+f13;
	f13 = f6;
	f15 = f6;
}
	f7 = f7*f15;
	f3 = f3*f13;
	f3 = f7+f3;
	f5 = f5*f6;
	f3 = f3+f5;
	f3 = f12-f3;
	f3 = f4+f3;
	f1 = f1-f3;
	f0 = f0*f1;
	heapFloat[(r0+29)] = f0;
	heapFloat[(r0+30)] = f2;
	heap32[(r0+31)] = 0;
	heap32[(r0+32)] = 1343554297;
	return;
}

function _ZNK17btTypedConstraint9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = r0 >> 2;
	r2 = heap32[(fp)];
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r4 = r2 >> 2;
	r3 = heap32[(r3+7)];
	r5 = heap32[(r4+5)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	r5 = heap32[(fp+1)];
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r5 = r5 >> 2;
	heap32[(r5)] = r_g0;
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+7)];
	r6 = heap32[(r4+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	heap32[(r5+1)] = r_g0;
	r3 = heap32[(r1)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+10)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r_g0;
	r6 = heap32[(r1)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = r_g0;
	heap32[(r5+2)] = r6;
if(!(r6 ==0)) //_LBB615_2
{
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+12)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	r0 = heap32[(r4+1)];
	heap32[(r5+3)] = r0;
	r0 = heapU8[r2+16];
	heap32[(r5+6)] = r0;
	r0 = heap32[(r4+3)];
	heap32[(r5+5)] = r0;
	r0 = heap32[(r4+2)];
	heap32[(r5+4)] = r0;
	heap32[(r5+7)] = heap32[(r4+7)];
	heap32[(r5+8)] = heap32[(r4+8)];
	heap32[(r5+9)] = 0;
	r0 = heap32[(r4+5)];
	r1 = r0 >> 2;
	r1 = heap32[(r1+120)];
if(!(r1 <1)) //_LBB615_7
{
	r1 = 0;
_6: while(true){
	r0 = r0 >> 2;
	r0 = heap32[(r0+122)];
	r3 = r1 << 2;
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
if(!(r0 !=r2)) //_LBB615_6
{
	heap32[(r5+9)] = 1;
}
	r1 = (r1 + 1)|0;
	r0 = heap32[(r4+5)];
	r3 = r0 >> 2;
	r3 = heap32[(r3+120)];
	if(r3 >r1) //_LBB615_4
{
continue _6;
}
else{
break _6;
}
}
}
	r0 = heap32[(r4+6)];
	r1 = r0 >> 2;
	r1 = heap32[(r1+120)];
_12: do {
if(!(r1 <1)) //_LBB615_12
{
	r1 = 0;
_14: while(true){
	r0 = r0 >> 2;
	r0 = heap32[(r0+122)];
	r3 = r1 << 2;
	r0 = (r0 + r3)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
if(!(r0 !=r2)) //_LBB615_11
{
	heap32[(r5+9)] = 1;
}
	r1 = (r1 + 1)|0;
	r0 = heap32[(r4+6)];
	r3 = r0 >> 2;
	r3 = heap32[(r3+120)];
	if(r3 >r1) //_LBB615_9
{
continue _14;
}
else{
break _12;
}
}
}
} while(0);
	r0 = _2E_str76;
	r_g0 = r0;
	return;
}

function _ZN23btDiscreteDynamicsWorld11setNumTasksEi(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN23btDiscreteDynamicsWorld14updateVehiclesEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = _2E_str289;
	r1 = heap32[(fp)];
	heap32[(g0)] = r0;
	r0 = r1 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r2 = heap32[(r0+63)];
if(!(r2 <1)) //_LBB617_3
{
	f0 = heapFloat[(fp+1)];
	r2 = 0;
_3: while(true){
	r3 = heap32[(r0+65)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	heapFloat[(g0+2)] = f0;
	r2 = (r2 + 1)|0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = heap32[(r0+63)];
	if(r3 >r2) //_LBB617_2
{
continue _3;
}
else{
break _3;
}
}
}
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_6: do {
if(!(r3 !=0)) //_LBB617_9
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB617_6
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB617_9
{
break _6;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZNK15btDynamicsWorld17getNumConstraintsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btDynamicsWorld13getConstraintEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNK15btDynamicsWorld13getConstraintEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN15btDynamicsWorld10addVehicleEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btDynamicsWorld13removeVehicleEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btDynamicsWorld12addCharacterEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN15btDynamicsWorld15removeCharacterEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZNK23btDiscreteDynamicsWorld12getWorldTypeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 2;
	r_g0 = r0;
	return;
}

function _ZNK23btDiscreteDynamicsWorld10getGravityEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r0)] = heap32[(r1+56)];
	heap32[(r0+1)] = heap32[(r1+57)];
	heap32[(r0+2)] = heap32[(r1+58)];
	heap32[(r0+3)] = heap32[(r1+59)];
	return;
}

function _ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+15)];
	r2 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+16)];
	r2 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+15)];
	r2 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+16)];
	r2 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN34btClosestNotMeConvexResultCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN34btClosestNotMeConvexResultCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r1 >> 2;
	r3 = r0 >> 2;
	r2 = heap32[(r2)];
	r4 = heap32[(r3+20)];
	if(r2 !=r4) //_LBB635_2
{
	r5 = heapU16[(r0+10)>>1];
	r6 = heapU16[(r1+4)>>1];
	r5 = r5 & r6;
	r5 = r5 & 65535;
	if(r5 ==0) //_LBB635_1
{
__label__ = 1;
}
else{
	r5 = heapU16[(r1+6)>>1];
	r0 = heapU16[(r0+8)>>1];
	r0 = r5 & r0;
	r0 = r0 & 65535;
	if(r0 ==0) //_LBB635_1
{
__label__ = 1;
}
else{
	r0 = heap32[(r3+23)];
	r5 = r0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB635_6
{
	r0 = sp + -24;
	r2 = 1;
	r4 = r0 >> 2;
	heap8[sp+-8] = r2;
	heap32[(r4+3)] = 0;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	r5 = heap32[(r3+22)];
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r3 = heap32[(r3+20)];
	r6 = r6 >> 2;
	r3 = r3 >> 2;
	r6 = heap32[(r6+13)];
	r3 = heap32[(r3+47)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r1 = r_g0;
_7: do {
if(!(r1 ==0)) //_LBB635_21
{
	r1 = r1 >> 2;
	r3 = heap32[(r1+2)];
if(!(r3 ==0)) //_LBB635_21
{
	r3 = heap32[(r4+1)];
if(!(r3 >-1)) //_LBB635_17
{
	r5 = heap32[(r4+2)];
	if(r5 <0) //_LBB635_11
{
	r5 = heap32[(r4+3)];
if(!(r5 ==0)) //_LBB635_15
{
	r6 = heapU8[sp+-8];
if(!(r6 ==0)) //_LBB635_14
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r7 = (r7 + 1)|0;
	r5 = r5 >> 2;
	heap32[(r6)] = r7;
	r5 = heap32[(r5+-1)];
	heap32[(g0)] = r5;
	free(i7);
}
	heap32[(r4+3)] = 0;
}
	heap8[sp+-8] = r2;
	heap32[(r4+3)] = 0;
	heap32[(r4+2)] = 0;
}
_20: while(true){
	r2 = r3 << 2;
	r5 = heap32[(r4+3)];
	r2 = (r5 + r2)|0;
	r3 = (r3 + 1)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = 0;
if(!(r3 !=0)) //_LBB635_16
{
break _20;
}
}
}
	heap32[(r4+1)] = 0;
	r1 = heap32[(r1+2)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = heap32[(r4+1)];
	r1 = 0;
_23: while(true){
	if(r0 >r1) //_LBB635_18
{
	r2 = heap32[(r4+3)];
	r3 = r1 << 2;
	r3 = (r2 + r3)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+279)];
	if(r3 >0) //_LBB635_25
{
break _23;
}
else{
	r1 = (r1 + 1)|0;
}
}
else{
break _7;
}
}
if(!(r2 ==0)) //_LBB635_29
{
	r0 = heapU8[sp+-8];
if(!(r0 ==0)) //_LBB635_28
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	r2 = r2 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}
}
} while(0);
	r0 = heap32[(r4+3)];
if(!(r0 ==0)) //_LBB635_24
{
	r2 = heapU8[sp+-8];
if(!(r2 ==0)) //_LBB635_24
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r1 = heap32[(r2)];
	r1 = (r1 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r2)] = r1;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
}
	r0 = 1;
	r_g0 = r0;
	return;
}
else{
	r0 = 1;
__label__ = 28;
}
}
}
}
else{
__label__ = 1;
}
if (__label__ == 1){
	r0 = 0;
}
	r0 = r0 & 255;
	r_g0 = r0;
	return;
}

function _ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(fp)];
	r3 = heap32[(r1)];
	r4 = r2 >> 2;
	r5 = heap32[(r4+20)];
if(!(r3 ==r5)) //_LBB636_4
{
	r3 = heapU8[r3+204];
	r3 = r3 & 4;
if(!(r3 !=0)) //_LBB636_4
{
	f0 = heapFloat[(r4+7)];
	f1 = heapFloat[(r4+3)];
	f2 = heapFloat[(r4+8)];
	f3 = heapFloat[(r4+4)];
	f4 = heapFloat[(r1+2)];
	f0 = f0-f1;
	f1 = heapFloat[(r1+3)];
	f2 = f2-f3;
	f3 = heapFloat[(r4+9)];
	f5 = heapFloat[(r4+5)];
	f0 = f4*f0;
	f1 = f1*f2;
	f2 = heapFloat[(r1+4)];
	f3 = f3-f5;
	f4 = heapFloat[(r4+21)];
	f0 = f0+f1;
	f1 = f2*f3;
	f0 = f0+f1;
	f1 = -f4;
if(!(f0 >=f1)) //_LBB636_4
{
	r1 = heap32[(fp+2)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	_ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb(i7);
	return;
}
}
}
	f0 =                         1;
	f_g0 = f0;
	return;
}

function _ZN23btDiscreteDynamicsWorld19getConstraintSolverEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+44)];
	r_g0 = r0;
	return;
}

function _ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+47)];
	r_g0 = r0;
	return;
}

function _ZN23btDiscreteDynamicsWorld13getConstraintEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r0 = heap32[(r0+49)];
	r1 = r1 << 2;
	r0 = (r0 + r1)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	r_g0 = r0;
	return;
}

function _ZN23btDiscreteDynamicsWorld11clearForcesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+52)];
if(!(r1 <1)) //_LBB640_3
{
	r1 = 0;
_3: while(true){
	r2 = heap32[(r0+54)];
	r3 = r1 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r1 = (r1 + 1)|0;
	heap32[(r2+101)] = 0;
	heap32[(r2+102)] = 0;
	heap32[(r2+103)] = 0;
	heap32[(r2+104)] = 0;
	heap32[(r2+105)] = 0;
	heap32[(r2+106)] = 0;
	heap32[(r2+107)] = 0;
	heap32[(r2+108)] = 0;
	r2 = heap32[(r0+52)];
	if(r2 >r1) //_LBB640_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZNK23btDiscreteDynamicsWorld13getConstraintEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r0 = heap32[(r0+49)];
	r1 = r1 << 2;
	r0 = (r0 + r1)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	r_g0 = r0;
	return;
}

function _ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r2 = heap32[(r0+63)];
	r3 = 0;
_1: while(true){
	if(r2 >r3) //_LBB642_1
{
	r4 = heap32[(r0+65)];
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	if(r4 !=r1) //_LBB642_3
{
	r3 = (r3 + 1)|0;
continue _1;
}
else{
__label__ = 5;
break _1;
}
}
else{
__label__ = 4;
break _1;
}
}
if (__label__ == 4){
	r3 = r2;
}
if(!(r2 <=r3)) //_LBB642_8
{
	r1 = (r2 + -1)|0;
	r2 = r3 << 2;
	r3 = heap32[(r0+65)];
	r1 = r1 << 2;
	r2 = (r3 + r2)|0;
	r3 = (r3 + r1)|0;
	r2 = r2 >> 2;
	r3 = r3 >> 2;
	r4 = heap32[(r2)];
	r3 = heap32[(r3)];
	heap32[(r2)] = r3;
	r2 = heap32[(r0+65)];
	r1 = (r2 + r1)|0;
	r1 = r1 >> 2;
	heap32[(r1)] = r4;
	r1 = heap32[(r0+63)];
	r1 = (r1 + -1)|0;
	heap32[(r0+63)] = r1;
}
	return;
}

function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+21)];
if(!(r1 ==0)) //_LBB643_4
{
	r3 = heapU8[r0+88];
if(!(r3 ==0)) //_LBB643_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+21)] = 0;
}
	r1 = 1;
	heap8[r0+88] = r1;
	heap32[(r2+21)] = 0;
	heap32[(r2+19)] = 0;
	heap32[(r2+20)] = 0;
	r3 = heap32[(r2+16)];
if(!(r3 ==0)) //_LBB643_8
{
	r4 = heapU8[r0+68];
if(!(r4 ==0)) //_LBB643_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+16)] = 0;
}
	heap8[r0+68] = r1;
	heap32[(r2+16)] = 0;
	heap32[(r2+14)] = 0;
	heap32[(r2+15)] = 0;
	r3 = heap32[(r2+11)];
if(!(r3 ==0)) //_LBB643_12
{
	r4 = heapU8[r0+48];
if(!(r4 ==0)) //_LBB643_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+11)] = 0;
}
	heap8[r0+48] = r1;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	return;
}

function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+21)];
if(!(r1 ==0)) //_LBB644_4
{
	r3 = heapU8[r0+88];
if(!(r3 ==0)) //_LBB644_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+21)] = 0;
}
	r1 = 1;
	heap8[r0+88] = r1;
	heap32[(r2+21)] = 0;
	heap32[(r2+19)] = 0;
	heap32[(r2+20)] = 0;
	r3 = heap32[(r2+16)];
if(!(r3 ==0)) //_LBB644_8
{
	r4 = heapU8[r0+68];
if(!(r4 ==0)) //_LBB644_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+16)] = 0;
}
	heap8[r0+68] = r1;
	heap32[(r2+16)] = 0;
	heap32[(r2+14)] = 0;
	heap32[(r2+15)] = 0;
	r3 = heap32[(r2+11)];
if(!(r3 ==0)) //_LBB644_12
{
	r4 = heapU8[r0+48];
if(!(r4 ==0)) //_LBB644_11
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+11)] = 0;
}
	heap8[r0+48] = r1;
	heap32[(r2+11)] = 0;
	heap32[(r2+9)] = 0;
	heap32[(r2+10)] = 0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+5)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	r6 = heap32[(fp+4)];
	r7 = heap32[(r1+4)];
_1: do {
	if(r2 <0) //_LBB645_2
{
	r0 = 0;
	r0 = (r0 - r6)|0;
	if(r7 ==r0) //_LBB645_87
{
break _1;
}
else{
	r0 = heap32[(r1+2)];
	r2 = r0 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+3)];
	r8 = heap32[(r1+7)];
	r9 = heap32[(r1+6)];
	r10 = heap32[(r1+5)];
	r11 = heap32[(r1+1)];
	r1 = heap32[(r1+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r6;
	heap32[(g0+5)] = r1;
	heap32[(g0+6)] = r7;
	heap32[(g0+7)] = r11;
	heap32[(g0+8)] = r10;
	heap32[(g0+9)] = r9;
	heap32[(g0+10)] = r8;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}
}
else{
	r8 = 1;
	r9 = 4;
	r10 = 0;
_5: while(true){
	if(r7 >r10) //_LBB645_4
{
	r11 = heap32[(r1+3)];
	r12 = r10 << 2;
	r12 = (r11 + r12)|0;
	r12 = r12 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r13 = heap32[(r12+5)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+52)];
	if(r13 <0) //_LBB645_6
{
	r13 = heap32[(r12+6)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+52)];
}
	r10 = (r10 + 1)|0;
	r9 = (r9 + -4)|0;
	r8 = (r8 + -1)|0;
	if(r13 ==r2) //_LBB645_10
{
__label__ = 9;
break _5;
}
else{
__label__ = 7;
}
}
else{
__label__ = 8;
break _5;
}
}
_11: do {
switch(__label__ ){//multiple entries
case 9:
	r10 = r7 > r10 ? r7 : r10;
	r7 = (r11 - r9)|0;
	r9 = (r10 + r8)|0;
	r8 = 0;
	r10 = r7;
_13: while(true){
	r11 = r10 >> 2;
	r11 = heap32[(r11)];
	r11 = r11 >> 2;
	r12 = heap32[(r11+5)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+52)];
	if(r12 <0) //_LBB645_13
{
	r12 = heap32[(r11+6)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+52)];
}
	r11 = r12 == r2;
	r11 = r11 & 1;
	r9 = (r9 + -1)|0;
	r8 = (r11 + r8)|0;
	r10 = (r10 + 4)|0;
if(!(r9 !=0)) //_LBB645_11
{
break _11;
}
}
break;
case 8:
	r7 = 0;
	r8 = r7;
break;
}
} while(0);
	r2 = heap32[(r1+1)];
	r9 = r2 >> 2;
	r9 = heap32[(r9+17)];
	if(r9 <2) //_LBB645_17
{
	r0 = 0;
	r0 = (r0 - r6)|0;
	if(r8 ==r0) //_LBB645_87
{
break _1;
}
else{
	r0 = heap32[(r1+2)];
	r9 = r0 >> 2;
	r9 = heap32[(r9)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+3)];
	r10 = heap32[(r1+7)];
	r11 = heap32[(r1+6)];
	r1 = heap32[(r1+5)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r6;
	heap32[(g0+5)] = r7;
	heap32[(g0+6)] = r8;
	heap32[(g0+7)] = r2;
	heap32[(g0+8)] = r1;
	heap32[(g0+9)] = r11;
	heap32[(g0+10)] = r10;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	return;
}
}
else{
_24: do {
	if(r4 >0) //_LBB645_19
{
	r2 = heap32[(r1+9)];
_26: while(true){
	r9 = heap32[(r1+10)];
	if(r9 ==r2) //_LBB645_22
{
	r10 = 1;
	r11 = r2 << 1;
	r11 = r2 == 0 ? r10 : r11;
if(!(r9 >=r11)) //_LBB645_21
{
	if(r11 !=0) //_LBB645_25
{
	r9 = gNumAlignedAllocs;
	r9 = r9 >> 2;
	r12 = heap32[(r9)];
	r13 = r11 << 2;
	r12 = (r12 + 1)|0;
	r13 = r13 | 3;
	heap32[(r9)] = r12;
	r9 = (r13 + 16)|0;
	heap32[(g0)] = r9;
	malloc(i7);
	r9 = r_g0;
	if(r9 !=0) //_LBB645_27
{
	r12 = 0;
	r13 = (r9 + 4)|0;
	r12 = (r12 - r13)|0;
	r12 = r12 & 15;
	r12 = (r9 + r12)|0;
	r13 = (r12 + 4)|0;
	r12 = r12 >> 2;
	heap32[(r12)] = r9;
	r9 = r13;
}
}
else{
	r9 = 0;
}
	if(r2 <1) //_LBB645_30
{
	r13 = heap32[(r1+11)];
}
else{
	r12 = 0;
_39: while(true){
	r13 = heap32[(r1+11)];
	r14 = r12 << 2;
	r15 = (r13 + r14)|0;
	r15 = r15 >> 2;
	r14 = (r9 + r14)|0;
	r15 = heap32[(r15)];
	r12 = (r12 + 1)|0;
	r14 = r14 >> 2;
	heap32[(r14)] = r15;
if(!(r2 !=r12)) //_LBB645_31
{
break _39;
}
}
}
	if(r13 !=0) //_LBB645_34
{
	r12 = heapU8[r0+48];
	if(r12 !=0) //_LBB645_36
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r12 = heap32[(r2)];
	r12 = (r12 + 1)|0;
	r13 = r13 >> 2;
	heap32[(r2)] = r12;
	r2 = heap32[(r13+-1)];
	heap32[(g0)] = r2;
	free(i7);
	r2 = heap32[(r1+9)];
}
	heap32[(r1+11)] = 0;
}
	heap8[r0+48] = r10;
	heap32[(r1+11)] = r9;
	heap32[(r1+10)] = r11;
}
}
	r9 = r3 >> 2;
	r2 = r2 << 2;
	r10 = heap32[(r1+11)];
	r2 = (r10 + r2)|0;
	r9 = heap32[(r9)];
	r2 = r2 >> 2;
	heap32[(r2)] = r9;
	r2 = heap32[(r1+9)];
	r2 = (r2 + 1)|0;
	r4 = (r4 + -1)|0;
	r3 = (r3 + 4)|0;
	heap32[(r1+9)] = r2;
if(!(r4 !=0)) //_LBB645_20
{
break _24;
}
}
}
} while(0);
_50: do {
if(!(r6 <1)) //_LBB645_62
{
	r2 = heap32[(r1+14)];
_52: while(true){
	r3 = heap32[(r1+15)];
	if(r3 ==r2) //_LBB645_44
{
	r4 = 1;
	r9 = r2 << 1;
	r9 = r2 == 0 ? r4 : r9;
if(!(r3 >=r9)) //_LBB645_43
{
	if(r9 !=0) //_LBB645_47
{
	r3 = gNumAlignedAllocs;
	r3 = r3 >> 2;
	r10 = heap32[(r3)];
	r11 = r9 << 2;
	r10 = (r10 + 1)|0;
	r11 = r11 | 3;
	heap32[(r3)] = r10;
	r3 = (r11 + 16)|0;
	heap32[(g0)] = r3;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB645_49
{
	r10 = 0;
	r11 = (r3 + 4)|0;
	r10 = (r10 - r11)|0;
	r10 = r10 & 15;
	r10 = (r3 + r10)|0;
	r11 = (r10 + 4)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r3;
	r3 = r11;
}
}
else{
	r3 = 0;
}
	if(r2 <1) //_LBB645_52
{
	r11 = heap32[(r1+16)];
}
else{
	r10 = 0;
_65: while(true){
	r11 = heap32[(r1+16)];
	r12 = r10 << 2;
	r13 = (r11 + r12)|0;
	r13 = r13 >> 2;
	r12 = (r3 + r12)|0;
	r13 = heap32[(r13)];
	r10 = (r10 + 1)|0;
	r12 = r12 >> 2;
	heap32[(r12)] = r13;
if(!(r2 !=r10)) //_LBB645_53
{
break _65;
}
}
}
	if(r11 !=0) //_LBB645_56
{
	r10 = heapU8[r0+68];
	if(r10 !=0) //_LBB645_58
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r10 = heap32[(r2)];
	r10 = (r10 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r2)] = r10;
	r2 = heap32[(r11+-1)];
	heap32[(g0)] = r2;
	free(i7);
	r2 = heap32[(r1+14)];
}
	heap32[(r1+16)] = 0;
}
	heap8[r0+68] = r4;
	heap32[(r1+16)] = r3;
	heap32[(r1+15)] = r9;
}
}
	r3 = r5 >> 2;
	r2 = r2 << 2;
	r4 = heap32[(r1+16)];
	r2 = (r4 + r2)|0;
	r3 = heap32[(r3)];
	r2 = r2 >> 2;
	heap32[(r2)] = r3;
	r2 = heap32[(r1+14)];
	r2 = (r2 + 1)|0;
	r6 = (r6 + -1)|0;
	r5 = (r5 + 4)|0;
	heap32[(r1+14)] = r2;
if(!(r6 !=0)) //_LBB645_42
{
break _50;
}
}
}
} while(0);
_76: do {
	if(r8 >0) //_LBB645_64
{
	r2 = heap32[(r1+19)];
_78: while(true){
	r3 = heap32[(r1+20)];
	if(r3 ==r2) //_LBB645_67
{
	r4 = 1;
	r5 = r2 << 1;
	r5 = r2 == 0 ? r4 : r5;
if(!(r3 >=r5)) //_LBB645_66
{
	if(r5 !=0) //_LBB645_70
{
	r3 = gNumAlignedAllocs;
	r3 = r3 >> 2;
	r6 = heap32[(r3)];
	r9 = r5 << 2;
	r6 = (r6 + 1)|0;
	r9 = r9 | 3;
	heap32[(r3)] = r6;
	r3 = (r9 + 16)|0;
	heap32[(g0)] = r3;
	malloc(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB645_72
{
	r6 = 0;
	r9 = (r3 + 4)|0;
	r6 = (r6 - r9)|0;
	r6 = r6 & 15;
	r6 = (r3 + r6)|0;
	r9 = (r6 + 4)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = r3;
	r3 = r9;
}
}
else{
	r3 = 0;
}
	if(r2 <1) //_LBB645_75
{
	r9 = heap32[(r1+21)];
}
else{
	r6 = 0;
_91: while(true){
	r9 = heap32[(r1+21)];
	r10 = r6 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r3 + r10)|0;
	r11 = heap32[(r11)];
	r6 = (r6 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r2 !=r6)) //_LBB645_76
{
break _91;
}
}
}
	if(r9 !=0) //_LBB645_79
{
	r6 = heapU8[r0+88];
	if(r6 !=0) //_LBB645_81
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r6 = heap32[(r2)];
	r6 = (r6 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r2)] = r6;
	r2 = heap32[(r9+-1)];
	heap32[(g0)] = r2;
	free(i7);
	r2 = heap32[(r1+19)];
}
	heap32[(r1+21)] = 0;
}
	heap8[r0+88] = r4;
	heap32[(r1+21)] = r3;
	heap32[(r1+20)] = r5;
}
}
	r3 = r7 >> 2;
	r2 = r2 << 2;
	r4 = heap32[(r1+21)];
	r2 = (r4 + r2)|0;
	r3 = heap32[(r3)];
	r2 = r2 >> 2;
	heap32[(r2)] = r3;
	r2 = heap32[(r1+19)];
	r2 = (r2 + 1)|0;
	r8 = (r8 + -1)|0;
	r7 = (r7 + 4)|0;
	heap32[(r1+19)] = r2;
if(!(r8 !=0)) //_LBB645_65
{
break _76;
}
}
}
else{
	r2 = heap32[(r1+19)];
}
} while(0);
	r3 = heap32[(r1+1)];
	r3 = r3 >> 2;
	r1 = heap32[(r1+14)];
	r1 = (r1 + r2)|0;
	r2 = heap32[(r3+17)];
if(!(r1 <=r2)) //_LBB645_87
{
	heap32[(g0)] = r0;
	_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i7);
}
}
}
} while(0);
	return;
}

function _ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+1)];
	r2 = (r0 + r1)|0;
	r3 = r2 >>> 31;
	r4 = heap32[(fp)];
	r2 = (r2 + r3)|0;
	r3 = r4 >> 2;
	r2 = r2 & 2147483646;
	r5 = heap32[(r3+3)];
	r2 = r2 << 1;
	r2 = (r5 + r2)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r5 = r1;
	r6 = r0;
_1: while(true){
	r7 = r2 >> 2;
	r8 = heap32[(r7+5)];
	r8 = r8 >> 2;
	r9 = heap32[(r3+3)];
	r8 = heap32[(r8+52)];
_3: while(true){
	r10 = r5 << 2;
	r10 = (r9 + r10)|0;
	r10 = r10 >> 2;
	r11 = heap32[(r10)];
	if(r8 <0) //_LBB646_5
{
	r12 = heap32[(r7+6)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+52)];
}
else{
	r12 = r8;
}
	r13 = r11 >> 2;
	r14 = heap32[(r13+5)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+52)];
	if(r14 <0) //_LBB646_8
{
	r14 = heap32[(r13+6)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+52)];
}
	if(r14 <r12) //_LBB646_2
{
	r5 = (r5 + 1)|0;
continue _3;
}
else{
break _3;
}
}
_13: while(true){
	r12 = r6 << 2;
	r13 = (r9 + r12)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
	r14 = r13 >> 2;
	r15 = heap32[(r14+5)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+52)];
	if(r15 <0) //_LBB646_13
{
	r15 = heap32[(r14+6)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+52)];
}
	if(r8 <0) //_LBB646_16
{
	r14 = heap32[(r7+6)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+52)];
}
else{
	r14 = r8;
}
	if(r14 <r15) //_LBB646_10
{
	r6 = (r6 + -1)|0;
continue _13;
}
else{
break _13;
}
}
	if(r5 <=r6) //_LBB646_20
{
	heap32[(r10)] = r13;
	r7 = heap32[(r3+3)];
	r7 = (r7 + r12)|0;
	r5 = (r5 + 1)|0;
	r6 = (r6 + -1)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r11;
}
	if(r5 <=r6) //_LBB646_1
{
continue _1;
}
else{
break _1;
}
}
if(!(r6 <=r1)) //_LBB646_24
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r6;
	_ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7);
}
if(!(r5 >=r0)) //_LBB646_26
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r0;
	_ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7);
}
	return;
}

function _ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+8)];
	r3 = heap32[(fp)];
	heap32[(g0)] = r0;
	r4 = r3 >> 2;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = heap32[(r4+2)];
if(!(r2 <1)) //_LBB647_5
{
	r2 = 0;
_3: while(true){
	r5 = heap32[(r4+4)];
	r6 = r2 << 2;
	r5 = (r5 + r6)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r6 = heapU8[r5+232];
	r6 = r6 & 2;
if(!(r6 ==0)) //_LBB647_4
{
	r6 = r5 >> 2;
	r7 = heap32[(r6)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+4)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r7 = r_g0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r8 = r7 >> 2;
	r6 = heap32[(r6+5)];
	r8 = heap32[(r8+2)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+5)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1497645650;
	heap32[(g0+4)] = r5;
	__FUNCTION_TABLE__[(r8)>>2](i7);
}
	r2 = (r2 + 1)|0;
	r5 = heap32[(r4+2)];
	if(r5 >r2) //_LBB647_2
{
continue _3;
}
else{
break _3;
}
}
}
	r2 = heap32[(r4+47)];
_9: do {
if(!(r2 <1)) //_LBB647_8
{
	r2 = 0;
_11: while(true){
	r5 = r2 << 2;
	r6 = heap32[(r4+49)];
	r5 = (r6 + r5)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r6 = r5 >> 2;
	r7 = heap32[(r6)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+9)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r7 = r_g0;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r8 = r7 >> 2;
	r6 = heap32[(r6+10)];
	r8 = heap32[(r8+2)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+5)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1397641027;
	heap32[(g0+4)] = r5;
	r2 = (r2 + 1)|0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r5 = heap32[(r4+47)];
	if(r5 >r2) //_LBB647_7
{
continue _11;
}
else{
break _9;
}
}
}
} while(0);
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	_ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i7);
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+9)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}

function _ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+245];
if(!(r1 ==0)) //_LBB648_3
{
	r1 = r0 >> 2;
	r1 = heap32[(r1+44)];
if(!(r1 ==0)) //_LBB648_3
{
	r2 = gNumAlignedFree;
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r3 = (r3 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r2)] = r3;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = heap32[(fp+1)];
	r2 = 0;
	r3 = r0 >> 2;
	heap8[r0+245] = r2;
	heap32[(r3+44)] = r1;
	return;
}

function _ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = _2E_str87;
	r1 = heap32[(fp)];
	heap32[(g0)] = r0;
	r0 = r1 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r1 = heap32[(r0+52)];
if(!(r1 <1)) //_LBB649_5
{
	f0 = heapFloat[(fp+1)];
	r1 = 0;
_3: while(true){
	r2 = heap32[(r0+54)];
	r3 = r1 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r3 = heapU8[r2+204];
	r3 = r3 & 3;
if(!(r3 !=0)) //_LBB649_4
{
	heap32[(g0)] = r2;
	heapFloat[(g0+1)] = f0;
	_ZN11btRigidBody19integrateVelocitiesEf(i7);
	heap32[(g0)] = r2;
	heapFloat[(g0+1)] = f0;
	_ZN11btRigidBody12applyDampingEf(i7);
	r3 = r2 >> 2;
	f1 = heapFloat[(r3+76)];
	f2 = heapFloat[(r3+77)];
	f3 = heapFloat[(r3+78)];
	r3 = (r2 + 4)|0;
	r4 = (r2 + 320)|0;
	r2 = (r2 + 68)|0;
	heap32[(g0)] = r3;
	heapFloat[(g0+1)] = f1;
	heapFloat[(g0+2)] = f2;
	heapFloat[(g0+3)] = f3;
	heap32[(g0+4)] = r4;
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = r2;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
}
	r1 = (r1 + 1)|0;
	r2 = heap32[(r0+52)];
	if(r2 >r1) //_LBB649_2
{
continue _3;
}
else{
break _3;
}
}
}
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_9: do {
if(!(r3 !=0)) //_LBB649_11
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB649_8
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB649_11
{
break _9;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = _2E_str188;
	r1 = heap32[(fp)];
	heap32[(g0)] = r0;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r0 = r1 >> 2;
	r2 = heap32[(r0+45)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+2)];
	r4 = heap32[(r0+6)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r4;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = heap32[(r0+47)];
if(!(r2 <1)) //_LBB650_21
{
	r3 = 0;
_3: while(true){
	r4 = heap32[(r0+49)];
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r5 = heap32[(r4+5)];
_5: do {
if(!(r5 ==0)) //_LBB650_20
{
	r6 = heapU8[r5+204];
	r6 = r6 & 3;
if(!(r6 !=0)) //_LBB650_20
{
	r4 = heap32[(r4+6)];
if(!(r4 ==0)) //_LBB650_20
{
	r6 = heapU8[r4+204];
	r6 = r6 & 3;
if(!(r6 !=0)) //_LBB650_20
{
	r5 = r5 >> 2;
	r6 = heap32[(r5+54)];
	if(r6 ==2) //_LBB650_8
{
__label__ = 8;
}
else{
	if(r6 !=5) //_LBB650_10
{
__label__ = 10;
}
else{
__label__ = 8;
}
}
if (__label__ == 8){
	r6 = r4 >> 2;
	r6 = heap32[(r6+54)];
	if(r6 ==2) //_LBB650_20
{
break _5;
}
else{
	if(r6 ==5) //_LBB650_20
{
break _5;
}
}
}
	r6 = heap32[(r0+45)];
	r5 = heap32[(r5+52)];
	r6 = r6 >> 2;
	r7 = heap32[(r6+4)];
	r8 = r5 << 3;
	r8 = (r7 + r8)|0;
	r8 = r8 >> 2;
	r4 = r4 >> 2;
	r8 = heap32[(r8)];
	r4 = heap32[(r4+52)];
if(!(r8 ==r5)) //_LBB650_12
{
_17: while(true){
	r8 = r8 << 3;
	r5 = r5 << 3;
	r8 = (r7 + r8)|0;
	r5 = (r7 + r5)|0;
	r7 = r8 >> 2;
	r5 = r5 >> 2;
	r8 = heap32[(r7)];
	heap32[(r5)] = r8;
	r5 = heap32[(r7)];
	r7 = heap32[(r6+4)];
	r8 = r5 << 3;
	r8 = (r7 + r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
if(!(r8 !=r5)) //_LBB650_13
{
break _17;
}
}
}
	r8 = r4 << 3;
	r8 = (r7 + r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
_20: do {
if(!(r8 ==r4)) //_LBB650_16
{
_21: while(true){
	r8 = r8 << 3;
	r4 = r4 << 3;
	r8 = (r7 + r8)|0;
	r4 = (r7 + r4)|0;
	r7 = r8 >> 2;
	r4 = r4 >> 2;
	r8 = heap32[(r7)];
	heap32[(r4)] = r8;
	r4 = heap32[(r7)];
	r7 = heap32[(r6+4)];
	r8 = r4 << 3;
	r8 = (r7 + r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
if(!(r8 !=r4)) //_LBB650_17
{
break _20;
}
}
}
} while(0);
if(!(r5 ==r4)) //_LBB650_20
{
	r5 = r5 << 3;
	r7 = (r7 + r5)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r4;
	r6 = heap32[(r6+4)];
	r4 = r4 << 3;
	r4 = (r6 + r4)|0;
	r5 = (r6 + r5)|0;
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r4+1)];
	r5 = heap32[(r5+1)];
	r5 = (r5 + r6)|0;
	heap32[(r4+1)] = r5;
}
}
}
}
}
} while(0);
	r3 = (r3 + 1)|0;
	if(r2 !=r3) //_LBB650_2
{
continue _3;
}
else{
break _3;
}
}
}
	r0 = heap32[(r0+45)];
	r2 = r0 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	r0 = _ZN15CProfileManager11CurrentNodeE;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_27: do {
if(!(r3 !=0)) //_LBB650_27
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB650_24
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB650_27
{
break _27;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+14)];
	r3 = heap32[(r1+19)];
	r4 = (r3 + r2)|0;
if(!(r4 <1)) //_LBB651_2
{
	r4 = heap32[(r1+2)];
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+3)];
	r6 = heap32[(r1+7)];
	r7 = heap32[(r1+6)];
	r8 = heap32[(r1+5)];
	r9 = heap32[(r1+1)];
	r10 = heap32[(r1+21)];
	r11 = heap32[(r1+16)];
	r12 = heap32[(r1+9)];
	r13 = heap32[(r1+11)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r13;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r11;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r10;
	heap32[(g0+6)] = r3;
	heap32[(g0+7)] = r9;
	heap32[(g0+8)] = r8;
	heap32[(g0+9)] = r7;
	heap32[(g0+10)] = r6;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
	r2 = heap32[(r1+9)];
if(!(r2 >-1)) //_LBB651_10
{
	r3 = heap32[(r1+10)];
if(!(r3 >-1)) //_LBB651_9
{
	r3 = heap32[(r1+11)];
if(!(r3 ==0)) //_LBB651_8
{
	r4 = heapU8[r0+48];
if(!(r4 ==0)) //_LBB651_7
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r1+11)] = 0;
}
	r3 = 1;
	heap8[r0+48] = r3;
	heap32[(r1+11)] = 0;
	heap32[(r1+10)] = 0;
}
_14: while(true){
	r3 = r2 << 2;
	r4 = heap32[(r1+11)];
	r3 = (r4 + r3)|0;
	r2 = (r2 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = 0;
	if(r2 !=0) //_LBB651_9
{
continue _14;
}
else{
break _14;
}
}
}
	heap32[(r1+9)] = 0;
	r2 = heap32[(r1+14)];
_17: do {
if(!(r2 >-1)) //_LBB651_18
{
	r3 = heap32[(r1+15)];
if(!(r3 >-1)) //_LBB651_17
{
	r3 = heap32[(r1+16)];
if(!(r3 ==0)) //_LBB651_16
{
	r4 = heapU8[r0+68];
if(!(r4 ==0)) //_LBB651_15
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r1+16)] = 0;
}
	r3 = 1;
	heap8[r0+68] = r3;
	heap32[(r1+16)] = 0;
	heap32[(r1+15)] = 0;
}
_27: while(true){
	r3 = r2 << 2;
	r4 = heap32[(r1+16)];
	r3 = (r4 + r3)|0;
	r2 = (r2 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = 0;
	if(r2 !=0) //_LBB651_17
{
continue _27;
}
else{
break _17;
}
}
}
} while(0);
	heap32[(r1+14)] = 0;
	r2 = heap32[(r1+19)];
_30: do {
if(!(r2 >-1)) //_LBB651_26
{
	r3 = heap32[(r1+20)];
if(!(r3 >-1)) //_LBB651_25
{
	r3 = heap32[(r1+21)];
if(!(r3 ==0)) //_LBB651_24
{
	r4 = heapU8[r0+88];
if(!(r4 ==0)) //_LBB651_23
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r1+21)] = 0;
}
	r3 = 1;
	heap8[r0+88] = r3;
	heap32[(r1+21)] = 0;
	heap32[(r1+20)] = 0;
}
_40: while(true){
	r0 = r2 << 2;
	r3 = heap32[(r1+21)];
	r0 = (r3 + r0)|0;
	r2 = (r2 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	if(r2 !=0) //_LBB651_25
{
continue _40;
}
else{
break _30;
}
}
}
} while(0);
	heap32[(r1+19)] = 0;
	return;
}

function _ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+64)];
	r3 = heap32[(r1+63)];
	r4 = heap32[(fp+1)];
	if(r2 ==r3) //_LBB652_2
{
	r5 = 1;
	r6 = r3 << 1;
	r6 = r3 == 0 ? r5 : r6;
if(!(r2 >=r6)) //_LBB652_1
{
	if(r6 !=0) //_LBB652_5
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r7 = heap32[(r2)];
	r8 = r6 << 2;
	r7 = (r7 + 1)|0;
	r8 = r8 | 3;
	heap32[(r2)] = r7;
	r2 = (r8 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB652_7
{
	r7 = 0;
	r8 = (r2 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r2 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r2;
	r2 = r8;
}
}
else{
	r2 = 0;
}
	r7 = (r0 + 260)|0;
	if(r3 <1) //_LBB652_10
{
	r8 = r7 >> 2;
	r9 = heap32[(r8)];
}
else{
	r8 = 0;
_12: while(true){
	r9 = r7 >> 2;
	r9 = heap32[(r9)];
	r10 = r8 << 2;
	r11 = (r9 + r10)|0;
	r11 = r11 >> 2;
	r10 = (r2 + r10)|0;
	r11 = heap32[(r11)];
	r8 = (r8 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r11;
if(!(r3 !=r8)) //_LBB652_11
{
break _12;
}
}
	r7 = (r0 + 260)|0;
}
	if(r9 !=0) //_LBB652_15
{
	r8 = heapU8[r0+264];
	if(r8 !=0) //_LBB652_17
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r8 = heap32[(r3)];
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r3)] = r8;
	r3 = heap32[(r9+-1)];
	heap32[(g0)] = r3;
	free(i7);
	r3 = heap32[(r1+63)];
}
	r8 = r7 >> 2;
	heap32[(r8)] = 0;
}
	r7 = r7 >> 2;
	heap8[r0+264] = r5;
	heap32[(r7)] = r2;
	heap32[(r1+64)] = r6;
}
}
	r0 = r3 << 2;
	r2 = heap32[(r1+65)];
	r0 = (r2 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r4;
	r0 = heap32[(r1+63)];
	r0 = (r0 + 1)|0;
	heap32[(r1+63)] = r0;
	return;
}

function _ZN23btDiscreteDynamicsWorld19integrateTransformsEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
var __label__ = 0;
	i7 = sp + -264;var g0 = i7>>2; // save stack
	r0 = _2E_str794;
	r1 = heap32[(fp)];
	heap32[(g0)] = r0;
	r0 = r1 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r2 = heap32[(r0+52)];
if(!(r2 <1)) //_LBB653_19
{
	f0 = heapFloat[(fp+1)];
	r2 = 0;
	r15 = -1;
_3: while(true){
	r3 = heap32[(r0+54)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = r3 >> 2;
	heap32[(r4+60)] = 1065353216;
	r5 = heap32[(r4+54)];
if(!(r5 ==2)) //_LBB653_18
{
if(!(r5 ==5)) //_LBB653_18
{
	r5 = heapU8[r3+204];
	r5 = r5 & 3;
if(!(r5 !=0)) //_LBB653_18
{
	f1 = heapFloat[(r4+76)];
	f2 = heapFloat[(r4+77)];
	f3 = heapFloat[(r4+78)];
	r5 = (r3 + 320)|0;
	r6 = (r3 + 4)|0;
	r7 = sp + -80;
	heap32[(g0)] = r6;
	heapFloat[(g0+1)] = f1;
	heapFloat[(g0+2)] = f2;
	heapFloat[(g0+3)] = f3;
	heap32[(g0+4)] = r5;
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = r7;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
	f1 = heapFloat[(r4+62)];
	f1 = f1*f1;
	f2 =                         0;
_9: do {
if(!(f1 ==f2)) //_LBB653_17
{
	r8 = r7 >> 2;
	f2 = heapFloat[(r8+14)];
	f3 = heapFloat[(r4+15)];
	f4 = heapFloat[(r8+13)];
	f5 = heapFloat[(r4+14)];
	f6 = heapFloat[(r8+12)];
	f7 = heapFloat[(r4+13)];
	f2 = f2-f3;
	f3 = f4-f5;
	f4 = f6-f7;
	f4 = f4*f4;
	f3 = f3*f3;
	f3 = f4+f3;
	f2 = f2*f2;
	f2 = f3+f2;
if(!(f1 >=f2)) //_LBB653_17
{
	r9 = _2E_str895;
	heap32[(g0)] = r9;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r9 = heap32[(r4+48)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+1)];
if(!(r9 >19)) //_LBB653_11
{
	r9 = gNumClampedCcdMotions;
	r9 = r9 >> 2;
	r10 = heap32[(r9)];
	r10 = (r10 + 1)|0;
	heap32[(r9)] = r10;
	r9 = heap32[(r0+20)];
	r10 = r9 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+9)];
	r11 = heap32[(r0+6)];
	r12 = sp + -176;
	heap32[(g0)] = r9;
	r9 = r12 >> 2;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r13 = 1;
	heap32[(r9+1)] = 1065353216;
	r14 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
	heap16[(sp+-168)>>1] = r13;
	r13 = (r14 + 8)|0;
	heap16[(sp+-166)>>1] = r15;
	heap32[(fp+-44)] = r13;
	heap32[(r9+3)] = heap32[(r4+13)];
	heap32[(r9+4)] = heap32[(r4+14)];
	heap32[(r9+5)] = heap32[(r4+15)];
	heap32[(r9+6)] = heap32[(r4+16)];
	heap32[(r9+7)] = heap32[(r8+12)];
	heap32[(r9+8)] = heap32[(r8+13)];
	heap32[(r9+9)] = heap32[(r8+14)];
	r14 = _ZTV34btClosestNotMeConvexResultCallback;
	heap32[(r9+10)] = heap32[(r8+15)];
	r8 = (r14 + 8)|0;
	heap32[(r9+19)] = 0;
	heap32[(fp+-44)] = r8;
	heap32[(r9+20)] = r3;
	heap32[(r9+21)] = 0;
	heap32[(r9+22)] = r_g0;
	r8 = sp + -232;
	heap32[(r9+23)] = r11;
	r10 = r8 >> 2;
	f1 = heapFloat[(r4+61)];
	heap32[(r10+2)] = 0;
	heap32[(r10+3)] = 1065353216;
	heap32[(r10+4)] = 1065353216;
	r11 = _ZTV13btSphereShape;
	heap32[(r10+5)] = 1065353216;
	r11 = (r11 + 8)|0;
	heap32[(r10+6)] = 0;
	heap32[(fp+-58)] = r11;
	heap32[(r10+1)] = 8;
	heapFloat[(r10+7)] = f1;
	heapFloat[(r10+11)] = f1;
	r10 = heap32[(r4+47)];
	r10 = heapU16[(r10+4)>>1];
	heap16[(sp+-168)>>1] = r10;
	r10 = heap32[(r4+47)];
	r10 = heapU16[(r10+6)>>1];
	heap16[(sp+-166)>>1] = r10;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r12;
	heap32[(g0+5)] = 0;
	_ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i7);
	f1 = heapFloat[(r9+1)];
	f2 =                         1;
if(!(f1 >=f2)) //_LBB653_10
{
	heapFloat[(r4+60)] = f1;
	f2 = heapFloat[(r4+76)];
	f3 = heapFloat[(r4+77)];
	f4 = heapFloat[(r4+78)];
	f1 = f1*f0;
	heap32[(g0)] = r6;
	heapFloat[(g0+1)] = f2;
	heapFloat[(g0+2)] = f3;
	heapFloat[(g0+3)] = f4;
	heap32[(g0+4)] = r5;
	heapFloat[(g0+5)] = f1;
	heap32[(g0+6)] = r7;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
	heap32[(r4+60)] = 0;
}
	r4 = _ZTV13btConvexShape;
	r4 = (r4 + 8)|0;
	heap32[(fp+-58)] = r4;
	heap32[(fp+-44)] = r13;
}
	r4 = _ZN15CProfileManager11CurrentNodeE;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r6 = r5 >> 2;
	r8 = heap32[(r6+4)];
	r8 = (r8 + -1)|0;
	heap32[(r6+4)] = r8;
if(!(r8 !=0)) //_LBB653_17
{
	r8 = heap32[(r6+1)];
	if(r8 !=0) //_LBB653_14
{
	r5 = sp + -8;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 0;
	r8 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
	r8 = r8 >> 2;
	r5 = r5 >> 2;
	r9 = heap32[(fp+-2)];
	r10 = heap32[(r8)];
	r9 = (r9 - r10)|0;
	r5 = heap32[(r5+1)];
	r8 = heap32[(r8+1)];
	r5 = (r5 - r8)|0;
	r8 = (r9 * 1000000)|0;
	r5 = (r5 + r8)|0;
	r8 = heap32[(r6+3)];
	r5 = (r5 - r8)|0;
	f1 = uint(r5); //fuitos r5, f1
	f2 =                      1000;
	f3 = heapFloat[(r6+2)];
	f1 = f1/f2;
	f1 = f3+f1;
	heapFloat[(r6+2)] = f1;
	r5 = heap32[(r6+4)];
	if(r5 !=0) //_LBB653_17
{
break _9;
}
else{
	r5 = heap32[(r4)];
}
}
	r5 = r5 >> 2;
	r5 = heap32[(r5+5)];
	heap32[(r4)] = r5;
}
}
}
} while(0);
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r7;
	_ZN11btRigidBody18proceedToTransformERK11btTransform(i7);
}
}
}
	r2 = (r2 + 1)|0;
	r3 = heap32[(r0+52)];
	if(r3 >r2) //_LBB653_2
{
continue _3;
}
else{
break _3;
}
}
}
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_26: do {
if(!(r3 !=0)) //_LBB653_25
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB653_22
{
	r1 = sp + -16;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-4)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB653_25
{
break _26;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -168;var g0 = i7>>2; // save stack
	r0 = _2E_str996;
	heap32[(g0)] = r0;
	r0 = sp + -48;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r1 = 1;
	r2 = r0 >> 2;
	heap8[sp+-32] = r1;
	heap32[(r2+3)] = 0;
	r3 = heap32[(fp)];
	heap32[(r2+1)] = 0;
	r4 = r3 >> 2;
	heap32[(r2+2)] = 0;
	r5 = heap32[(r4+47)];
if(!(r5 <1)) //_LBB654_7
{
	r6 = gNumAlignedAllocs;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	r8 = r5 << 2;
	r7 = (r7 + 1)|0;
	r8 = r8 | 3;
	heap32[(r6)] = r7;
	r6 = (r8 + 16)|0;
	heap32[(g0)] = r6;
	malloc(i7);
	r6 = r_g0;
	if(r6 !=0) //_LBB654_3
{
	r7 = 0;
	r8 = (r6 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r6 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r6;
	r6 = r8;
}
	r7 = 1;
	heap8[sp+-32] = r7;
	r7 = (r7 - r5)|0;
	r8 = 0;
	heap32[(r2+3)] = r6;
	heap32[(r2+2)] = r5;
_6: while(true){
	r9 = r8 << 2;
	r6 = (r6 - r9)|0;
	r6 = r6 >> 2;
	heap32[(r6)] = 0;
	if(r7 ==r8) //_LBB654_7
{
break _6;
}
else{
	r6 = heap32[(r2+3)];
	r8 = (r8 + -1)|0;
continue _6;
}
}
}
	heap32[(r2+1)] = r5;
	r5 = heap32[(r4)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+24)];
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r5 = r_g0;
_10: do {
if(!(r5 <1)) //_LBB654_10
{
	r5 = 0;
_12: while(true){
	r6 = r5 << 2;
	r7 = heap32[(r4+49)];
	r7 = (r7 + r6)|0;
	r7 = r7 >> 2;
	r8 = heap32[(r2+3)];
	r6 = (r8 + r6)|0;
	r7 = heap32[(r7)];
	r6 = r6 >> 2;
	heap32[(r6)] = r7;
	r6 = heap32[(r4)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+24)];
	r5 = (r5 + 1)|0;
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = r_g0;
	if(r6 >r5) //_LBB654_9
{
continue _12;
}
else{
break _10;
}
}
}
} while(0);
	r5 = heap32[(r2+1)];
if(!(r5 <2)) //_LBB654_12
{
	r5 = (r5 + -1)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r5;
	_ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7);
}
	r0 = heap32[(fp+1)];
	r5 = heap32[(r4)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+24)];
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB654_14
{
	r3 = heap32[(r2+3)];
}
else{
	r3 = 0;
}
	r5 = heap32[(r4+6)];
	r6 = heap32[(r4+44)];
	r7 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback;
	r8 = heap32[(r4+19)];
	r9 = heap32[(r4+21)];
	r10 = heap32[(r2+1)];
	r11 = sp + -144;
	r7 = (r7 + 8)|0;
	r12 = r11 >> 2;
	heap32[(fp+-36)] = r7;
	heap32[(r12+1)] = r0;
	heap32[(r12+2)] = r6;
	heap32[(r12+3)] = r3;
	heap32[(r12+4)] = r10;
	heap32[(r12+5)] = r9;
	heap32[(r12+6)] = r8;
	heap32[(r12+7)] = r5;
	heap8[sp+-96] = r1;
	heap32[(r12+11)] = 0;
	heap32[(r12+9)] = 0;
	heap32[(r12+10)] = 0;
	heap8[sp+-76] = r1;
	heap32[(r12+16)] = 0;
	heap32[(r12+14)] = 0;
	heap32[(r12+15)] = 0;
	heap8[sp+-56] = r1;
	heap32[(r12+21)] = 0;
	heap32[(r12+19)] = 0;
	r3 = r6 >> 2;
	heap32[(r12+20)] = 0;
	r6 = r5 >> 2;
	r3 = heap32[(r3)];
	r6 = heap32[(r6)];
	r3 = r3 >> 2;
	r6 = r6 >> 2;
	r3 = heap32[(r3+2)];
	r6 = heap32[(r6+9)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r6 = heap32[(r4+2)];
	r8 = heap32[(r4+44)];
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r_g0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = heap32[(r4+45)];
	r5 = heap32[(r4+6)];
	r6 = _2E_str155;
	heap32[(g0)] = r6;
	r6 = r3 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r8 = heap32[(r6+7)];
_22: do {
if(!(r8 >-1)) //_LBB654_23
{
	r9 = heap32[(r6+8)];
if(!(r9 >-1)) //_LBB654_22
{
	r9 = heap32[(r6+9)];
if(!(r9 ==0)) //_LBB654_21
{
	r10 = heapU8[r3+40];
if(!(r10 ==0)) //_LBB654_20
{
	r10 = gNumAlignedFree;
	r10 = r10 >> 2;
	r13 = heap32[(r10)];
	r13 = (r13 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r10)] = r13;
	r9 = heap32[(r9+-1)];
	heap32[(g0)] = r9;
	free(i7);
}
	heap32[(r6+9)] = 0;
}
	r9 = 1;
	heap8[r3+40] = r9;
	heap32[(r6+9)] = 0;
	heap32[(r6+8)] = 0;
}
_32: while(true){
	r9 = r8 << 2;
	r10 = heap32[(r6+9)];
	r9 = (r10 + r9)|0;
	r8 = (r8 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = 0;
	if(r8 !=0) //_LBB654_22
{
continue _32;
}
else{
break _22;
}
}
}
} while(0);
	heap32[(r6+7)] = 0;
	r8 = heap32[(r6+2)];
	if(r8 >0) //_LBB654_25
{
	r9 = 0;
_37: while(true){
	r10 = heap32[(r6+4)];
	r13 = r9 << 3;
	r13 = (r10 + r13)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
	r14 = r9 << 1;
	if(r9 ==r13) //_LBB654_28
{
	r16 = r9;
}
else{
	r15 = r10;
	r16 = r9;
_42: while(true){
	r13 = r13 << 3;
	r16 = r16 << 3;
	r13 = (r15 + r13)|0;
	r15 = (r15 + r16)|0;
	r13 = r13 >> 2;
	r15 = r15 >> 2;
	r16 = heap32[(r13)];
	heap32[(r15)] = r16;
	r16 = heap32[(r13)];
	r15 = heap32[(r6+4)];
	r13 = r16 << 3;
	r13 = (r15 + r13)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
if(!(r13 !=r16)) //_LBB654_29
{
break _42;
}
}
}
	r13 = r14 << 2;
	r10 = (r10 + r13)|0;
	r9 = (r9 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r16;
if(!(r8 !=r9)) //_LBB654_26
{
break _37;
}
}
	r8 = heap32[(r6+2)];
	if(r8 >1) //_LBB654_33
{
	r9 = (r3 + 4)|0;
	r8 = (r8 + -1)|0;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r8;
	_ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7);
	r8 = heap32[(r6+2)];
}
}
	r9 = 0;
_48: while(true){
	r10 = r9;
	if(r10 <r8) //_LBB654_35
{
	r13 = heap32[(r6+4)];
	r9 = r10 << 3;
	r9 = (r13 + r9)|0;
	r9 = r9 >> 2;
	r14 = heap32[(r9)];
	r15 = (r10 + 1)|0;
_51: while(true){
	r9 = r15;
	if(r9 >=r8) //_LBB654_46
{
break _51;
}
else{
	r15 = r9 << 3;
	r15 = (r13 + r15)|0;
	r16 = r15 >> 2;
	r15 = (r9 + 1)|0;
	r16 = heap32[(r16)];
if(!(r16 ==r14)) //_LBB654_36
{
break _51;
}
}
}
	r16 = 1;
	r15 = r10;
_55: while(true){
	if(r15 <r9) //_LBB654_38
{
	r17 = r15 << 3;
	r17 = (r13 + r17)|0;
	r17 = r17 >> 2;
	r17 = heap32[(r17+1)];
	r18 = heap32[(r4+4)];
	r17 = r17 << 2;
	r17 = (r18 + r17)|0;
	r17 = r17 >> 2;
	r17 = heap32[(r17)];
	r17 = r17 >> 2;
	r18 = heap32[(r17+52)];
	if(r18 ==r14) //_LBB654_42
{
	r17 = heap32[(r17+54)];
	r18 = 0;
	if(r17 ==4) //_LBB654_44
{
	r16 = r18;
}
else{
	r16 = r17 == 1 ? r18 : r16;
}
}
else{
	if(r18 !=-1) //_LBB654_41
{
__label__ = 37;
break _48;
}
}
	r15 = (r15 + 1)|0;
}
else{
break _55;
}
}
	r13 = r16 & 255;
	if(r13 ==0) //_LBB654_50
{
_67: while(true){
	if(r10 <r9) //_LBB654_58
{
	r13 = heap32[(r6+4)];
	r15 = r10 << 3;
	r13 = (r13 + r15)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13+1)];
	r15 = heap32[(r4+4)];
	r13 = r13 << 2;
	r13 = (r15 + r13)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r15 = heap32[(r13+52)];
	if(r15 ==r14) //_LBB654_61
{
	r15 = heap32[(r13+54)];
if(!(r15 !=2)) //_LBB654_63
{
	heap32[(r13+54)] = 3;
	heap32[(r13+55)] = 0;
}
}
else{
if(!(r15 ==-1)) //_LBB654_63
{
__label__ = 54;
break _48;
}
}
	r10 = (r10 + 1)|0;
continue _67;
}
else{
continue _48;
}
}
}
else{
_75: while(true){
	if(r10 <r9) //_LBB654_51
{
	r13 = heap32[(r6+4)];
	r15 = r10 << 3;
	r13 = (r13 + r15)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13+1)];
	r15 = heap32[(r4+4)];
	r13 = r13 << 2;
	r13 = (r15 + r13)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r15 = heap32[(r13+52)];
	if(r15 ==r14) //_LBB654_54
{
	r15 = heap32[(r13+54)];
	r15 = (r15 + -4)|0;
if(!(uint(r15) <uint(2))) //_LBB654_56
{
	heap32[(r13+54)] = 2;
}
}
else{
if(!(r15 ==-1)) //_LBB654_56
{
__label__ = 47;
break _48;
}
}
	r10 = (r10 + 1)|0;
continue _75;
}
else{
continue _48;
}
}
}
}
else{
__label__ = 60;
break _48;
}
}
switch(__label__ ){//multiple entries
case 37:
	r0 = _2E_str1156;
	r1 = _2E_str2157;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 242;
	_assert(i7);
break;
case 54:
	r0 = _2E_str1156;
	r1 = _2E_str2157;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 290;
	_assert(i7);
break;
case 60:
	r8 = r5 >> 2;
	r9 = heap32[(r8)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+9)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r9 = r_g0;
_87: do {
if(!(r9 <1)) //_LBB654_104
{
	r10 = 0;
_89: while(true){
	r13 = heap32[(r8)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+10)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r10;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r13 = r_g0;
	r14 = r13 >> 2;
	r15 = heap32[(r14+277)];
	r14 = heap32[(r14+278)];
	if(r15 ==0) //_LBB654_70
{
__label__ = 64;
}
else{
	r16 = r15 >> 2;
	r16 = heap32[(r16+54)];
	if(r16 !=2) //_LBB654_72
{
__label__ = 66;
}
else{
__label__ = 64;
}
}
if (__label__ == 64){
	if(r14 ==0) //_LBB654_103
{
__label__ = 95;
}
else{
	r16 = r14 >> 2;
	r16 = heap32[(r16+54)];
	if(r16 ==2) //_LBB654_103
{
__label__ = 95;
}
else{
__label__ = 66;
}
}
}
if (__label__ == 66){
	r16 = heapU8[r15+204];
	r16 = r16 & 2;
if(!(r16 ==0)) //_LBB654_78
{
	r16 = r15 >> 2;
	r16 = heap32[(r16+54)];
if(!(r16 ==2)) //_LBB654_78
{
	r16 = heapU8[r14+204];
	r16 = r16 & 3;
if(!(r16 !=0)) //_LBB654_78
{
	r16 = r14 >> 2;
	r17 = heap32[(r16+54)];
	r17 = (r17 + -4)|0;
if(!(uint(r17) <uint(2))) //_LBB654_77
{
	heap32[(r16+54)] = 1;
}
	heap32[(r16+55)] = 0;
}
}
}
	r16 = heapU8[r14+204];
	r16 = r16 & 2;
if(!(r16 ==0)) //_LBB654_84
{
	r16 = r14 >> 2;
	r16 = heap32[(r16+54)];
if(!(r16 ==2)) //_LBB654_84
{
	r16 = heapU8[r15+204];
	r16 = r16 & 3;
if(!(r16 !=0)) //_LBB654_84
{
	r16 = r15 >> 2;
	r17 = heap32[(r16+54)];
	r17 = (r17 + -4)|0;
if(!(uint(r17) <uint(2))) //_LBB654_83
{
	heap32[(r16+54)] = 1;
}
	heap32[(r16+55)] = 0;
}
}
}
	r16 = heapU8[r3+64];
if(!(r16 ==0)) //_LBB654_103
{
	r16 = heap32[(r8)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+7)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r15;
	heap32[(g0+2)] = r14;
	__FUNCTION_TABLE__[(r16)>>2](i7);
	r14 = r_g0;
if(!(r14 ==0)) //_LBB654_103
{
	r14 = heap32[(r6+8)];
	r15 = heap32[(r6+7)];
	if(r14 ==r15) //_LBB654_88
{
	r16 = 1;
	r17 = r15 << 1;
	r17 = r15 == 0 ? r16 : r17;
if(!(r14 >=r17)) //_LBB654_87
{
	if(r17 !=0) //_LBB654_91
{
	r14 = gNumAlignedAllocs;
	r14 = r14 >> 2;
	r18 = heap32[(r14)];
	r19 = r17 << 2;
	r18 = (r18 + 1)|0;
	r19 = r19 | 3;
	heap32[(r14)] = r18;
	r14 = (r19 + 16)|0;
	heap32[(g0)] = r14;
	malloc(i7);
	r14 = r_g0;
	if(r14 !=0) //_LBB654_93
{
	r15 = 0;
	r18 = (r14 + 4)|0;
	r15 = (r15 - r18)|0;
	r15 = r15 & 15;
	r15 = (r14 + r15)|0;
	r18 = r15 >> 2;
	heap32[(r18)] = r14;
	r14 = (r15 + 4)|0;
	r15 = heap32[(r6+7)];
}
}
else{
	r14 = 0;
}
if(!(r15 <1)) //_LBB654_97
{
	r18 = 0;
_126: while(true){
	r19 = r18 << 2;
	r20 = heap32[(r6+9)];
	r20 = (r20 + r19)|0;
	r20 = r20 >> 2;
	r19 = (r14 + r19)|0;
	r20 = heap32[(r20)];
	r18 = (r18 + 1)|0;
	r19 = r19 >> 2;
	heap32[(r19)] = r20;
if(!(r15 !=r18)) //_LBB654_96
{
break _126;
}
}
}
	r15 = heap32[(r6+9)];
if(!(r15 ==0)) //_LBB654_101
{
	r18 = heapU8[r3+40];
if(!(r18 ==0)) //_LBB654_100
{
	r18 = gNumAlignedFree;
	r18 = r18 >> 2;
	r19 = heap32[(r18)];
	r19 = (r19 + 1)|0;
	r15 = r15 >> 2;
	heap32[(r18)] = r19;
	r15 = heap32[(r15+-1)];
	heap32[(g0)] = r15;
	free(i7);
}
	heap32[(r6+9)] = 0;
}
	heap8[r3+40] = r16;
	heap32[(r6+9)] = r14;
	heap32[(r6+8)] = r17;
	r15 = heap32[(r6+7)];
}
}
	r14 = r15 << 2;
	r15 = heap32[(r6+9)];
	r14 = (r15 + r14)|0;
	r14 = r14 >> 2;
	heap32[(r14)] = r13;
	r13 = heap32[(r6+7)];
	r13 = (r13 + 1)|0;
	heap32[(r6+7)] = r13;
}
}
}
	r10 = (r10 + 1)|0;
	if(r9 !=r10) //_LBB654_68
{
continue _89;
}
else{
break _87;
}
}
}
} while(0);
	r9 = _ZN15CProfileManager11CurrentNodeE;
	r9 = r9 >> 2;
	r10 = heap32[(r9)];
	r13 = r10 >> 2;
	r14 = heap32[(r13+4)];
	r14 = (r14 + -1)|0;
	heap32[(r13+4)] = r14;
_138: do {
if(!(r14 !=0)) //_LBB654_110
{
	r14 = heap32[(r13+1)];
	if(r14 !=0) //_LBB654_107
{
	r10 = sp + -24;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = 0;
	r14 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r14 = r14 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r10 = r10 >> 2;
	r15 = heap32[(fp+-6)];
	r16 = heap32[(r14)];
	r15 = (r15 - r16)|0;
	r10 = heap32[(r10+1)];
	r14 = heap32[(r14+1)];
	r10 = (r10 - r14)|0;
	r14 = (r15 * 1000000)|0;
	r10 = (r10 + r14)|0;
	r14 = heap32[(r13+3)];
	r10 = (r10 - r14)|0;
	f0 = uint(r10); //fuitos r10, f0
	f1 =                      1000;
	f2 = heapFloat[(r13+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r13+2)] = f0;
	r10 = heap32[(r13+4)];
	if(r10 !=0) //_LBB654_110
{
break _138;
}
else{
	r10 = heap32[(r9)];
}
}
	r10 = r10 >> 2;
	r10 = heap32[(r10+5)];
	heap32[(r9)] = r10;
}
} while(0);
	r10 = heap32[(r6+2)];
	r13 = _2E_str3158;
	heap32[(g0)] = r13;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r13 = heapU8[r3+64];
_145: do {
	if(r13 !=0) //_LBB654_112
{
	r5 = heap32[(r6+7)];
if(!(r5 <2)) //_LBB654_114
{
	r8 = (r3 + 24)|0;
	r13 = (r5 + -1)|0;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r13;
	_ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7);
}
if(!(r10 <1)) //_LBB654_163
{
	r8 = 0;
	r13 = r8;
	r14 = r8;
_151: while(true){
	r15 = heap32[(r6+4)];
	r16 = r14 << 3;
	r15 = (r15 + r16)|0;
	r15 = r15 >> 2;
	r15 = heap32[(r15)];
	r16 = r8;
_153: while(true){
	if(r14 >=r10) //_LBB654_139
{
break _153;
}
else{
	r17 = heap32[(r6+4)];
	r18 = r14 << 3;
	r17 = (r17 + r18)|0;
	r17 = r17 >> 2;
	r18 = heap32[(r17)];
	if(r18 ==r15) //_LBB654_117
{
	r17 = heap32[(r17+1)];
	r18 = heap32[(r4+4)];
	r17 = r17 << 2;
	r17 = (r18 + r17)|0;
	r17 = r17 >> 2;
	r18 = heap32[(r6+13)];
	r19 = heap32[(r6+12)];
	r17 = heap32[(r17)];
	if(r18 ==r19) //_LBB654_119
{
	r20 = 1;
	r21 = r19 << 1;
	r21 = r19 == 0 ? r20 : r21;
if(!(r18 >=r21)) //_LBB654_118
{
	if(r21 !=0) //_LBB654_122
{
	r18 = gNumAlignedAllocs;
	r18 = r18 >> 2;
	r22 = heap32[(r18)];
	r23 = r21 << 2;
	r22 = (r22 + 1)|0;
	r23 = r23 | 3;
	heap32[(r18)] = r22;
	r18 = (r23 + 16)|0;
	heap32[(g0)] = r18;
	malloc(i7);
	r18 = r_g0;
	if(r18 !=0) //_LBB654_124
{
	r19 = 0;
	r22 = (r18 + 4)|0;
	r19 = (r19 - r22)|0;
	r19 = r19 & 15;
	r19 = (r18 + r19)|0;
	r22 = r19 >> 2;
	heap32[(r22)] = r18;
	r18 = (r19 + 4)|0;
	r19 = heap32[(r6+12)];
}
}
else{
	r18 = 0;
}
if(!(r19 <1)) //_LBB654_128
{
	r22 = 0;
_167: while(true){
	r23 = r22 << 2;
	r24 = heap32[(r6+14)];
	r24 = (r24 + r23)|0;
	r24 = r24 >> 2;
	r23 = (r18 + r23)|0;
	r24 = heap32[(r24)];
	r22 = (r22 + 1)|0;
	r23 = r23 >> 2;
	heap32[(r23)] = r24;
if(!(r19 !=r22)) //_LBB654_127
{
break _167;
}
}
}
	r19 = heap32[(r6+14)];
if(!(r19 ==0)) //_LBB654_132
{
	r22 = heapU8[r3+60];
if(!(r22 ==0)) //_LBB654_131
{
	r22 = gNumAlignedFree;
	r22 = r22 >> 2;
	r23 = heap32[(r22)];
	r23 = (r23 + 1)|0;
	r19 = r19 >> 2;
	heap32[(r22)] = r23;
	r19 = heap32[(r19+-1)];
	heap32[(g0)] = r19;
	free(i7);
}
	heap32[(r6+14)] = 0;
}
	heap8[r3+60] = r20;
	heap32[(r6+14)] = r18;
	heap32[(r6+13)] = r21;
	r19 = heap32[(r6+12)];
}
}
	r18 = r19 << 2;
	r19 = heap32[(r6+14)];
	r18 = (r19 + r18)|0;
	r18 = r18 >> 2;
	heap32[(r18)] = r17;
	r18 = heap32[(r6+12)];
	r18 = (r18 + 1)|0;
	r17 = r17 >> 2;
	heap32[(r6+12)] = r18;
	r17 = heap32[(r17+54)];
	if(r17 !=2) //_LBB654_135
{
	r18 = 1;
	r16 = r17 == 5 ? r18 : r16;
}
else{
	r16 = 1;
}
	r14 = (r14 + 1)|0;
}
else{
break _153;
}
}
}
_182: do {
	if(r13 <r5) //_LBB654_141
{
	r17 = heap32[(r6+9)];
	r19 = r13 << 2;
	r18 = (r17 + r19)|0;
	r20 = r18 >> 2;
	r20 = heap32[(r20)];
	r20 = r20 >> 2;
	r21 = heap32[(r20+277)];
	r21 = r21 >> 2;
	r21 = heap32[(r21+52)];
	if(r21 <0) //_LBB654_143
{
	r21 = heap32[(r20+278)];
	r21 = r21 >> 2;
	r21 = heap32[(r21+52)];
}
	if(r21 !=r15) //_LBB654_140
{
__label__ = 129;
}
else{
	r19 = (r17 + r19)|0;
	r20 = 1;
_188: while(true){
	r17 = r20;
	r1 = (r13 + r17)|0;
	if(r1 >=r5) //_LBB654_151
{
__label__ = 138;
break _182;
}
else{
	r20 = r17 << 2;
	r20 = (r19 + r20)|0;
	r20 = r20 >> 2;
	r20 = heap32[(r20)];
	r20 = r20 >> 2;
	r21 = heap32[(r20+277)];
	r21 = r21 >> 2;
	r21 = heap32[(r21+52)];
	if(r21 <0) //_LBB654_149
{
	r20 = heap32[(r20+278)];
	r20 = r20 >> 2;
	r21 = heap32[(r20+52)];
}
	r20 = (r17 + 1)|0;
if(!(r21 ==r15)) //_LBB654_146
{
__label__ = 138;
break _182;
}
}
}
}
}
else{
__label__ = 129;
}
} while(0);
if (__label__ == 129){
	r17 = 0;
	r18 = r17;
}
	r16 = r16 & 255;
if(!(r16 !=0)) //_LBB654_153
{
	r16 = heap32[(fp+-36)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+2)];
	r19 = heap32[(r6+12)];
	r20 = heap32[(r6+14)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r20;
	heap32[(g0+2)] = r19;
	heap32[(g0+3)] = r18;
	heap32[(g0+4)] = r17;
	heap32[(g0+5)] = r15;
	__FUNCTION_TABLE__[(r16)>>2](i7);
}
	r15 = heap32[(r6+12)];
_200: do {
if(!(r15 >-1)) //_LBB654_162
{
	r16 = heap32[(r6+13)];
	if(r16 <0) //_LBB654_156
{
	r16 = heap32[(r6+14)];
if(!(r16 ==0)) //_LBB654_160
{
	r18 = heapU8[r3+60];
if(!(r18 ==0)) //_LBB654_159
{
	r18 = gNumAlignedFree;
	r18 = r18 >> 2;
	r19 = heap32[(r18)];
	r19 = (r19 + 1)|0;
	r16 = r16 >> 2;
	heap32[(r18)] = r19;
	r16 = heap32[(r16+-1)];
	heap32[(g0)] = r16;
	free(i7);
}
	heap32[(r6+14)] = 0;
}
	r16 = 1;
	heap8[r3+60] = r16;
	heap32[(r6+14)] = 0;
	heap32[(r6+13)] = 0;
}
_210: while(true){
	r16 = r15 << 2;
	r18 = heap32[(r6+14)];
	r16 = (r18 + r16)|0;
	r15 = (r15 + 1)|0;
	r16 = r16 >> 2;
	heap32[(r16)] = 0;
if(!(r15 !=0)) //_LBB654_161
{
break _200;
}
}
}
} while(0);
	r13 = r17 == 0 ? r13 : r1;
	heap32[(r6+12)] = 0;
	if(r14 <r10) //_LBB654_116
{
continue _151;
}
else{
break _145;
}
}
}
}
else{
	r1 = heap32[(r8)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+11)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = r_g0;
	r3 = heap32[(r8)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+9)];
	heap32[(g0)] = r5;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r6 = heap32[(fp+-36)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+2)];
	r10 = heap32[(r4+2)];
	r5 = heap32[(r4+4)];
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r_g0;
	heap32[(g0+5)] = -1;
	__FUNCTION_TABLE__[(r6)>>2](i7);
}
} while(0);
	r1 = heap32[(r9)];
	r3 = r1 >> 2;
	r5 = heap32[(r3+4)];
	r5 = (r5 + -1)|0;
	heap32[(r3+4)] = r5;
_215: do {
if(!(r5 !=0)) //_LBB654_169
{
	r5 = heap32[(r3+1)];
	if(r5 !=0) //_LBB654_166
{
	r1 = sp + -16;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r5 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r1 = r1 >> 2;
	r6 = heap32[(fp+-4)];
	r8 = heap32[(r5)];
	r6 = (r6 - r8)|0;
	r1 = heap32[(r1+1)];
	r5 = heap32[(r5+1)];
	r1 = (r1 - r5)|0;
	r5 = (r6 * 1000000)|0;
	r1 = (r1 + r5)|0;
	r5 = heap32[(r3+3)];
	r1 = (r1 - r5)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r3+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r3+2)] = f0;
	r1 = heap32[(r3+4)];
	if(r1 !=0) //_LBB654_169
{
break _215;
}
else{
	r1 = heap32[(r9)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r9)] = r1;
}
} while(0);
	heap32[(g0)] = r11;
	_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i7);
	r1 = heap32[(r4+44)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+4)];
	r5 = heap32[(r4+19)];
	r4 = heap32[(r4+21)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	heap32[(fp+-36)] = r7;
	r0 = heap32[(r12+21)];
if(!(r0 ==0)) //_LBB654_173
{
	r1 = heapU8[sp+-56];
if(!(r1 ==0)) //_LBB654_172
{
	r1 = gNumAlignedFree;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = (r3 + 1)|0;
	r0 = r0 >> 2;
	heap32[(r1)] = r3;
	r0 = heap32[(r0+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	heap32[(r12+21)] = 0;
}
	r0 = 1;
	heap8[sp+-56] = r0;
	heap32[(r12+21)] = 0;
	heap32[(r12+19)] = 0;
	heap32[(r12+20)] = 0;
	r1 = heap32[(r12+16)];
if(!(r1 ==0)) //_LBB654_177
{
	r3 = heapU8[sp+-76];
if(!(r3 ==0)) //_LBB654_176
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r12+16)] = 0;
}
	heap8[sp+-76] = r0;
	heap32[(r12+16)] = 0;
	heap32[(r12+14)] = 0;
	heap32[(r12+15)] = 0;
	r1 = heap32[(r12+11)];
if(!(r1 ==0)) //_LBB654_181
{
	r3 = heapU8[sp+-96];
if(!(r3 ==0)) //_LBB654_180
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r12+11)] = 0;
}
	heap8[sp+-96] = r0;
	heap32[(r12+11)] = 0;
	heap32[(r12+9)] = 0;
	heap32[(r12+10)] = 0;
	r1 = heap32[(r2+3)];
if(!(r1 ==0)) //_LBB654_185
{
	r3 = heapU8[sp+-32];
if(!(r3 ==0)) //_LBB654_184
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+3)] = 0;
}
	heap8[sp+-32] = r0;
	heap32[(r2+3)] = 0;
	heap32[(r2+1)] = 0;
	heap32[(r2+2)] = 0;
	r0 = heap32[(r9)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+4)];
	r2 = (r2 + -1)|0;
	heap32[(r1+4)] = r2;
_246: do {
if(!(r2 !=0)) //_LBB654_191
{
	r2 = heap32[(r1+1)];
	if(r2 !=0) //_LBB654_188
{
	r0 = sp + -8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	r2 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r0 = r0 >> 2;
	r3 = heap32[(fp+-2)];
	r4 = heap32[(r2)];
	r3 = (r3 - r4)|0;
	r0 = heap32[(r0+1)];
	r2 = heap32[(r2+1)];
	r0 = (r0 - r2)|0;
	r2 = (r3 * 1000000)|0;
	r0 = (r0 + r2)|0;
	r2 = heap32[(r1+3)];
	r0 = (r0 - r2)|0;
	f0 = uint(r0); //fuitos r0, f0
	f1 =                      1000;
	f2 = heapFloat[(r1+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r1+2)] = f0;
	r0 = heap32[(r1+4)];
	if(r0 !=0) //_LBB654_191
{
break _246;
}
else{
	r0 = heap32[(r9)];
}
}
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
	heap32[(r9)] = r0;
}
} while(0);
	return;
break;
case 47:
	r0 = _2E_str1156;
	r1 = _2E_str2157;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 269;
	_assert(i7);
break;
}
}

function _ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r2 = heap32[(r0+47)];
	r3 = 0;
_1: while(true){
	if(r2 >r3) //_LBB655_1
{
	r4 = heap32[(r0+49)];
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	if(r4 !=r1) //_LBB655_3
{
	r3 = (r3 + 1)|0;
continue _1;
}
else{
__label__ = 5;
break _1;
}
}
else{
__label__ = 4;
break _1;
}
}
if (__label__ == 4){
	r3 = r2;
}
if(!(r2 <=r3)) //_LBB655_8
{
	r2 = (r2 + -1)|0;
	r3 = r3 << 2;
	r4 = heap32[(r0+49)];
	r2 = r2 << 2;
	r3 = (r4 + r3)|0;
	r4 = (r4 + r2)|0;
	r3 = r3 >> 2;
	r4 = r4 >> 2;
	r5 = heap32[(r3)];
	r4 = heap32[(r4)];
	heap32[(r3)] = r4;
	r3 = heap32[(r0+49)];
	r2 = (r3 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = r5;
	r2 = heap32[(r0+47)];
	r2 = (r2 + -1)|0;
	heap32[(r0+47)] = r2;
}
	r0 = r1 >> 2;
	r2 = heap32[(r0+5)];
	r2 = r2 >> 2;
	r3 = heap32[(r2+120)];
	r4 = 0;
_11: while(true){
	if(r3 >r4) //_LBB655_9
{
	r5 = heap32[(r2+122)];
	r6 = r4 << 2;
	r5 = (r5 + r6)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	if(r5 !=r1) //_LBB655_11
{
	r4 = (r4 + 1)|0;
continue _11;
}
else{
__label__ = 12;
break _11;
}
}
else{
__label__ = 11;
break _11;
}
}
if (__label__ == 11){
	r4 = r3;
}
	if(r3 >r4) //_LBB655_16
{
	r3 = (r3 + -1)|0;
	r4 = r4 << 2;
	r5 = heap32[(r2+122)];
	r3 = r3 << 2;
	r4 = (r5 + r4)|0;
	r5 = (r5 + r3)|0;
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r4)];
	r5 = heap32[(r5)];
	heap32[(r4)] = r5;
	r4 = heap32[(r2+122)];
	r3 = (r4 + r3)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r6;
	r3 = heap32[(r2+120)];
	r3 = (r3 + -1)|0;
	heap32[(r2+120)] = r3;
}
	r4 = 0;
	r3 = r3 > r4;
	r3 = r3 & 1;
	heap32[(r2+63)] = r3;
	r0 = heap32[(r0+6)];
	r0 = r0 >> 2;
	r2 = heap32[(r0+120)];
_21: while(true){
	if(r2 >r4) //_LBB655_18
{
	r3 = heap32[(r0+122)];
	r5 = r4 << 2;
	r3 = (r3 + r5)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	if(r3 !=r1) //_LBB655_20
{
	r4 = (r4 + 1)|0;
continue _21;
}
else{
__label__ = 19;
break _21;
}
}
else{
__label__ = 18;
break _21;
}
}
if (__label__ == 18){
	r4 = r2;
}
	if(r2 >r4) //_LBB655_25
{
	r2 = (r2 + -1)|0;
	r1 = r4 << 2;
	r3 = heap32[(r0+122)];
	r2 = r2 << 2;
	r1 = (r3 + r1)|0;
	r3 = (r3 + r2)|0;
	r1 = r1 >> 2;
	r3 = r3 >> 2;
	r4 = heap32[(r1)];
	r3 = heap32[(r3)];
	heap32[(r1)] = r3;
	r1 = heap32[(r0+122)];
	r2 = (r1 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = r4;
	r2 = heap32[(r0+120)];
	r2 = (r2 + -1)|0;
	heap32[(r0+120)] = r2;
}
	r1 = 0;
	r1 = r2 > r1;
	r1 = r1 & 1;
	heap32[(r0+63)] = r1;
	return;
}

function _ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+48)];
	r3 = heap32[(r1+47)];
	r4 = heap32[(fp+1)];
	r5 = heap32[(fp+2)];
	if(r2 ==r3) //_LBB656_2
{
	r6 = 1;
	r7 = r3 << 1;
	r7 = r3 == 0 ? r6 : r7;
if(!(r2 >=r7)) //_LBB656_1
{
	if(r7 !=0) //_LBB656_5
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r8 = heap32[(r2)];
	r9 = r7 << 2;
	r8 = (r8 + 1)|0;
	r9 = r9 | 3;
	heap32[(r2)] = r8;
	r2 = (r9 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB656_7
{
	r8 = 0;
	r9 = (r2 + 4)|0;
	r8 = (r8 - r9)|0;
	r8 = r8 & 15;
	r8 = (r2 + r8)|0;
	r9 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r2;
	r2 = r9;
}
}
else{
	r2 = 0;
}
	r8 = (r0 + 196)|0;
	if(r3 <1) //_LBB656_10
{
	r9 = r8 >> 2;
	r10 = heap32[(r9)];
}
else{
	r9 = 0;
_12: while(true){
	r10 = r8 >> 2;
	r10 = heap32[(r10)];
	r11 = r9 << 2;
	r12 = (r10 + r11)|0;
	r12 = r12 >> 2;
	r11 = (r2 + r11)|0;
	r12 = heap32[(r12)];
	r9 = (r9 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r12;
if(!(r3 !=r9)) //_LBB656_11
{
break _12;
}
}
	r8 = (r0 + 196)|0;
}
	if(r10 !=0) //_LBB656_15
{
	r9 = heapU8[r0+200];
	if(r9 !=0) //_LBB656_17
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r9 = heap32[(r3)];
	r9 = (r9 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r3)] = r9;
	r3 = heap32[(r10+-1)];
	heap32[(g0)] = r3;
	free(i7);
	r3 = heap32[(r1+47)];
}
	r9 = r8 >> 2;
	heap32[(r9)] = 0;
}
	r8 = r8 >> 2;
	heap8[r0+200] = r6;
	heap32[(r8)] = r2;
	heap32[(r1+48)] = r7;
}
}
	r0 = r3 << 2;
	r2 = heap32[(r1+49)];
	r0 = (r2 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r4;
	r0 = heap32[(r1+47)];
	r0 = (r0 + 1)|0;
	heap32[(r1+47)] = r0;
if(!(r5 ==0)) //_LBB656_22
{
	r0 = r4 >> 2;
	r1 = heap32[(r0+5)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	_ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(i7);
	r0 = heap32[(r0+6)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	_ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(i7);
}
	return;
}

function _ZN23btDiscreteDynamicsWorld21updateActivationStateEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _2E_str1097;
	r1 = heap32[(fp)];
	heap32[(g0)] = r0;
	r0 = r1 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r1 = heap32[(r0+52)];
if(!(r1 <1)) //_LBB657_25
{
	f0 = heapFloat[(fp+1)];
	r1 = gDisableDeactivation;
	r1 = heapU8[r1];
	r2 = 0;
_3: while(true){
	r3 = heap32[(r0+54)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
_5: do {
if(!(r3 ==0)) //_LBB657_24
{
	r4 = r3 >> 2;
	r5 = heap32[(r4+54)];
if(!(r5 ==4)) //_LBB657_24
{
_8: do {
	if(r5 !=2) //_LBB657_6
{
	f1 = heapFloat[(r4+76)];
	f2 = heapFloat[(r4+77)];
	f3 = heapFloat[(r4+78)];
	f1 = f1*f1;
	f2 = f2*f2;
	f4 = heapFloat[(r4+116)];
	f1 = f1+f2;
	f2 = f3*f3;
	f1 = f1+f2;
	f2 = f4*f4;
	if(f1 >=f2) //_LBB657_9
{
__label__ = 8;
}
else{
	f1 = heapFloat[(r4+80)];
	f2 = heapFloat[(r4+81)];
	f3 = heapFloat[(r4+82)];
	f1 = f1*f1;
	f2 = f2*f2;
	f4 = heapFloat[(r4+117)];
	f1 = f1+f2;
	f2 = f3*f3;
	f1 = f1+f2;
	f2 = f4*f4;
	if(f1 >=f2) //_LBB657_9
{
__label__ = 8;
}
else{
	f1 = heapFloat[(r4+55)];
	f1 = f1+f0;
	heapFloat[(r4+55)] = f1;
__label__ = 10;
}
}
if (__label__ == 8){
	r6 = (r5 + -4)|0;
	heap32[(r4+55)] = 0;
if(!(uint(r6) <uint(2))) //_LBB657_11
{
	r5 = 0;
	heap32[(r4+54)] = 0;
break _8;
}
}
	if(r5 ==4) //_LBB657_24
{
break _5;
}
}
} while(0);
	r6 = r1 & 255;
_18: do {
if(!(r6 !=0)) //_LBB657_22
{
	r6 = (r5 + -2)|0;
if(!(uint(r6) <uint(2))) //_LBB657_15
{
	f1 = heapFloat[(r4+55)];
	f2 =                         2;
	if(f1 <=f2) //_LBB657_22
{
break _18;
}
}
	r3 = heapU8[r3+204];
	r3 = r3 & 3;
	if(r3 ==0) //_LBB657_18
{
	if(r5 ==2) //_LBB657_21
{
	heap32[(r4+76)] = 0;
	heap32[(r4+77)] = 0;
	heap32[(r4+78)] = 0;
	heap32[(r4+79)] = 0;
	heap32[(r4+80)] = 0;
	heap32[(r4+81)] = 0;
	heap32[(r4+82)] = 0;
	heap32[(r4+83)] = 0;
break _5;
}
else{
	if(r5 !=1) //_LBB657_24
{
break _5;
}
else{
	heap32[(r4+54)] = 3;
break _5;
}
}
}
else{
	r5 = (r5 + -4)|0;
	if(uint(r5) <uint(2)) //_LBB657_24
{
break _5;
}
else{
	heap32[(r4+54)] = 2;
break _5;
}
}
}
} while(0);
	r3 = (r5 + -4)|0;
if(!(uint(r3) <uint(2))) //_LBB657_24
{
	heap32[(r4+54)] = 1;
}
}
}
} while(0);
	r2 = (r2 + 1)|0;
	r3 = heap32[(r0+52)];
	if(r3 >r2) //_LBB657_2
{
continue _3;
}
else{
break _3;
}
}
}
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_35: do {
if(!(r3 !=0)) //_LBB657_31
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB657_28
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB657_31
{
break _35;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = _2E_str1198;
	r1 = heap32[(fp)];
	heap32[(g0)] = r0;
	r0 = r1 >> 2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r2 = heap32[(r0+24)];
	f0 = heapFloat[(fp+1)];
if(!(r2 ==0)) //_LBB658_2
{
	heap32[(g0)] = r1;
	heapFloat[(g0+1)] = f0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
	r2 = heap32[(r0)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+33)];
	heap32[(g0)] = r1;
	heapFloat[(g0+1)] = f0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	heapFloat[(r0+7)] = f0;
	heap32[(r0+8)] = 0;
	r2 = heap32[(r0)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	heap32[(r0+12)] = r_g0;
	r2 = heap32[(r0)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+10)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = heap32[(r0)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+35)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	heapFloat[(r0+29)] = f0;
	r2 = heap32[(r0)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+36)];
	r3 = (r1 + 104)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = heap32[(r0)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+34)];
	heap32[(g0)] = r1;
	heapFloat[(g0+1)] = f0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = _2E_str289;
	heap32[(g0)] = r2;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r2 = heap32[(r0+63)];
if(!(r2 <1)) //_LBB658_5
{
	r2 = 0;
_6: while(true){
	r3 = heap32[(r0+65)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	heapFloat[(g0+2)] = f0;
	r2 = (r2 + 1)|0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = heap32[(r0+63)];
	if(r3 >r2) //_LBB658_4
{
continue _6;
}
else{
break _6;
}
}
}
	r2 = _ZN15CProfileManager11CurrentNodeE;
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r4 = r3 >> 2;
	r5 = heap32[(r4+4)];
	r5 = (r5 + -1)|0;
	heap32[(r4+4)] = r5;
_9: do {
if(!(r5 !=0)) //_LBB658_11
{
	r5 = heap32[(r4+1)];
	if(r5 !=0) //_LBB658_8
{
	r3 = sp + -16;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 0;
	r5 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r3 = r3 >> 2;
	r6 = heap32[(fp+-4)];
	r7 = heap32[(r5)];
	r6 = (r6 - r7)|0;
	r3 = heap32[(r3+1)];
	r5 = heap32[(r5+1)];
	r3 = (r3 - r5)|0;
	r5 = (r6 * 1000000)|0;
	r3 = (r3 + r5)|0;
	r5 = heap32[(r4+3)];
	r3 = (r3 - r5)|0;
	f1 = uint(r3); //fuitos r3, f1
	f2 =                      1000;
	f3 = heapFloat[(r4+2)];
	f1 = f1/f2;
	f1 = f3+f1;
	heapFloat[(r4+2)] = f1;
	r3 = heap32[(r4+4)];
	if(r3 !=0) //_LBB658_11
{
break _9;
}
else{
	r3 = heap32[(r2)];
}
}
	r3 = r3 >> 2;
	r3 = heap32[(r3+5)];
	heap32[(r2)] = r3;
}
} while(0);
	heap32[(g0)] = r1;
	heapFloat[(g0+1)] = f0;
	_ZN23btDiscreteDynamicsWorld21updateActivationStateEf(i7);
	r0 = heap32[(r0+23)];
if(!(r0 ==0)) //_LBB658_13
{
	heap32[(g0)] = r1;
	heapFloat[(g0+1)] = f0;
	__FUNCTION_TABLE__[(r0)>>2](i7);
}
	r0 = heap32[(r2)];
	r1 = r0 >> 2;
	r3 = heap32[(r1+4)];
	r3 = (r3 + -1)|0;
	heap32[(r1+4)] = r3;
_19: do {
if(!(r3 !=0)) //_LBB658_19
{
	r3 = heap32[(r1+1)];
	if(r3 !=0) //_LBB658_16
{
	r0 = sp + -8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r0 = r0 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r0 = heap32[(r0+1)];
	r3 = heap32[(r3+1)];
	r0 = (r0 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r0 = (r0 + r3)|0;
	r3 = heap32[(r1+3)];
	r0 = (r0 - r3)|0;
	f0 = uint(r0); //fuitos r0, f0
	f1 =                      1000;
	f2 = heapFloat[(r1+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r1+2)] = f0;
	r0 = heap32[(r1+4)];
	if(r0 !=0) //_LBB658_19
{
break _19;
}
else{
	r0 = heap32[(r2)];
}
}
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
	heap32[(r2)] = r0;
}
} while(0);
	return;
}

function _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+51)];
	r3 = heap32[(fp)];
	r4 = r2 & 3;
if(!(r4 !=0)) //_LBB659_5
{
	r4 = heapU8[r0+496];
	r4 = r4 & 1;
if(!(r4 != 0)) //_LBB659_5
{
	f0 = heapFloat[(r1+84)];
	f1 =                         0;
if(!(f0 ==f1)) //_LBB659_4
{
	r4 = r3 >> 2;
	f1 =                         1;
	f0 = f1/f0;
	f1 = heapFloat[(r4+58)];
	f2 = heapFloat[(r4+57)];
	f3 = heapFloat[(r4+56)];
	f3 = f3*f0;
	f2 = f2*f0;
	heapFloat[(r1+89)] = f3;
	f0 = f1*f0;
	heapFloat[(r1+90)] = f2;
	heapFloat[(r1+91)] = f0;
	heap32[(r1+92)] = 0;
}
	r4 = r3 >> 2;
	heap32[(r1+93)] = heap32[(r4+56)];
	heap32[(r1+94)] = heap32[(r4+57)];
	heap32[(r1+95)] = heap32[(r4+58)];
	heap32[(r1+96)] = heap32[(r4+59)];
}
}
	r4 = heap32[(r1+48)];
if(!(r4 ==0)) //_LBB659_31
{
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	r2 = r2 & 1;
_10: do {
	if(r2 != 0) //_LBB659_28
{
	r2 = heap32[(r1+54)];
	r2 = (r2 + -4)|0;
	if(uint(r2) <uint(2)) //_LBB659_30
{
break _10;
}
else{
	heap32[(r1+54)] = 2;
}
}
else{
	r1 = r3 >> 2;
	r2 = heap32[(r1+53)];
	r6 = heap32[(r1+52)];
	if(r2 ==r6) //_LBB659_9
{
	r7 = 1;
	r8 = r6 << 1;
	r8 = r6 == 0 ? r7 : r8;
if(!(r2 >=r8)) //_LBB659_8
{
	if(r8 !=0) //_LBB659_12
{
	r2 = gNumAlignedAllocs;
	r2 = r2 >> 2;
	r9 = heap32[(r2)];
	r10 = r8 << 2;
	r9 = (r9 + 1)|0;
	r10 = r10 | 3;
	heap32[(r2)] = r9;
	r2 = (r10 + 16)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(r2 !=0) //_LBB659_14
{
	r9 = 0;
	r10 = (r2 + 4)|0;
	r9 = (r9 - r10)|0;
	r9 = r9 & 15;
	r9 = (r2 + r9)|0;
	r10 = (r9 + 4)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r2;
	r2 = r10;
}
}
else{
	r2 = 0;
}
	r9 = (r3 + 216)|0;
	if(r6 <1) //_LBB659_17
{
	r10 = r9 >> 2;
	r11 = heap32[(r10)];
}
else{
	r10 = 0;
_25: while(true){
	r11 = r9 >> 2;
	r11 = heap32[(r11)];
	r12 = r10 << 2;
	r13 = (r11 + r12)|0;
	r13 = r13 >> 2;
	r12 = (r2 + r12)|0;
	r13 = heap32[(r13)];
	r10 = (r10 + 1)|0;
	r12 = r12 >> 2;
	heap32[(r12)] = r13;
if(!(r6 !=r10)) //_LBB659_18
{
break _25;
}
}
	r9 = (r3 + 216)|0;
}
	if(r11 !=0) //_LBB659_22
{
	r10 = heapU8[r3+220];
	if(r10 !=0) //_LBB659_24
{
	r6 = gNumAlignedFree;
	r6 = r6 >> 2;
	r10 = heap32[(r6)];
	r10 = (r10 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r6)] = r10;
	r6 = heap32[(r11+-1)];
	heap32[(g0)] = r6;
	free(i7);
	r6 = heap32[(r1+52)];
}
	r10 = r9 >> 2;
	heap32[(r10)] = 0;
}
	r9 = r9 >> 2;
	heap8[r3+220] = r7;
	heap32[(r9)] = r2;
	heap32[(r1+53)] = r8;
}
}
	r2 = r6 << 2;
	r6 = heap32[(r1+54)];
	r2 = (r6 + r2)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = r0;
	r2 = heap32[(r1+52)];
	r2 = (r2 + 1)|0;
	heap32[(r1+52)] = r2;
}
} while(0);
	r1 = r3 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+8)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	return;
}

function _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+51)];
	r3 = heap32[(fp)];
	r4 = r2 & 3;
if(!(r4 !=0)) //_LBB660_5
{
	r4 = heapU8[r0+496];
	r4 = r4 & 1;
if(!(r4 != 0)) //_LBB660_5
{
	f0 = heapFloat[(r1+84)];
	f1 =                         0;
if(!(f0 ==f1)) //_LBB660_4
{
	r4 = r3 >> 2;
	f1 =                         1;
	f0 = f1/f0;
	f1 = heapFloat[(r4+58)];
	f2 = heapFloat[(r4+57)];
	f3 = heapFloat[(r4+56)];
	f3 = f3*f0;
	f2 = f2*f0;
	heapFloat[(r1+89)] = f3;
	f0 = f1*f0;
	heapFloat[(r1+90)] = f2;
	heapFloat[(r1+91)] = f0;
	heap32[(r1+92)] = 0;
}
	r4 = r3 >> 2;
	heap32[(r1+93)] = heap32[(r4+56)];
	heap32[(r1+94)] = heap32[(r4+57)];
	heap32[(r1+95)] = heap32[(r4+58)];
	heap32[(r1+96)] = heap32[(r4+59)];
}
}
	r4 = heap32[(r1+48)];
if(!(r4 ==0)) //_LBB660_32
{
	r4 = r2 & 1;
_10: do {
	if(r4 != 0) //_LBB660_28
{
	r4 = heap32[(r1+54)];
	r4 = (r4 + -4)|0;
	if(uint(r4) >uint(1)) //_LBB660_30
{
	heap32[(r1+54)] = 2;
}
else{
break _10;
}
}
else{
	r2 = r3 >> 2;
	r4 = heap32[(r2+53)];
	r5 = heap32[(r2+52)];
	if(r4 ==r5) //_LBB660_9
{
	r6 = 1;
	r7 = r5 << 1;
	r7 = r5 == 0 ? r6 : r7;
if(!(r4 >=r7)) //_LBB660_8
{
	if(r7 !=0) //_LBB660_12
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r8 = heap32[(r4)];
	r9 = r7 << 2;
	r8 = (r8 + 1)|0;
	r9 = r9 | 3;
	heap32[(r4)] = r8;
	r4 = (r9 + 16)|0;
	heap32[(g0)] = r4;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB660_14
{
	r8 = 0;
	r9 = (r4 + 4)|0;
	r8 = (r8 - r9)|0;
	r8 = r8 & 15;
	r8 = (r4 + r8)|0;
	r9 = (r8 + 4)|0;
	r8 = r8 >> 2;
	heap32[(r8)] = r4;
	r4 = r9;
}
}
else{
	r4 = 0;
}
	r8 = (r3 + 216)|0;
	if(r5 <1) //_LBB660_17
{
	r9 = r8 >> 2;
	r10 = heap32[(r9)];
}
else{
	r9 = 0;
_25: while(true){
	r10 = r8 >> 2;
	r10 = heap32[(r10)];
	r11 = r9 << 2;
	r12 = (r10 + r11)|0;
	r12 = r12 >> 2;
	r11 = (r4 + r11)|0;
	r12 = heap32[(r12)];
	r9 = (r9 + 1)|0;
	r11 = r11 >> 2;
	heap32[(r11)] = r12;
if(!(r5 !=r9)) //_LBB660_18
{
break _25;
}
}
	r8 = (r3 + 216)|0;
}
	if(r10 !=0) //_LBB660_22
{
	r9 = heapU8[r3+220];
	if(r9 !=0) //_LBB660_24
{
	r5 = gNumAlignedFree;
	r5 = r5 >> 2;
	r9 = heap32[(r5)];
	r9 = (r9 + 1)|0;
	r10 = r10 >> 2;
	heap32[(r5)] = r9;
	r5 = heap32[(r10+-1)];
	heap32[(g0)] = r5;
	free(i7);
	r5 = heap32[(r2+52)];
}
	r9 = r8 >> 2;
	heap32[(r9)] = 0;
}
	r8 = r8 >> 2;
	heap8[r3+220] = r6;
	heap32[(r8)] = r4;
	heap32[(r2+53)] = r7;
}
}
	r4 = r5 << 2;
	r5 = heap32[(r2+54)];
	r4 = (r5 + r4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r0;
	r4 = heap32[(r2+52)];
	r4 = (r4 + 1)|0;
	heap32[(r2+52)] = r4;
	r2 = heap32[(r1+51)];
}
} while(0);
	r1 = r3 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+8)];
	r4 = 2;
	r5 = 1;
	r2 = r2 & 3;
	r6 = -3;
	r7 = -1;
	r4 = r2 != 0 ? r4 : r5;
	r2 = r2 != 0 ? r6 : r7;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
	return;
}

function _ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	heap32[(r0+56)] = heap32[(r1)];
	heap32[(r0+57)] = heap32[(r1+1)];
	heap32[(r0+58)] = heap32[(r1+2)];
	heap32[(r0+59)] = heap32[(r1+3)];
	r2 = heap32[(r0+52)];
if(!(r2 <1)) //_LBB661_9
{
	r2 = 0;
_3: while(true){
	r3 = heap32[(r0+54)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = r3 >> 2;
	r5 = heap32[(r4+54)];
if(!(r5 ==2)) //_LBB661_8
{
if(!(r5 ==5)) //_LBB661_8
{
	r3 = heapU8[r3+496];
	r3 = r3 & 1;
if(!(r3 != 0)) //_LBB661_8
{
	f0 = heapFloat[(r4+84)];
	f1 =                         0;
if(!(f0 ==f1)) //_LBB661_7
{
	f1 =                         1;
	f0 = f1/f0;
	f1 = heapFloat[(r1+2)];
	f2 = heapFloat[(r1+1)];
	f3 = heapFloat[(r1)];
	f3 = f3*f0;
	f2 = f2*f0;
	heapFloat[(r4+89)] = f3;
	f0 = f1*f0;
	heapFloat[(r4+90)] = f2;
	heapFloat[(r4+91)] = f0;
	heap32[(r4+92)] = 0;
}
	heap32[(r4+93)] = heap32[(r1)];
	heap32[(r4+94)] = heap32[(r1+1)];
	heap32[(r4+95)] = heap32[(r1+2)];
	heap32[(r4+96)] = heap32[(r1+3)];
}
}
}
	r2 = (r2 + 1)|0;
	r3 = heap32[(r0+52)];
	if(r3 >r2) //_LBB661_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r3 = heap32[(r1+52)];
	r4 = 0;
_1: while(true){
	if(r3 >r4) //_LBB662_1
{
	r5 = heap32[(r1+54)];
	r6 = r4 << 2;
	r5 = (r5 + r6)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	if(r5 !=r2) //_LBB662_3
{
	r4 = (r4 + 1)|0;
continue _1;
}
else{
__label__ = 5;
break _1;
}
}
else{
__label__ = 4;
break _1;
}
}
if (__label__ == 4){
	r4 = r3;
}
if(!(r3 <=r4)) //_LBB662_8
{
	r3 = (r3 + -1)|0;
	r4 = r4 << 2;
	r5 = heap32[(r1+54)];
	r3 = r3 << 2;
	r4 = (r5 + r4)|0;
	r5 = (r5 + r3)|0;
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r4)];
	r5 = heap32[(r5)];
	heap32[(r4)] = r5;
	r4 = heap32[(r1+54)];
	r3 = (r4 + r3)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = r6;
	r3 = heap32[(r1+52)];
	r3 = (r3 + -1)|0;
	heap32[(r1+52)] = r3;
}
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i7);
	return;
}

function _ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = heapU8[r0+232];
	r2 = r2 & 2;
if(!(r2 ==0)) //_LBB663_3
{
if(!(r0 ==0)) //_LBB663_3
{
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+21)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}
}
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i7);
	return;
}

function _ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r3;
	_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(i7);
	return;
}

function _ZN23btDiscreteDynamicsWorld14stepSimulationEfif(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	_ZN15CProfileManager5ResetEv(i7);
	r0 = _2E_str1299;
	r1 = heap32[(fp+2)];
	heap32[(g0)] = r0;
	r0 = heap32[(fp)];
	f0 = heapFloat[(fp+1)];
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	if(r1 ==0) //_LBB665_4
{
	r1 = r0 >> 2;
	f1 =                         0;
	heapFloat[(r1+60)] = f0;
	if(f0 <f1) //_LBB665_6
{
	f1 = -f0;
}
else{
	f1 = f0;
}
	f2 =   1.1920928955078125e-007;
	if(f1 >=f2) //_LBB665_9
{
	r1 = 1;
	f1 = f0;
	r3 = r1;
}
else{
	r1 = 0;
	f1 = f0;
	r3 = r1;
}
}
else{
	f1 = heapFloat[(fp+3)];
	r2 = r0 >> 2;
	f2 = heapFloat[(r2+60)];
	f0 = f2+f0;
	heapFloat[(r2+60)] = f0;
	if(f0 >=f1) //_LBB665_3
{
	f2 = f0/f1;
	r3 = f2|0;
	f2 = r3; //fitos r3, f2
	f2 = f2*f1;
	f0 = f0-f2;
	heapFloat[(r2+60)] = f0;
}
else{
	r3 = 0;
}
}
	r2 = r0 >> 2;
	r4 = heap32[(r2)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
if(!(r4 ==0)) //_LBB665_12
{
	r4 = heap32[(r2)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r5 = r_g0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r4 = r_g0 >>> 4;
	r5 = gDisableDeactivation;
	r4 = r4 & 1;
	heap8[r5] = r4;
}
	if(r3 ==0) //_LBB665_16
{
	r1 = heap32[(r2)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+19)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
}
else{
	r4 = heap32[(r2)];
	r4 = r4 >> 2;
	r5 = r3 > r1 ? r1 : r3;
	r4 = heap32[(r4+38)];
	f0 = r5; //fitos r5, f0
	f0 = f0*f1;
	heap32[(g0)] = r0;
	heapFloat[(g0+1)] = f0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = heap32[(r2)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+40)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
if(!(r5 <1)) //_LBB665_17
{
	r4 = r3 ^ -1;
	r1 = r1 ^ -1;
	r1 = r4 > r1 ? r4 : r1;
	r1 = r1 ^ -1;
_22: while(true){
	r4 = heap32[(r2)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+37)];
	heap32[(g0)] = r0;
	heapFloat[(g0+1)] = f1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = heap32[(r2)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+19)];
	r1 = (r1 + -1)|0;
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	if(r1 ==0) //_LBB665_17
{
break _22;
}
else{
continue _22;
}
}
}
}
	r1 = heap32[(r2)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+28)];
	heap32[(g0)] = r0;
	r0 = _ZN15CProfileManager12FrameCounterE;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = _ZN15CProfileManager11CurrentNodeE;
	r1 = (r1 + 1)|0;
	r2 = r2 >> 2;
	heap32[(r0)] = r1;
	r0 = heap32[(r2)];
	r1 = r0 >> 2;
	r4 = heap32[(r1+4)];
	r4 = (r4 + -1)|0;
	heap32[(r1+4)] = r4;
_25: do {
if(!(r4 !=0)) //_LBB665_23
{
	r4 = heap32[(r1+1)];
	if(r4 !=0) //_LBB665_20
{
	r0 = sp + -8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	r4 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r0 = r0 >> 2;
	r5 = heap32[(fp+-2)];
	r6 = heap32[(r4)];
	r5 = (r5 - r6)|0;
	r0 = heap32[(r0+1)];
	r4 = heap32[(r4+1)];
	r0 = (r0 - r4)|0;
	r4 = (r5 * 1000000)|0;
	r0 = (r0 + r4)|0;
	r4 = heap32[(r1+3)];
	r0 = (r0 - r4)|0;
	f0 = uint(r0); //fuitos r0, f0
	f1 =                      1000;
	f2 = heapFloat[(r1+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r1+2)] = f0;
	r0 = heap32[(r1+4)];
	if(r0 !=0) //_LBB665_23
{
break _25;
}
else{
	r0 = heap32[(r2)];
}
}
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
	heap32[(r2)] = r0;
}
} while(0);
	r_g0 = r3;
	return;
}

function _ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
var __label__ = 0;
	i7 = sp + -96;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	if(r0 !=0) //_LBB666_2
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+118)];
if(!(r2 ==0)) //_LBB666_4
{
	r2 = heapU8[r0+204];
	r2 = r2 & 3;
	if(r2 ==0) //_LBB666_5
{
	r2 = heap32[(fp)];
	r2 = r2 >> 2;
	f0 = heapFloat[(r2+60)];
	f1 = heapFloat[(r1+60)];
	f2 = heapFloat[(r1+33)];
	f3 = heapFloat[(r1+34)];
	f4 = heapFloat[(r1+35)];
	r2 = sp + -64;
	r3 = (r0 + 68)|0;
	r0 = (r0 + 148)|0;
	f0 = f0*f1;
	heap32[(g0)] = r3;
	heapFloat[(g0+1)] = f2;
	heapFloat[(g0+2)] = f3;
	heapFloat[(g0+3)] = f4;
	heap32[(g0+4)] = r0;
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = r2;
	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
	r0 = heap32[(r1+118)];
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	return;
}
}
	return;
}
else{
	r0 = _2E_str13100;
	r1 = _2E_str1461;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 184;
	_assert(i7);
}
}

function _ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _2E_str1562;
	heap32[(g0)] = r0;
	r0 = heap32[(fp)];
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r1 = heapU8[r0+246];
_1: do {
	if(r1 !=0) //_LBB667_2
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+2)];
if(!(r2 <1)) //_LBB667_13
{
	r2 = 0;
_4: while(true){
	r3 = heap32[(r1+4)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = heapU8[r3+232];
	r4 = r4 & 2;
if(!(r4 ==0)) //_LBB667_7
{
if(!(r3 ==0)) //_LBB667_7
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	_ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(i7);
}
}
	r2 = (r2 + 1)|0;
	r3 = heap32[(r1+2)];
	if(r3 >r2) //_LBB667_4
{
continue _4;
}
else{
break _1;
}
}
}
}
else{
	r1 = r0 >> 2;
	r2 = heap32[(r1+52)];
	if(r2 >0) //_LBB667_8
{
	r2 = 0;
_12: while(true){
	r3 = heap32[(r1+54)];
	r4 = r2 << 2;
	r3 = (r3 + r4)|0;
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r4 = r3 >> 2;
	r4 = heap32[(r4+54)];
if(!(r4 ==2)) //_LBB667_12
{
if(!(r4 ==5)) //_LBB667_12
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	_ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(i7);
}
}
	r2 = (r2 + 1)|0;
	r3 = heap32[(r1+52)];
	if(r3 >r2) //_LBB667_9
{
continue _12;
}
else{
break _1;
}
}
}
}
} while(0);
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_19: do {
if(!(r3 !=0)) //_LBB667_19
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB667_16
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB667_19
{
break _19;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZN23btDiscreteDynamicsWorld12applyGravityEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+52)];
if(!(r1 <1)) //_LBB668_7
{
	r1 = 0;
_3: while(true){
	r2 = heap32[(r0+54)];
	r3 = r1 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r3 = r2 >> 2;
	r4 = heap32[(r3+54)];
if(!(r4 ==2)) //_LBB668_6
{
if(!(r4 ==5)) //_LBB668_6
{
	r2 = heapU8[r2+204];
	r2 = r2 & 3;
if(!(r2 !=0)) //_LBB668_6
{
	f0 = heapFloat[(r3+89)];
	f1 = heapFloat[(r3+85)];
	f0 = f0*f1;
	f1 = heapFloat[(r3+101)];
	f2 = heapFloat[(r3+91)];
	f3 = heapFloat[(r3+87)];
	f4 = heapFloat[(r3+90)];
	f5 = heapFloat[(r3+86)];
	f0 = f1+f0;
	heapFloat[(r3+101)] = f0;
	f0 = f4*f5;
	f1 = heapFloat[(r3+102)];
	f0 = f1+f0;
	heapFloat[(r3+102)] = f0;
	f0 = f2*f3;
	f1 = heapFloat[(r3+103)];
	f0 = f1+f0;
	heapFloat[(r3+103)] = f0;
}
}
}
	r1 = (r1 + 1)|0;
	r2 = heap32[(r0+52)];
	if(r2 >r1) //_LBB668_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZN23btDiscreteDynamicsWorld14debugDrawWorldEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
	var f20;
	var f21;
	var f22;
	var f23;
	var f24;
	var f25;
	var f26;
	var f27;
	var f28;
	var f29;
	var f30;
var __label__ = 0;
	i7 = sp + -824;var g0 = i7>>2; // save stack
	r0 = _2E_str16101;
	heap32[(g0)] = r0;
	_ZN15CProfileManager13Start_ProfileEPKc(i7);
	r0 = heap32[(fp)];
	heap32[(g0)] = r0;
	_ZN16btCollisionWorld14debugDrawWorldEv(i7);
	r1 = r0 >> 2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
if(!(r2 ==0)) //_LBB669_53
{
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r3 = r_g0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r_g0 & 6144;
if(!(r2 ==0)) //_LBB669_53
{
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+24)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r3 = (r2 + -1)|0;
if(!(r3 <0)) //_LBB669_53
{
	r3 = sp + -296;
	r4 = sp + -392;
	r5 = (r3 + 48)|0;
	r6 = (r4 + 48)|0;
	r2 = (r2 + -1)|0;
_5: while(true){
	r7 = r2;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+25)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r9 = r_g0 >> 2;
	r9 = heap32[(r9)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r8 = r_g0;
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r10 = r_g0 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r10)>>2](i7);
	r9 = r_g0;
	r10 = r2 >> 2;
	f0 = heapFloat[(r10+8)];
	heapFloat[(fp+-191)] = f0;
	f1 =                         0;
	heapFloat[(fp+-192)] = f1;
_7: do {
if(!(f0 <=f1)) //_LBB669_52
{
	r8 = r8 >>> 11;
	r9 = r9 >>> 12;
	r8 = r8 & 1;
	r9 = r9 & 1;
	r10 = r2 >> 2;
	r11 = heap32[(r10+1)];
	if(r11 >4) //_LBB669_8
{
	if(r11 ==5) //_LBB669_20
{
	r11 = heap32[(r10+5)];
	r11 = r11 >> 2;
	f0 = heapFloat[(r11+1)];
	f1 = heapFloat[(r10+72)];
	f2 = heapFloat[(r11+2)];
	f3 = heapFloat[(r10+76)];
	f4 = heapFloat[(r10+73)];
	f5 = heapFloat[(r10+77)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r11+3)];
	f9 = heapFloat[(r10+80)];
	f10 = heapFloat[(r11+9)];
	f11 = heapFloat[(r10+84)];
	f12 = heapFloat[(r11+5)];
	f13 = heapFloat[(r10+74)];
	f14 = heapFloat[(r11+10)];
	f15 = heapFloat[(r10+85)];
	f16 = heapFloat[(r11+6)];
	f17 = heapFloat[(r10+78)];
	f18 = heapFloat[(r11+11)];
	f19 = heapFloat[(r10+86)];
	f20 = heapFloat[(r11+7)];
	f21 = heapFloat[(r10+82)];
	f22 = heapFloat[(r10+81)];
	f23 = f4*f0;
	f24 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	f25 = heapFloat[(r11+15)];
	f26 = heapFloat[(r11+14)];
	f27 = heapFloat[(r11+13)];
	f28 = f13*f0;
	f29 = f17*f2;
	f23 = f23+f24;
	f24 = f22*f8;
	f6 = f6+f7;
	r11 = r4 >> 2;
	f7 = f28+f29;
	f28 = f21*f8;
	f23 = f23+f24;
	heapFloat[(fp+-98)] = f6;
	f6 = f1*f12;
	f24 = f3*f16;
	f7 = f7+f28;
	heapFloat[(r11+1)] = f23;
	heapFloat[(r11+2)] = f7;
	f7 = f4*f12;
	f23 = f5*f16;
	f6 = f6+f24;
	f24 = f9*f20;
	f28 = f13*f12;
	f29 = f17*f16;
	f7 = f7+f23;
	f23 = f22*f20;
	f6 = f6+f24;
	heap32[(r11+3)] = 0;
	f24 = f28+f29;
	f28 = f21*f20;
	f7 = f7+f23;
	heapFloat[(r11+4)] = f6;
	f1 = f1*f10;
	f3 = f3*f14;
	f6 = f24+f28;
	heapFloat[(r11+5)] = f7;
	heapFloat[(r11+6)] = f6;
	f4 = f4*f10;
	f5 = f5*f14;
	f1 = f1+f3;
	f3 = f9*f18;
	f6 = f13*f10;
	f7 = f17*f14;
	f4 = f4+f5;
	f5 = f22*f18;
	f1 = f1+f3;
	heap32[(r11+7)] = 0;
	f0 = f0*f11;
	f2 = f2*f15;
	f3 = f6+f7;
	f6 = f21*f18;
	f4 = f4+f5;
	heapFloat[(r11+8)] = f1;
	f1 = f12*f11;
	f5 = f16*f15;
	f0 = f0+f2;
	f2 = f8*f19;
	f3 = f3+f6;
	heapFloat[(r11+9)] = f4;
	f0 = f0+f2;
	heapFloat[(r11+10)] = f3;
	f2 = f10*f11;
	f3 = f14*f15;
	f1 = f1+f5;
	f4 = f20*f19;
	f1 = f1+f4;
	f2 = f2+f3;
	f3 = f18*f19;
	f0 = f0+f27;
	heap32[(r11+11)] = 0;
	f2 = f2+f3;
	f1 = f1+f26;
	heapFloat[(r11+12)] = f0;
	f0 = f2+f25;
	heapFloat[(r11+13)] = f1;
	heapFloat[(r11+14)] = f0;
	heap32[(r11+15)] = 0;
if(!(r8 ==0)) //_LBB669_22
{
	r12 = heap32[(r1)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	r13 = r_g0 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r4;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r13)>>2](i7);
}
	r12 = heap32[(r10+6)];
	r12 = r12 >> 2;
	f0 = heapFloat[(r12+1)];
	f1 = heapFloat[(r10+88)];
	f2 = heapFloat[(r12+2)];
	f3 = heapFloat[(r10+92)];
	f4 = heapFloat[(r10+89)];
	f5 = heapFloat[(r10+93)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r12+3)];
	f9 = heapFloat[(r10+96)];
	f10 = heapFloat[(r12+9)];
	f11 = heapFloat[(r10+100)];
	f12 = heapFloat[(r12+5)];
	f13 = heapFloat[(r10+90)];
	f14 = heapFloat[(r12+10)];
	f15 = heapFloat[(r10+101)];
	f16 = heapFloat[(r12+6)];
	f17 = heapFloat[(r10+94)];
	f18 = heapFloat[(r12+11)];
	f19 = heapFloat[(r10+102)];
	f20 = heapFloat[(r12+7)];
	f21 = heapFloat[(r10+98)];
	f22 = heapFloat[(r10+97)];
	f23 = f4*f0;
	f24 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	f25 = heapFloat[(r12+15)];
	f26 = heapFloat[(r12+14)];
	f27 = heapFloat[(r12+13)];
	f28 = f13*f0;
	f29 = f17*f2;
	f23 = f23+f24;
	f24 = f22*f8;
	f6 = f6+f7;
	f7 = f28+f29;
	f28 = f21*f8;
	f23 = f23+f24;
	heapFloat[(fp+-98)] = f6;
	f6 = f1*f12;
	f24 = f3*f16;
	f7 = f7+f28;
	heapFloat[(r11+1)] = f23;
	heapFloat[(r11+2)] = f7;
	f7 = f4*f12;
	f23 = f5*f16;
	f6 = f6+f24;
	f24 = f9*f20;
	f28 = f13*f12;
	f29 = f17*f16;
	f7 = f7+f23;
	f23 = f22*f20;
	f6 = f6+f24;
	heap32[(r11+3)] = 0;
	f24 = f28+f29;
	f28 = f21*f20;
	f7 = f7+f23;
	heapFloat[(r11+4)] = f6;
	f1 = f1*f10;
	f3 = f3*f14;
	f6 = f24+f28;
	heapFloat[(r11+5)] = f7;
	heapFloat[(r11+6)] = f6;
	f4 = f4*f10;
	f5 = f5*f14;
	f1 = f1+f3;
	f3 = f9*f18;
	f6 = f13*f10;
	f7 = f17*f14;
	f4 = f4+f5;
	f5 = f22*f18;
	f1 = f1+f3;
	heap32[(r11+7)] = 0;
	f0 = f0*f11;
	f2 = f2*f15;
	f3 = f6+f7;
	f6 = f21*f18;
	f4 = f4+f5;
	heapFloat[(r11+8)] = f1;
	f1 = f12*f11;
	f5 = f16*f15;
	f0 = f0+f2;
	f2 = f8*f19;
	f3 = f3+f6;
	heapFloat[(r11+9)] = f4;
	f0 = f0+f2;
	heapFloat[(r11+10)] = f3;
	f2 = f10*f11;
	f3 = f14*f15;
	f1 = f1+f5;
	f4 = f20*f19;
	f1 = f1+f4;
	f2 = f2+f3;
	f3 = f18*f19;
	f0 = f0+f27;
	heap32[(r11+11)] = 0;
	f2 = f2+f3;
	f1 = f1+f26;
	heapFloat[(r11+12)] = f0;
	f0 = f2+f25;
	heapFloat[(r11+13)] = f1;
	heapFloat[(r11+14)] = f0;
	heap32[(r11+15)] = 0;
if(!(r8 ==0)) //_LBB669_24
{
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r12 = r_g0 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r4;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r12)>>2](i7);
}
	if(r9 ==0) //_LBB669_52
{
break _7;
}
else{
	r8 = sp + -408;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 1086506843;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+3)] = f0;
	_ZNK21btConeTwistConstraint16GetPointForAngleEff(i7);
	r9 = r8 >> 2;
	f0 = heapFloat[(fp+-102)];
	f1 = heapFloat[(fp+-98)];
	f2 = heapFloat[(r9+1)];
	f3 = heapFloat[(r11+1)];
	f4 = heapFloat[(r11+4)];
	f5 = heapFloat[(r11+5)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r9+2)];
	f7 = heapFloat[(r11+2)];
	f8 = heapFloat[(r11+8)];
	f9 = heapFloat[(r11+9)];
	f10 = heapFloat[(r11+6)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r11+10)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r11+12)];
	f8 = heapFloat[(r11+14)];
	f9 = heapFloat[(r11+13)];
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f4+f9;
	heapFloat[(fp+-102)] = f1;
	f0 = f0+f8;
	heapFloat[(r9+1)] = f2;
	r12 = 0;
	heapFloat[(r9+2)] = f0;
	heap32[(r9+3)] = 0;
_20: while(true){
	f0 = r12; //fitos r12, f0
	f1 =        6.2831850051879883;
	f0 = f0*f1;
	f1 =                        32;
	r13 = sp + -472;
	f0 = f0/f1;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r2;
	heapFloat[(g0+2)] = f0;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+3)] = f0;
	_ZNK21btConeTwistConstraint16GetPointForAngleEff(i7);
	r14 = r13 >> 2;
	f0 = heapFloat[(fp+-118)];
	f1 = heapFloat[(fp+-98)];
	f2 = heapFloat[(r14+1)];
	f3 = heapFloat[(r11+1)];
	f4 = heapFloat[(r11+4)];
	f5 = heapFloat[(r11+5)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r14+2)];
	f7 = heapFloat[(r11+2)];
	f8 = heapFloat[(r11+8)];
	f9 = heapFloat[(r11+9)];
	f10 = heapFloat[(r11+6)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r11+10)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r11+12)];
	f8 = heapFloat[(r11+14)];
	f9 = heapFloat[(r11+13)];
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f4+f9;
	heapFloat[(fp+-118)] = f1;
	f0 = f0+f8;
	heapFloat[(r14+1)] = f2;
	heapFloat[(r14+2)] = f0;
	heap32[(r14+3)] = 0;
	r15 = heap32[(r1)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r15)>>2](i7);
	r16 = r_g0 >> 2;
	r16 = heap32[(r16)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+2)];
	r17 = sp + -152;
	r18 = r17 >> 2;
	heap32[(fp+-38)] = 0;
	heap32[(r18+1)] = 0;
	heap32[(r18+2)] = 0;
	heap32[(r18+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r17;
	r15 = r12 & 3;
	__FUNCTION_TABLE__[(r16)>>2](i7);
if(!(r15 !=0)) //_LBB669_28
{
	r15 = heap32[(r1)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r15)>>2](i7);
	r16 = r_g0 >> 2;
	r16 = heap32[(r16)];
	r16 = r16 >> 2;
	r16 = heap32[(r16+2)];
	r17 = sp + -136;
	r18 = r17 >> 2;
	heap32[(fp+-34)] = 0;
	heap32[(r18+1)] = 0;
	heap32[(r18+2)] = 0;
	heap32[(r18+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r17;
	__FUNCTION_TABLE__[(r16)>>2](i7);
}
	heap32[(fp+-102)] = heap32[(fp+-118)];
	heap32[(r9+1)] = heap32[(r14+1)];
	r12 = (r12 + 1)|0;
	heap32[(r9+2)] = heap32[(r14+2)];
	heap32[(r9+3)] = heap32[(r14+3)];
if(!(r12 !=32)) //_LBB669_26
{
break _20;
}
}
	r2 = heap32[(r10+6)];
	f0 = heapFloat[(r10+110)];
	heapFloat[(fp+-193)] = f0;
	f0 = heapFloat[(r10+125)];
	heapFloat[(fp+-194)] = f0;
	r2 = r2 >> 2;
	f0 = heapFloat[(r2+84)];
	f1 = heapFloat[(fp+-192)];
	if(f0 <=f1) //_LBB669_31
{
	r2 = heap32[(r10+5)];
	r2 = r2 >> 2;
	f0 = heapFloat[(r10+84)];
	f1 = heapFloat[(r2+9)];
	f2 = heapFloat[(r2+5)];
	f3 = heapFloat[(r2+1)];
	f4 = heapFloat[(r10+85)];
	f5 = heapFloat[(r2+10)];
	f6 = heapFloat[(r2+6)];
	f8 = heapFloat[(r2+2)];
	f12 = heapFloat[(r10+74)];
	f13 = heapFloat[(r10+78)];
	f14 = heapFloat[(r10+73)];
	f15 = heapFloat[(r10+77)];
	f7 = heapFloat[(r10+72)];
	f9 = heapFloat[(r10+76)];
	f10 = f1*f0;
	f11 = f5*f4;
	f16 = f2*f0;
	f17 = f6*f4;
	f0 = f3*f0;
	f4 = f8*f4;
	f18 = heapFloat[(r10+86)];
	f19 = heapFloat[(r2+11)];
	f20 = heapFloat[(r2+7)];
	f21 = heapFloat[(r2+3)];
	f22 = heapFloat[(r10+82)];
	f23 = heapFloat[(r10+81)];
	f24 = heapFloat[(r10+80)];
	f10 = f10+f11;
	f11 = f19*f18;
	f16 = f16+f17;
	f17 = f20*f18;
	f0 = f0+f4;
	heapFloat[(fp+-192)] = f0;
	f4 = f21*f18;
	f18 = f12*f1;
	f25 = f13*f5;
	f26 = f14*f1;
	f27 = f15*f5;
	f1 = f7*f1;
	f5 = f9*f5;
	f28 = f12*f2;
	f29 = f13*f6;
	f30 = f14*f2;
	f0 = f15*f6;
	f2 = f7*f2;
	f6 = f9*f6;
	f12 = f12*f3;
	f13 = f13*f8;
	f14 = f14*f3;
	f15 = f15*f8;
	f3 = f7*f3;
	f8 = f9*f8;
	f7 = f10+f11;
	f9 = heapFloat[(r2+15)];
	f10 = f16+f17;
	f11 = heapFloat[(r2+14)];
	f16 = heapFloat[(fp+-192)];
	f4 = f16+f4;
	f16 = heapFloat[(r2+13)];
	f17 = f18+f25;
	f18 = f22*f19;
	f25 = f26+f27;
	f26 = f23*f19;
	f1 = f1+f5;
	f5 = f24*f19;
	f19 = f28+f29;
	f27 = f22*f20;
	f0 = f30+f0;
	f28 = f23*f20;
	f2 = f2+f6;
	f6 = f24*f20;
	f20 = f12+f13;
	f22 = f22*f21;
	f29 = f14+f15;
	f23 = f23*f21;
	f3 = f3+f8;
	f21 = f24*f21;
	f12 = f7+f9;
	f13 = f10+f11;
	f4 = f4+f16;
	f14 = f17+f18;
	f15 = f25+f26;
	f1 = f1+f5;
	f5 = f19+f27;
	f0 = f0+f28;
	f2 = f2+f6;
	f6 = f20+f22;
	f8 = f29+f23;
	f3 = f3+f21;
}
else{
	f0 = heapFloat[(r10+100)];
	f1 = heapFloat[(r2+9)];
	f2 = heapFloat[(r2+5)];
	f3 = heapFloat[(r2+1)];
	f4 = heapFloat[(r10+101)];
	f5 = heapFloat[(r2+10)];
	f6 = heapFloat[(r2+6)];
	f7 = heapFloat[(r2+2)];
	f8 = heapFloat[(r10+90)];
	f9 = heapFloat[(r10+94)];
	f10 = heapFloat[(r10+89)];
	f11 = heapFloat[(r10+93)];
	f12 = heapFloat[(r10+88)];
	f13 = heapFloat[(r10+92)];
	f14 = f1*f0;
	f15 = f5*f4;
	f16 = f2*f0;
	f17 = f6*f4;
	f0 = f3*f0;
	f4 = f7*f4;
	f18 = heapFloat[(r10+102)];
	f19 = heapFloat[(r2+11)];
	f20 = heapFloat[(r2+7)];
	f21 = heapFloat[(r2+3)];
	f22 = heapFloat[(r10+98)];
	f23 = heapFloat[(r10+97)];
	f24 = heapFloat[(r10+96)];
	f14 = f14+f15;
	f15 = f19*f18;
	f16 = f16+f17;
	f17 = f20*f18;
	f0 = f0+f4;
	heapFloat[(fp+-192)] = f0;
	f4 = f21*f18;
	f18 = f8*f1;
	f25 = f9*f5;
	f26 = f10*f1;
	f27 = f11*f5;
	f1 = f12*f1;
	f5 = f13*f5;
	f28 = f8*f2;
	f29 = f9*f6;
	f30 = f10*f2;
	f0 = f11*f6;
	f2 = f12*f2;
	f6 = f13*f6;
	f8 = f8*f3;
	f9 = f9*f7;
	f10 = f10*f3;
	f11 = f11*f7;
	f3 = f12*f3;
	f7 = f13*f7;
	f12 = f14+f15;
	f13 = heapFloat[(r2+15)];
	f14 = f16+f17;
	f15 = heapFloat[(r2+14)];
	f16 = heapFloat[(fp+-192)];
	f4 = f16+f4;
	f16 = heapFloat[(r2+13)];
	f17 = f18+f25;
	f18 = f22*f19;
	f25 = f26+f27;
	f26 = f23*f19;
	f1 = f1+f5;
	f5 = f24*f19;
	f19 = f28+f29;
	f27 = f22*f20;
	f0 = f30+f0;
	f28 = f23*f20;
	f2 = f2+f6;
	f6 = f24*f20;
	f8 = f8+f9;
	f9 = f22*f21;
	f10 = f10+f11;
	f11 = f23*f21;
	f3 = f3+f7;
	f7 = f24*f21;
	f12 = f12+f13;
	f13 = f14+f15;
	f4 = f4+f16;
	f14 = f17+f18;
	f15 = f25+f26;
	f1 = f1+f5;
	f5 = f19+f27;
	f0 = f0+f28;
	f2 = f2+f6;
	f6 = f8+f9;
	f8 = f10+f11;
	f3 = f3+f7;
}
	heapFloat[(fp+-98)] = f3;
	heapFloat[(r11+1)] = f8;
	heapFloat[(r11+2)] = f6;
	heap32[(r11+3)] = 0;
	heapFloat[(r11+4)] = f2;
	heapFloat[(r11+5)] = f0;
	heapFloat[(r11+6)] = f5;
	heap32[(r11+7)] = 0;
	heapFloat[(r11+8)] = f1;
	heapFloat[(r11+9)] = f15;
	heapFloat[(r11+10)] = f14;
	heap32[(r11+11)] = 0;
	heapFloat[(r11+12)] = f4;
	heapFloat[(r11+13)] = f13;
	heapFloat[(r11+14)] = f12;
	r2 = sp + -424;
	heap32[(r11+15)] = 0;
	r8 = r2 >> 2;
	heapFloat[(fp+-106)] = f4;
	heapFloat[(r8+1)] = f13;
	heapFloat[(r8+2)] = f12;
	r9 = sp + -440;
	heap32[(r8+3)] = 0;
	r8 = r9 >> 2;
	heapFloat[(fp+-110)] = f3;
	heapFloat[(r8+1)] = f2;
	heapFloat[(r8+2)] = f1;
	r10 = sp + -456;
	heap32[(r8+3)] = 0;
	r8 = r10 >> 2;
	heapFloat[(fp+-114)] = f8;
	heapFloat[(r8+1)] = f0;
	heapFloat[(r8+2)] = f15;
	heap32[(r8+3)] = 0;
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r11 = r_g0 >> 2;
	r11 = heap32[(r11)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+15)];
	r12 = sp + -120;
	r13 = r12 >> 2;
	heap32[(fp+-30)] = 0;
	heap32[(r13+1)] = 0;
	heap32[(r13+2)] = 0;
	heap32[(r13+3)] = 0;
	f0 = heapFloat[(fp+-194)];
	f1 = -f0;
	f2 = heapFloat[(fp+-193)];
	f1 = f1-f2;
	f0 = f2-f0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r10;
	f2 = heapFloat[(fp+-191)];
	heapFloat[(g0+4)] = f2;
	heapFloat[(g0+5)] = f2;
	heapFloat[(g0+6)] = f1;
	heapFloat[(g0+7)] = f0;
	heap32[(g0+8)] = r12;
	heap32[(g0+9)] = 1;
	heap32[(g0+10)] = 1092616192;
	__FUNCTION_TABLE__[(r11)>>2](i7);
}
}
else{
	if(r11 ==6) //_LBB669_33
{
	r11 = sp + -536;
	r12 = r11 >> 2;
	heap32[(fp+-134)] = heap32[(r10+263)];
	heap32[(r12+1)] = heap32[(r10+264)];
	heap32[(r12+2)] = heap32[(r10+265)];
	heap32[(r12+3)] = heap32[(r10+266)];
	heap32[(r12+4)] = heap32[(r10+267)];
	heap32[(r12+5)] = heap32[(r10+268)];
	heap32[(r12+6)] = heap32[(r10+269)];
	heap32[(r12+7)] = heap32[(r10+270)];
	heap32[(r12+8)] = heap32[(r10+271)];
	heap32[(r12+9)] = heap32[(r10+272)];
	heap32[(r12+10)] = heap32[(r10+273)];
	heap32[(r12+11)] = heap32[(r10+274)];
	heap32[(r12+12)] = heap32[(r10+275)];
	heap32[(r12+13)] = heap32[(r10+276)];
	heap32[(r12+14)] = heap32[(r10+277)];
	heap32[(r12+15)] = heap32[(r10+278)];
if(!(r8 ==0)) //_LBB669_35
{
	r13 = heap32[(r1)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r14 = r_g0 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r11;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r14)>>2](i7);
}
	heap32[(fp+-134)] = heap32[(r10+279)];
	heap32[(r12+1)] = heap32[(r10+280)];
	heap32[(r12+2)] = heap32[(r10+281)];
	heap32[(r12+3)] = heap32[(r10+282)];
	heap32[(r12+4)] = heap32[(r10+283)];
	heap32[(r12+5)] = heap32[(r10+284)];
	heap32[(r12+6)] = heap32[(r10+285)];
	heap32[(r12+7)] = heap32[(r10+286)];
	heap32[(r12+8)] = heap32[(r10+287)];
	heap32[(r12+9)] = heap32[(r10+288)];
	heap32[(r12+10)] = heap32[(r10+289)];
	heap32[(r12+11)] = heap32[(r10+290)];
	heap32[(r12+12)] = heap32[(r10+291)];
	heap32[(r12+13)] = heap32[(r10+292)];
	heap32[(r12+14)] = heap32[(r10+293)];
	heap32[(r12+15)] = heap32[(r10+294)];
if(!(r8 ==0)) //_LBB669_37
{
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r13 = r_g0 >> 2;
	r13 = heap32[(r13)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r11;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r13)>>2](i7);
}
	if(r9 ==0) //_LBB669_52
{
break _7;
}
else{
	r2 = (r2 + 1164)|0;
	f0 = heapFloat[(r10+263)];
	heapFloat[(fp+-134)] = f0;
	heap32[(r12+1)] = heap32[(r10+264)];
	f1 = heapFloat[(r10+265)];
	heapFloat[(r12+2)] = f1;
	heap32[(r12+3)] = heap32[(r10+266)];
	f2 = heapFloat[(r10+267)];
	heapFloat[(r12+4)] = f2;
	heap32[(r12+5)] = heap32[(r10+268)];
	f3 = heapFloat[(r10+269)];
	heapFloat[(r12+6)] = f3;
	heap32[(r12+7)] = heap32[(r10+270)];
	f4 = heapFloat[(r10+271)];
	heapFloat[(r12+8)] = f4;
	heap32[(r12+9)] = heap32[(r10+272)];
	f5 = heapFloat[(r10+273)];
	heapFloat[(r12+10)] = f5;
	heap32[(r12+11)] = heap32[(r10+274)];
	heap32[(r12+12)] = heap32[(r10+275)];
	heap32[(r12+13)] = heap32[(r10+276)];
	heap32[(r12+14)] = heap32[(r10+277)];
	r8 = sp + -552;
	heap32[(r12+15)] = heap32[(r10+278)];
	r9 = r8 >> 2;
	heapFloat[(fp+-138)] = f1;
	heapFloat[(r9+1)] = f3;
	heapFloat[(r9+2)] = f5;
	heap32[(r9+3)] = 0;
	r9 = sp + -568;
	heapFloat[(fp+-142)] = f0;
	r13 = r9 >> 2;
	heapFloat[(r13+1)] = f2;
	heapFloat[(r13+2)] = f4;
	heap32[(r13+3)] = 0;
	r14 = heap32[(r1)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+4)];
	f0 = heapFloat[(r10+230)];
	f1 = heapFloat[(r10+231)];
	f2 = heapFloat[(r10+246)];
	f3 = heapFloat[(r10+247)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	r15 = r_g0 >> 2;
	r15 = heap32[(r15)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+16)];
	r16 = sp + -104;
	r17 = r16 >> 2;
	heap32[(fp+-26)] = 0;
	heap32[(r17+1)] = 0;
	heap32[(r17+2)] = 0;
	heap32[(r17+3)] = 0;
	f4 =       0.89999997615814209;
	f5 = heapFloat[(fp+-191)];
	f4 = f5*f4;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r9;
	heapFloat[(g0+4)] = f4;
	heapFloat[(g0+5)] = f0;
	heapFloat[(g0+6)] = f1;
	heapFloat[(g0+7)] = f2;
	heapFloat[(g0+8)] = f3;
	heap32[(g0+9)] = r16;
	heap32[(g0+10)] = 1092616192;
	__FUNCTION_TABLE__[(r15)>>2](i7);
	f0 = heapFloat[(r12+9)];
	f1 = heapFloat[(r12+5)];
	heap32[(fp+-142)] = heap32[(r12+1)];
	heapFloat[(r13+1)] = f1;
	heapFloat[(r13+2)] = f0;
	heap32[(r13+3)] = 0;
	f0 = heapFloat[(r10+296)];
	f1 = heapFloat[(r10+297)];
	heapFloat[(g0)] = f0;
	cosf(i7);
	f2 = f_g0;
	heapFloat[(g0)] = f0;
	sinf(i7);
	f0 = f_g0;
	heapFloat[(g0)] = f1;
	cosf(i7);
	f3 = f_g0;
	heapFloat[(g0)] = f1;
	sinf(i7);
	f4 = heapFloat[(fp+-142)];
	f5 = f2*f3;
	f6 = heapFloat[(r13+1)];
	f7 = f2*f_g0;
	f8 = heapFloat[(r13+2)];
	f5 = f5*f4;
	f7 = f7*f6;
	f9 = f3*f0;
	f10 = f_g0*f0;
	f5 = f5+f7;
	f0 = f8*f0;
	r8 = sp + -584;
	f7 = f9*f4;
	f9 = f10*f6;
	f3 = f6*f3;
	f1 = f4*f_g0;
	f0 = f5-f0;
	r9 = r8 >> 2;
	f4 = f7+f9;
	f2 = f8*f2;
	f1 = f3-f1;
	heapFloat[(fp+-146)] = f0;
	f0 = f4+f2;
	heapFloat[(r9+1)] = f1;
	heapFloat[(r9+2)] = f0;
	f0 = heapFloat[(r10+279)];
	heapFloat[(fp+-134)] = f0;
	heap32[(r12+1)] = heap32[(r10+280)];
	heap32[(r12+2)] = heap32[(r10+281)];
	heap32[(r12+3)] = heap32[(r10+282)];
	f1 = heapFloat[(r10+283)];
	heapFloat[(r12+4)] = f1;
	heap32[(r12+5)] = heap32[(r10+284)];
	heap32[(r12+6)] = heap32[(r10+285)];
	heap32[(r12+7)] = heap32[(r10+286)];
	f2 = heapFloat[(r10+287)];
	heapFloat[(r12+8)] = f2;
	heap32[(r12+9)] = heap32[(r10+288)];
	heap32[(r12+10)] = heap32[(r10+289)];
	heap32[(r12+11)] = heap32[(r10+290)];
	heap32[(r12+12)] = heap32[(r10+291)];
	heap32[(r12+13)] = heap32[(r10+292)];
	heap32[(r12+14)] = heap32[(r10+293)];
	r9 = sp + -600;
	f0 = -f0;
	heap32[(r12+15)] = heap32[(r10+294)];
	r13 = r9 >> 2;
	f1 = -f1;
	heapFloat[(fp+-150)] = f0;
	f0 = -f2;
	heapFloat[(r13+1)] = f1;
	heapFloat[(r13+2)] = f0;
	heap32[(r13+3)] = 0;
	f0 = heapFloat[(r10+214)];
	f1 = heapFloat[(r10+215)];
	if(f0 <=f1) //_LBB669_40
{
if(!(f0 >=f1)) //_LBB669_42
{
	r13 = heap32[(r1)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r14 = r_g0 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+15)];
	r15 = sp + -72;
	r16 = r15 >> 2;
	heap32[(fp+-18)] = 0;
	heap32[(r16+1)] = 0;
	heap32[(r16+2)] = 0;
	heap32[(r16+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r8;
	f2 = heapFloat[(fp+-191)];
	heapFloat[(g0+4)] = f2;
	heapFloat[(g0+5)] = f2;
	heapFloat[(g0+6)] = f0;
	heapFloat[(g0+7)] = f1;
	heap32[(g0+8)] = r15;
	heap32[(g0+9)] = 1;
	heap32[(g0+10)] = 1092616192;
	__FUNCTION_TABLE__[(r14)>>2](i7);
}
}
else{
	r13 = heap32[(r1)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r14 = r_g0 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+15)];
	r15 = sp + -88;
	r16 = r15 >> 2;
	heap32[(fp+-22)] = 0;
	heap32[(r16+1)] = 0;
	heap32[(r16+2)] = 0;
	heap32[(r16+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r8;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+4)] = f0;
	heapFloat[(g0+5)] = f0;
	heap32[(g0+6)] = -1068953637;
	heap32[(g0+7)] = 1078530011;
	heap32[(g0+8)] = r15;
	heap32[(g0+9)] = 0;
	heap32[(g0+10)] = 1092616192;
	__FUNCTION_TABLE__[(r14)>>2](i7);
}
	heap32[(fp+-134)] = heap32[(r10+263)];
	heap32[(r12+1)] = heap32[(r10+264)];
	heap32[(r12+2)] = heap32[(r10+265)];
	heap32[(r12+3)] = heap32[(r10+266)];
	heap32[(r12+4)] = heap32[(r10+267)];
	heap32[(r12+5)] = heap32[(r10+268)];
	heap32[(r12+6)] = heap32[(r10+269)];
	heap32[(r12+7)] = heap32[(r10+270)];
	heap32[(r12+8)] = heap32[(r10+271)];
	heap32[(r12+9)] = heap32[(r10+272)];
	heap32[(r12+10)] = heap32[(r10+273)];
	heap32[(r12+11)] = heap32[(r10+274)];
	heap32[(r12+12)] = heap32[(r10+275)];
	heap32[(r12+13)] = heap32[(r10+276)];
	heap32[(r12+14)] = heap32[(r10+277)];
	r2 = sp + -616;
	heap32[(r12+15)] = heap32[(r10+278)];
	r8 = r2 >> 2;
	heap32[(fp+-154)] = heap32[(r10+167)];
	heap32[(r8+1)] = heap32[(r10+168)];
	heap32[(r8+2)] = heap32[(r10+169)];
	r9 = sp + -632;
	heap32[(r8+3)] = heap32[(r10+170)];
	r8 = r9 >> 2;
	heap32[(fp+-158)] = heap32[(r10+171)];
	heap32[(r8+1)] = heap32[(r10+172)];
	heap32[(r8+2)] = heap32[(r10+173)];
	heap32[(r8+3)] = heap32[(r10+174)];
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r10 = r_g0 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+18)];
	r12 = sp + -56;
	r13 = r12 >> 2;
	heap32[(fp+-14)] = 0;
	heap32[(r13+1)] = 0;
	heap32[(r13+2)] = 0;
	heap32[(r13+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r11;
	heap32[(g0+4)] = r12;
	__FUNCTION_TABLE__[(r10)>>2](i7);
}
}
else{
	if(r11 ==7) //_LBB669_43
{
	r11 = sp + -696;
	r12 = r11 >> 2;
	heap32[(fp+-174)] = heap32[(r10+203)];
	heap32[(r12+1)] = heap32[(r10+204)];
	heap32[(r12+2)] = heap32[(r10+205)];
	heap32[(r12+3)] = heap32[(r10+206)];
	heap32[(r12+4)] = heap32[(r10+207)];
	heap32[(r12+5)] = heap32[(r10+208)];
	heap32[(r12+6)] = heap32[(r10+209)];
	heap32[(r12+7)] = heap32[(r10+210)];
	heap32[(r12+8)] = heap32[(r10+211)];
	heap32[(r12+9)] = heap32[(r10+212)];
	heap32[(r12+10)] = heap32[(r10+213)];
	heap32[(r12+11)] = heap32[(r10+214)];
	heap32[(r12+12)] = heap32[(r10+215)];
	heap32[(r12+13)] = heap32[(r10+216)];
	heap32[(r12+14)] = heap32[(r10+217)];
	heap32[(r12+15)] = heap32[(r10+218)];
if(!(r8 ==0)) //_LBB669_45
{
	r13 = heap32[(r1)];
	r13 = r13 >> 2;
	r13 = heap32[(r13+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r13)>>2](i7);
	r14 = r_g0 >> 2;
	r14 = heap32[(r14)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r11;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r14)>>2](i7);
}
	heap32[(fp+-174)] = heap32[(r10+219)];
	heap32[(r12+1)] = heap32[(r10+220)];
	heap32[(r12+2)] = heap32[(r10+221)];
	heap32[(r12+3)] = heap32[(r10+222)];
	heap32[(r12+4)] = heap32[(r10+223)];
	heap32[(r12+5)] = heap32[(r10+224)];
	heap32[(r12+6)] = heap32[(r10+225)];
	heap32[(r12+7)] = heap32[(r10+226)];
	heap32[(r12+8)] = heap32[(r10+227)];
	heap32[(r12+9)] = heap32[(r10+228)];
	heap32[(r12+10)] = heap32[(r10+229)];
	heap32[(r12+11)] = heap32[(r10+230)];
	heap32[(r12+12)] = heap32[(r10+231)];
	heap32[(r12+13)] = heap32[(r10+232)];
	heap32[(r12+14)] = heap32[(r10+233)];
	heap32[(r12+15)] = heap32[(r10+234)];
if(!(r8 ==0)) //_LBB669_47
{
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r12 = r_g0 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r11;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r12)>>2](i7);
}
	if(r9 ==0) //_LBB669_52
{
break _7;
}
else{
	r8 = (r2 + 924)|0;
	r9 = heapU8[r2+168];
	if(r9 ==0) //_LBB669_50
{
	r2 = (r2 + 876)|0;
}
else{
	r2 = (r2 + 812)|0;
}
	r2 = r2 >> 2;
	f0 = heapFloat[(r2+1)];
	f1 = heapFloat[(r10+43)];
	f2 = heapFloat[(r2)];
	f3 = heapFloat[(r2+2)];
	f4 = heapFloat[(r2+5)];
	f5 = heapFloat[(r2+4)];
	f6 = f2*f1;
	f7 = heapFloat[(fp+-192)];
	f8 = f0*f7;
	f9 = heapFloat[(r2+6)];
	f10 = heapFloat[(r2+9)];
	f11 = heapFloat[(r2+8)];
	f12 = f5*f1;
	f13 = f4*f7;
	f6 = f6+f8;
	f3 = f3*f7;
	f14 = heapFloat[(r2+10)];
	f1 = f11*f1;
	f15 = f10*f7;
	f12 = f12+f13;
	f9 = f9*f7;
	f6 = f6+f3;
	f16 = heapFloat[(r2+12)];
	f17 = heapFloat[(r2+13)];
	f18 = heapFloat[(r2+14)];
	r2 = sp + -712;
	f12 = f12+f9;
	f1 = f1+f15;
	f7 = f14*f7;
	f6 = f6+f16;
	f1 = f1+f7;
	r9 = r2 >> 2;
	f12 = f12+f17;
	heapFloat[(fp+-178)] = f6;
	f1 = f1+f18;
	heapFloat[(r9+1)] = f12;
	heapFloat[(r9+2)] = f1;
	heap32[(r9+3)] = 0;
	f1 = heapFloat[(r10+44)];
	f6 = f2*f1;
	f12 = f5*f1;
	f6 = f6+f8;
	f1 = f11*f1;
	f8 = f12+f13;
	f3 = f6+f3;
	r9 = sp + -728;
	f1 = f1+f15;
	f6 = f8+f9;
	f3 = f3+f16;
	f1 = f1+f7;
	r11 = r9 >> 2;
	f6 = f6+f17;
	heapFloat[(fp+-182)] = f3;
	f1 = f1+f18;
	heapFloat[(r11+1)] = f6;
	heapFloat[(r11+2)] = f1;
	heap32[(r11+3)] = 0;
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r12 = r_g0 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+2)];
	r13 = sp + -40;
	r14 = r13 >> 2;
	heap32[(fp+-10)] = 0;
	heap32[(r14+1)] = 0;
	heap32[(r14+2)] = 0;
	heap32[(r14+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r13;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	r2 = sp + -744;
	r9 = r2 >> 2;
	heapFloat[(fp+-186)] = f2;
	heapFloat[(r9+1)] = f5;
	heapFloat[(r9+2)] = f11;
	r11 = sp + -760;
	heap32[(r9+3)] = 0;
	r9 = r11 >> 2;
	heapFloat[(fp+-190)] = f0;
	heapFloat[(r9+1)] = f4;
	heapFloat[(r9+2)] = f10;
	heap32[(r9+3)] = 0;
	r9 = heap32[(r1)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+4)];
	f0 = heapFloat[(r10+45)];
	f1 = heapFloat[(r10+46)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r10 = r_g0 >> 2;
	r10 = heap32[(r10)];
	r10 = r10 >> 2;
	r10 = heap32[(r10+15)];
	r12 = sp + -24;
	r13 = r12 >> 2;
	heap32[(fp+-6)] = 0;
	heap32[(r13+1)] = 0;
	heap32[(r13+2)] = 0;
	heap32[(r13+3)] = 0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r11;
	f2 = heapFloat[(fp+-191)];
	heapFloat[(g0+4)] = f2;
	heapFloat[(g0+5)] = f2;
	heapFloat[(g0+6)] = f0;
	heapFloat[(g0+7)] = f1;
	heap32[(g0+8)] = r12;
	heap32[(g0+9)] = 1;
	heap32[(g0+10)] = 1092616192;
	__FUNCTION_TABLE__[(r10)>>2](i7);
}
}
else{
break _7;
}
}
}
}
else{
	if(r11 ==3) //_LBB669_11
{
	r2 = sp + -232;
	r9 = r2 >> 2;
	heap32[(fp+-58)] = 1065353216;
	heap32[(r9+1)] = 0;
	heap32[(r9+2)] = 0;
	heap32[(r9+3)] = 0;
	heap32[(r9+4)] = 0;
	heap32[(r9+5)] = 1065353216;
	heap32[(r9+6)] = 0;
	heap32[(r9+7)] = 0;
	heap32[(r9+8)] = 0;
	heap32[(r9+9)] = 0;
	heap32[(r9+10)] = 1065353216;
	heap32[(r9+11)] = 0;
	heap32[(r9+12)] = 0;
	heap32[(r9+13)] = 0;
	heap32[(r9+14)] = 0;
	heap32[(r9+15)] = 0;
	r11 = heap32[(r10+5)];
	r11 = r11 >> 2;
	f0 = heapFloat[(r10+72)];
	f1 = heapFloat[(r11+1)];
	f2 = heapFloat[(r10+73)];
	f3 = heapFloat[(r11+2)];
	f4 = heapFloat[(r11+5)];
	f5 = heapFloat[(r11+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r10+74)];
	f7 = heapFloat[(r11+3)];
	f8 = heapFloat[(r11+9)];
	f9 = heapFloat[(r11+10)];
	f10 = heapFloat[(r11+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r11+11)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r11+13)];
	f8 = heapFloat[(r11+15)];
	f9 = heapFloat[(r11+14)];
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f4+f9;
	heapFloat[(r9+12)] = f1;
	f0 = f0+f8;
	heapFloat[(r9+13)] = f2;
	heapFloat[(r9+14)] = f0;
	heap32[(r9+15)] = 0;
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r12 = r_g0 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r12)>>2](i7);
	r11 = heap32[(r10+6)];
	r11 = r11 >> 2;
	f0 = heapFloat[(r10+76)];
	f1 = heapFloat[(r11+1)];
	f2 = heapFloat[(r10+77)];
	f3 = heapFloat[(r11+2)];
	f4 = heapFloat[(r11+5)];
	f5 = heapFloat[(r11+6)];
	f1 = f1*f0;
	f3 = f3*f2;
	f6 = heapFloat[(r10+78)];
	f7 = heapFloat[(r11+3)];
	f8 = heapFloat[(r11+9)];
	f9 = heapFloat[(r11+10)];
	f10 = heapFloat[(r11+7)];
	f4 = f4*f0;
	f5 = f5*f2;
	f1 = f1+f3;
	f3 = f7*f6;
	f7 = heapFloat[(r11+11)];
	f0 = f8*f0;
	f2 = f9*f2;
	f4 = f4+f5;
	f5 = f10*f6;
	f1 = f1+f3;
	f3 = heapFloat[(r11+13)];
	f8 = heapFloat[(r11+15)];
	f9 = heapFloat[(r11+14)];
	f4 = f4+f5;
	f0 = f0+f2;
	f2 = f7*f6;
	f1 = f1+f3;
	f0 = f0+f2;
	f2 = f4+f9;
	heapFloat[(r9+12)] = f1;
	f0 = f0+f8;
	heapFloat[(r9+13)] = f2;
	heapFloat[(r9+14)] = f0;
	heap32[(r9+15)] = 0;
if(!(r8 ==0)) //_LBB669_52
{
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r9 = r_g0 >> 2;
	r9 = heap32[(r9)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r2;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r9)>>2](i7);
}
}
else{
	if(r11 ==4) //_LBB669_13
{
	r2 = heap32[(r10+5)];
	r2 = r2 >> 2;
	f0 = heapFloat[(r2+1)];
	f1 = heapFloat[(r10+135)];
	f2 = heapFloat[(r2+2)];
	f3 = heapFloat[(r10+139)];
	f4 = heapFloat[(r10+136)];
	f5 = heapFloat[(r10+140)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r2+3)];
	f9 = heapFloat[(r10+143)];
	f10 = heapFloat[(r2+9)];
	f11 = heapFloat[(r10+147)];
	f12 = heapFloat[(r2+5)];
	f13 = heapFloat[(r10+137)];
	f14 = heapFloat[(r2+10)];
	f15 = heapFloat[(r10+148)];
	f16 = heapFloat[(r2+6)];
	f17 = heapFloat[(r10+141)];
	f18 = heapFloat[(r2+11)];
	f19 = heapFloat[(r10+149)];
	f20 = heapFloat[(r2+7)];
	f21 = heapFloat[(r10+145)];
	f22 = heapFloat[(r10+144)];
	f23 = f4*f0;
	f24 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	f25 = heapFloat[(r2+15)];
	f26 = heapFloat[(r2+14)];
	f27 = heapFloat[(r2+13)];
	f28 = f13*f0;
	f29 = f17*f2;
	f23 = f23+f24;
	f24 = f22*f8;
	f6 = f6+f7;
	r2 = r3 >> 2;
	f7 = f28+f29;
	f28 = f21*f8;
	f23 = f23+f24;
	heapFloat[(fp+-74)] = f6;
	f6 = f1*f12;
	f24 = f3*f16;
	f7 = f7+f28;
	heapFloat[(r2+1)] = f23;
	heapFloat[(r2+2)] = f7;
	f7 = f4*f12;
	f23 = f5*f16;
	f6 = f6+f24;
	f24 = f9*f20;
	f28 = f13*f12;
	f29 = f17*f16;
	f7 = f7+f23;
	f23 = f22*f20;
	f6 = f6+f24;
	heap32[(r2+3)] = 0;
	f24 = f28+f29;
	f28 = f21*f20;
	f7 = f7+f23;
	heapFloat[(r2+4)] = f6;
	f1 = f1*f10;
	f3 = f3*f14;
	f6 = f24+f28;
	heapFloat[(r2+5)] = f7;
	heapFloat[(r2+6)] = f6;
	f4 = f4*f10;
	f5 = f5*f14;
	f1 = f1+f3;
	f3 = f9*f18;
	f6 = f13*f10;
	f7 = f17*f14;
	f4 = f4+f5;
	f5 = f22*f18;
	f1 = f1+f3;
	heap32[(r2+7)] = 0;
	f0 = f0*f11;
	f2 = f2*f15;
	f3 = f6+f7;
	f6 = f21*f18;
	f4 = f4+f5;
	heapFloat[(r2+8)] = f1;
	f1 = f12*f11;
	f5 = f16*f15;
	f0 = f0+f2;
	f2 = f8*f19;
	f3 = f3+f6;
	heapFloat[(r2+9)] = f4;
	f0 = f0+f2;
	heapFloat[(r2+10)] = f3;
	f2 = f10*f11;
	f3 = f14*f15;
	f1 = f1+f5;
	f4 = f20*f19;
	f1 = f1+f4;
	f2 = f2+f3;
	f3 = f18*f19;
	f0 = f0+f27;
	heap32[(r2+11)] = 0;
	f2 = f2+f3;
	f1 = f1+f26;
	heapFloat[(r2+12)] = f0;
	f0 = f2+f25;
	heapFloat[(r2+13)] = f1;
	heapFloat[(r2+14)] = f0;
	heap32[(r2+15)] = 0;
if(!(r8 ==0)) //_LBB669_15
{
	r11 = heap32[(r1)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r12 = r_g0 >> 2;
	r12 = heap32[(r12)];
	r12 = r12 >> 2;
	r12 = heap32[(r12+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r3;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r12)>>2](i7);
}
	r11 = heap32[(r10+6)];
	r11 = r11 >> 2;
	f0 = heapFloat[(r11+1)];
	f1 = heapFloat[(r10+151)];
	f2 = heapFloat[(r11+2)];
	f3 = heapFloat[(r10+155)];
	f4 = heapFloat[(r10+152)];
	f5 = heapFloat[(r10+156)];
	f6 = f1*f0;
	f7 = f3*f2;
	f8 = heapFloat[(r11+3)];
	f9 = heapFloat[(r10+159)];
	f10 = heapFloat[(r11+9)];
	f11 = heapFloat[(r10+163)];
	f12 = heapFloat[(r11+5)];
	f13 = heapFloat[(r10+153)];
	f14 = heapFloat[(r11+10)];
	f15 = heapFloat[(r10+164)];
	f16 = heapFloat[(r11+6)];
	f17 = heapFloat[(r10+157)];
	f18 = heapFloat[(r11+11)];
	f19 = heapFloat[(r10+165)];
	f20 = heapFloat[(r11+7)];
	f21 = heapFloat[(r10+161)];
	f22 = heapFloat[(r10+160)];
	f23 = f4*f0;
	f24 = f5*f2;
	f6 = f6+f7;
	f7 = f9*f8;
	f25 = heapFloat[(r11+15)];
	f26 = heapFloat[(r11+14)];
	f27 = heapFloat[(r11+13)];
	f28 = f13*f0;
	f29 = f17*f2;
	f23 = f23+f24;
	f24 = f22*f8;
	f6 = f6+f7;
	f7 = f28+f29;
	f28 = f21*f8;
	f23 = f23+f24;
	heapFloat[(fp+-74)] = f6;
	f6 = f1*f12;
	f24 = f3*f16;
	f7 = f7+f28;
	heapFloat[(r2+1)] = f23;
	heapFloat[(r2+2)] = f7;
	f7 = f4*f12;
	f23 = f5*f16;
	f6 = f6+f24;
	f24 = f9*f20;
	f28 = f13*f12;
	f29 = f17*f16;
	f7 = f7+f23;
	f23 = f22*f20;
	f6 = f6+f24;
	heap32[(r2+3)] = 0;
	f24 = f28+f29;
	f28 = f21*f20;
	f7 = f7+f23;
	heapFloat[(r2+4)] = f6;
	f1 = f1*f10;
	f3 = f3*f14;
	f6 = f24+f28;
	heapFloat[(r2+5)] = f7;
	heapFloat[(r2+6)] = f6;
	f4 = f4*f10;
	f5 = f5*f14;
	f1 = f1+f3;
	f3 = f9*f18;
	f6 = f13*f10;
	f7 = f17*f14;
	f4 = f4+f5;
	f5 = f22*f18;
	f1 = f1+f3;
	heap32[(r2+7)] = 0;
	f0 = f0*f11;
	f2 = f2*f15;
	f3 = f6+f7;
	f6 = f21*f18;
	f4 = f4+f5;
	heapFloat[(r2+8)] = f1;
	f1 = f12*f11;
	f5 = f16*f15;
	f0 = f0+f2;
	f2 = f8*f19;
	f3 = f3+f6;
	heapFloat[(r2+9)] = f4;
	f0 = f0+f2;
	heapFloat[(r2+10)] = f3;
	f2 = f10*f11;
	f3 = f14*f15;
	f1 = f1+f5;
	f4 = f20*f19;
	f1 = f1+f4;
	f2 = f2+f3;
	f3 = f18*f19;
	f0 = f0+f27;
	heap32[(r2+11)] = 0;
	f2 = f2+f3;
	f1 = f1+f26;
	heapFloat[(r2+12)] = f0;
	f0 = f2+f25;
	heapFloat[(r2+13)] = f1;
	heapFloat[(r2+14)] = f0;
	heap32[(r2+15)] = 0;
if(!(r8 ==0)) //_LBB669_17
{
	r8 = heap32[(r1)];
	r8 = r8 >> 2;
	r8 = heap32[(r8+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r11 = r_g0 >> 2;
	r11 = heap32[(r11)];
	r11 = r11 >> 2;
	r11 = heap32[(r11+14)];
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r3;
	f0 = heapFloat[(fp+-191)];
	heapFloat[(g0+2)] = f0;
	__FUNCTION_TABLE__[(r11)>>2](i7);
}
	f0 = heapFloat[(r10+172)];
	f1 = heapFloat[(r10+173)];
if(!(f0 ==f1)) //_LBB669_52
{
if(!(r9 ==0)) //_LBB669_52
{
	r8 = sp + -312;
	r9 = r8 >> 2;
	heap32[(fp+-78)] = heap32[(r2+2)];
	heap32[(r9+1)] = heap32[(r2+6)];
	heap32[(r9+2)] = heap32[(r2+10)];
	r10 = sp + -328;
	heap32[(r9+3)] = 0;
	r9 = r10 >> 2;
	heap32[(fp+-82)] = heap32[(fp+-74)];
	heap32[(r9+1)] = heap32[(r2+4)];
	heap32[(r9+2)] = heap32[(r2+8)];
	heap32[(r9+3)] = 0;
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r9 = r_g0 >> 2;
	r9 = heap32[(r9)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+15)];
	r11 = sp + -168;
	r12 = r11 >> 2;
	heap32[(fp+-42)] = 0;
	heap32[(r12+1)] = 0;
	heap32[(r12+2)] = 0;
	heap32[(r12+3)] = 0;
	f2 =        6.2831854820251465;
	r12 = f0 <= f1;
	f3 = heapFloat[(fp+-192)];
	f3 = f0 > f1 ? f3 : f0;
	f0 = f0 > f1 ? f2 : f1;
	r12 = r12 & 1;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r8;
	heap32[(g0+3)] = r10;
	f1 = heapFloat[(fp+-191)];
	heapFloat[(g0+4)] = f1;
	heapFloat[(g0+5)] = f1;
	heapFloat[(g0+6)] = f3;
	heapFloat[(g0+7)] = f0;
	heap32[(g0+8)] = r11;
	heap32[(g0+9)] = r12;
	heap32[(g0+10)] = 1092616192;
	__FUNCTION_TABLE__[(r9)>>2](i7);
}
}
}
}
}
}
} while(0);
	r2 = (r7 + -1)|0;
	if(r7 !=0) //_LBB669_4
{
continue _5;
}
else{
break _5;
}
}
}
}
}
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
_74: do {
if(!(r2 ==0)) //_LBB669_60
{
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r3 = r_g0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = r_g0 & 3;
if(!(r2 ==0)) //_LBB669_60
{
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0;
if(!(r2 ==0)) //_LBB669_60
{
	r2 = heap32[(r1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = r_g0 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+12)];
	heap32[(g0)] = r_g0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB669_60
{
	r0 = heap32[(r1+63)];
if(!(r0 <1)) //_LBB669_60
{
	r0 = 0;
_80: while(true){
	r2 = heap32[(r1+65)];
	r3 = r0 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+3)];
	r4 = heap32[(r1+21)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	r0 = (r0 + 1)|0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = heap32[(r1+63)];
	if(r2 >r0) //_LBB669_59
{
continue _80;
}
else{
break _74;
}
}
}
}
}
}
}
} while(0);
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r3 = (r3 + -1)|0;
	heap32[(r2+4)] = r3;
_83: do {
if(!(r3 !=0)) //_LBB669_66
{
	r3 = heap32[(r2+1)];
	if(r3 !=0) //_LBB669_63
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r3 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	r4 = heap32[(fp+-2)];
	r5 = heap32[(r3)];
	r4 = (r4 - r5)|0;
	r1 = heap32[(r1+1)];
	r3 = heap32[(r3+1)];
	r1 = (r1 - r3)|0;
	r3 = (r4 * 1000000)|0;
	r1 = (r1 + r3)|0;
	r3 = heap32[(r2+3)];
	r1 = (r1 - r3)|0;
	f0 = uint(r1); //fuitos r1, f0
	f1 =                      1000;
	f2 = heapFloat[(r2+2)];
	f0 = f0/f1;
	f0 = f2+f0;
	heapFloat[(r2+2)] = f0;
	r1 = heap32[(r2+4)];
	if(r1 !=0) //_LBB669_66
{
break _83;
}
else{
	r1 = heap32[(r0)];
}
}
	r1 = r1 >> 2;
	r1 = heap32[(r1+5)];
	heap32[(r0)] = r1;
}
} while(0);
	return;
}

function _ZN23btDiscreteDynamicsWorld18saveKinematicStateEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+2)];
if(!(r1 <1)) //_LBB670_11
{
	f0 = heapFloat[(fp+1)];
	f1 =                         1;
	f1 = f1/f0;
	r1 = 0;
_3: while(true){
	r2 = heap32[(r0+4)];
	r3 = r1 << 2;
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r3 = heapU8[r2+232];
	r3 = r3 & 2;
if(!(r3 ==0)) //_LBB670_10
{
if(!(r2 ==0)) //_LBB670_10
{
	r3 = r2 >> 2;
	r4 = heap32[(r3+54)];
if(!(r4 ==2)) //_LBB670_10
{
	r4 = heapU8[r2+204];
	r4 = r4 & 2;
if(!(r4 ==0)) //_LBB670_10
{
	f2 =                         0;
if(!(f0 ==f2)) //_LBB670_10
{
	r4 = heap32[(r3+118)];
if(!(r4 ==0)) //_LBB670_9
{
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+2)];
	r6 = (r2 + 4)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
	f2 = heapFloat[(r3+13)];
	f3 = heapFloat[(r3+29)];
	f2 = f2-f3;
	f3 = heapFloat[(r3+15)];
	f4 = heapFloat[(r3+31)];
	f5 = heapFloat[(r3+14)];
	f6 = heapFloat[(r3+30)];
	f5 = f5-f6;
	f2 = f2*f1;
	f3 = f3-f4;
	f4 = f5*f1;
	heapFloat[(r3+76)] = f2;
	f2 = f3*f1;
	heapFloat[(r3+77)] = f4;
	heapFloat[(r3+78)] = f2;
	heap32[(r3+79)] = 0;
	r4 = sp + -16;
	r5 = (r2 + 68)|0;
	r2 = (r2 + 4)|0;
	r6 = sp + -20;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r6;
	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
	r2 = r4 >> 2;
	f2 = heapFloat[(fp+-5)];
	f3 = heapFloat[(fp+-4)];
	f3 = f3*f2;
	f4 = heapFloat[(r2+2)];
	f5 = heapFloat[(r2+1)];
	f5 = f5*f2;
	f3 = f3*f1;
	f2 = f4*f2;
	f4 = f5*f1;
	heapFloat[(r3+80)] = f3;
	f2 = f2*f1;
	heapFloat[(r3+81)] = f4;
	heapFloat[(r3+82)] = f2;
	heap32[(r3+83)] = 0;
	heap32[(r3+33)] = heap32[(r3+76)];
	heap32[(r3+34)] = heap32[(r3+77)];
	heap32[(r3+35)] = heap32[(r3+78)];
	heap32[(r3+36)] = heap32[(r3+79)];
	heapFloat[(r3+37)] = f3;
	heapFloat[(r3+38)] = f4;
	heapFloat[(r3+39)] = f2;
	heap32[(r3+40)] = 0;
	heap32[(r3+17)] = heap32[(r3+1)];
	heap32[(r3+18)] = heap32[(r3+2)];
	heap32[(r3+19)] = heap32[(r3+3)];
	heap32[(r3+20)] = heap32[(r3+4)];
	heap32[(r3+21)] = heap32[(r3+5)];
	heap32[(r3+22)] = heap32[(r3+6)];
	heap32[(r3+23)] = heap32[(r3+7)];
	heap32[(r3+24)] = heap32[(r3+8)];
	heap32[(r3+25)] = heap32[(r3+9)];
	heap32[(r3+26)] = heap32[(r3+10)];
	heap32[(r3+27)] = heap32[(r3+11)];
	heap32[(r3+28)] = heap32[(r3+12)];
	heap32[(r3+29)] = heap32[(r3+13)];
	heap32[(r3+30)] = heap32[(r3+14)];
	heap32[(r3+31)] = heap32[(r3+15)];
	heap32[(r3+32)] = heap32[(r3+16)];
}
}
}
}
}
	r1 = (r1 + 1)|0;
	r2 = heap32[(r0+2)];
	if(r2 >r1) //_LBB670_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZN15btDynamicsWorldD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV15btDynamicsWorld;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN16btCollisionWorldD2Ev(i7);
	return;
}

function _ZN15btDynamicsWorldD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV15btDynamicsWorld;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN16btCollisionWorldD2Ev(i7);
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN23btDiscreteDynamicsWorldD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV23btDiscreteDynamicsWorld;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+244];
if(!(r1 ==0)) //_LBB673_3
{
	r1 = heap32[(r2+45)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+45)];
if(!(r1 ==0)) //_LBB673_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = heapU8[r0+245];
if(!(r1 ==0)) //_LBB673_6
{
	r1 = heap32[(r2+44)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+44)];
if(!(r1 ==0)) //_LBB673_6
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = heap32[(r2+65)];
if(!(r1 ==0)) //_LBB673_10
{
	r3 = heapU8[r0+264];
if(!(r3 ==0)) //_LBB673_9
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+65)] = 0;
}
	r1 = 1;
	heap8[r0+264] = r1;
	heap32[(r2+65)] = 0;
	heap32[(r2+63)] = 0;
	heap32[(r2+64)] = 0;
	r3 = heap32[(r2+54)];
if(!(r3 ==0)) //_LBB673_14
{
	r4 = heapU8[r0+220];
if(!(r4 ==0)) //_LBB673_13
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+54)] = 0;
}
	heap8[r0+220] = r1;
	heap32[(r2+54)] = 0;
	heap32[(r2+52)] = 0;
	heap32[(r2+53)] = 0;
	r3 = heap32[(r2+49)];
if(!(r3 ==0)) //_LBB673_18
{
	r4 = heapU8[r0+200];
if(!(r4 ==0)) //_LBB673_17
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+49)] = 0;
}
	heap8[r0+200] = r1;
	heap32[(r2+49)] = 0;
	r1 = _ZTV15btDynamicsWorld;
	heap32[(r2+47)] = 0;
	r1 = (r1 + 8)|0;
	heap32[(r2+48)] = 0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN16btCollisionWorldD2Ev(i7);
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN23btDiscreteDynamicsWorldD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	heap32[(g0)] = r0;
	_ZN23btDiscreteDynamicsWorldD2Ev(i7);
	return;
}

function _ZN23btDiscreteDynamicsWorldD2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV23btDiscreteDynamicsWorld;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heapU8[r0+244];
if(!(r1 ==0)) //_LBB675_3
{
	r1 = heap32[(r2+45)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+45)];
if(!(r1 ==0)) //_LBB675_3
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = heapU8[r0+245];
if(!(r1 ==0)) //_LBB675_6
{
	r1 = heap32[(r2+44)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r1 = heap32[(r2+44)];
if(!(r1 ==0)) //_LBB675_6
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
}
	r1 = heap32[(r2+65)];
if(!(r1 ==0)) //_LBB675_10
{
	r3 = heapU8[r0+264];
if(!(r3 ==0)) //_LBB675_9
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+65)] = 0;
}
	r1 = 1;
	heap8[r0+264] = r1;
	heap32[(r2+65)] = 0;
	heap32[(r2+63)] = 0;
	heap32[(r2+64)] = 0;
	r3 = heap32[(r2+54)];
if(!(r3 ==0)) //_LBB675_14
{
	r4 = heapU8[r0+220];
if(!(r4 ==0)) //_LBB675_13
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+54)] = 0;
}
	heap8[r0+220] = r1;
	heap32[(r2+54)] = 0;
	heap32[(r2+52)] = 0;
	heap32[(r2+53)] = 0;
	r3 = heap32[(r2+49)];
if(!(r3 ==0)) //_LBB675_18
{
	r4 = heapU8[r0+200];
if(!(r4 ==0)) //_LBB675_17
{
	r4 = gNumAlignedFree;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r5 = (r5 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r4)] = r5;
	r3 = heap32[(r3+-1)];
	heap32[(g0)] = r3;
	free(i7);
}
	heap32[(r2+49)] = 0;
}
	heap8[r0+200] = r1;
	heap32[(r2+49)] = 0;
	r1 = _ZTV15btDynamicsWorld;
	heap32[(r2+47)] = 0;
	r1 = (r1 + 8)|0;
	heap32[(r2+48)] = 0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZN16btCollisionWorldD2Ev(i7);
	return;
}

function _ZN11btRigidBody12setMassPropsEfRK9btVector3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(fp+1)];
	r1 = heap32[(fp+2)];
	r2 = heap32[(r0+51)];
	f1 =                         0;
	if(f0 !=f1) //_LBB676_2
{
	r2 = r2 & -2;
	f2 =                         1;
	f2 = f2/f0;
	heap32[(r0+51)] = r2;
	heapFloat[(r0+84)] = f2;
}
else{
	r2 = r2 | 1;
	f2 =                         0;
	heap32[(r0+51)] = r2;
	heap32[(r0+84)] = 0;
}
	f3 = heapFloat[(r0+95)];
	f4 = heapFloat[(r0+94)];
	f5 = heapFloat[(r0+93)];
	f5 = f5*f0;
	f4 = f4*f0;
	heapFloat[(r0+89)] = f5;
	f0 = f3*f0;
	heapFloat[(r0+90)] = f4;
	heapFloat[(r0+91)] = f0;
	r1 = r1 >> 2;
	heap32[(r0+92)] = 0;
	f0 = heapFloat[(r1+2)];
	if(f0 !=f1) //_LBB676_5
{
	f3 =                         1;
	f0 = f3/f0;
}
else{
	f0 = f1;
}
	f3 = heapFloat[(r1+1)];
	if(f3 !=f1) //_LBB676_8
{
	f1 =                         1;
	f3 = f1/f3;
}
else{
	f3 =                         0;
}
	f1 = heapFloat[(r1)];
	f4 =                         0;
	if(f1 !=f4) //_LBB676_11
{
	f4 =                         1;
	f4 = f4/f1;
}
	heapFloat[(r0+97)] = f4;
	heapFloat[(r0+98)] = f3;
	heapFloat[(r0+99)] = f0;
	heap32[(r0+100)] = 0;
	f0 = heapFloat[(r0+87)];
	f1 = heapFloat[(r0+86)];
	f3 = heapFloat[(r0+85)];
	f3 = f3*f2;
	f1 = f1*f2;
	heapFloat[(r0+138)] = f3;
	f0 = f0*f2;
	heapFloat[(r0+139)] = f1;
	heapFloat[(r0+140)] = f0;
	heap32[(r0+141)] = 0;
	return;
}

function _ZN11btRigidBody19updateInertiaTensorEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
	var f16;
	var f17;
	var f18;
	var f19;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	f0 = heapFloat[(r0+1)];
	f1 = heapFloat[(r0+97)];
	f2 = heapFloat[(r0+2)];
	f3 = heapFloat[(r0+98)];
	f4 = f0*f1;
	f5 = f2*f3;
	f6 = heapFloat[(r0+3)];
	f7 = heapFloat[(r0+99)];
	f8 = heapFloat[(r0+5)];
	f9 = heapFloat[(r0+6)];
	f10 = f6*f7;
	f11 = f0*f4;
	f12 = f2*f5;
	f13 = heapFloat[(r0+9)];
	f14 = heapFloat[(r0+10)];
	f15 = heapFloat[(r0+7)];
	f16 = heapFloat[(r0+11)];
	f17 = f8*f4;
	f18 = f9*f5;
	f11 = f11+f12;
	f12 = f6*f10;
	f4 = f13*f4;
	f5 = f14*f5;
	f17 = f17+f18;
	f18 = f15*f10;
	f11 = f11+f12;
	f12 = f8*f1;
	f19 = f9*f3;
	f4 = f4+f5;
	f5 = f16*f10;
	f10 = f17+f18;
	heapFloat[(r0+64)] = f11;
	f11 = f15*f7;
	f17 = f0*f12;
	f18 = f2*f19;
	f4 = f4+f5;
	heapFloat[(r0+65)] = f10;
	heapFloat[(r0+66)] = f4;
	f4 = f8*f12;
	f5 = f9*f19;
	f10 = f17+f18;
	f17 = f6*f11;
	f12 = f13*f12;
	f18 = f14*f19;
	f4 = f4+f5;
	f5 = f15*f11;
	f10 = f10+f17;
	heap32[(r0+67)] = 0;
	f1 = f13*f1;
	f3 = f14*f3;
	f12 = f12+f18;
	f11 = f16*f11;
	f4 = f4+f5;
	heapFloat[(r0+68)] = f10;
	f5 = f16*f7;
	f0 = f0*f1;
	f2 = f2*f3;
	f7 = f12+f11;
	heapFloat[(r0+69)] = f4;
	heapFloat[(r0+70)] = f7;
	f4 = f8*f1;
	f7 = f9*f3;
	f0 = f0+f2;
	f2 = f6*f5;
	f1 = f13*f1;
	f3 = f14*f3;
	f4 = f4+f7;
	f6 = f15*f5;
	f0 = f0+f2;
	heap32[(r0+71)] = 0;
	f1 = f1+f3;
	f2 = f16*f5;
	f3 = f4+f6;
	heapFloat[(r0+72)] = f0;
	f0 = f1+f2;
	heapFloat[(r0+73)] = f3;
	heapFloat[(r0+74)] = f0;
	heap32[(r0+75)] = 0;
	return;
}

function _ZN11btRigidBody18proceedToTransformERK11btTransform(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heapU8[r0+204];
	r2 = r2 & 3;
	if(r2 ==0) //_LBB678_2
{
	r2 = r0 >> 2;
	r24 = r1 >> 2;
	heap32[(r2+17)] = heap32[(r24)];
	heap32[(r2+18)] = heap32[(r24+1)];
	heap32[(r2+19)] = heap32[(r24+2)];
	heap32[(r2+20)] = heap32[(r24+3)];
	heap32[(r2+21)] = heap32[(r24+4)];
	heap32[(r2+22)] = heap32[(r24+5)];
	heap32[(r2+23)] = heap32[(r24+6)];
	heap32[(r2+24)] = heap32[(r24+7)];
	heap32[(r2+25)] = heap32[(r24+8)];
	heap32[(r2+26)] = heap32[(r24+9)];
	heap32[(r2+27)] = heap32[(r24+10)];
	heap32[(r2+28)] = heap32[(r24+11)];
	heap32[(r2+29)] = heap32[(r24+12)];
	heap32[(r2+30)] = heap32[(r24+13)];
	r15 = (r1 + 4)|0;
	r16 = (r1 + 8)|0;
	r17 = (r1 + 12)|0;
	r18 = (r1 + 16)|0;
	r19 = (r1 + 20)|0;
	r20 = (r1 + 24)|0;
	r21 = (r1 + 28)|0;
	r22 = (r1 + 32)|0;
	r23 = (r1 + 36)|0;
	r3 = (r1 + 40)|0;
	heap32[(fp+-10)] = r3;
	r3 = (r1 + 44)|0;
	heap32[(fp+-4)] = r3;
	r3 = (r1 + 48)|0;
	heap32[(fp+-7)] = r3;
	r3 = (r1 + 52)|0;
	heap32[(fp+-6)] = r3;
	r3 = (r1 + 56)|0;
	heap32[(fp+-9)] = r3;
	r3 = (r1 + 60)|0;
	heap32[(fp+-8)] = r3;
	r3 = (r0 + 4)|0;
	r4 = (r0 + 8)|0;
	r5 = (r0 + 12)|0;
	r6 = (r0 + 16)|0;
	r7 = (r0 + 20)|0;
	r8 = (r0 + 24)|0;
	r9 = (r0 + 28)|0;
	r10 = (r0 + 32)|0;
	r11 = (r0 + 36)|0;
	r12 = (r0 + 40)|0;
	r13 = (r0 + 44)|0;
	r14 = (r0 + 48)|0;
	r25 = (r0 + 52)|0;
	heap32[(fp+-5)] = r25;
	r25 = (r0 + 56)|0;
	heap32[(fp+-3)] = r25;
	r25 = (r0 + 60)|0;
	heap32[(fp+-2)] = r25;
	r25 = (r0 + 64)|0;
	heap32[(fp+-1)] = r25;
	heap32[(r2+31)] = heap32[(r24+14)];
	heap32[(r2+32)] = heap32[(r24+15)];
}
else{
	r2 = r0 >> 2;
	heap32[(r2+17)] = heap32[(r2+1)];
	heap32[(r2+18)] = heap32[(r2+2)];
	heap32[(r2+19)] = heap32[(r2+3)];
	heap32[(r2+20)] = heap32[(r2+4)];
	heap32[(r2+21)] = heap32[(r2+5)];
	heap32[(r2+22)] = heap32[(r2+6)];
	heap32[(r2+23)] = heap32[(r2+7)];
	heap32[(r2+24)] = heap32[(r2+8)];
	heap32[(r2+25)] = heap32[(r2+9)];
	heap32[(r2+26)] = heap32[(r2+10)];
	heap32[(r2+27)] = heap32[(r2+11)];
	heap32[(r2+28)] = heap32[(r2+12)];
	heap32[(r2+29)] = heap32[(r2+13)];
	heap32[(r2+30)] = heap32[(r2+14)];
	r3 = (r0 + 4)|0;
	r4 = (r0 + 8)|0;
	r5 = (r0 + 12)|0;
	r6 = (r0 + 16)|0;
	r7 = (r0 + 20)|0;
	r8 = (r0 + 24)|0;
	r9 = (r0 + 28)|0;
	r10 = (r0 + 32)|0;
	r11 = (r0 + 36)|0;
	r12 = (r0 + 40)|0;
	r13 = (r0 + 44)|0;
	r14 = (r0 + 48)|0;
	r15 = (r0 + 52)|0;
	heap32[(fp+-5)] = r15;
	r15 = (r0 + 56)|0;
	heap32[(fp+-3)] = r15;
	r15 = (r0 + 60)|0;
	heap32[(fp+-2)] = r15;
	r15 = (r0 + 64)|0;
	heap32[(fp+-1)] = r15;
	r15 = (r1 + 4)|0;
	r16 = (r1 + 8)|0;
	r17 = (r1 + 12)|0;
	r18 = (r1 + 16)|0;
	r19 = (r1 + 20)|0;
	r20 = (r1 + 24)|0;
	r21 = (r1 + 28)|0;
	r22 = (r1 + 32)|0;
	r23 = (r1 + 36)|0;
	r24 = (r1 + 40)|0;
	heap32[(fp+-10)] = r24;
	r24 = (r1 + 44)|0;
	heap32[(fp+-4)] = r24;
	r24 = (r1 + 48)|0;
	heap32[(fp+-7)] = r24;
	r24 = (r1 + 52)|0;
	heap32[(fp+-6)] = r24;
	r24 = (r1 + 56)|0;
	heap32[(fp+-9)] = r24;
	r24 = (r1 + 60)|0;
	heap32[(fp+-8)] = r24;
	heap32[(r2+31)] = heap32[(r2+15)];
	heap32[(r2+32)] = heap32[(r2+16)];
}
	r2 = r0 >> 2;
	heap32[(r2+33)] = heap32[(r2+76)];
	heap32[(r2+34)] = heap32[(r2+77)];
	heap32[(r2+35)] = heap32[(r2+78)];
	heap32[(r2+36)] = heap32[(r2+79)];
	heap32[(r2+37)] = heap32[(r2+80)];
	heap32[(r2+38)] = heap32[(r2+81)];
	heap32[(r2+39)] = heap32[(r2+82)];
	r3 = r3 >> 2;
	r1 = r1 >> 2;
	heap32[(r2+40)] = heap32[(r2+83)];
	r2 = r4 >> 2;
	r4 = r15 >> 2;
	heap32[(r3)] = heap32[(r1)];
	r1 = r5 >> 2;
	r3 = r16 >> 2;
	heap32[(r2)] = heap32[(r4)];
	r2 = r6 >> 2;
	r4 = r17 >> 2;
	heap32[(r1)] = heap32[(r3)];
	r1 = r7 >> 2;
	r3 = r18 >> 2;
	heap32[(r2)] = heap32[(r4)];
	r2 = r8 >> 2;
	r4 = r19 >> 2;
	heap32[(r1)] = heap32[(r3)];
	r1 = r9 >> 2;
	r3 = r20 >> 2;
	heap32[(r2)] = heap32[(r4)];
	r2 = r10 >> 2;
	r4 = r21 >> 2;
	heap32[(r1)] = heap32[(r3)];
	r1 = r11 >> 2;
	r3 = r22 >> 2;
	heap32[(r2)] = heap32[(r4)];
	r2 = r12 >> 2;
	r4 = r23 >> 2;
	heap32[(r1)] = heap32[(r3)];
	r1 = r13 >> 2;
	r3 = heap32[(fp+-10)];
	r3 = r3 >> 2;
	heap32[(r2)] = heap32[(r4)];
	r2 = r14 >> 2;
	r4 = heap32[(fp+-4)];
	r4 = r4 >> 2;
	heap32[(r1)] = heap32[(r3)];
	r1 = heap32[(fp+-5)];
	r1 = r1 >> 2;
	r3 = heap32[(fp+-7)];
	r3 = r3 >> 2;
	heap32[(r2)] = heap32[(r4)];
	r2 = heap32[(fp+-3)];
	r2 = r2 >> 2;
	r4 = heap32[(fp+-6)];
	r4 = r4 >> 2;
	heap32[(r1)] = heap32[(r3)];
	r1 = heap32[(fp+-2)];
	r1 = r1 >> 2;
	r3 = heap32[(fp+-9)];
	r3 = r3 >> 2;
	heap32[(r2)] = heap32[(r4)];
	r2 = heap32[(fp+-1)];
	r2 = r2 >> 2;
	r4 = heap32[(fp+-8)];
	r4 = r4 >> 2;
	heap32[(r1)] = heap32[(r3)];
	heap32[(r2)] = heap32[(r4)];
	heap32[(g0)] = r0;
	_ZN11btRigidBody19updateInertiaTensorEv(i7);
	return;
}

function _ZNK11btRigidBody28calculateSerializeBufferSizeEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 480;
	r_g0 = r0;
	return;
}

function _ZNK11btRigidBody21serializeSingleObjectEP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r0 >> 2;
	r3 = r1 >> 2;
	r4 = heap32[(r3)];
	r5 = heap32[(r2)];
	r4 = r4 >> 2;
	r5 = r5 >> 2;
	r4 = heap32[(r4+4)];
	r5 = heap32[(r5+4)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = 1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r_g0;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r5 = r4 >> 2;
	r2 = heap32[(r2+5)];
	r5 = heap32[(r5+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+5)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r_g0;
	heap32[(g0+3)] = 1497645650;
	heap32[(g0+4)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	return;
}

function _ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heapU8[r0+232];
	r1 = r1 & 2;
_1: do {
	if(r1 !=0) //_LBB681_2
{
	if(r0 ==0) //_LBB681_1
{
__label__ = 1;
}
else{
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r2 = heap32[(r1+120)];
	r3 = 0;
_4: while(true){
	if(r2 >r3) //_LBB681_4
{
	r4 = heap32[(r1+122)];
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r5 = heap32[(r4+5)];
	if(r5 !=r0) //_LBB681_6
{
	r4 = heap32[(r4+6)];
	if(r4 ==r0) //_LBB681_5
{
break _4;
}
else{
	r3 = (r3 + 1)|0;
}
}
else{
break _4;
}
}
else{
__label__ = 1;
break _1;
}
}
	r0 = 0;
__label__ = 9;
}
}
else{
__label__ = 1;
}
} while(0);
if (__label__ == 1){
	r0 = 1;
}
	r0 = r0 & 255;
	r_g0 = r0;
	return;
}

function _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
	var f12;
	var f13;
	var f14;
	var f15;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	heap32[(r1+58)] = 2;
	heap32[(r1+76)] = 0;
	heap32[(r1+77)] = 0;
	heap32[(r1+78)] = 0;
	heap32[(r1+79)] = 0;
	heap32[(r1+80)] = 0;
	heap32[(r1+81)] = 0;
	heap32[(r1+82)] = 0;
	heap32[(r1+83)] = 0;
	heap32[(r1+134)] = 1065353216;
	heap32[(r1+135)] = 1065353216;
	heap32[(r1+136)] = 1065353216;
	heap32[(r1+137)] = 0;
	heap32[(r1+85)] = 1065353216;
	heap32[(r1+86)] = 1065353216;
	heap32[(r1+87)] = 1065353216;
	heap32[(r1+88)] = 0;
	heap32[(r1+89)] = 0;
	heap32[(r1+90)] = 0;
	heap32[(r1+91)] = 0;
	heap32[(r1+92)] = 0;
	heap32[(r1+93)] = 0;
	heap32[(r1+94)] = 0;
	heap32[(r1+95)] = 0;
	heap32[(r1+96)] = 0;
	heap32[(r1+101)] = 0;
	heap32[(r1+102)] = 0;
	heap32[(r1+103)] = 0;
	heap32[(r1+104)] = 0;
	heap32[(r1+105)] = 0;
	heap32[(r1+106)] = 0;
	heap32[(r1+107)] = 0;
	heap32[(r1+108)] = 0;
	heap32[(r1+109)] = 0;
	r2 = heap32[(fp+1)];
	heap32[(r1+110)] = 1056964608;
	r3 = r2 >> 2;
	heap32[(r1+116)] = heap32[(r3+27)];
	heap32[(r1+117)] = heap32[(r3+28)];
	r4 = heap32[(r3+1)];
	heap32[(r1+118)] = r4;
	heap32[(r1+150)] = 0;
	heap32[(r1+151)] = 0;
	r5 = heapU8[r2+116];
	heap8[r0+444] = r5;
	heap32[(r1+112)] = heap32[(r3+30)];
	heap32[(r1+113)] = heap32[(r3+31)];
	heap32[(r1+114)] = heap32[(r3+32)];
	heap32[(r1+115)] = heap32[(r3+33)];
	if(r4 ==0) //_LBB682_2
{
	f0 = heapFloat[(r3+2)];
	heapFloat[(r1+1)] = f0;
	f1 = heapFloat[(r3+3)];
	heapFloat[(r1+2)] = f1;
	f2 = heapFloat[(r3+4)];
	heapFloat[(r1+3)] = f2;
	f3 = heapFloat[(r3+5)];
	heapFloat[(r1+4)] = f3;
	f4 = heapFloat[(r3+6)];
	heapFloat[(r1+5)] = f4;
	f5 = heapFloat[(r3+7)];
	heapFloat[(r1+6)] = f5;
	f6 = heapFloat[(r3+8)];
	heapFloat[(r1+7)] = f6;
	f7 = heapFloat[(r3+9)];
	heapFloat[(r1+8)] = f7;
	f8 = heapFloat[(r3+10)];
	heapFloat[(r1+9)] = f8;
	f9 = heapFloat[(r3+11)];
	heapFloat[(r1+10)] = f9;
	f10 = heapFloat[(r3+12)];
	heapFloat[(r1+11)] = f10;
	f11 = heapFloat[(r3+13)];
	heapFloat[(r1+12)] = f11;
	f12 = heapFloat[(r3+14)];
	heapFloat[(r1+13)] = f12;
	f13 = heapFloat[(r3+15)];
	heapFloat[(r1+14)] = f13;
	f14 = heapFloat[(r3+16)];
	heapFloat[(r1+15)] = f14;
	f15 = heapFloat[(r3+17)];
	heapFloat[(r1+16)] = f15;
}
else{
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+2)];
	r6 = (r0 + 4)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r6;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	f0 = heapFloat[(r1+1)];
	f1 = heapFloat[(r1+2)];
	f2 = heapFloat[(r1+3)];
	f3 = heapFloat[(r1+4)];
	f4 = heapFloat[(r1+5)];
	f5 = heapFloat[(r1+6)];
	f6 = heapFloat[(r1+7)];
	f7 = heapFloat[(r1+8)];
	f8 = heapFloat[(r1+9)];
	f9 = heapFloat[(r1+10)];
	f10 = heapFloat[(r1+11)];
	f11 = heapFloat[(r1+12)];
	f12 = heapFloat[(r1+13)];
	f13 = heapFloat[(r1+14)];
	f14 = heapFloat[(r1+15)];
	f15 = heapFloat[(r1+16)];
}
	heapFloat[(r1+17)] = f0;
	heapFloat[(r1+18)] = f1;
	heapFloat[(r1+19)] = f2;
	heapFloat[(r1+20)] = f3;
	heapFloat[(r1+21)] = f4;
	heapFloat[(r1+22)] = f5;
	heapFloat[(r1+23)] = f6;
	heapFloat[(r1+24)] = f7;
	heapFloat[(r1+25)] = f8;
	heapFloat[(r1+26)] = f9;
	heapFloat[(r1+27)] = f10;
	heapFloat[(r1+28)] = f11;
	heapFloat[(r1+29)] = f12;
	heapFloat[(r1+30)] = f13;
	heapFloat[(r1+31)] = f14;
	heapFloat[(r1+32)] = f15;
	heap32[(r1+33)] = 0;
	heap32[(r1+34)] = 0;
	heap32[(r1+35)] = 0;
	heap32[(r1+36)] = 0;
	heap32[(r1+37)] = 0;
	heap32[(r1+38)] = 0;
	heap32[(r1+39)] = 0;
	heap32[(r1+40)] = 0;
	heap32[(r1+56)] = heap32[(r3+25)];
	heap32[(r1+57)] = heap32[(r3+26)];
	r4 = heap32[(r1)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+3)];
	r5 = heap32[(r3+18)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	r5 = _ZL8uniqueId;
	r5 = r5 >> 2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = heap32[(r5)];
	r6 = (r4 + 1)|0;
	heap32[(r1+125)] = r4;
	heap32[(r5)] = r6;
	f0 = heapFloat[(r3)];
	r2 = (r2 + 76)|0;
	heap32[(g0)] = r0;
	heapFloat[(g0+1)] = f0;
	heap32[(g0+2)] = r2;
	_ZN11btRigidBody12setMassPropsEfRK9btVector3(i7);
	f0 = heapFloat[(r3+23)];
	f1 = heapFloat[(r3+24)];
	f2 =                         0;
	if(f0 >=f2) //_LBB682_5
{
	f3 =                         1;
	f0 = f0 > f3 ? f3 : f0;
}
else{
	f0 = f2;
}
	heapFloat[(r1+109)] = f0;
	if(f1 >=f2) //_LBB682_8
{
	f0 =                         1;
	f1 = f1 > f0 ? f0 : f1;
}
else{
	f1 =                         0;
}
	heapFloat[(r1+110)] = f1;
	heap32[(g0)] = r0;
	_ZN11btRigidBody19updateInertiaTensorEv(i7);
	heap32[(r1+124)] = 0;
	heap32[(r1+126)] = 0;
	heap32[(r1+127)] = 0;
	heap32[(r1+128)] = 0;
	heap32[(r1+129)] = 0;
	heap32[(r1+130)] = 0;
	heap32[(r1+131)] = 0;
	heap32[(r1+132)] = 0;
	heap32[(r1+133)] = 0;
	f0 = heapFloat[(r1+87)];
	f1 = heapFloat[(r1+84)];
	f2 = heapFloat[(r1+86)];
	f3 = heapFloat[(r1+85)];
	f3 = f3*f1;
	f2 = f2*f1;
	heapFloat[(r1+138)] = f3;
	f0 = f0*f1;
	heapFloat[(r1+139)] = f2;
	heapFloat[(r1+140)] = f0;
	heap32[(r1+141)] = 0;
	heap32[(r1+142)] = 0;
	heap32[(r1+143)] = 0;
	heap32[(r1+144)] = 0;
	heap32[(r1+145)] = 0;
	heap32[(r1+146)] = 0;
	heap32[(r1+147)] = 0;
	heap32[(r1+148)] = 0;
	heap32[(r1+149)] = 0;
	return;
}

function _ZN11btRigidBodyD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV11btRigidBody;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+120)];
	if(r1 ==0) //_LBB683_2
{
	r1 = heap32[(r2+122)];
if(!(r1 ==0)) //_LBB683_6
{
	r3 = heapU8[r0+492];
if(!(r3 ==0)) //_LBB683_5
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+122)] = 0;
}
	r1 = 1;
	heap8[r0+492] = r1;
	heap32[(r2+122)] = 0;
	r1 = _ZTV17btCollisionObject;
	heap32[(r2+120)] = 0;
	r1 = (r1 + 8)|0;
	heap32[(r2+121)] = 0;
	heap32[(r2)] = r1;
if(!(r0 ==0)) //_LBB683_8
{
	r0 = gNumAlignedFree;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	r0 = heap32[(r2+-1)];
	heap32[(g0)] = r0;
	free(i7);
}
	return;
}
else{
	r0 = _2E_str248;
	r2 = _2E_str34955;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 175;
	_assert(i7);
}
}

function _ZN11btRigidBodyD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTV11btRigidBody;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	r1 = heap32[(r2+120)];
	if(r1 ==0) //_LBB684_2
{
	r1 = heap32[(r2+122)];
if(!(r1 ==0)) //_LBB684_6
{
	r3 = heapU8[r0+492];
if(!(r3 ==0)) //_LBB684_5
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1)|0;
	r1 = r1 >> 2;
	heap32[(r3)] = r4;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	free(i7);
}
	heap32[(r2+122)] = 0;
}
	r1 = 1;
	heap8[r0+492] = r1;
	heap32[(r2+122)] = 0;
	r0 = _ZTV17btCollisionObject;
	heap32[(r2+120)] = 0;
	r0 = (r0 + 8)|0;
	heap32[(r2+121)] = 0;
	heap32[(r2)] = r0;
	return;
}
else{
	r0 = _2E_str248;
	r2 = _2E_str34955;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 175;
	_assert(i7);
}
}

function _ZNK11btRigidBody9serializeEPvP12btSerializer(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	r1 = r1 >> 2;
	r2 = r0 >> 2;
	_ZNK17btCollisionObject9serializeEPvP12btSerializer(i7);
	heap32[(r1+62)] = heap32[(r2+64)];
	heap32[(r1+63)] = heap32[(r2+65)];
	heap32[(r1+64)] = heap32[(r2+66)];
	heap32[(r1+65)] = heap32[(r2+67)];
	heap32[(r1+66)] = heap32[(r2+68)];
	heap32[(r1+67)] = heap32[(r2+69)];
	heap32[(r1+68)] = heap32[(r2+70)];
	heap32[(r1+69)] = heap32[(r2+71)];
	heap32[(r1+70)] = heap32[(r2+72)];
	heap32[(r1+71)] = heap32[(r2+73)];
	heap32[(r1+72)] = heap32[(r2+74)];
	heap32[(r1+73)] = heap32[(r2+75)];
	heap32[(r1+74)] = heap32[(r2+76)];
	heap32[(r1+75)] = heap32[(r2+77)];
	heap32[(r1+76)] = heap32[(r2+78)];
	heap32[(r1+77)] = heap32[(r2+79)];
	heap32[(r1+78)] = heap32[(r2+80)];
	heap32[(r1+79)] = heap32[(r2+81)];
	heap32[(r1+80)] = heap32[(r2+82)];
	heap32[(r1+81)] = heap32[(r2+83)];
	heap32[(r1+110)] = heap32[(r2+84)];
	heap32[(r1+82)] = heap32[(r2+134)];
	heap32[(r1+83)] = heap32[(r2+135)];
	heap32[(r1+84)] = heap32[(r2+136)];
	heap32[(r1+85)] = heap32[(r2+137)];
	heap32[(r1+86)] = heap32[(r2+85)];
	heap32[(r1+87)] = heap32[(r2+86)];
	heap32[(r1+88)] = heap32[(r2+87)];
	heap32[(r1+89)] = heap32[(r2+88)];
	heap32[(r1+90)] = heap32[(r2+89)];
	heap32[(r1+91)] = heap32[(r2+90)];
	heap32[(r1+92)] = heap32[(r2+91)];
	heap32[(r1+93)] = heap32[(r2+92)];
	heap32[(r1+94)] = heap32[(r2+93)];
	heap32[(r1+95)] = heap32[(r2+94)];
	heap32[(r1+96)] = heap32[(r2+95)];
	heap32[(r1+97)] = heap32[(r2+96)];
	heap32[(r1+98)] = heap32[(r2+97)];
	heap32[(r1+99)] = heap32[(r2+98)];
	heap32[(r1+100)] = heap32[(r2+99)];
	heap32[(r1+101)] = heap32[(r2+100)];
	heap32[(r1+102)] = heap32[(r2+101)];
	heap32[(r1+103)] = heap32[(r2+102)];
	heap32[(r1+104)] = heap32[(r2+103)];
	heap32[(r1+105)] = heap32[(r2+104)];
	heap32[(r1+106)] = heap32[(r2+105)];
	heap32[(r1+107)] = heap32[(r2+106)];
	heap32[(r1+108)] = heap32[(r2+107)];
	heap32[(r1+109)] = heap32[(r2+108)];
	heap32[(r1+111)] = heap32[(r2+109)];
	heap32[(r1+112)] = heap32[(r2+110)];
	r0 = heapU8[r0+444];
	heap32[(r1+119)] = r0;
	heap32[(r1+113)] = heap32[(r2+112)];
	heap32[(r1+114)] = heap32[(r2+113)];
	heap32[(r1+115)] = heap32[(r2+114)];
	heap32[(r1+116)] = heap32[(r2+115)];
	heap32[(r1+117)] = heap32[(r2+116)];
	heap32[(r1+118)] = heap32[(r2+117)];
	r0 = _2E_str4144;
	r_g0 = r0;
	return;
}

function _ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+1)];
	r3 = heap32[(r1+120)];
	r4 = 0;
_1: while(true){
	if(r3 >r4) //_LBB686_1
{
	r5 = heap32[(r1+122)];
	r6 = r4 << 2;
	r5 = (r5 + r6)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	if(r5 !=r2) //_LBB686_3
{
	r4 = (r4 + 1)|0;
continue _1;
}
else{
__label__ = 5;
break _1;
}
}
else{
__label__ = 4;
break _1;
}
}
if (__label__ == 4){
	r4 = r3;
}
if(!(r3 !=r4)) //_LBB686_27
{
	r4 = heap32[(r1+121)];
	if(r4 ==r3) //_LBB686_9
{
	r5 = 1;
	r6 = r3 << 1;
	r6 = r3 == 0 ? r5 : r6;
if(!(r4 >=r6)) //_LBB686_8
{
	if(r6 !=0) //_LBB686_12
{
	r4 = gNumAlignedAllocs;
	r4 = r4 >> 2;
	r7 = heap32[(r4)];
	r8 = r6 << 2;
	r7 = (r7 + 1)|0;
	r8 = r8 | 3;
	heap32[(r4)] = r7;
	r4 = (r8 + 16)|0;
	heap32[(g0)] = r4;
	malloc(i7);
	r4 = r_g0;
	if(r4 !=0) //_LBB686_14
{
	r7 = 0;
	r8 = (r4 + 4)|0;
	r7 = (r7 - r8)|0;
	r7 = r7 & 15;
	r7 = (r4 + r7)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r4;
	r4 = r8;
}
}
else{
	r4 = 0;
}
_18: do {
	if(r3 <1) //_LBB686_17
{
	r8 = heap32[(r1+122)];
}
else{
	r7 = 0;
_21: while(true){
	r8 = heap32[(r1+122)];
	r9 = r7 << 2;
	r10 = (r8 + r9)|0;
	r10 = r10 >> 2;
	r9 = (r4 + r9)|0;
	r10 = heap32[(r10)];
	r7 = (r7 + 1)|0;
	r9 = r9 >> 2;
	heap32[(r9)] = r10;
if(!(r3 !=r7)) //_LBB686_18
{
break _18;
}
}
}
} while(0);
	if(r8 !=0) //_LBB686_21
{
	r7 = heapU8[r0+492];
	if(r7 !=0) //_LBB686_23
{
	r3 = gNumAlignedFree;
	r3 = r3 >> 2;
	r7 = heap32[(r3)];
	r7 = (r7 + 1)|0;
	r8 = r8 >> 2;
	heap32[(r3)] = r7;
	r3 = heap32[(r8+-1)];
	heap32[(g0)] = r3;
	free(i7);
	r3 = heap32[(r1+120)];
}
	heap32[(r1+122)] = 0;
}
	heap8[r0+492] = r5;
	heap32[(r1+122)] = r4;
	heap32[(r1+121)] = r6;
}
}
	r0 = r3 << 2;
	r3 = heap32[(r1+122)];
	r0 = (r3 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r1+120)];
	r0 = (r0 + 1)|0;
	heap32[(r1+120)] = r0;
}
	heap32[(r1+63)] = 1;
	return;
}

function _ZN11btRigidBody19integrateVelocitiesEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
	var f9;
	var f10;
	var f11;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+204];
	r1 = r1 & 3;
if(!(r1 !=0)) //_LBB687_3
{
	f0 = heapFloat[(fp+1)];
	r0 = r0 >> 2;
	f1 = heapFloat[(r0+84)];
	f1 = f1*f0;
	f2 = heapFloat[(r0+101)];
	f3 = heapFloat[(r0+103)];
	f4 = heapFloat[(r0+102)];
	f5 = heapFloat[(r0+76)];
	f2 = f2*f1;
	f2 = f5+f2;
	heapFloat[(r0+76)] = f2;
	f2 = f4*f1;
	f4 = heapFloat[(r0+77)];
	f2 = f4+f2;
	heapFloat[(r0+77)] = f2;
	f1 = f3*f1;
	f2 = heapFloat[(r0+78)];
	f1 = f2+f1;
	heapFloat[(r0+78)] = f1;
	f1 = heapFloat[(r0+105)];
	f2 = heapFloat[(r0+64)];
	f3 = heapFloat[(r0+106)];
	f4 = heapFloat[(r0+65)];
	f2 = f2*f1;
	f4 = f4*f3;
	f5 = heapFloat[(r0+107)];
	f6 = heapFloat[(r0+66)];
	f2 = f2+f4;
	f4 = f6*f5;
	f2 = f2+f4;
	f4 = heapFloat[(r0+68)];
	f6 = heapFloat[(r0+69)];
	f7 = heapFloat[(r0+72)];
	f8 = heapFloat[(r0+73)];
	f9 = heapFloat[(r0+74)];
	f10 = heapFloat[(r0+70)];
	f11 = heapFloat[(r0+80)];
	f2 = f2*f0;
	f4 = f4*f1;
	f6 = f6*f3;
	f2 = f11+f2;
	f4 = f4+f6;
	f6 = f10*f5;
	f4 = f4+f6;
	heapFloat[(r0+80)] = f2;
	f1 = f7*f1;
	f3 = f8*f3;
	f4 = f4*f0;
	f6 = heapFloat[(r0+81)];
	f4 = f6+f4;
	f1 = f1+f3;
	f3 = f9*f5;
	f1 = f1+f3;
	heapFloat[(r0+81)] = f4;
	f1 = f1*f0;
	f3 = heapFloat[(r0+82)];
	f1 = f3+f1;
	f2 = f2*f2;
	f3 = f4*f4;
	heapFloat[(r0+82)] = f1;
	f2 = f2+f3;
	f1 = f1*f1;
	f1 = f2+f1;
	heapFloat[(g0)] = f1;
	sqrtf(i7);
	f1 = f_g0;
	f2 = f1*f0;
	f3 =        1.5707963705062866;
if(!(f2 <=f3)) //_LBB687_3
{
	f0 = f3/f0;
	f0 = f0/f1;
	f1 = heapFloat[(r0+80)];
	f1 = f1*f0;
	heapFloat[(r0+80)] = f1;
	f1 = heapFloat[(r0+81)];
	f1 = f1*f0;
	heapFloat[(r0+81)] = f1;
	f1 = heapFloat[(r0+82)];
	f0 = f1*f0;
	heapFloat[(r0+82)] = f0;
}
}
	return;
}

function _ZN11btRigidBody12applyDampingEf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
	var f3;
	var f4;
	var f5;
	var f6;
	var f7;
	var f8;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	f0 = heapFloat[(r1+109)];
	f1 =                         1;
	f2 = heapFloat[(fp+1)];
	f0 = f1-f0;
	heapFloat[(g0)] = f0;
	heapFloat[(g0+1)] = f2;
	powf(i7);
	f3 = heapFloat[(r1+76)];
	f3 = f3*f_g0;
	heapFloat[(r1+76)] = f3;
	f3 = heapFloat[(r1+77)];
	f3 = f3*f_g0;
	heapFloat[(r1+77)] = f3;
	f3 = heapFloat[(r1+78)];
	f0 = f3*f_g0;
	heapFloat[(r1+78)] = f0;
	f0 = heapFloat[(r1+110)];
	f0 = f1-f0;
	heapFloat[(g0)] = f0;
	heapFloat[(g0+1)] = f2;
	powf(i7);
	f2 = heapFloat[(r1+80)];
	f2 = f2*f_g0;
	heapFloat[(r1+80)] = f2;
	f3 = heapFloat[(r1+81)];
	f3 = f3*f_g0;
	heapFloat[(r1+81)] = f3;
	f4 = heapFloat[(r1+82)];
	f0 = f4*f_g0;
	heapFloat[(r1+82)] = f0;
	r0 = heapU8[r0+444];
if(!(r0 ==0)) //_LBB688_14
{
	f4 = f2*f2;
	f5 = f3*f3;
	f6 = heapFloat[(r1+76)];
	f4 = f4+f5;
	f5 = f0*f0;
	f4 = f4+f5;
	f5 = heapFloat[(r1+114)];
	if(f4 <f5) //_LBB688_3
{
	f4 = heapFloat[(r1+77)];
	f5 = heapFloat[(r1+78)];
	f7 = f6*f6;
	f8 = f4*f4;
	f7 = f7+f8;
	f8 = f5*f5;
	f7 = f7+f8;
	f8 = heapFloat[(r1+113)];
	if(f7 <f8) //_LBB688_5
{
	f7 = heapFloat[(r1+112)];
	f2 = f2*f7;
	f3 = f3*f7;
	heapFloat[(r1+80)] = f2;
	f0 = f0*f7;
	heapFloat[(r1+81)] = f3;
	f6 = f6*f7;
	heapFloat[(r1+82)] = f0;
	f4 = f4*f7;
	heapFloat[(r1+76)] = f6;
	f5 = f5*f7;
	heapFloat[(r1+77)] = f4;
	heapFloat[(r1+78)] = f5;
}
}
else{
	f4 = heapFloat[(r1+77)];
	f5 = heapFloat[(r1+78)];
}
	f0 = f6*f6;
	f2 = f4*f4;
	f0 = f0+f2;
	f2 = f5*f5;
	f0 = f0+f2;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f_g0;
	f2 = heapFloat[(r1+109)];
if(!(f2 <=f0)) //_LBB688_10
{
	f2 =      0.004999999888241291;
	if(f0 <=f2) //_LBB688_9
{
	heap32[(r1+76)] = 0;
	heap32[(r1+77)] = 0;
	heap32[(r1+78)] = 0;
	heap32[(r1+79)] = 0;
}
else{
	f0 = heapFloat[(r1+76)];
	f3 = heapFloat[(r1+77)];
	f4 = heapFloat[(r1+78)];
	f0 = f0*f0;
	f3 = f3*f3;
	f0 = f0+f3;
	f3 = f4*f4;
	f0 = f0+f3;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f1/f_g0;
	f3 = heapFloat[(r1+76)];
	f4 = heapFloat[(r1+77)];
	f5 = f3*f0;
	f6 = heapFloat[(r1+78)];
	f7 = f4*f0;
	f5 = f5*f2;
	f0 = f6*f0;
	f7 = f7*f2;
	f3 = f3-f5;
	f0 = f0*f2;
	f2 = f4-f7;
	heapFloat[(r1+76)] = f3;
	f0 = f6-f0;
	heapFloat[(r1+77)] = f2;
	heapFloat[(r1+78)] = f0;
}
}
	f0 = heapFloat[(r1+80)];
	f2 = heapFloat[(r1+81)];
	f3 = heapFloat[(r1+82)];
	f0 = f0*f0;
	f2 = f2*f2;
	f0 = f0+f2;
	f2 = f3*f3;
	f0 = f0+f2;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f_g0;
	f2 = heapFloat[(r1+110)];
if(!(f2 <=f0)) //_LBB688_14
{
	f2 =      0.004999999888241291;
	if(f0 <=f2) //_LBB688_13
{
	heap32[(r1+80)] = 0;
	heap32[(r1+81)] = 0;
	heap32[(r1+82)] = 0;
	heap32[(r1+83)] = 0;
}
else{
	f0 = heapFloat[(r1+80)];
	f3 = heapFloat[(r1+81)];
	f4 = heapFloat[(r1+82)];
	f0 = f0*f0;
	f3 = f3*f3;
	f0 = f0+f3;
	f3 = f4*f4;
	f0 = f0+f3;
	heapFloat[(g0)] = f0;
	sqrtf(i7);
	f0 = f1/f_g0;
	f1 = heapFloat[(r1+80)];
	f3 = heapFloat[(r1+81)];
	f4 = f1*f0;
	f5 = heapFloat[(r1+82)];
	f6 = f3*f0;
	f4 = f4*f2;
	f0 = f5*f0;
	f6 = f6*f2;
	f1 = f1-f4;
	f0 = f0*f2;
	f2 = f3-f6;
	heapFloat[(r1+80)] = f1;
	f0 = f5-f0;
	heapFloat[(r1+81)] = f2;
	heapFloat[(r1+82)] = f0;
	return;
}
}
}
	return;
}

function _GLOBAL__I__ZN7btClockC2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZL13gProfileClock_2E_0;
	heap32[(g0)] = 8;
	r0 = r0 >> 2;
	_Znwj(i7);
	heap32[(r0)] = r_g0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = 0;
	r0 = _ZN15CProfileManager4RootE;
	r1 = r0 >> 2;
	r2 = _2E_str729;
	gettimeofday(i7);
	heap32[(r1)] = r2;
	heap32[(r1+1)] = 0;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = 0;
	heap32[(r1+4)] = 0;
	heap32[(r1+5)] = 0;
	heap32[(r1+6)] = 0;
	heap32[(r1+7)] = 0;
	heap32[(g0)] = r0;
	_ZN12CProfileNode5ResetEv(i7);
	return;
}

function _GLOBAL__D__ZN7btClockC2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZN15CProfileManager4RootE;
	r1 = _ZL13gProfileClock_2E_0;
	heap32[(g0)] = r0;
	r0 = r1 >> 2;
	_ZN12CProfileNodeD1Ev(i7);
	r0 = heap32[(r0)];
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN12CProfileNode5ResetEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
_1: while(true){
	r0 = r0 >> 2;
	heap32[(r0+1)] = 0;
	heap32[(r0+2)] = 0;
	r1 = heap32[(r0+6)];
if(!(r1 ==0)) //_LBB691_3
{
	heap32[(g0)] = r1;
	_ZN12CProfileNode5ResetEv(i7);
}
	r0 = heap32[(r0+7)];
	if(r0 !=0) //_LBB691_1
{
continue _1;
}
else{
break _1;
}
}
	return;
}

function _ZN12CProfileNodeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+6)];
if(!(r1 ==0)) //_LBB692_2
{
	heap32[(g0)] = r1;
	_ZN12CProfileNodeD1Ev(i7);
	heap32[(g0)] = r1;
	_ZdlPv(i7);
}
	r0 = heap32[(r0+7)];
if(!(r0 ==0)) //_LBB692_4
{
	heap32[(g0)] = r0;
	_ZN12CProfileNodeD1Ev(i7);
	heap32[(g0)] = r0;
	_ZdlPv(i7);
}
	return;
}

function _ZN15CProfileManager13Start_ProfileEPKc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _ZN15CProfileManager11CurrentNodeE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = heap32[(fp)];
	r3 = r1 >> 2;
	r4 = heap32[(r3)];
	if(r4 !=r2) //_LBB693_2
{
	r4 = (r1 + 24)|0;
_3: while(true){
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	if(r4 !=0) //_LBB693_3
{
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	if(r5 !=r2) //_LBB693_5
{
	r4 = (r4 + 28)|0;
}
else{
__label__ = 3;
break _3;
}
}
else{
__label__ = 6;
break _3;
}
}
switch(__label__ ){//multiple entries
case 6:
	heap32[(g0)] = 32;
	_Znwj(i7);
	r4 = r_g0;
	r5 = r4 >> 2;
	heap32[(r5)] = r2;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	heap32[(r5+4)] = 0;
	heap32[(r5+5)] = r1;
	heap32[(r5+6)] = 0;
	heap32[(r5+7)] = 0;
	heap32[(g0)] = r4;
	_ZN12CProfileNode5ResetEv(i7);
	r1 = heap32[(r3+6)];
	heap32[(r5+7)] = r1;
	heap32[(r3+6)] = r4;
	r1 = r4;
break;
case 3:
	r1 = r4;
break;
}
	heap32[(r0)] = r1;
}
	r0 = r1 >> 2;
	r1 = heap32[(r0+1)];
	r1 = (r1 + 1)|0;
	heap32[(r0+1)] = r1;
	r1 = heap32[(r0+4)];
	r2 = (r1 + 1)|0;
	heap32[(r0+4)] = r2;
if(!(r1 !=0)) //_LBB693_11
{
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	r2 = _ZL13gProfileClock_2E_0;
	gettimeofday(i7);
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r1 = r1 >> 2;
	r3 = heap32[(fp+-2)];
	r4 = heap32[(r2)];
	r3 = (r3 - r4)|0;
	r1 = heap32[(r1+1)];
	r2 = heap32[(r2+1)];
	r1 = (r1 - r2)|0;
	r2 = (r3 * 1000000)|0;
	r1 = (r1 + r2)|0;
	heap32[(r0+3)] = r1;
}
	return;
}

function _ZN15CProfileManager5ResetEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = _ZL13gProfileClock_2E_0;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	gettimeofday(i7);
	r1 = _ZN15CProfileManager4RootE;
	heap32[(g0)] = r1;
	r1 = r1 >> 2;
	_ZN12CProfileNode5ResetEv(i7);
	r2 = heap32[(r1+1)];
	r2 = (r2 + 1)|0;
	heap32[(r1+1)] = r2;
	r2 = heap32[(r1+4)];
	r3 = (r2 + 1)|0;
	heap32[(r1+4)] = r3;
if(!(r2 !=0)) //_LBB694_2
{
	r2 = sp + -16;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 0;
	gettimeofday(i7);
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r2 = r2 >> 2;
	r3 = heap32[(fp+-4)];
	r4 = heap32[(r0)];
	r3 = (r3 - r4)|0;
	r2 = heap32[(r2+1)];
	r0 = heap32[(r0+1)];
	r0 = (r2 - r0)|0;
	r2 = (r3 * 1000000)|0;
	r0 = (r0 + r2)|0;
	heap32[(r1+3)] = r0;
}
	r0 = _ZN15CProfileManager12FrameCounterE;
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	r0 = sp + -8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	gettimeofday(i7);
	return;
}

function _GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZN4__rwL12__rw_catlistE_2E_0;
	r1 = _ZN4__rwL12__rw_catlistE_2E_1;
	r0 = r0 >> 2;
	r2 = _ZN4__rwL12__rw_catlistE_2E_2;
	r1 = r1 >> 2;
	heap32[(r0)] = 0;
	r2 = r2 >> 2;
	heap32[(r1)] = 0;
	heap32[(r2)] = 0;
	heap32[(g0)] = 136;
	_Znwj(i7);
	r3 = r_g0;
if(!(r3 !=0)) //_LBB695_3
{
	heap32[(g0)] = 3;
	_ZN4__rw10__rw_throwEiz(i7);
}
	r4 = (r3 + 136)|0;
	heap32[(g0)] = 0;
	_ZdlPv(i7);
	r5 = heap32[(r0)];
	if(r5 ==0) //_LBB695_6
{
	r8 = r3;
}
else{
	r6 = r5;
	r7 = r3;
_9: while(true){
	r9 = r6 >> 2;
	r6 = (r6 + 4)|0;
	r8 = (r7 + 4)|0;
	r7 = r7 >> 2;
	r9 = heap32[(r9)];
	heap32[(r7)] = r9;
	r7 = r8;
	if(r6 !=0) //_LBB695_7
{
continue _9;
}
else{
break _9;
}
}
}
	r6 = 0;
_12: while(true){
	r7 = r6 << 2;
	r7 = (r8 + r7)|0;
	r6 = (r6 + 1)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = 0;
	if(r6 !=2) //_LBB695_9
{
continue _12;
}
else{
break _12;
}
}
	r6 = heap32[(r1)];
	if(r6 ==0) //_LBB695_12
{
	r6 = (r8 + 8)|0;
	heap32[(r0)] = r3;
	heap32[(r1)] = r6;
	heap32[(r2)] = r4;
	heap32[(g0)] = r5;
	_ZdlPv(i7);
	return;
}
else{
	abort(i7);
}
}

function _GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZN4__rwL12__rw_catlistE_2E_0;
	r1 = _ZN4__rwL12__rw_catlistE_2E_1;
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r0 = heap32[(r0)];
	r2 = heap32[(r1)];
	r3 = (r2 - r0)|0;
	r3 = r3 >> 2;
if(!(r3 ==0)) //_LBB696_2
{
	r3 = r3 << 2;
	r2 = (r2 - r3)|0;
	heap32[(r1)] = r2;
}
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = _ZN4__rwL16__rw_what_refcntE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+1)];
	r4 = (r1 + 1)|0;
	heap32[(r0)] = r4;
	if(r1 !=0) //_LBB697_2
{
	heap32[(g0)] = 256;
	_Znaj(i7);
	r1 = r_g0;
	r4 = heap32[(r0)];
	r4 = (r4 + -1)|0;
	heap32[(r0)] = r4;
}
else{
	r1 = _ZN4__rwL13__rw_what_bufE;
}
	r4 = 256;
	r12 = swrite__index__;
_5: while(true){
	r5 = sp + -16;
	heap32[(fp+-8)] = r3;
	r6 = r5 >> 2;
	heap32[(fp+-7)] = r3;
	r7 = (r4 + -1)|0;
	r8 = 0;
	heap32[(r6+1)] = 0;
	r9 = sp + -24;
	r10 = r4 == 0 ? r8 : r7;
	heap32[(fp+-4)] = r1;
	r11 = r9 >> 2;
	heap32[(r6+2)] = r10;
	heap32[(r11+1)] = r12;
	heap32[(fp+-6)] = r5;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	__v_printf(i7);
	r5 = r_g0;
_7: do {
if(!(r1 ==0)) //_LBB697_11
{
if(!(r4 ==0)) //_LBB697_11
{
if(!(r5 <0)) //_LBB697_11
{
if(!(r4 ==-1)) //_LBB697_10
{
if(!(uint(r5) <uint(r4))) //_LBB697_10
{
	heap8[r1+r7] = r8;
break _7;
}
}
	heap8[r1+r5] = r8;
}
}
}
} while(0);
	r5 = r5 < 0 ? r8 : r5;
	r5 = r7 > r5 ? r5 : r8;
	if(r5 !=0) //_LBB697_13
{
	if(r4 >r5) //_LBB697_20
{
break _5;
}
else{
	r4 = (r5 + 1)|0;
}
}
else{
	r4 = r4 << 1;
}
	r5 = _ZN4__rwL13__rw_what_bufE;
	if(r1 !=r5) //_LBB697_17
{
if(!(r1 ==0)) //_LBB697_19
{
	heap32[(g0)] = r1;
	_ZdaPv(i7);
}
}
else{
	r1 = heap32[(r0)];
	r1 = (r1 + -1)|0;
	heap32[(r0)] = r1;
}
	heap32[(g0)] = r4;
	_Znaj(i7);
	r1 = r_g0;
continue _5;
}
	r_g0 = r1;
	return;
}

function _ZN4__rw10__rw_throwEiz(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -64;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	if(r0 >4) //_LBB698_9
{
	r1 = (sp + 4)|0;
	heap32[(fp+-7)] = r1;
	r2 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E7__fname;
	heap32[(fp+-9)] = r1;
	r2 = r2 >> 2;
	heap32[(fp+-8)] = r1;
	r3 = heap32[(r2)];
if(!(r3 !=0)) //_LBB698_41
{
	r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer;
	r4 = 0;
_5: while(true){
	r5 = heapU8[r3];
	r4 = r5 == 58 ? r3 : r4;
	if(r5 !=0) //_LBB698_13
{
	r5 = (r3 + 1)|0;
	r6 = heapU8[r3+1];
	r4 = r6 == 58 ? r5 : r4;
	if(r6 !=0) //_LBB698_15
{
	r5 = (r3 + 2)|0;
	r6 = heapU8[r3+2];
	r4 = r6 == 58 ? r5 : r4;
	if(r6 !=0) //_LBB698_17
{
	r5 = (r3 + 3)|0;
	r6 = heapU8[r3+3];
	r4 = r6 == 58 ? r5 : r4;
	if(r6 !=0) //_LBB698_19
{
	r3 = (r3 + 4)|0;
}
else{
break _5;
}
}
else{
break _5;
}
}
else{
break _5;
}
}
else{
break _5;
}
}
_12: do {
if(!(r4 ==0)) //_LBB698_24
{
	r3 = 0;
	heap8[r4] = r3;
	r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset;
	r4 = (r4 + 1)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	sscanf(i7);
	r4 = r_g0;
	r3 = r3 >> 2;
if(!(r4 !=1)) //_LBB698_23
{
	r4 = heap32[(r3)];
	if(r4 >0) //_LBB698_24
{
break _12;
}
}
	heap32[(r3)] = 1;
}
} while(0);
	r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs;
	r4 = r3 >> 2;
	heap32[(r4+1)] = 0;
	heap32[(r4+2)] = 0;
	heap32[(r4+3)] = 0;
	heap32[(r4+4)] = 0;
	heap32[(r4+5)] = 0;
	r5 = _ZTVSt8messagesIcE;
	heap32[(r4+6)] = 0;
	r5 = (r5 + 8)|0;
	heap32[(r4+7)] = 0;
	r6 = _ZN4__rwL22__rw_classic_once_initE_2E_0_2E_b;
	heap32[(r4)] = r5;
	r5 = heapU8[r6];
if(!(r5 != 0)) //_LBB698_29
{
	_ZN4__rw11__rw_locale11_C_get_bodyEPS0_S1_PKciPKNS_10__rw_facetE(i7);
	r5 = r_g0;
	r7 = _ZN4__rwL12__rw_classicE;
	r7 = r7 >> 2;
	heap32[(r7)] = r5;
if(!(r5 !=0)) //_LBB698_28
{
	r5 = _2E_str12102177;
	r7 = _2E_str10100175;
	r8 = _2E_str538;
	heap32[(g0)] = 19;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r8;
	_ZN4__rw10__rw_throwEiz(i7);
}
	r5 = 1;
	heap8[r6] = r5;
}
	r5 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer;
	r6 = heapU8[r5];
	if(r6 ==0) //_LBB698_31
{
	r6 = _ZNSs11_C_null_refE;
	r7 = 0;
	r6 = (r6 + 12)|0;
}
else{
	r6 = 0;
_28: while(true){
	r7 = (r5 - r6)|0;
	r6 = (r6 + -1)|0;
	r7 = heapU8[r7+1];
if(!(r7 !=0)) //_LBB698_32
{
break _28;
}
}
	r7 = 0;
	r7 = (r7 - r6)|0;
	if(r6 !=0) //_LBB698_35
{
	r6 = 32;
	r6 = uint(r7) > uint(r6) ? r7 : r6;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r7;
	_ZNSs10_C_get_repEjj(i7);
	r6 = (r_g0 + 12)|0;
}
else{
	r6 = _ZNSs11_C_null_refE;
	r6 = (r6 + 12)|0;
}
}
	heap32[(fp+-4)] = r6;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r7;
	memcpy(i7);
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+2)];
	r6 = sp + -16;
	r7 = _ZN4__rwL12__rw_classicE;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r7;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r3 = r_g0;
	r4 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat;
	r4 = r4 >> 2;
	heap32[(r4)] = r3;
	r3 = heap32[(fp+-4)];
	r3 = (r3 + -12)|0;
	r4 = _ZNSs11_C_null_refE;
if(!(r3 ==r4)) //_LBB698_40
{
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r6 = (r4 + -1)|0;
	heap32[(r3)] = r6;
if(!(r4 >0)) //_LBB698_40
{
	r3 = heap32[(fp+-4)];
	r3 = (r3 + -12)|0;
	heap32[(g0)] = r3;
	_ZdlPv(i7);
}
}
	heap32[(fp+-4)] = 0;
	heap32[(r2)] = r5;
}
	r2 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	if(r2 !=-1) //_LBB698_43
{
	r3 = _ZNSs11_C_null_refE;
	r4 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs;
	r5 = (r3 + 12)|0;
	r6 = r4 >> 2;
	heap32[(fp+-2)] = r5;
	r5 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r5 = r5 >> 2;
	r6 = heap32[(r6+3)];
	r5 = heap32[(r5)];
	r7 = sp + -24;
	r8 = sp + -8;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r0;
	heap32[(g0+5)] = r8;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r2 = heap32[(fp+-2)];
	r2 = (r2 + -12)|0;
if(!(r2 ==r3)) //_LBB698_47
{
	r2 = r2 >> 2;
	r4 = heap32[(r2)];
	r5 = (r4 + -1)|0;
	heap32[(r2)] = r5;
if(!(r4 >0)) //_LBB698_47
{
	r2 = heap32[(fp+-2)];
	r2 = (r2 + -12)|0;
	heap32[(g0)] = r2;
	_ZdlPv(i7);
}
}
	heap32[(fp+-2)] = 0;
	r2 = heap32[(fp+-6)];
	r4 = r2 >> 2;
	r4 = heap32[(r4+-1)];
	if(r4 !=0) //_LBB698_49
{
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r1;
	_ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(i7);
	r1 = r_g0;
	r2 = heap32[(fp+-6)];
}
else{
	r1 = 0;
}
	r2 = (r2 + -12)|0;
if(!(r2 ==r3)) //_LBB698_54
{
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r4 = (r3 + -1)|0;
	heap32[(r2)] = r4;
if(!(r3 >0)) //_LBB698_54
{
	r2 = heap32[(fp+-6)];
	r2 = (r2 + -12)|0;
	heap32[(g0)] = r2;
	_ZdlPv(i7);
}
}
	heap32[(fp+-6)] = 0;
	if(r1 ==0) //_LBB698_56
{
__label__ = 50;
}
else{
__label__ = 51;
}
}
else{
__label__ = 50;
}
if (__label__ == 50){
	r1 = 24;
	r2 = 0;
	r0 = uint(r0) > uint(r1) ? r2 : r0;
	r1 = _ZZN4__rw10__rw_throwEizE6errors;
	r2 = r0 << 2;
	r1 = (r1 + r2)|0;
	r1 = r1 >> 2;
	r2 = heap32[(fp+-7)];
	r1 = heap32[(r1)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	_ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(i7);
	r1 = r_g0;
	if(r1 ==0) //_LBB698_60
{
	if(r0 ==2) //_LBB698_65
{
	r0 = _2E_str47;
}
else{
	if(r0 ==1) //_LBB698_64
{
	r0 = _2E_str15132;
}
else{
	if(r0 !=0) //_LBB698_66
{
	r0 = _2E_str5134;
}
else{
	r0 = _2E_str4131;
}
}
}
	heap32[(g0)] = r0;
	fprintf(i7);
__label__ = 62;
}
else{
__label__ = 51;
}
}
if (__label__ == 51){
	heap32[(g0)] = r1;
	r0 = _ZN4__rwL13__rw_what_bufE;
	fprintf(i7);
	if(r1 !=r0) //_LBB698_59
{
	heap32[(g0)] = r1;
	_ZdaPv(i7);
}
else{
	r0 = _ZN4__rwL16__rw_what_refcntE;
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r1 = (r1 + -1)|0;
	heap32[(r0)] = r1;
}
}
	abort(i7);
}
else{
	if(r0 ==2) //_LBB698_6
{
	r0 = _2E_str47;
}
else{
	if(r0 ==1) //_LBB698_5
{
	r0 = _2E_str15132;
}
else{
	if(r0 !=0) //_LBB698_7
{
	r0 = _2E_str5134;
}
else{
	r0 = _2E_str4131;
}
}
}
	heap32[(g0)] = r0;
	fprintf(i7);
	abort(i7);
}
}

function _ZN4__rw10__rw_facetD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN4__rw10__rw_facetE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	heap32[(r0+5)] = -1;
	r1 = heap32[(r0+1)];
	r2 = heap32[(r0+2)];
if(!(r1 ==r2)) //_LBB699_3
{
if(!(r1 ==0)) //_LBB699_3
{
	heap32[(g0)] = r1;
	_ZdaPv(i7);
}
}
	r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed;
	heap32[(r0+1)] = r1;
	r1 = heap32[(r0+4)];
if(!(r1 !=-1)) //_LBB699_5
{
	r0 = heap32[(r0+3)];
	heap32[(g0)] = r0;
	_ZdlPv(i7);
}
	return;
}

function _ZN4__rw10__rw_facetD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN4__rw10__rw_facetE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(r2+5)] = -1;
	r1 = heap32[(r2+1)];
	r3 = heap32[(r2+2)];
if(!(r1 ==r3)) //_LBB700_3
{
if(!(r1 ==0)) //_LBB700_3
{
	heap32[(g0)] = r1;
	_ZdaPv(i7);
}
}
	r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed;
	heap32[(r2+1)] = r1;
	r1 = heap32[(r2+4)];
if(!(r1 !=-1)) //_LBB700_5
{
	r1 = heap32[(r2+3)];
	heap32[(g0)] = r1;
	_ZdlPv(i7);
}
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_E(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE12n_std_facets;
	r1 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets;
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r2 = heap32[(fp)];
	r3 = heap32[(r0)];
	r4 = heap32[(r1)];
_1: do {
	if(r2 ==0) //_LBB701_24
{
	r5 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r6 = heap32[(fp+3)];
	r7 = _2E_str538;
	r8 = r2 == 0 ? r7 : r2;
	r9 = r3;
_3: while(true){
	r10 = r9;
	if(r10 ==0) //_LBB701_34
{
__label__ = 34;
break _3;
}
else{
	r9 = r10 << 1;
	r11 = r9 & -4;
	r12 = (r4 + r11)|0;
	r9 = r12 >> 2;
	r13 = heap32[(r9)];
	r14 = r13 >> 2;
	r15 = heap32[(r14+5)];
	r9 = r10 >>> 1;
	if(r15 !=r5) //_LBB701_27
{
	r15 = (r15 - r5)|0;
}
else{
	r15 = heap32[(r14+1)];
	r15 = r15 == 0 ? r7 : r15;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r15;
	strcmp(i7);
	r15 = r_g0;
}
	if(r15 <0) //_LBB701_31
{
__label__ = 31;
}
else{
	if(r15 <1) //_LBB701_32
{
__label__ = 32;
break _3;
}
else{
	r4 = (r11 + r4)|0;
	r10 = (r10 + -1)|0;
	r4 = (r4 + 4)|0;
	r9 = (r10 - r9)|0;
}
}
}
}
if (__label__ == 32){
if(!(r12 ==0)) //_LBB701_34
{
	r2 = heap32[(r14+6)];
	r2 = (r2 + 1)|0;
	heap32[(r14+6)] = r2;
	r_g0 = r13;
	return;
}
}
	r4 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize;
	r4 = r4 >> 2;
	r7 = heap32[(r4)];
if(!(r3 !=r7)) //_LBB701_39
{
	r3 = r3 << 3;
	heap32[(g0)] = r3;
	_Znaj(i7);
	r3 = r_g0;
	r7 = heap32[(r1)];
	r8 = heap32[(r0)];
	r8 = r8 << 2;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r8;
	memcpy(i7);
	r8 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf;
if(!(r7 ==r8)) //_LBB701_38
{
if(!(r7 ==0)) //_LBB701_38
{
	heap32[(g0)] = r7;
	_ZdaPv(i7);
}
}
	heap32[(r1)] = r3;
	r3 = heap32[(r4)];
	r3 = r3 << 1;
	heap32[(r4)] = r3;
}
	r3 = r5 & 1;
	r4 = 0;
	r2 = r3 == 0 ? r2 : r4;
	heap32[(g0)] = 1;
	heap32[(g0+1)] = r2;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r2 = r_g0;
	r3 = (r5 + 1)|0;
	r4 = r3 >>> 31;
	r6 = r2 >> 2;
	r3 = (r3 + r4)|0;
	r4 = heap32[(r6+7)];
	r4 = r4 >> 2;
	r3 = r3 >> 1;
	heap32[(r4)] = r3;
	r3 = heap32[(r6+5)];
if(!(r3 ==r5)) //_LBB701_41
{
	r3 = r2 >> 2;
	heap32[(r3+5)] = r5;
}
	r3 = r2 >> 2;
	r4 = heap32[(r3+6)];
if(!(r4 ==1)) //_LBB701_43
{
	heap32[(r3+6)] = 1;
}
	r3 = heap32[(r0)];
	r1 = heap32[(r1)];
	r4 = r3 << 2;
	r4 = (r1 + r4)|0;
	r4 = r4 >> 2;
	r5 = (r3 + 1)|0;
	heap32[(r4)] = r2;
	heap32[(r0)] = r5;
	r0 = (r3 + -1)|0;
	if(uint(r0) <uint(2147483645)) //_LBB701_45
{
	r0 = cmpfacets__index__;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r0;
	quicksort(i7);
}
}
else{
	r5 = r3;
	r6 = r4;
_31: while(true){
	r7 = r5;
	if(r7 ==0) //_LBB701_23
{
__label__ = 23;
break _31;
}
else{
	r5 = r7 << 1;
	r8 = r5 & -4;
	r9 = (r6 + r8)|0;
	r5 = r9 >> 2;
	r5 = heap32[(r5)];
	r10 = r2 >> 2;
	r11 = r5 >> 2;
	r12 = heap32[(r10+5)];
	r13 = heap32[(r11+5)];
	r5 = r7 >>> 1;
	if(r12 !=r13) //_LBB701_4
{
	r12 = (r13 - r12)|0;
}
else{
	r12 = heap32[(r11+1)];
	r13 = heap32[(r10+1)];
	r10 = _2E_str538;
	r13 = r13 == 0 ? r10 : r13;
	r12 = r12 == 0 ? r10 : r12;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r12;
	strcmp(i7);
	r12 = r_g0;
}
	if(r12 <0) //_LBB701_8
{
__label__ = 8;
}
else{
	if(r12 <1) //_LBB701_9
{
__label__ = 9;
break _31;
}
else{
	r6 = (r8 + r6)|0;
	r7 = (r7 + -1)|0;
	r6 = (r6 + 4)|0;
	r5 = (r7 - r5)|0;
}
}
}
}
if (__label__ == 9){
if(!(r9 ==0)) //_LBB701_23
{
	r2 = (r9 - r4)|0;
	r5 = r2 & -4;
	r6 = (r4 + r5)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	r7 = r6 >> 2;
	r8 = heap32[(r7+6)];
	r8 = (r8 + -1)|0;
	heap32[(r7+6)] = r8;
	if(r8 ==0) //_LBB701_12
{
	r2 = r2 >> 2;
	r8 = (r3 + -1)|0;
	heap32[(r0)] = r8;
	if(uint(r8) >uint(207)) //_LBB701_17
{
__label__ = 17;
}
else{
	r0 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf;
	if(r4 ==r0) //_LBB701_17
{
__label__ = 17;
}
else{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r5;
	r3 = r2 << 2;
	r5 = (r3 + r4)|0;
	r2 = (r8 - r2)|0;
	memcpy(i7);
	r3 = (r0 + r3)|0;
	r8 = (r5 + 4)|0;
	r2 = r2 << 2;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r2;
	memcpy(i7);
if(!(r4 ==0)) //_LBB701_16
{
	heap32[(g0)] = r4;
	_ZdaPv(i7);
}
	heap32[(r1)] = r0;
__label__ = 20;
}
}
_51: do {
if (__label__ == 17){
	r0 = (r8 - r2)|0;
	r0 = r0 << 2;
if(!(r0 ==0)) //_LBB701_20
{
	r0 = r3 << 2;
	r2 = r2 << 2;
	r0 = (r0 + -4)|0;
	r1 = (r2 + r4)|0;
	r2 = (r0 - r2)|0;
	r0 = (r1 + 4)|0;
_54: while(true){
	r1 = heapU8[r0];
	r2 = (r2 + -1)|0;
	r3 = (r0 + 1)|0;
	heap8[r0+-4] = r1;
	r0 = r3;
if(!(r2 !=0)) //_LBB701_19
{
break _51;
}
}
}
}
} while(0);
	r2 = heap32[(r7+1)];
if(!(r2 ==0)) //_LBB701_11
{
if(!(r6 ==0)) //_LBB701_11
{
	r2 = heap32[(r7)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
	heap32[(g0)] = r6;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r2 = 0;
	r_g0 = r2;
	return;
}
}
}
	r2 = 0;
break _1;
}
}
	r0 = r2 >> 2;
	r1 = heap32[(r0+6)];
	r1 = (r1 + -1)|0;
	heap32[(r0+6)] = r1;
	r0 = 0;
	r_g0 = r0;
	return;
}
} while(0);
	r_g0 = r2;
	return;
}

function cmpfacets(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r0 = heap32[(r0)];
	r1 = heap32[(r1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r2 = heap32[(r0+5)];
	r3 = heap32[(r1+5)];
	if(r2 !=r3) //_LBB702_2
{
	r0 = (r3 - r2)|0;
	r_g0 = r0;
	return;
}
else{
	r2 = heap32[(r1+1)];
	r3 = heap32[(r0+1)];
	r0 = _2E_str538;
	r3 = r3 == 0 ? r0 : r3;
	r2 = r2 == 0 ? r0 : r2;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	strcmp(i7);
	return;
}
}

function _ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
var __label__ = 0;
	i7 = sp + -640;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = 0;
	r3 = r1;
_1: while(true){
	r4 = r2 << 2;
	r5 = heapU8[r3];
	if(r5 !=59) //_LBB703_3
{
	if(r5 !=0) //_LBB703_5
{
	r5 = heapU8[r3+1];
	if(r5 ==59) //_LBB703_14
{
__label__ = 14;
break _1;
}
else{
	if(r5 ==0) //_LBB703_4
{
__label__ = 4;
break _1;
}
else{
	r5 = heapU8[r3+2];
	if(r5 !=59) //_LBB703_9
{
	if(r5 ==0) //_LBB703_4
{
__label__ = 4;
break _1;
}
else{
	r5 = heapU8[r3+3];
	if(r5 !=59) //_LBB703_12
{
	if(r5 ==0) //_LBB703_4
{
__label__ = 4;
break _1;
}
else{
	r2 = (r2 + 1)|0;
	r3 = (r3 + 4)|0;
continue _1;
}
}
else{
__label__ = 11;
break _1;
}
}
}
else{
__label__ = 8;
break _1;
}
}
}
}
else{
__label__ = 4;
break _1;
}
}
else{
__label__ = 2;
break _1;
}
}
switch(__label__ ){//multiple entries
case 14:
	r2 = (r3 + 1)|0;
break;
case 4:
	r2 = 0;
break;
case 2:
	r2 = (r1 + r4)|0;
break;
case 11:
	r2 = r4 | 3;
	r2 = (r1 + r2)|0;
break;
case 8:
	r2 = r4 | 2;
	r2 = (r1 + r2)|0;
break;
}
_18: do {
	if(r2 ==r1) //_LBB703_17
{
	r3 = (r1 + 1)|0;
	r4 = (r1 + 3)|0;
	r5 = 0;
	r2 = r3;
_20: while(true){
	r6 = heapU8[r4+-2];
	if(r6 ==59) //_LBB703_21
{
__label__ = 19;
break _20;
}
else{
	if(r6 !=0) //_LBB703_22
{
	r6 = heapU8[r4+-1];
	if(r6 ==0) //_LBB703_20
{
__label__ = 90;
break _18;
}
else{
	r7 = r5 << 2;
	if(r6 !=59) //_LBB703_25
{
	r6 = heapU8[r4];
	if(r6 ==0) //_LBB703_20
{
__label__ = 90;
break _18;
}
else{
	if(r6 !=59) //_LBB703_28
{
	r6 = heapU8[r4+1];
	if(r6 ==0) //_LBB703_20
{
__label__ = 90;
break _18;
}
else{
	if(r6 !=59) //_LBB703_31
{
	r5 = (r5 + 1)|0;
	r4 = (r4 + 4)|0;
	r2 = (r2 + 4)|0;
}
else{
__label__ = 27;
break _20;
}
}
}
else{
__label__ = 32;
break _18;
}
}
}
else{
__label__ = 22;
break _20;
}
}
}
else{
__label__ = 90;
break _18;
}
}
}
switch(__label__ ){//multiple entries
case 19:
	r1 = r3;
__label__ = 29;
break _18;
break;
case 27:
	r2 = r7 | 3;
	r1 = (r2 + r1)|0;
	r4 = (r1 + 1)|0;
__label__ = 32;
break _18;
break;
case 22:
	r2 = r7 | 1;
	r1 = (r2 + r1)|0;
	r4 = (r1 + 1)|0;
__label__ = 32;
break;
}
}
else{
__label__ = 29;
}
} while(0);
if (__label__ == 29){
	if(r2 ==0) //_LBB703_34
{
	r3 = r1;
__label__ = 90;
}
else{
	r4 = r2;
	r3 = r1;
__label__ = 32;
}
}
_39: do {
switch(__label__ ){//multiple entries
case 90:
	r7 = heapU8[r3];
	if(r7 ==0) //_LBB703_98
{
	r0 = sp + -624;
	r0 = r0 >> 2;
	heap32[(r0+20)] = 0;
	heap32[(r0+22)] = 0;
	heap32[(r0+21)] = 0;
__label__ = 73;
break _39;
}
else{
	r7 = 1;
__label__ = 93;
break _39;
}
break;
case 32:
	r1 = sp + -264;
	r2 = sp + -528;
	r5 = (r1 + 8)|0;
	r6 = (r2 + 8)|0;
	r7 = 1;
	r8 = 0;
_45: while(true){
	if(r4 ==0) //_LBB703_39
{
	r4 = heapU8[r3];
_49: do {
	if(r4 !=0) //_LBB703_41
{
	r9 = (r3 + 1)|0;
	r10 = 0;
_51: while(true){
	r4 = (r10 + 1)|0;
	r11 = heapU8[r9+r10];
	r10 = r4;
if(!(r11 !=0)) //_LBB703_42
{
break _49;
}
}
}
else{
	r4 = 0;
}
} while(0);
	r4 = (r3 + r4)|0;
}
	r9 = (r4 - r3)|0;
	heap32[(fp+-66)] = r9;
	if(uint(r9) >uint(255)) //_LBB703_46
{
	r10 = (r9 + 1)|0;
	heap32[(g0)] = r10;
	_Znaj(i7);
	r10 = r_g0;
}
else{
	r10 = r5;
}
	r11 = r1 >> 2;
	heap32[(r11+1)] = r10;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r9;
	memcpy(i7);
	r9 = heap32[(r11+1)];
	r10 = heap32[(fp+-66)];
	r12 = 0;
	heap8[r9+r10] = r12;
	r9 = r2 >> 2;
	heap32[(fp+-132)] = 0;
	heap32[(r9+1)] = r6;
	heap8[sp+-520] = r12;
	r10 = _ZN4__rw9__rw_catsE;
	r13 = (r8 * 12)|0;
	r10 = (r10 + r13)|0;
	r13 = heap32[(r11+1)];
	r10 = r10 >> 2;
	r10 = heap32[(r10)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r13;
	heap32[(g0+2)] = r2;
	_ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(i7);
	r10 = r_g0;
	if(r10 !=0) //_LBB703_50
{
	r13 = heapU8[r10];
_63: do {
	if(r13 !=0) //_LBB703_52
{
	r14 = (r10 + 1)|0;
_65: while(true){
	r13 = (r12 + 1)|0;
	r15 = heapU8[r14+r12];
	r12 = r13;
if(!(r15 !=0)) //_LBB703_53
{
break _63;
}
}
}
else{
	r13 = 0;
}
} while(0);
	r12 = r7 & 255;
_69: do {
if(!(r12 ==0)) //_LBB703_56
{
	if(r8 !=0) //_LBB703_57
{
	r7 = r0 >> 2;
	r7 = heap32[(r7+1)];
	r12 = r7;
	r14 = r10;
	r15 = r13;
_72: while(true){
	if(r15 !=0) //_LBB703_58
{
	r15 = (r15 + -1)|0;
	r16 = (r14 + 1)|0;
	r17 = (r12 + 1)|0;
	r18 = heapU8[r12];
	r19 = heapU8[r14];
	r12 = r17;
	r14 = r16;
	if(r18 !=r19) //_LBB703_62
{
__label__ = 57;
break _72;
}
else{
__label__ = 54;
}
}
else{
__label__ = 55;
break _72;
}
}
if (__label__ == 55){
	r7 = heapU8[r7+r13];
if(!(r7 !=59)) //_LBB703_62
{
	r7 = 1;
break _69;
}
}
	r7 = 0;
}
}
} while(0);
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r13;
	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
	r8 = (r8 + 1)|0;
	if(r8 !=6) //_LBB703_66
{
	r10 = heapU8[r4];
	if(r10 !=0) //_LBB703_68
{
	r3 = _2E_str785;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 1;
	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
	r3 = (r4 + 1)|0;
	r4 = 2;
}
else{
	r4 = 1;
}
}
else{
	r4 = 1;
	r8 = 6;
}
}
else{
	r4 = 0;
}
	r9 = heap32[(r9+1)];
if(!(r9 ==r6)) //_LBB703_73
{
if(!(r9 ==0)) //_LBB703_73
{
	heap32[(g0)] = r9;
	_ZdaPv(i7);
}
}
	if(r4 ==1) //_LBB703_79
{
__label__ = 74;
break _45;
}
else{
	if(r4 !=0) //_LBB703_83
{
	r4 = heap32[(r11+1)];
	if(r4 ==r5) //_LBB703_85
{
__label__ = 79;
}
else{
	if(r4 !=0) //_LBB703_86
{
	r10 = 0;
	heap32[(g0)] = r4;
	_ZdaPv(i7);
	r9 = r3;
__label__ = 81;
}
else{
__label__ = 79;
}
}
if (__label__ == 79){
	r10 = 0;
	r9 = r3;
}
_101: while(true){
	r4 = r10 << 2;
	r11 = r4 | 3;
	r12 = r4 | 2;
	r13 = heapU8[r9];
	r4 = (r3 + r4)|0;
	r11 = (r3 + r11)|0;
	r12 = (r3 + r12)|0;
	if(r13 ==59) //_LBB703_37
{
continue _45;
}
else{
	r4 = 0;
	if(r13 ==0) //_LBB703_37
{
continue _45;
}
else{
	r13 = heapU8[r9+1];
	if(r13 ==59) //_LBB703_36
{
break _101;
}
else{
	r4 = 0;
	if(r13 ==0) //_LBB703_37
{
continue _45;
}
else{
	r13 = heapU8[r9+2];
	r4 = r12;
	if(r13 ==59) //_LBB703_37
{
continue _45;
}
else{
	r4 = 0;
	if(r13 ==0) //_LBB703_37
{
continue _45;
}
else{
	r12 = heapU8[r9+3];
	r4 = r11;
	if(r12 ==59) //_LBB703_37
{
continue _45;
}
else{
	r4 = 0;
	if(r12 ==0) //_LBB703_37
{
continue _45;
}
else{
	r10 = (r10 + 1)|0;
	r9 = (r9 + 4)|0;
}
}
}
}
}
}
}
}
}
	r4 = (r9 + 1)|0;
continue _45;
}
else{
__label__ = 70;
break _45;
}
}
}
switch(__label__ ){//multiple entries
case 74:
	r1 = heap32[(r11+1)];
	if(r1 ==r5) //_LBB703_81
{
__label__ = 93;
break _39;
}
else{
	if(r1 !=0) //_LBB703_82
{
	heap32[(g0)] = r1;
	_ZdaPv(i7);
__label__ = 93;
break _39;
}
else{
__label__ = 93;
break _39;
}
}
break;
case 70:
	r0 = heap32[(r11+1)];
	if(r0 ==r5) //_LBB703_78
{
__label__ = 73;
}
else{
	if(r0 ==0) //_LBB703_78
{
__label__ = 73;
}
else{
	heap32[(g0)] = r0;
	_ZdaPv(i7);
__label__ = 73;
}
}
break;
}
break;
}
} while(0);
_119: do {
if (__label__ == 93){
	r1 = r0 >> 2;
	r2 = heap32[(r1+1)];
	r4 = heapU8[r2];
	if(r4 ==0) //_LBB703_117
{
	heap32[(g0)] = 0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r0;
	_ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(i7);
	r0 = r_g0;
	if(r0 ==0) //_LBB703_78
{
break _119;
}
}
else{
	r3 = r7 & 255;
if(!(r3 ==0)) //_LBB703_118
{
	r3 = 0;
	r4 = r2;
_125: while(true){
	r5 = r3 << 2;
	r6 = heapU8[r4];
	if(r6 !=59) //_LBB703_104
{
	if(r6 !=0) //_LBB703_106
{
	r6 = heapU8[r4+1];
	if(r6 ==59) //_LBB703_115
{
__label__ = 109;
break _125;
}
else{
	if(r6 ==0) //_LBB703_105
{
__label__ = 99;
break _125;
}
else{
	r6 = heapU8[r4+2];
	if(r6 !=59) //_LBB703_110
{
	if(r6 ==0) //_LBB703_105
{
__label__ = 99;
break _125;
}
else{
	r6 = heapU8[r4+3];
	if(r6 !=59) //_LBB703_113
{
	if(r6 ==0) //_LBB703_105
{
__label__ = 99;
break _125;
}
else{
	r3 = (r3 + 1)|0;
	r4 = (r4 + 4)|0;
}
}
else{
__label__ = 106;
break _125;
}
}
}
else{
__label__ = 103;
break _125;
}
}
}
}
else{
__label__ = 99;
break _125;
}
}
else{
__label__ = 97;
break _125;
}
}
switch(__label__ ){//multiple entries
case 109:
	r3 = (r4 + 1)|0;
break;
case 99:
	r3 = 0;
break;
case 97:
	r3 = (r2 + r5)|0;
break;
case 106:
	r3 = r5 | 3;
	r3 = (r2 + r3)|0;
break;
case 103:
	r3 = r5 | 2;
	r3 = (r2 + r3)|0;
break;
}
	r3 = (r3 - r2)|0;
	heap32[(r1+1)] = r2;
	heap32[(r1)] = r3;
	r3 = _2E_str26;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 1;
	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
}
}
	r0 = heap32[(r1+1)];
	r_g0 = r0;
	return;
}
} while(0);
	r0 = 0;
	r_g0 = r0;
	return;
}

function cmplocales(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r0 = heap32[(r0)];
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r0 = r0 >> 2;
	r1 = heap32[(r1+38)];
	r0 = heap32[(r0+38)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	strcmp(i7);
	return;
}

function _ZN4__rw11__rw_localeD2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+38)];
	r3 = (r0 + 112)|0;
	if(r2 ==r3) //_LBB705_2
{
__label__ = 2;
}
else{
	if(r2 !=0) //_LBB705_3
{
	r3 = 0;
	heap32[(g0)] = r2;
	_ZdaPv(i7);
__label__ = 4;
}
else{
__label__ = 2;
}
}
if (__label__ == 2){
	r3 = 0;
}
_6: while(true){
	r2 = r3 << 2;
	r2 = (r0 - r2)|0;
	r2 = r2 >> 2;
	r4 = 0;
	r2 = heap32[(r2)];
if(!(r2 ==0)) //_LBB705_10
{
	r5 = r2 >> 2;
	r6 = heap32[(r5+5)];
	if(r6 ==0) //_LBB705_7
{
	r2 = heap32[(r5+6)];
	r2 = (r2 + -1)|0;
	heap32[(r5+6)] = r2;
if(!(r2 !=0)) //_LBB705_10
{
	r2 = (r4 - r3)|0;
	r2 = r2 << 2;
	r2 = (r0 + r2)|0;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
if(!(r2 ==0)) //_LBB705_10
{
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+1)];
	heap32[(g0)] = r2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
}
}
else{
	r5 = heap32[(r5+1)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = 0;
	_ZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_E(i7);
}
}
	r3 = (r3 + -1)|0;
	if(r3 !=-26) //_LBB705_4
{
continue _6;
}
else{
break _6;
}
}
	r0 = heap32[(r1+26)];
	r2 = heap32[(r1+27)];
_17: do {
if(!(r2 ==0)) //_LBB705_13
{
_18: while(true){
	r2 = r4 << 2;
	r0 = (r0 + r2)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r3 = heap32[(r0+6)];
	r3 = (r3 + -1)|0;
	heap32[(r0+6)] = r3;
if(!(r3 !=0)) //_LBB705_17
{
	r0 = heap32[(r1+26)];
	r0 = (r0 + r2)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
if(!(r0 ==0)) //_LBB705_17
{
	r2 = r0 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+1)];
	heap32[(g0)] = r0;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
}
	r4 = (r4 + 1)|0;
	r0 = heap32[(r1+26)];
	r2 = heap32[(r1+27)];
	if(r4 !=r2) //_LBB705_14
{
continue _18;
}
else{
break _17;
}
}
}
} while(0);
if(!(r0 ==0)) //_LBB705_20
{
	heap32[(g0)] = r0;
	_ZdaPv(i7);
}
	return;
}

function _ZN4__rw11__rw_localeC2EPKc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -280;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	heap32[(r1+26)] = 0;
	heap32[(r1+27)] = 0;
	heap32[(r1+39)] = 1;
	r2 = heap32[(fp+1)];
	heap32[(r1+40)] = 0;
	heap32[(r1+41)] = 0;
	r3 = heapU8[r2];
	if(r3 ==0) //_LBB706_2
{
	r3 = sp + -264;
	r4 = 0;
	r5 = r3 >> 2;
	r6 = (r0 + 112)|0;
	heap8[sp+-256] = r4;
	heap32[(r5+1)] = r6;
	heap32[(fp+-66)] = 0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	r2 = (r3 + 8)|0;
	_ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(i7);
	r3 = r_g0;
	heap32[(r1+38)] = r3;
	heap32[(r5+1)] = r2;
}
else{
	r3 = 1;
_5: while(true){
	r4 = (r3 + 1)|0;
	r5 = heapU8[r2+r3];
	r3 = r4;
if(!(r5 !=0)) //_LBB706_4
{
break _5;
}
}
	if(uint(r4) >uint(39)) //_LBB706_7
{
	heap32[(g0)] = r4;
	_Znaj(i7);
	r3 = r_g0;
}
else{
	r3 = (r0 + 112)|0;
}
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	memcpy(i7);
	heap32[(r1+38)] = r3;
}
	r2 = 0;
	heap32[(r1+40)] = 67108863;
	heap32[(r1+41)] = 0;
_13: while(true){
	r4 = (r3 - r2)|0;
	r5 = heapU8[r4];
	if(r5 ==0) //_LBB706_43
{
__label__ = 41;
break _13;
}
else{
	if(r5 ==59) //_LBB706_20
{
__label__ = 20;
break _13;
}
else{
	r5 = heapU8[r4+1];
	if(r5 ==0) //_LBB706_43
{
__label__ = 41;
break _13;
}
else{
	if(r5 !=59) //_LBB706_15
{
	r5 = heapU8[r4+2];
	if(r5 ==0) //_LBB706_43
{
__label__ = 41;
break _13;
}
else{
	if(r5 ==59) //_LBB706_14
{
__label__ = 14;
break _13;
}
else{
	r4 = heapU8[r4+3];
	if(r4 ==0) //_LBB706_43
{
__label__ = 41;
break _13;
}
else{
	if(r4 ==59) //_LBB706_14
{
__label__ = 14;
break _13;
}
else{
	r2 = (r2 + -4)|0;
continue _13;
}
}
}
}
}
else{
__label__ = 14;
break _13;
}
}
}
}
}
if (__label__ == 20){
	if(r3 ==r2) //_LBB706_43
{
__label__ = 41;
}
else{
__label__ = 14;
}
}
_25: do {
switch(__label__ ){//multiple entries
case 41:
	r2 = heapU8[r3];
if(!(r2 !=67)) //_LBB706_45
{
	r2 = heapU8[r3+1];
	if(r2 ==0) //_LBB706_46
{
break _25;
}
}
	heap32[(r1+41)] = 67108863;
break;
case 14:
	r2 = 0;
	r4 = r2;
_31: while(true){
	r5 = heapU8[r3];
	if(r5 ==0) //_LBB706_46
{
break _25;
}
else{
	if(r2 !=-6) //_LBB706_21
{
	r5 = r5 & 255;
	if(r5 !=67) //_LBB706_24
{
__label__ = 23;
}
else{
	r5 = heapU8[r3+1];
	if(r5 !=59) //_LBB706_24
{
__label__ = 23;
}
else{
__label__ = 24;
}
}
if (__label__ == 23){
	r5 = (r2 * -3)|0;
	r6 = _ZN4__rw9__rw_catsE;
	r5 = r5 << 2;
	r5 = (r6 + r5)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5+2)];
	r4 = r5 | r4;
	heap32[(r1+41)] = r4;
}
	r5 = 0;
	r6 = r3;
_40: while(true){
	r7 = heapU8[r6];
	if(r7 ==0) //_LBB706_46
{
break _25;
}
else{
	if(r7 ==59) //_LBB706_37
{
__label__ = 36;
break _40;
}
else{
	r7 = heapU8[r6+1];
	if(r7 ==0) //_LBB706_46
{
break _25;
}
else{
	if(r7 ==59) //_LBB706_39
{
__label__ = 37;
break _40;
}
else{
	r7 = heapU8[r6+2];
	if(r7 ==0) //_LBB706_46
{
break _25;
}
else{
	r8 = r5 << 2;
	if(r7 !=59) //_LBB706_33
{
	r7 = heapU8[r6+3];
	if(r7 ==0) //_LBB706_46
{
break _25;
}
else{
	if(r7 !=59) //_LBB706_36
{
	r5 = (r5 + 1)|0;
	r6 = (r6 + 4)|0;
}
else{
__label__ = 34;
break _40;
}
}
}
else{
__label__ = 31;
break _40;
}
}
}
}
}
}
}
switch(__label__ ){//multiple entries
case 36:
	if(r6 ==0) //_LBB706_46
{
break _25;
}
break;
case 37:
	r6 = (r6 + 1)|0;
break;
case 34:
	r5 = r8 | 3;
	r6 = (r3 + r5)|0;
break;
case 31:
	r5 = r8 | 2;
	r6 = (r3 + r5)|0;
break;
}
	r3 = (r6 + 1)|0;
	r2 = (r2 + -1)|0;
continue _31;
}
else{
break _25;
}
}
}
break;
}
} while(0);
	r1 = 104;
	r3 = 0;
_57: while(true){
	r2 = (r1 + -1)|0;
	r1 = (r0 - r1)|0;
	heap8[r1+104] = r3;
	r1 = r2;
	if(r2 !=0) //_LBB706_47
{
continue _57;
}
else{
break _57;
}
}
	return;
}

function _ZN4__rw11__rw_locale9_C_manageEPS0_PKc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
var __label__ = 0;
	i7 = sp + -280;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	if(r0 !=0) //_LBB707_9
{
	r2 = heapU8[r0];
	if(r2 ==67) //_LBB707_11
{
	r2 = heapU8[r0+1];
	r3 = 0;
	r2 = r2 != r3;
}
else{
	r2 = 1;
}
	r3 = sp + -264;
	r4 = (r3 + 8)|0;
	r5 = _2E_str538;
	r6 = r3 >> 2;
	heap32[(fp+-66)] = 0;
	r0 = r2 != 0 ? r0 : r5;
	r7 = 0;
	heap32[(r6+1)] = r4;
	heap8[sp+-256] = r7;
	if(r1 !=0) //_LBB707_14
{
__label__ = 19;
}
else{
	if(r2 != 0) //_LBB707_15
{
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	_ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB707_18
{
	r2 = heapU8[r0];
	if(r2 ==67) //_LBB707_20
{
	r2 = heapU8[r0+1];
	if(r2 !=0) //_LBB707_19
{
__label__ = 19;
}
else{
	r0 = r5;
__label__ = 19;
}
}
else{
__label__ = 19;
}
}
else{
__label__ = 15;
}
}
else{
__label__ = 19;
}
}
_14: do {
if (__label__ == 19){
	r2 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE9n_locales;
	r3 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales;
	r2 = r2 >> 2;
	r3 = r3 >> 2;
	r5 = heap32[(r2)];
	r8 = heap32[(r3)];
	if(r1 ==0) //_LBB707_24
{
	r7 = r5;
_18: while(true){
	r9 = r7;
	if(r9 ==0) //_LBB707_53
{
__label__ = 49;
break _18;
}
else{
	r1 = r9 << 1;
	r10 = r1 & -4;
	r11 = (r8 + r10)|0;
	r1 = r11 >> 2;
	r1 = heap32[(r1)];
	r12 = r1 >> 2;
	r7 = heap32[(r12+38)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	strcmp(i7);
	r13 = r_g0;
	r7 = r9 >>> 1;
	if(r13 <0) //_LBB707_50
{
__label__ = 46;
}
else{
	if(r13 <1) //_LBB707_51
{
__label__ = 47;
break _18;
}
else{
	r1 = (r10 + r8)|0;
	r9 = (r9 + -1)|0;
	r8 = (r1 + 4)|0;
	r7 = (r9 - r7)|0;
}
}
}
}
if (__label__ == 47){
if(!(r11 ==0)) //_LBB707_53
{
	r0 = heap32[(r12+39)];
	r0 = (r0 + 1)|0;
	heap32[(r12+39)] = r0;
__label__ = 65;
break _14;
}
}
	r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize;
	r1 = r1 >> 2;
	r7 = heap32[(r1)];
if(!(r5 !=r7)) //_LBB707_59
{
	r5 = r5 << 3;
	heap32[(g0)] = r5;
	_Znaj(i7);
	r5 = r_g0;
	r7 = heap32[(r3)];
	r8 = heap32[(r2)];
	r8 = r8 << 2;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r8;
	memcpy(i7);
	r8 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf;
if(!(r7 ==r8)) //_LBB707_58
{
if(!(r7 ==0)) //_LBB707_58
{
	heap32[(g0)] = r7;
	_ZdaPv(i7);
}
}
	heap32[(r3)] = r5;
	r5 = heap32[(r1)];
	r5 = r5 << 1;
	heap32[(r1)] = r5;
}
	r1 = heapU8[r0];
	if(r1 !=67) //_LBB707_65
{
__label__ = 61;
}
else{
	r1 = heapU8[r0+1];
	if(r1 !=0) //_LBB707_65
{
__label__ = 61;
}
else{
	r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7classic;
	r5 = r1 >> 2;
	r1 = heap32[(r5)];
	if(r1 !=0) //_LBB707_64
{
	r0 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body;
	r0 = r0 >> 2;
	r5 = heap32[(r0+39)];
	r5 = (r5 + 1)|0;
	heap32[(r0+39)] = r5;
__label__ = 63;
}
else{
	r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	_ZN4__rw11__rw_localeC2EPKc(i7);
	heap32[(r5)] = r1;
__label__ = 63;
}
}
}
if (__label__ == 61){
	heap32[(g0)] = 172;
	_Znwj(i7);
	r1 = r_g0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	_ZN4__rw11__rw_localeC2EPKc(i7);
}
	r0 = heap32[(r2)];
	r3 = heap32[(r3)];
	r5 = r0 << 2;
	r5 = (r3 + r5)|0;
	r5 = r5 >> 2;
	r7 = (r0 + 1)|0;
	heap32[(r5)] = r1;
	heap32[(r2)] = r7;
	r2 = (r0 + -1)|0;
	if(uint(r2) <uint(2147483645)) //_LBB707_69
{
	r2 = cmplocales__index__;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r2;
	quicksort(i7);
__label__ = 65;
}
else{
__label__ = 65;
}
}
else{
	r9 = r5;
	r10 = r8;
_48: while(true){
	r11 = r9;
	if(r11 ==0) //_LBB707_46
{
__label__ = 42;
break _48;
}
else{
	r9 = r11 << 1;
	r12 = r9 & -4;
	r13 = (r10 + r12)|0;
	r9 = r13 >> 2;
	r9 = heap32[(r9)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+38)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r9;
	strcmp(i7);
	r14 = r_g0;
	r9 = r11 >>> 1;
	if(r14 <0) //_LBB707_28
{
__label__ = 25;
}
else{
	if(r14 <1) //_LBB707_29
{
__label__ = 26;
break _48;
}
else{
	r10 = (r12 + r10)|0;
	r11 = (r11 + -1)|0;
	r10 = (r10 + 4)|0;
	r9 = (r11 - r9)|0;
}
}
}
}
if (__label__ == 26){
if(!(r13 ==0)) //_LBB707_46
{
	r1 = (r13 - r8)|0;
	r0 = r1 & -4;
	r9 = (r8 + r0)|0;
	r9 = r9 >> 2;
	r9 = heap32[(r9)];
	r10 = r9 >> 2;
	r11 = heap32[(r10+39)];
	r11 = (r11 + -1)|0;
	heap32[(r10+39)] = r11;
	if(r11 !=0) //_LBB707_17
{
__label__ = 15;
break _14;
}
else{
	r1 = r1 >> 2;
	r11 = (r5 + -1)|0;
	heap32[(r2)] = r11;
	if(uint(r11) >uint(3)) //_LBB707_36
{
__label__ = 33;
}
else{
	r2 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf;
	if(r8 ==r2) //_LBB707_36
{
__label__ = 33;
}
else{
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r0;
	r0 = r1 << 2;
	r5 = (r0 + r8)|0;
	r1 = (r11 - r1)|0;
	memcpy(i7);
	r0 = (r2 + r0)|0;
	r5 = (r5 + 4)|0;
	r1 = r1 << 2;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r1;
	memcpy(i7);
if(!(r8 ==0)) //_LBB707_35
{
	heap32[(g0)] = r8;
	_ZdaPv(i7);
}
	r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize;
	r1 = r1 >> 2;
	heap32[(r3)] = r2;
	heap32[(r1)] = 8;
__label__ = 36;
}
}
_63: do {
if (__label__ == 33){
	r0 = (r11 - r1)|0;
	r0 = r0 << 2;
if(!(r0 ==0)) //_LBB707_39
{
	r0 = r5 << 2;
	r1 = r1 << 2;
	r0 = (r0 + -4)|0;
	r2 = (r1 + r8)|0;
	r1 = (r0 - r1)|0;
	r0 = (r2 + 4)|0;
_66: while(true){
	r2 = heapU8[r0];
	r1 = (r1 + -1)|0;
	r3 = (r0 + 1)|0;
	heap8[r0+-4] = r2;
	r0 = r3;
if(!(r1 !=0)) //_LBB707_38
{
break _63;
}
}
}
}
} while(0);
	r1 = heap32[(r10+38)];
	r0 = heapU8[r1];
	if(r0 ==67) //_LBB707_41
{
	r1 = heapU8[r1+1];
	r7 = 0;
	r7 = r1 == r7;
}
	if(r7 != 0) //_LBB707_17
{
__label__ = 15;
break _14;
}
else{
	if(r9 ==0) //_LBB707_17
{
__label__ = 15;
break _14;
}
else{
	heap32[(g0)] = r9;
	_ZN4__rw11__rw_localeD2Ev(i7);
	heap32[(g0)] = r9;
	r1 = 0;
	_ZdlPv(i7);
__label__ = 65;
break _14;
}
}
}
}
}
	r0 = r1 >> 2;
	r2 = heap32[(r0+39)];
	r1 = 0;
	r2 = (r2 + -1)|0;
	heap32[(r0+39)] = r2;
__label__ = 65;
}
}
} while(0);
if (__label__ == 15){
	r1 = 0;
}
	r0 = heap32[(r6+1)];
if(!(r0 ==r4)) //_LBB707_73
{
if(!(r0 ==0)) //_LBB707_73
{
	heap32[(g0)] = r0;
	_ZdaPv(i7);
}
}
	r_g0 = r1;
	return;
}
else{
	r0 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE6global;
	r0 = r0 >> 2;
	r2 = heap32[(r0)];
_84: do {
	if(r2 ==0) //_LBB707_3
{
	r3 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE5ginit;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	if(r4 !=0) //_LBB707_5
{
_87: while(true){
	r4 = heap32[(r3)];
if(!(r4 <1000)) //_LBB707_5
{
break _84;
}
}
}
else{
	r2 = (r4 + 1)|0;
	heap32[(r3)] = r2;
	r2 = _2E_str538;
	heap32[(g0)] = 0;
	heap32[(g0+1)] = r2;
	_ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7);
	r2 = r_g0;
	heap32[(r0)] = r2;
	r4 = heap32[(r3)];
	r4 = (r4 + 1000)|0;
	heap32[(r3)] = r4;
}
}
} while(0);
	if(r1 ==0) //_LBB707_8
{
	r0 = r2 >> 2;
	r1 = heap32[(r0+39)];
	r1 = (r1 + 1)|0;
	heap32[(r0+39)] = r1;
	r_g0 = r2;
	return;
}
else{
	r3 = r1 >> 2;
	r4 = heap32[(r3+39)];
	r4 = (r4 + 1)|0;
	heap32[(r3+39)] = r4;
	heap32[(r0)] = r1;
	r_g0 = r2;
	return;
}
}
}

function _ZN4__rw11__rw_locale11_C_get_bodyEPS0_S1_PKciPKNS_10__rw_facetE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -304;var g0 = i7>>2; // save stack
	r0 = sp + -264;
	r1 = (r0 + 8)|0;
	r2 = r0 >> 2;
	heap32[(fp+-66)] = 0;
	r3 = 0;
	heap32[(r2+1)] = r1;
	heap8[sp+-256] = r3;
	r4 = _2E_str538;
	r5 = _2E_str292167;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = 3;
	strncmp(i7);
	r5 = r_g0;
_1: do {
	if(r5 ==0) //_LBB708_2
{
	r4 = sp + -288;
	r5 = r4 >> 2;
	heap32[(fp+-72)] = 0;
	heap32[(r5+1)] = 0;
	heap32[(r5+2)] = 0;
	heap32[(r5+3)] = 0;
	r6 = 4;
	heap32[(r5+4)] = 0;
	heap32[(r5+5)] = 0;
_3: while(true){
	r6 = (r6 + -4)|0;
if(!(r6 !=0)) //_LBB708_3
{
break _3;
}
}
	r5 = _2E_str538;
_6: while(true){
	r6 = heapU8[r5];
	if(r6 ==0) //_LBB708_48
{
__label__ = 44;
break _6;
}
else{
	r6 = r3;
	r7 = r3;
_9: while(true){
	r8 = (r5 + r6)|0;
	r9 = heapU8[r5+r6];
	if(r9 ==59) //_LBB708_17
{
__label__ = 16;
break _9;
}
else{
	if(r9 !=0) //_LBB708_8
{
	r9 = heapU8[r8+1];
	if(r9 ==0) //_LBB708_7
{
__label__ = 6;
break _9;
}
else{
	if(r9 ==59) //_LBB708_21
{
__label__ = 18;
break _9;
}
else{
	r9 = heapU8[r8+2];
	if(r9 ==0) //_LBB708_7
{
__label__ = 6;
break _9;
}
else{
	r10 = r7 << 2;
	if(r9 !=59) //_LBB708_13
{
	r8 = heapU8[r8+3];
	if(r8 ==0) //_LBB708_7
{
__label__ = 6;
break _9;
}
else{
	if(r8 !=59) //_LBB708_16
{
	r7 = (r7 + 1)|0;
	r6 = (r6 + 4)|0;
}
else{
__label__ = 14;
break _9;
}
}
}
else{
__label__ = 11;
break _9;
}
}
}
}
}
else{
__label__ = 6;
break _9;
}
}
}
_19: do {
switch(__label__ ){//multiple entries
case 16:
	if(r8 ==0) //_LBB708_7
{
__label__ = 6;
break _19;
}
else{
__label__ = 19;
break _19;
}
break;
case 18:
	r8 = (r8 + 1)|0;
__label__ = 19;
break _19;
break;
case 14:
	r6 = r10 | 3;
	r8 = (r5 + r6)|0;
__label__ = 19;
break _19;
break;
case 11:
	r6 = r10 | 2;
	r8 = (r5 + r6)|0;
__label__ = 19;
break;
}
} while(0);
_24: do {
if (__label__ == 6){
	r6 = r5;
_26: while(true){
	r8 = (r6 + 1)|0;
	r7 = heapU8[r6+1];
	r6 = r8;
if(!(r7 !=0)) //_LBB708_19
{
break _24;
}
}
}
} while(0);
	r6 = 0;
	r7 = r6;
_29: while(true){
	r9 = (r5 + r6)|0;
	r10 = heapU8[r5+r6];
	if(r10 ==61) //_LBB708_35
{
__label__ = 32;
break _29;
}
else{
	if(r10 !=0) //_LBB708_26
{
	r10 = heapU8[r9+1];
	if(r10 ==0) //_LBB708_25
{
__label__ = 22;
break _6;
}
else{
	if(r10 ==61) //_LBB708_37
{
__label__ = 33;
break _29;
}
else{
	r10 = heapU8[r9+2];
	if(r10 ==0) //_LBB708_25
{
__label__ = 22;
break _6;
}
else{
	r11 = r7 << 2;
	if(r10 !=61) //_LBB708_31
{
	r9 = heapU8[r9+3];
	if(r9 ==0) //_LBB708_25
{
__label__ = 22;
break _6;
}
else{
	if(r9 !=61) //_LBB708_34
{
	r7 = (r7 + 1)|0;
	r6 = (r6 + 4)|0;
}
else{
__label__ = 30;
break _29;
}
}
}
else{
__label__ = 27;
break _29;
}
}
}
}
}
else{
__label__ = 22;
break _6;
}
}
}
switch(__label__ ){//multiple entries
case 32:
	if(r9 ==0) //_LBB708_25
{
__label__ = 22;
break _6;
}
break;
case 33:
	r9 = (r9 + 1)|0;
break;
case 30:
	r6 = r11 | 3;
	r9 = (r5 + r6)|0;
break;
case 27:
	r6 = r11 | 2;
	r9 = (r5 + r6)|0;
break;
}
	r6 = (r9 - r5)|0;
	r7 = 0;
_45: while(true){
	if(r7 !=-6) //_LBB708_39
{
	r10 = (r7 * -3)|0;
	r11 = _ZN4__rw9__rw_catsE;
	r10 = r10 << 2;
	r10 = (r11 + r10)|0;
	r10 = r10 >> 2;
	r10 = heap32[(r10+1)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r6;
	strncmp(i7);
	r10 = r_g0;
	if(r10 !=0) //_LBB708_42
{
	r7 = (r7 + -1)|0;
}
else{
__label__ = 36;
break _45;
}
}
else{
__label__ = 40;
break _45;
}
}
if (__label__ == 36){
	r6 = r7 << 2;
	r6 = (r4 - r6)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	if(r6 !=0) //_LBB708_25
{
__label__ = 22;
break _6;
}
else{
	r6 = 0;
	r6 = (r6 - r7)|0;
	r6 = r6 << 2;
	r6 = (r4 + r6)|0;
	r6 = r6 >> 2;
	r7 = (r9 + 1)|0;
	heap32[(r6)] = r7;
}
}
	r6 = heapU8[r8];
	r5 = r8;
	if(r6 ==0) //_LBB708_46
{
__label__ = 42;
}
else{
	r5 = (r8 + 1)|0;
}
}
}
switch(__label__ ){//multiple entries
case 44:
	r3 = 0;
	r5 = r3;
_56: while(true){
	if(r5 !=-6) //_LBB708_49
{
	r6 = (r3 - r5)|0;
	r6 = r6 << 2;
	r6 = (r4 + r6)|0;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
	if(r7 ==0) //_LBB708_51
{
	r7 = _2E_str538;
	heap32[(r6)] = r7;
}
	r6 = 0;
	r8 = r6;
_62: while(true){
	r9 = heapU8[r7+r6];
	if(r9 ==0) //_LBB708_66
{
__label__ = 60;
break _62;
}
else{
	r10 = (r7 + r6)|0;
	if(r9 ==59) //_LBB708_64
{
__label__ = 59;
break _62;
}
else{
	r9 = heapU8[r10+1];
	if(r9 ==0) //_LBB708_66
{
__label__ = 60;
break _62;
}
else{
	if(r9 ==59) //_LBB708_71
{
__label__ = 65;
break _62;
}
else{
	r9 = heapU8[r10+2];
	if(r9 ==0) //_LBB708_66
{
__label__ = 60;
break _62;
}
else{
	r11 = r8 << 2;
	if(r9 !=59) //_LBB708_60
{
	r10 = heapU8[r10+3];
	if(r10 ==0) //_LBB708_66
{
__label__ = 60;
break _62;
}
else{
	if(r10 !=59) //_LBB708_63
{
	r8 = (r8 + 1)|0;
	r6 = (r6 + 4)|0;
}
else{
__label__ = 57;
break _62;
}
}
}
else{
__label__ = 54;
break _62;
}
}
}
}
}
}
}
_72: do {
switch(__label__ ){//multiple entries
case 59:
	if(r10 ==0) //_LBB708_66
{
__label__ = 60;
break _72;
}
else{
__label__ = 66;
break _72;
}
break;
case 65:
	r10 = (r10 + 1)|0;
__label__ = 66;
break _72;
break;
case 57:
	r6 = r11 | 3;
	r10 = (r7 + r6)|0;
__label__ = 66;
break _72;
break;
case 54:
	r6 = r11 | 2;
	r10 = (r7 + r6)|0;
__label__ = 66;
break;
}
} while(0);
if (__label__ == 60){
	r10 = heapU8[r7];
_79: do {
	if(r10 !=0) //_LBB708_68
{
	r6 = (r7 + 1)|0;
	r8 = 0;
_81: while(true){
	r10 = (r8 + 1)|0;
	r9 = heapU8[r6+r8];
	r8 = r10;
if(!(r9 !=0)) //_LBB708_69
{
break _79;
}
}
}
else{
	r10 = 0;
}
} while(0);
	r10 = (r7 + r10)|0;
}
	r6 = (r10 - r7)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r6;
	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
	r6 = _2E_str785;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = 1;
	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
	r5 = (r5 + -1)|0;
}
else{
break _56;
}
}
	r4 = heap32[(r2+1)];
	if(r4 ==0) //_LBB708_78
{
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 0;
	_ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7);
	r4 = r_g0;
__label__ = 73;
break _1;
}
else{
__label__ = 72;
break _1;
}
break;
case 22:
	r4 = 0;
__label__ = 73;
break;
}
}
else{
__label__ = 72;
}
} while(0);
if (__label__ == 72){
	heap32[(g0)] = 0;
	heap32[(g0+1)] = r4;
	_ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7);
	r4 = r_g0;
}
	r0 = heap32[(r2+1)];
if(!(r0 ==r1)) //_LBB708_83
{
if(!(r0 ==0)) //_LBB708_83
{
	heap32[(g0)] = r0;
	_ZdaPv(i7);
}
}
	r_g0 = r4;
	return;
}

function _ZNSt6localeD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = r1 >> 2;
	r3 = heap32[(r2+27)];
_1: do {
if(!(r3 !=0)) //_LBB709_86
{
	r3 = heap32[(r2+40)];
	r3 = r3 & 67108863;
if(!(r3 !=67108863)) //_LBB709_86
{
	r3 = heap32[(r2+41)];
	r4 = r3 & 8193;
if(!(r4 ==0)) //_LBB709_4
{
	if(r4 !=8193) //_LBB709_86
{
break _1;
}
}
	r4 = r3 & 49158;
if(!(r4 ==0)) //_LBB709_6
{
	if(r4 !=49158) //_LBB709_86
{
break _1;
}
}
	r4 = r3 & 983160;
if(!(r4 ==0)) //_LBB709_8
{
	if(r4 !=983160) //_LBB709_86
{
break _1;
}
}
	r4 = r3 & 7340928;
if(!(r4 ==0)) //_LBB709_10
{
	if(r4 !=7340928) //_LBB709_86
{
break _1;
}
}
	r4 = r3 & 25168896;
if(!(r4 ==0)) //_LBB709_12
{
	if(r4 !=25168896) //_LBB709_86
{
break _1;
}
}
	r3 = r3 & 33558528;
if(!(r3 ==0)) //_LBB709_14
{
	if(r3 !=33558528) //_LBB709_86
{
break _1;
}
}
	r3 = heap32[(r2+38)];
	r4 = _2E_str538;
	r5 = r3 == 0 ? r4 : r3;
	r6 = heapU8[r5];
	if(r6 ==59) //_LBB709_16
{
	r5 = (r5 + 1)|0;
}
	r6 = 0;
	r7 = r6;
_25: while(true){
	r8 = heapU8[r5+r6];
	if(r8 ==0) //_LBB709_33
{
__label__ = 31;
break _25;
}
else{
	r9 = (r5 + r6)|0;
	if(r8 ==59) //_LBB709_29
{
__label__ = 28;
break _25;
}
else{
	r8 = heapU8[r9+1];
	if(r8 ==0) //_LBB709_33
{
__label__ = 31;
break _25;
}
else{
	if(r8 ==59) //_LBB709_31
{
__label__ = 29;
break _25;
}
else{
	r8 = heapU8[r9+2];
	if(r8 ==0) //_LBB709_33
{
__label__ = 31;
break _25;
}
else{
	r10 = r7 << 2;
	if(r8 !=59) //_LBB709_25
{
	r9 = heapU8[r9+3];
	if(r9 ==0) //_LBB709_33
{
__label__ = 31;
break _25;
}
else{
	if(r9 !=59) //_LBB709_28
{
	r7 = (r7 + 1)|0;
	r6 = (r6 + 4)|0;
}
else{
__label__ = 26;
break _25;
}
}
}
else{
__label__ = 23;
break _25;
}
}
}
}
}
}
}
_35: do {
switch(__label__ ){//multiple entries
case 28:
	if(r9 ==0) //_LBB709_33
{
__label__ = 31;
break _35;
}
else{
__label__ = 30;
break _35;
}
break;
case 29:
	r9 = (r9 + 1)|0;
__label__ = 30;
break _35;
break;
case 26:
	r6 = r10 | 3;
	r9 = (r5 + r6)|0;
__label__ = 30;
break _35;
break;
case 23:
	r6 = r10 | 2;
	r9 = (r5 + r6)|0;
__label__ = 30;
break;
}
} while(0);
switch(__label__ ){//multiple entries
case 31:
	r6 = heapU8[r5];
	if(r6 !=0) //_LBB709_35
{
	r7 = (r5 + 1)|0;
	r8 = 0;
_44: while(true){
	r6 = (r8 + 1)|0;
	r9 = heapU8[r7+r8];
	r8 = r6;
if(!(r9 !=0)) //_LBB709_36
{
break _44;
}
}
	r9 = 0;
	r7 = r9;
	r8 = r9;
}
else{
	r9 = 0;
	r6 = r9;
	r7 = r9;
	r8 = r9;
}
break;
case 30:
	r6 = (r9 - r5)|0;
	r7 = 0;
	r8 = r7;
break;
}
_49: while(true){
	if(r7 !=26) //_LBB709_38
{
	r10 = r7 << 2;
	r10 = (r1 + r10)|0;
	r10 = r10 >> 2;
	r10 = heap32[(r10)];
_52: do {
	if(r10 !=0) //_LBB709_40
{
	r10 = r10 >> 2;
	r11 = heap32[(r10+7)];
	r11 = r11 >> 2;
	r10 = heap32[(r10+1)];
	r12 = 0;
	r13 = r10 != r12;
	r11 = heap32[(r11)];
	r13 = r13 & 1;
	r11 = r11 << 1;
	r11 = r13 | r11;
	r11 = (r11 + -1)|0;
	r13 = 53;
	r11 = uint(r11) < uint(r13) ? r11 : r12;
	if(r11 >36) //_LBB709_43
{
	r11 = (r11 + -37)|0;
if(!(uint(r11) >uint(8))) //_LBB709_45
{
	r13 = 1;
	r11 = r13 << r11;
	r11 = r11 & 325;
	if(r11 !=0) //_LBB709_39
{
break _52;
}
}
}
else{
if(!(uint(r11) >uint(19))) //_LBB709_45
{
	r13 = 1;
	r11 = r13 << r11;
	r11 = r11 & 665600;
	if(r11 !=0) //_LBB709_39
{
break _52;
}
}
}
	r11 = 1;
	r11 = r11 << r7;
_60: while(true){
	if(r9 ==0) //_LBB709_75
{
break _60;
}
else{
	r13 = _ZN4__rw9__rw_catsE;
	r14 = (r8 * 12)|0;
	r13 = (r13 + r14)|0;
	r13 = r13 >> 2;
	r13 = heap32[(r13+2)];
	r13 = r13 & r11;
	if(r13 ==0) //_LBB709_46
{
	r5 = heapU8[r9];
	if(r5 ==0) //_LBB709_48
{
	if(r3 !=0) //_LBB709_50
{
	r8 = 0;
	r5 = r3;
}
else{
	r8 = 0;
	r5 = r4;
}
}
else{
	r5 = (r9 + 1)|0;
	r8 = (r8 + 1)|0;
}
	r6 = heapU8[r5];
	if(r6 ==59) //_LBB709_53
{
	r5 = (r5 + 1)|0;
}
	r6 = r12;
	r13 = r12;
_74: while(true){
	r14 = heapU8[r5+r6];
	if(r14 ==0) //_LBB709_70
{
__label__ = 65;
break _74;
}
else{
	r9 = (r5 + r6)|0;
	if(r14 ==59) //_LBB709_66
{
__label__ = 62;
break _74;
}
else{
	r14 = heapU8[r9+1];
	if(r14 ==0) //_LBB709_70
{
__label__ = 65;
break _74;
}
else{
	if(r14 ==59) //_LBB709_68
{
__label__ = 63;
break _74;
}
else{
	r14 = heapU8[r9+2];
	if(r14 ==0) //_LBB709_70
{
__label__ = 65;
break _74;
}
else{
	r15 = r13 << 2;
	if(r14 !=59) //_LBB709_62
{
	r9 = heapU8[r9+3];
	if(r9 ==0) //_LBB709_70
{
__label__ = 65;
break _74;
}
else{
	if(r9 !=59) //_LBB709_65
{
	r13 = (r13 + 1)|0;
	r6 = (r6 + 4)|0;
}
else{
__label__ = 60;
break _74;
}
}
}
else{
__label__ = 57;
break _74;
}
}
}
}
}
}
}
_84: do {
switch(__label__ ){//multiple entries
case 62:
	if(r9 ==0) //_LBB709_70
{
__label__ = 65;
break _84;
}
else{
__label__ = 64;
break _84;
}
break;
case 63:
	r9 = (r9 + 1)|0;
__label__ = 64;
break _84;
break;
case 60:
	r6 = r15 | 3;
	r9 = (r5 + r6)|0;
__label__ = 64;
break _84;
break;
case 57:
	r6 = r15 | 2;
	r9 = (r5 + r6)|0;
__label__ = 64;
break;
}
} while(0);
switch(__label__ ){//multiple entries
case 65:
	r9 = _2E_str26;
	r6 = 0;
	r13 = heapU8[r5];
	if(r13 ==0) //_LBB709_73
{
continue _60;
}
else{
	r13 = (r5 + 1)|0;
	r14 = 0;
_92: while(true){
	r6 = (r14 + 1)|0;
	r9 = _2E_str26;
	r15 = heapU8[r13+r14];
	r14 = r6;
if(!(r15 !=0)) //_LBB709_72
{
continue _60;
}
}
}
break;
case 64:
	r6 = (r9 - r5)|0;
break;
}
}
else{
break _60;
}
}
}
	r11 = _2E_str538;
	r10 = r10 == 0 ? r11 : r10;
	r11 = heapU8[r10];
_96: do {
	if(r11 !=0) //_LBB709_77
{
	r12 = (r10 + 1)|0;
	r13 = 0;
_98: while(true){
	r11 = (r13 + 1)|0;
	r14 = heapU8[r12+r13];
	r13 = r11;
if(!(r14 !=0)) //_LBB709_78
{
break _96;
}
}
}
else{
	r11 = 0;
}
} while(0);
	if(r11 !=r6) //_LBB709_86
{
break _1;
}
else{
	r11 = 0;
_103: while(true){
	r12 = (r6 + r11)|0;
	if(r12 !=0) //_LBB709_81
{
	r12 = (r5 - r11)|0;
	r13 = (r10 - r11)|0;
	r11 = (r11 + -1)|0;
	r12 = heapU8[r12];
	r13 = heapU8[r13];
	if(r12 !=r13) //_LBB709_86
{
break _1;
}
}
else{
break _52;
}
}
}
}
} while(0);
	r7 = (r7 + 1)|0;
}
else{
break _49;
}
}
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	_ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7);
	return;
}
}
} while(0);
	r1 = heap32[(r2+39)];
	r1 = (r1 + -1)|0;
	heap32[(r2+39)] = r1;
if(!(r1 !=0)) //_LBB709_89
{
	r0 = heap32[(r0)];
if(!(r0 ==0)) //_LBB709_89
{
	heap32[(g0)] = r0;
	_ZN4__rw11__rw_localeD2Ev(i7);
	heap32[(g0)] = r0;
	_ZdlPv(i7);
}
}
	return;
}

function _ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE4init_2E_b;
	r1 = heapU8[r0];
if(!(r1 != 0)) //_LBB710_5
{
	r1 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize;
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
if(!(r1 ==0)) //_LBB710_4
{
	r2 = 0;
_5: while(true){
	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
	r3 = r3 >> 2;
	r4 = r2 << 3;
	r3 = heap32[(r3)];
	r3 = (r3 + r4)|0;
	r2 = (r2 + 1)|0;
	r3 = r3 >> 2;
	heap32[(r3)] = -1;
if(!(uint(r2) <uint(r1))) //_LBB710_3
{
break _5;
}
}
}
	r1 = 1;
	heap8[r0] = r1;
}
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r2 = heap32[(r0)];
_9: do {
	if(r2 !=-1) //_LBB710_27
{
	if(r1 !=0) //_LBB710_30
{
	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
	r5 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
	r4 = (r4 + -1)|0;
	r5 = r5 >> 2;
	heap32[(r3)] = r4;
	r3 = heap32[(r5)];
	r2 = r2 << 3;
	r2 = (r3 + r2)|0;
	r4 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat;
	r2 = r2 >> 2;
	heap32[(r2)] = -1;
	r2 = r4 >> 2;
	r0 = heap32[(r0)];
	r4 = heap32[(r2)];
	if(r0 ==r4) //_LBB710_32
{
__label__ = 33; //SET chanka
_13: while(true){
	if(r0 >-1) //_LBB710_33
{
	r6 = r0 << 3;
	r6 = (r3 + r6)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	if(r6 ==-1) //_LBB710_35
{
	r0 = (r0 + -1)|0;
}
else{
__label__ = 31;
break _13;
}
}
else{
__label__ = 34;
break _13;
}
}
switch(__label__ ){//multiple entries
case 34:
	r0 = r4;
break;
case 31:
	heap32[(r2)] = r0;
break;
}
	if(uint(r0) >uint(3)) //_LBB710_31
{
__label__ = 40;
break _9;
}
else{
	r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf;
	if(r3 ==r0) //_LBB710_31
{
__label__ = 40;
break _9;
}
else{
	r2 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize;
	r2 = r2 >> 2;
	heap32[(r2)] = 8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 64;
	memcpy(i7);
if(!(r3 ==0)) //_LBB710_42
{
	heap32[(g0)] = r3;
	_ZdaPv(i7);
}
	heap32[(r5)] = r0;
__label__ = 40;
break _9;
}
}
}
else{
__label__ = 40;
break _9;
}
}
else{
	r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	if(uint(r2) >=uint(r0)) //_LBB710_7
{
__label__ = 7;
break _9;
}
else{
	r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	r1 = r2 << 3;
	r0 = (r0 + r1)|0;
	r_g0 = r0;
	return;
}
}
}
else{
	if(r1 !=0) //_LBB710_8
{
	r2 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs;
	r2 = r2 >> 2;
	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize;
	r4 = heap32[(r2)];
	r3 = r3 >> 2;
	r5 = heap32[(r3)];
	if(r4 ==r5) //_LBB710_12
{
	r4 = r4 << 4;
	r5 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
	heap32[(g0)] = r4;
	_Znaj(i7);
	r4 = r_g0;
	r5 = r5 >> 2;
	r6 = heap32[(r2)];
	r7 = heap32[(r5)];
	r8 = r6 << 3;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r7;
	heap32[(g0+2)] = r8;
	memcpy(i7);
	r8 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf;
if(!(r7 ==r8)) //_LBB710_14
{
	if(r7 !=0) //_LBB710_15
{
	heap32[(g0)] = r7;
	_ZdaPv(i7);
	r6 = heap32[(r2)];
}
}
	heap32[(r5)] = r4;
	r5 = heap32[(r3)];
	r5 = r5 << 1;
	heap32[(r3)] = r5;
_36: do {
if(!(uint(r6) >=uint(r5))) //_LBB710_20
{
	r3 = (r6 + 1)|0;
_38: while(true){
	r7 = r3 << 3;
	r7 = (r4 + r7)|0;
	r7 = r7 >> 2;
	heap32[(r7+-2)] = -1;
	if(uint(r3) >=uint(r5)) //_LBB710_20
{
break _36;
}
else{
	r3 = (r3 + 1)|0;
}
}
}
} while(0);
	r3 = r6 << 3;
	r3 = (r4 + r3)|0;
	heap32[(r0)] = r6;
	r3 = (r3 + 4)|0;
	r5 = (r1 + 4)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = 4;
	memcpy(i7);
	r3 = heap32[(r0)];
	r3 = r3 << 3;
	r5 = r1 >> 2;
	r3 = (r4 + r3)|0;
	r4 = heap32[(r5)];
	r3 = r3 >> 2;
	heap32[(r3)] = r4;
	r0 = heap32[(r0)];
	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat;
	r3 = r3 >> 2;
	r4 = heap32[(r3)];
if(!(uint(r0) <=uint(r4))) //_LBB710_22
{
	heap32[(r3)] = r0;
}
	r0 = (r6 + 1)|0;
	heap32[(r2)] = r0;
	r_g0 = r1;
	return;
}
else{
	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
	r3 = r3 >> 2;
	heap32[(r0)] = 0;
	r3 = heap32[(r3)];
	r5 = r3 >> 2;
	r5 = heap32[(r5)];
_46: do {
	if(r5 !=-1) //_LBB710_11
{
	r5 = 0;
_48: while(true){
	r6 = r5 << 3;
	r6 = (r3 + r6)|0;
	r5 = (r5 + 1)|0;
	r6 = r6 >> 2;
	heap32[(r0)] = r5;
	r6 = heap32[(r6+2)];
if(!(r6 !=-1)) //_LBB710_23
{
break _46;
}
}
}
else{
	r5 = 0;
}
} while(0);
	r6 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat;
	r6 = r6 >> 2;
	r7 = heap32[(r6)];
if(!(uint(r5) <=uint(r7))) //_LBB710_26
{
	heap32[(r6)] = r5;
}
	r5 = r5 << 3;
	r5 = (r3 + r5)|0;
	r5 = (r5 + 4)|0;
	r6 = (r1 + 4)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = 4;
	memcpy(i7);
	r0 = heap32[(r0)];
	r0 = r0 << 3;
	r5 = r1 >> 2;
	r0 = (r3 + r0)|0;
	r3 = heap32[(r5)];
	r0 = r0 >> 2;
	r4 = (r4 + 1)|0;
	heap32[(r0)] = r3;
	heap32[(r2)] = r4;
	r_g0 = r1;
	return;
}
}
else{
__label__ = 7;
}
}
} while(0);
if (__label__ == 7){
	r1 = 0;
}
	r_g0 = r1;
	return;
}

function _ZN4__rw14__rw_cat_closeEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	heap32[(fp+-1)] = r0;
if(!(r0 <0)) //_LBB711_20
{
	r0 = sp + -4;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	_ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7);
	r1 = r_g0;
if(!(r1 ==0)) //_LBB711_20
{
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
if(!(r2 ==-1)) //_LBB711_20
{
	r3 = _ZN4__rwL12__rw_catlistE_2E_1;
	r4 = _ZN4__rwL12__rw_catlistE_2E_0;
	r3 = r3 >> 2;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r6 = heap32[(r3)];
	r6 = (r6 - r5)|0;
	r6 = r6 >> 2;
	r7 = 0;
_5: while(true){
	if(uint(r6) >uint(r7)) //_LBB711_9
{
	r8 = r7 << 2;
	r8 = (r5 + r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
	if(r8 ==0) //_LBB711_8
{
__label__ = 7;
break _5;
}
else{
	if(r8 !=r2) //_LBB711_6
{
	r7 = (r7 + 1)|0;
}
else{
__label__ = 9;
break _5;
}
}
}
else{
__label__ = 7;
break _5;
}
}
if (__label__ == 7){
	r7 = r6;
}
_13: do {
if(!(uint(r6) <=uint(r7))) //_LBB711_19
{
	r2 = r7 << 2;
	r6 = (r5 + r2)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	if(r6 !=0) //_LBB711_13
{
	heap32[(g0)] = r6;
	_ZdlPv(i7);
	r5 = heap32[(r4)];
}
	r2 = (r5 + r2)|0;
	r4 = (r7 + 1)|0;
	r2 = r2 >> 2;
	heap32[(r2)] = 0;
_18: while(true){
	r2 = heap32[(r3)];
	r2 = (r2 - r5)|0;
	r2 = r2 >> 2;
	if(uint(r2) <=uint(r4)) //_LBB711_19
{
break _13;
}
else{
	r2 = r4 << 2;
	r2 = (r5 + r2)|0;
	r6 = r2 >> 2;
	r2 = heap32[(r6)];
	if(r2 !=0) //_LBB711_15
{
	r4 = (r4 + 1)|0;
	heap32[(r6+-1)] = r2;
}
else{
break _18;
}
}
}
	heap32[(r6)] = 0;
}
} while(0);
	r2 = (r1 + 4)|0;
	heap32[(g0)] = r2;
	_ZNSt6localeD1Ev(i7);
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	_ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7);
	return;
}
}
}
	r0 = _2E_str115180;
	r1 = _2E_str1116181;
	heap32[(g0)] = 7;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	_ZN4__rw10__rw_throwEiz(i7);
	return;
}

function _ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -368;var g0 = i7>>2; // save stack
	r0 = _ZZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEEE11locale_root;
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heapU8[r0];
	r5 = 0;
	heap8[sp+-259] = r5;
	r6 = heapU8[r2];
_1: do {
	if(r6 !=0) //_LBB712_2
{
	r7 = (r2 + 1)|0;
_3: while(true){
	r6 = (r5 + 1)|0;
	r8 = heapU8[r7+r5];
	r5 = r6;
	if(r8 !=0) //_LBB712_3
{
continue _3;
}
else{
break _1;
}
}
}
else{
	r6 = 0;
}
} while(0);
	r4 = r4 & 255;
_7: do {
	if(r4 !=0) //_LBB712_6
{
	r4 = (r6 + 1)|0;
	r5 = (r0 + 1)|0;
_9: while(true){
	r4 = (r4 + 1)|0;
	r7 = (r5 + 1)|0;
	r8 = heapU8[r5];
	r5 = r7;
if(!(r8 !=0)) //_LBB712_7
{
break _9;
}
}
	if(uint(r4) >uint(258)) //_LBB712_5
{
__label__ = 5;
}
else{
	r4 = sp + -259;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	strcpy(i7);
	r0 = heapU8[sp+-259];
_13: do {
	if(r0 !=0) //_LBB712_11
{
	r0 = (r4 + 1)|0;
	r7 = 0;
_15: while(true){
	r5 = (r7 + 1)|0;
	r8 = heapU8[r0+r7];
	r7 = r5;
if(!(r8 !=0)) //_LBB712_12
{
break _13;
}
}
}
else{
	r5 = 0;
}
} while(0);
	r7 = 47;
	r0 = (r5 + 1)|0;
	r8 = 0;
	heap8[r4+r5] = r7;
	heap8[r4+r0] = r8;
	r5 = heapU8[sp+-259];
	if(r5 !=0) //_LBB712_15
{
	r5 = (r4 + 1)|0;
_21: while(true){
	r4 = (r8 + 1)|0;
	r7 = heapU8[r5+r8];
	r8 = r4;
	if(r7 !=0) //_LBB712_16
{
continue _21;
}
else{
__label__ = 17;
break _7;
}
}
}
else{
	r4 = 0;
__label__ = 17;
}
}
}
else{
__label__ = 5;
}
} while(0);
if (__label__ == 5){
	r0 = 0;
	r4 = r0;
}
	r4 = (r4 + r6)|0;
if(!(uint(r4) >uint(258))) //_LBB712_33
{
	r4 = sp + -259;
	r0 = (r4 + r0)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	strcpy(i7);
	r0 = _2E_str37683;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
	if(r0 ==0) //_LBB712_28
{
	r1 = heapU8[r2];
_31: do {
	if(r1 !=0) //_LBB712_30
{
	r0 = (r2 + 1)|0;
	r4 = 0;
_33: while(true){
	r1 = (r4 + 1)|0;
	r5 = heapU8[r0+r4];
	r4 = r1;
if(!(r5 !=0)) //_LBB712_31
{
break _31;
}
}
}
else{
	r1 = 0;
}
} while(0);
	r0 = r3 >> 2;
	heap32[(r0)] = 0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
	r1 = heap32[(r0+1)];
	r_g0 = r1;
	return;
}
else{
	r2 = _2E_str1648;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r2;
	fopen(i7);
	r2 = r_g0;
if(!(r2 ==0)) //_LBB712_33
{
	if(uint(r2) <uint(10)) //_LBB712_22
{
	r3 = _ZL13s_file_stdout;
	r0 = r3 >> 2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+7)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 2;
	__FUNCTION_TABLE__[(r0)>>2](i7);
}
else{
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+7)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r3 = r2;
}
	r0 = r3 >> 2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+5)];
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	if(uint(r2) >uint(9)) //_LBB712_25
{
	r3 = r2;
}
else{
	r3 = _ZL13s_file_stdout;
}
	r0 = r3 >> 2;
	r0 = heap32[(r0)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r0)>>2](i7);
if(!(uint(r2) <uint(10))) //_LBB712_33
{
	heap32[(g0)] = r3;
	_ZdlPv(i7);
}
}
}
}
	r0 = sp + -352;
	r0 = r0 >> 2;
	heap32[(r0+20)] = 0;
	heap32[(r0+22)] = r1;
	heap32[(r0+21)] = 0;
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNKSt8messagesIcE8do_closeEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	_ZN4__rw14__rw_cat_closeEi(i7);
	return;
}

function _ZNKSt8messagesIcE6do_getEiiiRKSs(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	heap32[(fp+-1)] = r0;
if(!(r0 <0)) //_LBB714_8
{
	r0 = sp + -4;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	_ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB714_8
{
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
if(!(r0 ==-1)) //_LBB714_8
{
	r1 = _ZN4__rwL12__rw_catlistE_2E_1;
	r2 = _ZN4__rwL12__rw_catlistE_2E_0;
	r1 = r1 >> 2;
	r2 = r2 >> 2;
	r2 = heap32[(r2)];
	r1 = heap32[(r1)];
	r1 = (r1 - r2)|0;
	r1 = r1 >> 2;
	r3 = 0;
_5: while(true){
	if(uint(r1) <=uint(r3)) //_LBB714_8
{
break _5;
}
else{
	r4 = r3 << 2;
	r4 = (r2 + r4)|0;
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	if(r4 ==0) //_LBB714_8
{
break _5;
}
else{
	if(r4 !=r0) //_LBB714_4
{
	r3 = (r3 + 1)|0;
continue _5;
}
else{
break _5;
}
}
}
}
}
}
}
	r0 = heap32[(fp)];
	r1 = heap32[(fp+5)];
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r3 = r2 >> 2;
	r4 = heap32[(r3+-3)];
	if(r4 ==-1) //_LBB714_11
{
	r2 = heap32[(r3+-1)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r2;
	_ZNSs10_C_get_repEjj(i7);
	r0 = r0 >> 2;
	r3 = (r_g0 + 12)|0;
	heap32[(r0)] = r3;
	r0 = heap32[(r1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	memcpy(i7);
}
else{
	r1 = (r2 + -12)|0;
	r0 = r0 >> 2;
	r3 = _ZNSs11_C_null_refE;
	heap32[(r0)] = r2;
if(!(r1 ==r3)) //_LBB714_12
{
	r0 = r1 >> 2;
	r1 = (r4 + 1)|0;
	heap32[(r0)] = r1;
	return;
}
}
	return;
}

function _ZNKSt8messagesIcE7do_openERKSsRKSt6locale(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	heap32[(g0)] = 1;
	_Znwj(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB715_2
{
	heap32[(g0)] = r0;
	_ZdlPv(i7);
}
	r0 = -1;
	r_g0 = r0;
	return;
}

function _ZNSt8messagesIcED0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN4__rw10__rw_facetE;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(r2+5)] = -1;
	r1 = heap32[(r2+1)];
	r3 = heap32[(r2+2)];
if(!(r1 ==r3)) //_LBB716_3
{
if(!(r1 ==0)) //_LBB716_3
{
	heap32[(g0)] = r1;
	_ZdaPv(i7);
}
}
	r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed;
	heap32[(r2+1)] = r1;
	r1 = heap32[(r2+4)];
if(!(r1 !=-1)) //_LBB716_5
{
	r1 = heap32[(r2+3)];
	heap32[(g0)] = r1;
	_ZdlPv(i7);
}
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZNSt8messagesIcED1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVN4__rw10__rw_facetE;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	heap32[(r0+5)] = -1;
	r1 = heap32[(r0+1)];
	r2 = heap32[(r0+2)];
if(!(r1 ==r2)) //_LBB717_3
{
if(!(r1 ==0)) //_LBB717_3
{
	heap32[(g0)] = r1;
	_ZdaPv(i7);
}
}
	r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed;
	heap32[(r0+1)] = r1;
	r1 = heap32[(r0+4)];
if(!(r1 !=-1)) //_LBB717_5
{
	r0 = heap32[(r0+3)];
	heap32[(g0)] = r0;
	_ZdlPv(i7);
}
	return;
}

function _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(fp+2)];
	r3 = heap32[(r1)];
	r4 = (r3 + r2)|0;
	r5 = heap32[(fp+1)];
	if(uint(r4) >uint(255)) //_LBB718_2
{
	r3 = (r4 + 1)|0;
	heap32[(g0)] = r3;
	_Znaj(i7);
	r7 = r_g0;
	r3 = heap32[(r1)];
	r6 = heap32[(r1+1)];
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r3;
	memcpy(i7);
	r3 = heap32[(r1+1)];
	r6 = (r0 + 8)|0;
if(!(r3 ==r6)) //_LBB718_5
{
if(!(r3 ==0)) //_LBB718_5
{
	heap32[(g0)] = r3;
	_ZdaPv(i7);
}
}
	r6 = (r0 + 4)|0;
	heap32[(r1+1)] = r7;
	r3 = heap32[(r1)];
}
else{
	r6 = (r0 + 4)|0;
	r7 = heap32[(r1+1)];
}
	r3 = (r7 + r3)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r2;
	memcpy(i7);
	r2 = r6 >> 2;
	heap32[(r1)] = r4;
	r1 = heap32[(r2)];
	r2 = 0;
	heap8[r1+r4] = r2;
	r_g0 = r0;
	return;
}

function _ZNSs10_C_get_repEjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
_1: do {
	if(uint(r0) <uint(-13)) //_LBB719_4
{
	if(uint(r0) <uint(r1)) //_LBB719_6
{
	r2 = _2E_str4362;
	r3 = _2E_str3361;
	heap32[(g0)] = 8;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r0;
	_ZN4__rw10__rw_throwEiz(i7);
__label__ = 6;
break _1;
}
else{
__label__ = 6;
break _1;
}
}
else{
	if(uint(r1) >uint(-14)) //_LBB719_3
{
	r0 = _2E_str2360;
	r2 = _2E_str3361;
	heap32[(g0)] = 8;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = -14;
	_ZN4__rw10__rw_throwEiz(i7);
	r0 = r1;
__label__ = 8;
}
else{
	r0 = r1;
__label__ = 6;
}
}
} while(0);
if (__label__ == 6){
	if(r0 ==0) //_LBB719_9
{
	r0 = _ZNSs11_C_null_refE;
	r_g0 = r0;
	return;
}
}
	r2 = (r0 + 14)|0;
	heap32[(g0)] = r2;
	_Znwj(i7);
	r2 = r_g0;
if(!(r2 !=0)) //_LBB719_12
{
	heap32[(g0)] = 3;
	_ZN4__rw10__rw_throwEiz(i7);
}
	r3 = r2 >> 2;
	heap32[(r3)] = 0;
	heap32[(r3+1)] = r0;
	r0 = (r1 + r2)|0;
	r4 = 0;
	heap32[(r3+2)] = r1;
	heap8[r0+12] = r4;
	r_g0 = r2;
	return;
}

function _ZNKSt9type_info15__is_function_pEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNSt9type_infoD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVSt9type_info;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZNSt9type_infoD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVSt9type_info;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function block_merge_next(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+1)];
	r2 = (r2 + -4)|0;
	r2 = r2 & -4;
	r3 = (r0 + 8)|0;
	r4 = (r2 + 4)|0;
	r4 = (r3 + r4)|0;
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
	r6 = r5 & 1;
if(!(r6 ==0)) //_LBB723_9
{
	r6 = heap32[(fp)];
	r7 = (r3 + r2)|0;
	r8 = r5 & -4;
	if(uint(r8) >uint(255)) //_LBB723_3
{
	r5 = r8 >>> 1;
	r5 = r8 | r5;
	r9 = r5 >>> 2;
	r5 = r5 | r9;
	r9 = r5 >>> 4;
	r5 = r5 | r9;
	r9 = r5 >>> 8;
	r5 = r5 | r9;
	r9 = r5 >>> 16;
	r5 = r5 | r9;
	r9 = r5 ^ -1;
	r10 = 1431655765;
	r9 = r9 >>> 1;
	r5 = r10 & (~r5);
	r9 = r9 & 1431655765;
	r5 = (r5 + r9)|0;
	r9 = r5 >>> 2;
	r5 = r5 & 858993459;
	r9 = r9 & 858993459;
	r5 = (r5 + r9)|0;
	r9 = r5 >>> 4;
	r5 = r5 & 252645135;
	r9 = r9 & 252645135;
	r5 = (r5 + r9)|0;
	r9 = r5 >>> 8;
	r5 = r5 & 16711935;
	r9 = r9 & 16711935;
	r5 = (r5 + r9)|0;
	r9 = r5 & 65535;
	r5 = r5 >>> 16;
	r10 = 26;
	r5 = (r9 + r5)|0;
	r9 = (r10 - r5)|0;
	r8 = r8 >>> r9;
	r9 = 24;
	r8 = r8 ^ 32;
	r5 = (r9 - r5)|0;
}
else{
	r8 = r5 >>> 3;
	r5 = 0;
}
	r2 = (r2 + r3)|0;
	r2 = r2 >> 2;
	r9 = r5 << 7;
	r10 = heap32[(r2+2)];
	r2 = heap32[(r2+3)];
	r9 = (r6 + r9)|0;
	r11 = r8 << 2;
	r9 = (r9 + r11)|0;
	r11 = r10 >> 2;
	r12 = r2 >> 2;
	heap32[(r11+3)] = r2;
	r2 = r9 >> 2;
	heap32[(r12+2)] = r10;
	r2 = heap32[(r2+24)];
if(!(r2 !=r7)) //_LBB723_8
{
	r2 = (r9 + 96)|0;
	r2 = r2 >> 2;
	r7 = block_null;
	heap32[(r2)] = r10;
if(!(r10 !=r7)) //_LBB723_8
{
	r2 = r5 << 2;
	r2 = (r6 + r2)|0;
	r2 = r2 >> 2;
	r7 = 1;
	r8 = r7 << r8;
	r9 = heap32[(r2+1)];
	r8 = r9 & (~r8);
	heap32[(r2+1)] = r8;
if(!(r8 !=0)) //_LBB723_8
{
	r2 = r6 >> 2;
	r5 = r7 << r5;
	r6 = heap32[(r2)];
	r5 = r6 & (~r5);
	heap32[(r2)] = r5;
}
}
}
	r2 = heap32[(r4)];
	r4 = heap32[(r1+1)];
	r2 = r2 & -4;
	r2 = (r2 + r4)|0;
	r4 = r2 & -4;
	r3 = (r3 + r4)|0;
	r2 = (r2 + 4)|0;
	r3 = r3 >> 2;
	heap32[(r1+1)] = r2;
	heap32[(r3)] = r0;
}
	r_g0 = r0;
	return;
}

function tlsf_free(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
if(!(r0 ==0)) //_LBB724_15
{
	r1 = heap32[(fp)];
	r2 = r0 >> 2;
	r3 = heap32[(r2+-1)];
	r4 = s_current_memory;
	r5 = (r3 + -4)|0;
	r4 = r4 >> 2;
	r5 = r5 & -4;
	r6 = heap32[(r4)];
	r3 = r3 & -4;
	r5 = (r0 + r5)|0;
	r3 = (r6 - r3)|0;
	r0 = (r0 + -8)|0;
	r5 = r5 >> 2;
	heap32[(r4)] = r3;
	heap32[(r5)] = r0;
	r3 = heap32[(r5+1)];
	r3 = r3 | 2;
	heap32[(r5+1)] = r3;
	r3 = heap32[(r2+-1)];
	r4 = r3 | 1;
	heap32[(r2+-1)] = r4;
	r3 = r3 & 2;
	if(r3 !=0) //_LBB724_3
{
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	r3 = r0 >> 2;
	r4 = heap32[(r3+1)];
	r5 = r4 & -4;
	if(uint(r5) >uint(255)) //_LBB724_5
{
	r4 = r5 >>> 1;
	r4 = r5 | r4;
	r6 = r4 >>> 2;
	r4 = r4 | r6;
	r6 = r4 >>> 4;
	r4 = r4 | r6;
	r6 = r4 >>> 8;
	r4 = r4 | r6;
	r6 = r4 >>> 16;
	r4 = r4 | r6;
	r6 = r4 ^ -1;
	r7 = 1431655765;
	r6 = r6 >>> 1;
	r4 = r7 & (~r4);
	r6 = r6 & 1431655765;
	r4 = (r4 + r6)|0;
	r6 = r4 >>> 2;
	r4 = r4 & 858993459;
	r6 = r6 & 858993459;
	r4 = (r4 + r6)|0;
	r6 = r4 >>> 4;
	r4 = r4 & 252645135;
	r6 = r6 & 252645135;
	r4 = (r4 + r6)|0;
	r6 = r4 >>> 8;
	r4 = r4 & 16711935;
	r6 = r6 & 16711935;
	r4 = (r4 + r6)|0;
	r6 = r4 & 65535;
	r4 = r4 >>> 16;
	r7 = 26;
	r4 = (r6 + r4)|0;
	r6 = (r7 - r4)|0;
	r5 = r5 >>> r6;
	r6 = 24;
	r5 = r5 ^ 32;
	r4 = (r6 - r4)|0;
}
else{
	r5 = r4 >>> 3;
	r4 = 0;
}
	r6 = r4 << 7;
	r7 = heap32[(r3+2)];
	r8 = heap32[(r3+3)];
	r6 = (r1 + r6)|0;
	r9 = r5 << 2;
	r6 = (r6 + r9)|0;
	r9 = r7 >> 2;
	r10 = r8 >> 2;
	heap32[(r9+3)] = r8;
	r8 = r6 >> 2;
	heap32[(r10+2)] = r7;
	r8 = heap32[(r8+24)];
if(!(r8 !=r0)) //_LBB724_10
{
	r6 = (r6 + 96)|0;
	r6 = r6 >> 2;
	r8 = block_null;
	heap32[(r6)] = r7;
if(!(r7 !=r8)) //_LBB724_10
{
	r6 = r4 << 2;
	r6 = (r1 + r6)|0;
	r6 = r6 >> 2;
	r7 = 1;
	r5 = r7 << r5;
	r8 = heap32[(r6+1)];
	r5 = r8 & (~r5);
	heap32[(r6+1)] = r5;
if(!(r5 !=0)) //_LBB724_10
{
	r5 = r1 >> 2;
	r4 = r7 << r4;
	r6 = heap32[(r5)];
	r4 = r6 & (~r4);
	heap32[(r5)] = r4;
}
}
}
	r4 = (r0 + 8)|0;
	r2 = heap32[(r2+-1)];
	r5 = heap32[(r3+1)];
	r2 = r2 & -4;
	r2 = (r2 + r5)|0;
	r5 = r2 & -4;
	r4 = (r4 + r5)|0;
	r2 = (r2 + 4)|0;
	r4 = r4 >> 2;
	heap32[(r3+1)] = r2;
	heap32[(r4)] = r0;
}
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	block_merge_next(i7);
	r0 = r_g0;
	r2 = r0 >> 2;
	r2 = heap32[(r2+1)];
	r3 = r2 & -4;
	if(uint(r3) >uint(255)) //_LBB724_13
{
	r2 = r3 >>> 1;
	r2 = r3 | r2;
	r4 = r2 >>> 2;
	r2 = r2 | r4;
	r4 = r2 >>> 4;
	r2 = r2 | r4;
	r4 = r2 >>> 8;
	r2 = r2 | r4;
	r4 = r2 >>> 16;
	r2 = r2 | r4;
	r4 = r2 ^ -1;
	r5 = 1431655765;
	r4 = r4 >>> 1;
	r2 = r5 & (~r2);
	r4 = r4 & 1431655765;
	r2 = (r2 + r4)|0;
	r4 = r2 >>> 2;
	r2 = r2 & 858993459;
	r4 = r4 & 858993459;
	r2 = (r2 + r4)|0;
	r4 = r2 >>> 4;
	r2 = r2 & 252645135;
	r4 = r4 & 252645135;
	r2 = (r2 + r4)|0;
	r4 = r2 >>> 8;
	r2 = r2 & 16711935;
	r4 = r4 & 16711935;
	r2 = (r2 + r4)|0;
	r4 = r2 & 65535;
	r2 = r2 >>> 16;
	r5 = 26;
	r2 = (r4 + r2)|0;
	r4 = (r5 - r2)|0;
	r3 = r3 >>> r4;
	r4 = 24;
	r3 = r3 ^ 32;
	r2 = (r4 - r2)|0;
}
else{
	r3 = r2 >>> 3;
	r2 = 0;
}
	r4 = r2 << 7;
	r4 = (r1 + r4)|0;
	r5 = r3 << 2;
	r4 = (r4 + r5)|0;
	r4 = r4 >> 2;
	r5 = heap32[(r4+24)];
	r6 = r0 >> 2;
	r7 = block_null;
	heap32[(r6+2)] = r5;
	r5 = r5 >> 2;
	heap32[(r6+3)] = r7;
	heap32[(r5+3)] = r0;
	r5 = 1;
	r6 = r1 >> 2;
	heap32[(r4+24)] = r0;
	r0 = r2 << 2;
	r2 = r5 << r2;
	r4 = heap32[(r6)];
	r0 = (r1 + r0)|0;
	r1 = r4 | r2;
	r0 = r0 >> 2;
	heap32[(r6)] = r1;
	r1 = r5 << r3;
	r2 = heap32[(r0+1)];
	r1 = r2 | r1;
	heap32[(r0+1)] = r1;
}
	return;
}

function block_prepare_used(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	if(r0 ==0) //_LBB725_8
{
	r0 = 0;
	r_g0 = r0;
	return;
}
else{
	r1 = heap32[(fp+2)];
	r2 = r0 >> 2;
	r3 = heap32[(r2+1)];
	r4 = r3 & -4;
	r5 = (r1 + 16)|0;
	if(uint(r4) >=uint(r5)) //_LBB725_3
{
	r3 = heap32[(fp)];
	r5 = (r0 + 8)|0;
	r6 = (r5 + r1)|0;
	r7 = r6 >> 2;
	r8 = -4;
	r9 = heap32[(r7)];
	r8 = (r8 - r1)|0;
	r9 = r9 & 3;
	r4 = (r8 + r4)|0;
	r4 = r9 | r4;
	heap32[(r7)] = r4;
	r4 = heap32[(r2+1)];
	r4 = r4 & 3;
	r4 = r4 | r1;
	heap32[(r2+1)] = r4;
	r4 = heap32[(r7)];
	r4 = (r4 + -4)|0;
	r8 = (r1 + 4)|0;
	r4 = r4 & -4;
	r1 = (r1 + 8)|0;
	r9 = (r4 + r8)|0;
	r4 = (r4 + r1)|0;
	r9 = (r5 + r9)|0;
	r4 = (r5 + r4)|0;
	r6 = (r6 + -4)|0;
	r9 = r9 >> 2;
	r4 = r4 >> 2;
	heap32[(r9)] = r6;
	r9 = heap32[(r4)];
	r9 = r9 | 2;
	heap32[(r4)] = r9;
	r4 = heap32[(r7)];
	r4 = r4 | 1;
	heap32[(r7)] = r4;
	r4 = heap32[(r2+1)];
	r4 = (r4 + -4)|0;
	r4 = r4 & -4;
	r4 = (r5 + r4)|0;
	r4 = r4 >> 2;
	heap32[(r4)] = r0;
	r4 = heap32[(r7)];
	r9 = r4 & -4;
	r10 = r4 | 2;
	heap32[(r7)] = r10;
	if(uint(r9) >uint(255)) //_LBB725_5
{
	r4 = r9 >>> 1;
	r4 = r9 | r4;
	r7 = r4 >>> 2;
	r4 = r4 | r7;
	r7 = r4 >>> 4;
	r4 = r4 | r7;
	r7 = r4 >>> 8;
	r4 = r4 | r7;
	r7 = r4 >>> 16;
	r4 = r4 | r7;
	r7 = r4 ^ -1;
	r10 = 1431655765;
	r7 = r7 >>> 1;
	r4 = r10 & (~r4);
	r7 = r7 & 1431655765;
	r4 = (r4 + r7)|0;
	r7 = r4 >>> 2;
	r4 = r4 & 858993459;
	r7 = r7 & 858993459;
	r4 = (r4 + r7)|0;
	r7 = r4 >>> 4;
	r4 = r4 & 252645135;
	r7 = r7 & 252645135;
	r4 = (r4 + r7)|0;
	r7 = r4 >>> 8;
	r4 = r4 & 16711935;
	r7 = r7 & 16711935;
	r4 = (r4 + r7)|0;
	r7 = r4 & 65535;
	r4 = r4 >>> 16;
	r10 = 26;
	r4 = (r7 + r4)|0;
	r7 = (r10 - r4)|0;
	r9 = r9 >>> r7;
	r7 = 24;
	r9 = r9 ^ 32;
	r4 = (r7 - r4)|0;
}
else{
	r9 = r4 >>> 3;
	r4 = 0;
}
	r7 = r4 << 7;
	r7 = (r3 + r7)|0;
	r10 = r9 << 2;
	r7 = (r7 + r10)|0;
	r7 = r7 >> 2;
	r8 = (r5 + r8)|0;
	r1 = (r5 + r1)|0;
	r5 = heap32[(r7+24)];
	r8 = r8 >> 2;
	r1 = r1 >> 2;
	r10 = block_null;
	heap32[(r8)] = r5;
	r5 = r5 >> 2;
	heap32[(r1)] = r10;
	heap32[(r5+3)] = r6;
	r1 = 1;
	r5 = r3 >> 2;
	heap32[(r7+24)] = r6;
	r6 = r4 << 2;
	r4 = r1 << r4;
	r7 = heap32[(r5)];
	r3 = (r3 + r6)|0;
	r4 = r7 | r4;
	r3 = r3 >> 2;
	heap32[(r5)] = r4;
	r1 = r1 << r9;
	r4 = heap32[(r3+1)];
	r1 = r4 | r1;
	heap32[(r3+1)] = r1;
	r3 = heap32[(r2+1)];
}
	r1 = r3 & -4;
	r0 = (r0 + 8)|0;
	r1 = (r0 + r1)|0;
	r1 = r1 >> 2;
	r3 = heap32[(r1)];
	r3 = r3 & -3;
	heap32[(r1)] = r3;
	r1 = heap32[(r2+1)];
	r1 = r1 & -2;
	heap32[(r2+1)] = r1;
	r_g0 = r0;
	return;
}
}

function block_locate_free(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
_1: do {
if(!(r0 ==0)) //_LBB726_16
{
	r1 = heap32[(fp)];
	if(uint(r0) >uint(31)) //_LBB726_3
{
	r2 = r0 >>> 1;
	r2 = r0 | r2;
	r3 = r2 >>> 2;
	r2 = r2 | r3;
	r3 = r2 >>> 4;
	r2 = r2 | r3;
	r3 = r2 >>> 8;
	r2 = r2 | r3;
	r3 = r2 >>> 16;
	r2 = r2 | r3;
	r3 = r2 ^ -1;
	r4 = 1431655765;
	r3 = r3 >>> 1;
	r2 = r4 & (~r2);
	r3 = r3 & 1431655765;
	r2 = (r2 + r3)|0;
	r3 = r2 >>> 2;
	r2 = r2 & 858993459;
	r3 = r3 & 858993459;
	r2 = (r2 + r3)|0;
	r3 = r2 >>> 4;
	r2 = r2 & 252645135;
	r3 = r3 & 252645135;
	r2 = (r2 + r3)|0;
	r3 = r2 >>> 8;
	r2 = r2 & 16711935;
	r3 = r3 & 16711935;
	r2 = (r2 + r3)|0;
	r3 = r2 & 65535;
	r2 = r2 >>> 16;
	r5 = 26;
	r2 = (r3 + r2)|0;
	r3 = 1;
	r2 = (r5 - r2)|0;
	r2 = r3 << r2;
	r0 = (r0 + r2)|0;
	r0 = (r0 + -1)|0;
	if(uint(r0) >uint(255)) //_LBB726_5
{
	r2 = r0 >>> 1;
	r2 = r0 | r2;
	r3 = r2 >>> 2;
	r2 = r2 | r3;
	r3 = r2 >>> 4;
	r2 = r2 | r3;
	r3 = r2 >>> 8;
	r2 = r2 | r3;
	r3 = r2 >>> 16;
	r2 = r2 | r3;
	r3 = r2 ^ -1;
	r3 = r3 >>> 1;
	r4 = r4 & (~r2);
	r2 = r3 & 1431655765;
	r4 = (r4 + r2)|0;
	r2 = r4 >>> 2;
	r4 = r4 & 858993459;
	r2 = r2 & 858993459;
	r4 = (r4 + r2)|0;
	r2 = r4 >>> 4;
	r4 = r4 & 252645135;
	r2 = r2 & 252645135;
	r4 = (r4 + r2)|0;
	r2 = r4 >>> 8;
	r4 = r4 & 16711935;
	r2 = r2 & 16711935;
	r4 = (r4 + r2)|0;
	r2 = r4 & 65535;
	r4 = r4 >>> 16;
	r4 = (r2 + r4)|0;
	r2 = (r5 - r4)|0;
	r0 = r0 >>> r2;
	r2 = 24;
	r0 = r0 ^ 32;
	r4 = (r2 - r4)|0;
__label__ = 5;
}
else{
__label__ = 3;
}
}
else{
__label__ = 3;
}
if (__label__ == 3){
	r0 = r0 >>> 3;
	r4 = 0;
}
	r2 = r4 << 2;
	r2 = (r1 + r2)|0;
	r2 = r2 >> 2;
	r3 = -1;
	r2 = heap32[(r2+1)];
	r0 = r3 << r0;
	r0 = r2 & r0;
	if(r0 ==0) //_LBB726_8
{
	r0 = r1 >> 2;
	r4 = (r4 + 1)|0;
	r0 = heap32[(r0)];
	r4 = r3 << r4;
	r0 = r0 & r4;
	if(r0 ==0) //_LBB726_16
{
break _1;
}
else{
	r4 = (r0 + -1)|0;
	r0 = r4 & (~r0);
	r4 = r0 >>> 1;
	r0 = r0 & 1431655765;
	r4 = r4 & 1431655765;
	r0 = (r0 + r4)|0;
	r4 = r0 >>> 2;
	r0 = r0 & 858993459;
	r4 = r4 & 858993459;
	r0 = (r0 + r4)|0;
	r4 = r0 >>> 4;
	r0 = r0 & 252645135;
	r4 = r4 & 252645135;
	r0 = (r0 + r4)|0;
	r4 = r0 >>> 8;
	r0 = r0 & 16711935;
	r4 = r4 & 16711935;
	r0 = (r0 + r4)|0;
	r4 = r0 & 65535;
	r0 = r0 >>> 16;
	r4 = (r4 + r0)|0;
	r0 = r4 << 2;
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
}
}
	r2 = (r0 + -1)|0;
	r2 = r2 & (~r0);
	r5 = r2 >>> 1;
	r2 = r2 & 1431655765;
	r5 = r5 & 1431655765;
	r2 = (r2 + r5)|0;
	r5 = r2 >>> 2;
	r2 = r2 & 858993459;
	r5 = r5 & 858993459;
	r2 = (r2 + r5)|0;
	r5 = r2 >>> 4;
	r2 = r2 & 252645135;
	r5 = r5 & 252645135;
	r2 = (r2 + r5)|0;
	r5 = r2 >>> 8;
	r2 = r2 & 16711935;
	r5 = r5 & 16711935;
	r2 = (r2 + r5)|0;
	r5 = r2 & 65535;
	r2 = r2 >>> 16;
	r2 = (r5 + r2)|0;
	r0 = r0 == 0 ? r3 : r2;
	r2 = r4 << 7;
	r2 = (r1 + r2)|0;
	r3 = r0 << 2;
	r2 = (r2 + r3)|0;
	r3 = r2 >> 2;
	r3 = heap32[(r3+24)];
if(!(r3 ==0)) //_LBB726_16
{
	r2 = (r2 + 96)|0;
	r5 = r3 >> 2;
	r6 = heap32[(r5+2)];
	r5 = heap32[(r5+3)];
	r7 = r6 >> 2;
	r8 = r5 >> 2;
	heap32[(r7+3)] = r5;
	r2 = r2 >> 2;
	heap32[(r8+2)] = r6;
	r5 = heap32[(r2)];
if(!(r5 !=r3)) //_LBB726_15
{
	r5 = block_null;
	heap32[(r2)] = r6;
if(!(r6 !=r5)) //_LBB726_15
{
	r2 = r4 << 2;
	r2 = (r1 + r2)|0;
	r2 = r2 >> 2;
	r5 = 1;
	r0 = r5 << r0;
	r6 = heap32[(r2+1)];
	r0 = r6 & (~r0);
	heap32[(r2+1)] = r0;
if(!(r0 !=0)) //_LBB726_15
{
	r0 = r1 >> 2;
	r1 = r5 << r4;
	r2 = heap32[(r0)];
	r1 = r2 & (~r1);
	heap32[(r0)] = r1;
}
}
}
	r_g0 = r3;
	return;
}
}
} while(0);
	r0 = 0;
	r_g0 = r0;
	return;
}

function tlsf_malloc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = (r0 + -1)|0;
	if(uint(r2) <uint(1073741823)) //_LBB727_2
{
	r0 = (r0 + 7)|0;
	r0 = r0 & -8;
	r2 = 12;
	r0 = uint(r0) < uint(r2) ? r2 : r0;
}
else{
	r0 = 0;
}
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	block_locate_free(i7);
	r2 = r_g0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r0;
	r0 = s_current_memory;
	block_prepare_used(i7);
	r1 = r_g0;
	r2 = r2 >> 2;
	r0 = r0 >> 2;
	r2 = heap32[(r2+1)];
	r3 = heap32[(r0)];
	r2 = r2 & -4;
	r2 = (r3 + r2)|0;
	r3 = s_max_memory;
	r3 = r3 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r3)];
if(!(uint(r2) <=uint(r0))) //_LBB727_5
{
	heap32[(r3)] = r2;
}
	r_g0 = r1;
	return;
}

function tlsf_realloc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+2)];
if(!(r0 ==0)) //_LBB728_3
{
if(!(r2 !=0)) //_LBB728_3
{
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	tlsf_free(i7);
	r0 = 0;
	r_g0 = r0;
	return;
}
}
	if(r0 !=0) //_LBB728_10
{
	r3 = r0 >> 2;
	r4 = heap32[(r3+-1)];
	r5 = r4 & -4;
	r6 = (r0 + r5)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
	r7 = r6 & -4;
	r7 = (r5 + r7)|0;
	r8 = (r2 + -1)|0;
	r9 = (r0 + -8)|0;
	r7 = (r7 + 4)|0;
	if(uint(r8) <uint(1073741823)) //_LBB728_12
{
	r10 = (r2 + 7)|0;
	r10 = r10 & -8;
	r11 = 12;
	r10 = uint(r10) < uint(r11) ? r11 : r10;
}
else{
	r10 = 0;
}
_11: do {
	if(uint(r10) >uint(r5)) //_LBB728_15
{
	r4 = r6 & 1;
if(!(r4 ==0)) //_LBB728_17
{
	if(uint(r10) <=uint(r7)) //_LBB728_24
{
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r9;
	block_merge_next(i7);
	r4 = heap32[(r3+-1)];
	r4 = r4 & -4;
	r4 = (r0 + r4)|0;
	r4 = r4 >> 2;
	r9 = heap32[(r4)];
	r9 = r9 & -3;
	heap32[(r4)] = r9;
	r4 = heap32[(r3+-1)];
	r4 = r4 & -2;
	heap32[(r3+-1)] = r4;
break _11;
}
}
	if(uint(r8) <uint(1073741823)) //_LBB728_19
{
	r3 = (r2 + 7)|0;
	r3 = r3 & -8;
	r4 = 12;
	r3 = uint(r3) < uint(r4) ? r4 : r3;
}
else{
	r3 = 0;
}
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r3;
	block_locate_free(i7);
	r4 = r_g0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r3;
	r3 = s_current_memory;
	block_prepare_used(i7);
	r9 = r_g0;
	r4 = r4 >> 2;
	r3 = r3 >> 2;
	r4 = heap32[(r4+1)];
	r10 = heap32[(r3)];
	r4 = r4 & -4;
	r4 = (r10 + r4)|0;
	r10 = s_max_memory;
	r10 = r10 >> 2;
	heap32[(r3)] = r4;
	r3 = heap32[(r10)];
if(!(uint(r4) <=uint(r3))) //_LBB728_22
{
	heap32[(r10)] = r4;
}
	if(r9 ==0) //_LBB728_34
{
	r_g0 = r9;
	return;
}
else{
	r3 = uint(r5) >= uint(r2) ? r2 : r5;
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r3;
	memcpy(i7);
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	tlsf_free(i7);
	r_g0 = r9;
	return;
}
}
} while(0);
	r9 = s_current_memory;
	r9 = r9 >> 2;
	r2 = heap32[(r9)];
	r2 = (r2 - r5)|0;
	r5 = r4 & -4;
	heap32[(r9)] = r2;
	r6 = (r10 + 16)|0;
	if(uint(r5) >=uint(r6)) //_LBB728_27
{
	r4 = (r0 + r10)|0;
	r6 = r4 >> 2;
	r7 = -4;
	r8 = heap32[(r6)];
	r7 = (r7 - r10)|0;
	r8 = r8 & 3;
	r5 = (r7 + r5)|0;
	r5 = r8 | r5;
	heap32[(r6)] = r5;
	r5 = heap32[(r3+-1)];
	r5 = r5 & 3;
	r5 = r5 | r10;
	heap32[(r3+-1)] = r5;
	r5 = heap32[(r6)];
	r5 = (r5 + -4)|0;
	r5 = r5 & -4;
	r5 = (r10 + r5)|0;
	r5 = (r5 + r0)|0;
	r4 = (r4 + -4)|0;
	r5 = r5 >> 2;
	heap32[(r5+1)] = r4;
	r7 = heap32[(r5+2)];
	r7 = r7 | 2;
	heap32[(r5+2)] = r7;
	r5 = heap32[(r6)];
	r5 = r5 | 1;
	r5 = r5 & -3;
	heap32[(r6)] = r5;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r4;
	block_merge_next(i7);
	r4 = r_g0;
	r5 = r4 >> 2;
	r5 = heap32[(r5+1)];
	r6 = r5 & -4;
	if(uint(r6) >uint(255)) //_LBB728_29
{
	r5 = r6 >>> 1;
	r5 = r6 | r5;
	r7 = r5 >>> 2;
	r5 = r5 | r7;
	r7 = r5 >>> 4;
	r5 = r5 | r7;
	r7 = r5 >>> 8;
	r5 = r5 | r7;
	r7 = r5 >>> 16;
	r5 = r5 | r7;
	r7 = r5 ^ -1;
	r8 = 1431655765;
	r7 = r7 >>> 1;
	r5 = r8 & (~r5);
	r7 = r7 & 1431655765;
	r5 = (r5 + r7)|0;
	r7 = r5 >>> 2;
	r5 = r5 & 858993459;
	r7 = r7 & 858993459;
	r5 = (r5 + r7)|0;
	r7 = r5 >>> 4;
	r5 = r5 & 252645135;
	r7 = r7 & 252645135;
	r5 = (r5 + r7)|0;
	r7 = r5 >>> 8;
	r5 = r5 & 16711935;
	r7 = r7 & 16711935;
	r5 = (r5 + r7)|0;
	r7 = r5 & 65535;
	r5 = r5 >>> 16;
	r8 = 26;
	r5 = (r7 + r5)|0;
	r7 = (r8 - r5)|0;
	r6 = r6 >>> r7;
	r7 = 24;
	r6 = r6 ^ 32;
	r5 = (r7 - r5)|0;
}
else{
	r6 = r5 >>> 3;
	r5 = 0;
}
	r7 = r5 << 7;
	r7 = (r1 + r7)|0;
	r8 = r6 << 2;
	r7 = (r7 + r8)|0;
	r7 = r7 >> 2;
	r8 = heap32[(r7+24)];
	r10 = r4 >> 2;
	r11 = block_null;
	heap32[(r10+2)] = r8;
	r8 = r8 >> 2;
	heap32[(r10+3)] = r11;
	heap32[(r8+3)] = r4;
	r8 = 1;
	r10 = r1 >> 2;
	heap32[(r7+24)] = r4;
	r4 = r5 << 2;
	r5 = r8 << r5;
	r7 = heap32[(r10)];
	r4 = (r1 + r4)|0;
	r1 = r7 | r5;
	r4 = r4 >> 2;
	heap32[(r10)] = r1;
	r1 = r8 << r6;
	r5 = heap32[(r4+1)];
	r1 = r5 | r1;
	heap32[(r4+1)] = r1;
	r4 = heap32[(r3+-1)];
}
	r1 = r4 & -4;
	r1 = (r2 + r1)|0;
	r2 = s_max_memory;
	r2 = r2 >> 2;
	heap32[(r9)] = r1;
	r9 = heap32[(r2)];
if(!(uint(r1) <=uint(r9))) //_LBB728_33
{
	heap32[(r2)] = r1;
}
	r_g0 = r0;
	return;
}
else{
	r0 = (r2 + -1)|0;
	if(uint(r0) <uint(1073741823)) //_LBB728_6
{
	r0 = (r2 + 7)|0;
	r0 = r0 & -8;
	r2 = 12;
	r0 = uint(r0) < uint(r2) ? r2 : r0;
}
else{
	r0 = 0;
}
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	block_locate_free(i7);
	r2 = r_g0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r0;
	r0 = s_current_memory;
	block_prepare_used(i7);
	r1 = r_g0;
	r2 = r2 >> 2;
	r0 = r0 >> 2;
	r2 = heap32[(r2+1)];
	r3 = heap32[(r0)];
	r2 = r2 & -4;
	r2 = (r3 + r2)|0;
	r3 = s_max_memory;
	r3 = r3 >> 2;
	heap32[(r0)] = r2;
	r0 = heap32[(r3)];
if(!(uint(r2) <=uint(r0))) //_LBB728_9
{
	heap32[(r3)] = r2;
}
	r_g0 = r1;
	return;
}
}

function tlsf_create(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = (r0 + -3048)|0;
	r1 = r0 & -8;
	r2 = (r1 + -12)|0;
	if(uint(r2) <uint(1073741813)) //_LBB729_2
{
	r2 = heap32[(fp)];
	r3 = block_null;
	r4 = r3 >> 2;
	heap32[(r4+2)] = r3;
	r5 = -1;
	r6 = r2 >> 2;
	heap32[(r4+3)] = r3;
	heap32[(r6)] = 0;
_3: while(true){
	r4 = r5 << 2;
	r7 = r5 << 7;
	r4 = (r2 - r4)|0;
	r7 = (r2 - r7)|0;
	r4 = r4 >> 2;
	r7 = r7 >> 2;
	heap32[(r4)] = 0;
	heap32[(r7+-8)] = r3;
	heap32[(r7+-7)] = r3;
	heap32[(r7+-6)] = r3;
	heap32[(r7+-5)] = r3;
	heap32[(r7+-4)] = r3;
	heap32[(r7+-3)] = r3;
	heap32[(r7+-2)] = r3;
	heap32[(r7+-1)] = r3;
	heap32[(r7)] = r3;
	heap32[(r7+1)] = r3;
	heap32[(r7+2)] = r3;
	heap32[(r7+3)] = r3;
	heap32[(r7+4)] = r3;
	heap32[(r7+5)] = r3;
	heap32[(r7+6)] = r3;
	heap32[(r7+7)] = r3;
	heap32[(r7+8)] = r3;
	heap32[(r7+9)] = r3;
	heap32[(r7+10)] = r3;
	heap32[(r7+11)] = r3;
	heap32[(r7+12)] = r3;
	heap32[(r7+13)] = r3;
	heap32[(r7+14)] = r3;
	heap32[(r7+15)] = r3;
	heap32[(r7+16)] = r3;
	heap32[(r7+17)] = r3;
	heap32[(r7+18)] = r3;
	heap32[(r7+19)] = r3;
	heap32[(r7+20)] = r3;
	heap32[(r7+21)] = r3;
	r5 = (r5 + -1)|0;
	heap32[(r7+22)] = r3;
	heap32[(r7+23)] = r3;
if(!(r5 !=-24)) //_LBB729_3
{
break _3;
}
}
	r4 = r0 | 1;
	r5 = (r2 + 3036)|0;
	r4 = r4 & -7;
	heap32[(r6+760)] = r4;
	if(uint(r1) >uint(255)) //_LBB729_6
{
	r0 = r1 >>> 1;
	r0 = r1 | r0;
	r4 = r0 >>> 2;
	r0 = r0 | r4;
	r4 = r0 >>> 4;
	r0 = r0 | r4;
	r4 = r0 >>> 8;
	r0 = r0 | r4;
	r4 = r0 >>> 16;
	r0 = r0 | r4;
	r4 = r0 ^ -1;
	r7 = 1431655765;
	r4 = r4 >>> 1;
	r0 = r7 & (~r0);
	r4 = r4 & 1431655765;
	r0 = (r0 + r4)|0;
	r4 = r0 >>> 2;
	r0 = r0 & 858993459;
	r4 = r4 & 858993459;
	r0 = (r0 + r4)|0;
	r4 = r0 >>> 4;
	r0 = r0 & 252645135;
	r4 = r4 & 252645135;
	r0 = (r0 + r4)|0;
	r4 = r0 >>> 8;
	r0 = r0 & 16711935;
	r4 = r4 & 16711935;
	r0 = (r0 + r4)|0;
	r4 = r0 & 65535;
	r0 = r0 >>> 16;
	r7 = 26;
	r0 = (r4 + r0)|0;
	r4 = (r7 - r0)|0;
	r1 = r1 >>> r4;
	r4 = 24;
	r1 = r1 ^ 32;
	r0 = (r4 - r0)|0;
}
else{
	r1 = r0 >>> 3;
	r0 = 0;
}
	r4 = r0 << 7;
	r4 = (r2 + r4)|0;
	r7 = r1 << 2;
	r4 = (r4 + r7)|0;
	r4 = r4 >> 2;
	r7 = heap32[(r4+24)];
	heap32[(r6+761)] = r7;
	r7 = r7 >> 2;
	heap32[(r6+762)] = r3;
	heap32[(r7+3)] = r5;
	r3 = 1;
	heap32[(r4+24)] = r5;
	r4 = r0 << 2;
	r0 = r3 << r0;
	r7 = heap32[(r6)];
	r4 = (r2 + r4)|0;
	r0 = r7 | r0;
	r4 = r4 >> 2;
	heap32[(r6)] = r0;
	r0 = r3 << r1;
	r1 = heap32[(r4+1)];
	r0 = r1 | r0;
	heap32[(r4+1)] = r0;
	r0 = heap32[(r6+760)];
	r0 = (r0 + 3040)|0;
	r0 = r0 & -4;
	r0 = (r2 + r0)|0;
	r0 = r0 >> 2;
	heap32[(r0)] = r5;
	heap32[(r0+1)] = 2;
	r_g0 = r2;
	return;
}
else{
	r0 = _2E_str643;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 3060;
	heap32[(g0+2)] = 1073744872;
	printf(i7);
	r0 = 0;
	r_g0 = r0;
	return;
}
}

function _stricmp(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r5 = 26;
_1: while(true){
	r2 = heap8[r1];
	r3 = heap8[r0];
	r4 = (r2 + -65)|0;
	r2 = (r2 + -33)|0;
	r6 = (r3 + -65)|0;
	r3 = (r3 + -33)|0;
	r2 = uint(r4) < uint(r5) ? r2 : r4;
	r3 = uint(r6) < uint(r5) ? r3 : r6;
	if(r2 !=r3) //_LBB730_3
{
break _1;
}
else{
	r0 = (r0 + 1)|0;
	r1 = (r1 + 1)|0;
	if(r3 !=-65) //_LBB730_1
{
continue _1;
}
else{
break _1;
}
}
}
	r0 = (r3 - r2)|0;
	r_g0 = r0;
	return;
}

function strcasecmp(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r5 = 26;
_1: while(true){
	r2 = heap8[r1];
	r3 = heap8[r0];
	r4 = (r2 + -65)|0;
	r2 = (r2 + -33)|0;
	r6 = (r3 + -65)|0;
	r3 = (r3 + -33)|0;
	r2 = uint(r4) < uint(r5) ? r2 : r4;
	r3 = uint(r6) < uint(r5) ? r3 : r6;
	if(r2 !=r3) //_LBB731_3
{
break _1;
}
else{
	r1 = (r1 + 1)|0;
	r0 = (r0 + 1)|0;
	if(r3 !=-65) //_LBB731_1
{
continue _1;
}
else{
break _1;
}
}
}
	r0 = (r3 - r2)|0;
	r_g0 = r0;
	return;
}

function strcpy(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r1 ^ r0;
	r2 = r2 & 3;
_1: do {
	if(r2 ==0) //_LBB732_2
{
	r2 = r0 & 3;
	if(r2 !=0) //_LBB732_4
{
	r2 = r0 | -4;
_5: while(true){
	if(r2 !=0) //_LBB732_7
{
	r3 = heapU8[r1];
	r4 = (r0 + 1)|0;
	r1 = (r1 + 1)|0;
	r2 = (r2 + 1)|0;
	heap8[r0] = r3;
	r0 = r4;
if(!(r3 !=0)) //_LBB732_5
{
break _1;
}
}
else{
break _5;
}
}
}
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r3 = r2 & -2139062144;
	r3 = r3 ^ -2139062144;
	r4 = (r2 + -16843009)|0;
	r3 = r3 & r4;
_9: do {
	if(r3 ==0) //_LBB732_11
{
	r1 = (r1 + 4)|0;
_11: while(true){
	r3 = r0 >> 2;
	r4 = r1 >> 2;
	heap32[(r3)] = r2;
	r2 = heap32[(r4)];
	r3 = r2 & -2139062144;
	r0 = (r0 + 4)|0;
	r1 = (r1 + 4)|0;
	r3 = r3 ^ -2139062144;
	r4 = (r2 + -16843009)|0;
	r3 = r3 & r4;
if(!(r3 ==0)) //_LBB732_15
{
break _9;
}
}
}
} while(0);
	r1 = r2 & 255;
	heap8[r0] = r2;
if(!(r1 ==0)) //_LBB732_8
{
	r0 = (r0 + 1)|0;
_15: while(true){
	r2 = r2 >>> 8;
	r1 = (r0 + 1)|0;
	heap8[r0] = r2;
	r3 = r2 & 255;
	r0 = r1;
	if(r3 ==0) //_LBB732_8
{
break _1;
}
else{
continue _15;
}
}
}
}
else{
_17: while(true){
	r2 = heapU8[r1];
	r3 = (r0 + 1)|0;
	r1 = (r1 + 1)|0;
	heap8[r0] = r2;
	r0 = r3;
	if(r2 ==0) //_LBB732_8
{
break _1;
}
else{
continue _17;
}
}
}
} while(0);
	return;
}

function strcmp(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r1 ^ r0;
	r2 = r2 & 3;
_1: do {
	if(r2 ==0) //_LBB733_7
{
	r2 = r0 & 3;
_3: do {
	if(r2 !=0) //_LBB733_9
{
	r2 = r0 | -4;
_5: while(true){
	if(r2 !=0) //_LBB733_10
{
	r3 = heapU8[r0];
	r4 = heapU8[r1];
	if(r3 ==0) //_LBB733_12
{
break _5;
}
else{
	r5 = r4 & 255;
	if(r3 ==r5) //_LBB733_13
{
	r0 = (r0 + 1)|0;
	r1 = (r1 + 1)|0;
	r2 = (r2 + 1)|0;
}
else{
break _5;
}
}
}
else{
break _3;
}
}
	r0 = r3 << 24;
	r1 = r4 << 24;
break _1;
}
} while(0);
_11: while(true){
	r2 = r0 >> 2;
	r2 = heap32[(r2)];
	r3 = r1 >> 2;
	r4 = r2 & -2139062144;
	r3 = heap32[(r3)];
	r4 = r4 ^ -2139062144;
	r5 = (r2 + -16843009)|0;
	r4 = r4 & r5;
	if(r4 !=0) //_LBB733_18
{
break _11;
}
else{
	r4 = r3 & -2139062144;
	r4 = r4 ^ -2139062144;
	r5 = (r3 + -16843009)|0;
	r4 = r4 & r5;
	if(r4 !=0) //_LBB733_18
{
break _11;
}
else{
	r0 = (r0 + 4)|0;
	r1 = (r1 + 4)|0;
if(!(r2 ==r3)) //_LBB733_15
{
break _11;
}
}
}
}
	r0 = r2 & 255;
_16: do {
if(!(r0 ==0)) //_LBB733_21
{
	r0 = r2 & 255;
	r1 = r3 & 255;
if(!(r0 !=r1)) //_LBB733_21
{
__label__ = 19; //SET chanka
_18: while(true){
	r2 = r2 >>> 8;
	r3 = r3 >>> 8;
	r0 = r2 & 255;
	if(r0 ==0) //_LBB733_24
{
break _16;
}
else{
	r1 = r3 & 255;
if(!(r0 ==r1)) //_LBB733_22
{
break _16;
}
}
}
}
}
} while(0);
	r2 = r2 & 255;
	r3 = r3 & 255;
	r2 = (r2 - r3)|0;
	r_g0 = r2;
	return;
}
else{
_22: while(true){
	r2 = heapU8[r0];
	r3 = heapU8[r1];
	if(r2 ==0) //_LBB733_5
{
break _22;
}
else{
	r4 = r3 & 255;
	if(r2 ==r4) //_LBB733_2
{
	r0 = (r0 + 1)|0;
	r1 = (r1 + 1)|0;
}
else{
break _22;
}
}
}
	r0 = r2 << 24;
	r1 = r3 << 24;
}
} while(0);
	r0 = r0 >> 24;
	r1 = r1 >> 24;
	r0 = (r0 - r1)|0;
	r_g0 = r0;
	return;
}

function memmove(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
_1: do {
if(!(r0 ==r1)) //_LBB734_8
{
	r2 = heap32[(fp+2)];
	if(uint(r0) <=uint(r1)) //_LBB734_5
{
if(!(r2 ==0)) //_LBB734_8
{
	r3 = 0;
	r2 = (r3 - r2)|0;
_6: while(true){
	r3 = (r0 - r2)|0;
	r4 = (r2 + 1)|0;
	r2 = (r1 - r2)|0;
	r3 = heapU8[r3+-1];
	heap8[r2+-1] = r3;
	r2 = r4;
	if(r4 !=0) //_LBB734_7
{
continue _6;
}
else{
break _1;
}
}
}
}
else{
if(!(r2 ==0)) //_LBB734_8
{
	r3 = r1;
_10: while(true){
	r4 = heapU8[r0];
	r2 = (r2 + -1)|0;
	r5 = (r3 + 1)|0;
	r0 = (r0 + 1)|0;
	heap8[r3] = r4;
	r3 = r5;
	if(r2 ==0) //_LBB734_8
{
break _1;
}
else{
continue _10;
}
}
}
}
}
} while(0);
	r_g0 = r1;
	return;
}

function strncasecmp(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = 0;
	r7 = 26;
_1: while(true){
	if(r3 >=r2) //_LBB735_5
{
__label__ = 5;
break _1;
}
else{
	r4 = heap8[r1+r3];
	r5 = heap8[r0+r3];
	r6 = (r4 + -65)|0;
	r4 = (r4 + -33)|0;
	r8 = (r5 + -65)|0;
	r5 = (r5 + -33)|0;
	r4 = uint(r6) < uint(r7) ? r4 : r6;
	r5 = uint(r8) < uint(r7) ? r5 : r8;
	if(r4 !=r5) //_LBB735_4
{
__label__ = 4;
break _1;
}
else{
	r3 = (r3 + 1)|0;
	if(r5 !=-65) //_LBB735_1
{
continue _1;
}
else{
__label__ = 4;
break _1;
}
}
}
}
switch(__label__ ){//multiple entries
case 5:
	r0 = 0;
	r_g0 = r0;
	return;
break;
case 4:
	r0 = (r5 - r4)|0;
	r_g0 = r0;
	return;
break;
}
}

function strncmp(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
	if(uint(r0) >uint(3)) //_LBB736_2
{
	r5 = r0 >>> 2;
	r1 = (r1 + 2)|0;
_3: while(true){
	r3 = heapU8[r1+-2];
	r4 = heapU8[r2];
	if(r3 ==0) //_LBB736_5
{
__label__ = 5;
break _3;
}
else{
	r6 = r4 & 255;
	if(r3 ==r6) //_LBB736_6
{
	r3 = heapU8[r1+-1];
	r4 = heapU8[r2+1];
	if(r3 ==0) //_LBB736_8
{
__label__ = 5;
break _3;
}
else{
	r6 = r4 & 255;
	if(r3 ==r6) //_LBB736_9
{
	r3 = heapU8[r1];
	r4 = heapU8[r2+2];
	if(r3 ==0) //_LBB736_11
{
__label__ = 5;
break _3;
}
else{
	r6 = r4 & 255;
	if(r3 ==r6) //_LBB736_12
{
	r3 = heapU8[r1+1];
	r4 = heapU8[r2+3];
	if(r3 ==0) //_LBB736_14
{
__label__ = 5;
break _3;
}
else{
	r6 = r4 & 255;
	if(r3 ==r6) //_LBB736_15
{
	r5 = (r5 + -1)|0;
	r1 = (r1 + 4)|0;
	r2 = (r2 + 4)|0;
	if(r5 !=0) //_LBB736_3
{
__label__ = 3;
}
else{
__label__ = 13;
break _3;
}
}
else{
__label__ = 5;
break _3;
}
}
}
else{
__label__ = 5;
break _3;
}
}
}
else{
__label__ = 5;
break _3;
}
}
}
else{
__label__ = 5;
break _3;
}
}
}
switch(__label__ ){//multiple entries
case 5:
	r1 = r4 & 255;
	r1 = (r3 - r1)|0;
	r_g0 = r1;
	return;
break;
case 13:
	r0 = r0 & 3;
	r1 = (r1 + -2)|0;
break;
}
}
else{
	r3 = 0;
	r4 = r3;
}
_17: while(true){
	if(r0 !=0) //_LBB736_17
{
	r3 = heapU8[r1];
	r4 = heapU8[r2];
	if(r3 ==0) //_LBB736_19
{
__label__ = 16;
break _17;
}
else{
	r5 = r4 & 255;
	if(r3 ==r5) //_LBB736_20
{
	r0 = (r0 + -1)|0;
	r1 = (r1 + 1)|0;
	r2 = (r2 + 1)|0;
continue _17;
}
else{
__label__ = 16;
break _17;
}
}
}
else{
__label__ = 19;
break _17;
}
}
switch(__label__ ){//multiple entries
case 16:
	r0 = r4 & 255;
	r0 = (r3 - r0)|0;
	r_g0 = r0;
	return;
break;
case 19:
	r0 = r3 & 255;
	r1 = r4 & 255;
	r0 = (r0 - r1)|0;
	r_g0 = r0;
	return;
break;
}
}

function quicksort(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var r24;
	var r25;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	heap32[(fp+-4)] = r0;
	r1 = heap32[(fp+1)];
	heap32[(fp+-3)] = r1;
if(!(r0 <=r1)) //_LBB737_37
{
	r0 = heap32[(fp)];
	r1 = heap32[(fp+3)];
	r2 = 4;
	r3 = heap32[(fp+-4)];
	r4 = r3 << 2;
	r5 = (r0 + r4)|0;
	r6 = -4;
	r7 = -8;
	r2 = (r2 - r0)|0;
	r3 = (r3 + -1)|0;
	r8 = (r0 + 4)|0;
	r6 = (r6 - r0)|0;
	heap32[(fp+-1)] = r6;
	r6 = (r5 + -4)|0;
	heap32[(fp+-2)] = r6;
	r6 = (r7 - r0)|0;
	r2 = (r2 - r4)|0;
	heap32[(fp+-6)] = r2;
_3: while(true){
	r2 = heap32[(fp+-3)];
	r4 = (r2 + -1)|0;
	r7 = (r2 + 1)|0;
	r9 = -1;
	r10 = -2;
	heap32[(fp+-5)] = r2;
	r2 = heap32[(fp+-4)];
	r11 = r4;
_5: while(true){
	r12 = r4 << 2;
	r13 = (r0 + r12)|0;
	r14 = (r12 + 4)|0;
	r15 = heap32[(fp+-1)];
	r15 = (r15 - r12)|0;
	r16 = (r8 + r12)|0;
	r12 = (r6 - r12)|0;
_7: while(true){
	r17 = r12;
	r18 = r16;
	r19 = r15;
	r20 = r14;
	r21 = r4;
	r22 = r13;
	if(r3 ==r21) //_LBB737_6
{
break _7;
}
else{
	r4 = (r0 + r20)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	r13 = (r22 + 4)|0;
	r4 = (r21 + 1)|0;
	r14 = (r20 + 4)|0;
	r15 = (r19 + -4)|0;
	r16 = (r18 + 4)|0;
	r12 = (r17 + -4)|0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r23 = r_g0;
if(!(r23 <0)) //_LBB737_4
{
break _7;
}
}
}
	r4 = r2 << 2;
	r12 = (r0 + r4)|0;
	r13 = 0;
	r14 = (r13 - r12)|0;
	r4 = (r21 + 1)|0;
	r15 = (r12 + -4)|0;
	r16 = r14;
_11: while(true){
	r23 = r14;
	r24 = r16;
	r25 = r2;
	r2 = (r15 + r13)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r2;
	r13 = (r13 + -4)|0;
	r2 = (r25 + -1)|0;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r14 = r_g0;
	if(r14 >-1) //_LBB737_9
{
break _11;
}
else{
	r16 = (r24 + 4)|0;
	r14 = (r23 + 4)|0;
if(!(r7 !=r25)) //_LBB737_7
{
break _11;
}
}
}
	if(r4 >=r2) //_LBB737_20
{
break _5;
}
else{
	r17 = 0;
_16: while(true){
	r22 = (r17 - r19)|0;
	r14 = (r17 - r24)|0;
	r15 = heapU8[r22];
	r14 = heapU8[r14+-4];
	r16 = (r17 + 1)|0;
	r17 = (r17 - r23)|0;
	heap8[r22] = r14;
	heap8[r17+-4] = r15;
	r17 = r16;
if(!(r16 !=4)) //_LBB737_11
{
break _16;
}
}
	r17 = (r0 + r20)|0;
	heap32[(g0)] = r17;
	heap32[(g0+1)] = r5;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r17 = r_g0;
_19: do {
	if(r17 ==0) //_LBB737_14
{
	r17 = r11 << 2;
	r11 = (r11 + 1)|0;
	r17 = (r8 + r17)|0;
	r22 = 0;
_21: while(true){
	r14 = (r18 - r22)|0;
	r15 = (r17 - r22)|0;
	r16 = heapU8[r15];
	r19 = heapU8[r14];
	r22 = (r22 + -1)|0;
	heap8[r15] = r19;
	heap8[r14] = r16;
if(!(r22 !=-4)) //_LBB737_15
{
break _19;
}
}
}
} while(0);
	r17 = (r12 + r13)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r17;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r17 = r_g0;
if(!(r17 !=0)) //_LBB737_3
{
	r4 = (r21 + 1)|0;
	r17 = 0;
_25: while(true){
	r18 = heap32[(fp+-2)];
	r18 = (r17 + r18)|0;
	r21 = r10 << 2;
	r18 = (r18 - r21)|0;
	r21 = (r17 + r12)|0;
	r21 = heapU8[r21+r13];
	r22 = heapU8[r18+-8];
	r14 = (r17 + r12)|0;
	r17 = (r17 + 1)|0;
	heap8[r14+r13] = r22;
	heap8[r18+-8] = r21;
	if(r17 ==4) //_LBB737_18
{
break _25;
}
}
	r10 = (r10 + 1)|0;
	r9 = (r9 + 1)|0;
}
}
}
	r2 = heap32[(fp+-4)];
	r2 = (r2 - r10)|0;
	r4 = 0;
	r2 = (r2 + -2)|0;
	r7 = (r4 - r22)|0;
_29: while(true){
	r12 = (r5 - r4)|0;
	r13 = (r18 - r4)|0;
	r14 = heapU8[r13];
	r15 = heapU8[r12];
	r4 = (r4 + -1)|0;
	heap8[r13] = r15;
	heap8[r12] = r14;
if(!(r4 !=-4)) //_LBB737_21
{
break _29;
}
}
	r4 = (r21 + 2)|0;
	r12 = heap32[(fp+-3)];
	if(r12 <r11) //_LBB737_24
{
	r13 = r12 << 2;
	r14 = 0;
	r13 = (r0 + r13)|0;
	r13 = (r14 - r13)|0;
	r12 = (r11 - r12)|0;
_34: while(true){
	r15 = r14;
_36: while(true){
	r16 = (r15 - r7)|0;
	r18 = (r15 - r13)|0;
	r19 = heapU8[r18];
	r20 = heapU8[r16];
	r15 = (r15 + 1)|0;
	heap8[r18] = r20;
	heap8[r16] = r19;
if(!(r15 !=4)) //_LBB737_26
{
break _36;
}
}
	r12 = (r12 + -1)|0;
	r13 = (r13 + -4)|0;
	r7 = (r7 + 4)|0;
if(!(r12 !=0)) //_LBB737_25
{
break _34;
}
}
	r7 = heap32[(fp+-3)];
	r7 = (r7 - r11)|0;
	r7 = (r7 + r21)|0;
}
else{
	r7 = r21;
}
	if(r3 >r2) //_LBB737_35
{
	r2 = heap32[(fp+-6)];
_44: while(true){
	r4 = 0;
_46: while(true){
	r11 = (r4 - r2)|0;
	r12 = (r4 - r17)|0;
	r13 = heapU8[r12];
	r14 = heapU8[r11];
	r4 = (r4 + 1)|0;
	heap8[r12] = r14;
	heap8[r11] = r13;
if(!(r4 !=4)) //_LBB737_30
{
break _46;
}
}
	r9 = (r9 + -1)|0;
	r17 = (r17 + -4)|0;
	r2 = (r2 + 4)|0;
if(!(r9 !=0)) //_LBB737_29
{
break _44;
}
}
	r2 = (r10 + r21)|0;
	r2 = (r2 + 3)|0;
	heap32[(fp+-3)] = r2;
}
else{
	heap32[(fp+-3)] = r4;
}
	heap32[(g0)] = r0;
	r2 = heap32[(fp+-5)];
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r7;
	heap32[(g0+3)] = r1;
	quicksort(i7);
	r4 = heap32[(fp+-3)];
	r2 = heap32[(fp+-4)];
	if(r4 <r2) //_LBB737_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function __dtostr(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	f0 = llvm_readDouble((sp));
	r0 = sp + -8;
	llvm_writeDouble((sp+-8),f0);
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	r3 = heap32[(fp+4)];
	r4 = heap32[(fp+5)];
	r5 = heap32[(fp+6)];
	r6 = heap32[(fp+-2)];
	if(r0 >2146435071) //_LBB738_3
{
	r7 = r0 ^ 2146959360;
	r7 = r6 | r7;
	if(r7 ==0) //_LBB738_13
{
__label__ = 13;
}
else{
	r7 = r0 ^ 2146435072;
	r6 = r6 | r7;
	if(r6 !=0) //_LBB738_21
{
__label__ = 20;
}
else{
__label__ = 5;
}
}
}
else{
	r7 = r0 ^ -1048576;
	r7 = r6 | r7;
	if(r7 ==0) //_LBB738_5
{
__label__ = 5;
}
else{
	r7 = r0 ^ -524288;
	r6 = r6 | r7;
	if(r6 ==0) //_LBB738_13
{
__label__ = 13;
}
else{
__label__ = 20;
}
}
}
_6: do {
switch(__label__ ){//multiple entries
case 13:
	if(r2 >0) //_LBB738_15
{
	r0 = (r2 + -1)|0;
	r3 = 2;
	r4 = 0;
	r5 = (r2 + 2)|0;
	r0 = uint(r0) > uint(r3) ? r0 : r3;
	r3 = (r4 - r2)|0;
	r0 = (r5 - r0)|0;
	r4 = _2E_str9655;
	r5 = r1;
_10: while(true){
	r6 = heapU8[r4];
	r0 = (r0 + -1)|0;
	r7 = (r5 + 1)|0;
	r4 = (r4 + 1)|0;
	heap8[r5] = r6;
	r5 = r7;
if(!(r0 !=0)) //_LBB738_16
{
break _10;
}
}
	r0 = -3;
	r4 = 3;
	r0 = uint(r3) > uint(r0) ? r2 : r4;
}
else{
	r0 = 0;
}
	if(r0 >=r2) //_LBB738_20
{
	r_g0 = r0;
	return;
}
else{
__label__ = 11;
break _6;
}
break;
case 20:
	f1 =                         0;
	if(f0 !=f1) //_LBB738_32
{
	r0 = r0 >>> 20;
	r0 = r0 & 2047;
	r0 = (r0 + -1023)|0;
	f2 = r0; //fitod r0, f2
	f3 =        0.3010299956639812;
	f2 = f2*f3;
	r0 = f2|0;
	r6 = (r0 + 1)|0;
	if(f0 <f1) //_LBB738_34
{
	f1 = -f0;
	r2 = (r2 + -1)|0;
	r7 = (r1 + 1)|0;
	r8 = 45;
	heap8[r1] = r8;
}
else{
	r7 = r1;
	f1 = f0;
}
_23: do {
	if(r4 ==0) //_LBB738_37
{
	f2 =                       0.5;
}
else{
	f2 =                       0.5;
	r8 = r4;
	f3 =       0.10000000000000001;
_26: while(true){
	r8 = (r8 + -1)|0;
	f2 = f2*f3;
if(!(r8 !=0)) //_LBB738_38
{
break _23;
}
}
}
} while(0);
	f1 = f1+f2;
	f2 =                         1;
	if(f1 <f2) //_LBB738_41
{
	r2 = (r2 + -1)|0;
	r8 = (r7 + 1)|0;
	r9 = 48;
	heap8[r7] = r9;
	r7 = r8;
}
_32: do {
	if(r6 >0) //_LBB738_44
{
_34: do {
	if(uint(r6) >uint(10)) //_LBB738_46
{
	r0 = (r0 + 1)|0;
	f2 =                        10;
	f3 =               10000000000;
_36: while(true){
	r0 = (r0 + -10)|0;
	f2 = f2*f3;
if(!(uint(r0) >uint(10))) //_LBB738_47
{
break _34;
}
}
}
else{
	f2 =                        10;
	r0 = r6;
}
} while(0);
	if(uint(r0) >uint(1)) //_LBB738_50
{
	r0 = (r0 + -1)|0;
	f3 =                        10;
_42: while(true){
	r0 = (r0 + -1)|0;
	f2 = f2*f3;
if(!(r0 !=0)) //_LBB738_51
{
break _42;
}
}
	r0 = 1;
}
else{
	r0 = 1;
}
_46: while(true){
	f3 =       0.90000000000000002;
	if(f2 >f3) //_LBB738_53
{
	f3 = f1/f2;
	r8 = f3|0;
	if(r0 ==0) //_LBB738_56
{
__label__ = 52;
}
else{
	r9 = r8 & 255;
	if(r9 !=0) //_LBB738_56
{
__label__ = 52;
}
else{
__label__ = 64;
}
}
if (__label__ == 52){
	r0 = (r8 + 48)|0;
	heap8[r7] = r0;
	if(r2 !=0) //_LBB738_70
{
	r0 = r8 << 24;
	r0 = r0 >> 24;
	f3 = r0; //fitod r0, f3
	f3 = f3*f2;
	r7 = (r7 + 1)|0;
	f1 = f1-f3;
	r2 = (r2 + -1)|0;
	r0 = 0;
}
else{
break _46;
}
}
	f3 =                        10;
	f2 = f2/f3;
}
else{
__label__ = 66;
break _32;
}
}
	f0 = f0/f2;
	llvm_writeDouble((i7),f0);
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r2;
	heap32[(g0+4)] = r3;
	heap32[(g0+5)] = r4;
	heap32[(g0+6)] = 0;
	__dtostr(i7);
	r0 = r_g0;
	if(r0 ==0) //_LBB738_92
{
__label__ = 83;
}
else{
	r3 = (r0 + r7)|0;
	r7 = (r3 + 1)|0;
	if(r2 !=r0) //_LBB738_60
{
	r3 = (r3 + 2)|0;
	r4 = 101;
	heap8[r7] = r4;
	r7 = r3;
}
	r2 = (r2 + -1)|0;
	r3 = (r2 - r0)|0;
_60: do {
	if(r6 <1000) //_LBB738_66
{
	if(r6 <100) //_LBB738_93
{
	if(r6 >9) //_LBB738_95
{
__label__ = 90;
break _60;
}
else{
__label__ = 91;
break _60;
}
}
else{
__label__ = 87;
break _60;
}
}
else{
	if(r2 !=r0) //_LBB738_64
{
	r0 = (r6 / 1000)|0;
	r2 = (r7 + 1)|0;
	r0 = (r0 + 48)|0;
	heap8[r7] = r0;
	r7 = r2;
}
	r3 = (r3 + -1)|0;
	r6 = (r6 % 1000)|0;
__label__ = 87;
}
} while(0);
if (__label__ == 87){
	if(r3 !=0) //_LBB738_97
{
	r0 = (r6 / 100)|0;
	r2 = (r7 + 1)|0;
	r0 = (r0 + 48)|0;
	heap8[r7] = r0;
	r7 = r2;
}
	r3 = (r3 + -1)|0;
	r6 = (r6 % 100)|0;
__label__ = 90;
}
if (__label__ == 90){
	if(r3 !=0) //_LBB738_101
{
	r0 = (r6 / 10)|0;
	r2 = (r7 + 1)|0;
	r0 = (r0 + 48)|0;
	heap8[r7] = r0;
	r7 = r2;
}
	r3 = (r3 + -1)|0;
	r6 = (r6 % 10)|0;
}
	if(r3 !=0) //_LBB738_68
{
	r0 = (r6 + 48)|0;
	heap8[r7] = r0;
	if(r3 ==1) //_LBB738_92
{
__label__ = 83;
}
else{
	r7 = (r7 + 1)|0;
__label__ = 82;
}
}
else{
__label__ = 82;
}
}
}
else{
	f2 =       0.10000000000000001;
__label__ = 66;
}
} while(0);
_81: do {
if (__label__ == 66){
	if(r7 ==r1) //_LBB738_75
{
	if(r2 ==0) //_LBB738_92
{
__label__ = 83;
break _81;
}
else{
	r2 = (r2 + -1)|0;
	r6 = (r7 + 1)|0;
	r0 = 48;
	heap8[r7] = r0;
	r7 = r6;
}
}
if(!(r4 !=0)) //_LBB738_80
{
	r6 = 1;
	r6 = (r6 - r1)|0;
	r6 = (r6 + r7)|0;
if(!(uint(r6) <uint(r3))) //_LBB738_80
{
__label__ = 82;
break _81;
}
}
	if(r2 ==0) //_LBB738_92
{
__label__ = 83;
}
else{
	r6 = (r2 + -1)|0;
	r0 = (r7 + 1)|0;
	r2 = 46;
	heap8[r7] = r2;
	if(r5 ==0) //_LBB738_83
{
if(!(r4 !=0)) //_LBB738_85
{
	r3 = (r1 + r3)|0;
	r3 = (r3 + 1)|0;
	r4 = (r3 - r0)|0;
}
}
else{
	r3 = r4 == 0 ? r3 : r4;
	r3 = (r1 + r3)|0;
	r3 = (r3 + 1)|0;
	r4 = (r3 - r0)|0;
}
	if(uint(r4) >uint(r6)) //_LBB738_92
{
__label__ = 83;
}
else{
	if(r4 !=0) //_LBB738_88
{
	r3 = (r4 + 1)|0;
	r6 = (r7 + 1)|0;
	f3 =                        10;
_99: while(true){
	f0 = f1/f2;
	r0 = f0|0;
	r2 = r0 << 24;
	r2 = r2 >> 24;
	f0 = r2; //fitod r2, f0
	f0 = f0*f2;
	r4 = (r4 + -1)|0;
	f2 = f2/f3;
	f1 = f1-f0;
	r2 = (r6 + 1)|0;
	r0 = (r0 + 48)|0;
	heap8[r6] = r0;
	r6 = r2;
if(!(r4 !=0)) //_LBB738_89
{
break _99;
}
}
	r7 = (r7 + r3)|0;
__label__ = 82;
}
else{
	r7 = r0;
__label__ = 82;
}
}
}
}
} while(0);
switch(__label__ ){//multiple entries
case 83:
	r1 = 0;
	r_g0 = r1;
	return;
break;
case 82:
	r3 = 0;
	heap8[r7] = r3;
	r1 = (r7 - r1)|0;
	r_g0 = r1;
	return;
break;
}
}
else{
	r3 = 1;
	r5 = (r4 + 2)|0;
	r4 = r4 == 0 ? r3 : r5;
	r5 = 8;
	r2 = uint(r4) > uint(r2) ? r5 : r4;
	if(r2 ==0) //_LBB738_24
{
__label__ = 23;
}
else{
	if(r0 <0) //_LBB738_25
{
	r0 = 45;
	heap8[r1] = r0;
	r0 = r3;
__label__ = 25;
}
else{
__label__ = 23;
}
}
if (__label__ == 23){
	r0 = 0;
}
	if(uint(r0) <uint(r2)) //_LBB738_28
{
	r5 = 48;
_115: while(true){
	r4 = (r0 + 1)|0;
	heap8[r1+r0] = r5;
	r0 = r4;
if(!(r2 !=r4)) //_LBB738_29
{
break _115;
}
}
	r0 = r2;
}
	r2 = 2;
	r4 = heapU8[r1];
	r2 = r4 == 48 ? r3 : r2;
	r3 = 46;
	r4 = 0;
	heap8[r1+r2] = r3;
	heap8[r1+r0] = r4;
	r_g0 = r0;
	return;
}
break;
case 5:
	if(r2 >0) //_LBB738_7
{
	r0 = (r2 + -1)|0;
	r3 = 2;
	r4 = 0;
	r5 = (r2 + 2)|0;
	r0 = uint(r0) > uint(r3) ? r0 : r3;
	r3 = (r4 - r2)|0;
	r0 = (r5 - r0)|0;
	r4 = _2E_str7654;
	r5 = r1;
_122: while(true){
	r6 = heapU8[r4];
	r0 = (r0 + -1)|0;
	r7 = (r5 + 1)|0;
	r4 = (r4 + 1)|0;
	heap8[r5] = r6;
	r5 = r7;
if(!(r0 !=0)) //_LBB738_8
{
break _122;
}
}
	r0 = -3;
	r4 = 3;
	r0 = uint(r3) > uint(r0) ? r2 : r4;
}
else{
	r0 = 0;
}
	if(r0 >=r2) //_LBB738_12
{
__label__ = 12;
}
else{
__label__ = 11;
}
break;
}
} while(0);
if (__label__ == 11){
	r2 = 0;
	heap8[r1+r0] = r2;
	r0 = (r0 + 1)|0;
}
	r_g0 = r0;
	return;
}

function write_pad(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	if(r0 >0) //_LBB739_2
{
	r1 = heap32[(fp)];
	r1 = r1 >> 2;
	r2 = heap32[(r1)];
	r2 = (r2 + r0)|0;
	if(uint(r2) >=uint(r0)) //_LBB739_4
{
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+3)];
	if(uint(r0) >uint(15)) //_LBB739_6
{
	r4 = 48;
	r4 = r3 == r4;
	r4 = r4 & 1;
	r5 = _ZL8pad_line;
	r4 = r4 << 5;
	r4 = (r5 + r4)|0;
	r5 = 0;
_7: while(true){
	r6 = r2 >> 2;
	r7 = heap32[(r6+1)];
	r6 = heap32[(r6)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 16;
	heap32[(g0+2)] = r6;
	r5 = (r5 + -16)|0;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	r6 = (r0 + r5)|0;
if(!(uint(r6) >uint(15))) //_LBB739_7
{
break _7;
}
}
	r0 = 0;
	r4 = (r0 - r5)|0;
	if(r6 ==0) //_LBB739_10
{
__label__ = 11;
}
else{
	r0 = r6;
__label__ = 10;
}
}
else{
	r4 = 0;
__label__ = 10;
}
if (__label__ == 10){
	r5 = 48;
	r2 = r2 >> 2;
	r3 = r3 == r5;
	r3 = r3 & 1;
	r5 = heap32[(r2+1)];
	r2 = heap32[(r2)];
	r6 = _ZL8pad_line;
	r3 = r3 << 5;
	r3 = (r6 + r3)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	r4 = (r4 + r0)|0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
	r0 = heap32[(r1)];
	r0 = (r0 + r4)|0;
	heap32[(r1)] = r0;
	r0 = 0;
}
else{
	r0 = -1;
}
}
else{
	r0 = 0;
}
	r_g0 = r0;
	return;
}

function sgetc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = heapU8[r1];
	r1 = (r1 + 1)|0;
	heap32[(r0)] = r1;
	if(r2 ==0) //_LBB740_2
{
	r0 = -1;
	r_g0 = r0;
	return;
}
else{
	r_g0 = r2;
	return;
}
}

function sputc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = (r1 + -1)|0;
	heap32[(r0)] = r2;
	r0 = heapU8[r1+-1];
	r1 = heap32[(fp)];
	r2 = -1;
	r0 = r0 == r1 ? r1 : r2;
	r_g0 = r0;
	return;
}

function memset(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp)];
if(!(r0 ==0)) //_LBB742_3
{
	r2 = heap32[(fp+1)];
	r3 = r1;
_3: while(true){
	r0 = (r0 + -1)|0;
	r4 = (r3 + 1)|0;
	heap8[r3] = r2;
	r3 = r4;
	if(r0 !=0) //_LBB742_2
{
continue _3;
}
else{
break _3;
}
}
}
	r_g0 = r1;
	return;
}

function memcpy(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = r1 ^ r0;
	r3 = r3 & 3;
_1: do {
	if(r3 !=0) //_LBB743_2
{
__label__ = 2;
}
else{
	if(uint(r2) >uint(4)) //_LBB743_3
{
	r3 = r0 & 3;
	if(r3 !=0) //_LBB743_5
{
	r3 = (r3 + -5)|0;
	r4 = r2 ^ -1;
	r3 = uint(r3) < uint(r4) ? r4 : r3;
	r4 = (r3 + r2)|0;
	r3 = r3 ^ -1;
	r4 = (r4 + 1)|0;
	r6 = (r1 + r3)|0;
	r5 = (r0 + r3)|0;
	r3 = r0 | -4;
	r7 = r0;
_6: while(true){
	if(r3 ==0) //_LBB743_9
{
break _6;
}
else{
	if(r2 ==0) //_LBB743_20
{
__label__ = 19;
break _1;
}
else{
	r8 = heapU8[r1];
	r2 = (r2 + -1)|0;
	r3 = (r3 + 1)|0;
	r1 = (r1 + 1)|0;
	r9 = (r7 + 1)|0;
	heap8[r7] = r8;
	r7 = r9;
}
}
}
	if(r4 ==-1) //_LBB743_20
{
__label__ = 19;
break _1;
}
else{
	r2 = r4;
	r1 = r6;
}
}
else{
	r5 = r0;
}
	if(uint(r2) >uint(3)) //_LBB743_13
{
	r6 = r5;
	r4 = r1;
_16: while(true){
	r7 = r4 >> 2;
	r2 = (r2 + -4)|0;
	r4 = (r4 + 4)|0;
	r3 = (r6 + 4)|0;
	r6 = r6 >> 2;
	r7 = heap32[(r7)];
	heap32[(r6)] = r7;
	r6 = r3;
	if(uint(r2) >uint(3)) //_LBB743_14
{
continue _16;
}
else{
__label__ = 15;
break _1;
}
}
}
else{
	r4 = r1;
	r3 = r5;
__label__ = 15;
}
}
else{
__label__ = 2;
}
}
} while(0);
if (__label__ == 2){
	r3 = 0;
	r4 = r3;
	r5 = r0;
__label__ = 15;
}
_21: do {
if (__label__ == 15){
if(!(r2 ==0)) //_LBB743_20
{
	if(r3 !=0) //_LBB743_18
{
	r1 = r4;
	r5 = r3;
}
_26: while(true){
	r3 = heapU8[r1];
	r2 = (r2 + -1)|0;
	r4 = (r5 + 1)|0;
	r1 = (r1 + 1)|0;
	heap8[r5] = r3;
	r5 = r4;
	if(r2 !=0) //_LBB743_19
{
continue _26;
}
else{
break _21;
}
}
}
}
} while(0);
	r_g0 = r0;
	return;
}

function swrite(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+1)];
	r2 = heap32[(r0+2)];
	r3 = heap32[(fp+1)];
if(!(r2 ==r1)) //_LBB744_5
{
	r2 = (r2 - r1)|0;
	r4 = heap32[(r0)];
	r2 = uint(r2) < uint(r3) ? r2 : r3;
	if(r4 !=0) //_LBB744_3
{
	r5 = heap32[(fp)];
	r1 = (r4 + r1)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r2;
	memcpy(i7);
	r1 = heap32[(r0+1)];
	r4 = heap32[(r0)];
	r1 = (r1 + r2)|0;
	r5 = 0;
	heap8[r4+r1] = r5;
	r1 = heap32[(r0+1)];
}
	r1 = (r1 + r2)|0;
	heap32[(r0+1)] = r1;
}
	r_g0 = r3;
	return;
}

function __sync_fetch_and_add_4(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+1)];
	r2 = heap32[(r0)];
	r1 = (r2 + r1)|0;
	heap32[(r0)] = r1;
	r_g0 = r2;
	return;
}

function __muldi3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	if(r0 <0) //_LBB746_2
{
	r5 = 0;
	r4 = 1;
	r0 = (r5 - r0)|0;
	r6 = r1 != 0 ? r4 : r5;
	r1 = (r5 - r1)|0;
	r0 = (r0 - r6)|0;
}
else{
	r4 = 0;
}
	if(r3 <0) //_LBB746_5
{
	r5 = 0;
	r6 = 1;
	r3 = (r5 - r3)|0;
	r6 = r2 != 0 ? r6 : r5;
	r4 = r4 ^ 1;
	r2 = (r5 - r2)|0;
	r3 = (r3 - r6)|0;
}
	r5 = r2 & 65535;
	r6 = r1 & 65535;
	r7 = r3 | r0;
	r8 = (r5 * r6)|0;
	r9 = r2 | r1;
	r9 = r9 >>> 16;
	if(r9 !=0) //_LBB746_8
{
	r9 = r1 >>> 16;
	r10 = r2 >>> 16;
	r11 = (r10 - r5)|0;
	r12 = (r5 - r10)|0;
	r13 = (r6 - r9)|0;
	r14 = (r9 - r6)|0;
	r15 = (r10 * r9)|0;
	r11 = uint(r5) < uint(r10) ? r11 : r12;
	r12 = uint(r9) < uint(r6) ? r13 : r14;
	r11 = (r11 * r12)|0;
	r12 = r15 >>> 16;
	r12 = (r12 + r15)|0;
	r13 = r15 << 16;
	r14 = r11 << 16;
	r6 = uint(r9) < uint(r6);
	r5 = uint(r5) < uint(r10);
	r5 = r6 ^ r5;
	r5 = r5 & 1;
	if(r5 ==0) //_LBB746_10
{
	r5 = (r14 + r13)|0;
	r6 = uint(r5) < uint(r13);
	r11 = r11 >>> 16;
	r11 = (r11 + r12)|0;
	r6 = r6 & 1;
	r11 = (r11 + r6)|0;
}
else{
	r5 = (r13 - r14)|0;
	r11 = r11 >>> 16;
	r14 = -1;
	r6 = 0;
	r11 = (r12 - r11)|0;
	r12 = uint(r5) > uint(r13) ? r14 : r6;
	r11 = (r11 + r12)|0;
}
	r6 = r8 << 16;
	r6 = (r5 + r6)|0;
	r9 = (r6 + r8)|0;
	r5 = uint(r6) < uint(r5);
	r6 = r8 >>> 16;
	r8 = uint(r9) < uint(r8);
	r6 = (r11 + r6)|0;
	r5 = r5 & 1;
	r5 = (r6 + r5)|0;
	r8 = r8 & 1;
	r5 = (r5 + r8)|0;
	r8 = r9;
}
else{
	r5 = 0;
}
	if(r7 !=0) //_LBB746_14
{
	r6 = (r3 - r2)|0;
	r7 = (r2 - r3)|0;
	r9 = (r1 - r0)|0;
	r10 = (r0 - r1)|0;
	r6 = uint(r2) < uint(r3) ? r6 : r7;
	r7 = uint(r0) < uint(r1) ? r9 : r10;
	r1 = uint(r0) < uint(r1);
	r2 = uint(r2) < uint(r3);
	r9 = 0;
	r6 = (r6 * r7)|0;
	r1 = r1 ^ r2;
	r2 = (r9 - r6)|0;
	r1 = r1 != 0 ? r2 : r6;
	r0 = (r3 * r0)|0;
	r0 = (r1 + r0)|0;
	r0 = (r0 + r8)|0;
	r5 = (r0 + r5)|0;
}
	r0 = 0;
	r1 = 1;
	r2 = (r0 - r5)|0;
	r1 = r8 != 0 ? r1 : r0;
	r0 = (r0 - r8)|0;
	r1 = (r2 - r1)|0;
	r0 = r4 == 0 ? r8 : r0;
	r1 = r4 == 0 ? r5 : r1;
	r_g0 = r0;
	r_g1 = r1;
	return;
}

function __fixdfdi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = sp + 0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = r0 >>> 20;
	r1 = r1 & 2047;
	r2 = (r1 + -1023)|0;
	if(r2 <0) //_LBB747_5
{
	r0 = 0;
	r_g0 = r0;
	r_g1 = r0;
	return;
}
else{
	r3 = heap32[(fp)];
	r4 = r0 & 1048575;
	r0 = r0 >> 31;
	r4 = r4 | 1048576;
	if(r2 <53) //_LBB747_3
{
	r2 = 1075;
	r1 = (r2 - r1)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	__lshrdi3(i7);
	r1 = r_g0;
	r3 = r_g1;
}
else{
	r1 = (r1 + -1075)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	__ashldi3(i7);
	r1 = r_g0;
	r3 = r_g1;
}
	r2 = r3 ^ r0;
	r1 = r1 ^ r0;
	r3 = 1;
	r4 = 0;
	r2 = (r2 - r0)|0;
	r3 = uint(r1) < uint(r0) ? r3 : r4;
	r0 = (r1 - r0)|0;
	r1 = (r2 - r3)|0;
	r_g0 = r0;
	r_g1 = r1;
	return;
}
}

function __floatdidf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var f0;
	var f1;
	var f2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	f0 = r0; //fitod r0, f0
	f1 =                4294967296;
	f2 = uint(r1); //fuitod r1, f2
	f0 = f0*f1;
	f0 = f2+f0;
	f_g0 = f0;
	return;
}

function __lshrdi3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+1)];
	r2 = r0 & 32;
	if(r2 ==0) //_LBB749_2
{
	r2 = heap32[(fp)];
if(!(r0 ==0)) //_LBB749_4
{
	r3 = 32;
	r3 = (r3 - r0)|0;
	r3 = r1 << r3;
	r2 = r2 >>> r0;
	r2 = r3 | r2;
	r1 = r1 >>> r0;
}
	r_g0 = r2;
	r_g1 = r1;
	return;
}
else{
	r0 = (r0 + -32)|0;
	r0 = r1 >>> r0;
	r1 = 0;
	r_g0 = r0;
	r_g1 = r1;
	return;
}
}

function __fixsfdi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >>> 23;
	r1 = r1 & 255;
	r2 = (r1 + -127)|0;
	if(r2 <0) //_LBB750_5
{
	r0 = 0;
	r_g0 = r0;
	r_g1 = r0;
	return;
}
else{
	r3 = r0 & 8388607;
	r0 = r0 >> 31;
	r3 = r3 | 8388608;
	r4 = 0;
	if(r2 <24) //_LBB750_3
{
	r2 = 150;
	r1 = (r2 - r1)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	__lshrdi3(i7);
	r1 = r_g0;
	r3 = r_g1;
}
else{
	r1 = (r1 + -150)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	__ashldi3(i7);
	r1 = r_g0;
	r3 = r_g1;
}
	r2 = r3 ^ r0;
	r1 = r1 ^ r0;
	r3 = 1;
	r2 = (r2 - r0)|0;
	r3 = uint(r1) < uint(r0) ? r3 : r4;
	r0 = (r1 - r0)|0;
	r1 = (r2 - r3)|0;
	r_g0 = r0;
	r_g1 = r1;
	return;
}
}

function __ashldi3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp)];
	r2 = r0 & 32;
	if(r2 ==0) //_LBB751_2
{
	r2 = heap32[(fp+1)];
if(!(r0 ==0)) //_LBB751_4
{
	r3 = 32;
	r3 = (r3 - r0)|0;
	r2 = r2 << r0;
	r3 = r1 >>> r3;
	r1 = r1 << r0;
	r2 = r2 | r3;
}
	r_g0 = r1;
	r_g1 = r2;
	return;
}
else{
	r0 = (r0 + -32)|0;
	r2 = 0;
	r0 = r1 << r0;
	r_g0 = r2;
	r_g1 = r0;
	return;
}
}

function __ashrdi3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+1)];
	r2 = r0 & 32;
	if(r2 ==0) //_LBB752_2
{
	r2 = heap32[(fp)];
if(!(r0 ==0)) //_LBB752_4
{
	r3 = 32;
	r3 = (r3 - r0)|0;
	r3 = r1 << r3;
	r2 = r2 >>> r0;
	r2 = r3 | r2;
	r1 = r1 >> r0;
}
	r_g0 = r2;
	r_g1 = r1;
	return;
}
else{
	r0 = (r0 + -32)|0;
	r0 = r1 >> r0;
	r1 = r1 >> 31;
	r_g0 = r0;
	r_g1 = r1;
	return;
}
}

function __fixunsdfdi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = sp + 0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = r0 >>> 20;
	r1 = r1 & 2047;
	r2 = (r1 + -1023)|0;
if(!(r2 <0)) //_LBB753_5
{
if(!(r0 <0)) //_LBB753_5
{
	r3 = heap32[(fp)];
	r0 = r0 & 1048575;
	r0 = r0 | 1048576;
	if(r2 <53) //_LBB753_4
{
	r2 = 1075;
	r1 = (r2 - r1)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	__lshrdi3(i7);
	return;
}
else{
	r1 = (r1 + -1075)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r1;
	__ashldi3(i7);
	return;
}
}
}
	r0 = 0;
	r_g0 = r0;
	r_g1 = r0;
	return;
}

function __fixunssfdi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >>> 23;
	r1 = r1 & 255;
	r2 = (r1 + -127)|0;
if(!(r2 <0)) //_LBB754_5
{
if(!(r0 <0)) //_LBB754_5
{
	r0 = r0 & 8388607;
	r0 = r0 | 8388608;
	r3 = 0;
	if(r2 <24) //_LBB754_4
{
	r2 = 150;
	r1 = (r2 - r1)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r1;
	__lshrdi3(i7);
	return;
}
else{
	r1 = (r1 + -150)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r1;
	__ashldi3(i7);
	return;
}
}
}
	r0 = 0;
	r_g0 = r0;
	r_g1 = r0;
	return;
}

function _ZNK14CFileInterface12IsFileSystemEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN11CFileStdout5freadEPvjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = -1;
	r_g0 = r0;
	return;
}

function _ZN11CFileStdout5ftellEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN11CFileStdout4feofEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN11CFileStdout5fseekEli(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN11CFileStdout6ungetcEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN11CFileStdout6fflushEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN11CFileStdout6fcloseEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNK11CFileSystem12IsFileSystemEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZN11CFileSystem5freadEPvjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r0;
	mandreel_fread(i7);
	return;
}

function _ZN11CFileSystem6fwriteEPKvjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = -1;
	r_g0 = r0;
	return;
}

function _ZN11CFileSystem6fflushEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN11CFileSystem6fcloseEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	heap32[(g0)] = r0;
	mandreel_fclose(i7);
	return;
}

function _ZN11CFileSystem5ftellEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	heap32[(g0)] = r0;
	mandreel_ftell(i7);
	return;
}

function _ZN11CFileSystem4feofEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	heap32[(g0)] = r0;
	mandreel_feof(i7);
	return;
}

function _ZN11CFileSystem5fseekEli(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	mandreel_fseek(i7);
	return;
}

function _ZN11CFileSystem6ungetcEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = heap32[(fp+1)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	mandreel_ungetc(i7);
	return;
}

function _ZN7CFileLS5freadEPvjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	r3 = heap32[(r0+4)];
	r4 = heap32[(r0+2)];
	r2 = (r2 * r1)|0;
	r5 = (r3 + r2)|0;
	r6 = (r4 - r3)|0;
	r2 = r5 > r4 ? r6 : r2;
	if(r2 <0) //_LBB772_2
{
	r0 = -1;
	r_g0 = r0;
	return;
}
else{
	r4 = heap32[(fp+1)];
	r5 = heap32[(r0+6)];
	r3 = (r5 + r3)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	memcpy(i7);
	r3 = heap32[(r0+4)];
	r3 = (r3 + r2)|0;
	heap32[(r0+4)] = r3;
	r0 = Math.floor(uint(r2) /uint(r1));
	r_g0 = r0;
	return;
}
}

function _ZN7CFileLS5ftellEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r_g0 = r0;
	return;
}

function _ZN7CFileLS4feofEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+4)];
	r0 = heap32[(r0+2)];
	r0 = r1 >= r0;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}

function _ZN7CFileLS5fseekEli(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
_1: do {
	if(r0 ==0) //_LBB775_4
{
	r1 = r1 >> 2;
}
else{
	if(r0 ==1) //_LBB775_6
{
	r0 = r1 >> 2;
	r1 = heap32[(r0+4)];
	r1 = (r1 + r2)|0;
	heap32[(r0+4)] = r1;
}
else{
if(!(r0 !=2)) //_LBB775_7
{
	r1 = r1 >> 2;
	r0 = heap32[(r1+2)];
	r2 = (r0 + r2)|0;
break _1;
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}
} while(0);
	heap32[(r1+4)] = r2;
	r1 = 0;
	r_g0 = r1;
	return;
}

function _ZN7CFileLS6ungetcEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = -1;
	r_g0 = r0;
	return;
}

function _ZN10CFileCloud5freadEPvjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	r3 = heap32[(r0+4)];
	r4 = heap32[(r0+2)];
	r2 = (r2 * r1)|0;
	r5 = (r3 + r2)|0;
	r6 = (r4 - r3)|0;
	r2 = r5 > r4 ? r6 : r2;
	if(r2 <0) //_LBB777_2
{
	r0 = -1;
	r_g0 = r0;
	return;
}
else{
	r4 = heap32[(fp+1)];
	r5 = heap32[(r0+6)];
	r3 = (r5 + r3)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	memcpy(i7);
	r3 = heap32[(r0+4)];
	r3 = (r3 + r2)|0;
	heap32[(r0+4)] = r3;
	r0 = Math.floor(uint(r2) /uint(r1));
	r_g0 = r0;
	return;
}
}

function _ZN10CFileCloud5ftellEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r0 = heap32[(r0+4)];
	r_g0 = r0;
	return;
}

function _ZN10CFileCloud4feofEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+4)];
	r0 = heap32[(r0+2)];
	r0 = r1 >= r0;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}

function _ZN10CFileCloud5fseekEli(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
_1: do {
	if(r0 ==0) //_LBB780_4
{
	r1 = r1 >> 2;
}
else{
	if(r0 ==1) //_LBB780_6
{
	r0 = r1 >> 2;
	r1 = heap32[(r0+4)];
	r1 = (r1 + r2)|0;
	heap32[(r0+4)] = r1;
}
else{
if(!(r0 !=2)) //_LBB780_7
{
	r1 = r1 >> 2;
	r0 = heap32[(r1+2)];
	r2 = (r0 + r2)|0;
break _1;
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}
} while(0);
	heap32[(r1+4)] = r2;
	r1 = 0;
	r_g0 = r1;
	return;
}

function _ZN10CFileCloud6ungetcEi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = -1;
	r_g0 = r0;
	return;
}

function __fwrite(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
if(!(uint(r0) >uint(9))) //_LBB782_2
{
	r0 = _ZL13s_file_stdout;
}
	r3 = r0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+2)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1;
	heap32[(g0+3)] = r2;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	return;
}

function _ZN7CFileLS6fwriteEPKvjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+3)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+1)];
	r2 = (r1 * r2)|0;
	r4 = heap32[(r0+4)];
	r5 = (r4 + r2)|0;
	r6 = heap32[(r0+3)];
	if(r5 >r6) //_LBB783_2
{
	r4 = (r2 + r4)|0;
	r4 = (r4 + 131072)|0;
	heap32[(r0+3)] = r4;
	r5 = heap32[(r0+6)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	realloc(i7);
	r5 = r_g0;
	heap32[(r0+6)] = r5;
	r4 = heap32[(r0+4)];
}
else{
	r5 = heap32[(r0+6)];
}
	r4 = (r5 + r4)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	memcpy(i7);
	r3 = heap32[(r0+4)];
	r2 = (r3 + r2)|0;
	heap32[(r0+4)] = r2;
	r3 = heap32[(r0+5)];
if(!(r2 <=r3)) //_LBB783_5
{
	heap32[(r0+5)] = r2;
}
	r_g0 = r1;
	return;
}

function _ZN7CFileLS6fflushEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+5];
if(!(r1 ==0)) //_LBB784_2
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+5)];
	r1 = heap32[(r1+6)];
	r0 = (r0 + 28)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	mandreel_writels(i7);
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN7CFileLS6fcloseEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+5];
if(!(r1 ==0)) //_LBB785_2
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+5)];
	r1 = heap32[(r1+6)];
	r3 = (r0 + 28)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	mandreel_writels(i7);
}
	r1 = 0;
	r2 = r0 >> 2;
	heap8[r0+4] = r1;
	r0 = heap32[(r2+6)];
	heap32[(g0)] = r0;
	free(i7);
	r_g0 = r1;
	return;
}

function _ZN10CFileCloud6fwriteEPKvjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+3)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+1)];
	r2 = (r1 * r2)|0;
	r4 = heap32[(r0+4)];
	r5 = (r4 + r2)|0;
	r6 = heap32[(r0+3)];
	if(r5 >r6) //_LBB786_2
{
	r4 = (r2 + r4)|0;
	r4 = (r4 + 131072)|0;
	heap32[(r0+3)] = r4;
	r5 = heap32[(r0+6)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	realloc(i7);
	r5 = r_g0;
	heap32[(r0+6)] = r5;
	r4 = heap32[(r0+4)];
}
else{
	r5 = heap32[(r0+6)];
}
	r4 = (r5 + r4)|0;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r2;
	memcpy(i7);
	r3 = heap32[(r0+4)];
	r2 = (r3 + r2)|0;
	heap32[(r0+4)] = r2;
	r3 = heap32[(r0+5)];
if(!(r2 <=r3)) //_LBB786_5
{
	heap32[(r0+5)] = r2;
}
	r_g0 = r1;
	return;
}

function _ZN10CFileCloud6fflushEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+5];
if(!(r1 ==0)) //_LBB787_2
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+5)];
	r3 = r2 << 1;
	heap32[(g0)] = r3;
	malloc(i7);
	r4 = r_g0;
	r1 = heap32[(r1+6)];
	r5 = sp + -4;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r5;
	_ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7);
	r0 = (r0 + 28)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r_g0;
	mandreel_writecloud(i7);
	heap32[(g0)] = r4;
	free(i7);
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN10CFileCloud6fcloseEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0+5];
if(!(r1 ==0)) //_LBB788_2
{
	r1 = r0 >> 2;
	r2 = heap32[(r1+5)];
	r3 = r2 << 1;
	heap32[(g0)] = r3;
	malloc(i7);
	r4 = r_g0;
	r1 = heap32[(r1+6)];
	r5 = sp + -4;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r5;
	_ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7);
	r2 = (r0 + 28)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r_g0;
	mandreel_writecloud(i7);
	heap32[(g0)] = r4;
	free(i7);
}
	r1 = 0;
	r2 = r0 >> 2;
	heap8[r0+4] = r1;
	r0 = heap32[(r2+6)];
	heap32[(g0)] = r0;
	free(i7);
	r_g0 = r1;
	return;
}

function __sync_val_compare_and_swap_4(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(r0)];
	r2 = heap32[(fp+1)];
if(!(r1 !=r2)) //_LBB789_2
{
	r2 = heap32[(fp+2)];
	heap32[(r0)] = r2;
}
	r_g0 = r1;
	return;
}

function _ZN11CFileStdout6fwriteEPKvjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16392;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+3)];
	r0 = (r1 * r0)|0;
	if(r0 !=0) //_LBB790_2
{
	r2 = heap32[(fp+1)];
	r3 = sp + -16384;
	r4 = r0;
_3: while(true){
	r5 = heapU8[r2];
	r4 = (r4 + -1)|0;
	r2 = (r2 + 1)|0;
	r6 = (r3 + 1)|0;
	heap8[r3] = r5;
	r3 = r6;
if(!(r4 !=0)) //_LBB790_3
{
break _3;
}
}
	r2 = sp + -16384;
	r0 = (r2 + r0)|0;
}
else{
	r0 = sp + -16384;
}
	r2 = 0;
	heap8[r0] = r2;
	r0 = sp + -16384;
	heap32[(g0)] = r0;
	puts(i7);
	r_g0 = r1;
	return;
}

function fopen(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + -2064;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heapU8[r0];
	r2 = 46;
	r3 = 92;
	r4 = heapU8[r0+1];
	r5 = 47;
	r1 = r1 == r2;
	r2 = r4 == r3;
	r1 = r1 & r2;
	r2 = r4 == r5;
	r1 = r1 | r2;
	r2 = (r0 + 1)|0;
	r1 = r1 != 0 ? r2 : r0;
	r2 = heapU8[r1];
	r3 = heap32[(fp+1)];
_1: do {
	if(r2 !=0) //_LBB791_2
{
	r4 = sp + -2048;
	r1 = (r1 + 1)|0;
	r6 = 0;
	r8 = 26;
_3: while(true){
	r7 = r2 & 255;
	if(r7 ==47) //_LBB791_5
{
__label__ = 5;
}
else{
	if(r7 !=92) //_LBB791_8
{
	r6 = r2 << 24;
	r6 = r6 >> 24;
	r7 = (r6 + -65)|0;
	r9 = (r2 + 32)|0;
	r10 = (r4 + 1)|0;
	r6 = 0;
	r2 = uint(r7) < uint(r8) ? r9 : r2;
	heap8[r4] = r2;
	r4 = r10;
__label__ = 9;
}
else{
__label__ = 5;
}
}
if (__label__ == 5){
	r2 = r6 & 255;
	heap8[r4] = r5;
	if(r2 ==0) //_LBB791_7
{
	r4 = (r4 + 1)|0;
	r6 = 1;
}
else{
	r6 = 1;
}
}
	r2 = heapU8[r1];
	if(r2 !=0) //_LBB791_11
{
	r1 = (r1 + 1)|0;
continue _3;
}
else{
break _1;
}
}
}
else{
	r4 = sp + -2048;
}
} while(0);
	r1 = 0;
	heap8[r4] = r1;
	r2 = sp + -2048;
	r4 = _2E_str33679;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = 4;
	strncmp(i7);
	r4 = r_g0;
_17: do {
	if(r4 !=0) //_LBB791_29
{
	r4 = _2E_str34680;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = 4;
	strncmp(i7);
	r4 = r_g0;
	if(r4 ==0) //_LBB791_31
{
	heap32[(g0)] = 0;
	_Z30mandreel_fopen_enable_checkfatb(i7);
	r0 = _2E_str31677;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
_21: do {
	if(r0 !=0) //_LBB791_33
{
	r0 = _2E_str4651;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
	if(r0 ==0) //_LBB791_32
{
__label__ = 30;
}
else{
	r0 = _2E_str5652;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB791_36
{
	r0 = _2E_str32678;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB791_35
{
	r4 = heapU8[r3];
	r0 = 119;
	r3 = 114;
	r0 = r4 == r0;
	r5 = r4 == r3;
	r3 = r0 & 1;
	r0 = r5 & 1;
	if(r4 ==114) //_LBB791_39
{
__label__ = 36;
break _21;
}
else{
__label__ = 38;
break _21;
}
}
}
	r0 = 1;
	r1 = 0;
	r3 = r0;
__label__ = 38;
}
}
else{
__label__ = 30;
}
} while(0);
if (__label__ == 30){
	r0 = 1;
	r3 = r0;
__label__ = 36;
}
if (__label__ == 36){
	heap32[(g0)] = r2;
	mandreel_opencloud(i7);
	r1 = r_g0;
	if(r1 ==-1) //_LBB791_41
{
	r4 = 0;
break _17;
}
}
	heap32[(g0)] = 284;
	_Znwj(i7);
	r4 = r_g0;
	r5 = _ZTV10CFileCloud;
	r6 = r4 >> 2;
	r5 = (r5 + 8)|0;
	r7 = 1;
	heap32[(r6)] = r5;
	heap8[r4+4] = r7;
	heap32[(r6+4)] = 0;
	heap32[(r6+6)] = 0;
	heap32[(r6+2)] = r1;
	heap8[r4+5] = r3;
	heap8[r4+6] = r0;
	heap32[(r6+5)] = 0;
	r0 = (r4 + 28)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	strcpy(i7);
	if(r1 ==0) //_LBB791_44
{
	r0 = r3 & 255;
	if(r0 ==0) //_LBB791_46
{
break _17;
}
else{
	r0 = r4 >> 2;
	heap32[(r0+3)] = 131072;
	heap32[(g0)] = 131072;
	malloc(i7);
	heap32[(r0+6)] = r_g0;
}
}
else{
	r3 = (r1 + 131072)|0;
	r2 = r4 >> 2;
	heap32[(r2+3)] = r3;
	heap32[(g0)] = r3;
	malloc(i7);
	heap32[(r2+6)] = r_g0;
	r3 = (r1 + 4)|0;
	heap32[(g0)] = r3;
	malloc(i7);
	r3 = r_g0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r1;
	mandreel_readcloud(i7);
	r0 = heap32[(r2+3)];
	r5 = heap32[(r2+6)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r0;
	_ZN12mandreel_b6410b64_decodeEPKcjPvj(i7);
	r0 = r_g0;
	heap32[(g0)] = r3;
	free(i7);
	heap32[(r2+2)] = r0;
	heap32[(r2+5)] = r0;
}
}
else{
	r1 = r3;
_39: while(true){
	r4 = heapU8[r1];
	if(r4 ==0) //_LBB791_51
{
__label__ = 46;
break _39;
}
else{
	if(r4 ==87) //_LBB791_50
{
__label__ = 45;
break _39;
}
else{
	r1 = (r1 + 1)|0;
	if(r4 !=119) //_LBB791_47
{
__label__ = 42;
}
else{
__label__ = 45;
break _39;
}
}
}
}
switch(__label__ ){//multiple entries
case 46:
	r0 = heapU8[sp+-2048];
	if(r0 !=47) //_LBB791_53
{
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	mandreel_fopen(i7);
	r2 = r_g0;
}
else{
	r2 = (r2 + 1)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	mandreel_fopen(i7);
	r2 = r_g0;
}
	if(r2 ==0) //_LBB791_56
{
	r0 = 0;
	r_g0 = r0;
	return;
}
else{
	heap32[(g0)] = 8;
	r0 = _ZTV11CFileSystem;
	_Znwj(i7);
	r3 = r_g0 >> 2;
	r0 = (r0 + 8)|0;
	heap32[(r3)] = r0;
	heap32[(r3+1)] = r2;
	return;
}
break;
case 45:
	r2 = _2E_str35681;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r3;
	printf(i7);
	r2 = 0;
	r_g0 = r2;
	return;
break;
}
}
}
else{
	heap32[(g0)] = 0;
	_Z30mandreel_fopen_enable_checkfatb(i7);
	r0 = _2E_str31677;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
_54: do {
	if(r0 !=0) //_LBB791_15
{
	r0 = _2E_str4651;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
	if(r0 ==0) //_LBB791_14
{
__label__ = 13;
}
else{
	r0 = _2E_str5652;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
	if(r0 !=0) //_LBB791_18
{
	r0 = _2E_str32678;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
if(!(r0 ==0)) //_LBB791_17
{
	r3 = heapU8[r3];
	r0 = 119;
	r1 = 114;
	r0 = r3 == r0;
	r4 = r3 == r1;
	r1 = r0 & 1;
	r0 = r4 & 1;
	if(r3 ==114) //_LBB791_21
{
__label__ = 20;
break _54;
}
else{
	r3 = 0;
__label__ = 22;
break _54;
}
}
}
	r0 = 1;
	r3 = 0;
	r1 = r0;
__label__ = 22;
}
}
else{
__label__ = 13;
}
} while(0);
if (__label__ == 13){
	r0 = 1;
	r1 = r0;
__label__ = 20;
}
if (__label__ == 20){
	heap32[(g0)] = r2;
	mandreel_openls(i7);
	r3 = r_g0;
	if(r3 ==-1) //_LBB791_23
{
	r4 = 0;
break _17;
}
}
	heap32[(g0)] = 284;
	_Znwj(i7);
	r4 = r_g0;
	r5 = _ZTV7CFileLS;
	r6 = r4 >> 2;
	r5 = (r5 + 8)|0;
	r7 = 1;
	heap32[(r6)] = r5;
	heap8[r4+4] = r7;
	heap32[(r6+4)] = 0;
	heap32[(r6+6)] = 0;
	heap32[(r6+2)] = r3;
	heap8[r4+5] = r1;
	heap8[r4+6] = r0;
	heap32[(r6+5)] = 0;
	r0 = (r4 + 28)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	strcpy(i7);
	if(r3 ==0) //_LBB791_26
{
	r0 = r1 & 255;
if(!(r0 ==0)) //_LBB791_28
{
	r0 = r4 >> 2;
	heap32[(r0+3)] = 131072;
	heap32[(g0)] = 131072;
	malloc(i7);
	heap32[(r0+6)] = r_g0;
}
}
else{
	r1 = (r3 + 131072)|0;
	r2 = r4 >> 2;
	heap32[(r2+3)] = r1;
	heap32[(g0)] = r1;
	malloc(i7);
	heap32[(r2+6)] = r_g0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r_g0;
	heap32[(g0+2)] = r3;
	mandreel_readls(i7);
	heap32[(r2+5)] = r3;
}
}
} while(0);
	heap32[(g0)] = 1;
	_Z30mandreel_fopen_enable_checkfatb(i7);
	r_g0 = r4;
	return;
}

function strtoul(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap8[r0];
	r2 = r1 << 2;
	r3 = my_ctype;
	r2 = (r2 + r3)|0;
	r4 = heap32[(fp+1)];
	r2 = heapU8[r2+4];
	r2 = r2 & 8;
	if(r2 ==0) //_LBB792_2
{
	r2 = r0;
}
else{
	r2 = r0;
_4: while(true){
	r1 = heap8[r2+1];
	r5 = r1 << 2;
	r5 = (r5 + r3)|0;
	r2 = (r2 + 1)|0;
	r5 = heapU8[r5+4];
	r5 = r5 & 8;
	if(r5 !=0) //_LBB792_3
{
continue _4;
}
else{
break _4;
}
}
}
	r1 = r1 & 255;
	if(r1 ==43) //_LBB792_8
{
	r2 = (r2 + 1)|0;
	r1 = 0;
}
else{
	if(r1 ==45) //_LBB792_7
{
	r2 = (r2 + 1)|0;
	r1 = 1;
}
else{
	r1 = 0;
}
}
	r3 = 0;
	r5 = r3;
	r6 = r3;
	r11 = -1;
_14: while(true){
	r8 = (r2 - r3)|0;
	r7 = heapU8[r8];
	if(r7 ==0) //_LBB792_14
{
break _14;
}
else{
	if(uint(r7) <uint(65)) //_LBB792_10
{
	r9 = r7 & 255;
	r10 = 58;
	r7 = (r7 + -48)|0;
	r7 = uint(r9) < uint(r10) ? r7 : r11;
	r7 = r7 & 255;
	if(uint(r7) >uint(9)) //_LBB792_14
{
break _14;
}
else{
	r8 = r6 & 255;
	r8 = (r8 * 10)|0;
	r7 = (r7 + r8)|0;
	r6 = r6 >>> 8;
	r8 = r7 >>> 8;
	r6 = (r6 * 10)|0;
	r6 = (r8 + r6)|0;
	r8 = 16777215;
	r9 = 1;
	r10 = r6 << 8;
	r7 = r7 & 255;
	r5 = uint(r6) > uint(r8) ? r9 : r5;
	r6 = r10 | r7;
	r3 = (r3 + -1)|0;
continue _14;
}
}
else{
break _14;
}
}
}
	if(r3 ==0) //_LBB792_16
{
	_errno(i7);
	r6 = 0;
	r8 = r_g0 >> 2;
	heap32[(r8)] = 22;
	r8 = r0;
}
if(!(r4 ==0)) //_LBB792_19
{
	r0 = r4 >> 2;
	heap32[(r0)] = r8;
}
	if(r5 ==0) //_LBB792_21
{
	r0 = 0;
	r0 = (r0 - r6)|0;
	r0 = r1 == 0 ? r6 : r0;
	r_g0 = r0;
	return;
}
else{
	_errno(i7);
	r1 = r_g0 >> 2;
	heap32[(r1)] = 34;
	r1 = -1;
	r_g0 = r1;
	return;
}
}

function strtol(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap8[r0];
	r2 = r1 << 2;
	r3 = my_ctype;
	r2 = (r2 + r3)|0;
	r4 = heap32[(fp+1)];
	r2 = heapU8[r2+4];
	r2 = r2 & 8;
	if(r2 ==0) //_LBB793_2
{
	r2 = r0;
}
else{
	r2 = r0;
_4: while(true){
	r1 = heap8[r2+1];
	r5 = r1 << 2;
	r5 = (r5 + r3)|0;
	r2 = (r2 + 1)|0;
	r5 = heapU8[r5+4];
	r5 = r5 & 8;
	if(r5 !=0) //_LBB793_3
{
continue _4;
}
else{
break _4;
}
}
}
	r1 = r1 & 255;
	if(r1 ==45) //_LBB793_6
{
	r1 = heap8[r2+1];
	r1 = r1 << 2;
	r3 = (r1 + r3)|0;
	r3 = heapU16[(r3+4)>>1];
	r3 = r3 & 263;
	if(r3 ==0) //_LBB793_5
{
__label__ = 5;
}
else{
	r2 = (r2 + 1)|0;
	r3 = -1;
__label__ = 8;
}
}
else{
__label__ = 5;
}
if (__label__ == 5){
	r3 = 0;
}
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	strtoul(i7);
	r1 = r_g0;
if(!(r4 ==0)) //_LBB793_11
{
	r4 = r4 >> 2;
	r5 = heap32[(r4)];
if(!(r5 !=r2)) //_LBB793_11
{
	heap32[(r4)] = r0;
}
}
	if(r1 >-1) //_LBB793_16
{
	r0 = 0;
	r0 = (r0 - r1)|0;
	r0 = r3 == 0 ? r1 : r0;
	r_g0 = r0;
	return;
}
else{
	_errno(i7);
	r0 = r_g0;
if(!(r1 !=-2147483648)) //_LBB793_15
{
if(!(r3 ==0)) //_LBB793_15
{
	r0 = r0 >> 2;
	heap32[(r0)] = 0;
	r_g0 = r1;
	return;
}
}
	r1 = r0 >> 2;
	r0 = 2147483647;
	r2 = -2147483648;
	heap32[(r1)] = 34;
	r1 = r3 == 0 ? r0 : r2;
	r_g0 = r1;
	return;
}
}

function __floatundidf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r0 | r1;
	if(r2 ==0) //_LBB794_12
{
	f0 =                         0;
	f_g0 = f0;
	return;
}
else{
	r2 = r0 >>> 1;
	r3 = r1 >>> 1;
	r2 = r0 | r2;
	r3 = r1 | r3;
	r4 = r2 >>> 2;
	r5 = r3 >>> 2;
	r2 = r2 | r4;
	r3 = r3 | r5;
	r4 = r2 >>> 4;
	r5 = r3 >>> 4;
	r2 = r2 | r4;
	r3 = r3 | r5;
	r4 = r2 >>> 8;
	r5 = r3 >>> 8;
	r2 = r2 | r4;
	r3 = r3 | r5;
	r4 = r2 >>> 16;
	r5 = r3 >>> 16;
	r2 = r2 | r4;
	r3 = r3 | r5;
	r4 = r2 ^ -1;
	r5 = 1431655765;
	r6 = r3 ^ -1;
	r4 = r4 >>> 1;
	r6 = r6 >>> 1;
	r2 = r5 & (~r2);
	r4 = r4 & 1431655765;
	r2 = (r2 + r4)|0;
	r3 = r5 & (~r3);
	r4 = r6 & 1431655765;
	r3 = (r3 + r4)|0;
	r4 = r2 >>> 2;
	r5 = r3 >>> 2;
	r2 = r2 & 858993459;
	r4 = r4 & 858993459;
	r2 = (r2 + r4)|0;
	r3 = r3 & 858993459;
	r4 = r5 & 858993459;
	r3 = (r3 + r4)|0;
	r4 = r2 >>> 4;
	r5 = r3 >>> 4;
	r2 = r2 & 252645135;
	r4 = r4 & 252645135;
	r2 = (r2 + r4)|0;
	r3 = r3 & 252645135;
	r4 = r5 & 252645135;
	r3 = (r3 + r4)|0;
	r4 = r2 >>> 8;
	r5 = r3 >>> 8;
	r2 = r2 & 16711935;
	r4 = r4 & 16711935;
	r2 = (r2 + r4)|0;
	r3 = r3 & 16711935;
	r4 = r5 & 16711935;
	r3 = (r3 + r4)|0;
	r4 = r2 & 65535;
	r2 = r2 >>> 16;
	r2 = (r4 + r2)|0;
	r4 = r3 & 65535;
	r3 = r3 >>> 16;
	r3 = (r4 + r3)|0;
	r2 = (r2 + 32)|0;
	r4 = 64;
	r2 = r1 != 0 ? r3 : r2;
	r3 = 63;
	r4 = (r4 - r2)|0;
	r2 = (r3 - r2)|0;
	if(r4 <54) //_LBB794_10
{
	r3 = 53;
	r3 = (r3 - r4)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	__ashldi3(i7);
	r3 = r_g0;
	r1 = r_g1;
}
else{
	if(r4 ==54) //_LBB794_5
{
	r1 = r1 << 1;
	r3 = r0 >>> 31;
	r0 = r0 << 1;
	r1 = r1 | r3;
}
else{
	if(r4 !=55) //_LBB794_6
{
	r3 = (r4 + -55)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	__lshrdi3(i7);
	r3 = r_g0;
	r5 = r_g1;
	r6 = 119;
	r6 = (r6 - r4)|0;
	heap32[(g0)] = -1;
	heap32[(g0+1)] = -1;
	heap32[(g0+2)] = r6;
	__lshrdi3(i7);
	r0 = r_g0 & r0;
	r1 = r_g1 & r1;
	r0 = r0 | r1;
	r1 = 0;
	r0 = r0 != r1;
	r0 = r0 & 1;
	r0 = r0 | r3;
	r1 = r5;
}
}
	r3 = r0 >>> 2;
	r3 = r3 & 1;
	r0 = r3 | r0;
	r3 = (r0 + 1)|0;
	r5 = 1;
	r6 = 0;
	r0 = uint(r3) < uint(r0) ? r5 : r6;
	r0 = r3 == 0 ? r5 : r0;
	r0 = (r1 + r0)|0;
	r1 = r0 >>> 2;
	r5 = r1 & 2097152;
	if(r5 !=0) //_LBB794_9
{
	r1 = r3 >>> 3;
	r2 = r0 << 29;
	r3 = r1 | r2;
	r1 = r0 >>> 3;
	r2 = r4;
}
else{
	r3 = r3 >>> 2;
	r0 = r0 << 30;
	r3 = r3 | r0;
}
}
	r0 = r2 << 20;
	r2 = sp + -8;
	r1 = r1 & 1048575;
	r0 = (r0 + 1072693248)|0;
	r2 = r2 >> 2;
	r0 = r1 | r0;
	heap32[(fp+-2)] = r3;
	heap32[(r2+1)] = r0;
	f0 = llvm_readDouble((sp+-8));
	f_g0 = f0;
	return;
}
}

function __udivmoddi4(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp+4)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
_1: do {
	if(r0 !=0) //_LBB795_10
{
_3: do {
	if(r3 !=0) //_LBB795_27
{
	if(r4 !=0) //_LBB795_34
{
	r5 = r4 >>> 1;
	r6 = r0 >>> 1;
	r5 = r4 | r5;
	r6 = r0 | r6;
	r7 = r5 >>> 2;
	r9 = r6 >>> 2;
	r5 = r5 | r7;
	r6 = r6 | r9;
	r7 = r5 >>> 4;
	r9 = r6 >>> 4;
	r5 = r5 | r7;
	r6 = r6 | r9;
	r7 = r5 >>> 8;
	r9 = r6 >>> 8;
	r5 = r5 | r7;
	r6 = r6 | r9;
	r7 = r5 >>> 16;
	r9 = r6 >>> 16;
	r5 = r5 | r7;
	r6 = r6 | r9;
	r7 = r5 ^ -1;
	r9 = r6 ^ -1;
	r8 = 1431655765;
	r7 = r7 >>> 1;
	r9 = r9 >>> 1;
	r5 = r8 & (~r5);
	r7 = r7 & 1431655765;
	r6 = r8 & (~r6);
	r9 = r9 & 1431655765;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r9)|0;
	r7 = r5 >>> 2;
	r9 = r6 >>> 2;
	r5 = r5 & 858993459;
	r7 = r7 & 858993459;
	r6 = r6 & 858993459;
	r9 = r9 & 858993459;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r9)|0;
	r7 = r5 >>> 4;
	r9 = r6 >>> 4;
	r5 = r5 & 252645135;
	r7 = r7 & 252645135;
	r6 = r6 & 252645135;
	r9 = r9 & 252645135;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r9)|0;
	r7 = r5 >>> 8;
	r9 = r6 >>> 8;
	r5 = r5 & 16711935;
	r7 = r7 & 16711935;
	r6 = r6 & 16711935;
	r9 = r9 & 16711935;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r9)|0;
	r7 = r5 & 65535;
	r5 = r5 >>> 16;
	r9 = r6 & 65535;
	r6 = r6 >>> 16;
	r5 = (r7 + r5)|0;
	r6 = (r9 + r6)|0;
	r5 = (r5 - r6)|0;
	if(uint(r5) <uint(32)) //_LBB795_37
{
	r6 = 31;
	r7 = (r5 + 1)|0;
	r9 = (r5 + -31)|0;
	r5 = (r6 - r5)|0;
	r6 = r2 >>> r7;
	r8 = r9 >> 31;
	r10 = r0 >>> r7;
	r6 = r6 & r8;
	r0 = r0 << r5;
	r9 = 0;
	r2 = r2 << r5;
	r5 = r6 | r0;
	r6 = r10 & r8;
__label__ = 39;
break _3;
}
else{
	if(r1 ==0) //_LBB795_7
{
__label__ = 7;
break _1;
}
else{
	r5 = r1 >> 2;
	heap32[(r5)] = r2;
	heap32[(r5+1)] = r0;
	r2 = 0;
	r_g0 = r2;
	r_g1 = r2;
	return;
}
}
}
else{
	r5 = (r3 + -1)|0;
	r6 = r5 & r3;
	if(r6 !=0) //_LBB795_38
{
	r5 = r3 >>> 1;
	r6 = r0 >>> 1;
	r5 = r3 | r5;
	r6 = r0 | r6;
	r7 = r5 >>> 2;
	r9 = r6 >>> 2;
	r5 = r5 | r7;
	r6 = r6 | r9;
	r7 = r5 >>> 4;
	r9 = r6 >>> 4;
	r5 = r5 | r7;
	r6 = r6 | r9;
	r7 = r5 >>> 8;
	r9 = r6 >>> 8;
	r5 = r5 | r7;
	r6 = r6 | r9;
	r7 = r5 >>> 16;
	r9 = r6 >>> 16;
	r5 = r5 | r7;
	r6 = r6 | r9;
	r7 = r5 ^ -1;
	r9 = r6 ^ -1;
	r8 = 1431655765;
	r7 = r7 >>> 1;
	r9 = r9 >>> 1;
	r5 = r8 & (~r5);
	r7 = r7 & 1431655765;
	r6 = r8 & (~r6);
	r9 = r9 & 1431655765;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r9)|0;
	r7 = r5 >>> 2;
	r9 = r6 >>> 2;
	r5 = r5 & 858993459;
	r7 = r7 & 858993459;
	r6 = r6 & 858993459;
	r9 = r9 & 858993459;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r9)|0;
	r7 = r5 >>> 4;
	r9 = r6 >>> 4;
	r5 = r5 & 252645135;
	r7 = r7 & 252645135;
	r6 = r6 & 252645135;
	r9 = r9 & 252645135;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r9)|0;
	r7 = r5 >>> 8;
	r9 = r6 >>> 8;
	r5 = r5 & 16711935;
	r7 = r7 & 16711935;
	r6 = r6 & 16711935;
	r9 = r9 & 16711935;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r9)|0;
	r7 = r5 & 65535;
	r5 = r5 >>> 16;
	r9 = r6 & 65535;
	r6 = r6 >>> 16;
	r5 = (r7 + r5)|0;
	r6 = (r9 + r6)|0;
	r5 = (r5 - r6)|0;
	r6 = 31;
	r7 = (r5 + 33)|0;
	r9 = r5 ^ -1;
	r8 = (r5 + 1)|0;
	r6 = (r6 - r5)|0;
	r10 = -2;
	r10 = (r10 - r5)|0;
	r11 = r0 << r6;
	r12 = r2 >>> r8;
	r13 = r2 >>> r7;
	r14 = r0 << r9;
	r11 = r11 | r12;
	r12 = r9 >> 31;
	r9 = r2 << r9;
	r5 = r5 >> 31;
	r13 = r13 | r14;
	r14 = r8 >> 31;
	r8 = r0 >>> r8;
	r10 = r10 >> 31;
	r2 = r2 << r6;
	r0 = r0 >>> r7;
	r6 = r11 & r12;
	r5 = r9 & r5;
	r11 = r13 & r14;
	r8 = r8 & r10;
	r9 = r2 & r12;
	r2 = r6 | r5;
	r5 = r11 | r8;
	r6 = r0 & r14;
	if(r7 ==0) //_LBB795_40
{
	r0 = 0;
	r3 = r0;
__label__ = 42;
break _3;
}
else{
__label__ = 39;
break _3;
}
}
else{
if(!(r1 ==0)) //_LBB795_31
{
	r1 = r1 >> 2;
	r4 = r5 & r2;
	heap32[(r1)] = r4;
	heap32[(r1+1)] = 0;
}
	if(r3 !=1) //_LBB795_33
{
	r1 = r5 & (~r3);
	r3 = r1 >>> 1;
	r1 = r1 & 1431655765;
	r3 = r3 & 1431655765;
	r1 = (r1 + r3)|0;
	r3 = r1 >>> 2;
	r1 = r1 & 858993459;
	r3 = r3 & 858993459;
	r1 = (r1 + r3)|0;
	r3 = r1 >>> 4;
	r1 = r1 & 252645135;
	r3 = r3 & 252645135;
	r1 = (r1 + r3)|0;
	r3 = r1 >>> 8;
	r1 = r1 & 16711935;
	r3 = r3 & 16711935;
	r1 = (r1 + r3)|0;
	r3 = r1 & 65535;
	r1 = r1 >>> 16;
	r1 = (r3 + r1)|0;
	r3 = 32;
	r3 = (r3 - r1)|0;
	r3 = r0 << r3;
	r2 = r2 >>> r1;
	r2 = r3 | r2;
	r0 = r0 >>> r1;
__label__ = 44;
break _1;
}
else{
__label__ = 44;
break _1;
}
}
}
}
else{
	if(r4 !=0) //_LBB795_15
{
	if(r2 !=0) //_LBB795_19
{
	r5 = (r4 + -1)|0;
	r6 = r5 & r4;
	if(r6 !=0) //_LBB795_23
{
	r5 = r4 >>> 1;
	r6 = r0 >>> 1;
	r5 = r4 | r5;
	r6 = r0 | r6;
	r7 = r5 >>> 2;
	r8 = r6 >>> 2;
	r5 = r5 | r7;
	r6 = r6 | r8;
	r7 = r5 >>> 4;
	r8 = r6 >>> 4;
	r5 = r5 | r7;
	r6 = r6 | r8;
	r7 = r5 >>> 8;
	r8 = r6 >>> 8;
	r5 = r5 | r7;
	r6 = r6 | r8;
	r7 = r5 >>> 16;
	r8 = r6 >>> 16;
	r5 = r5 | r7;
	r6 = r6 | r8;
	r7 = r5 ^ -1;
	r8 = r6 ^ -1;
	r9 = 1431655765;
	r7 = r7 >>> 1;
	r8 = r8 >>> 1;
	r5 = r9 & (~r5);
	r7 = r7 & 1431655765;
	r6 = r9 & (~r6);
	r8 = r8 & 1431655765;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r8)|0;
	r7 = r5 >>> 2;
	r8 = r6 >>> 2;
	r5 = r5 & 858993459;
	r7 = r7 & 858993459;
	r6 = r6 & 858993459;
	r8 = r8 & 858993459;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r8)|0;
	r7 = r5 >>> 4;
	r8 = r6 >>> 4;
	r5 = r5 & 252645135;
	r7 = r7 & 252645135;
	r6 = r6 & 252645135;
	r8 = r8 & 252645135;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r8)|0;
	r7 = r5 >>> 8;
	r8 = r6 >>> 8;
	r5 = r5 & 16711935;
	r7 = r7 & 16711935;
	r6 = r6 & 16711935;
	r8 = r8 & 16711935;
	r5 = (r5 + r7)|0;
	r6 = (r6 + r8)|0;
	r7 = r5 & 65535;
	r5 = r5 >>> 16;
	r8 = r6 & 65535;
	r6 = r6 >>> 16;
	r5 = (r7 + r5)|0;
	r6 = (r8 + r6)|0;
	r5 = (r5 - r6)|0;
	if(uint(r5) <uint(31)) //_LBB795_26
{
	r6 = 31;
	r7 = (r5 + 1)|0;
	r5 = (r6 - r5)|0;
	r6 = r0 << r5;
	r8 = r2 >>> r7;
	r9 = 0;
	r2 = r2 << r5;
	r5 = r6 | r8;
	r6 = r0 >>> r7;
__label__ = 39;
break _3;
}
else{
	if(r1 ==0) //_LBB795_7
{
__label__ = 7;
break _1;
}
else{
	r1 = r1 >> 2;
	heap32[(r1)] = r2;
	heap32[(r1+1)] = r0;
__label__ = 9;
break _1;
}
}
}
else{
if(!(r1 ==0)) //_LBB795_22
{
	r1 = r1 >> 2;
	r3 = r5 & r0;
	heap32[(r1)] = r2;
	heap32[(r1+1)] = r3;
}
	r1 = (r4 + -1)|0;
	r1 = r1 & (~r4);
	r2 = r1 >>> 1;
	r1 = r1 & 1431655765;
	r2 = r2 & 1431655765;
	r1 = (r1 + r2)|0;
	r2 = r1 >>> 2;
	r1 = r1 & 858993459;
	r2 = r2 & 858993459;
	r1 = (r1 + r2)|0;
	r2 = r1 >>> 4;
	r1 = r1 & 252645135;
	r2 = r2 & 252645135;
	r1 = (r1 + r2)|0;
	r2 = r1 >>> 8;
	r1 = r1 & 16711935;
	r2 = r2 & 16711935;
	r1 = (r1 + r2)|0;
	r2 = r1 & 65535;
	r1 = r1 >>> 16;
	r1 = (r2 + r1)|0;
	r0 = r0 >>> r1;
__label__ = 5;
break _1;
}
}
else{
if(!(r1 ==0)) //_LBB795_18
{
	r1 = r1 >> 2;
	r2 = Math.floor(uint(r0) % uint(r4));
	heap32[(r1)] = 0;
	heap32[(r1+1)] = r2;
}
	r0 = Math.floor(uint(r0) /uint(r4));
__label__ = 5;
break _1;
}
}
else{
if(!(r1 ==0)) //_LBB795_14
{
	r1 = r1 >> 2;
	r2 = Math.floor(uint(r0) % uint(r3));
	heap32[(r1)] = r2;
	heap32[(r1+1)] = 0;
}
	r0 = Math.floor(uint(r0) /uint(r3));
__label__ = 5;
break _1;
}
}
} while(0);
if (__label__ == 39){
	r8 = (r3 + -1)|0;
	r10 = 0;
	r11 = 1;
	r0 = uint(r8) < uint(r3) ? r11 : r10;
	r0 = r3 != 0 ? r11 : r0;
	r0 = (r4 + r0)|0;
	r12 = (r0 + -1)|0;
	r13 = r10;
_45: while(true){
	r0 = r5 << 1;
	r14 = r2 >>> 31;
	r6 = r6 << 1;
	r5 = r5 >>> 31;
	r14 = r0 | r14;
	r0 = r6 | r5;
	r5 = (r12 - r0)|0;
	r6 = uint(r8) < uint(r14) ? r11 : r10;
	r5 = (r5 - r6)|0;
	r5 = r5 >> 31;
	r6 = r5 & r3;
	r15 = r5 & r4;
	r16 = r9 << 1;
	r2 = r2 << 1;
	r17 = r9 >>> 31;
	r15 = (r0 - r15)|0;
	r18 = uint(r14) < uint(r6) ? r11 : r10;
	r7 = (r7 + -1)|0;
	r0 = r5 & 1;
	r9 = r13 | r16;
	r2 = r2 | r17;
	r5 = (r14 - r6)|0;
	r6 = (r15 - r18)|0;
	r13 = r0;
if(!(r7 !=0)) //_LBB795_42
{
break _45;
}
}
	r3 = 0;
}
	r2 = r2 << 1;
	r4 = r9 >>> 31;
	r7 = r9 << 1;
	r4 = r2 | r4;
	r2 = r0 | r7;
	r0 = r3 | r4;
	if(r1 !=0) //_LBB795_46
{
	r1 = r1 >> 2;
	heap32[(r1)] = r5;
	heap32[(r1+1)] = r6;
__label__ = 44;
break _1;
}
else{
__label__ = 44;
break _1;
}
}
else{
	if(r4 !=0) //_LBB795_6
{
	if(r1 !=0) //_LBB795_8
{
	r0 = r1 >> 2;
	heap32[(r0)] = r2;
	heap32[(r0+1)] = 0;
__label__ = 9;
break _1;
}
else{
__label__ = 7;
break _1;
}
}
else{
if(!(r1 ==0)) //_LBB795_4
{
	r0 = r1 >> 2;
	r1 = Math.floor(uint(r2) % uint(r3));
	heap32[(r0)] = r1;
	heap32[(r0+1)] = 0;
}
	r0 = Math.floor(uint(r2) /uint(r3));
__label__ = 5;
}
}
} while(0);
switch(__label__ ){//multiple entries
case 7:
	r2 = 0;
	r0 = r2;
break;
case 9:
	r0 = 0;
	r_g0 = r0;
	r_g1 = r0;
	return;
break;
case 5:
	r1 = 0;
	r_g0 = r0;
	r_g1 = r1;
	return;
break;
}
	r_g0 = r2;
	r_g1 = r0;
	return;
}

function __umoddi3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = sp + -8;
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(fp+3)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = r4;
	heap32[(g0+4)] = r0;
	__udivmoddi4(i7);
	r0 = r0 >> 2;
	r1 = heap32[(fp+-2)];
	r0 = heap32[(r0+1)];
	r_g0 = r1;
	r_g1 = r0;
	return;
}

function __moddi3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
	r1 = heap32[(fp+1)];
	r2 = r0 >> 31;
	r3 = heap32[(fp+2)];
	r4 = r1 >> 31;
	r5 = heap32[(fp)];
	r1 = r4 ^ r1;
	r5 = r4 ^ r5;
	r0 = r2 ^ r0;
	r3 = r2 ^ r3;
	r6 = 1;
	r7 = 0;
	r1 = (r1 - r4)|0;
	r8 = uint(r5) < uint(r4) ? r6 : r7;
	r0 = (r0 - r2)|0;
	r9 = uint(r3) < uint(r2) ? r6 : r7;
	r10 = sp + -8;
	r5 = (r5 - r4)|0;
	r1 = (r1 - r8)|0;
	r2 = (r3 - r2)|0;
	r0 = (r0 - r9)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r0;
	heap32[(g0+4)] = r10;
	__udivmoddi4(i7);
	r0 = r10 >> 2;
	r0 = heap32[(r0+1)];
	r1 = heap32[(fp+-2)];
	r1 = r1 ^ r4;
	r0 = r0 ^ r4;
	r0 = (r0 - r4)|0;
	r2 = uint(r1) < uint(r4) ? r6 : r7;
	r1 = (r1 - r4)|0;
	r0 = (r0 - r2)|0;
	r_g0 = r1;
	r_g1 = r0;
	return;
}

function __divdi3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
	r1 = heap32[(fp+1)];
	r2 = r1 >> 31;
	r3 = heap32[(fp)];
	r4 = r0 >> 31;
	r5 = heap32[(fp+2)];
	r6 = r2 ^ r1;
	r3 = r2 ^ r3;
	r7 = r4 ^ r0;
	r5 = r4 ^ r5;
	r8 = 1;
	r9 = 0;
	r6 = (r6 - r2)|0;
	r10 = uint(r3) < uint(r2) ? r8 : r9;
	r7 = (r7 - r4)|0;
	r11 = uint(r5) < uint(r4) ? r8 : r9;
	r2 = (r3 - r2)|0;
	r3 = (r6 - r10)|0;
	r4 = (r5 - r4)|0;
	r5 = (r7 - r11)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = 0;
	r0 = r0 ^ r1;
	__udivmoddi4(i7);
	r0 = r0 >> 31;
	r1 = r_g0 ^ r0;
	r2 = r_g1 ^ r0;
	r2 = (r2 - r0)|0;
	r3 = uint(r1) < uint(r0) ? r8 : r9;
	r0 = (r1 - r0)|0;
	r1 = (r2 - r3)|0;
	r_g0 = r0;
	r_g1 = r1;
	return;
}

function __udivdi3(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = 0;
	__udivmoddi4(i7);
	return;
}

function sscanf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var f0;
	var f1;
	var f2;
	var f3;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = (sp + 4)|0;
	r1 = heap32[(fp)];
	heap32[(fp+-5)] = r0;
	heap32[(fp+-4)] = r1;
	heap32[(fp+-1)] = r0;
	r0 = sp + -16;
	heap32[(g0)] = r0;
	r1 = 1;
	r2 = 0;
	r3 = _2E_str7136;
	sgetc(i7);
	r4 = r_g0;
	f3 =                        10;
	r20 = 255;
_1: while(true){
	r5 = heapU8[r3];
	if(r5 !=0) //_LBB800_1
{
	r5 = r5 << 24;
	r5 = r5 >> 24;
	r6 = (r3 + 1)|0;
	if(r5 >31) //_LBB800_4
{
	if(r5 ==32) //_LBB800_7
{
__label__ = 7;
}
else{
	if(r5 ==37) //_LBB800_8
{
	r5 = -1;
	r7 = 0;
	r8 = r7;
	r9 = r7;
	r10 = r7;
	r11 = r7;
_8: while(true){
	r12 = heap8[r6];
if(!(r12 ==110)) //_LBB800_17
{
	if(r4 ==-1) //_LBB800_187
{
__label__ = 168;
break _1;
}
}
	if(r12 >103) //_LBB800_31
{
	if(r12 >111) //_LBB800_38
{
	if(r12 >114) //_LBB800_41
{
__label__ = 40;
break _8;
}
else{
	if(r12 ==112) //_LBB800_59
{
__label__ = 52;
break _8;
}
else{
if(!(r12 ==113)) //_LBB800_45
{
__label__ = 168;
break _1;
}
}
}
}
else{
	if(r12 >107) //_LBB800_35
{
	if(r12 ==108) //_LBB800_55
{
	r3 = 1;
	r10 = r10 & 255;
	r11 = r10 == 0 ? r11 : r3;
	r6 = (r6 + 1)|0;
	r10 = r3;
continue _8;
}
else{
__label__ = 35;
break _8;
}
}
else{
	if(r12 ==104) //_LBB800_53
{
	r6 = (r6 + 1)|0;
	r9 = 1;
continue _8;
}
else{
__label__ = 33;
break _8;
}
}
}
}
else{
	if(r12 >75) //_LBB800_25
{
	if(r12 >98) //_LBB800_28
{
__label__ = 27;
break _8;
}
else{
if(!(r12 ==76)) //_LBB800_45
{
__label__ = 26;
break _8;
}
}
}
else{
	if(r12 >41) //_LBB800_22
{
	if(r12 ==42) //_LBB800_46
{
	r6 = (r6 + 1)|0;
	r8 = 1;
continue _8;
}
else{
	r5 = (r12 + -48)|0;
	if(uint(r5) <uint(10)) //_LBB800_57
{
	r5 = sp + -8;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	strtol(i7);
	r5 = r_g0;
	r6 = heap32[(fp+-2)];
	r7 = 1;
continue _8;
}
else{
__label__ = 23;
break _8;
}
}
}
else{
__label__ = 19;
break _8;
}
}
}
	r6 = (r6 + 1)|0;
	r11 = 1;
}
_36: do {
switch(__label__ ){//multiple entries
case 40:
	if(r12 ==115) //_LBB800_165
{
	r8 = r8 & 255;
if(!(r8 !=0)) //_LBB800_167
{
	r3 = sp + -4;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r3 = r_g0 >> 2;
	r3 = heap32[(r3)];
	heap32[(fp+-2)] = r3;
}
	r3 = (r6 + 1)|0;
	r6 = r4 << 2;
	r7 = my_ctype;
	r6 = (r6 + r7)|0;
	r6 = heapU8[r6+4];
	r6 = r6 & 8;
_43: do {
	if(r6 ==0) //_LBB800_169
{
	r6 = r4;
}
else{
_45: while(true){
	heap32[(g0)] = r0;
	sgetc(i7);
	r6 = r_g0;
	r4 = r6 << 2;
	r4 = (r4 + r7)|0;
	r1 = (r1 + 1)|0;
	r4 = heapU8[r4+4];
	r4 = r4 & 8;
if(!(r4 !=0)) //_LBB800_170
{
break _43;
}
}
}
} while(0);
	r4 = -1;
	if(r6 ==-1) //_LBB800_186
{
continue _1;
}
else{
	r4 = r6;
_49: while(true){
	if(r4 ==-1) //_LBB800_180
{
break _49;
}
else{
	if(r5 ==0) //_LBB800_180
{
break _49;
}
else{
	r6 = r4 << 2;
	r6 = (r6 + r7)|0;
	r6 = heapU8[r6+4];
	r6 = r6 & 8;
	if(r6 ==0) //_LBB800_173
{
if(!(r8 !=0)) //_LBB800_175
{
	r6 = heap32[(fp+-2)];
	heap8[r6] = r4;
}
	if(r4 ==0) //_LBB800_180
{
break _49;
}
else{
	r4 = heap32[(fp+-2)];
	r4 = (r4 + 1)|0;
	heap32[(fp+-2)] = r4;
	heap32[(g0)] = r0;
	r1 = (r1 + 1)|0;
	r5 = (r5 + -1)|0;
	sgetc(i7);
	r4 = r_g0;
}
}
else{
break _49;
}
}
}
}
	if(r8 !=0) //_LBB800_186
{
continue _1;
}
else{
	r2 = (r2 + 1)|0;
	r5 = heap32[(fp+-2)];
	r6 = 0;
	heap8[r5] = r6;
continue _1;
}
}
}
else{
	if(r12 ==117) //_LBB800_60
{
__label__ = 53;
break _36;
}
else{
	if(r12 ==120) //_LBB800_59
{
__label__ = 52;
break _36;
}
else{
__label__ = 168;
break _1;
}
}
}
break;
case 35:
	if(r12 ==110) //_LBB800_182
{
	r3 = (r6 + 1)|0;
	r5 = r8 & 255;
	if(r5 !=0) //_LBB800_186
{
continue _1;
}
else{
	r5 = sp + -4;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r5 = r_g0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r6 = (r1 + -1)|0;
	heap32[(r5)] = r6;
continue _1;
}
}
else{
	if(r12 ==111) //_LBB800_44
{
	r13 = 8;
__label__ = 55;
break _36;
}
else{
__label__ = 168;
break _1;
}
}
break;
case 33:
	if(r12 ==105) //_LBB800_60
{
__label__ = 53;
break _36;
}
else{
__label__ = 168;
break _1;
}
break;
case 27:
	if(r12 ==99) //_LBB800_155
{
	r3 = (r6 + 1)|0;
	r6 = r8 & 255;
	if(r6 ==0) //_LBB800_157
{
	r8 = sp + -4;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r8 = r_g0 >> 2;
	r8 = heap32[(r8)];
	r2 = (r2 + 1)|0;
	heap32[(fp+-2)] = r8;
}
	r8 = r7 & 255;
	r7 = 1;
	r5 = r8 == 0 ? r7 : r5;
	if(r5 ==0) //_LBB800_186
{
continue _1;
}
else{
	if(r4 ==-1) //_LBB800_186
{
continue _1;
}
else{
	r5 = (r5 + -1)|0;
_77: while(true){
if(!(r6 !=0)) //_LBB800_163
{
	r8 = heap32[(fp+-2)];
	r7 = (r8 + 1)|0;
	heap8[r8] = r4;
	heap32[(fp+-2)] = r7;
}
	heap32[(g0)] = r0;
	r1 = (r1 + 1)|0;
	sgetc(i7);
	r4 = r_g0;
	if(r5 ==0) //_LBB800_186
{
continue _1;
}
else{
	r5 = (r5 + -1)|0;
	if(r4 !=-1) //_LBB800_161
{
continue _77;
}
else{
continue _1;
}
}
}
}
}
}
else{
	if(r12 ==100) //_LBB800_61
{
	r13 = 10;
__label__ = 55;
break _36;
}
else{
	r5 = (r12 + -101)|0;
	if(uint(r5) <uint(3)) //_LBB800_48
{
__label__ = 46;
break _36;
}
else{
__label__ = 168;
break _1;
}
}
}
break;
case 26:
	if(r12 ==88) //_LBB800_59
{
__label__ = 52;
break _36;
}
else{
__label__ = 168;
break _1;
}
break;
case 23:
	if(r12 ==69) //_LBB800_48
{
__label__ = 46;
break _36;
}
else{
__label__ = 168;
break _1;
}
break;
case 19:
	if(r12 ==0) //_LBB800_6
{
__label__ = 6;
break _1;
}
else{
	if(r12 ==37) //_LBB800_51
{
	r5 = r4 & 255;
	if(r5 !=r12) //_LBB800_187
{
__label__ = 168;
break _1;
}
else{
	heap32[(g0)] = r0;
	r1 = (r1 + 1)|0;
	r3 = (r6 + 1)|0;
	sgetc(i7);
	r4 = r_g0;
continue _1;
}
}
else{
__label__ = 168;
break _1;
}
}
break;
}
} while(0);
switch(__label__ ){//multiple entries
case 53:
	r13 = 0;
break;
case 52:
	r13 = 16;
break;
case 46:
	r5 = r4 << 2;
	r7 = my_ctype;
	r5 = (r5 + r7)|0;
	r5 = heapU8[r5+4];
	r3 = (r6 + 1)|0;
	r5 = r5 & 8;
_97: do {
if(!(r5 ==0)) //_LBB800_50
{
_98: while(true){
	heap32[(g0)] = r0;
	sgetc(i7);
	r4 = r_g0;
	r5 = r4 << 2;
	r5 = (r5 + r7)|0;
	r1 = (r1 + 1)|0;
	r5 = heapU8[r5+4];
	r5 = r5 & 8;
if(!(r5 !=0)) //_LBB800_111
{
break _97;
}
}
}
} while(0);
	if(r4 ==45) //_LBB800_114
{
	heap32[(g0)] = r0;
	r1 = (r1 + 1)|0;
	r5 = 1;
	sgetc(i7);
	r4 = r_g0;
}
else{
	r5 = 0;
}
	if(r4 ==43) //_LBB800_117
{
	heap32[(g0)] = r0;
	r1 = (r1 + 1)|0;
	sgetc(i7);
	r4 = r_g0;
}
	r6 = (r4 + -48)|0;
_108: do {
	if(uint(r6) >uint(9)) //_LBB800_120
{
	f0 =                         0;
	r6 = r1;
}
else{
	f0 =                         0;
	r6 = r1;
_111: while(true){
	r4 = (r4 + -48)|0;
	f1 =                        10;
	heap32[(g0)] = r0;
	f0 = f0*f1;
	f1 = r4; //fitod r4, f1
	sgetc(i7);
	r4 = r_g0;
	f0 = f0+f1;
	r6 = (r6 + 1)|0;
	r7 = (r4 + -48)|0;
if(!(uint(r7) <uint(10))) //_LBB800_121
{
break _108;
}
}
}
} while(0);
_114: do {
	if(r4 ==46) //_LBB800_124
{
	heap32[(g0)] = r0;
	sgetc(i7);
	r4 = r_g0;
	r1 = (r1 + 1)|0;
	r7 = (r4 + -48)|0;
	if(uint(r7) <uint(10)) //_LBB800_126
{
	r6 = (r6 + 1)|0;
	f1 =       0.10000000000000001;
_118: while(true){
	r4 = (r4 + -48)|0;
	f2 = r4; //fitod r4, f2
	heap32[(g0)] = r0;
	f2 = f2*f1;
	sgetc(i7);
	r4 = r_g0;
	f0 = f2+f0;
	f1 = f1/f3;
	r6 = (r6 + 1)|0;
	r7 = (r4 + -48)|0;
if(!(uint(r7) <uint(10))) //_LBB800_127
{
break _114;
}
}
}
else{
	r6 = (r6 + 1)|0;
}
}
} while(0);
	if(r1 ==r6) //_LBB800_73
{
__label__ = 172;
break _1;
}
else{
	r1 = r4 | 32;
_123: do {
	if(r1 ==101) //_LBB800_131
{
	heap32[(g0)] = r0;
	sgetc(i7);
	r1 = r_g0;
	if(r1 ==45) //_LBB800_135
{
	heap32[(g0)] = r0;
	f1 =       0.10000000000000001;
	sgetc(i7);
	r4 = r_g0;
}
else{
	if(r1 ==43) //_LBB800_136
{
	heap32[(g0)] = r0;
	f1 =                        10;
	sgetc(i7);
	r4 = r_g0;
}
else{
	if(r1 !=-1) //_LBB800_137
{
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	f0 =                         0;
	sputc(i7);
	r1 = r6;
break _123;
}
else{
	r1 = (r6 + 1)|0;
	f0 =                         0;
break _123;
}
}
}
	r7 = (r6 + 2)|0;
	r1 = (r4 + -48)|0;
_135: do {
	if(uint(r1) <uint(10)) //_LBB800_140
{
	r1 = (r6 + 2)|0;
	r6 = 0;
_137: while(true){
	r6 = (r6 * 10)|0;
	heap32[(g0)] = r0;
	r6 = (r4 + r6)|0;
	sgetc(i7);
	r4 = r_g0;
	r6 = (r6 + -48)|0;
	r1 = (r1 + 1)|0;
	r9 = (r4 + -48)|0;
if(!(uint(r9) <uint(10))) //_LBB800_141
{
break _135;
}
}
}
else{
	r6 = 0;
	r1 = r7;
}
} while(0);
	if(r7 ==r1) //_LBB800_73
{
__label__ = 172;
break _1;
}
else{
if(!(r6 ==0)) //_LBB800_145
{
__label__ = 130; //SET chanka
_142: while(true){
	r6 = (r6 + -1)|0;
	f0 = f0*f1;
if(!(r6 !=0)) //_LBB800_146
{
break _123;
}
}
}
}
}
else{
	r1 = r6;
}
} while(0);
	if(r5 !=0) //_LBB800_149
{
	f0 = -f0;
}
	r5 = r8 & 255;
	if(r5 !=0) //_LBB800_186
{
continue _1;
}
else{
	r5 = sp + -4;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r5 = r_g0;
	r6 = r10 & 255;
	if(r6 ==0) //_LBB800_153
{
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	f0 = f0; //fdtos f0, f0
	heapFloat[(r5)] = f0;
}
else{
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	llvm_writeDouble((r5),f0);
}
	r2 = (r2 + 1)|0;
continue _1;
}
}
break;
}
	r3 = r4 << 2;
	r14 = my_ctype;
	r3 = (r3 + r14)|0;
	r15 = heapU8[r3+4];
	r3 = (r6 + 1)|0;
	r6 = r15 & 8;
_155: do {
if(!(r6 ==0)) //_LBB800_64
{
_156: while(true){
	heap32[(g0)] = r0;
	sgetc(i7);
	r4 = r_g0;
	r6 = r4 << 2;
	r6 = (r6 + r14)|0;
	r1 = (r1 + 1)|0;
	r6 = heapU8[r6+4];
	r6 = r6 & 8;
if(!(r6 !=0)) //_LBB800_65
{
break _155;
}
}
}
} while(0);
	if(r4 ==45) //_LBB800_68
{
	heap32[(g0)] = r0;
	r1 = (r1 + 1)|0;
	r6 = 1;
	sgetc(i7);
	r4 = r_g0;
}
else{
	r6 = 0;
}
	if(r4 ==43) //_LBB800_71
{
	heap32[(g0)] = r0;
	r14 = (r1 + 1)|0;
	sgetc(i7);
	r4 = r_g0;
}
else{
	r14 = r1;
}
	if(r4 !=-1) //_LBB800_74
{
	r7 = r7 & 255;
_168: do {
	if(r7 ==0) //_LBB800_76
{
	if(r13 !=16) //_LBB800_79
{
__label__ = 68;
}
else{
	if(r4 !=48) //_LBB800_79
{
__label__ = 68;
}
else{
__label__ = 72;
}
}
_172: do {
if (__label__ == 68){
if(!(r13 !=0)) //_LBB800_82
{
	r7 = 48;
	r7 = r4 != r7;
if(!(r7 != 0)) //_LBB800_82
{
	r13 = 8;
break _172;
}
}
	r7 = 10;
	r13 = r13 != 0 ? r13 : r7;
	r1 = r14;
break _168;
}
} while(0);
	heap32[(g0)] = r0;
	sgetc(i7);
	r4 = r_g0;
	r7 = r4 | 32;
	if(r7 ==120) //_LBB800_85
{
	heap32[(g0)] = r0;
	r1 = (r14 + 2)|0;
	r13 = 16;
	sgetc(i7);
	r4 = r_g0;
}
else{
	r1 = (r14 + 1)|0;
}
}
else{
	r1 = r14;
}
} while(0);
	r7 = 0;
	r15 = r7;
	r16 = r7;
_184: while(true){
	if(r5 ==0) //_LBB800_97
{
break _184;
}
else{
	if(r4 !=-1) //_LBB800_87
{
	r17 = r4 & 255;
	r18 = r17 | 32;
	if(uint(r18) <uint(97)) //_LBB800_89
{
	r18 = 58;
	r19 = (r17 + -48)|0;
	r17 = uint(r17) < uint(r18) ? r19 : r20;
}
else{
	r17 = (r18 + -87)|0;
}
	if(uint(r17) >=uint(r13)) //_LBB800_97
{
break _184;
}
else{
	heap32[(g0)] = r15;
	heap32[(g0+1)] = r16;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r7;
	__muldi3(i7);
	r4 = r_g0;
	r18 = r_g1;
	r15 = uint(r4) >= uint(r15);
	r19 = uint(r18) >= uint(r16);
	r15 = r18 == r16 ? r15 : r19;
	if(r15 != 0) //_LBB800_93
{
	r15 = (r17 + r4)|0;
	r16 = 1;
	r17 = uint(r15) < uint(r17) ? r16 : r7;
	r4 = uint(r15) < uint(r4) ? r16 : r17;
	r16 = (r18 + r4)|0;
}
else{
	r15 = -1;
	r16 = r15;
}
	heap32[(g0)] = r0;
	r1 = (r1 + 1)|0;
	r5 = (r5 + -1)|0;
	sgetc(i7);
	r4 = r_g0;
}
}
else{
break _184;
}
}
}
	if(r14 ==r1) //_LBB800_73
{
__label__ = 172;
break _1;
}
else{
	r5 = r12 | 32;
if(!(uint(r5) >uint(111))) //_LBB800_100
{
	if(r16 >-1) //_LBB800_101
{
	r5 = 1;
	r12 = (r7 - r16)|0;
	r5 = r15 != 0 ? r5 : r7;
	r7 = (r7 - r15)|0;
	r5 = (r12 - r5)|0;
	r15 = r6 != 0 ? r7 : r15;
	r16 = r6 != 0 ? r5 : r16;
}
}
	r5 = r8 & 255;
	if(r5 !=0) //_LBB800_186
{
continue _1;
}
else{
	r5 = r11 & 255;
	if(r5 ==0) //_LBB800_105
{
	r5 = r10 & 255;
	if(r5 ==0) //_LBB800_107
{
	r5 = sp + -4;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r5 = r_g0;
	r7 = r9 & 255;
	if(r7 ==0) //_LBB800_109
{
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	heap32[(r5)] = r15;
}
else{
	r5 = r5 >> 2;
	r5 = heap32[(r5)];
	heap16[(r5)>>1] = r15;
}
}
else{
	r5 = sp + -4;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r5 = r_g0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	heap32[(r5)] = r15;
}
}
else{
	r5 = sp + -4;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r5 = r_g0 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	heap32[(r5)] = r15;
	heap32[(r5+1)] = r16;
}
	r5 = uint(r14) < uint(r1);
	r5 = r5 & 1;
	r2 = (r5 + r2)|0;
continue _1;
}
}
}
else{
__label__ = 172;
break _1;
}
}
else{
__label__ = 165;
}
}
}
else{
	if(r5 ==0) //_LBB800_6
{
__label__ = 6;
break _1;
}
else{
	r7 = (r5 + -9)|0;
	if(uint(r7) <uint(5)) //_LBB800_7
{
__label__ = 7;
}
else{
__label__ = 165;
}
}
}
switch(__label__ ){//multiple entries
case 7:
	r3 = (r3 + 1)|0;
_218: while(true){
	r5 = heapU8[r3];
	if(r5 ==0) //_LBB800_13
{
break _218;
}
else{
	r5 = r5 << 24;
	r5 = r5 >> 24;
	r5 = r5 << 2;
	r6 = my_ctype;
	r5 = (r5 + r6)|0;
	r5 = heapU8[r5+4];
	r5 = r5 & 8;
	if(r5 ==0) //_LBB800_13
{
break _218;
}
else{
	r3 = (r3 + 1)|0;
}
}
}
	r6 = r4 << 2;
	r5 = my_ctype;
	r6 = (r6 + r5)|0;
	r6 = heapU8[r6+4];
	r6 = r6 & 8;
	if(r6 ==0) //_LBB800_186
{
continue _1;
}
else{
__label__ = 12; //SET chanka
_223: while(true){
	heap32[(g0)] = r0;
	sgetc(i7);
	r4 = r_g0;
	r6 = r4 << 2;
	r6 = (r6 + r5)|0;
	r1 = (r1 + 1)|0;
	r6 = heapU8[r6+4];
	r6 = r6 & 8;
	if(r6 ==0) //_LBB800_186
{
continue _1;
}
}
}
break;
case 165:
	r3 = r4 & 255;
	if(r3 !=r5) //_LBB800_187
{
__label__ = 168;
break _1;
}
else{
	heap32[(g0)] = r0;
	r1 = (r1 + 1)|0;
	sgetc(i7);
	r4 = r_g0;
	r3 = r6;
continue _1;
}
break;
}
}
else{
__label__ = 168;
break _1;
}
}
_227: do {
switch(__label__ ){//multiple entries
case 168:
if(!(r4 >-1)) //_LBB800_190
{
if(!(r2 !=0)) //_LBB800_190
{
	r2 = -1;
break _227;
}
}
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	sputc(i7);
break;
case 6:
	r2 = 0;
break;
}
} while(0);
	r_g0 = r2;
	return;
}

function __v_printf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
	var f0;
	var f1;
var __label__ = 0;
	i7 = sp + -184;var g0 = i7>>2; // save stack
	r0 = sp + -136;
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+1)];
	r0 = (r0 + 1)|0;
	heap32[(fp+-1)] = r1;
	heap32[(fp+-2)] = 0;
_1: while(true){
	r4 = heapU8[r3];
	if(r4 ==0) //_LBB801_209
{
__label__ = 197;
break _1;
}
else{
	r1 = 0;
	r5 = r4;
_4: while(true){
	r5 = r5 & 255;
	if(r5 ==0) //_LBB801_4
{
break _4;
}
else{
	if(r5 !=37) //_LBB801_1
{
	r5 = (r3 - r1)|0;
	r5 = heapU8[r5+1];
	r1 = (r1 + -1)|0;
}
else{
break _4;
}
}
}
	r5 = 0;
	if(r1 !=0) //_LBB801_6
{
	r4 = (r5 - r1)|0;
	if(r4 <0) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r6 = heap32[(fp+-2)];
	r7 = (r6 - r1)|0;
	if(uint(r7) <uint(r6)) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r6 = (r3 - r1)|0;
	r7 = r2 >> 2;
	r8 = heap32[(r7+1)];
	r7 = heap32[(r7)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r7;
	__FUNCTION_TABLE__[(r8)>>2](i7);
	r4 = heap32[(fp+-2)];
	r4 = (r4 - r1)|0;
	r1 = (r3 - r1)|0;
	heap32[(fp+-2)] = r4;
	r4 = heapU8[r1];
	r3 = r6;
}
}
}
	r1 = r4 & 255;
	if(r1 !=37) //_LBB801_207
{
continue _1;
}
else{
	r3 = (r3 + 1)|0;
	r1 = 32;
	r4 = r5;
	r6 = r5;
	r7 = r5;
	r8 = r5;
	r9 = r5;
	r10 = r5;
	r11 = r5;
_15: while(true){
	r12 = r4;
	r13 = r3;
	r14 = heapU8[r13];
	r3 = (r13 + 1)|0;
	heap8[sp+-145] = r14;
_17: do {
	if(r14 >99) //_LBB801_29
{
	if(r14 >110) //_LBB801_37
{
	if(r14 >114) //_LBB801_41
{
	if(r14 >119) //_LBB801_44
{
	if(r14 ==122) //_LBB801_47
{
__label__ = 50;
break _17;
}
else{
__label__ = 44;
break _15;
}
}
else{
__label__ = 41;
break _15;
}
}
else{
	if(r14 ==111) //_LBB801_105
{
__label__ = 99;
break _15;
}
else{
	if(r14 ==112) //_LBB801_97
{
__label__ = 91;
break _15;
}
else{
	if(r14 ==113) //_LBB801_53
{
__label__ = 49;
break _17;
}
else{
continue _1;
}
}
}
}
}
else{
	if(r14 >104) //_LBB801_34
{
	if(r14 ==105) //_LBB801_108
{
__label__ = 102;
break _15;
}
else{
	if(r14 ==106) //_LBB801_53
{
__label__ = 49;
break _17;
}
else{
	if(r14 ==108) //_LBB801_47
{
__label__ = 50;
break _17;
}
else{
continue _1;
}
}
}
}
else{
	if(r14 ==100) //_LBB801_108
{
__label__ = 102;
break _15;
}
else{
	r4 = (r14 + -102)|0;
	if(uint(r4) <uint(2)) //_LBB801_135
{
__label__ = 129;
break _15;
}
else{
	if(r14 ==104) //_LBB801_48
{
__label__ = 48;
break _17;
}
else{
continue _1;
}
}
}
}
}
}
else{
	if(r14 >44) //_LBB801_20
{
	if(r14 >75) //_LBB801_24
{
	if(r14 >97) //_LBB801_27
{
__label__ = 26;
break _15;
}
else{
	if(r14 ==76) //_LBB801_53
{
__label__ = 49;
break _17;
}
else{
__label__ = 25;
break _15;
}
}
}
else{
	r4 = 1;
	if(r14 ==45) //_LBB801_11
{
continue _15;
}
else{
	if(r14 ==46) //_LBB801_61
{
	r4 = heapU8[r3];
	if(r4 !=42) //_LBB801_63
{
	r4 = sp + -144;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	strtol(i7);
	r14 = 0;
	r11 = r_g0 < 0 ? r14 : r_g0;
	r3 = heap32[(fp+-36)];
}
else{
	r4 = sp + -4;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r4 = r_g0 >> 2;
	r4 = heap32[(r4)];
	r14 = 0;
	r11 = r4 < 0 ? r14 : r4;
	r3 = (r13 + 2)|0;
}
	r8 = 1;
	r4 = r12;
	if(uint(r11) >uint(10240)) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
continue _15;
}
}
else{
	r4 = (r14 + -48)|0;
	if(uint(r4) <uint(10)) //_LBB801_57
{
	r4 = r8 & 255;
	if(r4 !=0) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r4 = sp + -144;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r4;
	strtoul(i7);
	r10 = r_g0;
	if(uint(r10) >uint(10240)) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r8 = 0;
	r4 = r12 & 255;
	r13 = heapU8[sp+-145];
	r14 = 48;
	r13 = r13 == r14;
	r4 = r4 == r8;
	r4 = r13 & r4;
	r1 = r4 != 0 ? r14 : r1;
	r3 = heap32[(fp+-36)];
	r4 = r12;
continue _15;
}
}
}
else{
continue _1;
}
}
}
}
}
else{
	if(r14 >36) //_LBB801_17
{
	if(r14 ==37) //_LBB801_66
{
__label__ = 62;
break _15;
}
else{
	if(r14 ==42) //_LBB801_60
{
	r4 = sp + -4;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r4 = r_g0 >> 2;
	r4 = heap32[(r4)];
	r13 = r4 >> 31;
	r14 = (r4 + r13)|0;
	r15 = 1;
	r10 = r14 ^ r13;
	r4 = r4 < 0 ? r15 : r12;
	if(uint(r10) >uint(10240)) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
continue _15;
}
}
else{
	if(r14 ==43) //_LBB801_56
{
	r7 = 1;
	r4 = r12;
continue _15;
}
else{
continue _1;
}
}
}
}
else{
	if(r14 ==0) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	if(r14 ==32) //_LBB801_55
{
	r6 = 1;
	r4 = r12;
continue _15;
}
else{
	if(r14 ==35) //_LBB801_51
{
	r5 = 255;
__label__ = 48;
}
else{
continue _1;
}
}
}
}
}
}
} while(0);
switch(__label__ ){//multiple entries
case 49:
	r9 = (r9 + 1)|0;
break;
case 48:
	r9 = (r9 + -1)|0;
	r4 = r12;
continue _15;
break;
}
	r9 = (r9 + 1)|0;
	r4 = r12;
}
_71: do {
switch(__label__ ){//multiple entries
case 26:
	if(r14 ==98) //_LBB801_49
{
	r4 = 0;
	r13 = 2;
	r14 = r4;
	r15 = r4;
__label__ = 104;
break _71;
}
else{
	if(r14 ==99) //_LBB801_65
{
	r1 = sp + -4;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r1 = r_g0 >> 2;
	r1 = heap32[(r1)];
	heap8[sp+-145] = r1;
__label__ = 62;
break _71;
}
else{
continue _1;
}
}
break;
case 25:
	if(r14 ==88) //_LBB801_50
{
__label__ = 92;
break _71;
}
else{
continue _1;
}
break;
case 44:
	if(r14 !=120) //_LBB801_207
{
continue _1;
}
else{
	r4 = 0;
__label__ = 93;
break _71;
}
break;
case 41:
	if(r14 ==115) //_LBB801_68
{
	r1 = sp + -4;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r1 = r_g0 >> 2;
	r4 = _2E_str38684;
	r1 = heap32[(r1)];
	r1 = r1 == 0 ? r4 : r1;
	heap32[(fp+-36)] = r1;
	r4 = heapU8[r1];
_83: do {
	if(r4 !=0) //_LBB801_70
{
	r4 = (r1 + 1)|0;
	r14 = 0;
_85: while(true){
	r1 = (r14 + 1)|0;
	r6 = heapU8[r4+r14];
	r14 = r1;
if(!(r6 !=0)) //_LBB801_71
{
break _83;
}
}
}
else{
	r1 = 0;
}
} while(0);
	r16 = 0;
	r4 = r8 & 255;
	r4 = r4 != r16;
	r14 = uint(r1) > uint(r11);
	r4 = r4 & r14;
	r14 = 32;
	r4 = r4 != 0 ? r11 : r1;
	r1 = r14;
	r8 = r16;
	r11 = r16;
__label__ = 69;
break _71;
}
else{
	if(r14 ==117) //_LBB801_109
{
	r4 = 0;
	r13 = 10;
	r14 = r4;
	r15 = r4;
__label__ = 104;
break _71;
}
else{
continue _1;
}
}
break;
case 99:
	r4 = r5 & 255;
	if(r4 !=0) //_LBB801_107
{
	r5 = 1;
	r4 = 0;
	r13 = 8;
	r14 = 48;
	heap8[sp+-135] = r14;
	r14 = r4;
	r15 = r5;
__label__ = 104;
break _71;
}
else{
	r4 = 0;
	r13 = 8;
	r14 = r4;
	r5 = r4;
	r15 = r4;
__label__ = 104;
break _71;
}
break;
case 91:
	r14 = 120;
	r5 = 2;
	r9 = 1;
	heap8[sp+-145] = r14;
__label__ = 92;
break _71;
break;
case 102:
	r4 = 0;
	r14 = 1;
	r13 = 10;
	r15 = r4;
__label__ = 104;
break _71;
break;
case 129:
	r4 = sp + -4;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 8;
	my_arg_test(i7);
	f0 = llvm_readDouble((r_g0));
	heap32[(fp+-36)] = r0;
	r4 = 103;
	r4 = r14 == r4;
	r8 = r8 & 255;
	r16 = 1;
	r9 = 6;
	r10 = r10 == 0 ? r16 : r10;
	r11 = r8 == 0 ? r9 : r11;
	r4 = r4 & 1;
	f1 =                         0;
	r9 = r7 & 255;
	r13 = 0;
	llvm_writeDouble((i7),f0);
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = 127;
	heap32[(g0+4)] = r10;
	heap32[(g0+5)] = r11;
	heap32[(g0+6)] = r4;
	r4 = r9 != r13;
	r16 = f0 < f1;
	r4 = r4 | r16;
	r16 = r4 & 1;
	__dtostr(i7);
	r4 = r_g0;
_98: do {
	if(r8 !=0) //_LBB801_137
{
	r8 = heap32[(fp+-36)];
	r15 = r13;
_100: while(true){
	r17 = heapU8[r8+r13];
	if(r17 ==0) //_LBB801_161
{
__label__ = 151;
break _100;
}
else{
	r18 = (r8 + r13)|0;
	if(r17 ==46) //_LBB801_149
{
__label__ = 142;
break _100;
}
else{
	r17 = heapU8[r18+1];
	if(r17 ==0) //_LBB801_161
{
__label__ = 151;
break _100;
}
else{
	r19 = r15 << 2;
	if(r17 !=46) //_LBB801_143
{
	r17 = heapU8[r18+2];
	if(r17 ==0) //_LBB801_161
{
__label__ = 151;
break _100;
}
else{
	if(r17 !=46) //_LBB801_146
{
	r17 = heapU8[r18+3];
	if(r17 ==0) //_LBB801_161
{
__label__ = 151;
break _100;
}
else{
	if(r17 ==46) //_LBB801_151
{
__label__ = 143;
break _100;
}
else{
	r15 = (r15 + 1)|0;
	r13 = (r13 + 4)|0;
}
}
}
else{
__label__ = 138;
break _100;
}
}
}
else{
__label__ = 135;
break _100;
}
}
}
}
}
_110: do {
switch(__label__ ){//multiple entries
case 142:
	if(r18 ==0) //_LBB801_161
{
__label__ = 151;
break _110;
}
else{
__label__ = 144;
break _110;
}
break;
case 143:
	r18 = (r18 + 3)|0;
__label__ = 144;
break _110;
break;
case 138:
	r4 = r19 | 2;
	r18 = (r8 + r4)|0;
__label__ = 144;
break _110;
break;
case 135:
	r4 = r19 | 1;
	r18 = (r8 + r4)|0;
__label__ = 144;
break;
}
} while(0);
switch(__label__ ){//multiple entries
case 151:
	r5 = r5 & 255;
	if(r5 ==0) //_LBB801_136
{
break _98;
}
else{
	r5 = 46;
	heap8[r8+r4] = r5;
	r5 = heap32[(fp+-36)];
	r4 = (r4 + r5)|0;
	r5 = 0;
	heap8[r4+1] = r5;
}
break;
case 144:
	if(r11 !=0) //_LBB801_155
{
__label__ = 146;
}
else{
	r4 = r5 & 255;
	if(r4 !=0) //_LBB801_155
{
__label__ = 146;
}
else{
__label__ = 147;
}
}
if (__label__ == 146){
	r18 = (r18 + 1)|0;
}
_123: while(true){
	r4 = r11;
	if(r4 !=0) //_LBB801_158
{
	r11 = (r4 + -1)|0;
	r5 = (r18 + 1)|0;
	r8 = heapU8[r18+1];
	r18 = r5;
	if(r8 !=0) //_LBB801_156
{
__label__ = 147;
}
else{
__label__ = 149;
break _123;
}
}
else{
__label__ = 150;
break _123;
}
}
if (__label__ == 149){
	r18 = r5;
}
	r5 = 0;
	heap8[r18] = r5;
	r11 = r4;
break;
}
}
} while(0);
_130: do {
if(!(r14 !=103)) //_LBB801_199
{
	r4 = heap32[(fp+-36)];
	r5 = 0;
	r8 = r5;
_132: while(true){
	r14 = heapU8[r4+r5];
	if(r14 ==0) //_LBB801_199
{
break _130;
}
else{
	r13 = (r4 + r5)|0;
	if(r14 ==46) //_LBB801_176
{
__label__ = 166;
break _132;
}
else{
	r14 = heapU8[r13+1];
	if(r14 ==0) //_LBB801_199
{
break _130;
}
else{
	r15 = r8 << 2;
	if(r14 !=46) //_LBB801_170
{
	r14 = heapU8[r13+2];
	if(r14 ==0) //_LBB801_199
{
break _130;
}
else{
	if(r14 !=46) //_LBB801_173
{
	r14 = heapU8[r13+3];
	if(r14 ==0) //_LBB801_199
{
break _130;
}
else{
	if(r14 ==46) //_LBB801_178
{
__label__ = 167;
break _132;
}
else{
	r8 = (r8 + 1)|0;
	r5 = (r5 + 4)|0;
}
}
}
else{
__label__ = 162;
break _132;
}
}
}
else{
__label__ = 159;
break _132;
}
}
}
}
}
switch(__label__ ){//multiple entries
case 166:
	if(r13 ==0) //_LBB801_199
{
break _130;
}
break;
case 167:
	r13 = (r13 + 3)|0;
break;
case 162:
	r5 = r15 | 2;
	r13 = (r4 + r5)|0;
break;
case 159:
	r5 = r15 | 1;
	r13 = (r4 + r5)|0;
break;
}
	r4 = 0;
	r5 = r13;
_148: while(true){
	r8 = heapU8[r5];
	if(r8 !=101) //_LBB801_182
{
	if(r8 !=0) //_LBB801_184
{
	r8 = r4 << 2;
	r14 = heapU8[r5+1];
	if(r14 !=101) //_LBB801_186
{
	if(r14 ==0) //_LBB801_183
{
__label__ = 171;
break _148;
}
else{
	r14 = heapU8[r5+2];
	if(r14 !=101) //_LBB801_189
{
	if(r14 ==0) //_LBB801_183
{
__label__ = 171;
break _148;
}
else{
	r14 = heapU8[r5+3];
	if(r14 !=101) //_LBB801_192
{
	if(r14 ==0) //_LBB801_183
{
__label__ = 171;
break _148;
}
else{
	r4 = (r4 + 1)|0;
	r5 = (r5 + 4)|0;
}
}
else{
__label__ = 179;
break _148;
}
}
}
else{
__label__ = 176;
break _148;
}
}
}
else{
__label__ = 173;
break _148;
}
}
else{
__label__ = 171;
break _148;
}
}
else{
__label__ = 182;
break _148;
}
}
switch(__label__ ){//multiple entries
case 171:
	r5 = 0;
break;
case 179:
	r4 = r8 | 3;
	r5 = (r13 + r4)|0;
break;
case 176:
	r4 = r8 | 2;
	r5 = (r13 + r4)|0;
break;
case 173:
	r4 = r8 | 1;
	r5 = (r13 + r4)|0;
break;
}
_163: while(true){
	r4 = (r13 + 1)|0;
	r8 = heapU8[r13+1];
	r13 = r4;
if(!(r8 !=0)) //_LBB801_194
{
break _163;
}
}
	r4 = r5 == 0 ? r4 : r5;
_166: while(true){
	r8 = heapU8[r4+-1];
	r4 = (r4 + -1)|0;
if(!(r8 ==48)) //_LBB801_196
{
break _166;
}
}
	r14 = (r4 + 1)|0;
	r4 = r8 == 46 ? r4 : r14;
	r8 = 0;
	heap8[r4] = r8;
if(!(r5 ==0)) //_LBB801_199
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	strcpy(i7);
}
}
} while(0);
	r4 = r7 | r6;
	r4 = r4 & 255;
if(!(r4 ==0)) //_LBB801_202
{
if(!(f0 <f1)) //_LBB801_202
{
	r4 = heap32[(fp+-36)];
	r5 = (r4 + -1)|0;
	r8 = 32;
	r14 = 43;
	r8 = r9 == 0 ? r8 : r14;
	heap32[(fp+-36)] = r5;
	heap8[r4+-1] = r8;
}
}
	r4 = heap32[(fp+-36)];
	r5 = heapU8[r4];
_175: do {
	if(r5 !=0) //_LBB801_204
{
	r5 = (r4 + 1)|0;
	r8 = 0;
_177: while(true){
	r4 = (r8 + 1)|0;
	r14 = heapU8[r5+r8];
	r8 = r4;
if(!(r14 !=0)) //_LBB801_205
{
break _175;
}
}
}
else{
	r4 = 0;
}
} while(0);
	r10 = uint(r10) < uint(r4) ? r4 : r10;
	r14 = 48;
	r5 = 0;
	r8 = r5;
__label__ = 69;
break;
}
} while(0);
switch(__label__ ){//multiple entries
case 62:
	r1 = heap32[(fp+-2)];
	if(r1 ==-1) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r1 = r2 >> 2;
	r4 = heap32[(r1+1)];
	r1 = heap32[(r1)];
	r5 = sp + -145;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 1;
	heap32[(g0+2)] = r1;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r1 = heap32[(fp+-2)];
	r1 = (r1 + 1)|0;
	heap32[(fp+-2)] = r1;
continue _1;
}
break;
case 92:
	r4 = r14 & 255;
	r13 = 88;
	r4 = r4 == r13;
	r4 = r4 & 1;
__label__ = 93;
break;
}
if (__label__ == 93){
	r5 = r5 & 255;
	if(r5 !=0) //_LBB801_101
{
	r13 = 48;
	r5 = 2;
	heap8[sp+-135] = r13;
	heap8[sp+-134] = r14;
	r15 = r5;
}
else{
	r5 = 0;
	r15 = r5;
}
	if(uint(r11) >uint(r10)) //_LBB801_104
{
	r14 = 0;
	r13 = 16;
	r10 = r11;
__label__ = 104;
}
else{
	r14 = 0;
	r13 = 16;
__label__ = 104;
}
}
_194: do {
if (__label__ == 104){
	heap32[(fp+-36)] = r0;
	r16 = sp + -4;
	heap32[(g0)] = r16;
	heap32[(g0+1)] = 4;
	my_arg_test(i7);
	r17 = r_g0 >> 2;
	r18 = r14 & 255;
	r16 = 0;
	r17 = heap32[(r17)];
	r18 = r18 != r16;
	r19 = r17 < r16;
	r20 = (r16 - r17)|0;
	r18 = r18 & r19;
	r9 = r9 << 24;
	r17 = r18 != 0 ? r20 : r17;
	r9 = r9 >> 24;
	r19 = r17 & 65535;
	r17 = r9 < 0 ? r19 : r17;
	r19 = heap32[(fp+-36)];
	r20 = r17 & 255;
	r21 = 2;
	r9 = r9 < -1 ? r20 : r17;
	r17 = r18 != 0 ? r21 : r14;
	r14 = (r19 + r15)|0;
	heap8[r14+122] = r16;
	if(r9 !=0) //_LBB801_112
{
	r18 = (r13 + -1)|0;
	r19 = 35;
	r20 = 10;
	r18 = uint(r18) > uint(r19) ? r20 : r13;
	r4 = r4 & 255;
	r13 = 39;
	r19 = 7;
	r4 = r4 == 0 ? r13 : r19;
	r19 = (r15 + 121)|0;
	r20 = -122;
_198: while(true){
	r13 = Math.floor(uint(r9) % uint(r18));
	r13 = (r13 + 48)|0;
	r22 = r13 & 255;
	r23 = 57;
	r22 = uint(r22) > uint(r23) ? r4 : r16;
	r23 = (r20 + 1)|0;
	r13 = (r13 + r22)|0;
	r20 = (r14 - r20)|0;
	heap8[r20+-1] = r13;
	if(r19 <=r15) //_LBB801_115
{
break _198;
}
else{
	r9 = Math.floor(uint(r9) /uint(r18));
	r19 = (r19 + -1)|0;
	r20 = r23;
if(!(r9 !=0)) //_LBB801_113
{
break _198;
}
}
}
	r18 = (r23 + 122)|0;
	r9 = (r14 - r23)|0;
}
else{
	r4 = (r15 + r19)|0;
	r13 = 48;
	r9 = (r4 + 121)|0;
	r18 = 1;
	heap8[r4+121] = r13;
}
_204: do {
if(!(r9 ==r14)) //_LBB801_125
{
	if(uint(r9) <=uint(r14)) //_LBB801_122
{
if(!(r18 ==-1)) //_LBB801_125
{
	r4 = (r16 - r18)|0;
_209: while(true){
	r13 = r4;
	r19 = (r9 - r13)|0;
	r4 = (r13 + 1)|0;
	r20 = (r14 - r13)|0;
	r19 = heapU8[r19];
	heap8[r20] = r19;
if(!(r13 !=0)) //_LBB801_124
{
break _204;
}
}
}
}
else{
if(!(r18 ==-1)) //_LBB801_125
{
	r4 = (r9 + 1)|0;
	r9 = r18;
_213: while(true){
	heap8[r14] = r13;
	if(r9 ==0) //_LBB801_125
{
break _204;
}
else{
	r13 = heapU8[r4];
	r4 = (r4 + 1)|0;
	r9 = (r9 + -1)|0;
	r14 = (r14 + 1)|0;
}
}
}
}
}
} while(0);
	r4 = 1;
	r4 = r18 != r4;
	r4 = r4 & 1;
	r14 = r8 ^ 1;
	r4 = r4 | r14;
	r4 = r4 & 255;
	if(r4 !=0) //_LBB801_128
{
__label__ = 122;
}
else{
	r4 = heap32[(fp+-36)];
	r4 = heapU8[r4+r15];
	if(r4 !=48) //_LBB801_128
{
__label__ = 122;
}
else{
	r4 = r5 << 24;
	r5 = 0;
	r4 = r4 >> 24;
	r14 = r11 == r5;
	r4 = r4 > r5;
	r4 = r14 | r4;
	r4 = r4 != 0 ? r5 : r15;
__label__ = 123;
}
}
if (__label__ == 122){
	r4 = (r18 + r15)|0;
}
	r14 = r17 & 255;
	if(r14 ==2) //_LBB801_132
{
	r6 = heap32[(fp+-36)];
	r7 = (r6 + -1)|0;
	r4 = (r4 + 1)|0;
	r14 = 48;
	r16 = 45;
	heap32[(fp+-36)] = r7;
	heap8[r6+-1] = r16;
	r16 = r21;
}
else{
	if(r14 !=0) //_LBB801_133
{
	r14 = r7 | r6;
	r14 = r14 & 255;
if(!(r14 ==0)) //_LBB801_131
{
	r6 = heap32[(fp+-36)];
	r16 = (r6 + -1)|0;
	r7 = r7 & 255;
	r9 = 32;
	r13 = 43;
	r4 = (r4 + 1)|0;
	r14 = 48;
	r7 = r7 == 0 ? r9 : r13;
	heap32[(fp+-36)] = r16;
	heap8[r6+-1] = r7;
	r16 = r17;
break _194;
}
}
	r14 = 48;
}
}
} while(0);
	r6 = heap32[(fp+-36)];
	r7 = r11 | r10;
	if(r7 !=0) //_LBB801_77
{
	r7 = 0;
	r5 = r5 << 24;
	r5 = r5 >> 24;
	if(r5 <1) //_LBB801_79
{
	r9 = r16 & 255;
	r5 = r9 != r7;
	r5 = r5 & 1;
	if(r9 !=0) //_LBB801_81
{
__label__ = 75;
}
else{
__label__ = 76;
}
}
else{
__label__ = 75;
}
if (__label__ == 75){
	r4 = (r4 - r5)|0;
	r10 = (r10 - r5)|0;
	r9 = (r6 + r5)|0;
	heap32[(fp+-36)] = r9;
}
	r8 = r8 & 255;
	r9 = r8 != r7;
	r7 = r10 == r7;
	r7 = r9 & r7;
	r7 = r7 != 0 ? r11 : r10;
	r8 = r8 == 0 ? r4 : r11;
	r9 = r12 & 255;
if(!(r9 !=0)) //_LBB801_85
{
	r10 = r1 & 255;
if(!(r10 !=32)) //_LBB801_85
{
	r11 = sp + -8;
	r12 = (r7 - r8)|0;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r12;
	heap32[(g0+3)] = r10;
	write_pad(i7);
	r10 = r_g0;
	if(r10 !=0) //_LBB801_210
{
__label__ = 198;
break _1;
}
}
}
if(!(r5 ==0)) //_LBB801_89
{
	if(r5 <0) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r10 = heap32[(fp+-2)];
	r11 = (r10 + r5)|0;
	if(uint(r11) <uint(r10)) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r10 = r2 >> 2;
	r11 = heap32[(r10+1)];
	r10 = heap32[(r10)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r10;
	__FUNCTION_TABLE__[(r11)>>2](i7);
	r6 = heap32[(fp+-2)];
	r5 = (r6 + r5)|0;
	heap32[(fp+-2)] = r5;
}
}
}
if(!(r9 !=0)) //_LBB801_92
{
	r5 = r1 & 255;
if(!(r5 ==32)) //_LBB801_92
{
	r6 = sp + -8;
	r10 = (r7 - r8)|0;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r5;
	write_pad(i7);
	r5 = r_g0;
	if(r5 !=0) //_LBB801_210
{
__label__ = 198;
break _1;
}
}
}
	r5 = sp + -8;
	r6 = (r8 - r4)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r14;
	write_pad(i7);
	r14 = r_g0;
	if(r14 !=0) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	if(r4 <0) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r14 = heap32[(fp+-2)];
	r6 = (r14 + r4)|0;
	if(uint(r6) <uint(r14)) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r14 = r2 >> 2;
	r6 = heap32[(r14+1)];
	r14 = heap32[(r14)];
	r10 = heap32[(fp+-36)];
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r14;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r14 = heap32[(fp+-2)];
	r4 = (r14 + r4)|0;
	heap32[(fp+-2)] = r4;
	if(r9 ==0) //_LBB801_207
{
continue _1;
}
else{
	r4 = (r7 - r8)|0;
	r14 = r1 & 255;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r14;
	write_pad(i7);
	r4 = r_g0;
	if(r4 ==0) //_LBB801_207
{
continue _1;
}
else{
__label__ = 198;
break _1;
}
}
}
}
}
}
else{
	if(r4 <0) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r14 = heap32[(fp+-2)];
	r1 = (r14 + r4)|0;
	if(uint(r1) <uint(r14)) //_LBB801_210
{
__label__ = 198;
break _1;
}
else{
	r14 = r2 >> 2;
	r1 = heap32[(r14+1)];
	r14 = heap32[(r14)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r14;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r14 = heap32[(fp+-2)];
	r4 = (r14 + r4)|0;
	heap32[(fp+-2)] = r4;
continue _1;
}
}
}
}
}
}
switch(__label__ ){//multiple entries
case 197:
	r0 = heap32[(fp+-2)];
	r_g0 = r0;
	return;
break;
case 198:
	r0 = -1;
	r_g0 = r0;
	return;
break;
}
}

function fprintf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = sp + -8;
	r1 = r0 >> 2;
	r2 = __fwrite__index__;
	heap32[(fp+-3)] = sp;
	heap32[(r1+1)] = r2;
	heap32[(fp+-2)] = 3;
	r1 = _2E_str3133;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = sp;
	__v_printf(i7);
	return;
}

function vsnprintf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = sp + -16;
	r1 = heap32[(fp+1)];
	r2 = r0 >> 2;
	r3 = heap32[(fp)];
	heap32[(r2+1)] = 0;
	r4 = (r1 + -1)|0;
	r5 = 0;
	r6 = sp + -24;
	r7 = r1 == 0 ? r5 : r4;
	heap32[(fp+-4)] = r3;
	r8 = r6 >> 2;
	r9 = swrite__index__;
	heap32[(r2+2)] = r7;
	heap32[(r8+1)] = r9;
	heap32[(fp+-6)] = r0;
	r0 = heap32[(fp+2)];
	r2 = heap32[(fp+3)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	__v_printf(i7);
	r0 = r_g0;
if(!(r3 ==0)) //_LBB803_7
{
if(!(r1 ==0)) //_LBB803_7
{
if(!(r0 <0)) //_LBB803_7
{
if(!(r1 ==-1)) //_LBB803_6
{
if(!(uint(r0) <uint(r1))) //_LBB803_6
{
	heap8[r3+r4] = r5;
	r_g0 = r0;
	return;
}
}
	heap8[r3+r0] = r5;
}
}
}
	r_g0 = r0;
	return;
}

function sprintf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -48;var g0 = i7>>2; // save stack
	r0 = (sp + 8)|0;
	r1 = sp + -16;
	r2 = r1 >> 2;
	heap32[(fp+-7)] = r0;
	r3 = heap32[(fp)];
	heap32[(r2+1)] = 0;
	r4 = sp + -24;
	heap32[(fp+-4)] = r3;
	r5 = r4 >> 2;
	r6 = swrite__index__;
	heap32[(r2+2)] = -2;
	heap32[(r5+1)] = r6;
	heap32[(fp+-6)] = r1;
	r1 = heap32[(fp+1)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r0;
	__v_printf(i7);
	r0 = r_g0;
if(!(r3 ==0)) //_LBB804_3
{
if(!(r0 <0)) //_LBB804_3
{
	r1 = 0;
	heap8[r3+r0] = r1;
}
}
	r_g0 = r0;
	return;
}

function _ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = (r0 + 2)|0;
	r2 = heap32[(fp+4)];
	r1 = Math.floor(uint(r1) / uint(3));
	r3 = heap32[(fp+2)];
	r1 = r1 << 2;
	r4 = r2 >> 2;
	heap32[(r4)] = 0;
_1: do {
if(!(r3 ==0)) //_LBB805_20
{
	r5 = heap32[(fp+3)];
	if(uint(r1) <=uint(r5)) //_LBB805_3
{
	r4 = heap32[(fp)];
	if(uint(r0) >uint(2)) //_LBB805_5
{
	r5 = (r3 + r5)|0;
	r6 = 0;
	r12 = _ZN12mandreel_b64L9b64_charsE;
_7: while(true){
	r7 = heapU8[r4];
	r8 = heapU8[r4+1];
	r9 = r7 << 4;
	r10 = heapU8[r4+2];
	r11 = r8 << 2;
	r9 = r9 & 48;
	r8 = r8 >>> 4;
	r7 = r7 >>> 2;
	r8 = r9 | r8;
	r9 = r11 & 60;
	r11 = r10 >>> 6;
	r7 = heapU8[r12+r7];
	r9 = r9 | r11;
	r8 = heapU8[r12+r8];
	heap8[r3] = r7;
	r7 = r10 & 63;
	r9 = heapU8[r12+r9];
	heap8[r3+1] = r8;
	r8 = (r3 + 4)|0;
	r6 = (r6 + 4)|0;
	r7 = heapU8[r12+r7];
	heap8[r3+2] = r9;
	heap8[r3+3] = r7;
	if(r8 ==r5) //_LBB805_8
{
__label__ = 7;
}
else{
	if(r6 ==0) //_LBB805_9
{
	r7 = 13;
	r8 = (r3 + 6)|0;
	r6 = 0;
	r9 = 10;
	heap8[r3+4] = r7;
	heap8[r3+5] = r9;
	r3 = r8;
__label__ = 9;
}
else{
__label__ = 7;
}
}
if (__label__ == 7){
	r3 = r8;
}
	r0 = (r0 + -3)|0;
	r4 = (r4 + 3)|0;
if(!(uint(r0) >uint(2))) //_LBB805_6
{
break _7;
}
}
}
if(!(r0 ==0)) //_LBB805_20
{
	r5 = 0;
_17: while(true){
	r6 = sp + -3;
	r7 = (r4 - r5)|0;
	r8 = (r5 + -1)|0;
	r5 = (r6 - r5)|0;
	r7 = heapU8[r7];
	heap8[r5] = r7;
	r7 = (r0 + r8)|0;
	r5 = r8;
if(!(r7 !=0)) //_LBB805_13
{
break _17;
}
}
	if(r0 !=3) //_LBB805_16
{
	r4 = 3;
	r5 = (r4 - r0)|0;
	r8 = 0;
_22: while(true){
	r7 = (r5 + -1)|0;
	r5 = (r6 - r5)|0;
	heap8[r5+3] = r8;
	r5 = r7;
if(!(r7 !=0)) //_LBB805_17
{
break _22;
}
}
	heap32[(g0)] = r6;
	heap32[(g0+1)] = 3;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = 12;
	heap32[(g0+4)] = r2;
	r0 = (r4 - r0)|0;
	_ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7);
	r4 = 61;
_25: while(true){
	r2 = (r0 + -1)|0;
	r0 = (r3 - r0)|0;
	heap8[r0+4] = r4;
	r0 = r2;
	if(r2 !=0) //_LBB805_19
{
continue _25;
}
else{
break _1;
}
}
}
else{
	heap32[(g0)] = r6;
	heap32[(g0+1)] = 3;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = 12;
	heap32[(g0+4)] = r2;
	_ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7);
	r_g0 = r1;
	return;
}
}
}
else{
	heap32[(r4)] = 1;
	r0 = 0;
	r_g0 = r0;
	return;
}
}
} while(0);
	r_g0 = r1;
	return;
}

function _ZN12mandreel_b6410b64_decodeEPKcjPvj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = r0 & 3;
	r2 = 0;
	r1 = r1 != r2;
	r1 = r1 & 1;
	r3 = r0 >>> 2;
	r1 = (r1 + r3)|0;
	r3 = heap32[(fp+2)];
	r1 = (r1 * 3)|0;
	if(r3 !=0) //_LBB806_2
{
	r4 = heap32[(fp+3)];
	if(uint(r1) <=uint(r4)) //_LBB806_4
{
	r1 = heap32[(fp)];
	r4 = r3;
	r5 = r2;
_5: while(true){
	if(r0 !=0) //_LBB806_5
{
	r6 = heapU8[r1];
	if(r6 !=61) //_LBB806_7
{
	r7 = _ZN12mandreel_b64L11b64_indexesE;
	r6 = heapU8[r7+r6];
	if(r6 !=255) //_LBB806_9
{
	r5 = 0;
	r7 = sp + -4;
	heap8[r7+r2] = r6;
__label__ = 8;
}
else{
__label__ = 15;
}
}
else{
	r5 = (r5 + 1)|0;
	r6 = sp + -4;
	r7 = 0;
	heap8[r6+r2] = r7;
__label__ = 8;
}
if (__label__ == 8){
	r2 = (r2 + 1)|0;
	if(r2 ==4) //_LBB806_12
{
	r2 = heapU8[sp+-3];
	r6 = heapU8[sp+-4];
	r2 = r2 >>> 4;
	r2 = r2 & 3;
	r6 = r6 << 2;
	r2 = r2 | r6;
	heap8[r4] = r2;
	if(r5 !=2) //_LBB806_14
{
	r2 = heapU8[sp+-2];
	r6 = heapU8[sp+-3];
	r2 = r2 >>> 2;
	r2 = r2 & 15;
	r6 = r6 << 4;
	r2 = r2 | r6;
	heap8[r4+1] = r2;
	if(r5 !=1) //_LBB806_16
{
	r2 = heapU8[sp+-2];
	r7 = heapU8[sp+-1];
	r2 = r2 << 6;
	r6 = (r4 + 3)|0;
	r2 = (r2 + r7)|0;
	heap8[r4+2] = r2;
	if(r5 ==0) //_LBB806_18
{
	r2 = 0;
	r4 = r6;
	r5 = r2;
}
else{
__label__ = 18;
break _5;
}
}
else{
__label__ = 12;
break _5;
}
}
else{
__label__ = 10;
break _5;
}
}
}
	r0 = (r0 + -1)|0;
	r1 = (r1 + 1)|0;
}
else{
__label__ = 17;
break _5;
}
}
switch(__label__ ){//multiple entries
case 17:
	r6 = r4;
break;
case 12:
	r6 = (r4 + 2)|0;
break;
case 10:
	r6 = (r4 + 1)|0;
break;
}
	r1 = (r6 - r3)|0;
}
else{
	r1 = 0;
}
}
	r_g0 = r1;
	return;
}

function __mandreel_internal_SetResolution(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _ZL25s_mandreel_internal_width;
	r1 = _ZL26s_mandreel_internal_height;
	r0 = r0 >> 2;
	r2 = heap32[(fp)];
	r1 = r1 >> 2;
	r3 = heap32[(fp+1)];
	heap32[(r0)] = r2;
	heap32[(r1)] = r3;
	return;
}

function __keyEvent(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function __mouseDoubleClick(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function __mouseMove(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function __resize(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function __mouseButton(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function __mouseWheelDelta(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function iMandreel_TextureAsync_IsCompressed(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
var __label__ = 0;
	i7 = sp + -1032;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = sp + -1024;
	r4 = 0;
_1: while(true){
	r5 = heapU8[r0];
	if(r5 ==0) //_LBB814_5
{
break _1;
}
else{
	r6 = r5 << 24;
	r6 = r6 >> 24;
	r6 = (r6 + -65)|0;
	r7 = 26;
	r8 = (r5 + 32)|0;
	r5 = uint(r6) < uint(r7) ? r8 : r5;
	r6 = r5 & 255;
	r7 = 47;
	r5 = r6 == 92 ? r7 : r5;
	r0 = (r0 + 1)|0;
	r6 = r5 & 255;
if(!(r6 !=47)) //_LBB814_4
{
	r6 = r4 & 255;
	r4 = r5;
	if(r6 ==47) //_LBB814_1
{
continue _1;
}
}
	r4 = (r3 + 1)|0;
	heap8[r3] = r5;
	r3 = r4;
	r4 = r5;
continue _1;
}
}
	r0 = _ZL24g_pFirstTextureAsyncInfo;
	r4 = 0;
	heap8[r3] = r4;
_8: while(true){
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	if(r0 !=0) //_LBB814_6
{
	r3 = sp + -1024;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r3;
	strcmp(i7);
	r3 = r_g0;
	if(r3 !=0) //_LBB814_8
{
	r0 = (r0 + 280)|0;
continue _8;
}
else{
__label__ = 7;
break _8;
}
}
else{
__label__ = 10;
break _8;
}
}
switch(__label__ ){//multiple entries
case 10:
	r0 = -1;
	r_g0 = r0;
	return;
break;
case 7:
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r3 = heap32[(r0+65)];
	heap32[(r1)] = r3;
	r1 = r2 >> 2;
	r2 = heap32[(r0+66)];
	heap32[(r1)] = r2;
	r0 = heap32[(r0+67)];
	r_g0 = r0;
	return;
break;
}
}

function iMandreel_TextureAsync_GetPackOffset(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -1032;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+3)];
	r4 = sp + -1024;
	r5 = 0;
_1: while(true){
	r6 = heapU8[r0];
	if(r6 ==0) //_LBB815_5
{
break _1;
}
else{
	r7 = r6 << 24;
	r7 = r7 >> 24;
	r7 = (r7 + -65)|0;
	r8 = 26;
	r9 = (r6 + 32)|0;
	r6 = uint(r7) < uint(r8) ? r9 : r6;
	r7 = r6 & 255;
	r8 = 47;
	r6 = r7 == 92 ? r8 : r6;
	r0 = (r0 + 1)|0;
	r7 = r6 & 255;
if(!(r7 !=47)) //_LBB815_4
{
	r7 = r5 & 255;
	r5 = r6;
	if(r7 ==47) //_LBB815_1
{
continue _1;
}
}
	r5 = (r4 + 1)|0;
	heap8[r4] = r6;
	r4 = r5;
	r5 = r6;
continue _1;
}
}
	r0 = _ZL24g_pFirstTextureAsyncInfo;
	r5 = 0;
	heap8[r4] = r5;
_8: while(true){
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	if(r0 !=0) //_LBB815_6
{
	r4 = sp + -1024;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	strcmp(i7);
	r4 = r_g0;
if(!(r4 !=0)) //_LBB815_9
{
	r4 = r0 >> 2;
	r5 = heap32[(r4+64)];
if(!(r5 ==-1)) //_LBB815_9
{
__label__ = 8;
break _8;
}
}
	r0 = (r0 + 280)|0;
continue _8;
}
else{
__label__ = 11;
break _8;
}
}
switch(__label__ ){//multiple entries
case 11:
	r0 = 0;
	r_g0 = r0;
	return;
break;
case 8:
	r0 = r1 >> 2;
	r1 = heap32[(r4+68)];
	heap32[(r0)] = r1;
	r0 = r2 >> 2;
	r1 = heap32[(r4+69)];
	heap32[(r0)] = r1;
	r0 = heap32[(r4+64)];
	r1 = _ZL17g_apPackFileNames;
	r0 = r0 << 2;
	r0 = (r1 + r0)|0;
	r0 = r0 >> 2;
	r0 = heap32[(r0)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	strcpy(i7);
	r0 = 1;
	r_g0 = r0;
	return;
break;
}
}

function _Z31MandreelDefaultDebugMsgCallbackiPKc(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	heap32[(g0)] = r0;
	__sandbox_OutputDebugString(i7);
	return;
}

function printf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -16408;var g0 = i7>>2; // save stack
	r0 = (sp + 4)|0;
	heap32[(fp+-4097)] = r0;
	r1 = sp + -16384;
	r2 = heap32[(fp)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 16384;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r0;
	r0 = g_msgcallback;
	r0 = r0 >> 2;
	vsnprintf(i7);
	r0 = heap32[(r0)];
if(!(r0 ==0)) //_LBB817_2
{
	heap32[(g0)] = r1;
	__sandbox_OutputDebugString(i7);
}
	return;
}

function _printf_error(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -16408;var g0 = i7>>2; // save stack
	r0 = (sp + 4)|0;
	heap32[(fp+-4097)] = r0;
	r1 = sp + -16384;
	r2 = heap32[(fp)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 16384;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r0;
	r0 = g_msgcallback;
	r0 = r0 >> 2;
	vsnprintf(i7);
	r0 = heap32[(r0)];
if(!(r0 ==0)) //_LBB818_2
{
	heap32[(g0)] = r1;
	__sandbox_OutputDebugString(i7);
}
	return;
}

function _printf_warning(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -16408;var g0 = i7>>2; // save stack
	r0 = (sp + 4)|0;
	heap32[(fp+-4097)] = r0;
	r1 = sp + -16384;
	r2 = heap32[(fp)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 16384;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r0;
	r0 = g_msgcallback;
	r0 = r0 >> 2;
	vsnprintf(i7);
	r0 = heap32[(r0)];
if(!(r0 ==0)) //_LBB819_2
{
	heap32[(g0)] = r1;
	__sandbox_OutputDebugString(i7);
}
	return;
}

function __mandreel_internal_preupdate(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = sp + -8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	r1 = _ZGVZ21Mandreel_GetTickCountE7s_first;
	gettimeofday(i7);
	r2 = heapU8[r1];
if(!(r2 !=0)) //_LBB820_2
{
	r2 = heap32[(fp+-2)];
	r3 = r2 >> 31;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 1000000;
	heap32[(g0+3)] = 0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	__muldi3(i7);
	r4 = 1;
	r5 = (r_g0 + r0)|0;
	r6 = 0;
	r7 = r0 >> 31;
	r2 = uint(r5) < uint(r_g0) ? r4 : r6;
	r6 = _ZZ21Mandreel_GetTickCountE7s_first;
	r3 = (r_g1 + r7)|0;
	r0 = uint(r5) < uint(r0) ? r4 : r2;
	r2 = r6 >> 2;
	r0 = (r3 + r0)|0;
	heap32[(r2)] = r5;
	heap32[(r2+1)] = r0;
	heap8[r1] = r4;
}
	r0 = _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b;
	r1 = heapU8[r0];
if(!(r1 != 0)) //_LBB820_4
{
	r1 = 1;
	heap8[r0] = r1;
}
	return;
}

function __mandreel_internal_update(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = -32788;
_1: while(true){
	r1 = _ZL10s_aSockets;
	r1 = (r1 - r0)|0;
	r2 = heapU8[r1];
if(!(r2 ==0)) //_LBB821_3
{
	r1 = r1 >> 2;
	r1 = heap32[(r1+-1)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 2048;
	js_mandreel_flash_tcp_update(i7);
}
	r0 = (r0 + -32792)|0;
	if(r0 !=-295124) //_LBB821_1
{
continue _1;
}
else{
break _1;
}
}
	r0 = _ZL7g_bInit_2E_b;
	r1 = heapU8[r0];
	if(r1 != 0) //_LBB821_6
{
	mandreel_audio_update(i7);
	r1 = sp + -8;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	gettimeofday(i7);
	r2 = heap32[(fp+-2)];
	r3 = r2 >> 31;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 1000000;
	heap32[(g0+3)] = 0;
	r1 = r1 >> 2;
	r1 = heap32[(r1+1)];
	__muldi3(i7);
	r4 = (r_g0 + r1)|0;
	r5 = 1;
	r6 = 0;
	r7 = r1 >> 31;
	r2 = uint(r4) < uint(r_g0) ? r5 : r6;
	r3 = (r_g1 + r7)|0;
	r1 = uint(r4) < uint(r1) ? r5 : r2;
	r1 = (r3 + r1)|0;
	r2 = _ZGVZ21Mandreel_GetTickCountE7s_first;
	r3 = heapU8[r2];
if(!(r3 !=0)) //_LBB821_8
{
	r3 = _ZZ21Mandreel_GetTickCountE7s_first;
	r3 = r3 >> 2;
	heap32[(r3)] = r4;
	heap32[(r3+1)] = r1;
	heap8[r2] = r5;
}
	r2 = _ZZ21Mandreel_GetTickCountE7s_first;
	r2 = r2 >> 2;
	r3 = heap32[(r2)];
	r2 = heap32[(r2+1)];
	r1 = (r1 - r2)|0;
	r2 = uint(r4) < uint(r3) ? r5 : r6;
	r3 = (r4 - r3)|0;
	r1 = (r1 - r2)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 1000;
	heap32[(g0+3)] = 0;
	__udivdi3(i7);
	r1 = r_g0;
	r2 = _ZL11g_aChannels;
_12: while(true){
	if(r6 <32) //_LBB821_9
{
	r3 = r2 >> 2;
	r4 = heap32[(r3+72)];
if(!(r4 !=1)) //_LBB821_33
{
	r4 = _ZL11g_aChannels;
	r7 = (r6 * 292)|0;
	r4 = (r4 + r7)|0;
	r7 = heapU8[r4+268];
if(!(r7 !=0)) //_LBB821_33
{
	r7 = heap32[(r3+71)];
	if(r7 ==-1) //_LBB821_13
{
	r7 = heapU8[r0];
	if(r7 !=1) //_LBB821_15
{
__label__ = 14;
break _12;
}
else{
	r7 = _ZL21g_pFirstSoundDuration;
_21: while(true){
	r7 = r7 >> 2;
	r7 = heap32[(r7)];
	if(r7 !=0) //_LBB821_16
{
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r2;
	strcmp(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB821_18
{
	r7 = (r7 + 260)|0;
}
else{
__label__ = 16;
break _21;
}
}
else{
__label__ = 19;
break _21;
}
}
switch(__label__ ){//multiple entries
case 19:
	r7 = _2E_str3224;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r2;
	r7 = 0;
	_printf_warning(i7);
break;
case 16:
	r7 = r7 >> 2;
	r7 = heap32[(r7+64)];
break;
}
	heap32[(r3+71)] = r7;
}
}
	r8 = heap32[(r3+70)];
	r7 = (r8 + r7)|0;
if(!(uint(r7) >uint(r1))) //_LBB821_33
{
	r7 = heapU8[r0];
	if(r7 != 0) //_LBB821_25
{
	r7 = (r6 + -1)|0;
if(!(uint(r7) >uint(30))) //_LBB821_33
{
	r7 = heapU8[r4+269];
if(!(r7 !=0)) //_LBB821_33
{
if(!(uint(r6) >uint(31))) //_LBB821_29
{
	r7 = heap32[(r3+68)];
	r8 = heap32[(r3+69)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r8;
	heap32[(g0+2)] = r7;
	mandreel_audio_stopChannel(i7);
	heap32[(r3+72)] = 0;
	heap32[(r3+68)] = -1;
}
	r3 = _ZL15g_iFreeChannels;
	r3 = r3 >> 2;
	heap8[r4+269] = r5;
	r4 = heap32[(r3)];
	r7 = (r4 + -1)|0;
_37: do {
if(!(r7 <0)) //_LBB821_32
{
	r7 = r4;
_39: while(true){
	r8 = _ZL15g_aFreeChannels;
	r9 = r7 << 2;
	r8 = (r8 + r9)|0;
	r8 = r8 >> 2;
	r9 = heap32[(r8+-1)];
	r7 = (r7 + -1)|0;
	heap32[(r8)] = r9;
if(!(r7 !=0)) //_LBB821_31
{
break _37;
}
}
}
} while(0);
	r7 = _ZL15g_aFreeChannels;
	r7 = r7 >> 2;
	r4 = (r4 + 1)|0;
	heap32[(r7)] = r6;
	heap32[(r3)] = r4;
}
}
}
else{
__label__ = 23;
break _12;
}
}
}
}
	r6 = (r6 + 1)|0;
	r2 = (r2 + 292)|0;
}
else{
__label__ = 34;
break _12;
}
}
switch(__label__ ){//multiple entries
case 34:
	return;
break;
case 14:
	r7 = _2E_str221;
	r0 = _2E_str1222;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 341;
	_assert(i7);
break;
case 23:
	r0 = _2E_str221;
	r1 = _2E_str1222;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 621;
	_assert(i7);
break;
}
}
else{
	r0 = _2E_str221;
	r1 = _2E_str1222;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = 361;
	_assert(i7);
}
}

function __mandreel_internal_init(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
var __label__ = 0;
	i7 = sp + -2456;var g0 = i7>>2; // save stack
	r0 = __mandreel_internal_SetResolution__index__;
	r1 = _ZZ24__mandreel_internal_initE54s_723478567_mandreel___mandreel_internal_SetResolution;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	iMandreelRegisterExternalCallback(i7);
	r0 = iMandreel_TextureAsync_IsCompressed__index__;
	r1 = _ZZ24__mandreel_internal_initE56s_723478567_mandreel_iMandreel_TextureAsync_IsCompressed;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	iMandreelRegisterExternalCallback(i7);
	r0 = iMandreel_TextureAsync_GetPackOffset__index__;
	r1 = _ZZ24__mandreel_internal_initE57s_723478567_mandreel_iMandreel_TextureAsync_GetPackOffset;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	iMandreelRegisterExternalCallback(i7);
	r0 = __resize__index__;
	r1 = _ZZ24__mandreel_internal_initE29s_723478567_mandreel___resize;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	iMandreelRegisterExternalCallback(i7);
	r0 = imandreel_restore_glcontext__index__;
	r1 = _ZZ24__mandreel_internal_initE48s_723478567_mandreel_imandreel_restore_glcontext;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	iMandreelRegisterExternalCallback(i7);
	r0 = imandreel_viewport_resize__index__;
	r1 = _ZZ24__mandreel_internal_initE46s_723478567_mandreel_imandreel_viewport_resize;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	r0 = g_msgcallback;
	r0 = r0 >> 2;
	r1 = _Z31MandreelDefaultDebugMsgCallbackiPKc__index__;
	iMandreelRegisterExternalCallback(i7);
	r2 = _ZL7g_bInit_2E_b;
	heap32[(r0)] = r1;
	r0 = heapU8[r2];
	if(r0 !=1) //_LBB822_2
{
	r0 = 1;
	heap8[r2] = r0;
	r1 = 0;
	mandreel_audio_isLogEnabled(i7);
	r2 = r_g0 != r1;
	r3 = _ZL6g_bLog;
	r2 = r2 & 1;
	heap8[r3] = r2;
	mandreel_audio_useMusicFunctions(i7);
	r2 = heapU8[r3];
	if(r2 !=0) //_LBB822_4
{
	r2 = _2E_str35256;
	heap32[(g0)] = r2;
	printf(i7);
}
else{
	r1 = 0;
}
_6: while(true){
	r2 = (r1 * 73)|0;
	r3 = _ZL11g_aChannels;
	r2 = r2 << 2;
	r2 = (r3 + r2)|0;
	r4 = (r1 * 292)|0;
	r2 = r2 >> 2;
	r5 = _ZL15g_aFreeChannels;
	r6 = r1 << 2;
	r5 = (r5 + r6)|0;
	r3 = (r3 + r4)|0;
	heap32[(r2+69)] = r1;
	r2 = (r1 + 1)|0;
	r4 = r5 >> 2;
	heap8[r3+269] = r0;
	heap32[(r4)] = r1;
	r1 = r2;
if(!(r2 !=32)) //_LBB822_5
{
break _6;
}
}
	r1 = _ZL15g_iFreeChannels;
	r1 = r1 >> 2;
	heap32[(r1)] = 32;
	mandreel_audio_init(i7);
	r1 = _2E_str22243;
	heap32[(g0)] = r1;
	printf(i7);
	heap32[(g0)] = 0;
	_Z30mandreel_fopen_enable_checkfatb(i7);
	r1 = _2E_str779;
	r2 = _2E_str1648;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	fopen(i7);
	r3 = r_g0;
	heap32[(g0)] = 1;
	_Z30mandreel_fopen_enable_checkfatb(i7);
	if(r3 ==0) //_LBB822_19
{
	r4 = _2E_str24245;
	r5 = 0;
	heap32[(g0)] = r4;
	_printf_error(i7);
	r4 = r5;
}
else{
	if(uint(r3) <uint(10)) //_LBB822_9
{
	r4 = _ZL13s_file_stdout;
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+7)];
	heap32[(g0)] = r4;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 2;
	__FUNCTION_TABLE__[(r5)>>2](i7);
}
else{
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+7)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 2;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	r4 = r3;
}
	r5 = r4 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+5)];
	heap32[(g0)] = r4;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	r4 = r_g0;
	if(uint(r3) >uint(9)) //_LBB822_12
{
	r5 = r3;
}
else{
	r5 = _ZL13s_file_stdout;
}
	r6 = r5 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+7)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	r5 = (r4 + 1)|0;
	heap32[(g0)] = r5;
	malloc(i7);
	r5 = r_g0;
	if(uint(r3) <uint(10)) //_LBB822_15
{
	r6 = _ZL13s_file_stdout;
	r7 = r6 >> 2;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+1)];
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = 1;
	heap32[(g0+3)] = r4;
	r8 = 0;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	heap8[r5+r4] = r8;
}
else{
	r6 = r3 >> 2;
	r6 = heap32[(r6)];
	r6 = r6 >> 2;
	r6 = heap32[(r6+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = 1;
	heap32[(g0+3)] = r4;
	r7 = 0;
	__FUNCTION_TABLE__[(r6)>>2](i7);
	heap8[r5+r4] = r7;
	r6 = r3;
}
	r7 = r6 >> 2;
	r7 = heap32[(r7)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+4)];
	heap32[(g0)] = r6;
	__FUNCTION_TABLE__[(r7)>>2](i7);
	if(uint(r3) >uint(9)) //_LBB822_18
{
	heap32[(g0)] = r6;
	_ZdlPv(i7);
}
}
	r3 = sp + -128;
	heap32[(g0)] = r3;
	mandreel_audio_getAudioDriverName(i7);
	r6 = _2E_str4225;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r6;
	strcmp(i7);
	r3 = r_g0;
if(!(r5 ==0)) //_LBB822_198
{
_28: do {
if(!(r4 <1)) //_LBB822_197
{
	r6 = sp + -1408;
	r7 = (r6 + 1)|0;
	r8 = (r5 + 1)|0;
	r9 = 0;
_30: while(true){
	r10 = (r5 + r9)|0;
	r11 = heapU8[r5+r9];
if(!(r11 ==13)) //_LBB822_25
{
	if(r9 <r4) //_LBB822_26
{
	r11 = r9;
_35: while(true){
	r9 = (r11 + 1)|0;
	r11 = heapU8[r8+r11];
	if(r11 ==13) //_LBB822_29
{
break _35;
}
else{
	r11 = r9;
if(!(r9 <r4)) //_LBB822_27
{
break _35;
}
}
}
}
}
	r11 = _ZL10strtok_pos;
	r12 = 0;
	r11 = r11 >> 2;
	heap8[r5+r9] = r12;
	r13 = heap32[(r11)];
	r9 = (r9 + 2)|0;
	r10 = r10 == 0 ? r13 : r10;
_39: while(true){
	r13 = heapU8[r10];
	if(r13 ==0) //_LBB822_47
{
__label__ = 44;
break _39;
}
else{
	r14 = r12;
_42: while(true){
	if(r14 ==-1) //_LBB822_36
{
__label__ = 34;
break _39;
}
else{
	r15 = _2E_str4133;
	r15 = (r15 - r14)|0;
	r16 = r13 & 255;
	r15 = heapU8[r15];
	if(r16 !=r15) //_LBB822_30
{
	r14 = (r14 + -1)|0;
}
else{
break _42;
}
}
}
	r10 = (r10 + 1)|0;
}
}
_47: do {
if (__label__ == 34){
	if(r13 ==0) //_LBB822_47
{
__label__ = 44;
}
else{
	r12 = r10;
_50: while(true){
	r13 = heapU8[r12];
	if(r13 ==0) //_LBB822_44
{
break _50;
}
else{
	r14 = r0;
_53: while(true){
	if(r14 !=0) //_LBB822_38
{
	r15 = _2E_str4133;
	r15 = (r15 - r14)|0;
	r16 = r13 & 255;
	r15 = heapU8[r15+1];
	if(r16 ==r15) //_LBB822_44
{
break _50;
}
else{
	r14 = (r14 + -1)|0;
}
}
else{
break _53;
}
}
	r12 = (r12 + 1)|0;
}
}
	r13 = heapU8[r12];
	if(r13 !=0) //_LBB822_46
{
	r13 = (r12 + 1)|0;
	r14 = 0;
	heap8[r12] = r14;
	r12 = r13;
}
	heap32[(r11)] = r12;
	r13 = _2E_str26247;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r10;
	strcmp(i7);
	r13 = r_g0;
	if(r13 !=0) //_LBB822_71
{
	r13 = _2E_str29250;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r10;
	strcmp(i7);
	r13 = r_g0;
	if(r13 !=0) //_LBB822_154
{
	if(r3 !=0) //_LBB822_70
{
__label__ = 66;
break _47;
}
else{
	r13 = _2E_str32253;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r10;
	strcmp(i7);
	r13 = r_g0;
	if(r13 !=0) //_LBB822_176
{
	r13 = _2E_str33254;
	heap32[(g0)] = r13;
	heap32[(g0+1)] = r10;
	strcmp(i7);
	r10 = r_g0;
	if(r10 !=0) //_LBB822_70
{
__label__ = 66;
break _47;
}
else{
__label__ = 173; //SET chanka
_69: while(true){
	r10 = heapU8[r12];
	if(r10 ==0) //_LBB822_184
{
__label__ = 175;
break _69;
}
else{
	r13 = 0;
_72: while(true){
	if(r13 ==-1) //_LBB822_185
{
__label__ = 176;
break _69;
}
else{
	r14 = _2E_str4133;
	r14 = (r14 - r13)|0;
	r15 = r10 & 255;
	r14 = heapU8[r14];
	if(r15 !=r14) //_LBB822_178
{
	r13 = (r13 + -1)|0;
}
else{
break _72;
}
}
}
	r12 = (r12 + 1)|0;
}
}
if (__label__ == 176){
	if(r10 ==0) //_LBB822_184
{
__label__ = 175;
}
else{
	r13 = r12;
_80: while(true){
	r10 = heapU8[r13];
	if(r10 ==0) //_LBB822_193
{
break _80;
}
else{
	r14 = 1;
_83: while(true){
	if(r14 !=0) //_LBB822_187
{
	r15 = _2E_str4133;
	r15 = (r15 - r14)|0;
	r16 = r10 & 255;
	r15 = heapU8[r15+1];
	if(r16 ==r15) //_LBB822_193
{
break _80;
}
else{
	r14 = (r14 + -1)|0;
}
}
else{
break _83;
}
}
	r13 = (r13 + 1)|0;
}
}
	r10 = heapU8[r13];
	if(r10 !=0) //_LBB822_195
{
	r14 = (r13 + 1)|0;
	r10 = 0;
	heap8[r13] = r10;
	r10 = r12;
	r12 = r14;
__label__ = 187;
}
else{
	r10 = r12;
	r12 = r13;
__label__ = 187;
}
}
}
if (__label__ == 175){
	r10 = 0;
}
	heap32[(r11)] = r12;
	r11 = sp + -384;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r10;
	strcpy(i7);
__label__ = 66;
break _47;
}
}
else{
_95: while(true){
	r10 = heapU8[r12];
	if(r10 ==0) //_LBB822_163
{
__label__ = 155;
break _95;
}
else{
	r13 = 0;
_98: while(true){
	if(r13 ==-1) //_LBB822_164
{
__label__ = 156;
break _95;
}
else{
	r14 = _2E_str4133;
	r14 = (r14 - r13)|0;
	r15 = r10 & 255;
	r14 = heapU8[r14];
	if(r15 !=r14) //_LBB822_157
{
	r13 = (r13 + -1)|0;
}
else{
break _98;
}
}
}
	r12 = (r12 + 1)|0;
}
}
if (__label__ == 156){
	if(r10 ==0) //_LBB822_163
{
__label__ = 155;
}
else{
	r13 = r12;
_106: while(true){
	r10 = heapU8[r13];
	if(r10 ==0) //_LBB822_172
{
break _106;
}
else{
	r14 = 1;
_109: while(true){
	if(r14 !=0) //_LBB822_166
{
	r15 = _2E_str4133;
	r15 = (r15 - r14)|0;
	r16 = r10 & 255;
	r15 = heapU8[r15+1];
	if(r16 ==r15) //_LBB822_172
{
break _106;
}
else{
	r14 = (r14 + -1)|0;
}
}
else{
break _109;
}
}
	r13 = (r13 + 1)|0;
}
}
	r10 = heapU8[r13];
	if(r10 !=0) //_LBB822_174
{
	r14 = (r13 + 1)|0;
	r10 = 0;
	heap8[r13] = r10;
	r10 = r12;
	r12 = r14;
__label__ = 167;
}
else{
	r10 = r12;
	r12 = r13;
__label__ = 167;
}
}
}
if (__label__ == 155){
	r10 = 0;
}
	heap32[(r11)] = r12;
	r11 = sp + -2432;
	r12 = _2E_str12233;
	r13 = sp + -384;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r13;
	heap32[(g0+3)] = r10;
	sprintf(i7);
	heap32[(g0)] = r11;
	mandreel_add_valid_fopenfile(i7);
__label__ = 66;
break _47;
}
}
}
else{
	r10 = (r12 + 1)|0;
	r13 = 0;
	r14 = r12;
_122: while(true){
	r15 = heapU8[r12+r13];
	if(r15 ==0) //_LBB822_90
{
__label__ = 85;
break _122;
}
else{
	r16 = 0;
_125: while(true){
	if(r16 ==-1) //_LBB822_79
{
__label__ = 75;
break _122;
}
else{
	r17 = _2E_str4133;
	r17 = (r17 - r16)|0;
	r18 = r15 & 255;
	r17 = heapU8[r17];
	if(r18 !=r17) //_LBB822_73
{
	r16 = (r16 + -1)|0;
}
else{
break _125;
}
}
}
	r13 = (r13 + 1)|0;
	r14 = (r14 + 1)|0;
	r10 = (r10 + 1)|0;
}
}
_130: do {
if (__label__ == 75){
	if(r15 ==0) //_LBB822_90
{
__label__ = 85;
}
else{
	r15 = (r12 + r13)|0;
_133: while(true){
	r16 = heapU8[r14];
	if(r16 ==0) //_LBB822_87
{
break _133;
}
else{
	r17 = 1;
_136: while(true){
	if(r17 !=0) //_LBB822_81
{
	r18 = _2E_str4133;
	r18 = (r18 - r17)|0;
	r19 = r16 & 255;
	r18 = heapU8[r18+1];
	if(r19 ==r18) //_LBB822_87
{
break _133;
}
else{
	r17 = (r17 + -1)|0;
}
}
else{
break _136;
}
}
	r14 = (r14 + 1)|0;
}
}
	r16 = heapU8[r14];
	if(r16 !=0) //_LBB822_89
{
	r16 = (r14 + 1)|0;
	r17 = 0;
	heap8[r14] = r17;
	r14 = r16;
}
	r17 = 0;
	r16 = r15 == r17;
	heap32[(r11)] = r14;
_145: while(true){
	r18 = heapU8[r14];
	if(r18 ==0) //_LBB822_109
{
__label__ = 103;
break _145;
}
else{
	r19 = r17;
_148: while(true){
	if(r19 ==-1) //_LBB822_98
{
__label__ = 93;
break _145;
}
else{
	r20 = _2E_str4133;
	r20 = (r20 - r19)|0;
	r21 = r18 & 255;
	r20 = heapU8[r20];
	if(r21 !=r20) //_LBB822_92
{
	r19 = (r19 + -1)|0;
}
else{
break _148;
}
}
}
	r14 = (r14 + 1)|0;
}
}
if (__label__ == 93){
if(!(r18 ==0)) //_LBB822_109
{
	r17 = r14;
_156: while(true){
	r18 = heapU8[r17];
	if(r18 ==0) //_LBB822_106
{
break _156;
}
else{
	r19 = 1;
_159: while(true){
	if(r19 !=0) //_LBB822_100
{
	r20 = _2E_str4133;
	r20 = (r20 - r19)|0;
	r21 = r18 & 255;
	r20 = heapU8[r20+1];
	if(r21 ==r20) //_LBB822_106
{
break _156;
}
else{
	r19 = (r19 + -1)|0;
}
}
else{
break _159;
}
}
	r17 = (r17 + 1)|0;
}
}
	r18 = heapU8[r17];
	if(r18 !=0) //_LBB822_108
{
	r18 = (r17 + 1)|0;
	r19 = 0;
	heap8[r17] = r19;
	r17 = r18;
}
	heap32[(r11)] = r17;
_168: while(true){
	r18 = heapU8[r17];
	if(r18 ==0) //_LBB822_128
{
__label__ = 121;
break _168;
}
else{
	r19 = 0;
_171: while(true){
	if(r19 ==-1) //_LBB822_117
{
__label__ = 111;
break _168;
}
else{
	r20 = _2E_str4133;
	r20 = (r20 - r19)|0;
	r21 = r18 & 255;
	r20 = heapU8[r20];
	if(r21 !=r20) //_LBB822_111
{
	r19 = (r19 + -1)|0;
}
else{
break _171;
}
}
}
	r17 = (r17 + 1)|0;
}
}
if (__label__ == 111){
if(!(r18 ==0)) //_LBB822_128
{
	r15 = r17;
_179: while(true){
	r16 = heapU8[r15];
	if(r16 ==0) //_LBB822_125
{
break _179;
}
else{
	r18 = 1;
_182: while(true){
	if(r18 !=0) //_LBB822_119
{
	r19 = _2E_str4133;
	r19 = (r19 - r18)|0;
	r20 = r16 & 255;
	r19 = heapU8[r19+1];
	if(r20 ==r19) //_LBB822_125
{
break _179;
}
else{
	r18 = (r18 + -1)|0;
}
}
else{
break _182;
}
}
	r15 = (r15 + 1)|0;
}
}
	r16 = heapU8[r15];
	if(r16 !=0) //_LBB822_127
{
	r16 = (r15 + 1)|0;
	r18 = 0;
	heap8[r15] = r18;
	r15 = r16;
}
	heap32[(r11)] = r15;
	heap32[(g0)] = 264;
	_Znwj(i7);
	r11 = r_g0;
	heap32[(g0)] = r17;
	heap32[(g0+1)] = 0;
	r15 = 0;
	r16 = -1;
	r17 = r11 >> 2;
	strtol(i7);
	heap32[(r17+64)] = r_g0;
_191: while(true){
	r17 = r15;
	r18 = heapU8[r10+r17];
	if(r18 !=46) //_LBB822_133
{
	if(r18 ==0) //_LBB822_137
{
break _191;
}
else{
if(!(r18 ==47)) //_LBB822_136
{
	r15 = (r17 + 1)|0;
	if(r18 !=92) //_LBB822_131
{
continue _191;
}
}
	r16 = -1;
}
}
else{
	r16 = r17;
}
	r15 = (r17 + 1)|0;
}
	if(r16 ==-1) //_LBB822_143
{
	r10 = (r12 + r13)|0;
	r12 = _2E_str12233;
	r10 = (r10 + 1)|0;
	r15 = _2E_str2131;
	heap32[(g0)] = r6;
	heap32[(g0+1)] = r12;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r15;
	sprintf(i7);
}
else{
_205: do {
	if(r16 >0) //_LBB822_140
{
	r10 = (r12 + 1)|0;
	r12 = 0;
_207: while(true){
	r15 = (r12 + r10)|0;
	r17 = (r12 + 1)|0;
	r15 = heapU8[r15+r13];
	heap8[r6+r12] = r15;
	r12 = r17;
if(!(r16 !=r17)) //_LBB822_141
{
break _205;
}
}
}
else{
	r16 = 0;
}
} while(0);
	r10 = (r6 + r16)|0;
	r12 = _2E_str2131;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r12;
	strcpy(i7);
}
	r10 = heapU8[sp+-1408];
_212: do {
	if(r10 ==0) //_LBB822_146
{
	r15 = r11;
}
else{
	r12 = r7;
	r15 = r11;
_215: while(true){
	r16 = r10 & 255;
	if(r16 !=92) //_LBB822_149
{
	r16 = r10 << 24;
	r16 = r16 >> 24;
	r16 = (r16 + -65)|0;
	r13 = 26;
	r17 = (r10 + 32)|0;
	r10 = uint(r16) < uint(r13) ? r17 : r10;
}
else{
	r10 = 47;
}
	heap8[r15] = r10;
	r10 = heapU8[r12];
	r15 = (r15 + 1)|0;
	r12 = (r12 + 1)|0;
if(!(r10 !=0)) //_LBB822_147
{
break _212;
}
}
}
} while(0);
	r10 = _ZL21g_pFirstSoundDuration;
	r12 = 0;
	r10 = r10 >> 2;
	heap8[r15] = r12;
	r12 = r11 >> 2;
	r15 = heap32[(r10)];
	heap32[(r12+65)] = r15;
	heap32[(r10)] = r11;
	r10 = heapU8[r14];
	if(r10 ==48) //_LBB822_70
{
__label__ = 66;
break _47;
}
else{
	heap32[(g0)] = r11;
	heap32[(g0+1)] = 0;
	mandreel_audio_createBuffer(i7);
__label__ = 66;
break _47;
}
}
}
	heap32[(r11)] = r17;
__label__ = 146;
break _130;
}
}
	heap32[(r11)] = r14;
__label__ = 146;
}
}
} while(0);
if (__label__ == 85){
	r16 = 1;
	r15 = 0;
	r10 = (r12 + r13)|0;
	heap32[(r11)] = r10;
}
	r10 = _2E_str30251;
	r11 = _2E_str31252;
	r10 = r16 != 0 ? r10 : r15;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r10;
	_printf_warning(i7);
__label__ = 66;
break _47;
}
}
else{
_228: while(true){
	r10 = heapU8[r12];
	if(r10 ==0) //_LBB822_56
{
__label__ = 52;
break _228;
}
else{
	r13 = 0;
_231: while(true){
	if(r13 ==-1) //_LBB822_57
{
__label__ = 53;
break _228;
}
else{
	r14 = _2E_str4133;
	r14 = (r14 - r13)|0;
	r15 = r10 & 255;
	r14 = heapU8[r14];
	if(r15 !=r14) //_LBB822_50
{
	r13 = (r13 + -1)|0;
}
else{
break _231;
}
}
}
	r12 = (r12 + 1)|0;
}
}
if (__label__ == 53){
	if(r10 ==0) //_LBB822_56
{
__label__ = 52;
}
else{
	r13 = r12;
_239: while(true){
	r10 = heapU8[r13];
	if(r10 ==0) //_LBB822_65
{
break _239;
}
else{
	r14 = 1;
_242: while(true){
	if(r14 !=0) //_LBB822_59
{
	r15 = _2E_str4133;
	r15 = (r15 - r14)|0;
	r16 = r10 & 255;
	r15 = heapU8[r15+1];
	if(r16 ==r15) //_LBB822_65
{
break _239;
}
else{
	r14 = (r14 + -1)|0;
}
}
else{
break _242;
}
}
	r13 = (r13 + 1)|0;
}
}
	r10 = heapU8[r13];
	if(r10 !=0) //_LBB822_67
{
	r14 = (r13 + 1)|0;
	r10 = 0;
	heap8[r13] = r10;
	r10 = r12;
	r12 = r14;
__label__ = 64;
}
else{
	r10 = r12;
	r12 = r13;
__label__ = 64;
}
}
}
if (__label__ == 52){
	r10 = 0;
}
	heap32[(r11)] = r12;
	r11 = _2E_str27248;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r11;
	strcmp(i7);
	r12 = r_g0;
	if(r12 ==0) //_LBB822_70
{
__label__ = 66;
}
else{
	r12 = _2E_str28249;
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r10;
	heap32[(g0+2)] = r11;
	_printf_error(i7);
__label__ = 66;
}
}
}
}
} while(0);
if (__label__ == 44){
	heap32[(r11)] = r10;
}
if(!(r9 <r4)) //_LBB822_23
{
break _28;
}
}
}
} while(0);
	heap32[(g0)] = r5;
	free(i7);
}
	__mandreel_internal_CreateWindow(i7);
	heap32[(g0)] = 0;
	_Z30mandreel_fopen_enable_checkfatb(i7);
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r2;
	fopen(i7);
	r0 = r_g0;
	heap32[(g0)] = 1;
	_Z30mandreel_fopen_enable_checkfatb(i7);
if(!(r0 ==0)) //_LBB822_389
{
	if(uint(r0) <uint(10)) //_LBB822_201
{
	r1 = _ZL13s_file_stdout;
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+7)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 2;
	__FUNCTION_TABLE__[(r2)>>2](i7);
}
else{
	r1 = r0 >> 2;
	r1 = heap32[(r1)];
	r1 = r1 >> 2;
	r1 = heap32[(r1+7)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 2;
	__FUNCTION_TABLE__[(r1)>>2](i7);
	r1 = r0;
}
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+5)];
	heap32[(g0)] = r1;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	r1 = r_g0;
	if(uint(r0) >uint(9)) //_LBB822_204
{
	r2 = r0;
}
else{
	r2 = _ZL13s_file_stdout;
}
	r3 = r2 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+7)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = 0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r2 = (r1 + 1)|0;
	heap32[(g0)] = r2;
	malloc(i7);
	r2 = r_g0;
	if(uint(r0) <uint(10)) //_LBB822_207
{
	r3 = _ZL13s_file_stdout;
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+1)];
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 1;
	heap32[(g0+3)] = r1;
	r5 = 0;
	__FUNCTION_TABLE__[(r4)>>2](i7);
	heap8[r2+r1] = r5;
}
else{
	r3 = r0 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+1)];
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = 1;
	heap32[(g0+3)] = r1;
	r4 = 0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	heap8[r2+r1] = r4;
	r3 = r0;
}
	r4 = r3 >> 2;
	r4 = heap32[(r4)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+4)];
	heap32[(g0)] = r3;
	__FUNCTION_TABLE__[(r4)>>2](i7);
if(!(uint(r0) <uint(10))) //_LBB822_210
{
	heap32[(g0)] = r3;
	_ZdlPv(i7);
}
if(!(r2 ==0)) //_LBB822_389
{
	r0 = (r2 + 1)|0;
	r3 = -1;
	r4 = 0;
	r5 = r4;
_278: while(true){
	r6 = r3;
_280: while(true){
	if(r5 <r1) //_LBB822_212
{
	r3 = (r2 + r5)|0;
	r7 = heapU8[r2+r5];
	if(r7 ==13) //_LBB822_214
{
	r7 = r5;
}
else{
_285: while(true){
	r7 = (r5 + 1)|0;
	r5 = heapU8[r0+r5];
	if(r5 ==13) //_LBB822_217
{
break _285;
}
else{
	r5 = r7;
if(!(r7 <r1)) //_LBB822_215
{
break _285;
}
}
}
}
	r5 = _ZL10strtok_pos;
	r8 = 0;
	r9 = r5 >> 2;
	heap8[r2+r7] = r8;
	r10 = heap32[(r9)];
	r5 = (r7 + 2)|0;
	r3 = r3 == 0 ? r10 : r3;
_289: while(true){
	r7 = heapU8[r3];
	if(r7 ==0) //_LBB822_235
{
__label__ = 224;
break _289;
}
else{
	r10 = r8;
_292: while(true){
	if(r10 ==-1) //_LBB822_224
{
__label__ = 214;
break _289;
}
else{
	r11 = _2E_str4133;
	r11 = (r11 - r10)|0;
	r12 = r7 & 255;
	r11 = heapU8[r11];
	if(r12 !=r11) //_LBB822_218
{
	r10 = (r10 + -1)|0;
}
else{
break _292;
}
}
}
	r3 = (r3 + 1)|0;
}
}
if (__label__ == 214){
if(!(r7 ==0)) //_LBB822_235
{
	r7 = r3;
_300: while(true){
	r8 = heapU8[r7];
	if(r8 ==0) //_LBB822_232
{
break _300;
}
else{
	r10 = 1;
_303: while(true){
	if(r10 !=0) //_LBB822_226
{
	r11 = _2E_str4133;
	r11 = (r11 - r10)|0;
	r12 = r8 & 255;
	r11 = heapU8[r11+1];
	if(r12 ==r11) //_LBB822_232
{
break _300;
}
else{
	r10 = (r10 + -1)|0;
}
}
else{
break _303;
}
}
	r7 = (r7 + 1)|0;
}
}
	r8 = heapU8[r7];
	if(r8 !=0) //_LBB822_234
{
	r8 = (r7 + 1)|0;
	r10 = 0;
	heap8[r7] = r10;
	r7 = r8;
}
	heap32[(r9)] = r7;
	r8 = _2E_str3782;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r3;
	strcmp(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB822_341
{
	r8 = _2E_str5784;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r3;
	strcmp(i7);
	r8 = r_g0;
	if(r8 !=0) //_LBB822_385
{
	r7 = _2E_str6785;
	heap32[(g0)] = r7;
	heap32[(g0+1)] = r3;
	r3 = -1;
	strcmp(i7);
	r7 = r_g0;
	if(r7 !=0) //_LBB822_387
{
continue _280;
}
else{
continue _278;
}
}
else{
break _280;
}
}
else{
_315: while(true){
	r3 = heapU8[r7];
	if(r3 ==0) //_LBB822_255
{
__label__ = 242;
break _315;
}
else{
	r8 = 0;
_318: while(true){
	if(r8 ==-1) //_LBB822_244
{
__label__ = 232;
break _315;
}
else{
	r10 = _2E_str4133;
	r10 = (r10 - r8)|0;
	r11 = r3 & 255;
	r10 = heapU8[r10];
	if(r11 !=r10) //_LBB822_238
{
	r8 = (r8 + -1)|0;
}
else{
break _318;
}
}
}
	r7 = (r7 + 1)|0;
}
}
_323: do {
if (__label__ == 232){
	if(r3 ==0) //_LBB822_255
{
__label__ = 242;
}
else{
	r3 = r7;
_326: while(true){
	r8 = heapU8[r3];
	if(r8 ==0) //_LBB822_252
{
break _326;
}
else{
	r10 = 1;
_329: while(true){
	if(r10 !=0) //_LBB822_246
{
	r11 = _2E_str4133;
	r11 = (r11 - r10)|0;
	r12 = r8 & 255;
	r11 = heapU8[r11+1];
	if(r12 ==r11) //_LBB822_252
{
break _326;
}
else{
	r10 = (r10 + -1)|0;
}
}
else{
break _329;
}
}
	r3 = (r3 + 1)|0;
}
}
	r8 = heapU8[r3];
	if(r8 !=0) //_LBB822_254
{
	r8 = (r3 + 1)|0;
	r10 = 0;
	heap8[r3] = r10;
	r3 = r8;
}
	heap32[(r9)] = r3;
_338: while(true){
	r8 = heapU8[r3];
	if(r8 ==0) //_LBB822_274
{
__label__ = 260;
break _338;
}
else{
	r10 = 0;
_341: while(true){
	if(r10 ==-1) //_LBB822_263
{
__label__ = 250;
break _338;
}
else{
	r11 = _2E_str4133;
	r11 = (r11 - r10)|0;
	r12 = r8 & 255;
	r11 = heapU8[r11];
	if(r12 !=r11) //_LBB822_257
{
	r10 = (r10 + -1)|0;
}
else{
break _341;
}
}
}
	r3 = (r3 + 1)|0;
}
}
if (__label__ == 250){
if(!(r8 ==0)) //_LBB822_274
{
	r8 = r3;
_349: while(true){
	r10 = heapU8[r8];
	if(r10 ==0) //_LBB822_271
{
break _349;
}
else{
	r11 = 1;
_352: while(true){
	if(r11 !=0) //_LBB822_265
{
	r12 = _2E_str4133;
	r12 = (r12 - r11)|0;
	r13 = r10 & 255;
	r12 = heapU8[r12+1];
	if(r13 ==r12) //_LBB822_271
{
break _349;
}
else{
	r11 = (r11 + -1)|0;
}
}
else{
break _352;
}
}
	r8 = (r8 + 1)|0;
}
}
	r10 = heapU8[r8];
	if(r10 !=0) //_LBB822_273
{
	r10 = (r8 + 1)|0;
	r11 = 0;
	heap8[r8] = r11;
	r8 = r10;
}
	heap32[(r9)] = r8;
_361: while(true){
	r10 = heapU8[r8];
	if(r10 ==0) //_LBB822_293
{
__label__ = 278;
break _361;
}
else{
	r11 = 0;
_364: while(true){
	if(r11 ==-1) //_LBB822_282
{
__label__ = 268;
break _361;
}
else{
	r12 = _2E_str4133;
	r12 = (r12 - r11)|0;
	r13 = r10 & 255;
	r12 = heapU8[r12];
	if(r13 !=r12) //_LBB822_276
{
	r11 = (r11 + -1)|0;
}
else{
break _364;
}
}
}
	r8 = (r8 + 1)|0;
}
}
if (__label__ == 268){
if(!(r10 ==0)) //_LBB822_293
{
	r10 = r8;
_372: while(true){
	r11 = heapU8[r10];
	if(r11 ==0) //_LBB822_290
{
break _372;
}
else{
	r12 = 1;
_375: while(true){
	if(r12 !=0) //_LBB822_284
{
	r13 = _2E_str4133;
	r13 = (r13 - r12)|0;
	r14 = r11 & 255;
	r13 = heapU8[r13+1];
	if(r14 ==r13) //_LBB822_290
{
break _372;
}
else{
	r12 = (r12 + -1)|0;
}
}
else{
break _375;
}
}
	r10 = (r10 + 1)|0;
}
}
	r11 = heapU8[r10];
	if(r11 !=0) //_LBB822_292
{
	r11 = (r10 + 1)|0;
	r12 = 0;
	heap8[r10] = r12;
	r10 = r11;
}
	heap32[(r9)] = r10;
_384: while(true){
	r11 = heapU8[r10];
	if(r11 ==0) //_LBB822_312
{
__label__ = 296;
break _384;
}
else{
	r12 = 0;
_387: while(true){
	if(r12 ==-1) //_LBB822_301
{
__label__ = 286;
break _384;
}
else{
	r13 = _2E_str4133;
	r13 = (r13 - r12)|0;
	r14 = r11 & 255;
	r13 = heapU8[r13];
	if(r14 !=r13) //_LBB822_295
{
	r12 = (r12 + -1)|0;
}
else{
break _387;
}
}
}
	r10 = (r10 + 1)|0;
}
}
if (__label__ == 286){
if(!(r11 ==0)) //_LBB822_312
{
	r11 = r10;
_395: while(true){
	r12 = heapU8[r11];
	if(r12 ==0) //_LBB822_309
{
break _395;
}
else{
	r13 = 1;
_398: while(true){
	if(r13 !=0) //_LBB822_303
{
	r14 = _2E_str4133;
	r14 = (r14 - r13)|0;
	r15 = r12 & 255;
	r14 = heapU8[r14+1];
	if(r15 ==r14) //_LBB822_309
{
break _395;
}
else{
	r13 = (r13 + -1)|0;
}
}
else{
break _398;
}
}
	r11 = (r11 + 1)|0;
}
}
	r12 = heapU8[r11];
	if(r12 !=0) //_LBB822_311
{
	r12 = (r11 + 1)|0;
	r13 = 0;
	heap8[r11] = r13;
	r11 = r12;
}
	heap32[(r9)] = r11;
_407: while(true){
	r12 = heapU8[r11];
	if(r12 ==0) //_LBB822_331
{
__label__ = 314;
break _407;
}
else{
	r13 = 0;
_410: while(true){
	if(r13 ==-1) //_LBB822_320
{
__label__ = 304;
break _407;
}
else{
	r14 = _2E_str4133;
	r14 = (r14 - r13)|0;
	r15 = r12 & 255;
	r14 = heapU8[r14];
	if(r15 !=r14) //_LBB822_314
{
	r13 = (r13 + -1)|0;
}
else{
break _410;
}
}
}
	r11 = (r11 + 1)|0;
}
}
if (__label__ == 304){
if(!(r12 ==0)) //_LBB822_331
{
	r12 = r11;
_418: while(true){
	r13 = heapU8[r12];
	if(r13 ==0) //_LBB822_328
{
break _418;
}
else{
	r14 = 1;
_421: while(true){
	if(r14 !=0) //_LBB822_322
{
	r15 = _2E_str4133;
	r15 = (r15 - r14)|0;
	r16 = r13 & 255;
	r15 = heapU8[r15+1];
	if(r16 ==r15) //_LBB822_328
{
break _418;
}
else{
	r14 = (r14 + -1)|0;
}
}
else{
break _421;
}
}
	r12 = (r12 + 1)|0;
}
}
	r13 = heapU8[r12];
	if(r13 !=0) //_LBB822_330
{
	r13 = (r12 + 1)|0;
	r14 = 0;
	heap8[r12] = r14;
	r12 = r13;
}
	heap32[(r9)] = r12;
	if(r8 ==0) //_LBB822_340
{
__label__ = 323;
break _323;
}
else{
	if(r11 ==0) //_LBB822_340
{
__label__ = 323;
break _323;
}
else{
	heap32[(g0)] = 284;
	_Znwj(i7);
	r9 = r_g0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = 0;
	r3 = r9 >> 2;
	strtol(i7);
	heap32[(r3+65)] = r_g0;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = 0;
	strtol(i7);
	heap32[(r3+66)] = r_g0;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = 0;
	strtol(i7);
	heap32[(r3+67)] = r_g0;
	heap32[(g0)] = r11;
	heap32[(g0+1)] = 0;
	strtol(i7);
	heap32[(r3+69)] = r_g0;
	r7 = (r7 + 1)|0;
	r8 = 0;
	heap32[(r3+68)] = r4;
	heap32[(r3+64)] = r6;
	r3 = r9;
_432: while(true){
	r10 = heapU8[r7];
	if(r10 ==0) //_LBB822_339
{
break _432;
}
else{
	r11 = r10 << 24;
	r11 = r11 >> 24;
	r11 = (r11 + -65)|0;
	r12 = 26;
	r13 = (r10 + 32)|0;
	r10 = uint(r11) < uint(r12) ? r13 : r10;
	r11 = r10 & 255;
	r12 = 47;
	r10 = r11 == 92 ? r12 : r10;
	r7 = (r7 + 1)|0;
	r11 = r10 & 255;
if(!(r11 !=47)) //_LBB822_338
{
	r11 = r8 & 255;
	r8 = r10;
	if(r11 ==47) //_LBB822_335
{
continue _432;
}
}
	r8 = (r3 + 1)|0;
	heap8[r3] = r10;
	r3 = r8;
	r8 = r10;
}
}
	r7 = _ZL24g_pFirstTextureAsyncInfo;
	r8 = 0;
	r7 = r7 >> 2;
	heap8[r3] = r8;
	r3 = r9 >> 2;
	r8 = heap32[(r7)];
	heap32[(r3+70)] = r8;
	heap32[(r7)] = r9;
	r3 = heap32[(r3+69)];
	r4 = (r3 + r4)|0;
continue _280;
}
}
}
}
	heap32[(r9)] = r11;
__label__ = 323;
break _323;
}
}
	heap32[(r9)] = r10;
__label__ = 323;
break _323;
}
}
	heap32[(r9)] = r8;
__label__ = 323;
break _323;
}
}
	heap32[(r9)] = r3;
__label__ = 323;
}
}
} while(0);
if (__label__ == 242){
	heap32[(r9)] = r7;
}
	r3 = _2E_str4783;
	heap32[(g0)] = r3;
	_printf_warning(i7);
continue _280;
}
}
}
	heap32[(r9)] = r3;
}
else{
break _278;
}
}
_447: while(true){
	r3 = heapU8[r7];
	if(r3 ==0) //_LBB822_349
{
__label__ = 331;
break _447;
}
else{
	r4 = 0;
_450: while(true){
	if(r4 ==-1) //_LBB822_350
{
__label__ = 332;
break _447;
}
else{
	r8 = _2E_str4133;
	r8 = (r8 - r4)|0;
	r10 = r3 & 255;
	r8 = heapU8[r8];
	if(r10 !=r8) //_LBB822_343
{
	r4 = (r4 + -1)|0;
}
else{
break _450;
}
}
}
	r7 = (r7 + 1)|0;
}
}
if (__label__ == 332){
	if(r3 ==0) //_LBB822_349
{
__label__ = 331;
}
else{
	r3 = r7;
_458: while(true){
	r4 = heapU8[r3];
	if(r4 ==0) //_LBB822_358
{
break _458;
}
else{
	r8 = 1;
_461: while(true){
	if(r8 !=0) //_LBB822_352
{
	r10 = _2E_str4133;
	r10 = (r10 - r8)|0;
	r11 = r4 & 255;
	r10 = heapU8[r10+1];
	if(r11 ==r10) //_LBB822_358
{
break _458;
}
else{
	r8 = (r8 + -1)|0;
}
}
else{
break _461;
}
}
	r3 = (r3 + 1)|0;
}
}
	r4 = heapU8[r3];
	if(r4 !=0) //_LBB822_360
{
	r8 = (r3 + 1)|0;
	r4 = 0;
	heap8[r3] = r4;
	r4 = r7;
	r7 = r8;
__label__ = 343;
}
else{
	r4 = r7;
	r7 = r3;
__label__ = 343;
}
}
}
if (__label__ == 331){
	r4 = 0;
}
	heap32[(r9)] = r7;
_473: while(true){
	r3 = heapU8[r7];
	if(r3 ==0) //_LBB822_368
{
__label__ = 359;
break _473;
}
else{
	r8 = 0;
_476: while(true){
	if(r8 ==-1) //_LBB822_369
{
__label__ = 350;
break _473;
}
else{
	r10 = _2E_str4133;
	r10 = (r10 - r8)|0;
	r11 = r3 & 255;
	r10 = heapU8[r10];
	if(r11 !=r10) //_LBB822_362
{
	r8 = (r8 + -1)|0;
}
else{
break _476;
}
}
}
	r7 = (r7 + 1)|0;
}
}
if (__label__ == 350){
if(!(r3 ==0)) //_LBB822_368
{
_483: while(true){
	r3 = heapU8[r7];
	if(r3 ==0) //_LBB822_377
{
break _483;
}
else{
	r8 = 1;
_486: while(true){
	if(r8 !=0) //_LBB822_371
{
	r10 = _2E_str4133;
	r10 = (r10 - r8)|0;
	r11 = r3 & 255;
	r10 = heapU8[r10+1];
	if(r11 ==r10) //_LBB822_377
{
break _483;
}
else{
	r8 = (r8 + -1)|0;
}
}
else{
break _486;
}
}
	r7 = (r7 + 1)|0;
}
}
	r3 = heapU8[r7];
	if(r3 !=0) //_LBB822_379
{
	r3 = (r7 + 1)|0;
	r8 = 0;
	heap8[r7] = r8;
	r7 = r3;
}
}
}
	r3 = (r6 + 1)|0;
	heap32[(r9)] = r7;
	r7 = heapU8[r4];
_494: do {
	if(r7 ==0) //_LBB822_382
{
	r8 = 1;
}
else{
	r7 = 1;
_497: while(true){
	r8 = (r7 + 1)|0;
	r9 = heapU8[r4+r7];
	r7 = r8;
if(!(r9 !=0)) //_LBB822_383
{
break _494;
}
}
}
} while(0);
	r7 = _ZL17g_apPackFileNames;
	r6 = r6 << 2;
	r6 = (r7 + r6)|0;
	heap32[(g0)] = r8;
	r6 = r6 >> 2;
	_Znaj(i7);
	heap32[(r6+1)] = r_g0;
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r4;
	r4 = 0;
	strcpy(i7);
}
	heap32[(g0)] = r2;
	free(i7);
}
}
	r0 = sp + -2440;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	r1 = _ZGVZ21Mandreel_GetTickCountE7s_first;
	gettimeofday(i7);
	r2 = heapU8[r1];
if(!(r2 !=0)) //_LBB822_391
{
	r2 = heap32[(fp+-610)];
	r3 = r2 >> 31;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 1000000;
	heap32[(g0+3)] = 0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	__muldi3(i7);
	r4 = 1;
	r5 = (r_g0 + r0)|0;
	r6 = 0;
	r7 = r0 >> 31;
	r2 = uint(r5) < uint(r_g0) ? r4 : r6;
	r6 = _ZZ21Mandreel_GetTickCountE7s_first;
	r3 = (r_g1 + r7)|0;
	r0 = uint(r5) < uint(r0) ? r4 : r2;
	r2 = r6 >> 2;
	r0 = (r3 + r0)|0;
	heap32[(r2)] = r5;
	heap32[(r2+1)] = r0;
	heap8[r1] = r4;
}
	return;
}
else{
	r2 = _2E_str34255;
	r0 = _2E_str1222;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = 307;
	_assert(i7);
}
}

function __forceSuperLink(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	__mandreel_internal_init(i7);
	r0 = sp + -8;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	r1 = _ZGVZ21Mandreel_GetTickCountE7s_first;
	gettimeofday(i7);
	r2 = heapU8[r1];
if(!(r2 !=0)) //_LBB823_2
{
	r2 = heap32[(fp+-2)];
	r3 = r2 >> 31;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = 1000000;
	heap32[(g0+3)] = 0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	__muldi3(i7);
	r4 = 1;
	r5 = (r_g0 + r0)|0;
	r6 = 0;
	r7 = r0 >> 31;
	r2 = uint(r5) < uint(r_g0) ? r4 : r6;
	r6 = _ZZ21Mandreel_GetTickCountE7s_first;
	r3 = (r_g1 + r7)|0;
	r0 = uint(r5) < uint(r0) ? r4 : r2;
	r2 = r6 >> 2;
	r0 = (r3 + r0)|0;
	heap32[(r2)] = r5;
	heap32[(r2+1)] = r0;
	heap8[r1] = r4;
}
	r0 = _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b;
	r1 = heapU8[r0];
if(!(r1 != 0)) //_LBB823_4
{
	r1 = 1;
	heap8[r0] = r1;
}
	return;
}

function _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = sp + -16;
	r1 = r0 >> 2;
	heap32[(fp+-4)] = 0;
	heap32[(r1+1)] = 0;
	r2 = heap32[(fp)];
	heap32[(r1+2)] = 16;
	r3 = r2 >> 2;
	heap32[(r1+3)] = 0;
	r4 = heap32[(fp+2)];
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r4 = r4 >> 2;
	r3 = heap32[(r3+5)];
	r5 = heap32[(r4)];
	r6 = heap32[(fp+1)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r6;
	heap32[(g0+2)] = r5;
	heap32[(g0+3)] = r0;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	r0 = heap32[(r1+1)];
	r0 = r0 & 6;
	if(r0 !=6) //_LBB824_2
{
	r0 = 0;
	r_g0 = r0;
	return;
}
else{
	r0 = heap32[(fp+-4)];
	heap32[(r4)] = r0;
	r0 = 1;
	r_g0 = r0;
	return;
}
}

function _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+4)];
	r1 = heap32[(fp+2)];
	r2 = 6;
	r3 = 1;
	r0 = r0 == r1 ? r2 : r3;
	r_g0 = r0;
	return;
}

function _ZNKSt9type_info10__do_catchEPKS_PPvj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r0 = heap32[(r0+1)];
	r1 = heap32[(r1+1)];
	r2 = _2E_str26;
	r0 = r0 == 0 ? r2 : r0;
	r1 = r1 == 0 ? r2 : r1;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r2 = r_g0;
	if(r2 <0) //_LBB826_2
{
	r0 = 0;
	r_g0 = r0;
	return;
}
else{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	strcmp(i7);
	r0 = r_g0 >>> 31;
	r0 = r0 ^ 1;
	r_g0 = r0;
	return;
}
}

function _ZN10__cxxabiv117__class_type_infoD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVSt9type_info;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN10__cxxabiv117__class_type_infoD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVSt9type_info;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r0 = heap32[(r0+1)];
	r1 = heap32[(r1+1)];
	r2 = _2E_str26;
	r0 = r0 == 0 ? r2 : r0;
	r1 = r1 == 0 ? r2 : r1;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r2 = r_g0;
	if(r2 >-1) //_LBB829_2
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	r0 = -1;
	strcmp(i7);
	r0 = r_g0 > r0;
}
else{
	r0 = 0;
}
	r0 = r0 & 1;
	r_g0 = r0;
	return;
}

function _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = r1 >> 2;
	r0 = heap32[(r0+1)];
	r1 = heap32[(r1+1)];
	r2 = _2E_str26;
	r0 = r0 == 0 ? r2 : r0;
	r1 = r1 == 0 ? r2 : r1;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r2 = r_g0;
if(!(r2 <0)) //_LBB830_3
{
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	strcmp(i7);
	r0 = r_g0;
if(!(r0 <0)) //_LBB830_3
{
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+3)];
	r1 = r1 >> 2;
	heap32[(r1)] = r0;
	heap32[(r1+3)] = 8;
	heap32[(r1+1)] = 6;
	r0 = 1;
	r_g0 = r0;
	return;
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r0 = r0 >> 2;
	r1 = heap32[(fp+4)];
	r2 = heap32[(fp+2)];
	r3 = heap32[(fp+7)];
	r0 = heap32[(r0+1)];
	r4 = heap32[(fp+6)];
if(!(r1 !=r4)) //_LBB831_3
{
	r4 = heap32[(fp+5)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+1)];
	r5 = _2E_str26;
	r4 = r4 == 0 ? r5 : r4;
	r5 = r0 == 0 ? r5 : r0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	strcmp(i7);
	r6 = r_g0;
if(!(r6 <0)) //_LBB831_3
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	strcmp(i7);
	r4 = r_g0;
	if(r4 >-1) //_LBB831_5
{
	r1 = r3 >> 2;
	heap32[(r1+2)] = r2;
	r1 = 0;
	r_g0 = r1;
	return;
}
}
}
	r4 = heap32[(fp+3)];
	r4 = r4 >> 2;
	r4 = heap32[(r4+1)];
	r5 = _2E_str26;
	r4 = r4 == 0 ? r5 : r4;
	r0 = r0 == 0 ? r5 : r0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r4;
	strcmp(i7);
	r5 = r_g0;
if(!(r5 <0)) //_LBB831_7
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	strcmp(i7);
	r0 = r_g0;
if(!(r0 <0)) //_LBB831_7
{
	r0 = r3 >> 2;
	heap32[(r0)] = r1;
	heap32[(r0+1)] = r2;
	heap32[(r0+3)] = 1;
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZN10__cxxabiv120__si_class_type_infoD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVSt9type_info;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function _ZN10__cxxabiv120__si_class_type_infoD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVSt9type_info;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = r0 >> 2;
	r1 = r1 >> 2;
	r2 = heap32[(r2+1)];
	r3 = heap32[(r1+1)];
	r4 = _2E_str26;
	r2 = r2 == 0 ? r4 : r2;
	r3 = r3 == 0 ? r4 : r3;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	strcmp(i7);
	r6 = r_g0;
if(!(r6 <0)) //_LBB834_2
{
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	strcmp(i7);
	r2 = r_g0;
	if(r2 >-1) //_LBB834_3
{
	r0 = r5 >> 2;
	heap32[(r0)] = r4;
	heap32[(r0+3)] = 8;
	heap32[(r0+1)] = 6;
	r0 = 1;
	r_g0 = r0;
	return;
}
}
	r1 = heap32[(r1+2)];
	r2 = r1 >> 2;
	r2 = heap32[(r2)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+5)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r5;
	__FUNCTION_TABLE__[(r2)>>2](i7);
	return;
}

function _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+3)];
	r1 = heap32[(fp)];
	r2 = r0 >> 2;
	r1 = r1 >> 2;
	r2 = heap32[(r2+1)];
	r3 = heap32[(r1+1)];
	r4 = _2E_str26;
	r2 = r2 == 0 ? r4 : r2;
	r3 = r3 == 0 ? r4 : r3;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	r5 = heap32[(fp+1)];
	r6 = heap32[(fp+2)];
	r7 = heap32[(fp+4)];
	r8 = heap32[(fp+6)];
	r9 = heap32[(fp+7)];
	strcmp(i7);
	r10 = r_g0;
	if(r10 <0) //_LBB835_6
{
__label__ = 6;
}
else{
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r3;
	strcmp(i7);
	r2 = r_g0;
	if(r2 <0) //_LBB835_6
{
__label__ = 6;
}
else{
	r0 = r9 >> 2;
	heap32[(r0)] = r7;
	heap32[(r0+1)] = r6;
	if(r5 <0) //_LBB835_4
{
	if(r5 !=-2) //_LBB835_11
{
__label__ = 11;
}
else{
	heap32[(r0+3)] = 1;
__label__ = 11;
}
}
else{
	r1 = (r7 + r5)|0;
	r3 = 6;
	r4 = 1;
	r1 = r1 == r8 ? r3 : r4;
	heap32[(r0+3)] = r1;
__label__ = 11;
}
}
}
_8: do {
if (__label__ == 6){
	r2 = heap32[(fp+5)];
if(!(r7 !=r8)) //_LBB835_9
{
	r10 = r2 >> 2;
	r10 = heap32[(r10+1)];
	r4 = r10 == 0 ? r4 : r10;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r4;
	strcmp(i7);
	r10 = r_g0;
if(!(r10 <0)) //_LBB835_9
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	strcmp(i7);
	r3 = r_g0;
	if(r3 >-1) //_LBB835_10
{
	r0 = r9 >> 2;
	heap32[(r0+2)] = r6;
break _8;
}
}
}
	r1 = heap32[(r1+2)];
	r3 = r1 >> 2;
	r3 = heap32[(r3)];
	r3 = r3 >> 2;
	r3 = heap32[(r3+6)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r5;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r0;
	heap32[(g0+4)] = r7;
	heap32[(g0+5)] = r2;
	heap32[(g0+6)] = r8;
	heap32[(g0+7)] = r9;
	__FUNCTION_TABLE__[(r3)>>2](i7);
	return;
}
} while(0);
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+4)];
	r1 = heap32[(fp+2)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+3)];
if(!(r0 !=r1)) //_LBB836_3
{
	r4 = r3 >> 2;
	r5 = r2 >> 2;
	r4 = heap32[(r4+1)];
	r5 = heap32[(r5+1)];
	r6 = _2E_str26;
	r4 = r4 == 0 ? r6 : r4;
	r5 = r5 == 0 ? r6 : r5;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	strcmp(i7);
	r6 = r_g0;
if(!(r6 <0)) //_LBB836_3
{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	strcmp(i7);
	r4 = r_g0;
	if(r4 >-1) //_LBB836_4
{
	r0 = 6;
	r_g0 = r0;
	return;
}
}
}
	r4 = heap32[(fp+1)];
	r2 = r2 >> 2;
	r2 = heap32[(r2+2)];
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	r5 = r5 >> 2;
	r5 = heap32[(r5+7)];
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r0;
	__FUNCTION_TABLE__[(r5)>>2](i7);
	return;
}

function _ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = r0 >> 2;
	r3 = r1 >> 2;
	r2 = heap32[(r2+1)];
	r4 = heap32[(r3+1)];
	r5 = _2E_str26;
	r2 = r2 == 0 ? r5 : r2;
	r4 = r4 == 0 ? r5 : r4;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r2;
	r6 = heap32[(fp+2)];
	r7 = heap32[(fp+3)];
	strcmp(i7);
	r8 = r_g0;
	if(r8 <0) //_LBB837_3
{
__label__ = 3;
}
else{
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	strcmp(i7);
	r2 = r_g0;
	if(r2 <0) //_LBB837_3
{
__label__ = 3;
}
else{
	r0 = r7 >> 2;
	heap32[(r0)] = r6;
	heap32[(r0+3)] = 8;
	heap32[(r0+1)] = 6;
__label__ = 39;
}
}
_4: do {
if (__label__ == 3){
	r2 = r7 >> 2;
	r4 = heap32[(r2+2)];
	r7 = r4 & 16;
	if(r7 !=0) //_LBB837_5
{
	r4 = heap32[(r3+2)];
}
	r3 = heap32[(r3+3)];
	r7 = r4 & 1;
	r3 = (r3 + 1)|0;
_9: while(true){
	if(r3 !=1) //_LBB837_7
{
	r8 = sp + -16;
	r9 = r8 >> 2;
	heap32[(fp+-4)] = 0;
	r10 = r3 << 3;
	heap32[(r9+1)] = 0;
	r10 = (r1 + r10)|0;
	heap32[(r9+2)] = r4;
	r10 = r10 >> 2;
	heap32[(r9+3)] = 0;
	r10 = heap32[(r10+1)];
	r11 = r10 & 2;
	if(r7 !=0) //_LBB837_10
{
__label__ = 9;
}
else{
	r12 = r11 >>> 1;
	if(r12 != 0) //_LBB837_10
{
__label__ = 9;
}
else{
__label__ = 8;
}
}
if (__label__ == 9){
	r12 = r3 << 1;
	r13 = r10 & 1;
	if(r6 !=0) //_LBB837_12
{
	r10 = r10 >> 8;
	if(r13 != 0) //_LBB837_14
{
	r14 = r6 >> 2;
	r14 = heap32[(r14)];
	r10 = (r14 + r10)|0;
	r10 = r10 >> 2;
	r10 = heap32[(r10)];
}
	r10 = (r6 + r10)|0;
}
else{
	r10 = 0;
}
	r12 = r12 << 2;
	r12 = (r1 + r12)|0;
	r12 = r12 >> 2;
	r14 = heap32[(r12)];
	r15 = r14 >> 2;
	r15 = heap32[(r15)];
	r15 = r15 >> 2;
	r15 = heap32[(r15+5)];
	heap32[(g0)] = r14;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r8;
	__FUNCTION_TABLE__[(r15)>>2](i7);
	r8 = r_g0;
if(!(r8 ==0)) //_LBB837_9
{
	r8 = heap32[(r9+3)];
if(!(r8 !=8)) //_LBB837_19
{
	if(r13 != 0) //_LBB837_20
{
	r8 = heap32[(r12)];
	heap32[(r9+3)] = r8;
}
}
	r10 = heap32[(r9+1)];
if(!(r10 <4)) //_LBB837_23
{
	if(r11 ==0) //_LBB837_24
{
	r10 = r10 & -3;
	heap32[(r9+1)] = r10;
}
}
	r11 = heap32[(r2+3)];
	if(r11 !=0) //_LBB837_31
{
	r9 = heap32[(r2)];
	r12 = heap32[(fp+-4)];
	if(r9 ==r12) //_LBB837_33
{
	if(r9 ==0) //_LBB837_35
{
	if(r8 ==8) //_LBB837_39
{
__label__ = 35;
break _9;
}
else{
	if(r11 ==8) //_LBB837_39
{
__label__ = 35;
break _9;
}
else{
	r9 = r11 >> 2;
	r8 = r8 >> 2;
	r9 = heap32[(r9+1)];
	r8 = heap32[(r8+1)];
	r9 = r9 == 0 ? r5 : r9;
	r8 = r8 == 0 ? r5 : r8;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r9;
	strcmp(i7);
	r11 = r_g0;
	if(r11 <0) //_LBB837_39
{
__label__ = 35;
break _9;
}
else{
	heap32[(g0)] = r9;
	heap32[(g0+1)] = r8;
	strcmp(i7);
	r8 = r_g0;
	if(r8 >-1) //_LBB837_40
{
	r8 = heap32[(r2+1)];
	r8 = r10 | r8;
	heap32[(r2+1)] = r8;
}
else{
__label__ = 35;
break _9;
}
}
}
}
}
else{
	r8 = heap32[(r2+1)];
	r8 = r10 | r8;
	heap32[(r2+1)] = r8;
}
}
else{
__label__ = 28;
break _9;
}
}
else{
	r11 = heap32[(fp+-4)];
	heap32[(r2)] = r11;
	heap32[(r2+1)] = r10;
	r11 = heap32[(r9+2)];
	heap32[(r2+2)] = r11;
	heap32[(r2+3)] = r8;
	if(r10 <4) //_LBB837_43
{
break _4;
}
else{
	r8 = r10 & 2;
	if(r8 ==0) //_LBB837_29
{
	r8 = r10 & 1;
	if(r8 ==0) //_LBB837_43
{
break _4;
}
else{
	r8 = heapU8[r1+8];
	r8 = r8 & 2;
	if(r8 ==0) //_LBB837_43
{
break _4;
}
}
}
else{
	r8 = heapU8[r1+8];
	r8 = r8 & 1;
	if(r8 ==0) //_LBB837_43
{
break _4;
}
}
}
}
}
}
	r3 = (r3 + -1)|0;
continue _9;
}
else{
__label__ = 38;
break _9;
}
}
switch(__label__ ){//multiple entries
case 38:
	r0 = heap32[(r2+1)];
	r1 = 0;
	r0 = r0 != r1;
	r0 = r0 & 1;
	r_g0 = r0;
	return;
break;
case 28:
	heap32[(r2)] = 0;
break;
}
	heap32[(r2+1)] = 2;
}
} while(0);
	r0 = 1;
	r_g0 = r0;
	return;
}

function _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
	var r17;
	var r18;
	var r19;
	var r20;
	var r21;
	var r22;
	var r23;
var __label__ = 0;
	i7 = sp + -56;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+7)];
	r0 = r0 >> 2;
	r1 = heap32[(r0+4)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+1)];
	r4 = heap32[(fp+2)];
	r5 = heap32[(fp+3)];
	r6 = heap32[(fp+4)];
	r7 = heap32[(fp+5)];
	r8 = heap32[(fp+6)];
	r9 = r1 & 16;
	if(r9 !=0) //_LBB838_2
{
	r1 = r2 >> 2;
	r1 = heap32[(r1+2)];
	heap32[(r0+4)] = r1;
}
	r9 = r2 >> 2;
	r10 = heap32[(r9+1)];
	if(r6 !=r8) //_LBB838_6
{
__label__ = 5;
}
else{
	r11 = r7 >> 2;
	r11 = heap32[(r11+1)];
	r12 = _2E_str26;
	r11 = r11 == 0 ? r12 : r11;
	r12 = r10 == 0 ? r12 : r10;
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r11;
	strcmp(i7);
	r13 = r_g0;
	if(r13 <0) //_LBB838_6
{
__label__ = 5;
}
else{
	heap32[(g0)] = r11;
	heap32[(g0+1)] = r12;
	strcmp(i7);
	r11 = r_g0;
	if(r11 >-1) //_LBB838_8
{
	heap32[(r0+2)] = r4;
__label__ = 8;
}
else{
__label__ = 5;
}
}
}
_8: do {
if (__label__ == 5){
	r11 = r5 >> 2;
	r12 = heap32[(r11+1)];
	r13 = _2E_str26;
	r12 = r12 == 0 ? r13 : r12;
	r10 = r10 == 0 ? r13 : r10;
	heap32[(g0)] = r10;
	heap32[(g0+1)] = r12;
	strcmp(i7);
	r13 = r_g0;
	if(r13 <0) //_LBB838_15
{
__label__ = 14;
}
else{
	heap32[(g0)] = r12;
	heap32[(g0+1)] = r10;
	strcmp(i7);
	r10 = r_g0;
	if(r10 <0) //_LBB838_15
{
__label__ = 14;
}
else{
	heap32[(r0)] = r6;
	heap32[(r0+1)] = r4;
	if(r3 <0) //_LBB838_12
{
	if(r3 ==-2) //_LBB838_14
{
	heap32[(r0+3)] = 1;
	r9 = 0;
	r_g0 = r9;
	return;
}
else{
__label__ = 12;
}
}
else{
	r1 = (r6 + r3)|0;
	r2 = 6;
	r3 = 1;
	r1 = r1 == r8 ? r2 : r3;
	heap32[(r0+3)] = r1;
break _8;
}
}
}
_17: do {
if (__label__ == 14){
	r10 = heap32[(r9+3)];
	r12 = r1 & 2;
	r9 = 0;
	r13 = r1;
_19: while(true){
	r14 = r13 & 3;
_21: while(true){
	r15 = r9;
	r9 = r10 << 3;
	r9 = (r2 + r9)|0;
	r20 = 0;
_23: while(true){
	r16 = r20;
	if(r10 !=r16) //_LBB838_16
{
	r17 = sp + -24;
	r18 = r17 >> 2;
	heap32[(fp+-6)] = 0;
	heap32[(r18+1)] = 0;
	heap32[(r18+2)] = 0;
	r19 = r16 << 3;
	r19 = (r9 - r19)|0;
	heap32[(r18+3)] = 0;
	r19 = r19 >> 2;
	heap32[(r18+4)] = r13;
	r20 = heap32[(r19+3)];
	r21 = r20 & 1;
	r22 = r20 >> 8;
	if(r21 != 0) //_LBB838_18
{
	r23 = r6 >> 2;
	r23 = heap32[(r23)];
	r22 = (r23 + r22)|0;
	r22 = r22 >> 2;
	r22 = heap32[(r22)];
}
	r20 = r20 & 2;
	if(r20 ==0) //_LBB838_21
{
	if(r3 !=-2) //_LBB838_23
{
__label__ = 21;
break _23;
}
else{
	r20 = (r16 + 1)|0;
	if(r14 ==0) //_LBB838_88
{
continue _23;
}
else{
__label__ = 21;
break _23;
}
}
}
else{
__label__ = 18;
break _23;
}
}
else{
__label__ = 77;
break _19;
}
}
switch(__label__ ){//multiple entries
case 21:
	r9 = r4 & -3;
break;
case 18:
	r9 = r4;
break;
}
	r20 = heap32[(r19+2)];
	r19 = r20 >> 2;
	r19 = heap32[(r19)];
	r19 = r19 >> 2;
	r19 = heap32[(r19+6)];
	r9 = r21 | r9;
	r21 = (r6 + r22)|0;
	heap32[(g0)] = r20;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r9;
	heap32[(g0+3)] = r5;
	heap32[(g0+4)] = r21;
	heap32[(g0+5)] = r7;
	heap32[(g0+6)] = r8;
	heap32[(g0+7)] = r17;
	__FUNCTION_TABLE__[(r19)>>2](i7);
	r9 = r_g0;
	r20 = heap32[(r0+2)];
	r17 = heap32[(r18+2)];
	r20 = r17 | r20;
	heap32[(r0+2)] = r20;
	r17 = heap32[(r18+3)];
	if(r17 ==2) //_LBB838_26
{
__label__ = 24;
break _19;
}
else{
	if(r17 !=6) //_LBB838_27
{
	r19 = (r10 + -1)|0;
	r10 = heap32[(r0)];
	r21 = r15 & 255;
	if(r21 !=0) //_LBB838_34
{
__label__ = 30;
break _21;
}
else{
	if(r10 !=0) //_LBB838_35
{
__label__ = 31;
break _21;
}
else{
	r10 = heap32[(fp+-6)];
	heap32[(r0)] = r10;
	r15 = heap32[(r18+1)];
	heap32[(r0+1)] = r15;
	if(r10 !=0) //_LBB838_31
{
	r10 = (r19 - r16)|0;
	if(r20 ==0) //_LBB838_87
{
continue _21;
}
else{
__label__ = 29;
break _21;
}
}
else{
__label__ = 73;
break _21;
}
}
}
}
else{
__label__ = 24;
break _19;
}
}
}
_40: do {
switch(__label__ ){//multiple entries
case 30:
	if(r10 ==0) //_LBB838_37
{
	r14 = heap32[(fp+-6)];
	r10 = 0;
__label__ = 36;
break _40;
}
else{
__label__ = 31;
break _40;
}
break;
case 29:
	r10 = heapU8[r2+8];
	r10 = r10 & 1;
	if(r10 != 0) //_LBB838_30
{
__label__ = 73;
}
else{
__label__ = 78;
break _17;
}
break;
}
} while(0);
if (__label__ == 31){
	r14 = heap32[(fp+-6)];
	if(r10 !=r14) //_LBB838_38
{
	if(r14 !=0) //_LBB838_40
{
__label__ = 39;
}
else{
	if(r9 ==0) //_LBB838_41
{
__label__ = 36;
}
else{
__label__ = 39;
}
}
}
else{
	r9 = heap32[(r0+1)];
	r10 = heap32[(r18+1)];
	r9 = r10 | r9;
	heap32[(r0+1)] = r9;
	r9 = r15;
__label__ = 73;
}
}
_50: do {
if (__label__ == 36){
if(!(r14 ==0)) //_LBB838_44
{
if(!(r21 ==0)) //_LBB838_44
{
__label__ = 39;
break _50;
}
}
	r9 = r15;
__label__ = 73;
}
} while(0);
if (__label__ == 39){
	r9 = heap32[(r0+3)];
_57: do {
	if(r20 >3) //_LBB838_47
{
	r14 = r20 & 1;
if(!(r14 ==0)) //_LBB838_52
{
if(!(r12 ==0)) //_LBB838_52
{
	r13 = r1;
__label__ = 43;
break _57;
}
}
	r13 = r14 == 0 ? r13 : r1;
	r10 = 1;
	r9 = r9 == 0 ? r10 : r9;
	if(r17 ==0) //_LBB838_54
{
	r17 = r10;
__label__ = 64;
}
else{
__label__ = 64;
}
}
else{
__label__ = 43;
}
} while(0);
_64: do {
if (__label__ == 43){
	if(r9 <1) //_LBB838_55
{
_68: do {
if(!(r17 <4)) //_LBB838_59
{
	r9 = r17 & 1;
	if(r9 != 0) //_LBB838_58
{
	r9 = heapU8[r2+8];
	r9 = r9 & 2;
if(!(r9 ==0)) //_LBB838_57
{
break _68;
}
}
	r9 = 1;
break _64;
}
} while(0);
	if(r3 <0) //_LBB838_61
{
	if(r3 !=-2) //_LBB838_63
{
	r9 = heap32[(r11)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+7)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r8;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r9 = r_g0;
}
else{
	r9 = 1;
}
}
else{
	r9 = (r10 + r3)|0;
	r10 = 6;
	r14 = 1;
	r9 = r9 == r8 ? r10 : r14;
}
}
	if(r17 <1) //_LBB838_66
{
	if(r9 <4) //_LBB838_70
{
__label__ = 60;
}
else{
	r10 = r9 & 1;
	if(r10 != 0) //_LBB838_69
{
	r10 = heapU8[r2+8];
	r10 = r10 & 2;
	if(r10 ==0) //_LBB838_68
{
__label__ = 58;
}
else{
__label__ = 60;
}
}
else{
__label__ = 58;
}
}
if (__label__ == 60){
	r10 = heap32[(fp+-6)];
	if(r3 <0) //_LBB838_72
{
if(!(r3 ==-2)) //_LBB838_68
{
	r14 = heap32[(r11)];
	r14 = r14 >> 2;
	r14 = heap32[(r14+7)];
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r3;
	heap32[(g0+2)] = r10;
	heap32[(g0+3)] = r7;
	heap32[(g0+4)] = r8;
	__FUNCTION_TABLE__[(r14)>>2](i7);
	r17 = r_g0;
break _64;
}
}
else{
	r10 = (r10 + r3)|0;
	r14 = 6;
	r17 = 1;
	r17 = r10 == r8 ? r14 : r17;
break _64;
}
}
	r17 = 1;
}
}
} while(0);
	r10 = r9 ^ r17;
	if(r10 <4) //_LBB838_81
{
	r9 = r9 & r17;
	heap32[(r0)] = 0;
	if(r9 <4) //_LBB838_83
{
	r9 = 1;
	heap32[(r0+3)] = 1;
}
else{
__label__ = 71;
break _19;
}
}
else{
	if(r17 >3) //_LBB838_77
{
	r9 = heap32[(fp+-6)];
	heap32[(r0)] = r9;
	r9 = heap32[(r18+1)];
	r15 = 0;
	heap32[(r0+1)] = r9;
	r9 = r17;
}
	heap32[(r0+3)] = r9;
	r10 = r9 & 2;
	if(r10 !=0) //_LBB838_13
{
__label__ = 12;
break _17;
}
else{
	r9 = r9 & 1;
	if(r9 ==0) //_LBB838_13
{
__label__ = 12;
break _17;
}
else{
	r9 = r15;
}
}
}
}
	r10 = (r19 - r16)|0;
	if(r20 !=4) //_LBB838_86
{
continue _19;
}
else{
__label__ = 78;
break _17;
}
}
switch(__label__ ){//multiple entries
case 24:
	r20 = heap32[(fp+-6)];
	heap32[(r0)] = r20;
	r20 = heap32[(r18+1)];
	heap32[(r0+1)] = r20;
	heap32[(r0+3)] = r17;
	r_g0 = r9;
	return;
break;
case 71:
	heap32[(r0+3)] = 2;
	r9 = 1;
	r_g0 = r9;
	return;
break;
case 77:
	r9 = r15;
__label__ = 78;
break;
}
}
} while(0);
if (__label__ == 12){
	r9 = 0;
}
	r0 = r9 & 255;
	r_g0 = r0;
	return;
}
} while(0);
	r0 = 0;
	r_g0 = r0;
	return;
}

function _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+4)];
	r2 = heap32[(fp)];
	r3 = heap32[(fp+3)];
	if(r0 !=r1) //_LBB839_4
{
__label__ = 4;
}
else{
	r4 = r3 >> 2;
	r5 = r2 >> 2;
	r4 = heap32[(r4+1)];
	r5 = heap32[(r5+1)];
	r6 = _2E_str26;
	r4 = r4 == 0 ? r6 : r4;
	r5 = r5 == 0 ? r6 : r5;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r4;
	strcmp(i7);
	r6 = r_g0;
	if(r6 <0) //_LBB839_4
{
__label__ = 4;
}
else{
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r5;
	strcmp(i7);
	r4 = r_g0;
	if(r4 <0) //_LBB839_4
{
__label__ = 4;
}
else{
	r0 = 6;
__label__ = 15;
}
}
}
if (__label__ == 4){
	r4 = heap32[(fp+1)];
	r5 = r2 >> 2;
	r5 = heap32[(r5+3)];
	r5 = (r5 + 1)|0;
_7: while(true){
	if(r5 !=1) //_LBB839_5
{
	r6 = r5 << 3;
	r6 = (r2 + r6)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6+1)];
	r7 = r6 & 2;
_10: do {
	if(r7 !=0) //_LBB839_7
{
	r7 = r6 & 1;
if(!(r7 ==0)) //_LBB839_9
{
	if(r4 ==-3) //_LBB839_6
{
break _10;
}
}
	r8 = r5 << 1;
	r6 = r6 >> 8;
	if(r7 != 0) //_LBB839_11
{
	r9 = r0 >> 2;
	r9 = heap32[(r9)];
	r6 = (r9 + r6)|0;
	r6 = r6 >> 2;
	r6 = heap32[(r6)];
}
	r8 = r8 << 2;
	r8 = (r2 + r8)|0;
	r8 = r8 >> 2;
	r8 = heap32[(r8)];
	r9 = r8 >> 2;
	r9 = heap32[(r9)];
	r9 = r9 >> 2;
	r9 = heap32[(r9+7)];
	r6 = (r0 + r6)|0;
	heap32[(g0)] = r8;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r6;
	heap32[(g0+3)] = r3;
	heap32[(g0+4)] = r1;
	__FUNCTION_TABLE__[(r9)>>2](i7);
	r6 = r_g0;
if(!(r6 <4)) //_LBB839_6
{
__label__ = 12;
break _7;
}
}
} while(0);
	r5 = (r5 + -1)|0;
continue _7;
}
else{
__label__ = 14;
break _7;
}
}
switch(__label__ ){//multiple entries
case 14:
	r0 = 1;
break;
case 12:
	r0 = r6 | r7;
	r_g0 = r0;
	return;
break;
}
}
	r_g0 = r0;
	return;
}

function _ZN10__cxxabiv121__vmi_class_type_infoD0Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVSt9type_info;
	r2 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r2)] = r1;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	return;
}

function _ZN10__cxxabiv121__vmi_class_type_infoD1Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = _ZTVSt9type_info;
	r0 = r0 >> 2;
	r1 = (r1 + 8)|0;
	heap32[(r0)] = r1;
	return;
}

function __extendsfdf2(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 & 2147483647;
	r2 = r0 & -2147483648;
	r3 = (r1 + -8388608)|0;
	if(uint(r3) >uint(2130706431)) //_LBB842_2
{
	if(uint(r1) <uint(2139095040)) //_LBB842_4
{
	if(r1 !=0) //_LBB842_6
{
	r0 = r1 >>> 1;
	r0 = r1 | r0;
	r3 = r0 >>> 2;
	r0 = r0 | r3;
	r3 = r0 >>> 4;
	r0 = r0 | r3;
	r3 = r0 >>> 8;
	r0 = r0 | r3;
	r3 = r0 >>> 16;
	r0 = r0 | r3;
	r3 = r0 ^ -1;
	r4 = 1431655765;
	r3 = r3 >>> 1;
	r0 = r4 & (~r0);
	r3 = r3 & 1431655765;
	r0 = (r0 + r3)|0;
	r3 = r0 >>> 2;
	r0 = r0 & 858993459;
	r3 = r3 & 858993459;
	r0 = (r0 + r3)|0;
	r3 = r0 >>> 4;
	r0 = r0 & 252645135;
	r3 = r3 & 252645135;
	r0 = (r0 + r3)|0;
	r3 = r0 >>> 8;
	r0 = r0 & 16711935;
	r3 = r3 & 16711935;
	r0 = (r0 + r3)|0;
	r3 = r0 & 65535;
	r0 = r0 >>> 16;
	r0 = (r3 + r0)|0;
	r3 = (r0 + 21)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r3;
	r3 = 905;
	__ashldi3(i7);
	r1 = r_g0;
	r0 = (r3 - r0)|0;
	r3 = r_g1 ^ 1048576;
	r0 = r0 << 20;
	r0 = r3 | r0;
}
else{
	r1 = 0;
	r0 = r1;
}
}
else{
	r1 = r0 >>> 3;
	r3 = r1 & 524288;
	r1 = r0 & 4194303;
	r0 = r3 | 2146435072;
}
}
else{
	r0 = r1 >>> 3;
	r1 = r1 << 29;
	r0 = (r0 + 939524096)|0;
}
	r3 = sp + -8;
	r3 = r3 >> 2;
	r0 = r0 | r2;
	heap32[(fp+-2)] = r1;
	heap32[(r3+1)] = r0;
	f0 = llvm_readDouble((sp+-8));
	f_g0 = f0;
	return;
}

function __fixdfsi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = sp + 0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = r0 >>> 20;
	r1 = r1 & 2047;
	r2 = r0 & 1048575;
	r3 = -1;
	r4 = 1;
	r5 = (r1 + -1023)|0;
	r0 = r0 < 0 ? r3 : r4;
	r3 = heap32[(fp)];
	r2 = r2 | 1048576;
	if(uint(r5) >uint(51)) //_LBB843_2
{
	if(r5 <0) //_LBB843_5
{
	r0 = 0;
	r_g0 = r0;
	return;
}
else{
	r1 = (r1 + -1075)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	__ashldi3(i7);
}
}
else{
	r5 = 1075;
	r1 = (r5 - r1)|0;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r1;
	__lshrdi3(i7);
}
	heap32[(g0)] = r_g0;
	heap32[(g0+1)] = r_g1;
	heap32[(g0+2)] = r0;
	heap32[(g0+3)] = r0;
	__muldi3(i7);
	return;
}

function __floatsidf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var f0;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	if(r0 !=0) //_LBB844_2
{
	r1 = r0 >> 31;
	r2 = (r0 + r1)|0;
	r1 = r2 ^ r1;
	r2 = r1 >>> 1;
	r2 = r1 | r2;
	r3 = r2 >>> 2;
	r2 = r2 | r3;
	r3 = r2 >>> 4;
	r2 = r2 | r3;
	r3 = r2 >>> 8;
	r2 = r2 | r3;
	r3 = r2 >>> 16;
	r2 = r2 | r3;
	r3 = r2 ^ -1;
	r4 = 1431655765;
	r3 = r3 >>> 1;
	r2 = r4 & (~r2);
	r3 = r3 & 1431655765;
	r2 = (r2 + r3)|0;
	r3 = r2 >>> 2;
	r2 = r2 & 858993459;
	r3 = r3 & 858993459;
	r2 = (r2 + r3)|0;
	r3 = r2 >>> 4;
	r2 = r2 & 252645135;
	r3 = r3 & 252645135;
	r2 = (r2 + r3)|0;
	r3 = r2 >>> 8;
	r2 = r2 & 16711935;
	r3 = r3 & 16711935;
	r2 = (r2 + r3)|0;
	r3 = r2 & 65535;
	r2 = r2 >>> 16;
	r4 = 31;
	r2 = (r3 + r2)|0;
	r3 = 52;
	r4 = (r4 - r2)|0;
	r3 = (r3 - r4)|0;
	heap32[(g0)] = r1;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r3;
	r1 = 1054;
	__ashldi3(i7);
	r1 = (r1 - r2)|0;
	r2 = r_g1 ^ 1048576;
	r1 = r1 << 20;
	r4 = sp + -8;
	r1 = (r2 + r1)|0;
	r0 = r0 & -2147483648;
	r2 = r4 >> 2;
	r0 = r1 | r0;
	heap32[(fp+-2)] = r_g0;
	heap32[(r2+1)] = r0;
	f0 = llvm_readDouble((sp+-8));
	f_g0 = f0;
	return;
}
else{
	f0 =                         0;
	f_g0 = f0;
	return;
}
}

function __floatunsidf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var f0;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	if(r0 !=0) //_LBB845_2
{
	r1 = r0 >>> 1;
	r1 = r0 | r1;
	r2 = r1 >>> 2;
	r1 = r1 | r2;
	r2 = r1 >>> 4;
	r1 = r1 | r2;
	r2 = r1 >>> 8;
	r1 = r1 | r2;
	r2 = r1 >>> 16;
	r1 = r1 | r2;
	r2 = r1 ^ -1;
	r3 = 1431655765;
	r2 = r2 >>> 1;
	r1 = r3 & (~r1);
	r2 = r2 & 1431655765;
	r1 = (r1 + r2)|0;
	r2 = r1 >>> 2;
	r1 = r1 & 858993459;
	r2 = r2 & 858993459;
	r1 = (r1 + r2)|0;
	r2 = r1 >>> 4;
	r1 = r1 & 252645135;
	r2 = r2 & 252645135;
	r1 = (r1 + r2)|0;
	r2 = r1 >>> 8;
	r1 = r1 & 16711935;
	r2 = r2 & 16711935;
	r1 = (r1 + r2)|0;
	r2 = r1 & 65535;
	r1 = r1 >>> 16;
	r3 = 31;
	r1 = (r2 + r1)|0;
	r2 = 52;
	r3 = (r3 - r1)|0;
	r2 = (r2 - r3)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = 0;
	heap32[(g0+2)] = r2;
	r0 = 1054;
	__ashldi3(i7);
	r0 = (r0 - r1)|0;
	r1 = sp + -8;
	r3 = r_g1 ^ 1048576;
	r0 = r0 << 20;
	r1 = r1 >> 2;
	r0 = (r3 + r0)|0;
	heap32[(fp+-2)] = r_g0;
	heap32[(r1+1)] = r0;
	f0 = llvm_readDouble((sp+-8));
	f_g0 = f0;
	return;
}
else{
	f0 =                         0;
	f_g0 = f0;
	return;
}
}

function __truncdfsf2(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var f0;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = sp + 0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = r0 & 2147483647;
	r2 = heap32[(fp)];
	r3 = (r1 + -940572672)|0;
	r4 = (r1 + -1206910976)|0;
_1: do {
	if(uint(r3) >=uint(r4)) //_LBB846_6
{
	r3 = 0;
	r4 = 2146435072;
	r5 = r2 == r3;
	r4 = uint(r1) < uint(r4);
	r4 = r1 == 2146435072 ? r5 : r4;
	if(r4 != 0) //_LBB846_8
{
	r4 = 1206910976;
	r4 = uint(r1) < uint(r4);
	r4 = r1 == 1206910976 ? r5 : r4;
	if(r4 != 0) //_LBB846_10
{
	r4 = 897;
	r1 = r1 >>> 20;
	r1 = (r4 - r1)|0;
	if(r1 <53) //_LBB846_12
{
	r4 = r0 & 1048575;
	r4 = r4 | 1048576;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	__lshrdi3(i7);
	r5 = r_g0;
	r6 = r_g1;
	r7 = 64;
	r1 = (r7 - r1)|0;
	heap32[(g0)] = r2;
	heap32[(g0+1)] = r4;
	heap32[(g0+2)] = r1;
	__ashldi3(i7);
	r1 = r_g0 | r_g1;
	r1 = r1 != r3;
	r1 = r1 & 1;
	r2 = r5 & 536870911;
	r4 = r5 >>> 29;
	r5 = r6 << 3;
	r1 = r1 | r2;
	r2 = r4 | r5;
	if(uint(r1) <uint(268435457)) //_LBB846_14
{
	r1 = r1 ^ 268435456;
	r3 = r1 | r3;
	if(r3 ==0) //_LBB846_16
{
	r3 = r2 & 1;
	r3 = (r3 + r2)|0;
}
else{
	r3 = r2;
}
}
else{
	r3 = (r2 + 1)|0;
}
}
else{
break _1;
}
}
else{
	r3 = 2139095040;
}
}
else{
	r1 = r2 & 4194303;
	r3 = r1 | 2143289344;
}
}
else{
	r1 = r2 >>> 29;
	r3 = r0 << 3;
	r1 = r1 | r3;
	r2 = r2 & 536870911;
	if(uint(r2) <uint(268435457)) //_LBB846_3
{
	r3 = (r1 + 1073741824)|0;
	r1 = 0;
	r2 = r2 ^ 268435456;
	r1 = r2 | r1;
	if(r1 ==0) //_LBB846_5
{
	r1 = r3 & 1;
	r3 = (r1 + r3)|0;
}
}
else{
	r3 = (r1 + 1073741825)|0;
}
}
} while(0);
	r0 = r0 & -2147483648;
	r0 = r3 | r0;
	heap32[(fp+-1)] = r0;
	f0 = heapFloat[(fp+-1)];
	f_g0 = f0;
	return;
}

function __fixunsdfsi(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = sp + 0;
	r0 = r0 >> 2;
	r0 = heap32[(r0+1)];
	r1 = r0 >>> 20;
	r1 = r1 & 2047;
	r2 = (r1 + -1023)|0;
if(!(r2 <0)) //_LBB847_3
{
if(!(r0 <0)) //_LBB847_3
{
	r2 = heap32[(fp)];
	r2 = r2 >>> 21;
	r0 = r0 << 11;
	r0 = r2 | r0;
	r2 = 1054;
	r0 = r0 | -2147483648;
	r1 = (r2 - r1)|0;
	r0 = r0 >>> r1;
	r_g0 = r0;
	return;
}
}
	r0 = 0;
	r_g0 = r0;
	return;
}

function __floatundisf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var f0;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r0 | r1;
	if(r2 ==0) //_LBB848_12
{
	f0 =                         0;
	f_g0 = f0;
	return;
}
else{
	r2 = r0 >>> 1;
	r3 = r1 >>> 1;
	r2 = r0 | r2;
	r3 = r1 | r3;
	r4 = r2 >>> 2;
	r5 = r3 >>> 2;
	r2 = r2 | r4;
	r3 = r3 | r5;
	r4 = r2 >>> 4;
	r5 = r3 >>> 4;
	r2 = r2 | r4;
	r3 = r3 | r5;
	r4 = r2 >>> 8;
	r5 = r3 >>> 8;
	r2 = r2 | r4;
	r3 = r3 | r5;
	r4 = r2 >>> 16;
	r5 = r3 >>> 16;
	r2 = r2 | r4;
	r3 = r3 | r5;
	r4 = r2 ^ -1;
	r5 = 1431655765;
	r6 = r3 ^ -1;
	r4 = r4 >>> 1;
	r6 = r6 >>> 1;
	r2 = r5 & (~r2);
	r4 = r4 & 1431655765;
	r2 = (r2 + r4)|0;
	r3 = r5 & (~r3);
	r4 = r6 & 1431655765;
	r3 = (r3 + r4)|0;
	r4 = r2 >>> 2;
	r5 = r3 >>> 2;
	r2 = r2 & 858993459;
	r4 = r4 & 858993459;
	r2 = (r2 + r4)|0;
	r3 = r3 & 858993459;
	r4 = r5 & 858993459;
	r3 = (r3 + r4)|0;
	r4 = r2 >>> 4;
	r5 = r3 >>> 4;
	r2 = r2 & 252645135;
	r4 = r4 & 252645135;
	r2 = (r2 + r4)|0;
	r3 = r3 & 252645135;
	r4 = r5 & 252645135;
	r3 = (r3 + r4)|0;
	r4 = r2 >>> 8;
	r5 = r3 >>> 8;
	r2 = r2 & 16711935;
	r4 = r4 & 16711935;
	r2 = (r2 + r4)|0;
	r3 = r3 & 16711935;
	r4 = r5 & 16711935;
	r3 = (r3 + r4)|0;
	r4 = r2 & 65535;
	r2 = r2 >>> 16;
	r2 = (r4 + r2)|0;
	r4 = r3 & 65535;
	r3 = r3 >>> 16;
	r3 = (r4 + r3)|0;
	r2 = (r2 + 32)|0;
	r4 = 64;
	r2 = r1 != 0 ? r3 : r2;
	r3 = 63;
	r4 = (r4 - r2)|0;
	r2 = (r3 - r2)|0;
	if(r4 <25) //_LBB848_10
{
	r3 = 24;
	r3 = (r3 - r4)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	__ashldi3(i7);
	r1 = r_g0;
}
else{
	if(r4 ==25) //_LBB848_5
{
	r1 = r1 << 1;
	r3 = r0 >>> 31;
	r0 = r0 << 1;
	r1 = r1 | r3;
}
else{
	if(r4 !=26) //_LBB848_6
{
	r3 = (r4 + -26)|0;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	heap32[(g0+2)] = r3;
	__lshrdi3(i7);
	r3 = r_g0;
	r5 = r_g1;
	r6 = 90;
	r6 = (r6 - r4)|0;
	heap32[(g0)] = -1;
	heap32[(g0+1)] = -1;
	heap32[(g0+2)] = r6;
	__lshrdi3(i7);
	r0 = r_g0 & r0;
	r1 = r_g1 & r1;
	r0 = r0 | r1;
	r1 = 0;
	r0 = r0 != r1;
	r0 = r0 & 1;
	r0 = r0 | r3;
	r1 = r5;
}
}
	r3 = r0 >>> 2;
	r3 = r3 & 1;
	r0 = r3 | r0;
	r3 = (r0 + 1)|0;
	r5 = 1;
	r6 = 0;
	r0 = uint(r3) < uint(r0) ? r5 : r6;
	r0 = r3 == 0 ? r5 : r0;
	r0 = (r1 + r0)|0;
	r1 = r3 >>> 2;
	r5 = r0 << 30;
	r1 = r1 | r5;
	r5 = r1 & 16777216;
	if(r5 !=0) //_LBB848_9
{
	r1 = r3 >>> 3;
	r0 = r0 << 29;
	r1 = r1 | r0;
	r2 = r4;
}
}
	r0 = r2 << 23;
	r0 = (r0 + 1065353216)|0;
	r1 = r1 & 8388607;
	r0 = r0 | r1;
	heap32[(fp+-1)] = r0;
	f0 = heapFloat[(fp+-1)];
	f_g0 = f0;
	return;
}
}

function __floatdisf(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var f0;
var __label__ = 0;
	i7 = sp + -24;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = heap32[(fp+1)];
	r2 = r0 | r1;
	if(r2 ==0) //_LBB849_12
{
	f0 =                         0;
	f_g0 = f0;
	return;
}
else{
	r2 = r1 >> 31;
	r1 = r2 ^ r1;
	r0 = r2 ^ r0;
	r3 = 1;
	r4 = 0;
	r5 = (r0 - r2)|0;
	r1 = (r1 - r2)|0;
	r0 = uint(r0) < uint(r2) ? r3 : r4;
	r0 = (r1 - r0)|0;
	r1 = r5 >>> 1;
	r6 = r0 >>> 1;
	r1 = r5 | r1;
	r6 = r0 | r6;
	r7 = r1 >>> 2;
	r8 = r6 >>> 2;
	r1 = r1 | r7;
	r6 = r6 | r8;
	r7 = r1 >>> 4;
	r8 = r6 >>> 4;
	r1 = r1 | r7;
	r6 = r6 | r8;
	r7 = r1 >>> 8;
	r8 = r6 >>> 8;
	r1 = r1 | r7;
	r6 = r6 | r8;
	r7 = r1 >>> 16;
	r8 = r6 >>> 16;
	r1 = r1 | r7;
	r6 = r6 | r8;
	r7 = r1 ^ -1;
	r8 = 1431655765;
	r9 = r6 ^ -1;
	r7 = r7 >>> 1;
	r9 = r9 >>> 1;
	r1 = r8 & (~r1);
	r7 = r7 & 1431655765;
	r1 = (r1 + r7)|0;
	r6 = r8 & (~r6);
	r7 = r9 & 1431655765;
	r6 = (r6 + r7)|0;
	r7 = r1 >>> 2;
	r8 = r6 >>> 2;
	r1 = r1 & 858993459;
	r7 = r7 & 858993459;
	r1 = (r1 + r7)|0;
	r6 = r6 & 858993459;
	r7 = r8 & 858993459;
	r6 = (r6 + r7)|0;
	r7 = r1 >>> 4;
	r8 = r6 >>> 4;
	r1 = r1 & 252645135;
	r7 = r7 & 252645135;
	r1 = (r1 + r7)|0;
	r6 = r6 & 252645135;
	r7 = r8 & 252645135;
	r6 = (r6 + r7)|0;
	r7 = r1 >>> 8;
	r8 = r6 >>> 8;
	r1 = r1 & 16711935;
	r7 = r7 & 16711935;
	r1 = (r1 + r7)|0;
	r6 = r6 & 16711935;
	r7 = r8 & 16711935;
	r6 = (r6 + r7)|0;
	r7 = r1 & 65535;
	r1 = r1 >>> 16;
	r1 = (r7 + r1)|0;
	r7 = r6 & 65535;
	r6 = r6 >>> 16;
	r6 = (r7 + r6)|0;
	r1 = (r1 + 32)|0;
	r7 = 64;
	r1 = r0 != 0 ? r6 : r1;
	r6 = 63;
	r7 = (r7 - r1)|0;
	r1 = (r6 - r1)|0;
	if(r7 <25) //_LBB849_10
{
	r3 = 24;
	r3 = (r3 - r7)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r3;
	__ashldi3(i7);
	r5 = r_g0;
}
else{
	if(r7 ==25) //_LBB849_5
{
	r0 = r0 << 1;
	r6 = r5 >>> 31;
	r5 = r5 << 1;
	r0 = r0 | r6;
}
else{
	if(r7 !=26) //_LBB849_6
{
	r6 = (r7 + -26)|0;
	heap32[(g0)] = r5;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r6;
	__lshrdi3(i7);
	r6 = r_g0;
	r8 = r_g1;
	r9 = 90;
	r9 = (r9 - r7)|0;
	heap32[(g0)] = -1;
	heap32[(g0+1)] = -1;
	heap32[(g0+2)] = r9;
	__lshrdi3(i7);
	r5 = r_g0 & r5;
	r0 = r_g1 & r0;
	r0 = r5 | r0;
	r0 = r0 != r4;
	r0 = r0 & 1;
	r5 = r0 | r6;
	r0 = r8;
}
}
	r6 = r5 >>> 2;
	r6 = r6 & 1;
	r5 = r6 | r5;
	r6 = (r5 + 1)|0;
	r5 = uint(r6) < uint(r5) ? r3 : r4;
	r5 = r6 == 0 ? r3 : r5;
	r0 = (r0 + r5)|0;
	r5 = r6 >>> 2;
	r3 = r0 << 30;
	r5 = r5 | r3;
	r3 = r5 & 16777216;
	if(r3 !=0) //_LBB849_9
{
	r0 = r0 >> 2;
	r5 = r5 >>> 1;
	r0 = r0 << 31;
	r5 = r5 | r0;
	r1 = r7;
}
}
	r0 = r1 << 23;
	r1 = r5 & 8388607;
	r2 = r2 & -2147483648;
	r1 = r1 | r2;
	r0 = (r0 + 1065353216)|0;
	r0 = r1 | r0;
	heap32[(fp+-1)] = r0;
	f0 = heapFloat[(fp+-1)];
	f_g0 = f0;
	return;
}
}

function _GLOBAL__I__mandreel_create_tcp_socket(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = mandreel_flash_tcp_onError__index__;
	r1 = _ZZL32_mandreel_init_tcp_socket_librayvE47s_723478567_mandreel_mandreel_flash_tcp_onError;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r1;
	iMandreelRegisterExternalCallback(i7);
	return;
}

function mandreel_flash_tcp_onConnect(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function mandreel_flash_tcp_onError(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function mandreel_flash_tcp_receive_callbak(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -32784;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
	r1 = heap32[(fp)];
	r2 = heapU8[r0];
_1: do {
	if(r2 !=0) //_LBB853_2
{
	r3 = (r0 + 1)|0;
	r4 = 0;
_3: while(true){
	r2 = (r4 + 1)|0;
	r5 = heapU8[r3+r4];
	r4 = r2;
	if(r5 !=0) //_LBB853_3
{
continue _3;
}
else{
break _1;
}
}
}
else{
	r2 = 0;
}
} while(0);
	r3 = sp + -32768;
	heap32[(g0)] = r0;
	heap32[(g0+1)] = r2;
	heap32[(g0+2)] = r3;
	heap32[(g0+3)] = 32768;
	r0 = _ZL10s_aSockets;
	r2 = 0;
	_ZN12mandreel_b6410b64_decodeEPKcjPvj(i7);
	r4 = r_g0;
	r6 = _ZL10s_aSockets;
_7: while(true){
	if(uint(r2) <uint(8)) //_LBB853_5
{
	r5 = (r2 * 8198)|0;
	r5 = r5 << 2;
	r5 = (r6 + r5)|0;
	r5 = r5 >> 2;
	r5 = heap32[(r5+8196)];
	if(r5 !=r1) //_LBB853_7
{
	r2 = (r2 + 1)|0;
	r0 = (r0 + 32792)|0;
continue _7;
}
else{
__label__ = 9;
break _7;
}
}
else{
__label__ = 8;
break _7;
}
}
if (__label__ == 8){
	r0 = 0;
}
	r1 = r0 >> 2;
	r2 = heap32[(r1+8194)];
	if(r4 >0) //_LBB853_12
{
	r5 = r4;
_16: while(true){
	r6 = (r2 + 1)|0;
	r5 = (r5 + -1)|0;
	r6 = r6 & 32767;
	r7 = (r3 + 1)|0;
	r3 = heapU8[r3];
	heap8[r0+r2] = r3;
	r3 = r7;
	r2 = r6;
if(!(r5 !=0)) //_LBB853_13
{
break _16;
}
}
	r2 = r6;
}
	heap32[(r1+8194)] = r2;
	r0 = heap32[(r1+8192)];
	r0 = (r0 + r4)|0;
	heap32[(r1+8192)] = r0;
	return;
}

function _GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	heap32[(g0)] = 0;
	_Z41__static_initialization_and_destruction_0ii(i7);
	return;
}

function _ZNSt5dequeIjSaIjEE5eraseESt15__rw_deque_iterIjiPjRjS0_ES5_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+4)];
	r0 = r0 >> 2;
	r1 = heap32[(fp)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	r4 = heap32[(r0)];
	r5 = heap32[(fp+3)];
	r6 = heap32[(r0+1)];
	r7 = r4 | r3;
	if(r7 !=0) //_LBB855_2
{
	r7 = r6 >> 2;
	r8 = (r6 - r5)|0;
	r9 = r5 >> 2;
	r8 = r8 << 3;
	r9 = heap32[(r9)];
	r7 = heap32[(r7)];
	r7 = (r4 - r7)|0;
	r8 = (r8 + -32)|0;
	r9 = (r9 + 128)|0;
	r9 = (r9 - r3)|0;
	r7 = r7 >> 2;
	r8 = r8 & -32;
	r7 = (r7 + r8)|0;
	r8 = r9 >> 2;
	r7 = (r7 + r8)|0;
}
else{
	r7 = (r4 - r3)|0;
	r7 = r7 >> 2;
}
	r8 = r2 >> 2;
	r9 = heap32[(r8)];
	r10 = heap32[(r8+1)];
	r11 = r3 | r9;
	if(r11 !=0) //_LBB855_5
{
	r11 = (r5 - r10)|0;
	r12 = r5 >> 2;
	r13 = r10 >> 2;
	r11 = r11 << 3;
	r13 = heap32[(r13)];
	r12 = heap32[(r12)];
	r11 = (r11 + -32)|0;
	r12 = (r3 - r12)|0;
	r13 = (r13 + 128)|0;
	r13 = (r13 - r9)|0;
	r11 = r11 & -32;
	r12 = r12 >> 2;
	r11 = (r11 + r12)|0;
	r12 = r13 >> 2;
	r11 = (r11 + r12)|0;
}
else{
	r11 = (r3 - r9)|0;
	r11 = r11 >> 2;
}
	r2 = (r2 + 8)|0;
	r12 = heap32[(r8+2)];
	r13 = heap32[(r8+3)];
	r14 = r12 | r4;
	if(r14 !=0) //_LBB855_8
{
	r14 = (r13 - r6)|0;
	r15 = r13 >> 2;
	r16 = r6 >> 2;
	r14 = r14 << 3;
	r16 = heap32[(r16)];
	r15 = heap32[(r15)];
	r14 = (r14 + -32)|0;
	r15 = (r12 - r15)|0;
	r16 = (r16 + 128)|0;
	r16 = (r16 - r4)|0;
	r14 = r14 & -32;
	r15 = r15 >> 2;
	r14 = (r14 + r15)|0;
	r15 = r16 >> 2;
	r14 = (r14 + r15)|0;
}
else{
	r14 = (r12 - r4)|0;
	r14 = r14 >> 2;
}
	if(r11 >=r14) //_LBB855_36
{
	r0 = (r5 + 4)|0;
	r9 = r3;
_15: while(true){
	r10 = r4 | r12;
	if(r10 !=0) //_LBB855_44
{
	r10 = r6 >> 2;
	r11 = (r6 - r13)|0;
	r14 = r13 >> 2;
	r11 = r11 << 3;
	r14 = heap32[(r14)];
	r10 = heap32[(r10)];
	r10 = (r4 - r10)|0;
	r11 = (r11 + -32)|0;
	r14 = (r14 + 128)|0;
	r14 = (r14 - r12)|0;
	r10 = r10 >> 2;
	r11 = r11 & -32;
	r10 = (r10 + r11)|0;
	r11 = r14 >> 2;
	r10 = (r10 + r11)|0;
}
else{
	r10 = (r4 - r12)|0;
	r10 = r10 >> 2;
}
	if(r10 !=0) //_LBB855_37
{
	r10 = r4 >> 2;
	r11 = r9 >> 2;
	r10 = heap32[(r10)];
	r4 = (r4 + 4)|0;
	r14 = r6 >> 2;
	heap32[(r11)] = r10;
	r10 = heap32[(r14)];
	r10 = (r10 + 128)|0;
	if(r4 ==r10) //_LBB855_39
{
	r6 = (r6 + 4)|0;
	r4 = heap32[(r14+1)];
}
	r10 = r0 >> 2;
	r9 = (r9 + 4)|0;
	r11 = heap32[(r10+-1)];
	r11 = (r11 + 128)|0;
if(!(r9 !=r11)) //_LBB855_42
{
	r9 = heap32[(r10)];
	r0 = (r0 + 4)|0;
}
}
else{
break _15;
}
}
_27: do {
if(!(r7 ==0)) //_LBB855_59
{
	r0 = heap32[(r8+2)];
_29: while(true){
	r0 = (r0 + -4)|0;
	heap32[(r8+2)] = r0;
	r4 = heap32[(r8+3)];
	r6 = heap32[(r8+1)];
	if(r6 !=r4) //_LBB855_51
{
__label__ = 45;
}
else{
	r6 = heap32[(r8)];
	if(r6 !=r0) //_LBB855_51
{
__label__ = 45;
}
else{
	r0 = r4 >> 2;
	r4 = heap32[(r0)];
__label__ = 47;
}
}
if (__label__ == 45){
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	if(r0 ==r4) //_LBB855_53
{
__label__ = 47;
}
else{
__label__ = 46;
}
}
_36: do {
if (__label__ == 47){
	heap32[(g0)] = r4;
	_ZdlPv(i7);
	r0 = heap32[(r8+3)];
	r4 = heap32[(r8+1)];
if(!(r4 !=r0)) //_LBB855_58
{
	r4 = heap32[(r8)];
	r6 = heap32[(r8+2)];
if(!(r4 !=r6)) //_LBB855_58
{
	r0 = heap32[(r8+4)];
	r0 = (r0 + -4)|0;
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = r2;
	heap32[(r8)] = 0;
	heap32[(r8+1)] = r2;
	r0 = 0;
	heap32[(r8+4)] = 0;
	heap32[(r8+5)] = 0;
break _36;
}
}
	r4 = r0 >> 2;
	r6 = (r0 + -4)|0;
	heap32[(r4)] = 0;
	heap32[(r8+3)] = r6;
	r0 = heap32[(r4+-1)];
	r0 = (r0 + 128)|0;
	heap32[(r8+2)] = r0;
	heap32[(r8+3)] = r6;
}
} while(0);
	r7 = (r7 + -1)|0;
	if(r7 ==0) //_LBB855_59
{
break _27;
}
}
}
} while(0);
	r0 = r1 >> 2;
	heap32[(r0)] = r3;
	heap32[(r0+1)] = r5;
	return;
}
else{
_44: while(true){
	r12 = r9 | r3;
	if(r12 !=0) //_LBB855_20
{
	r12 = r10 >> 2;
	r13 = (r10 - r5)|0;
	r11 = r5 >> 2;
	r13 = r13 << 3;
	r11 = heap32[(r11)];
	r12 = heap32[(r12)];
	r12 = (r9 - r12)|0;
	r13 = (r13 + -32)|0;
	r11 = (r11 + 128)|0;
	r11 = (r11 - r3)|0;
	r12 = r12 >> 2;
	r13 = r13 & -32;
	r12 = (r12 + r13)|0;
	r13 = r11 >> 2;
	r12 = (r12 + r13)|0;
}
else{
	r12 = (r9 - r3)|0;
	r12 = r12 >> 2;
}
	if(r12 !=0) //_LBB855_11
{
	r12 = r6 >> 2;
	r13 = heap32[(r12)];
	if(r4 ==r13) //_LBB855_13
{
	r4 = heap32[(r12+-1)];
	r6 = (r6 + -4)|0;
	r4 = (r4 + 128)|0;
}
	r12 = r5 >> 2;
	r4 = (r4 + -4)|0;
	r13 = heap32[(r12)];
	if(r3 ==r13) //_LBB855_16
{
	r3 = heap32[(r12+-1)];
	r5 = (r5 + -4)|0;
	r3 = (r3 + 128)|0;
}
	r12 = r3 >> 2;
	r3 = (r3 + -4)|0;
	r13 = r4 >> 2;
	r12 = heap32[(r12+-1)];
	heap32[(r13)] = r12;
}
else{
break _44;
}
}
_58: do {
if(!(r7 ==0)) //_LBB855_35
{
	r3 = heap32[(r8)];
_60: while(true){
	r3 = (r3 + 4)|0;
	heap32[(r8)] = r3;
	r4 = heap32[(r8+1)];
	r5 = heap32[(r8+3)];
	if(r4 !=r5) //_LBB855_27
{
__label__ = 24;
}
else{
	r5 = r2 >> 2;
	r5 = heap32[(r5)];
	if(r3 !=r5) //_LBB855_27
{
__label__ = 24;
}
else{
	r3 = r4 >> 2;
	r4 = heap32[(r3)];
__label__ = 26;
}
}
if (__label__ == 24){
	r4 = r4 >> 2;
	r4 = heap32[(r4)];
	r5 = (r4 + 128)|0;
	if(r3 ==r5) //_LBB855_29
{
__label__ = 26;
}
else{
__label__ = 25;
}
}
_67: do {
if (__label__ == 26){
	heap32[(g0)] = r4;
	_ZdlPv(i7);
	r3 = heap32[(r8+1)];
	r4 = heap32[(r8+3)];
if(!(r3 !=r4)) //_LBB855_34
{
	r4 = heap32[(r8)];
	r5 = heap32[(r8+2)];
if(!(r4 !=r5)) //_LBB855_34
{
	r3 = heap32[(r8+4)];
	r3 = (r3 + -4)|0;
	heap32[(g0)] = r3;
	_ZdlPv(i7);
	heap32[(r8+2)] = 0;
	heap32[(r8+3)] = r2;
	heap32[(r8)] = 0;
	heap32[(r8+1)] = r2;
	r3 = 0;
	heap32[(r8+4)] = 0;
	heap32[(r8+5)] = 0;
break _67;
}
}
	r4 = r3 >> 2;
	r5 = (r3 + 4)|0;
	heap32[(r4)] = 0;
	heap32[(r8+1)] = r5;
	r3 = heap32[(r4+1)];
	heap32[(r8)] = r3;
	heap32[(r8+1)] = r5;
}
} while(0);
	r7 = (r7 + -1)|0;
	if(r7 ==0) //_LBB855_35
{
break _58;
}
}
}
} while(0);
	r1 = r1 >> 2;
	r2 = heap32[(r0)];
	heap32[(r1)] = r2;
	r2 = heap32[(r0+1)];
	heap32[(r1+1)] = r2;
	return;
}
}

function _Z41__static_initialization_and_destruction_0ii(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
var __label__ = 0;
	i7 = sp + -80;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	if(r0 ==0) //_LBB856_16
{
	r0 = _ZL13s_fifo_errors;
	r1 = r0 >> 2;
	r2 = heap32[(r1+2)];
	r3 = sp + -24;
	heap32[(fp+-6)] = r2;
	r2 = r3 >> 2;
	r4 = heap32[(r1+3)];
	heap32[(r2+1)] = r4;
	r2 = heap32[(r1)];
	r1 = heap32[(r1+1)];
	r4 = sp + -32;
}
else{
	if(r0 !=1) //_LBB856_17
{
	return;
}
else{
	r0 = sp + -56;
	r1 = r0 >> 2;
	r2 = (r0 + 8)|0;
	heap32[(r1+2)] = 0;
	heap32[(r1+3)] = r2;
	heap32[(fp+-14)] = 0;
	heap32[(r1+1)] = r2;
	r2 = _ZL13s_fifo_errors;
	heap32[(r1+4)] = 0;
	r3 = r2 >> 2;
	heap32[(r1+5)] = 0;
	r4 = (r2 + 8)|0;
	heap32[(r3+2)] = 0;
	heap32[(r3+3)] = r4;
	heap32[(r3)] = 0;
	heap32[(r3+1)] = r4;
	r5 = 0;
	heap32[(r3+4)] = 0;
	heap32[(r3+5)] = 0;
	r6 = r4;
	r7 = r5;
_7: while(true){
	if(r7 !=0) //_LBB856_12
{
	r8 = (r2 + 8)|0;
	r8 = (r8 - r6)|0;
	r9 = r6 >> 2;
	r8 = r8 << 3;
	r9 = heap32[(r9)];
	r10 = 0;
	r11 = heap32[(r3+2)];
	r10 = (r10 - r11)|0;
	r8 = (r8 + -32)|0;
	r9 = (r9 + 128)|0;
	r9 = (r9 - r7)|0;
	r10 = r10 >> 2;
	r8 = r8 & -32;
	r8 = (r10 + r8)|0;
	r9 = r9 >> 2;
	r8 = (r8 + r9)|0;
}
else{
	r8 = 0;
	r8 = (r8 - r7)|0;
	r8 = r8 >> 2;
}
	if(r8 !=0) //_LBB856_3
{
	r8 = r4 >> 2;
	r9 = heap32[(r8)];
	if(r5 ==r9) //_LBB856_5
{
	r5 = heap32[(r8+-1)];
	r4 = (r4 + -4)|0;
	r5 = (r5 + 128)|0;
}
	r8 = r6 >> 2;
	r5 = (r5 + -4)|0;
	r9 = heap32[(r8)];
	if(r7 ==r9) //_LBB856_8
{
	r7 = heap32[(r8+-1)];
	r6 = (r6 + -4)|0;
	r7 = (r7 + 128)|0;
}
	r8 = r7 >> 2;
	r7 = (r7 + -4)|0;
	r9 = r5 >> 2;
	r8 = heap32[(r8+-1)];
	heap32[(r9)] = r8;
}
else{
break _7;
}
}
	r2 = heap32[(r1+2)];
	r3 = sp + -8;
	heap32[(fp+-2)] = r2;
	r2 = r3 >> 2;
	r4 = heap32[(r1+3)];
	heap32[(r2+1)] = r4;
	r2 = heap32[(fp+-14)];
	r1 = heap32[(r1+1)];
	r4 = sp + -16;
}
}
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r2;
	heap32[(g0+3)] = r1;
	heap32[(g0+4)] = r3;
	_ZNSt5dequeIjSaIjEE5eraseESt15__rw_deque_iterIjiPjRjS0_ES5_(i7);
	return;
}

function _GLOBAL__I__ZN5my_gl14glAttachShaderEjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _ZN5my_glL9m_contextE;
	r1 = r0 >> 2;
	heap32[(r1+62)] = 0;
	heap32[(r1+63)] = 0;
	heap32[(r1+64)] = 0;
	heap32[(r1+65)] = 0;
	heap32[(r1+66)] = 0;
	heap32[(r1+67)] = 0;
	heap32[(r1+78)] = 0;
	heap32[(r1+79)] = 0;
	heap32[(r1+74)] = 0;
	heap32[(r1+77)] = 0;
	heap32[(r1+76)] = 0;
	heap32[(r1+75)] = 0;
	_ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE11_C_get_linkEv(i7);
	r2 = r_g0;
	r3 = r2 >> 2;
	heap32[(r1+78)] = r2;
	heap32[(r3+1)] = 0;
	heap32[(r3+3)] = r2;
	heap32[(r3+2)] = r2;
	heap32[(r1)] = 0;
	heap32[(r1+3)] = 0;
	heap32[(r1+61)] = 0;
	heap32[(r1+4)] = 0;
	heap32[(r1+68)] = 0;
	heap32[(r1+69)] = 0;
	r2 = _ZL26s_mandreel_internal_height;
	r3 = _ZL25s_mandreel_internal_width;
	heap32[(r1+1)] = 0;
	r2 = r2 >> 2;
	heap32[(r1+2)] = 1;
	r3 = r3 >> 2;
	r2 = heap32[(r2)];
	r3 = heap32[(r3)];
	heap32[(r1+70)] = 0;
	heap32[(r1+71)] = 0;
	r4 = 224;
	heap32[(r1+72)] = r3;
	heap32[(r1+73)] = r2;
	r2 = 0;
_2: while(true){
	r1 = (r4 + -1)|0;
	r4 = (r0 - r4)|0;
	heap8[r4+244] = r2;
	r4 = r1;
	if(r1 !=0) //_LBB857_2
{
continue _2;
}
else{
break _2;
}
}
	return;
}

function _GLOBAL__D__ZN5my_gl14glAttachShaderEjj(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -16;var g0 = i7>>2; // save stack
	r0 = _ZN5my_glL9m_contextE;
	r0 = r0 >> 2;
	r1 = heap32[(r0+78)];
_1: do {
if(!(r1 ==0)) //_LBB858_26
{
	r2 = r1 >> 2;
	r3 = heap32[(r0+79)];
	if(r3 !=0) //_LBB858_5
{
	r1 = heap32[(r2+1)];
	heap32[(g0)] = r1;
	_ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(i7);
	r1 = heap32[(r0+78)];
	r2 = r1 >> 2;
	heap32[(r2+1)] = 0;
	heap32[(r2+3)] = r1;
	heap32[(r2+2)] = r1;
	heap32[(r0+79)] = 0;
}
else{
	r2 = heap32[(r2+2)];
if(!(r2 ==r1)) //_LBB858_4
{
_6: while(true){
	r3 = r2;
	r4 = r3 >> 2;
	r2 = heap32[(r4+3)];
_8: do {
	if(r2 !=0) //_LBB858_10
{
	r4 = r2 >> 2;
	r4 = heap32[(r4+2)];
	if(r4 ==0) //_LBB858_12
{
break _8;
}
else{
__label__ = 8; //SET chanka
_10: while(true){
	r2 = r4;
	r4 = r2 >> 2;
	r4 = heap32[(r4+2)];
	if(r4 !=0) //_LBB858_13
{
continue _10;
}
else{
break _8;
}
}
}
}
else{
	r4 = heap32[(r4+1)];
	r2 = r4 >> 2;
	r2 = heap32[(r2+3)];
	if(r3 ==r2) //_LBB858_9
{
_14: while(true){
	r2 = r4;
	r5 = r2 >> 2;
	r4 = heap32[(r5+1)];
	r6 = r4 >> 2;
	r6 = heap32[(r6+3)];
if(!(r2 ==r6)) //_LBB858_15
{
break _14;
}
}
	r5 = heap32[(r5+3)];
}
else{
	r5 = 0;
	r2 = r3;
}
	if(r5 !=r4) //_LBB858_19
{
	r2 = r4;
}
}
} while(0);
	r4 = sp + -8;
	heap32[(g0)] = r4;
	heap32[(g0+1)] = r3;
	_ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE5eraseENS_14__rw_tree_iterIS6_iPS6_RS6_NS_17__rw_rb_tree_nodeISB_S6_jS8_EEEE(i7);
if(!(r2 !=r1)) //_LBB858_6
{
break _6;
}
}
	r1 = heap32[(r0+78)];
}
}
	r2 = r1 >> 2;
	r3 = heap32[(r0+75)];
	heap32[(r2+3)] = r3;
	heap32[(r0+75)] = r1;
	r1 = heap32[(r0+74)];
if(!(r1 ==0)) //_LBB858_26
{
__label__ = 16; //SET chanka
_23: while(true){
	r2 = r1 >> 2;
	r3 = heap32[(r2)];
	heap32[(r0+74)] = r3;
	r2 = heap32[(r2+2)];
	heap32[(g0)] = r2;
	_ZdlPv(i7);
	heap32[(g0)] = r1;
	_ZdlPv(i7);
	r1 = heap32[(r0+74)];
	if(r1 !=0) //_LBB858_23
{
continue _23;
}
else{
break _1;
}
}
}
}
} while(0);
	r1 = heap32[(r0+65)];
	r2 = heap32[(r0+66)];
	r3 = (r2 - r1)|0;
	r3 = r3 >> 5;
	if(r3 !=0) //_LBB858_28
{
	r1 = (r2 + -32)|0;
	heap32[(r0+66)] = r1;
	r1 = (r2 + -28)|0;
	heap32[(g0)] = r1;
	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(i7);
_31: do {
if(!(r3 ==1)) //_LBB858_33
{
	r1 = (r3 + -1)|0;
_33: while(true){
	r2 = heap32[(r0+66)];
	r3 = (r2 + -32)|0;
	heap32[(r0+66)] = r3;
	r2 = (r2 + -28)|0;
	heap32[(g0)] = r2;
	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(i7);
	r1 = (r1 + -1)|0;
if(!(r1 !=0)) //_LBB858_31
{
break _31;
}
}
}
} while(0);
	r1 = heap32[(r0+65)];
}
	heap32[(g0)] = r1;
	_ZdlPv(i7);
	r1 = heap32[(r0+63)];
	r2 = heap32[(r0+62)];
	r3 = (r1 - r2)|0;
	r4 = (r3 + 11)|0;
if(!(uint(r4) <uint(23))) //_LBB858_37
{
	r3 = (r3 / -12)|0;
	r3 = (r3 * 12)|0;
	r1 = (r1 + r3)|0;
	heap32[(r0+63)] = r1;
}
	heap32[(g0)] = r2;
	_ZdlPv(i7);
	return;
}

function imandreel_restore_glcontext(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function imandreel_viewport_resize(sp)
{
	var i7;
	var fp = sp>>2;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	return;
}

function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
if(!(r0 ==0)) //_LBB861_2
{
_2: while(true){
	r1 = r0 >> 2;
	r2 = heap32[(r1+3)];
	heap32[(g0)] = r2;
	r2 = _ZN5my_glL9m_contextE;
	_ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(i7);
	r2 = r2 >> 2;
	r3 = heap32[(r1+2)];
	r4 = heap32[(r2+75)];
	heap32[(r1+3)] = r4;
	heap32[(r2+75)] = r0;
	r0 = r3;
	if(r3 !=0) //_LBB861_1
{
continue _2;
}
else{
break _2;
}
}
}
	return;
}

function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+1)];
if(!(r0 ==0)) //_LBB862_6
{
	r1 = heap32[(fp)];
_3: while(true){
	r2 = r0;
	r3 = r2 >> 2;
	r0 = heap32[(r3+3)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(i7);
	r4 = r1 >> 2;
	r0 = heap32[(r3+2)];
	r5 = heap32[(r4+1)];
	heap32[(r3+3)] = r5;
	r5 = heap32[(r3+4)];
	r5 = (r5 + -12)|0;
	r6 = _ZNSs11_C_null_refE;
if(!(r5 ==r6)) //_LBB862_5
{
	r5 = r5 >> 2;
	r6 = heap32[(r5)];
	r7 = (r6 + -1)|0;
	heap32[(r5)] = r7;
if(!(r6 >0)) //_LBB862_5
{
	r5 = heap32[(r3+4)];
	r5 = (r5 + -12)|0;
	heap32[(g0)] = r5;
	_ZdlPv(i7);
}
}
	heap32[(r3+4)] = 0;
	heap32[(r4+1)] = r2;
	if(r0 !=0) //_LBB862_2
{
continue _3;
}
else{
break _3;
}
}
}
	return;
}

function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE5eraseENS_14__rw_tree_iterIS3_iPS3_RS3_NS_17__rw_rb_tree_nodeIS8_S3_SsS5_EEEESF_(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
	var r15;
	var r16;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = heap32[(fp+2)];
	r1 = heap32[(fp+1)];
	r0 = r0 >> 2;
	r2 = r1 >> 2;
	r3 = heap32[(r2+4)];
	r4 = heap32[(r0)];
	r5 = heap32[(fp)];
	r6 = heap32[(fp+3)];
	r7 = r3 >> 2;
	r8 = heap32[(r7+2)];
if(!(r4 !=r8)) //_LBB863_3
{
if(!(r3 !=r6)) //_LBB863_3
{
	r8 = heap32[(r2+5)];
	if(r8 !=0) //_LBB863_4
{
	r0 = heap32[(r7+1)];
	heap32[(g0)] = r1;
	heap32[(g0+1)] = r0;
	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(i7);
	r0 = heap32[(r2+4)];
	r0 = r0 >> 2;
	heap32[(r0+1)] = 0;
	r0 = heap32[(r2+4)];
	r1 = r0 >> 2;
	heap32[(r1+3)] = r0;
	heap32[(r1+2)] = r0;
	heap32[(r2+5)] = 0;
	r0 = r5 >> 2;
	r1 = heap32[(r2+4)];
	heap32[(r0)] = r1;
	return;
}
}
}
	r1 = r5 >> 2;
	heap32[(r1)] = r3;
if(!(r4 ==r6)) //_LBB863_165
{
_7: while(true){
	r3 = r4 >> 2;
	r5 = heap32[(r3+3)];
	if(r5 !=0) //_LBB863_9
{
	r7 = r5 >> 2;
	r7 = heap32[(r7+2)];
if(!(r7 ==0)) //_LBB863_11
{
_12: while(true){
	r5 = r7;
	r7 = r5 >> 2;
	r7 = heap32[(r7+2)];
if(!(r7 !=0)) //_LBB863_12
{
break _12;
}
}
}
	heap32[(r0)] = r5;
}
else{
	r7 = heap32[(r3+1)];
	r5 = r7 >> 2;
	r5 = heap32[(r5+3)];
	if(r4 ==r5) //_LBB863_8
{
_17: while(true){
	r5 = r7;
	r8 = r5 >> 2;
	r7 = heap32[(r8+1)];
	r9 = r7 >> 2;
	r9 = heap32[(r9+3)];
if(!(r5 ==r9)) //_LBB863_14
{
break _17;
}
}
	heap32[(r0)] = r5;
	r8 = heap32[(r8+3)];
}
else{
	r8 = 0;
	r5 = r4;
}
	if(r8 !=r7) //_LBB863_18
{
	heap32[(r0)] = r7;
	r5 = r7;
}
}
	r7 = heap32[(r2+4)];
	if(r4 !=r7) //_LBB863_21
{
	r9 = heap32[(r3+3)];
_26: do {
	if(r9 !=0) //_LBB863_25
{
	r8 = r9 >> 2;
	r10 = heap32[(r8+2)];
	if(r10 ==0) //_LBB863_27
{
	r8 = r9;
}
else{
_30: while(true){
	r8 = r10;
	r10 = r8 >> 2;
	r10 = heap32[(r10+2)];
	if(r10 !=0) //_LBB863_28
{
continue _30;
}
else{
break _26;
}
}
}
}
else{
	r8 = heap32[(r3+1)];
	r10 = r8 >> 2;
	r10 = heap32[(r10+3)];
	if(r4 ==r10) //_LBB863_24
{
_34: while(true){
	r11 = r8;
	r10 = r11 >> 2;
	r8 = heap32[(r10+1)];
	r12 = r8 >> 2;
	r12 = heap32[(r12+3)];
if(!(r11 ==r12)) //_LBB863_30
{
break _34;
}
}
	r10 = heap32[(r10+3)];
}
else{
	r10 = 0;
	r11 = r4;
}
	if(r10 ==r8) //_LBB863_34
{
	r8 = r11;
}
}
} while(0);
	r10 = heap32[(r3+2)];
	if(r10 !=0) //_LBB863_37
{
	if(r9 !=0) //_LBB863_39
{
	r11 = r9 >> 2;
	r12 = heap32[(r11+2)];
_45: do {
	if(r12 ==0) //_LBB863_41
{
	r11 = r9;
}
else{
_47: while(true){
	r11 = r12;
	r12 = r11 >> 2;
	r12 = heap32[(r12+2)];
if(!(r12 !=0)) //_LBB863_42
{
break _45;
}
}
}
} while(0);
	r13 = r11 >> 2;
	r9 = heap32[(r13+3)];
	if(r11 !=r4) //_LBB863_45
{
	r7 = r10 >> 2;
	heap32[(r7+1)] = r11;
	r7 = heap32[(r3+2)];
	heap32[(r13+2)] = r7;
	r7 = heap32[(r3+3)];
	if(r7 !=r11) //_LBB863_47
{
	r12 = heap32[(r13+1)];
	if(r9 !=0) //_LBB863_49
{
	r7 = r9 >> 2;
	heap32[(r7+1)] = r12;
	r7 = heap32[(r13+1)];
}
else{
	r7 = r12;
}
	r7 = r7 >> 2;
	heap32[(r7+2)] = r9;
	r7 = heap32[(r3+3)];
	heap32[(r13+3)] = r7;
	r7 = heap32[(r3+3)];
	r7 = r7 >> 2;
	heap32[(r7+1)] = r11;
}
else{
	r12 = r11;
}
	r7 = heap32[(r2+4)];
	r7 = r7 >> 2;
	r10 = heap32[(r7+1)];
	if(r10 !=r4) //_LBB863_53
{
	r7 = heap32[(r3+1)];
	r10 = r7 >> 2;
	r10 = heap32[(r10+2)];
	r10 = r10 != r4;
	r10 = r10 & 1;
	r10 = r10 << 2;
	r7 = (r7 + r10)|0;
	r7 = (r7 + 8)|0;
	r10 = (r4 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r11;
}
else{
	r10 = (r4 + 4)|0;
	heap32[(r7+1)] = r11;
}
	r7 = r10 >> 2;
	r7 = heap32[(r7)];
	heap32[(r13+1)] = r7;
	r7 = heap32[(r13)];
	r11 = heap32[(r3)];
	heap32[(r13)] = r11;
	heap32[(r3)] = r7;
__label__ = 66;
}
else{
__label__ = 45;
}
}
else{
	r12 = heap32[(r3+1)];
	r11 = r4;
	r9 = r10;
__label__ = 47;
}
}
else{
	r11 = r4;
__label__ = 45;
}
if (__label__ == 45){
	r12 = r11 >> 2;
	r12 = heap32[(r12+1)];
	if(r9 ==0) //_LBB863_57
{
	r9 = 0;
__label__ = 48;
}
else{
__label__ = 47;
}
}
if (__label__ == 47){
	r7 = r9 >> 2;
	heap32[(r7+1)] = r12;
	r7 = heap32[(r2+4)];
__label__ = 48;
}
if (__label__ == 48){
	r7 = r7 >> 2;
	r10 = heap32[(r7+1)];
	if(r10 !=r4) //_LBB863_61
{
	r7 = heap32[(r3+1)];
	r10 = r7 >> 2;
	r10 = heap32[(r10+2)];
	r10 = r10 != r4;
	r10 = r10 & 1;
	r10 = r10 << 2;
	r7 = (r7 + r10)|0;
	r7 = (r7 + 8)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r9;
}
else{
	heap32[(r7+1)] = r9;
}
	r7 = heap32[(r2+4)];
	r7 = r7 >> 2;
	r10 = heap32[(r7+2)];
if(!(r10 !=r4)) //_LBB863_70
{
	r10 = heap32[(r3+3)];
	if(r10 !=0) //_LBB863_65
{
	r10 = r9 >> 2;
	r10 = heap32[(r10+2)];
_80: do {
	if(r10 ==0) //_LBB863_67
{
	r13 = r9;
}
else{
_82: while(true){
	r13 = r10;
	r10 = r13 >> 2;
	r10 = heap32[(r10+2)];
if(!(r10 !=0)) //_LBB863_68
{
break _80;
}
}
}
} while(0);
	heap32[(r7+2)] = r13;
}
else{
	r10 = heap32[(r3+1)];
	heap32[(r7+2)] = r10;
}
}
	r7 = heap32[(r2+4)];
	r7 = r7 >> 2;
	r10 = heap32[(r7+3)];
	if(r10 ==r4) //_LBB863_72
{
	r4 = heap32[(r3+2)];
	if(r4 !=0) //_LBB863_74
{
	r4 = r9 >> 2;
	r4 = heap32[(r4+3)];
_91: do {
	if(r4 ==0) //_LBB863_76
{
	r3 = r9;
}
else{
_93: while(true){
	r3 = r4;
	r4 = r3 >> 2;
	r4 = heap32[(r4+3)];
if(!(r4 !=0)) //_LBB863_77
{
break _91;
}
}
}
} while(0);
	heap32[(r7+3)] = r3;
	r4 = r11;
}
else{
	r4 = heap32[(r3+1)];
	heap32[(r7+3)] = r4;
	r4 = r11;
}
}
else{
	r4 = r11;
}
}
	r3 = r4 >> 2;
	r7 = heap32[(r3)];
_99: do {
if(!(r7 ==0)) //_LBB863_160
{
_100: while(true){
	r7 = heap32[(r2+4)];
	r7 = r7 >> 2;
	r7 = heap32[(r7+1)];
	if(r7 ==r9) //_LBB863_158
{
__label__ = 140;
break _100;
}
else{
if(!(r9 ==0)) //_LBB863_81
{
	r7 = r9 >> 2;
	r7 = heap32[(r7)];
if(!(r7 ==1)) //_LBB863_81
{
__label__ = 141;
break _100;
}
}
	r7 = r12 >> 2;
	r10 = heap32[(r7+2)];
	if(r10 !=r9) //_LBB863_119
{
	r11 = r10 >> 2;
	r13 = heap32[(r11)];
	if(r13 ==0) //_LBB863_121
{
	heap32[(r11)] = 1;
	heap32[(r7)] = 0;
	r10 = heap32[(r7+2)];
	r11 = r10 >> 2;
	r13 = heap32[(r11+3)];
	heap32[(r7+2)] = r13;
	r13 = heap32[(r11+3)];
if(!(r13 ==0)) //_LBB863_123
{
	r13 = r13 >> 2;
	heap32[(r13+1)] = r12;
}
	r13 = heap32[(r7+1)];
	heap32[(r11+1)] = r13;
	r13 = heap32[(r2+4)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+1)];
	if(r14 !=r12) //_LBB863_125
{
	r13 = heap32[(r7+1)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+3)];
	if(r14 !=r12) //_LBB863_127
{
	heap32[(r13+2)] = r10;
}
else{
	heap32[(r13+3)] = r10;
}
}
else{
	heap32[(r13+1)] = r10;
}
	heap32[(r11+3)] = r12;
	heap32[(r7+1)] = r10;
	r10 = heap32[(r7+2)];
}
	r11 = r10 >> 2;
	r13 = heap32[(r11+3)];
if(!(r13 ==0)) //_LBB863_131
{
	r13 = r13 >> 2;
	r14 = heap32[(r13)];
	if(r14 !=1) //_LBB863_135
{
__label__ = 117;
break _100;
}
}
	r13 = heap32[(r11+2)];
if(!(r13 ==0)) //_LBB863_134
{
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
if(!(r13 ==1)) //_LBB863_134
{
__label__ = 127;
break _100;
}
}
	heap32[(r11)] = 0;
}
else{
	r10 = heap32[(r7+3)];
	r11 = r10 >> 2;
	r13 = heap32[(r11)];
	if(r13 ==0) //_LBB863_84
{
	heap32[(r11)] = 1;
	heap32[(r7)] = 0;
	r10 = heap32[(r7+3)];
	r11 = r10 >> 2;
	r13 = heap32[(r11+2)];
	heap32[(r7+3)] = r13;
	r13 = heap32[(r11+2)];
if(!(r13 ==0)) //_LBB863_86
{
	r13 = r13 >> 2;
	heap32[(r13+1)] = r12;
}
	r13 = heap32[(r7+1)];
	heap32[(r11+1)] = r13;
	r13 = heap32[(r2+4)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+1)];
	if(r14 !=r12) //_LBB863_88
{
	r13 = heap32[(r7+1)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+2)];
	if(r14 !=r12) //_LBB863_90
{
	heap32[(r13+3)] = r10;
}
else{
	heap32[(r13+2)] = r10;
}
}
else{
	heap32[(r13+1)] = r10;
}
	heap32[(r11+2)] = r12;
	heap32[(r7+1)] = r10;
	r10 = heap32[(r7+3)];
}
	r11 = r10 >> 2;
	r13 = heap32[(r11+2)];
if(!(r13 ==0)) //_LBB863_94
{
	r13 = r13 >> 2;
	r14 = heap32[(r13)];
	if(r14 !=1) //_LBB863_99
{
__label__ = 83;
break _100;
}
}
	r13 = heap32[(r11+3)];
if(!(r13 ==0)) //_LBB863_97
{
	r13 = r13 >> 2;
	r13 = heap32[(r13)];
if(!(r13 ==1)) //_LBB863_97
{
__label__ = 93;
break _100;
}
}
	heap32[(r11)] = 0;
}
	r10 = heap32[(r7+1)];
	r9 = r12;
	r12 = r10;
}
}
_148: do {
switch(__label__ ){//multiple entries
case 117:
	r14 = heap32[(r11+2)];
if(!(r14 ==0)) //_LBB863_137
{
	r14 = r14 >> 2;
	r14 = heap32[(r14)];
	if(r14 !=1) //_LBB863_133
{
__label__ = 127;
break _148;
}
}
	heap32[(r13)] = 1;
	r13 = heap32[(r11+3)];
	r14 = r13 >> 2;
	heap32[(r11)] = 0;
	r15 = heap32[(r14+2)];
	heap32[(r11+3)] = r15;
	r15 = heap32[(r14+2)];
if(!(r15 ==0)) //_LBB863_139
{
	r15 = r15 >> 2;
	heap32[(r15+1)] = r10;
}
	r15 = heap32[(r11+1)];
	heap32[(r14+1)] = r15;
	r15 = heap32[(r2+4)];
	r15 = r15 >> 2;
	r16 = heap32[(r15+1)];
	if(r16 !=r10) //_LBB863_141
{
	r15 = heap32[(r11+1)];
	r15 = r15 >> 2;
	r16 = heap32[(r15+2)];
	if(r16 !=r10) //_LBB863_143
{
	heap32[(r15+3)] = r13;
}
else{
	heap32[(r15+2)] = r13;
}
}
else{
	heap32[(r15+1)] = r13;
}
	heap32[(r14+2)] = r10;
	heap32[(r11+1)] = r13;
	r10 = heap32[(r7+2)];
__label__ = 127;
break _148;
break;
case 83:
	r14 = heap32[(r11+3)];
if(!(r14 ==0)) //_LBB863_101
{
	r14 = r14 >> 2;
	r14 = heap32[(r14)];
	if(r14 !=1) //_LBB863_96
{
__label__ = 93;
break _148;
}
}
	heap32[(r13)] = 1;
	r13 = heap32[(r11+2)];
	r14 = r13 >> 2;
	heap32[(r11)] = 0;
	r15 = heap32[(r14+3)];
	heap32[(r11+2)] = r15;
	r15 = heap32[(r14+3)];
if(!(r15 ==0)) //_LBB863_103
{
	r15 = r15 >> 2;
	heap32[(r15+1)] = r10;
}
	r15 = heap32[(r11+1)];
	heap32[(r14+1)] = r15;
	r15 = heap32[(r2+4)];
	r15 = r15 >> 2;
	r16 = heap32[(r15+1)];
	if(r16 !=r10) //_LBB863_105
{
	r15 = heap32[(r11+1)];
	r15 = r15 >> 2;
	r16 = heap32[(r15+3)];
	if(r16 !=r10) //_LBB863_107
{
	heap32[(r15+2)] = r13;
}
else{
	heap32[(r15+3)] = r13;
}
}
else{
	heap32[(r15+1)] = r13;
}
	heap32[(r14+3)] = r10;
	heap32[(r11+1)] = r13;
	r10 = heap32[(r7+3)];
__label__ = 93;
break;
}
} while(0);
_177: do {
switch(__label__ ){//multiple entries
case 127:
	r10 = r10 >> 2;
	r11 = heap32[(r7)];
	heap32[(r10)] = r11;
	heap32[(r7)] = 1;
	r10 = heap32[(r10+2)];
if(!(r10 ==0)) //_LBB863_147
{
	r10 = r10 >> 2;
	heap32[(r10)] = 1;
}
	r10 = heap32[(r7+2)];
	r11 = r10 >> 2;
	r13 = heap32[(r11+3)];
	heap32[(r7+2)] = r13;
	r13 = heap32[(r11+3)];
if(!(r13 ==0)) //_LBB863_149
{
	r13 = r13 >> 2;
	heap32[(r13+1)] = r12;
}
	r13 = heap32[(r7+1)];
	heap32[(r11+1)] = r13;
	r13 = heap32[(r2+4)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+1)];
	if(r14 !=r12) //_LBB863_151
{
	r13 = heap32[(r7+1)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+3)];
	if(r14 !=r12) //_LBB863_153
{
	heap32[(r13+2)] = r10;
}
else{
	heap32[(r13+3)] = r10;
}
}
else{
	heap32[(r13+1)] = r10;
}
	heap32[(r11+3)] = r12;
	heap32[(r7+1)] = r10;
__label__ = 140;
break _177;
break;
case 93:
	r10 = r10 >> 2;
	r11 = heap32[(r7)];
	heap32[(r10)] = r11;
	heap32[(r7)] = 1;
	r10 = heap32[(r10+3)];
if(!(r10 ==0)) //_LBB863_111
{
	r10 = r10 >> 2;
	heap32[(r10)] = 1;
}
	r10 = heap32[(r7+3)];
	r11 = r10 >> 2;
	r13 = heap32[(r11+2)];
	heap32[(r7+3)] = r13;
	r13 = heap32[(r11+2)];
if(!(r13 ==0)) //_LBB863_113
{
	r13 = r13 >> 2;
	heap32[(r13+1)] = r12;
}
	r13 = heap32[(r7+1)];
	heap32[(r11+1)] = r13;
	r13 = heap32[(r2+4)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+1)];
	if(r14 !=r12) //_LBB863_115
{
	r13 = heap32[(r7+1)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+2)];
	if(r14 !=r12) //_LBB863_117
{
	heap32[(r13+3)] = r10;
}
else{
	heap32[(r13+2)] = r10;
}
}
else{
	heap32[(r13+1)] = r10;
}
	heap32[(r11+2)] = r12;
	heap32[(r7+1)] = r10;
__label__ = 140;
break;
}
} while(0);
if (__label__ == 140){
	if(r9 ==0) //_LBB863_160
{
break _99;
}
}
	r7 = r9 >> 2;
	heap32[(r7)] = 1;
}
} while(0);
	r7 = heap32[(r2+1)];
	heap32[(r3+3)] = r7;
	r7 = heap32[(r3+4)];
	r7 = (r7 + -12)|0;
	r9 = _ZNSs11_C_null_refE;
if(!(r7 ==r9)) //_LBB863_163
{
	r7 = r7 >> 2;
	r9 = heap32[(r7)];
	r10 = (r9 + -1)|0;
	heap32[(r7)] = r10;
if(!(r9 >0)) //_LBB863_163
{
	r7 = heap32[(r3+4)];
	r7 = (r7 + -12)|0;
	heap32[(g0)] = r7;
	_ZdlPv(i7);
}
}
	heap32[(r3+4)] = 0;
	heap32[(r2+1)] = r4;
	r4 = heap32[(r2+5)];
	r4 = (r4 + -1)|0;
	heap32[(r2+5)] = r4;
}
else{
	r8 = r7;
}
	heap32[(r1)] = r8;
	r4 = r5;
	if(r5 !=r6) //_LBB863_5
{
continue _7;
}
else{
break _7;
}
}
}
	return;
}

function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE5eraseENS_14__rw_tree_iterIS6_iPS6_RS6_NS_17__rw_rb_tree_nodeISB_S6_jS8_EEEE(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
	var r7;
	var r8;
	var r9;
	var r10;
	var r11;
	var r12;
	var r13;
	var r14;
var __label__ = 0;
	i7 = sp + 0;var g0 = i7>>2; // save stack
	r0 = _ZN5my_glL9m_contextE;
	r0 = r0 >> 2;
	r1 = heap32[(r0+78)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp)];
	if(r1 !=r2) //_LBB864_2
{
	r4 = r2 >> 2;
	r5 = heap32[(r4+3)];
_3: do {
	if(r5 !=0) //_LBB864_6
{
	r6 = r5 >> 2;
	r7 = heap32[(r6+2)];
	if(r7 ==0) //_LBB864_8
{
	r6 = r5;
}
else{
_7: while(true){
	r6 = r7;
	r7 = r6 >> 2;
	r7 = heap32[(r7+2)];
	if(r7 !=0) //_LBB864_9
{
continue _7;
}
else{
break _3;
}
}
}
}
else{
	r6 = heap32[(r4+1)];
	r7 = r6 >> 2;
	r7 = heap32[(r7+3)];
	if(r7 ==r2) //_LBB864_5
{
_11: while(true){
	r8 = r6;
	r7 = r8 >> 2;
	r6 = heap32[(r7+1)];
	r9 = r6 >> 2;
	r9 = heap32[(r9+3)];
if(!(r8 ==r9)) //_LBB864_11
{
break _11;
}
}
	r7 = heap32[(r7+3)];
}
else{
	r7 = 0;
	r8 = r2;
}
	if(r7 ==r6) //_LBB864_15
{
	r6 = r8;
}
}
} while(0);
	r7 = heap32[(r4+2)];
	if(r7 !=0) //_LBB864_18
{
	if(r5 !=0) //_LBB864_20
{
	r8 = r5 >> 2;
	r9 = heap32[(r8+2)];
_22: do {
	if(r9 ==0) //_LBB864_22
{
	r8 = r5;
}
else{
_24: while(true){
	r8 = r9;
	r9 = r8 >> 2;
	r9 = heap32[(r9+2)];
if(!(r9 !=0)) //_LBB864_23
{
break _22;
}
}
}
} while(0);
	r10 = r8 >> 2;
	r5 = heap32[(r10+3)];
	if(r8 !=r2) //_LBB864_26
{
	r9 = r7 >> 2;
	heap32[(r9+1)] = r8;
	r9 = heap32[(r4+2)];
	heap32[(r10+2)] = r9;
	r9 = heap32[(r4+3)];
	if(r9 !=r8) //_LBB864_28
{
	r9 = heap32[(r10+1)];
	if(r5 !=0) //_LBB864_30
{
	r7 = r5 >> 2;
	heap32[(r7+1)] = r9;
	r7 = heap32[(r10+1)];
}
else{
	r7 = r9;
}
	r7 = r7 >> 2;
	heap32[(r7+2)] = r5;
	r7 = heap32[(r4+3)];
	heap32[(r10+3)] = r7;
	r7 = heap32[(r4+3)];
	r7 = r7 >> 2;
	heap32[(r7+1)] = r8;
}
else{
	r9 = r8;
}
	r7 = r1 >> 2;
	r11 = heap32[(r7+1)];
	if(r11 !=r2) //_LBB864_34
{
	r11 = heap32[(r4+1)];
	r7 = r11 >> 2;
	r7 = heap32[(r7+2)];
	r7 = r7 != r2;
	r7 = r7 & 1;
	r7 = r7 << 2;
	r11 = (r11 + r7)|0;
	r7 = (r11 + 8)|0;
	r11 = (r2 + 4)|0;
	r7 = r7 >> 2;
	heap32[(r7)] = r8;
}
else{
	r11 = (r2 + 4)|0;
	heap32[(r7+1)] = r8;
}
	r8 = r11 >> 2;
	r8 = heap32[(r8)];
	heap32[(r10+1)] = r8;
	r8 = heap32[(r10)];
	r7 = heap32[(r4)];
	heap32[(r10)] = r7;
	heap32[(r4)] = r8;
__label__ = 51;
}
else{
__label__ = 30;
}
}
else{
	r9 = heap32[(r4+1)];
	r8 = r2;
	r5 = r7;
__label__ = 32;
}
}
else{
	r8 = r2;
__label__ = 30;
}
if (__label__ == 30){
	r9 = r8 >> 2;
	r9 = heap32[(r9+1)];
	if(r5 ==0) //_LBB864_38
{
	r5 = 0;
__label__ = 33;
}
else{
__label__ = 32;
}
}
if (__label__ == 32){
	r7 = r5 >> 2;
	heap32[(r7+1)] = r9;
__label__ = 33;
}
if (__label__ == 33){
	r7 = r1 >> 2;
	r10 = heap32[(r7+1)];
	if(r10 !=r2) //_LBB864_42
{
	r10 = heap32[(r4+1)];
	r11 = r10 >> 2;
	r11 = heap32[(r11+2)];
	r11 = r11 != r2;
	r11 = r11 & 1;
	r11 = r11 << 2;
	r10 = (r10 + r11)|0;
	r10 = (r10 + 8)|0;
	r10 = r10 >> 2;
	heap32[(r10)] = r5;
}
else{
	heap32[(r7+1)] = r5;
}
	r10 = heap32[(r7+2)];
if(!(r10 !=r2)) //_LBB864_51
{
	r10 = heap32[(r4+3)];
	if(r10 !=0) //_LBB864_46
{
	r10 = r5 >> 2;
	r10 = heap32[(r10+2)];
_57: do {
	if(r10 ==0) //_LBB864_48
{
	r11 = r5;
}
else{
_59: while(true){
	r11 = r10;
	r10 = r11 >> 2;
	r10 = heap32[(r10+2)];
if(!(r10 !=0)) //_LBB864_49
{
break _57;
}
}
}
} while(0);
	heap32[(r7+2)] = r11;
}
else{
	r10 = heap32[(r4+1)];
	heap32[(r7+2)] = r10;
}
}
	r10 = heap32[(r7+3)];
	if(r10 ==r2) //_LBB864_53
{
	r2 = heap32[(r4+2)];
	if(r2 !=0) //_LBB864_55
{
	r2 = r5 >> 2;
	r2 = heap32[(r2+3)];
_68: do {
	if(r2 ==0) //_LBB864_57
{
	r4 = r5;
}
else{
_70: while(true){
	r4 = r2;
	r2 = r4 >> 2;
	r2 = heap32[(r2+3)];
if(!(r2 !=0)) //_LBB864_58
{
break _68;
}
}
}
} while(0);
	heap32[(r7+3)] = r4;
	r2 = r8;
}
else{
	r2 = heap32[(r4+1)];
	heap32[(r7+3)] = r2;
	r2 = r8;
}
}
else{
	r2 = r8;
}
}
	r4 = r2 >> 2;
	r7 = heap32[(r4)];
_76: do {
if(!(r7 ==0)) //_LBB864_141
{
_77: while(true){
	r7 = r1 >> 2;
	r8 = heap32[(r7+1)];
	if(r8 ==r5) //_LBB864_139
{
__label__ = 125;
break _77;
}
else{
if(!(r5 ==0)) //_LBB864_62
{
	r8 = r5 >> 2;
	r8 = heap32[(r8)];
if(!(r8 ==1)) //_LBB864_62
{
__label__ = 126;
break _77;
}
}
	r8 = r9 >> 2;
	r10 = heap32[(r8+2)];
	if(r10 !=r5) //_LBB864_100
{
	r11 = r10 >> 2;
	r12 = heap32[(r11)];
	if(r12 ==0) //_LBB864_102
{
	heap32[(r11)] = 1;
	heap32[(r8)] = 0;
	r10 = heap32[(r8+2)];
	r11 = r10 >> 2;
	r12 = heap32[(r11+3)];
	heap32[(r8+2)] = r12;
	r12 = heap32[(r11+3)];
if(!(r12 ==0)) //_LBB864_104
{
	r12 = r12 >> 2;
	heap32[(r12+1)] = r9;
}
	r12 = heap32[(r8+1)];
	heap32[(r11+1)] = r12;
	r12 = heap32[(r7+1)];
	if(r12 !=r9) //_LBB864_106
{
	r12 = heap32[(r8+1)];
	r12 = r12 >> 2;
	r13 = heap32[(r12+3)];
	if(r13 !=r9) //_LBB864_108
{
	heap32[(r12+2)] = r10;
}
else{
	heap32[(r12+3)] = r10;
}
}
else{
	heap32[(r7+1)] = r10;
}
	heap32[(r11+3)] = r9;
	heap32[(r8+1)] = r10;
	r10 = heap32[(r8+2)];
}
	r11 = r10 >> 2;
	r12 = heap32[(r11+3)];
if(!(r12 ==0)) //_LBB864_112
{
	r12 = r12 >> 2;
	r13 = heap32[(r12)];
	if(r13 !=1) //_LBB864_116
{
__label__ = 102;
break _77;
}
}
	r12 = heap32[(r11+2)];
if(!(r12 ==0)) //_LBB864_115
{
	r12 = r12 >> 2;
	r12 = heap32[(r12)];
if(!(r12 ==1)) //_LBB864_115
{
__label__ = 112;
break _77;
}
}
	heap32[(r11)] = 0;
}
else{
	r10 = heap32[(r8+3)];
	r11 = r10 >> 2;
	r12 = heap32[(r11)];
	if(r12 ==0) //_LBB864_65
{
	heap32[(r11)] = 1;
	heap32[(r8)] = 0;
	r10 = heap32[(r8+3)];
	r11 = r10 >> 2;
	r12 = heap32[(r11+2)];
	heap32[(r8+3)] = r12;
	r12 = heap32[(r11+2)];
if(!(r12 ==0)) //_LBB864_67
{
	r12 = r12 >> 2;
	heap32[(r12+1)] = r9;
}
	r12 = heap32[(r8+1)];
	heap32[(r11+1)] = r12;
	r12 = heap32[(r7+1)];
	if(r12 !=r9) //_LBB864_69
{
	r12 = heap32[(r8+1)];
	r12 = r12 >> 2;
	r13 = heap32[(r12+2)];
	if(r13 !=r9) //_LBB864_71
{
	heap32[(r12+3)] = r10;
}
else{
	heap32[(r12+2)] = r10;
}
}
else{
	heap32[(r7+1)] = r10;
}
	heap32[(r11+2)] = r9;
	heap32[(r8+1)] = r10;
	r10 = heap32[(r8+3)];
}
	r11 = r10 >> 2;
	r12 = heap32[(r11+2)];
if(!(r12 ==0)) //_LBB864_75
{
	r12 = r12 >> 2;
	r13 = heap32[(r12)];
	if(r13 !=1) //_LBB864_80
{
__label__ = 68;
break _77;
}
}
	r12 = heap32[(r11+3)];
if(!(r12 ==0)) //_LBB864_78
{
	r12 = r12 >> 2;
	r12 = heap32[(r12)];
if(!(r12 ==1)) //_LBB864_78
{
__label__ = 78;
break _77;
}
}
	heap32[(r11)] = 0;
}
	r10 = heap32[(r8+1)];
	r5 = r9;
	r9 = r10;
}
}
_125: do {
switch(__label__ ){//multiple entries
case 102:
	r1 = heap32[(r11+2)];
if(!(r1 ==0)) //_LBB864_118
{
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	if(r1 !=1) //_LBB864_114
{
__label__ = 112;
break _125;
}
}
	heap32[(r12)] = 1;
	r1 = heap32[(r11+3)];
	r12 = r1 >> 2;
	heap32[(r11)] = 0;
	r13 = heap32[(r12+2)];
	heap32[(r11+3)] = r13;
	r13 = heap32[(r12+2)];
if(!(r13 ==0)) //_LBB864_120
{
	r13 = r13 >> 2;
	heap32[(r13+1)] = r10;
}
	r13 = heap32[(r11+1)];
	heap32[(r12+1)] = r13;
	r13 = heap32[(r7+1)];
	if(r13 !=r10) //_LBB864_122
{
	r13 = heap32[(r11+1)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+2)];
	if(r14 !=r10) //_LBB864_124
{
	heap32[(r13+3)] = r1;
}
else{
	heap32[(r13+2)] = r1;
}
}
else{
	heap32[(r7+1)] = r1;
}
	heap32[(r12+2)] = r10;
	heap32[(r11+1)] = r1;
	r10 = heap32[(r8+2)];
__label__ = 112;
break _125;
break;
case 68:
	r1 = heap32[(r11+3)];
if(!(r1 ==0)) //_LBB864_82
{
	r1 = r1 >> 2;
	r1 = heap32[(r1)];
	if(r1 !=1) //_LBB864_77
{
__label__ = 78;
break _125;
}
}
	heap32[(r12)] = 1;
	r1 = heap32[(r11+2)];
	r12 = r1 >> 2;
	heap32[(r11)] = 0;
	r13 = heap32[(r12+3)];
	heap32[(r11+2)] = r13;
	r13 = heap32[(r12+3)];
if(!(r13 ==0)) //_LBB864_84
{
	r13 = r13 >> 2;
	heap32[(r13+1)] = r10;
}
	r13 = heap32[(r11+1)];
	heap32[(r12+1)] = r13;
	r13 = heap32[(r7+1)];
	if(r13 !=r10) //_LBB864_86
{
	r13 = heap32[(r11+1)];
	r13 = r13 >> 2;
	r14 = heap32[(r13+3)];
	if(r14 !=r10) //_LBB864_88
{
	heap32[(r13+2)] = r1;
}
else{
	heap32[(r13+3)] = r1;
}
}
else{
	heap32[(r7+1)] = r1;
}
	heap32[(r12+3)] = r10;
	heap32[(r11+1)] = r1;
	r10 = heap32[(r8+3)];
__label__ = 78;
break;
}
} while(0);
_154: do {
switch(__label__ ){//multiple entries
case 112:
	r1 = r10 >> 2;
	r10 = heap32[(r8)];
	heap32[(r1)] = r10;
	heap32[(r8)] = 1;
	r1 = heap32[(r1+2)];
if(!(r1 ==0)) //_LBB864_128
{
	r1 = r1 >> 2;
	heap32[(r1)] = 1;
}
	r1 = heap32[(r8+2)];
	r10 = r1 >> 2;
	r11 = heap32[(r10+3)];
	heap32[(r8+2)] = r11;
	r11 = heap32[(r10+3)];
if(!(r11 ==0)) //_LBB864_130
{
	r11 = r11 >> 2;
	heap32[(r11+1)] = r9;
}
	r11 = heap32[(r8+1)];
	heap32[(r10+1)] = r11;
	r11 = heap32[(r7+1)];
	if(r11 !=r9) //_LBB864_132
{
	r7 = heap32[(r8+1)];
	r7 = r7 >> 2;
	r11 = heap32[(r7+3)];
	if(r11 !=r9) //_LBB864_134
{
	heap32[(r7+2)] = r1;
}
else{
	heap32[(r7+3)] = r1;
}
}
else{
	heap32[(r7+1)] = r1;
}
	heap32[(r10+3)] = r9;
	heap32[(r8+1)] = r1;
__label__ = 125;
break _154;
break;
case 78:
	r1 = r10 >> 2;
	r10 = heap32[(r8)];
	heap32[(r1)] = r10;
	heap32[(r8)] = 1;
	r1 = heap32[(r1+3)];
if(!(r1 ==0)) //_LBB864_92
{
	r1 = r1 >> 2;
	heap32[(r1)] = 1;
}
	r1 = heap32[(r8+3)];
	r10 = r1 >> 2;
	r11 = heap32[(r10+2)];
	heap32[(r8+3)] = r11;
	r11 = heap32[(r10+2)];
if(!(r11 ==0)) //_LBB864_94
{
	r11 = r11 >> 2;
	heap32[(r11+1)] = r9;
}
	r11 = heap32[(r8+1)];
	heap32[(r10+1)] = r11;
	r11 = heap32[(r7+1)];
	if(r11 !=r9) //_LBB864_96
{
	r7 = heap32[(r8+1)];
	r7 = r7 >> 2;
	r11 = heap32[(r7+2)];
	if(r11 !=r9) //_LBB864_98
{
	heap32[(r7+3)] = r1;
}
else{
	heap32[(r7+2)] = r1;
}
}
else{
	heap32[(r7+1)] = r1;
}
	heap32[(r10+2)] = r9;
	heap32[(r8+1)] = r1;
__label__ = 125;
break;
}
} while(0);
if (__label__ == 125){
	if(r5 ==0) //_LBB864_141
{
break _76;
}
}
	r1 = r5 >> 2;
	heap32[(r1)] = 1;
}
} while(0);
	r1 = heap32[(r0+75)];
	heap32[(r4+3)] = r1;
	heap32[(r0+75)] = r2;
	r1 = heap32[(r0+79)];
	r1 = (r1 + -1)|0;
	r2 = r3 >> 2;
	heap32[(r0+79)] = r1;
	heap32[(r2)] = r6;
	return;
}
else{
	r0 = r3 >> 2;
	heap32[(r0)] = r1;
	return;
}
}

function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE11_C_get_linkEv(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
	var r5;
	var r6;
var __label__ = 0;
	i7 = sp + -8;var g0 = i7>>2; // save stack
	r0 = _ZN5my_glL9m_contextE;
	r0 = r0 >> 2;
	r1 = heap32[(r0+75)];
	if(r1 ==0) //_LBB865_2
{
	r1 = heap32[(r0+76)];
	r2 = heap32[(r0+77)];
	if(r1 !=r2) //_LBB865_11
{
	r2 = (r1 + 24)|0;
	heap32[(r0+76)] = r2;
}
else{
	r1 = heap32[(r0+74)];
	if(r1 !=0) //_LBB865_5
{
	r1 = r1 >> 2;
	r1 = heap32[(r1+1)];
}
else{
	r1 = 0;
}
	heap32[(g0)] = 12;
	_Znwj(i7);
	r2 = r_g0;
if(!(r2 !=0)) //_LBB865_8
{
	heap32[(g0)] = 3;
	_ZN4__rw10__rw_throwEiz(i7);
}
	r3 = r1 & 1023;
	r3 = (r3 * 1656)|0;
	r4 = r1 >>> 10;
	r3 = r3 >>> 10;
	r4 = (r4 * 1656)|0;
	r5 = (r1 + 32)|0;
	r3 = (r3 + r4)|0;
	r3 = uint(r5) > uint(r3) ? r5 : r3;
	r4 = (r1 + 1)|0;
	r3 = uint(r3) > uint(r1) ? r3 : r4;
	r4 = (r3 * 24)|0;
	heap32[(g0)] = r4;
	_Znwj(i7);
	r1 = r_g0;
if(!(r1 !=0)) //_LBB865_10
{
	heap32[(g0)] = 3;
	_ZN4__rw10__rw_throwEiz(i7);
}
	r5 = r2 >> 2;
	heap32[(r5+2)] = r1;
	r6 = heap32[(r0+74)];
	heap32[(r5)] = r6;
	heap32[(r5+1)] = r3;
	r3 = (r1 + r4)|0;
	heap32[(r0+74)] = r2;
	r2 = (r1 + 24)|0;
	heap32[(r0+77)] = r3;
	heap32[(r0+76)] = r2;
}
}
else{
	r2 = r1 >> 2;
	r2 = heap32[(r2+3)];
	heap32[(r0+75)] = r2;
}
	r0 = r1 >> 2;
	heap32[(r0+1)] = 0;
	heap32[(r0+2)] = 0;
	heap32[(r0+3)] = 0;
	heap32[(r0)] = 0;
	r_g0 = r1;
	return;
}

function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
	var r4;
var __label__ = 0;
	i7 = sp + -32;var g0 = i7>>2; // save stack
	r0 = heap32[(fp)];
	r1 = r0 >> 2;
	r2 = heap32[(r1+4)];
if(!(r2 ==0)) //_LBB866_3
{
	r3 = r2 >> 2;
	r3 = heap32[(r3+2)];
	heap32[(fp+-2)] = r3;
	r3 = sp + -16;
	r4 = sp + -8;
	heap32[(g0)] = r3;
	heap32[(g0+1)] = r0;
	heap32[(g0+2)] = r4;
	heap32[(g0+3)] = r2;
	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE5eraseENS_14__rw_tree_iterIS3_iPS3_RS3_NS_17__rw_rb_tree_nodeIS8_S3_SsS5_EEEESF_(i7);
	r0 = heap32[(r1+4)];
	r2 = heap32[(r1+1)];
	r3 = r0 >> 2;
	heap32[(r3+3)] = r2;
	heap32[(r1+1)] = r0;
	r0 = heap32[(r1)];
if(!(r0 ==0)) //_LBB866_3
{
__label__ = 2; //SET chanka
_3: while(true){
	r2 = r0 >> 2;
	r3 = heap32[(r2)];
	heap32[(r1)] = r3;
	r2 = heap32[(r2+2)];
	heap32[(g0)] = r2;
	_ZdlPv(i7);
	heap32[(g0)] = r0;
	_ZdlPv(i7);
	r0 = heap32[(r1)];
	if(r0 !=0) //_LBB866_2
{
continue _3;
}
else{
break _3;
}
}
}
}
	return;
}

function Mandreel_TextureAsync_Loaded(sp)
{
	var i7;
	var fp = sp>>2;
	var r0;
	var r1;
	var r2;
	var r3;
var __label__ = 0;
	i7 = sp + -40;var g0 = i7>>2; // save stack
	r0 = 5;
	r0 = heap32[(r0)];
	r1 = heap32[(fp)];
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 3553;
	heap32[(g0+2)] = r1;
	r2 = 100;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	r0 = heap32[(r2)];
	r2 = heap32[(fp+1)];
	r3 = heap32[(fp+2)];
	heap32[(g0)] = 0;
	heap32[(g0+1)] = 3553;
	heap32[(g0+2)] = 0;
	heap32[(g0+3)] = 6408;
	heap32[(g0+4)] = r2;
	heap32[(g0+5)] = r3;
	heap32[(g0+6)] = 0;
	heap32[(g0+7)] = 6408;
	heap32[(g0+8)] = 5121;
	heap32[(g0+9)] = 0;
	__FUNCTION_TABLE__[(r0)>>2](i7);
	heap32[(g0)] = r1;
	Mandreel_TextureAsync_SetData(i7);
	return;
}

var _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix = Malloc(8);
var _ZGVZN11btTransform11getIdentityEvE17identityTransform = Malloc(8);
var Landscape02Vtx = Malloc(23760);
var _ZTIN16btCollisionWorld17RayResultCallbackE = Malloc(8);
var _ZTSN16btCollisionWorld17RayResultCallbackE = Malloc(40);
var _ZTVN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(24);
var _ZTIN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(12);
var _ZTSN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(47);
var _ZTI13btMotionState = Malloc(8);
var _ZTS13btMotionState = Malloc(16);
var _ZTV20btDefaultMotionState = Malloc(24);
var _ZTI20btDefaultMotionState = Malloc(12);
var _ZTS20btDefaultMotionState = Malloc(23);
var _ZTI17btTypedConstraint = Malloc(24);
var _ZTS17btTypedConstraint = Malloc(20);
var _ZTI13btTypedObject = Malloc(8);
var _ZTS13btTypedObject = Malloc(16);
var _ZTV7RagDoll = Malloc(16);
var _ZTI7RagDoll = Malloc(8);
var _ZTS7RagDoll = Malloc(9);
var _ZTV13BenchmarkDemo = Malloc(36);
var _ZTI13BenchmarkDemo = Malloc(12);
var _ZTS13BenchmarkDemo = Malloc(16);
var _ZTI15DemoApplication = Malloc(8);
var _ZTS15DemoApplication = Malloc(18);
var _ZL10raycastBar = Malloc(40048);
var _2E_str3 = Malloc(48);
var _2E_str4 = Malloc(69);
var _2E_str5 = Malloc(61);
var _2E_str6 = Malloc(50);
var _2E_str7 = Malloc(27);
var _ZL7TaruVtx = Malloc(516);
var LandscapeVtx = Malloc(32);
var Landscape01Vtx = Malloc(24576);
var Landscape03Vtx = Malloc(24576);
var Landscape04Vtx = Malloc(25344);
var Landscape05Vtx = Malloc(26928);
var Landscape06Vtx = Malloc(27720);
var Landscape07Vtx = Malloc(26880);
var Landscape08Vtx = Malloc(26136);
var LandscapeVtxCount = Malloc(32);
var LandscapeIdx = Malloc(32);
var Landscape01Idx = Malloc(23436);
var Landscape02Idx = Malloc(22620);
var Landscape03Idx = Malloc(23436);
var Landscape04Idx = Malloc(24192);
var Landscape05Idx = Malloc(25740);
var Landscape06Idx = Malloc(26520);
var Landscape07Idx = Malloc(25704);
var Landscape08Idx = Malloc(24960);
var LandscapeIdxCount = Malloc(32);
var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0 = Malloc(4);
var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1 = Malloc(4);
var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2 = Malloc(4);
var _ZZN11btTransform11getIdentityEvE17identityTransform = Malloc(64);
var _ZTV14BenchmarkDemo4 = Malloc(36);
var _ZTI14BenchmarkDemo4 = Malloc(12);
var _ZTS14BenchmarkDemo4 = Malloc(17);
var _ZL14benchmarkDemo4 = Malloc(80);
var _ZTI21btBroadphaseInterface = Malloc(8);
var _ZTS21btBroadphaseInterface = Malloc(24);
var _ZTI25btOverlappingPairCallback = Malloc(8);
var _ZTS25btOverlappingPairCallback = Malloc(28);
var _ZTI22btOverlappingPairCache = Malloc(12);
var _ZTS22btOverlappingPairCache = Malloc(25);
var _ZTV15btNullPairCache = Malloc(76);
var _ZTI15btNullPairCache = Malloc(12);
var _ZTS15btNullPairCache = Malloc(18);
var _2E_str11 = Malloc(36);
var _2E_str112 = Malloc(67);
var _2E_str213 = Malloc(18);
var _2E_str314 = Malloc(18);
var _ZTV20btAxisSweep3InternalItE = Malloc(64);
var _ZTI20btAxisSweep3InternalItE = Malloc(12);
var _ZTS20btAxisSweep3InternalItE = Malloc(26);
var _ZTV12btAxisSweep3 = Malloc(64);
var _ZTI12btAxisSweep3 = Malloc(12);
var _ZTS12btAxisSweep3 = Malloc(15);
var _ZTV20btCollisionAlgorithm = Malloc(28);
var _ZTI20btCollisionAlgorithm = Malloc(8);
var _ZTS20btCollisionAlgorithm = Malloc(23);
var _ZTIN6btDbvt8ICollideE = Malloc(8);
var _ZTSN6btDbvt8ICollideE = Malloc(19);
var _2E_str1118 = Malloc(63);
var _2E_str22 = Malloc(16);
var _ZTV18btDbvtTreeCollider = Malloc(36);
var _ZTI18btDbvtTreeCollider = Malloc(12);
var _ZTS18btDbvtTreeCollider = Malloc(21);
var _ZTV19BroadphaseRayTester = Malloc(36);
var _ZTI19BroadphaseRayTester = Malloc(12);
var _ZTS19BroadphaseRayTester = Malloc(22);
var _ZTV20BroadphaseAabbTester = Malloc(36);
var _ZTI20BroadphaseAabbTester = Malloc(12);
var _ZTS20BroadphaseAabbTester = Malloc(23);
var _2E_str18 = Malloc(73);
var _ZTV16btDbvtBroadphase = Malloc(64);
var _ZTI16btDbvtBroadphase = Malloc(12);
var _ZTS16btDbvtBroadphase = Malloc(19);
var _ZTV12btDispatcher = Malloc(64);
var _ZTI12btDispatcher = Malloc(8);
var _ZTS12btDispatcher = Malloc(15);
var _ZTI21btNodeOverlapCallback = Malloc(8);
var _ZTS21btNodeOverlapCallback = Malloc(24);
var _2E_str10 = Malloc(2);
var _2E_str212 = Malloc(18);
var _2E_str313 = Malloc(69);
var _2E_str414 = Malloc(36);
var _2E_str515 = Malloc(36);
var _2E_str616 = Malloc(36);
var _2E_str717 = Malloc(36);
var _2E_str820 = Malloc(36);
var _2E_str9 = Malloc(36);
var gOverlappingPairs = Malloc(4);
var _ZTI17btOverlapCallback = Malloc(8);
var _ZTS17btOverlapCallback = Malloc(20);
var _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(20);
var _ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(12);
var _ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(110);
var _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(20);
var _ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(12);
var _ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(129);
var gRemovePairs = Malloc(4);
var _ZTV28btHashedOverlappingPairCache = Malloc(76);
var _ZTI28btHashedOverlappingPairCache = Malloc(12);
var _ZTS28btHashedOverlappingPairCache = Malloc(31);
var _2E_str121 = Malloc(79);
var gAddedPairs = Malloc(4);
var _2E_str222 = Malloc(38);
var _2E_str323 = Malloc(77);
var _2E_str424 = Malloc(38);
var _2E_str525 = Malloc(38);
var _2E_str626 = Malloc(42);
var _2E_str727 = Malloc(22);
var gFindPairs = Malloc(4);
var _2E_str32 = Malloc(23);
var _2E_str133 = Malloc(23);
var _2E_str234 = Malloc(21);
var _2E_str335 = Malloc(24);
var _ZTV14btQuantizedBvh = Malloc(36);
var _ZTI14btQuantizedBvh = Malloc(8);
var _ZTS14btQuantizedBvh = Malloc(17);
var _2E_str537 = Malloc(71);
var _2E_str638 = Malloc(48);
var _2E_str739 = Malloc(13);
var _2E_str941 = Malloc(14);
var _2E_str1143 = Malloc(29);
var maxIterations = Malloc(4);
var _2E_str1844 = Malloc(19);
var _2E_str1921 = Malloc(32);
var _2E_str21 = Malloc(7);
var _2E_str2246 = Malloc(13);
var _ZTV30btActivatingCollisionAlgorithm = Malloc(28);
var _ZTI30btActivatingCollisionAlgorithm = Malloc(12);
var _ZTS30btActivatingCollisionAlgorithm = Malloc(33);
var _2E_str59 = Malloc(14);
var _2E_str160 = Malloc(69);
var _ZTV26btBoxBoxCollisionAlgorithm = Malloc(28);
var _ZTI26btBoxBoxCollisionAlgorithm = Malloc(12);
var _ZTS26btBoxBoxCollisionAlgorithm = Malloc(29);
var _ZTI36btDiscreteCollisionDetectorInterface = Malloc(8);
var _ZTS36btDiscreteCollisionDetectorInterface = Malloc(39);
var _ZTV16btBoxBoxDetector = Malloc(20);
var _ZTI16btBoxBoxDetector = Malloc(12);
var _ZTS16btBoxBoxDetector = Malloc(19);
var _2E_str65 = Malloc(12);
var _2E_str166 = Malloc(71);
var gNumManifold = Malloc(4);
var _ZTIN36btDiscreteCollisionDetectorInterface6ResultE = Malloc(8);
var _ZTSN36btDiscreteCollisionDetectorInterface6ResultE = Malloc(48);
var _ZTV23btCollisionPairCallback = Malloc(20);
var _ZTI23btCollisionPairCallback = Malloc(12);
var _ZTS23btCollisionPairCallback = Malloc(26);
var _2E_str169 = Malloc(45);
var _2E_str270 = Malloc(26);
var _2E_str371 = Malloc(14);
var _2E_str472 = Malloc(34);
var _2E_str573 = Malloc(76);
var _ZTV21btCollisionDispatcher = Malloc(64);
var _ZTI21btCollisionDispatcher = Malloc(12);
var _ZTS21btCollisionDispatcher = Malloc(24);
var _2E_str674 = Malloc(23);
var _2E_str775 = Malloc(6);
var _2E_str876 = Malloc(6);
var _2E_str977 = Malloc(73);
var _ZTV17btCollisionObject = Malloc(36);
var _ZTI17btCollisionObject = Malloc(8);
var _ZTS17btCollisionObject = Malloc(20);
var _2E_str78 = Malloc(27);
var _ZTIN16btCollisionWorld20ConvexResultCallbackE = Malloc(8);
var _ZTSN16btCollisionWorld20ConvexResultCallbackE = Malloc(43);
var _ZTI30btConvexPenetrationDepthSolver = Malloc(8);
var _ZTS30btConvexPenetrationDepthSolver = Malloc(33);
var _ZTVN12btConvexCast10CastResultE = Malloc(24);
var _ZTIN12btConvexCast10CastResultE = Malloc(8);
var _ZTSN12btConvexCast10CastResultE = Malloc(29);
var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(24);
var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(12);
var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(140);
var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(24);
var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(12);
var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(164);
var _ZTI24btBroadphaseAabbCallback = Malloc(8);
var _ZTS24btBroadphaseAabbCallback = Malloc(27);
var _ZTI23btBroadphaseRayCallback = Malloc(12);
var _ZTS23btBroadphaseRayCallback = Malloc(26);
var _ZTV17DebugDrawcallback = Malloc(44);
var _ZTI17DebugDrawcallback = Malloc(32);
var _ZTS17DebugDrawcallback = Malloc(20);
var _ZTI18btTriangleCallback = Malloc(8);
var _ZTS18btTriangleCallback = Malloc(21);
var _ZTI31btInternalTriangleIndexCallback = Malloc(8);
var _ZTS31btInternalTriangleIndexCallback = Malloc(34);
var _ZTV16btCollisionWorld = Malloc(56);
var _ZTI16btCollisionWorld = Malloc(8);
var _ZTS16btCollisionWorld = Malloc(19);
var _ZTI16btManifoldResult = Malloc(12);
var _ZTS16btManifoldResult = Malloc(19);
var _ZTV21btSingleSweepCallback = Malloc(20);
var _ZTI21btSingleSweepCallback = Malloc(12);
var _ZTS21btSingleSweepCallback = Malloc(24);
var _ZTV19btSingleRayCallback = Malloc(20);
var _ZTI19btSingleRayCallback = Malloc(12);
var _ZTS19btSingleRayCallback = Malloc(22);
var _2E_str382 = Malloc(23);
var _2E_str483 = Malloc(76);
var _2E_str584 = Malloc(19);
var _2E_str685 = Malloc(42);
var _2E_str786 = Malloc(16);
var _2E_str887 = Malloc(71);
var _2E_str988 = Malloc(82);
var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(24);
var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(12);
var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(184);
var _ZTI28btTriangleConvexcastCallback = Malloc(12);
var _ZTS28btTriangleConvexcastCallback = Malloc(31);
var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(24);
var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(12);
var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(182);
var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(24);
var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(12);
var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(156);
var _ZTI25btTriangleRaycastCallback = Malloc(12);
var _ZTS25btTriangleRaycastCallback = Malloc(28);
var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(24);
var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(12);
var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(154);
var _2E_str1089 = Malloc(16);
var _2E_str1190 = Malloc(34);
var _2E_str1291 = Malloc(26);
var _2E_str1392 = Malloc(26);
var _2E_str1493 = Malloc(20);
var _ZZN16btCollisionWorld16updateSingleAabbEP17btCollisionObjectE8reportMe_2E_b = Malloc(1);
var _2E_str1594 = Malloc(49);
var _2E_str1695 = Malloc(68);
var _2E_str1796 = Malloc(65);
var _2E_str1897 = Malloc(9);
var _2E_str1998 = Malloc(12);
var _ZTV22btCompoundLeafCallback = Malloc(36);
var _ZTI22btCompoundLeafCallback = Malloc(12);
var _ZTS22btCompoundLeafCallback = Malloc(25);
var _2E_str99 = Malloc(42);
var _2E_str1100 = Malloc(83);
var _2E_str2101 = Malloc(43);
var _2E_str3102 = Malloc(41);
var _2E_str4103 = Malloc(43);
var _2E_str5104 = Malloc(43);
var _2E_str6105 = Malloc(9);
var _2E_str7106 = Malloc(41);
var _ZTV28btCompoundCollisionAlgorithm = Malloc(28);
var _ZTI28btCompoundCollisionAlgorithm = Malloc(12);
var _ZTS28btCompoundCollisionAlgorithm = Malloc(31);
var _2E_str109 = Malloc(9);
var _ZTV24btConvexTriangleCallback = Malloc(20);
var _ZTI24btConvexTriangleCallback = Malloc(12);
var _ZTS24btConvexTriangleCallback = Malloc(27);
var _ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(20);
var _ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(12);
var _ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(158);
var _ZTV15btTriangleShape = Malloc(124);
var _ZTI15btTriangleShape = Malloc(12);
var _ZTS15btTriangleShape = Malloc(18);
var _ZTI23btPolyhedralConvexShape = Malloc(12);
var _ZTS23btPolyhedralConvexShape = Malloc(26);
var _ZTI21btConvexInternalShape = Malloc(12);
var _ZTS21btConvexInternalShape = Malloc(24);
var _ZTI13btConvexShape = Malloc(12);
var _ZTS13btConvexShape = Malloc(16);
var _ZTI16btCollisionShape = Malloc(8);
var _ZTS16btCollisionShape = Malloc(19);
var _2E_str1110 = Malloc(26);
var _2E_str3112 = Malloc(66);
var _ZTV33btConvexConcaveCollisionAlgorithm = Malloc(28);
var _ZTI33btConvexConcaveCollisionAlgorithm = Malloc(12);
var _ZTS33btConvexConcaveCollisionAlgorithm = Malloc(36);
var _ZTI30btCollisionAlgorithmCreateFunc = Malloc(8);
var _ZTS30btCollisionAlgorithmCreateFunc = Malloc(33);
var _ZTVN23btConvexConvexAlgorithm10CreateFuncE = Malloc(20);
var _ZTIN23btConvexConvexAlgorithm10CreateFuncE = Malloc(12);
var _ZTSN23btConvexConvexAlgorithm10CreateFuncE = Malloc(40);
var _ZTV24btPerturbedContactResult = Malloc(28);
var _ZTI24btPerturbedContactResult = Malloc(12);
var _ZTS24btPerturbedContactResult = Malloc(27);
var _2E_str115 = Malloc(19);
var _2E_str4119 = Malloc(49);
var _2E_str5120 = Malloc(78);
var _ZTV23btConvexConvexAlgorithm = Malloc(28);
var _ZTI23btConvexConvexAlgorithm = Malloc(12);
var _ZTS23btConvexConvexAlgorithm = Malloc(26);
var _ZTV31btConvexPlaneCollisionAlgorithm = Malloc(28);
var _ZTI31btConvexPlaneCollisionAlgorithm = Malloc(12);
var _ZTS31btConvexPlaneCollisionAlgorithm = Malloc(34);
var _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(20);
var _ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(12);
var _ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(48);
var _ZTI24btCollisionConfiguration = Malloc(8);
var _ZTS24btCollisionConfiguration = Malloc(27);
var _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(20);
var _ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(12);
var _ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(50);
var _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(20);
var _ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(12);
var _ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(57);
var _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(20);
var _ZTIN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(12);
var _ZTSN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(45);
var _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(20);
var _ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(12);
var _ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(52);
var _ZTVN16btEmptyAlgorithm10CreateFuncE = Malloc(20);
var _ZTIN16btEmptyAlgorithm10CreateFuncE = Malloc(12);
var _ZTSN16btEmptyAlgorithm10CreateFuncE = Malloc(33);
var _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(20);
var _ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(12);
var _ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(49);
var _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(20);
var _ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(12);
var _ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(51);
var _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(20);
var _ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(12);
var _ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(43);
var _2E_str128 = Malloc(12);
var _2E_str1129 = Malloc(42);
var _ZTV31btDefaultCollisionConfiguration = Malloc(36);
var _ZTI31btDefaultCollisionConfiguration = Malloc(12);
var _ZTS31btDefaultCollisionConfiguration = Malloc(34);
var _ZTV16btEmptyAlgorithm = Malloc(28);
var _ZTI16btEmptyAlgorithm = Malloc(12);
var _ZTS16btEmptyAlgorithm = Malloc(19);
var _ZTV16btManifoldResult = Malloc(28);
var _2E_str2149 = Malloc(31);
var _2E_str3150 = Malloc(12);
var _2E_str5152 = Malloc(71);
var _2E_str155 = Malloc(28);
var _2E_str1156 = Malloc(73);
var _2E_str2157 = Malloc(80);
var _2E_str3158 = Malloc(15);
var _ZTV25btSimulationIslandManager = Malloc(24);
var _ZTI25btSimulationIslandManager = Malloc(8);
var _ZTS25btSimulationIslandManager = Malloc(28);
var _ZTV32btSphereSphereCollisionAlgorithm = Malloc(28);
var _ZTI32btSphereSphereCollisionAlgorithm = Malloc(12);
var _ZTS32btSphereSphereCollisionAlgorithm = Malloc(35);
var _ZTV34btSphereTriangleCollisionAlgorithm = Malloc(28);
var _ZTI34btSphereTriangleCollisionAlgorithm = Malloc(12);
var _ZTS34btSphereTriangleCollisionAlgorithm = Malloc(37);
var _ZTV22SphereTriangleDetector = Malloc(20);
var _ZTI22SphereTriangleDetector = Malloc(12);
var _ZTS22SphereTriangleDetector = Malloc(25);
var _2E_str173 = Malloc(4);
var _2E_str2175 = Malloc(61);
var _ZTV10btBoxShape = Malloc(124);
var _ZTI10btBoxShape = Malloc(12);
var _ZTS10btBoxShape = Malloc(13);
var _2E_str181 = Malloc(16);
var _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(20);
var _ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(12);
var _ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(104);
var _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(20);
var _ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(12);
var _ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(113);
var _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(20);
var _ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(12);
var _ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(110);
var _2E_str5186 = Malloc(70);
var _2E_str6187 = Malloc(49);
var _2E_str7188 = Malloc(75);
var _2E_str8189 = Malloc(24);
var _ZTV22btBvhTriangleMeshShape = Malloc(88);
var _ZTI22btBvhTriangleMeshShape = Malloc(12);
var _ZTS22btBvhTriangleMeshShape = Malloc(25);
var _ZTI19btTriangleMeshShape = Malloc(12);
var _ZTS19btTriangleMeshShape = Malloc(22);
var _ZTI14btConcaveShape = Malloc(12);
var _ZTS14btConcaveShape = Malloc(17);
var _2E_str194 = Malloc(13);
var _2E_str4198 = Malloc(72);
var _2E_str6199 = Malloc(19);
var _ZTV14btCapsuleShape = Malloc(92);
var _ZTI14btCapsuleShape = Malloc(12);
var _ZTS14btCapsuleShape = Malloc(17);
var _2E_str200 = Malloc(21);
var _ZTV14btConcaveShape = Malloc(72);
var _2E_str219 = Malloc(7);
var _2E_str3222 = Malloc(70);
var _ZTV17btConvexHullShape = Malloc(120);
var _ZTI17btConvexHullShape = Malloc(12);
var _ZTS17btConvexHullShape = Malloc(20);
var _ZTI34btPolyhedralConvexAabbCachingShape = Malloc(12);
var _ZTS34btPolyhedralConvexAabbCachingShape = Malloc(37);
var _2E_str5223 = Malloc(19);
var _2E_str6224 = Malloc(22);
var _2E_str6232 = Malloc(19);
var _ZTV13btConvexShape = Malloc(92);
var _2E_str6249 = Malloc(13);
var _2E_str7250 = Malloc(66);
var _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(20);
var _ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(12);
var _ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(91);
var _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(20);
var _ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(12);
var _ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(100);
var _2E_str10306 = Malloc(67);
var _2E_str18314 = Malloc(36);
var _2E_str19315 = Malloc(48);
var _2E_str20316 = Malloc(17);
var _ZTV14btOptimizedBvh = Malloc(40);
var _ZTI14btOptimizedBvh = Malloc(12);
var _ZTS14btOptimizedBvh = Malloc(17);
var _2E_str7331 = Malloc(74);
var _ZGVZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions = Malloc(8);
var _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions = Malloc(96);
var _2E_str342 = Malloc(7);
var _ZTV13btSphereShape = Malloc(92);
var _ZTI13btSphereShape = Malloc(12);
var _ZTS13btSphereShape = Malloc(16);
var _2E_str349 = Malloc(15);
var _2E_str1350 = Malloc(27);
var _2E_str3352 = Malloc(76);
var _2E_str5354 = Malloc(20);
var _2E_str6355 = Malloc(44);
var _2E_str7356 = Malloc(15);
var _2E_str8357 = Malloc(28);
var _2E_str9358 = Malloc(61);
var _ZTV23btStridingMeshInterface = Malloc(68);
var _ZTI23btStridingMeshInterface = Malloc(8);
var _ZTS23btStridingMeshInterface = Malloc(26);
var _ZTV31btInternalTriangleIndexCallback = Malloc(20);
var _ZTV18btTriangleCallback = Malloc(20);
var _2E_str367 = Malloc(26);
var _2E_str1368 = Malloc(79);
var _ZTV26btTriangleIndexVertexArray = Malloc(68);
var _ZTI26btTriangleIndexVertexArray = Malloc(12);
var _ZTS26btTriangleIndexVertexArray = Malloc(29);
var _2E_str372 = Malloc(13);
var _ZTV21SupportVertexCallback = Malloc(20);
var _ZTI21SupportVertexCallback = Malloc(12);
var _ZTS21SupportVertexCallback = Malloc(24);
var _ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(20);
var _ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(12);
var _ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(102);
var _2E_str3375 = Malloc(72);
var _ZTV19btTriangleMeshShape = Malloc(80);
var _ZTV16btPointCollector = Malloc(28);
var _ZTI16btPointCollector = Malloc(12);
var _ZTS16btPointCollector = Malloc(19);
var _ZTV27btContinuousConvexCollision = Malloc(20);
var _ZTI27btContinuousConvexCollision = Malloc(12);
var _ZTS27btContinuousConvexCollision = Malloc(30);
var _ZTI12btConvexCast = Malloc(8);
var _ZTS12btConvexCast = Malloc(15);
var _ZTV12btConvexCast = Malloc(20);
var _ZTV15btGjkConvexCast = Malloc(20);
var _ZTI15btGjkConvexCast = Malloc(12);
var _ZTS15btGjkConvexCast = Malloc(18);
var _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3 = Malloc(12);
var _ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3 = Malloc(12);
var _ZTV30btGjkEpaPenetrationDepthSolver = Malloc(20);
var _ZTI30btGjkEpaPenetrationDepthSolver = Malloc(12);
var _ZTS30btGjkEpaPenetrationDepthSolver = Malloc(33);
var gNumDeepPenetrationChecks = Malloc(4);
var _ZTV17btGjkPairDetector = Malloc(20);
var _ZTI17btGjkPairDetector = Malloc(12);
var _ZTS17btGjkPairDetector = Malloc(20);
var gNumGjkChecks = Malloc(4);
var _2E_str425 = Malloc(39);
var _2E_str1426 = Malloc(71);
var _2E_str2427 = Malloc(18);
var _2E_str3428 = Malloc(75);
var gContactBreakingThreshold = Malloc(4);
var _2E_str434 = Malloc(52);
var _2E_str3437 = Malloc(78);
var _2E_str4438 = Malloc(50);
var _ZTV28btTriangleConvexcastCallback = Malloc(24);
var _ZTV22btSubsimplexConvexCast = Malloc(20);
var _ZTI22btSubsimplexConvexCast = Malloc(12);
var _ZTS22btSubsimplexConvexCast = Malloc(25);
var _2E_str457 = Malloc(16);
var _2E_str1458 = Malloc(80);
var _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(24);
var _ZTIN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(12);
var _ZTSN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(50);
var _2E_str36 = Malloc(51);
var _2E_str239 = Malloc(26);
var _ZTV21btConeTwistConstraint = Malloc(52);
var _ZTI21btConeTwistConstraint = Malloc(12);
var _ZTS21btConeTwistConstraint = Malloc(24);
var _2E_str1340 = Malloc(37);
var _2E_str24 = Malloc(74);
var _2E_str442 = Malloc(37);
var _2E_str543 = Malloc(37);
var _2E_str846 = Malloc(24);
var _2E_str947 = Malloc(66);
var _2E_str1149 = Malloc(30);
var _2E_str29 = Malloc(27);
var _ZTV17btHingeConstraint = Malloc(52);
var _ZTI17btHingeConstraint = Malloc(12);
var _ZTS17btHingeConstraint = Malloc(20);
var _2E_str130 = Malloc(34);
var _2E_str231 = Malloc(70);
var _2E_str332 = Malloc(34);
var _2E_str433 = Malloc(34);
var gNumSplitImpulseRecoveries = Malloc(4);
var _ZTI18btConstraintSolver = Malloc(8);
var _ZTS18btConstraintSolver = Malloc(21);
var _ZTV35btSequentialImpulseConstraintSolver = Malloc(48);
var _ZTI35btSequentialImpulseConstraintSolver = Malloc(12);
var _ZTS35btSequentialImpulseConstraintSolver = Malloc(38);
var _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed = Malloc(8);
var _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed = Malloc(608);
var _2E_str248 = Malloc(27);
var _2E_str34955 = Malloc(54);
var _2E_str450 = Malloc(11);
var _2E_str551 = Malloc(7);
var _2E_str652 = Malloc(88);
var _2E_str753 = Malloc(10);
var _2E_str854 = Malloc(34);
var _2E_str955 = Malloc(3);
var _2E_str1056 = Malloc(29);
var _2E_str1157 = Malloc(24);
var _2E_str76 = Malloc(22);
var _ZTI23btDiscreteDynamicsWorld = Malloc(12);
var _ZTS23btDiscreteDynamicsWorld = Malloc(26);
var _ZTI15btDynamicsWorld = Malloc(12);
var _ZTS15btDynamicsWorld = Malloc(18);
var _ZTIN25btSimulationIslandManager14IslandCallbackE = Malloc(8);
var _ZTSN25btSimulationIslandManager14IslandCallbackE = Malloc(46);
var _ZTV34btClosestNotMeConvexResultCallback = Malloc(24);
var _ZTI34btClosestNotMeConvexResultCallback = Malloc(12);
var _ZTS34btClosestNotMeConvexResultCallback = Malloc(37);
var _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(20);
var _ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(12);
var _ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(99);
var _2E_str87 = Malloc(26);
var _2E_str188 = Malloc(27);
var _2E_str289 = Malloc(14);
var _2E_str794 = Malloc(20);
var _2E_str895 = Malloc(20);
var gNumClampedCcdMotions = Malloc(4);
var _2E_str996 = Malloc(17);
var _2E_str1097 = Malloc(22);
var _2E_str1198 = Malloc(29);
var _2E_str1299 = Malloc(15);
var _2E_str13100 = Malloc(5);
var _2E_str1461 = Malloc(68);
var _2E_str1562 = Malloc(24);
var _2E_str16101 = Malloc(15);
var _ZTV15btDynamicsWorld = Malloc(140);
var _ZTV23btDiscreteDynamicsWorld = Malloc(180);
var _ZL8uniqueId = Malloc(4);
var _ZTV11btRigidBody = Malloc(36);
var _ZTI11btRigidBody = Malloc(12);
var _ZTS11btRigidBody = Malloc(14);
var _2E_str4144 = Malloc(21);
var gDisableDeactivation = Malloc(1);
var gNumAlignedAllocs = Malloc(4);
var gNumAlignedFree = Malloc(4);
var _ZN15CProfileManager12FrameCounterE = Malloc(4);
var _ZN15CProfileManager4RootE = Malloc(32);
var _ZL13gProfileClock_2E_0 = Malloc(4);
var _ZN15CProfileManager11CurrentNodeE = Malloc(4);
var _2E_str729 = Malloc(5);
var _ZN4__rwL12__rw_catlistE_2E_0 = Malloc(4);
var _ZN4__rwL12__rw_catlistE_2E_1 = Malloc(4);
var _ZN4__rwL12__rw_catlistE_2E_2 = Malloc(4);
var llvm_2E_eh_2E_catch_2E_all_2E_value = Malloc(4);
var _ZTIN4__rw10__rw_facetE = Malloc(12);
var _ZTSN4__rw10__rw_facetE = Malloc(20);
var _ZTIN4__rw17__rw_synchronizedE = Malloc(8);
var _ZTSN4__rw17__rw_synchronizedE = Malloc(27);
var _2E_str4131 = Malloc(10);
var _2E_str15132 = Malloc(21);
var _2E_str26 = Malloc(1);
var _ZN4__rwL13__rw_what_bufE = Malloc(256);
var _ZN4__rwL16__rw_what_refcntE = Malloc(4);
var _2E_str3133 = Malloc(16);
var _2E_str47 = Malloc(25);
var _2E_str5134 = Malloc(18);
var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E7__fname = Malloc(4);
var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer = Malloc(11);
var _2E_str7136 = Malloc(3);
var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset = Malloc(4);
var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs = Malloc(32);
var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat = Malloc(4);
var _ZZN4__rw10__rw_throwEizE6errors = Malloc(100);
var _2E_str8137 = Malloc(26);
var _2E_str9138 = Malloc(18);
var _2E_str10139 = Malloc(29);
var _2E_str11140 = Malloc(33);
var _2E_str12141 = Malloc(17);
var _2E_str138142 = Malloc(20);
var _2E_str14143 = Malloc(21);
var _2E_str159144 = Malloc(25);
var _2E_str16145 = Malloc(51);
var _2E_str17146 = Malloc(47);
var _2E_str18147 = Malloc(22);
var _2E_str19148 = Malloc(44);
var _2E_str20149 = Malloc(23);
var _2E_str21150 = Malloc(24);
var _2E_str22151 = Malloc(39);
var _2E_str23152 = Malloc(38);
var _2E_str24153 = Malloc(38);
var _2E_str25154 = Malloc(29);
var _2E_str2610 = Malloc(44);
var _2E_str27 = Malloc(30);
var _2E_str28155 = Malloc(40);
var _2E_str29156 = Malloc(26);
var _2E_str30 = Malloc(27);
var _2E_str31 = Malloc(30);
var _2E_str32157 = Malloc(32);
var _2E_str33 = Malloc(11);
var _2E_str134 = Malloc(9);
var _2E_str235 = Malloc(12);
var _2E_str336 = Malloc(11);
var _2E_str437 = Malloc(8);
var _ZTVN4__rw10__rw_facetE = Malloc(16);
var _2E_str538 = Malloc(2);
var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE12n_std_facets = Malloc(4);
var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets = Malloc(4);
var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf = Malloc(1664);
var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize = Malloc(4);
var _ZZN4__rw10__rw_facetD4EvE9destroyed = Malloc(24);
var _ZN4__rw9__rw_catsE = Malloc(72);
var _2E_str785 = Malloc(2);
var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE6global = Malloc(4);
var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE5ginit = Malloc(4);
var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE9n_locales = Malloc(4);
var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales = Malloc(4);
var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf = Malloc(32);
var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize = Malloc(4);
var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7classic = Malloc(4);
var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body = Malloc(172);
var _ZN4__rwL22__rw_classic_once_initE_2E_0_2E_b = Malloc(1);
var _ZN4__rwL12__rw_classicE = Malloc(4);
var _2E_str292167 = Malloc(4);
var _2E_str10100175 = Malloc(29);
var _2E_str12102177 = Malloc(33);
var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE4init_2E_b = Malloc(1);
var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs = Malloc(4);
var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf = Malloc(64);
var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize = Malloc(4);
var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs = Malloc(4);
var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat = Malloc(4);
var _2E_str115180 = Malloc(27);
var _2E_str1116181 = Malloc(25);
var _2E_str2131 = Malloc(2);
var _2E_str4133 = Malloc(2);
var _ZZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEEE11locale_root = Malloc(259);
var _ZNSs11_C_null_refE = Malloc(16);
var _ZTVSt8messagesIcE = Malloc(28);
var _ZTISt8messagesIcE = Malloc(32);
var _ZTSSt8messagesIcE = Malloc(15);
var _ZTISt13messages_base = Malloc(8);
var _ZTSSt13messages_base = Malloc(18);
var _2E_str2360 = Malloc(31);
var _2E_str3361 = Malloc(48);
var _2E_str4362 = Malloc(31);
var _ZTVSt9type_info = Malloc(24);
var _ZTISt9type_info = Malloc(8);
var _ZTSSt9type_info = Malloc(13);
var s_max_memory = Malloc(4);
var s_current_memory = Malloc(4);
var block_null = Malloc(16);
var _2E_str643 = Malloc(57);
var _2E_str1648 = Malloc(3);
var _2E_str4651 = Malloc(4);
var _2E_str5652 = Malloc(4);
var my_ctype = Malloc(1028);
var _ZL8nextRand = Malloc(4);
var _2E_str7654 = Malloc(4);
var _2E_str9655 = Malloc(4);
var _ZL8pad_line = Malloc(64);
var _ZL10strtok_pos = Malloc(4);
var _ZTI14CFileInterface = Malloc(8);
var _ZTS14CFileInterface = Malloc(17);
var _ZTV11CFileSystem = Malloc(44);
var _ZTI11CFileSystem = Malloc(12);
var _ZTS11CFileSystem = Malloc(14);
var _ZL13s_file_stdout = Malloc(4);
var _ZTV7CFileLS = Malloc(44);
var _ZTI7CFileLS = Malloc(12);
var _ZTS7CFileLS = Malloc(9);
var _ZTV10CFileCloud = Malloc(44);
var _ZTI10CFileCloud = Malloc(12);
var _ZTS10CFileCloud = Malloc(13);
var _ZL10s_aSockets = Malloc(262336);
var _ZTV11CFileStdout = Malloc(44);
var _ZTI11CFileStdout = Malloc(12);
var _ZTS11CFileStdout = Malloc(14);
var _2E_str31677 = Malloc(4);
var _2E_str32678 = Malloc(4);
var _2E_str33679 = Malloc(5);
var _2E_str34680 = Malloc(8);
var _2E_str35681 = Malloc(53);
var _2E_str37683 = Malloc(4);
var _2E_str38684 = Malloc(7);
var _ZN12mandreel_b64L9b64_charsE = Malloc(65);
var _ZN12mandreel_b64L11b64_indexesE = Malloc(256);
var _ZL25s_mandreel_internal_width = Malloc(4);
var _ZL26s_mandreel_internal_height = Malloc(4);
var g_msgcallback = Malloc(4);
var _ZL24g_pFirstTextureAsyncInfo = Malloc(4);
var _ZL17g_apPackFileNames = Malloc(1024);
var _ZGVZ21Mandreel_GetTickCountE7s_first = Malloc(8);
var _ZZ21Mandreel_GetTickCountE7s_first = Malloc(8);
var _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b = Malloc(1);
var _2E_str779 = Malloc(13);
var _2E_str3782 = Malloc(13);
var _2E_str4783 = Malloc(37);
var _2E_str5784 = Malloc(12);
var _2E_str6785 = Malloc(17);
var _ZZ24__mandreel_internal_initE54s_723478567_mandreel___mandreel_internal_SetResolution = Malloc(4);
var _ZZ24__mandreel_internal_initE56s_723478567_mandreel_iMandreel_TextureAsync_IsCompressed = Malloc(4);
var _ZZ24__mandreel_internal_initE57s_723478567_mandreel_iMandreel_TextureAsync_GetPackOffset = Malloc(4);
var _ZZ24__mandreel_internal_initE29s_723478567_mandreel___resize = Malloc(4);
var _ZZ24__mandreel_internal_initE48s_723478567_mandreel_imandreel_restore_glcontext = Malloc(4);
var _ZZ24__mandreel_internal_initE46s_723478567_mandreel_imandreel_viewport_resize = Malloc(4);
var _ZTVN10__cxxabiv120__si_class_type_infoE = Malloc(40);
var _ZTIN10__cxxabiv120__si_class_type_infoE = Malloc(12);
var _ZTSN10__cxxabiv120__si_class_type_infoE = Malloc(37);
var _ZTIN10__cxxabiv117__class_type_infoE = Malloc(12);
var _ZTSN10__cxxabiv117__class_type_infoE = Malloc(34);
var _ZTVN10__cxxabiv117__class_type_infoE = Malloc(40);
var _ZTVN10__cxxabiv121__vmi_class_type_infoE = Malloc(40);
var _ZTIN10__cxxabiv121__vmi_class_type_infoE = Malloc(12);
var _ZTSN10__cxxabiv121__vmi_class_type_infoE = Malloc(38);
var _ZL11g_aChannels = Malloc(9344);
var _ZL7g_bInit_2E_b = Malloc(1);
var _2E_str221 = Malloc(8);
var _2E_str1222 = Malloc(21);
var _ZL21g_pFirstSoundDuration = Malloc(4);
var _2E_str3224 = Malloc(71);
var _2E_str4225 = Malloc(8);
var _ZL15g_iFreeChannels = Malloc(4);
var _ZL15g_aFreeChannels = Malloc(128);
var _ZL6g_bLog = Malloc(1);
var _2E_str12233 = Malloc(5);
var _2E_str22243 = Malloc(21);
var _2E_str24245 = Malloc(86);
var _2E_str26247 = Malloc(8);
var _2E_str27248 = Malloc(4);
var _2E_str28249 = Malloc(60);
var _2E_str29250 = Malloc(10);
var _2E_str30251 = Malloc(3);
var _2E_str31252 = Malloc(75);
var _2E_str32253 = Malloc(5);
var _2E_str33254 = Malloc(4);
var _2E_str34255 = Malloc(9);
var _2E_str35256 = Malloc(22);
var _ZZL32_mandreel_init_tcp_socket_librayvE47s_723478567_mandreel_mandreel_flash_tcp_onError = Malloc(4);
var _ZL13s_fifo_errors = Malloc(24);
var _ZN5my_glL9m_contextE = Malloc(324);
var llvm_2E_global_ctors = Malloc(40);
var llvm_2E_global_dtors = Malloc(56);
var llvm_2E_used = Malloc(300);
function global_init(stackPos)
{
initHeap();
emit_start(Landscape02Vtx)
emit_32(3279552512);
emit_32(1077902238);
emit_32(1122144223);
emit_32(3279552512);
emit_32(1074513450);
emit_32(1122656322);
emit_32(3279296528);
emit_32(1070576131);
emit_32(1122144223);
emit_32(3279296528);
emit_32(1069684087);
emit_32(1122656322);
emit_32(3279040545);
emit_32(1062793197);
emit_32(1122144223);
emit_32(3279040545);
emit_32(1059117578);
emit_32(1122656322);
emit_32(3278784496);
emit_32(3207760682);
emit_32(1122144223);
emit_32(3278784496);
emit_32(3205587983);
emit_32(1122656322);
emit_32(3278528512);
emit_32(3223956593);
emit_32(1122144223);
emit_32(3278528512);
emit_32(3221291239);
emit_32(1122656322);
emit_32(3278272528);
emit_32(3228867536);
emit_32(1122144223);
emit_32(3278272528);
emit_32(3227143174);
emit_32(1122656322);
emit_32(3278016545);
emit_32(3229577925);
emit_32(1122144223);
emit_32(3278016545);
emit_32(3228890898);
emit_32(1122656322);
emit_32(3277760496);
emit_32(3232782164);
emit_32(1122144223);
emit_32(3277760496);
emit_32(3231744493);
emit_32(1122656322);
emit_32(3277504512);
emit_32(3233030424);
emit_32(1122144223);
emit_32(3277504512);
emit_32(3231183211);
emit_32(1122656322);
emit_32(3277248528);
emit_32(3231512296);
emit_32(1122144223);
emit_32(3277248528);
emit_32(3226713845);
emit_32(1122656322);
emit_32(3276992545);
emit_32(3225240260);
emit_32(1122144223);
emit_32(3276992545);
emit_32(3222588579);
emit_32(1122656322);
emit_32(3276736496);
emit_32(3223081116);
emit_32(1122144223);
emit_32(3276736496);
emit_32(3218835474);
emit_32(1122656322);
emit_32(3276480512);
emit_32(3217103310);
emit_32(1122144223);
emit_32(3276480512);
emit_32(3214447728);
emit_32(1122656322);
emit_32(3276224528);
emit_32(3188062822);
emit_32(1122144223);
emit_32(3276224528);
emit_32(1046529045);
emit_32(1122656322);
emit_32(3275968545);
emit_32(1065108554);
emit_32(1122144223);
emit_32(3275968545);
emit_32(1070915199);
emit_32(1122656322);
emit_32(3275712496);
emit_32(1078777673);
emit_32(1122144223);
emit_32(3275712496);
emit_32(1082866637);
emit_32(1122656322);
emit_32(3275456512);
emit_32(1083552091);
emit_32(1122144223);
emit_32(3275456512);
emit_32(1087021578);
emit_32(1122656322);
emit_32(3275200528);
emit_32(1086679197);
emit_32(1122144223);
emit_32(3275200528);
emit_32(1090529232);
emit_32(1122656322);
emit_32(3274944545);
emit_32(1090716539);
emit_32(1122144223);
emit_32(3274944545);
emit_32(1092317201);
emit_32(1122656322);
emit_32(3274688496);
emit_32(1091935477);
emit_32(1122144223);
emit_32(3274688496);
emit_32(1093426427);
emit_32(1122656322);
emit_32(3274432512);
emit_32(1092098877);
emit_32(1122144223);
emit_32(3274432512);
emit_32(1094040158);
emit_32(1122656322);
emit_32(3274176528);
emit_32(1094849764);
emit_32(1122144223);
emit_32(3274176528);
emit_32(1095262693);
emit_32(1122656322);
emit_32(3273920545);
emit_32(1097725693);
emit_32(1122144223);
emit_32(3273920545);
emit_32(1097468792);
emit_32(1122656322);
emit_32(3273664496);
emit_32(1099104833);
emit_32(1122144223);
emit_32(3273664496);
emit_32(1099540411);
emit_32(1122656322);
emit_32(3273408512);
emit_32(1100237609);
emit_32(1122144223);
emit_32(3273408512);
emit_32(1100993213);
emit_32(1122656322);
emit_32(3273152528);
emit_32(1102296436);
emit_32(1122144223);
emit_32(3273152528);
emit_32(1102819203);
emit_32(1122656322);
emit_32(3272896545);
emit_32(1104227022);
emit_32(1122144223);
emit_32(3272896545);
emit_32(1104470763);
emit_32(1122656322);
emit_32(3272640496);
emit_32(1105517399);
emit_32(1122144223);
emit_32(3272640496);
emit_32(1105442111);
emit_32(1122656322);
emit_32(3272384512);
emit_32(1106394218);
emit_32(1122144223);
emit_32(3272384512);
emit_32(1106127356);
emit_32(1122656322);
emit_32(3272128528);
emit_32(1107354688);
emit_32(1122144223);
emit_32(3272128528);
emit_32(1106807829);
emit_32(1122656322);
emit_32(3271872545);
emit_32(1107530062);
emit_32(1122144223);
emit_32(3271872545);
emit_32(1107212108);
emit_32(1122656322);
emit_32(3271616496);
emit_32(1107693221);
emit_32(1122144223);
emit_32(3271616496);
emit_32(1107339719);
emit_32(1122656322);
emit_32(3271163904);
emit_32(1108003075);
emit_32(1122144223);
emit_32(3271163904);
emit_32(1108016575);
emit_32(1122656322);
emit_32(3270651937);
emit_32(1108711703);
emit_32(1122144223);
emit_32(3270651937);
emit_32(1108361190);
emit_32(1122656322);
emit_32(3270139970);
emit_32(1108881283);
emit_32(1122144223);
emit_32(3270139970);
emit_32(1108677807);
emit_32(1122656322);
emit_32(3269627871);
emit_32(1108829956);
emit_32(1122144223);
emit_32(3269627871);
emit_32(1108698045);
emit_32(1122656322);
emit_32(3269115904);
emit_32(1108842486);
emit_32(1122144223);
emit_32(3269115904);
emit_32(1108670415);
emit_32(1122656322);
emit_32(3268603937);
emit_32(1108356995);
emit_32(1122144223);
emit_32(3268603937);
emit_32(1108385307);
emit_32(1122656322);
emit_32(3268091970);
emit_32(1107850324);
emit_32(1122144223);
emit_32(3268091970);
emit_32(1107664044);
emit_32(1122656322);
emit_32(3267579911);
emit_32(1107320504);
emit_32(1122144223);
emit_32(3267579911);
emit_32(1106926109);
emit_32(1122656322);
emit_32(3267067904);
emit_32(1106158866);
emit_32(1122144223);
emit_32(3267067904);
emit_32(1105983491);
emit_32(1122656322);
emit_32(3266555911);
emit_32(1106326271);
emit_32(1122144223);
emit_32(3266555911);
emit_32(1105752542);
emit_32(1122656322);
emit_32(3266043904);
emit_32(1105638300);
emit_32(1122144223);
emit_32(3266043904);
emit_32(1105343650);
emit_32(1122656322);
emit_32(3265531911);
emit_32(1104660451);
emit_32(1122144223);
emit_32(3265531911);
emit_32(1104481983);
emit_32(1122656322);
emit_32(3265019904);
emit_32(1103867255);
emit_32(1122144223);
emit_32(3265019904);
emit_32(1103536377);
emit_32(1122656322);
emit_32(3264507911);
emit_32(1102764940);
emit_32(1122144223);
emit_32(3264507911);
emit_32(1102421374);
emit_32(1122656322);
emit_32(3263995904);
emit_32(1101613761);
emit_32(1122144223);
emit_32(3263995904);
emit_32(1101252526);
emit_32(1122656322);
emit_32(3263483911);
emit_32(1100019768);
emit_32(1122144223);
emit_32(3263483911);
emit_32(1099947835);
emit_32(1122656322);
emit_32(3262775296);
emit_32(1099086483);
emit_32(1122144223);
emit_32(3262775296);
emit_32(1099066665);
emit_32(1122656322);
emit_32(3261751309);
emit_32(1097937715);
emit_32(1122144223);
emit_32(3261751309);
emit_32(1097029334);
emit_32(1122656322);
emit_32(3260727296);
emit_32(1097070753);
emit_32(1122144223);
emit_32(3260727296);
emit_32(1095561223);
emit_32(1122656322);
emit_32(3259703309);
emit_32(1096595014);
emit_32(1122144223);
emit_32(3259703309);
emit_32(1095286181);
emit_32(1122656322);
emit_32(3258679296);
emit_32(1095456365);
emit_32(1122144223);
emit_32(3258679296);
emit_32(1094900095);
emit_32(1122656322);
emit_32(3257655309);
emit_32(1093219752);
emit_32(1122144223);
emit_32(3257655309);
emit_32(1093810625);
emit_32(1122656322);
emit_32(3256631296);
emit_32(1092609303);
emit_32(1122144223);
emit_32(3256631296);
emit_32(1093100949);
emit_32(1122656322);
emit_32(3255607309);
emit_32(1093762915);
emit_32(1122144223);
emit_32(3255607309);
emit_32(1093720133);
emit_32(1122656322);
emit_32(3254386688);
emit_32(1094666473);
emit_32(1122144223);
emit_32(3254386688);
emit_32(1094140822);
emit_32(1122656322);
emit_32(3252338714);
emit_32(1094266021);
emit_32(1122144223);
emit_32(3252338714);
emit_32(1093200983);
emit_32(1122656322);
emit_32(3250290688);
emit_32(1093706396);
emit_32(1122144223);
emit_32(3250290688);
emit_32(1093279731);
emit_32(1122656322);
emit_32(3248242714);
emit_32(1095255038);
emit_32(1122144223);
emit_32(3248242714);
emit_32(1095297296);
emit_32(1122656322);
emit_32(3245998080);
emit_32(1096659501);
emit_32(1122144223);
emit_32(3245998080);
emit_32(1096326998);
emit_32(1122656322);
emit_32(3241902132);
emit_32(1097360998);
emit_32(1122144223);
emit_32(3241902132);
emit_32(1097208116);
emit_32(1122656322);
emit_32(3237609472);
emit_32(1097602590);
emit_32(1122144223);
emit_32(3237609472);
emit_32(1098363332);
emit_32(1122656322);
emit_32(3229220864);
emit_32(1098820406);
emit_32(1122144223);
emit_32(3229220864);
emit_32(1098960496);
emit_32(1122656322);
emit_32(0);
emit_32(1099470104);
emit_32(1122144223);
emit_32(0);
emit_32(1099624612);
emit_32(1122656322);
emit_32(1081737216);
emit_32(1100139620);
emit_32(1122144223);
emit_32(1081737216);
emit_32(1100438045);
emit_32(1122656322);
emit_32(3279552512);
emit_32(1083519019);
emit_32(1121632256);
emit_32(3279296528);
emit_32(1074813133);
emit_32(1121632256);
emit_32(3279040545);
emit_32(1064894426);
emit_32(1121632256);
emit_32(3278784496);
emit_32(3220842029);
emit_32(1121632256);
emit_32(3278528512);
emit_32(3224334626);
emit_32(1121632256);
emit_32(3278272528);
emit_32(3228042265);
emit_32(1121632256);
emit_32(3278016545);
emit_32(3230773910);
emit_32(1121632256);
emit_32(3277760496);
emit_32(3234673249);
emit_32(1121632256);
emit_32(3277504512);
emit_32(3235346205);
emit_32(1121632256);
emit_32(3277248528);
emit_32(3233634383);
emit_32(1121632256);
emit_32(3276992545);
emit_32(3231165889);
emit_32(1121632256);
emit_32(3276736496);
emit_32(3226724414);
emit_32(1121632256);
emit_32(3276480512);
emit_32(3221509175);
emit_32(1121632256);
emit_32(3276224528);
emit_32(3212320830);
emit_32(1121632256);
emit_32(3275968545);
emit_32(1049206085);
emit_32(1121632256);
emit_32(3275712496);
emit_32(1073305532);
emit_32(1121632256);
emit_32(3275456512);
emit_32(1077128892);
emit_32(1121632256);
emit_32(3275200528);
emit_32(1082594553);
emit_32(1121632256);
emit_32(3274944545);
emit_32(1084662177);
emit_32(1121632256);
emit_32(3274688496);
emit_32(1089411681);
emit_32(1121632256);
emit_32(3274432512);
emit_32(1092042275);
emit_32(1121632256);
emit_32(3274176528);
emit_32(1095387054);
emit_32(1121632256);
emit_32(3273920545);
emit_32(1097794270);
emit_32(1121632256);
emit_32(3273664496);
emit_32(1099325348);
emit_32(1121632256);
emit_32(3273408512);
emit_32(1100750678);
emit_32(1121632256);
emit_32(3273152528);
emit_32(1101739065);
emit_32(1121632256);
emit_32(3272896545);
emit_32(1103692248);
emit_32(1121632256);
emit_32(3272640496);
emit_32(1105414167);
emit_32(1121632256);
emit_32(3272384512);
emit_32(1106644671);
emit_32(1121632256);
emit_32(3272128528);
emit_32(1107563486);
emit_32(1121632256);
emit_32(3271872545);
emit_32(1107577274);
emit_32(1121632256);
emit_32(3271616496);
emit_32(1107593999);
emit_32(1121632256);
emit_32(3271163904);
emit_32(1108097080);
emit_32(1121632256);
emit_32(3270651937);
emit_32(1108460883);
emit_32(1121632256);
emit_32(3270139970);
emit_32(1108954710);
emit_32(1121632256);
emit_32(3269627871);
emit_32(1109009079);
emit_32(1121632256);
emit_32(3269115904);
emit_32(1108610279);
emit_32(1121632256);
emit_32(3268603937);
emit_32(1108058125);
emit_32(1121632256);
emit_32(3268091970);
emit_32(1107555412);
emit_32(1121632256);
emit_32(3267579911);
emit_32(1106717652);
emit_32(1121632256);
emit_32(3267067904);
emit_32(1106512341);
emit_32(1121632256);
emit_32(3266555911);
emit_32(1106506836);
emit_32(1121632256);
emit_32(3266043904);
emit_32(1105659534);
emit_32(1121632256);
emit_32(3265531911);
emit_32(1105302179);
emit_32(1121632256);
emit_32(3265019904);
emit_32(1104106698);
emit_32(1121632256);
emit_32(3264507911);
emit_32(1102757390);
emit_32(1121632256);
emit_32(3263995904);
emit_32(1101520647);
emit_32(1121632256);
emit_32(3263483911);
emit_32(1100159910);
emit_32(1121632256);
emit_32(3262775296);
emit_32(1099381290);
emit_32(1121632256);
emit_32(3261751309);
emit_32(1098131911);
emit_32(1121632256);
emit_32(3260727296);
emit_32(1097148452);
emit_32(1121632256);
emit_32(3259703309);
emit_32(1096156919);
emit_32(1121632256);
emit_32(3258679296);
emit_32(1095321308);
emit_32(1121632256);
emit_32(3257655309);
emit_32(1094008281);
emit_32(1121632256);
emit_32(3256631296);
emit_32(1093682489);
emit_32(1121632256);
emit_32(3255607309);
emit_32(1094449313);
emit_32(1121632256);
emit_32(3254386688);
emit_32(1095241512);
emit_32(1121632256);
emit_32(3252338714);
emit_32(1095115158);
emit_32(1121632256);
emit_32(3250290688);
emit_32(1095038088);
emit_32(1121632256);
emit_32(3248242714);
emit_32(1095359791);
emit_32(1121632256);
emit_32(3245998080);
emit_32(1096573937);
emit_32(1121632256);
emit_32(3241902132);
emit_32(1097191129);
emit_32(1121632256);
emit_32(3237609472);
emit_32(1097678717);
emit_32(1121632256);
emit_32(3229220864);
emit_32(1098487169);
emit_32(1121632256);
emit_32(0);
emit_32(1099111334);
emit_32(1121632256);
emit_32(1081737216);
emit_32(1099957115);
emit_32(1121632256);
emit_32(3279552512);
emit_32(1084728636);
emit_32(1121120289);
emit_32(3279296528);
emit_32(1077536872);
emit_32(1121120289);
emit_32(3279040545);
emit_32(1049067472);
emit_32(1121120289);
emit_32(3278784496);
emit_32(3197365821);
emit_32(1121120289);
emit_32(3278528512);
emit_32(3211331864);
emit_32(1121120289);
emit_32(3278272528);
emit_32(3222095455);
emit_32(1121120289);
emit_32(3278016545);
emit_32(3228342367);
emit_32(1121120289);
emit_32(3277760496);
emit_32(3232161071);
emit_32(1121120289);
emit_32(3277504512);
emit_32(3233959337);
emit_32(1121120289);
emit_32(3277248528);
emit_32(3232603256);
emit_32(1121120289);
emit_32(3276992545);
emit_32(3231337561);
emit_32(1121120289);
emit_32(3276736496);
emit_32(3226343236);
emit_32(1121120289);
emit_32(3276480512);
emit_32(3222401429);
emit_32(1121120289);
emit_32(3276224528);
emit_32(3217196088);
emit_32(1121120289);
emit_32(3275968545);
emit_32(3174963708);
emit_32(1121120289);
emit_32(3275712496);
emit_32(1071520772);
emit_32(1121120289);
emit_32(3275456512);
emit_32(1076782233);
emit_32(1121120289);
emit_32(3275200528);
emit_32(1082969209);
emit_32(1121120289);
emit_32(3274944545);
emit_32(1085234364);
emit_32(1121120289);
emit_32(3274688496);
emit_32(1089004246);
emit_32(1121120289);
emit_32(3274432512);
emit_32(1092733108);
emit_32(1121120289);
emit_32(3274176528);
emit_32(1095820326);
emit_32(1121120289);
emit_32(3273920545);
emit_32(1098604085);
emit_32(1121120289);
emit_32(3273664496);
emit_32(1099874855);
emit_32(1121120289);
emit_32(3273408512);
emit_32(1100920809);
emit_32(1121120289);
emit_32(3273152528);
emit_32(1101878893);
emit_32(1121120289);
emit_32(3272896545);
emit_32(1103179284);
emit_32(1121120289);
emit_32(3272640496);
emit_32(1105420196);
emit_32(1121120289);
emit_32(3272384512);
emit_32(1107134828);
emit_32(1121120289);
emit_32(3272128528);
emit_32(1107920526);
emit_32(1121120289);
emit_32(3271872545);
emit_32(1108056762);
emit_32(1121120289);
emit_32(3271616496);
emit_32(1107769583);
emit_32(1121120289);
emit_32(3271163904);
emit_32(1107905112);
emit_32(1121120289);
emit_32(3270651937);
emit_32(1108241573);
emit_32(1121120289);
emit_32(3270139970);
emit_32(1108859578);
emit_32(1121120289);
emit_32(3269627871);
emit_32(1109044049);
emit_32(1121120289);
emit_32(3269115904);
emit_32(1108576331);
emit_32(1121120289);
emit_32(3268603937);
emit_32(1107973793);
emit_32(1121120289);
emit_32(3268091970);
emit_32(1107354478);
emit_32(1121120289);
emit_32(3267579911);
emit_32(1106448273);
emit_32(1121120289);
emit_32(3267067904);
emit_32(1106470135);
emit_32(1121120289);
emit_32(3266555911);
emit_32(1106654580);
emit_32(1121120289);
emit_32(3266043904);
emit_32(1106160386);
emit_32(1121120289);
emit_32(3265531911);
emit_32(1105210009);
emit_32(1121120289);
emit_32(3265019904);
emit_32(1104004514);
emit_32(1121120289);
emit_32(3264507911);
emit_32(1102526231);
emit_32(1121120289);
emit_32(3263995904);
emit_32(1101481692);
emit_32(1121120289);
emit_32(3263483911);
emit_32(1100090337);
emit_32(1121120289);
emit_32(3262775296);
emit_32(1099268882);
emit_32(1121120289);
emit_32(3261751309);
emit_32(1098701288);
emit_32(1121120289);
emit_32(3260727296);
emit_32(1097681968);
emit_32(1121120289);
emit_32(3259703309);
emit_32(1096561774);
emit_32(1121120289);
emit_32(3258679296);
emit_32(1095766953);
emit_32(1121120289);
emit_32(3257655309);
emit_32(1094631765);
emit_32(1121120289);
emit_32(3256631296);
emit_32(1094735364);
emit_32(1121120289);
emit_32(3255607309);
emit_32(1094999291);
emit_32(1121120289);
emit_32(3254386688);
emit_32(1095377722);
emit_32(1121120289);
emit_32(3252338714);
emit_32(1095433191);
emit_32(1121120289);
emit_32(3250290688);
emit_32(1095107399);
emit_32(1121120289);
emit_32(3248242714);
emit_32(1095777544);
emit_32(1121120289);
emit_32(3245998080);
emit_32(1096857472);
emit_32(1121120289);
emit_32(3241902132);
emit_32(1097446352);
emit_32(1121120289);
emit_32(3237609472);
emit_32(1097974940);
emit_32(1121120289);
emit_32(3229220864);
emit_32(1098736416);
emit_32(1121120289);
emit_32(0);
emit_32(1099338613);
emit_32(1121120289);
emit_32(1081737216);
emit_32(1099935672);
emit_32(1121120289);
emit_32(3279552512);
emit_32(1082712497);
emit_32(1120608322);
emit_32(3279296528);
emit_32(1077291841);
emit_32(1120608322);
emit_32(3279040545);
emit_32(1073741866);
emit_32(1120608322);
emit_32(3278784496);
emit_32(1070338230);
emit_32(1120608322);
emit_32(3278528512);
emit_32(1056781669);
emit_32(1120608322);
emit_32(3278272528);
emit_32(3219431904);
emit_32(1120608322);
emit_32(3278016545);
emit_32(3224861095);
emit_32(1120608322);
emit_32(3277760496);
emit_32(3231719746);
emit_32(1120608322);
emit_32(3277504512);
emit_32(3233844476);
emit_32(1120608322);
emit_32(3277248528);
emit_32(3232334736);
emit_32(1120608322);
emit_32(3276992545);
emit_32(3229801544);
emit_32(1120608322);
emit_32(3276736496);
emit_32(3228638233);
emit_32(1120608322);
emit_32(3276480512);
emit_32(3223489306);
emit_32(1120608322);
emit_32(3276224528);
emit_32(3213418446);
emit_32(1120608322);
emit_32(3275968545);
emit_32(3202678964);
emit_32(1120608322);
emit_32(3275712496);
emit_32(1069745659);
emit_32(1120608322);
emit_32(3275456512);
emit_32(1079646691);
emit_32(1120608322);
emit_32(3275200528);
emit_32(1083145831);
emit_32(1120608322);
emit_32(3274944545);
emit_32(1087983583);
emit_32(1120608322);
emit_32(3274688496);
emit_32(1091238804);
emit_32(1120608322);
emit_32(3274432512);
emit_32(1093823208);
emit_32(1120608322);
emit_32(3274176528);
emit_32(1097286130);
emit_32(1120608322);
emit_32(3273920545);
emit_32(1099742472);
emit_32(1120608322);
emit_32(3273664496);
emit_32(1100695890);
emit_32(1120608322);
emit_32(3273408512);
emit_32(1101406876);
emit_32(1120608322);
emit_32(3273152528);
emit_32(1102194042);
emit_32(1120608322);
emit_32(3272896545);
emit_32(1103115112);
emit_32(1120608322);
emit_32(3272640496);
emit_32(1105064414);
emit_32(1120608322);
emit_32(3272384512);
emit_32(1107025042);
emit_32(1120608322);
emit_32(3272128528);
emit_32(1107923960);
emit_32(1120608322);
emit_32(3271872545);
emit_32(1108173154);
emit_32(1120608322);
emit_32(3271616496);
emit_32(1108080381);
emit_32(1120608322);
emit_32(3271163904);
emit_32(1107879605);
emit_32(1120608322);
emit_32(3270651937);
emit_32(1108128956);
emit_32(1120608322);
emit_32(3270139970);
emit_32(1108688110);
emit_32(1120608322);
emit_32(3269627871);
emit_32(1108797188);
emit_32(1120608322);
emit_32(3269115904);
emit_32(1108405938);
emit_32(1120608322);
emit_32(3268603937);
emit_32(1107934577);
emit_32(1120608322);
emit_32(3268091970);
emit_32(1107323021);
emit_32(1120608322);
emit_32(3267579911);
emit_32(1106810136);
emit_32(1120608322);
emit_32(3267067904);
emit_32(1106638904);
emit_32(1120608322);
emit_32(3266555911);
emit_32(1106673664);
emit_32(1120608322);
emit_32(3266043904);
emit_32(1106080013);
emit_32(1120608322);
emit_32(3265531911);
emit_32(1104833308);
emit_32(1120608322);
emit_32(3265019904);
emit_32(1103684593);
emit_32(1120608322);
emit_32(3264507911);
emit_32(1102392852);
emit_32(1120608322);
emit_32(3263995904);
emit_32(1101073744);
emit_32(1120608322);
emit_32(3263483911);
emit_32(1099963145);
emit_32(1120608322);
emit_32(3262775296);
emit_32(1099506070);
emit_32(1120608322);
emit_32(3261751309);
emit_32(1099320997);
emit_32(1120608322);
emit_32(3260727296);
emit_32(1098604295);
emit_32(1120608322);
emit_32(3259703309);
emit_32(1097529295);
emit_32(1120608322);
emit_32(3258679296);
emit_32(1096142134);
emit_32(1120608322);
emit_32(3257655309);
emit_32(1094301568);
emit_32(1120608322);
emit_32(3256631296);
emit_32(1094016985);
emit_32(1120608322);
emit_32(3255607309);
emit_32(1095156577);
emit_32(1120608322);
emit_32(3254386688);
emit_32(1095833223);
emit_32(1120608322);
emit_32(3252338714);
emit_32(1095183630);
emit_32(1120608322);
emit_32(3250290688);
emit_32(1094555114);
emit_32(1120608322);
emit_32(3248242714);
emit_32(1096488059);
emit_32(1120608322);
emit_32(3245998080);
emit_32(1097556453);
emit_32(1120608322);
emit_32(3241902132);
emit_32(1097820275);
emit_32(1120608322);
emit_32(3237609472);
emit_32(1097925237);
emit_32(1120608322);
emit_32(3229220864);
emit_32(1098971297);
emit_32(1120608322);
emit_32(0);
emit_32(1099474823);
emit_32(1120608322);
emit_32(1081737216);
emit_32(1099802817);
emit_32(1120608322);
emit_32(3279552512);
emit_32(1082649645);
emit_32(1120096263);
emit_32(3279296528);
emit_32(1081824919);
emit_32(1120096263);
emit_32(3279040545);
emit_32(1078459284);
emit_32(1120096263);
emit_32(3278784496);
emit_32(1074050399);
emit_32(1120096263);
emit_32(3278528512);
emit_32(1053874077);
emit_32(1120096263);
emit_32(3278272528);
emit_32(3211237089);
emit_32(1120096263);
emit_32(3278016545);
emit_32(3223833574);
emit_32(1120096263);
emit_32(3277760496);
emit_32(3229161263);
emit_32(1120096263);
emit_32(3277504512);
emit_32(3233010292);
emit_32(1120096263);
emit_32(3277248528);
emit_32(3229615695);
emit_32(1120096263);
emit_32(3276992545);
emit_32(3222904913);
emit_32(1120096263);
emit_32(3276736496);
emit_32(3222905752);
emit_32(1120096263);
emit_32(3276480512);
emit_32(3220913919);
emit_32(1120096263);
emit_32(3276224528);
emit_32(3216868597);
emit_32(1120096263);
emit_32(3275968545);
emit_32(3184537459);
emit_32(1120096263);
emit_32(3275712496);
emit_32(1071525805);
emit_32(1120096263);
emit_32(3275456512);
emit_32(1080770303);
emit_32(1120096263);
emit_32(3275200528);
emit_32(1084483709);
emit_32(1120096263);
emit_32(3274944545);
emit_32(1089756453);
emit_32(1120096263);
emit_32(3274688496);
emit_32(1092796967);
emit_32(1120096263);
emit_32(3274432512);
emit_32(1095008204);
emit_32(1120096263);
emit_32(3274176528);
emit_32(1098158021);
emit_32(1120096263);
emit_32(3273920545);
emit_32(1100073298);
emit_32(1120096263);
emit_32(3273664496);
emit_32(1101265424);
emit_32(1120096263);
emit_32(3273408512);
emit_32(1101989413);
emit_32(1120096263);
emit_32(3273152528);
emit_32(1102698565);
emit_32(1120096263);
emit_32(3272896545);
emit_32(1103242776);
emit_32(1120096263);
emit_32(3272640496);
emit_32(1105297356);
emit_32(1120096263);
emit_32(3272384512);
emit_32(1106908126);
emit_32(1120096263);
emit_32(3272128528);
emit_32(1107640530);
emit_32(1120096263);
emit_32(3271872545);
emit_32(1108166312);
emit_32(1120096263);
emit_32(3271616496);
emit_32(1108109138);
emit_32(1120096263);
emit_32(3271163904);
emit_32(1108037206);
emit_32(1120096263);
emit_32(3270651937);
emit_32(1107897483);
emit_32(1120096263);
emit_32(3270139970);
emit_32(1108473492);
emit_32(1120096263);
emit_32(3269627871);
emit_32(1108658461);
emit_32(1120096263);
emit_32(3269115904);
emit_32(1108380326);
emit_32(1120096263);
emit_32(3268603937);
emit_32(1107921522);
emit_32(1120096263);
emit_32(3268091970);
emit_32(1106710574);
emit_32(1120096263);
emit_32(3267579911);
emit_32(1106304880);
emit_32(1120096263);
emit_32(3267067904);
emit_32(1106736788);
emit_32(1120096263);
emit_32(3266555911);
emit_32(1106706484);
emit_32(1120096263);
emit_32(3266043904);
emit_32(1105732829);
emit_32(1120096263);
emit_32(3265531911);
emit_32(1104837607);
emit_32(1120096263);
emit_32(3265019904);
emit_32(1103630801);
emit_32(1120096263);
emit_32(3264507911);
emit_32(1101868093);
emit_32(1120096263);
emit_32(3263995904);
emit_32(1100220622);
emit_32(1120096263);
emit_32(3263483911);
emit_32(1100302254);
emit_32(1120096263);
emit_32(3262775296);
emit_32(1100039691);
emit_32(1120096263);
emit_32(3261751309);
emit_32(1099705090);
emit_32(1120096263);
emit_32(3260727296);
emit_32(1099085329);
emit_32(1120096263);
emit_32(3259703309);
emit_32(1097718982);
emit_32(1120096263);
emit_32(3258679296);
emit_32(1096390122);
emit_32(1120096263);
emit_32(3257655309);
emit_32(1094580175);
emit_32(1120096263);
emit_32(3256631296);
emit_32(1094186959);
emit_32(1120096263);
emit_32(3255607309);
emit_32(1094206987);
emit_32(1120096263);
emit_32(3254386688);
emit_32(1095299288);
emit_32(1120096263);
emit_32(3252338714);
emit_32(1094941095);
emit_32(1120096263);
emit_32(3250290688);
emit_32(1093925968);
emit_32(1120096263);
emit_32(3248242714);
emit_32(1096010747);
emit_32(1120096263);
emit_32(3245998080);
emit_32(1096357826);
emit_32(1120096263);
emit_32(3241902132);
emit_32(1096902246);
emit_32(1120096263);
emit_32(3237609472);
emit_32(1097501612);
emit_32(1120096263);
emit_32(3229220864);
emit_32(1097992765);
emit_32(1120096263);
emit_32(0);
emit_32(1098723413);
emit_32(1120096263);
emit_32(1081737216);
emit_32(1099965451);
emit_32(1120096263);
emit_32(3279552512);
emit_32(1084093765);
emit_32(1119584256);
emit_32(3279296528);
emit_32(1080036510);
emit_32(1119584256);
emit_32(3279040545);
emit_32(1077455125);
emit_32(1119584256);
emit_32(3278784496);
emit_32(1074567724);
emit_32(1119584256);
emit_32(3278528512);
emit_32(1069156863);
emit_32(1119584256);
emit_32(3278272528);
emit_32(3189431842);
emit_32(1119584256);
emit_32(3278016545);
emit_32(3213554929);
emit_32(1119584256);
emit_32(3277760496);
emit_32(3222450418);
emit_32(1119584256);
emit_32(3277504512);
emit_32(3228929486);
emit_32(1119584256);
emit_32(3277248528);
emit_32(3224323217);
emit_32(1119584256);
emit_32(3276992545);
emit_32(3222046465);
emit_32(1119584256);
emit_32(3276736496);
emit_32(3194181137);
emit_32(1119584256);
emit_32(3276480512);
emit_32(3186726281);
emit_32(1119584256);
emit_32(3276224528);
emit_32(3191098290);
emit_32(1119584256);
emit_32(3275968545);
emit_32(1068055354);
emit_32(1119584256);
emit_32(3275712496);
emit_32(1076438426);
emit_32(1119584256);
emit_32(3275456512);
emit_32(1080984464);
emit_32(1119584256);
emit_32(3275200528);
emit_32(1085878651);
emit_32(1119584256);
emit_32(3274944545);
emit_32(1091668447);
emit_32(1119584256);
emit_32(3274688496);
emit_32(1094171545);
emit_32(1119584256);
emit_32(3274432512);
emit_32(1095963561);
emit_32(1119584256);
emit_32(3274176528);
emit_32(1098572104);
emit_32(1119584256);
emit_32(3273920545);
emit_32(1099948045);
emit_32(1119584256);
emit_32(3273664496);
emit_32(1101407873);
emit_32(1119584256);
emit_32(3273408512);
emit_32(1102835876);
emit_32(1119584256);
emit_32(3273152528);
emit_32(1103744310);
emit_32(1119584256);
emit_32(3272896545);
emit_32(1104117655);
emit_32(1119584256);
emit_32(3272640496);
emit_32(1105300868);
emit_32(1119584256);
emit_32(3272384512);
emit_32(1107290803);
emit_32(1119584256);
emit_32(3272128528);
emit_32(1107707508);
emit_32(1119584256);
emit_32(3271872545);
emit_32(1108008685);
emit_32(1119584256);
emit_32(3271616496);
emit_32(1108120935);
emit_32(1119584256);
emit_32(3271163904);
emit_32(1108077052);
emit_32(1119584256);
emit_32(3270651937);
emit_32(1107924641);
emit_32(1119584256);
emit_32(3270139970);
emit_32(1108147044);
emit_32(1119584256);
emit_32(3269627871);
emit_32(1108350311);
emit_32(1119584256);
emit_32(3269115904);
emit_32(1108146651);
emit_32(1119584256);
emit_32(3268603937);
emit_32(1107677466);
emit_32(1119584256);
emit_32(3268091970);
emit_32(1106442034);
emit_32(1119584256);
emit_32(3267579911);
emit_32(1106619400);
emit_32(1119584256);
emit_32(3267067904);
emit_32(1106902463);
emit_32(1119584256);
emit_32(3266555911);
emit_32(1106534780);
emit_32(1119584256);
emit_32(3266043904);
emit_32(1105512733);
emit_32(1119584256);
emit_32(3265531911);
emit_32(1104509036);
emit_32(1119584256);
emit_32(3265019904);
emit_32(1103188250);
emit_32(1119584256);
emit_32(3264507911);
emit_32(1101665927);
emit_32(1119584256);
emit_32(3263995904);
emit_32(1100910743);
emit_32(1119584256);
emit_32(3263483911);
emit_32(1100740139);
emit_32(1119584256);
emit_32(3262775296);
emit_32(1100127981);
emit_32(1119584256);
emit_32(3261751309);
emit_32(1100010121);
emit_32(1119584256);
emit_32(3260727296);
emit_32(1099477968);
emit_32(1119584256);
emit_32(3259703309);
emit_32(1097874171);
emit_32(1119584256);
emit_32(3258679296);
emit_32(1096345453);
emit_32(1119584256);
emit_32(3257655309);
emit_32(1093686893);
emit_32(1119584256);
emit_32(3256631296);
emit_32(1093873015);
emit_32(1119584256);
emit_32(3255607309);
emit_32(1093045794);
emit_32(1119584256);
emit_32(3254386688);
emit_32(1093896189);
emit_32(1119584256);
emit_32(3252338714);
emit_32(1094140717);
emit_32(1119584256);
emit_32(3250290688);
emit_32(1094085666);
emit_32(1119584256);
emit_32(3248242714);
emit_32(1094959130);
emit_32(1119584256);
emit_32(3245998080);
emit_32(1096322698);
emit_32(1119584256);
emit_32(3241902132);
emit_32(1097101161);
emit_32(1119584256);
emit_32(3237609472);
emit_32(1096857367);
emit_32(1119584256);
emit_32(3229220864);
emit_32(1096976905);
emit_32(1119584256);
emit_32(0);
emit_32(1098201537);
emit_32(1119584256);
emit_32(1081737216);
emit_32(1099519545);
emit_32(1119584256);
emit_32(3279552512);
emit_32(1085076910);
emit_32(1119072263);
emit_32(3279296528);
emit_32(1081809987);
emit_32(1119072263);
emit_32(3279040545);
emit_32(1077014597);
emit_32(1119072263);
emit_32(3278784496);
emit_32(1075155304);
emit_32(1119072263);
emit_32(3278528512);
emit_32(1069179596);
emit_32(1119072263);
emit_32(3278272528);
emit_32(1056541889);
emit_32(1119072263);
emit_32(3278016545);
emit_32(1062243693);
emit_32(1119072263);
emit_32(3277760496);
emit_32(3195663773);
emit_32(1119072263);
emit_32(3277504512);
emit_32(3221620659);
emit_32(1119072263);
emit_32(3277248528);
emit_32(3216900390);
emit_32(1119072263);
emit_32(3276992545);
emit_32(3207733134);
emit_32(1119072263);
emit_32(3276736496);
emit_32(1061029962);
emit_32(1119072263);
emit_32(3276480512);
emit_32(1067919627);
emit_32(1119072263);
emit_32(3276224528);
emit_32(1069464557);
emit_32(1119072263);
emit_32(3275968545);
emit_32(1076127125);
emit_32(1119072263);
emit_32(3275712496);
emit_32(1080969365);
emit_32(1119072263);
emit_32(3275456512);
emit_32(1083510358);
emit_32(1119072263);
emit_32(3275200528);
emit_32(1088854216);
emit_32(1119072263);
emit_32(3274944545);
emit_32(1092461118);
emit_32(1119072263);
emit_32(3274688496);
emit_32(1095602746);
emit_32(1119072263);
emit_32(3274432512);
emit_32(1097477495);
emit_32(1119072263);
emit_32(3274176528);
emit_32(1099224108);
emit_32(1119072263);
emit_32(3273920545);
emit_32(1100863662);
emit_32(1119072263);
emit_32(3273664496);
emit_32(1102423943);
emit_32(1119072263);
emit_32(3273408512);
emit_32(1103322677);
emit_32(1119072263);
emit_32(3273152528);
emit_32(1104096054);
emit_32(1119072263);
emit_32(3272896545);
emit_32(1104740300);
emit_32(1119072263);
emit_32(3272640496);
emit_32(1105730627);
emit_32(1119072263);
emit_32(3272384512);
emit_32(1107106673);
emit_32(1119072263);
emit_32(3272128528);
emit_32(1107798052);
emit_32(1119072263);
emit_32(3271872545);
emit_32(1107907497);
emit_32(1119072263);
emit_32(3271616496);
emit_32(1108367272);
emit_32(1119072263);
emit_32(3271163904);
emit_32(1108217273);
emit_32(1119072263);
emit_32(3270651937);
emit_32(1108004962);
emit_32(1119072263);
emit_32(3270139970);
emit_32(1107737890);
emit_32(1119072263);
emit_32(3269627871);
emit_32(1107889331);
emit_32(1119072263);
emit_32(3269115904);
emit_32(1107876826);
emit_32(1119072263);
emit_32(3268603937);
emit_32(1107372933);
emit_32(1119072263);
emit_32(3268091970);
emit_32(1106504004);
emit_32(1119072263);
emit_32(3267579911);
emit_32(1106696575);
emit_32(1119072263);
emit_32(3267067904);
emit_32(1107019275);
emit_32(1119072263);
emit_32(3266555911);
emit_32(1106385201);
emit_32(1119072263);
emit_32(3266043904);
emit_32(1105441482);
emit_32(1119072263);
emit_32(3265531911);
emit_32(1104471235);
emit_32(1119072263);
emit_32(3265019904);
emit_32(1103193965);
emit_32(1119072263);
emit_32(3264507911);
emit_32(1102302518);
emit_32(1119072263);
emit_32(3263995904);
emit_32(1101174984);
emit_32(1119072263);
emit_32(3263483911);
emit_32(1100736365);
emit_32(1119072263);
emit_32(3262775296);
emit_32(1100294232);
emit_32(1119072263);
emit_32(3261751309);
emit_32(1099900282);
emit_32(1119072263);
emit_32(3260727296);
emit_32(1099000447);
emit_32(1119072263);
emit_32(3259703309);
emit_32(1098125096);
emit_32(1119072263);
emit_32(3258679296);
emit_32(1096310535);
emit_32(1119072263);
emit_32(3257655309);
emit_32(1094547669);
emit_32(1119072263);
emit_32(3256631296);
emit_32(1092850024);
emit_32(1119072263);
emit_32(3255607309);
emit_32(1092138471);
emit_32(1119072263);
emit_32(3254386688);
emit_32(1092338194);
emit_32(1119072263);
emit_32(3252338714);
emit_32(1093356172);
emit_32(1119072263);
emit_32(3250290688);
emit_32(1094627885);
emit_32(1119072263);
emit_32(3248242714);
emit_32(1095982750);
emit_32(1119072263);
emit_32(3245998080);
emit_32(1095846540);
emit_32(1119072263);
emit_32(3241902132);
emit_32(1095563949);
emit_32(1119072263);
emit_32(3237609472);
emit_32(1095549269);
emit_32(1119072263);
emit_32(3229220864);
emit_32(1096920492);
emit_32(1119072263);
emit_32(0);
emit_32(1097824888);
emit_32(1119072263);
emit_32(1081737216);
emit_32(1098532992);
emit_32(1119072263);
emit_32(3279552512);
emit_32(1086774827);
emit_32(1118560256);
emit_32(3279296528);
emit_32(1083515077);
emit_32(1118560256);
emit_32(3279040545);
emit_32(1079457780);
emit_32(1118560256);
emit_32(3278784496);
emit_32(1073525901);
emit_32(1118560256);
emit_32(3278528512);
emit_32(1058489607);
emit_32(1118560256);
emit_32(3278272528);
emit_32(1073793078);
emit_32(1118560256);
emit_32(3278016545);
emit_32(1074379023);
emit_32(1118560256);
emit_32(3277760496);
emit_32(1061663235);
emit_32(1118560256);
emit_32(3277504512);
emit_32(3201930600);
emit_32(1118560256);
emit_32(3277248528);
emit_32(3204664162);
emit_32(1118560256);
emit_32(3276992545);
emit_32(995186421);
emit_32(1118560256);
emit_32(3276736496);
emit_32(1065832625);
emit_32(1118560256);
emit_32(3276480512);
emit_32(1074242037);
emit_32(1118560256);
emit_32(3276224528);
emit_32(1075791245);
emit_32(1118560256);
emit_32(3275968545);
emit_32(1081708653);
emit_32(1118560256);
emit_32(3275712496);
emit_32(1085735415);
emit_32(1118560256);
emit_32(3275456512);
emit_32(1087198703);
emit_32(1118560256);
emit_32(3275200528);
emit_32(1090399397);
emit_32(1118560256);
emit_32(3274944545);
emit_32(1093618840);
emit_32(1118560256);
emit_32(3274688496);
emit_32(1095966497);
emit_32(1118560256);
emit_32(3274432512);
emit_32(1098679792);
emit_32(1118560256);
emit_32(3274176528);
emit_32(1099796369);
emit_32(1118560256);
emit_32(3273920545);
emit_32(1101123342);
emit_32(1118560256);
emit_32(3273664496);
emit_32(1102326582);
emit_32(1118560256);
emit_32(3273408512);
emit_32(1103526783);
emit_32(1118560256);
emit_32(3273152528);
emit_32(1104500018);
emit_32(1118560256);
emit_32(3272896545);
emit_32(1105044544);
emit_32(1118560256);
emit_32(3272640496);
emit_32(1105840518);
emit_32(1118560256);
emit_32(3272384512);
emit_32(1107014661);
emit_32(1118560256);
emit_32(3272128528);
emit_32(1107845579);
emit_32(1118560256);
emit_32(3271872545);
emit_32(1108007295);
emit_32(1118560256);
emit_32(3271616496);
emit_32(1108389711);
emit_32(1118560256);
emit_32(3271163904);
emit_32(1108469167);
emit_32(1118560256);
emit_32(3270651937);
emit_32(1108186681);
emit_32(1118560256);
emit_32(3270139970);
emit_32(1107912425);
emit_32(1118560256);
emit_32(3269627871);
emit_32(1107694060);
emit_32(1118560256);
emit_32(3269115904);
emit_32(1107557771);
emit_32(1118560256);
emit_32(3268603937);
emit_32(1107185212);
emit_32(1118560256);
emit_32(3268091970);
emit_32(1106863509);
emit_32(1118560256);
emit_32(3267579911);
emit_32(1106786176);
emit_32(1118560256);
emit_32(3267067904);
emit_32(1107049998);
emit_32(1118560256);
emit_32(3266555911);
emit_32(1106706117);
emit_32(1118560256);
emit_32(3266043904);
emit_32(1105274287);
emit_32(1118560256);
emit_32(3265531911);
emit_32(1104108375);
emit_32(1118560256);
emit_32(3265019904);
emit_32(1103313974);
emit_32(1118560256);
emit_32(3264507911);
emit_32(1102052537);
emit_32(1118560256);
emit_32(3263995904);
emit_32(1101026348);
emit_32(1118560256);
emit_32(3263483911);
emit_32(1100975912);
emit_32(1118560256);
emit_32(3262775296);
emit_32(1100160329);
emit_32(1118560256);
emit_32(3261751309);
emit_32(1099423862);
emit_32(1118560256);
emit_32(3260727296);
emit_32(1098504471);
emit_32(1118560256);
emit_32(3259703309);
emit_32(1097455580);
emit_32(1118560256);
emit_32(3258679296);
emit_32(1095484886);
emit_32(1118560256);
emit_32(3257655309);
emit_32(1094881011);
emit_32(1118560256);
emit_32(3256631296);
emit_32(1092725768);
emit_32(1118560256);
emit_32(3255607309);
emit_32(1092211609);
emit_32(1118560256);
emit_32(3254386688);
emit_32(1092698400);
emit_32(1118560256);
emit_32(3252338714);
emit_32(1092845620);
emit_32(1118560256);
emit_32(3250290688);
emit_32(1094266651);
emit_32(1118560256);
emit_32(3248242714);
emit_32(1094578287);
emit_32(1118560256);
emit_32(3245998080);
emit_32(1094619916);
emit_32(1118560256);
emit_32(3241902132);
emit_32(1094198493);
emit_32(1118560256);
emit_32(3237609472);
emit_32(1096808294);
emit_32(1118560256);
emit_32(3229220864);
emit_32(1097696857);
emit_32(1118560256);
emit_32(0);
emit_32(1097643170);
emit_32(1118560256);
emit_32(1081737216);
emit_32(1098479410);
emit_32(1118560256);
emit_32(3279552512);
emit_32(1088302854);
emit_32(1118048263);
emit_32(3279296528);
emit_32(1083747986);
emit_32(1118048263);
emit_32(3279040545);
emit_32(1080542594);
emit_32(1118048263);
emit_32(3278784496);
emit_32(1075852566);
emit_32(1118048263);
emit_32(3278528512);
emit_32(1068737600);
emit_32(1118048263);
emit_32(3278272528);
emit_32(1073988491);
emit_32(1118048263);
emit_32(3278016545);
emit_32(1075493743);
emit_32(1118048263);
emit_32(3277760496);
emit_32(1067344336);
emit_32(1118048263);
emit_32(3277504512);
emit_32(1070348213);
emit_32(1118048263);
emit_32(3277248528);
emit_32(1067476624);
emit_32(1118048263);
emit_32(3276992545);
emit_32(1069849007);
emit_32(1118048263);
emit_32(3276736496);
emit_32(1075129006);
emit_32(1118048263);
emit_32(3276480512);
emit_32(1076245656);
emit_32(1118048263);
emit_32(3276224528);
emit_32(1082664933);
emit_32(1118048263);
emit_32(3275968545);
emit_32(1086033987);
emit_32(1118048263);
emit_32(3275712496);
emit_32(1089567583);
emit_32(1118048263);
emit_32(3275456512);
emit_32(1091286073);
emit_32(1118048263);
emit_32(3275200528);
emit_32(1092256918);
emit_32(1118048263);
emit_32(3274944545);
emit_32(1094223449);
emit_32(1118048263);
emit_32(3274688496);
emit_32(1097132304);
emit_32(1118048263);
emit_32(3274432512);
emit_32(1099059115);
emit_32(1118048263);
emit_32(3274176528);
emit_32(1099766379);
emit_32(1118048263);
emit_32(3273920545);
emit_32(1101236640);
emit_32(1118048263);
emit_32(3273664496);
emit_32(1102554438);
emit_32(1118048263);
emit_32(3273408512);
emit_32(1103664565);
emit_32(1118048263);
emit_32(3273152528);
emit_32(1104878292);
emit_32(1118048263);
emit_32(3272896545);
emit_32(1105616175);
emit_32(1118048263);
emit_32(3272640496);
emit_32(1106382684);
emit_32(1118048263);
emit_32(3272384512);
emit_32(1107450606);
emit_32(1118048263);
emit_32(3272128528);
emit_32(1107817503);
emit_32(1118048263);
emit_32(3271872545);
emit_32(1107947369);
emit_32(1118048263);
emit_32(3271616496);
emit_32(1108283805);
emit_32(1118048263);
emit_32(3271163904);
emit_32(1108371099);
emit_32(1118048263);
emit_32(3270651937);
emit_32(1108326954);
emit_32(1118048263);
emit_32(3270139970);
emit_32(1108075217);
emit_32(1118048263);
emit_32(3269627871);
emit_32(1107641945);
emit_32(1118048263);
emit_32(3269115904);
emit_32(1107268836);
emit_32(1118048263);
emit_32(3268603937);
emit_32(1107004595);
emit_32(1118048263);
emit_32(3268091970);
emit_32(1106919660);
emit_32(1118048263);
emit_32(3267579911);
emit_32(1107317228);
emit_32(1118048263);
emit_32(3267067904);
emit_32(1106983623);
emit_32(1118048263);
emit_32(3266555911);
emit_32(1106392855);
emit_32(1118048263);
emit_32(3266043904);
emit_32(1105271141);
emit_32(1118048263);
emit_32(3265531911);
emit_32(1103878632);
emit_32(1118048263);
emit_32(3265019904);
emit_32(1103197949);
emit_32(1118048263);
emit_32(3264507911);
emit_32(1102375708);
emit_32(1118048263);
emit_32(3263995904);
emit_32(1100616040);
emit_32(1118048263);
emit_32(3263483911);
emit_32(1100311953);
emit_32(1118048263);
emit_32(3262775296);
emit_32(1099845547);
emit_32(1118048263);
emit_32(3261751309);
emit_32(1099214619);
emit_32(1118048263);
emit_32(3260727296);
emit_32(1097535901);
emit_32(1118048263);
emit_32(3259703309);
emit_32(1095712847);
emit_32(1118048263);
emit_32(3258679296);
emit_32(1094870840);
emit_32(1118048263);
emit_32(3257655309);
emit_32(1094035230);
emit_32(1118048263);
emit_32(3256631296);
emit_32(1092438144);
emit_32(1118048263);
emit_32(3255607309);
emit_32(1092567024);
emit_32(1118048263);
emit_32(3254386688);
emit_32(1093416360);
emit_32(1118048263);
emit_32(3252338714);
emit_32(1092845516);
emit_32(1118048263);
emit_32(3250290688);
emit_32(1092728599);
emit_32(1118048263);
emit_32(3248242714);
emit_32(1093978292);
emit_32(1118048263);
emit_32(3245998080);
emit_32(1094248091);
emit_32(1118048263);
emit_32(3241902132);
emit_32(1096725352);
emit_32(1118048263);
emit_32(3237609472);
emit_32(1098118070);
emit_32(1118048263);
emit_32(3229220864);
emit_32(1098579024);
emit_32(1118048263);
emit_32(0);
emit_32(1098875562);
emit_32(1118048263);
emit_32(1081737216);
emit_32(1099413271);
emit_32(1118048263);
emit_32(3279552512);
emit_32(1087158039);
emit_32(1117536256);
emit_32(3279296528);
emit_32(1084423731);
emit_32(1117536256);
emit_32(3279040545);
emit_32(1083252471);
emit_32(1117536256);
emit_32(3278784496);
emit_32(1080977921);
emit_32(1117536256);
emit_32(3278528512);
emit_32(1078047193);
emit_32(1117536256);
emit_32(3278272528);
emit_32(1078022405);
emit_32(1117536256);
emit_32(3278016545);
emit_32(1081630052);
emit_32(1117536256);
emit_32(3277760496);
emit_32(1083124105);
emit_32(1117536256);
emit_32(3277504512);
emit_32(1081459553);
emit_32(1117536256);
emit_32(3277248528);
emit_32(1076823379);
emit_32(1117536256);
emit_32(3276992545);
emit_32(1083284243);
emit_32(1117536256);
emit_32(3276736496);
emit_32(1084323613);
emit_32(1117536256);
emit_32(3276480512);
emit_32(1083093801);
emit_32(1117536256);
emit_32(3276224528);
emit_32(1084912430);
emit_32(1117536256);
emit_32(3275968545);
emit_32(1088711106);
emit_32(1117536256);
emit_32(3275712496);
emit_32(1091460892);
emit_32(1117536256);
emit_32(3275456512);
emit_32(1093026290);
emit_32(1117536256);
emit_32(3275200528);
emit_32(1094050539);
emit_32(1117536256);
emit_32(3274944545);
emit_32(1096188481);
emit_32(1117536256);
emit_32(3274688496);
emit_32(1099085539);
emit_32(1117536256);
emit_32(3274432512);
emit_32(1099851891);
emit_32(1117536256);
emit_32(3274176528);
emit_32(1100504367);
emit_32(1117536256);
emit_32(3273920545);
emit_32(1101748136);
emit_32(1117536256);
emit_32(3273664496);
emit_32(1102868644);
emit_32(1117536256);
emit_32(3273408512);
emit_32(1103833491);
emit_32(1117536256);
emit_32(3273152528);
emit_32(1104656833);
emit_32(1117536256);
emit_32(3272896545);
emit_32(1105628706);
emit_32(1117536256);
emit_32(3272640496);
emit_32(1107011043);
emit_32(1117536256);
emit_32(3272384512);
emit_32(1107650124);
emit_32(1117536256);
emit_32(3272128528);
emit_32(1107880732);
emit_32(1117536256);
emit_32(3271872545);
emit_32(1107976887);
emit_32(1117536256);
emit_32(3271616496);
emit_32(1108276648);
emit_32(1117536256);
emit_32(3271163904);
emit_32(1108202645);
emit_32(1117536256);
emit_32(3270651937);
emit_32(1108292036);
emit_32(1117536256);
emit_32(3270139970);
emit_32(1107942205);
emit_32(1117536256);
emit_32(3269627871);
emit_32(1107800883);
emit_32(1117536256);
emit_32(3269115904);
emit_32(1107311303);
emit_32(1117536256);
emit_32(3268603937);
emit_32(1107125495);
emit_32(1117536256);
emit_32(3268091970);
emit_32(1107112755);
emit_32(1117536256);
emit_32(3267579911);
emit_32(1107267997);
emit_32(1117536256);
emit_32(3267067904);
emit_32(1106890510);
emit_32(1117536256);
emit_32(3266555911);
emit_32(1106494148);
emit_32(1117536256);
emit_32(3266043904);
emit_32(1105071650);
emit_32(1117536256);
emit_32(3265531911);
emit_32(1103864948);
emit_32(1117536256);
emit_32(3265019904);
emit_32(1102783028);
emit_32(1117536256);
emit_32(3264507911);
emit_32(1101893154);
emit_32(1117536256);
emit_32(3263995904);
emit_32(1100313684);
emit_32(1117536256);
emit_32(3263483911);
emit_32(1099645112);
emit_32(1117536256);
emit_32(3262775296);
emit_32(1099500985);
emit_32(1117536256);
emit_32(3261751309);
emit_32(1099174668);
emit_32(1117536256);
emit_32(3260727296);
emit_32(1097807901);
emit_32(1117536256);
emit_32(3259703309);
emit_32(1096000995);
emit_32(1117536256);
emit_32(3258679296);
emit_32(1094151098);
emit_32(1117536256);
emit_32(3257655309);
emit_32(1093022725);
emit_32(1117536256);
emit_32(3256631296);
emit_32(1092315356);
emit_32(1117536256);
emit_32(3255607309);
emit_32(1092666209);
emit_32(1117536256);
emit_32(3254386688);
emit_32(1092956979);
emit_32(1117536256);
emit_32(3252338714);
emit_32(1092948591);
emit_32(1117536256);
emit_32(3250290688);
emit_32(1093567880);
emit_32(1117536256);
emit_32(3248242714);
emit_32(1094483496);
emit_32(1117536256);
emit_32(3245998080);
emit_32(1097010250);
emit_32(1117536256);
emit_32(3241902132);
emit_32(1098491888);
emit_32(1117536256);
emit_32(3237609472);
emit_32(1098958976);
emit_32(1117536256);
emit_32(3229220864);
emit_32(1099244503);
emit_32(1117536256);
emit_32(0);
emit_32(1099580677);
emit_32(1117536256);
emit_32(1081737216);
emit_32(1100388447);
emit_32(1117536256);
emit_32(3279552512);
emit_32(1086400066);
emit_32(1117024263);
emit_32(3279296528);
emit_32(1084596809);
emit_32(1117024263);
emit_32(3279040545);
emit_32(1080887240);
emit_32(1117024263);
emit_32(3278784496);
emit_32(1080830198);
emit_32(1117024263);
emit_32(3278528512);
emit_32(1083401537);
emit_32(1117024263);
emit_32(3278272528);
emit_32(1083235254);
emit_32(1117024263);
emit_32(3278016545);
emit_32(1085484554);
emit_32(1117024263);
emit_32(3277760496);
emit_32(1086866577);
emit_32(1117024263);
emit_32(3277504512);
emit_32(1084469113);
emit_32(1117024263);
emit_32(3277248528);
emit_32(1083540599);
emit_32(1117024263);
emit_32(3276992545);
emit_32(1085825048);
emit_32(1117024263);
emit_32(3276736496);
emit_32(1088012125);
emit_32(1117024263);
emit_32(3276480512);
emit_32(1088318771);
emit_32(1117024263);
emit_32(3276224528);
emit_32(1089174619);
emit_32(1117024263);
emit_32(3275968545);
emit_32(1091189594);
emit_32(1117024263);
emit_32(3275712496);
emit_32(1093050722);
emit_32(1117024263);
emit_32(3275456512);
emit_32(1094514639);
emit_32(1117024263);
emit_32(3275200528);
emit_32(1096242482);
emit_32(1117024263);
emit_32(3274944545);
emit_32(1098453090);
emit_32(1117024263);
emit_32(3274688496);
emit_32(1100090861);
emit_32(1117024263);
emit_32(3274432512);
emit_32(1100571319);
emit_32(1117024263);
emit_32(3274176528);
emit_32(1101691512);
emit_32(1117024263);
emit_32(3273920545);
emit_32(1102911059);
emit_32(1117024263);
emit_32(3273664496);
emit_32(1103791600);
emit_32(1117024263);
emit_32(3273408512);
emit_32(1105004541);
emit_32(1117024263);
emit_32(3273152528);
emit_32(1105668499);
emit_32(1117024263);
emit_32(3272896545);
emit_32(1106514962);
emit_32(1117024263);
emit_32(3272640496);
emit_32(1107399593);
emit_32(1117024263);
emit_32(3272384512);
emit_32(1107645563);
emit_32(1117024263);
emit_32(3272128528);
emit_32(1107768351);
emit_32(1117024263);
emit_32(3271872545);
emit_32(1108103738);
emit_32(1117024263);
emit_32(3271616496);
emit_32(1108013744);
emit_32(1117024263);
emit_32(3271163904);
emit_32(1107916384);
emit_32(1117024263);
emit_32(3270651937);
emit_32(1107875778);
emit_32(1117024263);
emit_32(3270139970);
emit_32(1107601523);
emit_32(1117024263);
emit_32(3269627871);
emit_32(1107312378);
emit_32(1117024263);
emit_32(3269115904);
emit_32(1107317935);
emit_32(1117024263);
emit_32(3268603937);
emit_32(1107418363);
emit_32(1117024263);
emit_32(3268091970);
emit_32(1107103056);
emit_32(1117024263);
emit_32(3267579911);
emit_32(1106756135);
emit_32(1117024263);
emit_32(3267067904);
emit_32(1106586580);
emit_32(1117024263);
emit_32(3266555911);
emit_32(1106229068);
emit_32(1117024263);
emit_32(3266043904);
emit_32(1104905136);
emit_32(1117024263);
emit_32(3265531911);
emit_32(1103773408);
emit_32(1117024263);
emit_32(3265019904);
emit_32(1102876508);
emit_32(1117024263);
emit_32(3264507911);
emit_32(1101347160);
emit_32(1117024263);
emit_32(3263995904);
emit_32(1100029362);
emit_32(1117024263);
emit_32(3263483911);
emit_32(1099777180);
emit_32(1117024263);
emit_32(3262775296);
emit_32(1099578632);
emit_32(1117024263);
emit_32(3261751309);
emit_32(1099224370);
emit_32(1117024263);
emit_32(3260727296);
emit_32(1097535377);
emit_32(1117024263);
emit_32(3259703309);
emit_32(1095910398);
emit_32(1117024263);
emit_32(3258679296);
emit_32(1093599127);
emit_32(1117024263);
emit_32(3257655309);
emit_32(1091981646);
emit_32(1117024263);
emit_32(3256631296);
emit_32(1091797841);
emit_32(1117024263);
emit_32(3255607309);
emit_32(1092352737);
emit_32(1117024263);
emit_32(3254386688);
emit_32(1093028492);
emit_32(1117024263);
emit_32(3252338714);
emit_32(1093454633);
emit_32(1117024263);
emit_32(3250290688);
emit_32(1094245469);
emit_32(1117024263);
emit_32(3248242714);
emit_32(1096330038);
emit_32(1117024263);
emit_32(3245998080);
emit_32(1098523450);
emit_32(1117024263);
emit_32(3241902132);
emit_32(1099109289);
emit_32(1117024263);
emit_32(3237609472);
emit_32(1099818861);
emit_32(1117024263);
emit_32(3229220864);
emit_32(1099945738);
emit_32(1117024263);
emit_32(0);
emit_32(1100568016);
emit_32(1117024263);
emit_32(1081737216);
emit_32(1101362836);
emit_32(1117024263);
emit_32(3279552512);
emit_32(1085174427);
emit_32(1116512256);
emit_32(3279296528);
emit_32(1083887405);
emit_32(1116512256);
emit_32(3279040545);
emit_32(1080456611);
emit_32(1116512256);
emit_32(3278784496);
emit_32(1079046318);
emit_32(1116512256);
emit_32(3278528512);
emit_32(1082259302);
emit_32(1116512256);
emit_32(3278272528);
emit_32(1084889550);
emit_32(1116512256);
emit_32(3278016545);
emit_32(1087704851);
emit_32(1116512256);
emit_32(3277760496);
emit_32(1087804025);
emit_32(1116512256);
emit_32(3277504512);
emit_32(1088280498);
emit_32(1116512256);
emit_32(3277248528);
emit_32(1088103981);
emit_32(1116512256);
emit_32(3276992545);
emit_32(1088351004);
emit_32(1116512256);
emit_32(3276736496);
emit_32(1089973843);
emit_32(1116512256);
emit_32(3276480512);
emit_32(1091239926);
emit_32(1116512256);
emit_32(3276224528);
emit_32(1091632890);
emit_32(1116512256);
emit_32(3275968545);
emit_32(1092700393);
emit_32(1116512256);
emit_32(3275712496);
emit_32(1094925156);
emit_32(1116512256);
emit_32(3275456512);
emit_32(1096876556);
emit_32(1116512256);
emit_32(3275200528);
emit_32(1098626630);
emit_32(1116512256);
emit_32(3274944545);
emit_32(1100164471);
emit_32(1116512256);
emit_32(3274688496);
emit_32(1100745487);
emit_32(1116512256);
emit_32(3274432512);
emit_32(1101472832);
emit_32(1116512256);
emit_32(3274176528);
emit_32(1102779148);
emit_32(1116512256);
emit_32(3273920545);
emit_32(1103935255);
emit_32(1116512256);
emit_32(3273664496);
emit_32(1104701345);
emit_32(1116512256);
emit_32(3273408512);
emit_32(1105539000);
emit_32(1116512256);
emit_32(3273152528);
emit_32(1106980949);
emit_32(1116512256);
emit_32(3272896545);
emit_32(1107434013);
emit_32(1116512256);
emit_32(3272640496);
emit_32(1107566658);
emit_32(1116512256);
emit_32(3272384512);
emit_32(1107582701);
emit_32(1116512256);
emit_32(3272128528);
emit_32(1107757498);
emit_32(1116512256);
emit_32(3271872545);
emit_32(1107869617);
emit_32(1116512256);
emit_32(3271616496);
emit_32(1107687480);
emit_32(1116512256);
emit_32(3271163904);
emit_32(1107868176);
emit_32(1116512256);
emit_32(3270651937);
emit_32(1107680087);
emit_32(1116512256);
emit_32(3270139970);
emit_32(1107380955);
emit_32(1116512256);
emit_32(3269627871);
emit_32(1107328631);
emit_32(1116512256);
emit_32(3269115904);
emit_32(1107472941);
emit_32(1116512256);
emit_32(3268603937);
emit_32(1107494384);
emit_32(1116512256);
emit_32(3268091970);
emit_32(1107424602);
emit_32(1116512256);
emit_32(3267579911);
emit_32(1106664227);
emit_32(1116512256);
emit_32(3267067904);
emit_32(1106309651);
emit_32(1116512256);
emit_32(3266555911);
emit_32(1105564480);
emit_32(1116512256);
emit_32(3266043904);
emit_32(1104468247);
emit_32(1116512256);
emit_32(3265531911);
emit_32(1103524161);
emit_32(1116512256);
emit_32(3265019904);
emit_32(1102766355);
emit_32(1116512256);
emit_32(3264507911);
emit_32(1101285976);
emit_32(1116512256);
emit_32(3263995904);
emit_32(1100106066);
emit_32(1116512256);
emit_32(3263483911);
emit_32(1099771150);
emit_32(1116512256);
emit_32(3262775296);
emit_32(1099629121);
emit_32(1116512256);
emit_32(3261751309);
emit_32(1099071436);
emit_32(1116512256);
emit_32(3260727296);
emit_32(1096827273);
emit_32(1116512256);
emit_32(3259703309);
emit_32(1094327153);
emit_32(1116512256);
emit_32(3258679296);
emit_32(1092289372);
emit_32(1116512256);
emit_32(3257655309);
emit_32(1091186899);
emit_32(1116512256);
emit_32(3256631296);
emit_32(1091068620);
emit_32(1116512256);
emit_32(3255607309);
emit_32(1092988332);
emit_32(1116512256);
emit_32(3254386688);
emit_32(1093789024);
emit_32(1116512256);
emit_32(3252338714);
emit_32(1095575588);
emit_32(1116512256);
emit_32(3250290688);
emit_32(1097077673);
emit_32(1116512256);
emit_32(3248242714);
emit_32(1098285423);
emit_32(1116512256);
emit_32(3245998080);
emit_32(1099366400);
emit_32(1116512256);
emit_32(3241902132);
emit_32(1099809528);
emit_32(1116512256);
emit_32(3237609472);
emit_32(1100308336);
emit_32(1116512256);
emit_32(3229220864);
emit_32(1100857999);
emit_32(1116512256);
emit_32(0);
emit_32(1101690883);
emit_32(1116512256);
emit_32(1081737216);
emit_32(1102550401);
emit_32(1116512256);
emit_32(3279552512);
emit_32(1083244397);
emit_32(1116000263);
emit_32(3279296528);
emit_32(1081021794);
emit_32(1116000263);
emit_32(3279040545);
emit_32(1081320051);
emit_32(1116000263);
emit_32(3278784496);
emit_32(1083021910);
emit_32(1116000263);
emit_32(3278528512);
emit_32(1084294064);
emit_32(1116000263);
emit_32(3278272528);
emit_32(1087656092);
emit_32(1116000263);
emit_32(3278016545);
emit_32(1089797599);
emit_32(1116000263);
emit_32(3277760496);
emit_32(1091098955);
emit_32(1116000263);
emit_32(3277504512);
emit_32(1091272610);
emit_32(1116000263);
emit_32(3277248528);
emit_32(1089866763);
emit_32(1116000263);
emit_32(3276992545);
emit_32(1091139178);
emit_32(1116000263);
emit_32(3276736496);
emit_32(1092341580);
emit_32(1116000263);
emit_32(3276480512);
emit_32(1092757540);
emit_32(1116000263);
emit_32(3276224528);
emit_32(1092728914);
emit_32(1116000263);
emit_32(3275968545);
emit_32(1093810939);
emit_32(1116000263);
emit_32(3275712496);
emit_32(1096373135);
emit_32(1116000263);
emit_32(3275456512);
emit_32(1098378222);
emit_32(1116000263);
emit_32(3275200528);
emit_32(1099724174);
emit_32(1116000263);
emit_32(3274944545);
emit_32(1100967628);
emit_32(1116000263);
emit_32(3274688496);
emit_32(1101558815);
emit_32(1116000263);
emit_32(3274432512);
emit_32(1102315677);
emit_32(1116000263);
emit_32(3274176528);
emit_32(1103940446);
emit_32(1116000263);
emit_32(3273920545);
emit_32(1104679902);
emit_32(1116000263);
emit_32(3273664496);
emit_32(1105155378);
emit_32(1116000263);
emit_32(3273408512);
emit_32(1106194674);
emit_32(1116000263);
emit_32(3273152528);
emit_32(1107343049);
emit_32(1116000263);
emit_32(3272896545);
emit_32(1107838081);
emit_32(1116000263);
emit_32(3272640496);
emit_32(1107954998);
emit_32(1116000263);
emit_32(3272384512);
emit_32(1107867599);
emit_32(1116000263);
emit_32(3272128528);
emit_32(1107645196);
emit_32(1116000263);
emit_32(3271872545);
emit_32(1107550274);
emit_32(1116000263);
emit_32(3271616496);
emit_32(1107544690);
emit_32(1116000263);
emit_32(3271163904);
emit_32(1107694348);
emit_32(1116000263);
emit_32(3270651937);
emit_32(1107550929);
emit_32(1116000263);
emit_32(3270139970);
emit_32(1107424654);
emit_32(1116000263);
emit_32(3269627871);
emit_32(1107580892);
emit_32(1116000263);
emit_32(3269115904);
emit_32(1107466676);
emit_32(1116000263);
emit_32(3268603937);
emit_32(1107518292);
emit_32(1116000263);
emit_32(3268091970);
emit_32(1107507911);
emit_32(1116000263);
emit_32(3267579911);
emit_32(1107068767);
emit_32(1116000263);
emit_32(3267067904);
emit_32(1105975417);
emit_32(1116000263);
emit_32(3266555911);
emit_32(1105550692);
emit_32(1116000263);
emit_32(3266043904);
emit_32(1104364438);
emit_32(1116000263);
emit_32(3265531911);
emit_32(1103311090);
emit_32(1116000263);
emit_32(3265019904);
emit_32(1102266709);
emit_32(1116000263);
emit_32(3264507911);
emit_32(1101111021);
emit_32(1116000263);
emit_32(3263995904);
emit_32(1100245264);
emit_32(1116000263);
emit_32(3263483911);
emit_32(1099460667);
emit_32(1116000263);
emit_32(3262775296);
emit_32(1099464599);
emit_32(1116000263);
emit_32(3261751309);
emit_32(1098898106);
emit_32(1116000263);
emit_32(3260727296);
emit_32(1096169292);
emit_32(1116000263);
emit_32(3259703309);
emit_32(1094572520);
emit_32(1116000263);
emit_32(3258679296);
emit_32(1091595424);
emit_32(1116000263);
emit_32(3257655309);
emit_32(1091557613);
emit_32(1116000263);
emit_32(3256631296);
emit_32(1092673130);
emit_32(1116000263);
emit_32(3255607309);
emit_32(1094406950);
emit_32(1116000263);
emit_32(3254386688);
emit_32(1095233018);
emit_32(1116000263);
emit_32(3252338714);
emit_32(1096870789);
emit_32(1116000263);
emit_32(3250290688);
emit_32(1098084201);
emit_32(1116000263);
emit_32(3248242714);
emit_32(1099279316);
emit_32(1116000263);
emit_32(3245998080);
emit_32(1099851838);
emit_32(1116000263);
emit_32(3241902132);
emit_32(1100485021);
emit_32(1116000263);
emit_32(3237609472);
emit_32(1101521958);
emit_32(1116000263);
emit_32(3229220864);
emit_32(1102417389);
emit_32(1116000263);
emit_32(0);
emit_32(1103083130);
emit_32(1116000263);
emit_32(1081737216);
emit_32(1103917954);
emit_32(1116000263);
emit_32(3279552512);
emit_32(1083552091);
emit_32(1115291648);
emit_32(3279296528);
emit_32(1083005678);
emit_32(1115291648);
emit_32(3279040545);
emit_32(1081863968);
emit_32(1115291648);
emit_32(3278784496);
emit_32(1083192598);
emit_32(1115291648);
emit_32(3278528512);
emit_32(1085321521);
emit_32(1115291648);
emit_32(3278272528);
emit_32(1088639887);
emit_32(1115291648);
emit_32(3278016545);
emit_32(1090626592);
emit_32(1115291648);
emit_32(3277760496);
emit_32(1090904140);
emit_32(1115291648);
emit_32(3277504512);
emit_32(1091130580);
emit_32(1115291648);
emit_32(3277248528);
emit_32(1091114726);
emit_32(1115291648);
emit_32(3276992545);
emit_32(1092567129);
emit_32(1115291648);
emit_32(3276736496);
emit_32(1093130414);
emit_32(1115291648);
emit_32(3276480512);
emit_32(1093467636);
emit_32(1115291648);
emit_32(3276224528);
emit_32(1094287832);
emit_32(1115291648);
emit_32(3275968545);
emit_32(1095800822);
emit_32(1115291648);
emit_32(3275712496);
emit_32(1097484940);
emit_32(1115291648);
emit_32(3275456512);
emit_32(1099294310);
emit_32(1115291648);
emit_32(3275200528);
emit_32(1100172703);
emit_32(1115291648);
emit_32(3274944545);
emit_32(1101504656);
emit_32(1115291648);
emit_32(3274688496);
emit_32(1102638534);
emit_32(1115291648);
emit_32(3274432512);
emit_32(1103640238);
emit_32(1115291648);
emit_32(3274176528);
emit_32(1104536142);
emit_32(1115291648);
emit_32(3273920545);
emit_32(1105040926);
emit_32(1115291648);
emit_32(3273664496);
emit_32(1105781640);
emit_32(1115291648);
emit_32(3273408512);
emit_32(1106871845);
emit_32(1115291648);
emit_32(3273152528);
emit_32(1107552266);
emit_32(1115291648);
emit_32(3272896545);
emit_32(1107681686);
emit_32(1115291648);
emit_32(3272640496);
emit_32(1107745571);
emit_32(1115291648);
emit_32(3272384512);
emit_32(1107728531);
emit_32(1115291648);
emit_32(3272128528);
emit_32(1107564849);
emit_32(1115291648);
emit_32(3271872545);
emit_32(1107489876);
emit_32(1115291648);
emit_32(3271616496);
emit_32(1107455351);
emit_32(1115291648);
emit_32(3271163904);
emit_32(1107468721);
emit_32(1115291648);
emit_32(3270651937);
emit_32(1107084182);
emit_32(1115291648);
emit_32(3270139970);
emit_32(1107222279);
emit_32(1115291648);
emit_32(3269627871);
emit_32(1107484685);
emit_32(1115291648);
emit_32(3269115904);
emit_32(1107529302);
emit_32(1115291648);
emit_32(3268603937);
emit_32(1107488067);
emit_32(1115291648);
emit_32(3268091970);
emit_32(1107407117);
emit_32(1115291648);
emit_32(3267579911);
emit_32(1106883012);
emit_32(1115291648);
emit_32(3267067904);
emit_32(1106605454);
emit_32(1115291648);
emit_32(3266555911);
emit_32(1105505288);
emit_32(1115291648);
emit_32(3266043904);
emit_32(1104212551);
emit_32(1115291648);
emit_32(3265531911);
emit_32(1103004854);
emit_32(1115291648);
emit_32(3265019904);
emit_32(1102070835);
emit_32(1115291648);
emit_32(3264507911);
emit_32(1101098123);
emit_32(1115291648);
emit_32(3263995904);
emit_32(1100325323);
emit_32(1115291648);
emit_32(3263483911);
emit_32(1099328966);
emit_32(1115291648);
emit_32(3262775296);
emit_32(1098611216);
emit_32(1115291648);
emit_32(3261751309);
emit_32(1096735418);
emit_32(1115291648);
emit_32(3260727296);
emit_32(1095838571);
emit_32(1115291648);
emit_32(3259703309);
emit_32(1094605760);
emit_32(1115291648);
emit_32(3258679296);
emit_32(1092525459);
emit_32(1115291648);
emit_32(3257655309);
emit_32(1092767082);
emit_32(1115291648);
emit_32(3256631296);
emit_32(1093983535);
emit_32(1115291648);
emit_32(3255607309);
emit_32(1095249271);
emit_32(1115291648);
emit_32(3254386688);
emit_32(1096927937);
emit_32(1115291648);
emit_32(3252338714);
emit_32(1098207724);
emit_32(1115291648);
emit_32(3250290688);
emit_32(1099233441);
emit_32(1115291648);
emit_32(3248242714);
emit_32(1099875956);
emit_32(1115291648);
emit_32(3245998080);
emit_32(1100637117);
emit_32(1115291648);
emit_32(3241902132);
emit_32(1101503817);
emit_32(1115291648);
emit_32(3237609472);
emit_32(1102802531);
emit_32(1115291648);
emit_32(3229220864);
emit_32(1103593682);
emit_32(1115291648);
emit_32(0);
emit_32(1104232317);
emit_32(1115291648);
emit_32(1081737216);
emit_32(1104775951);
emit_32(1115291648);
emit_32(3279552512);
emit_32(1082632448);
emit_32(1114267661);
emit_32(3279296528);
emit_32(1083847999);
emit_32(1114267661);
emit_32(3279040545);
emit_32(1083453043);
emit_32(1114267661);
emit_32(3278784496);
emit_32(1084836240);
emit_32(1114267661);
emit_32(3278528512);
emit_32(1087335416);
emit_32(1114267661);
emit_32(3278272528);
emit_32(1088125267);
emit_32(1114267661);
emit_32(3278016545);
emit_32(1091016904);
emit_32(1114267661);
emit_32(3277760496);
emit_32(1091320320);
emit_32(1114267661);
emit_32(3277504512);
emit_32(1091823731);
emit_32(1114267661);
emit_32(3277248528);
emit_32(1092277020);
emit_32(1114267661);
emit_32(3276992545);
emit_32(1093461659);
emit_32(1114267661);
emit_32(3276736496);
emit_32(1095052768);
emit_32(1114267661);
emit_32(3276480512);
emit_32(1095490234);
emit_32(1114267661);
emit_32(3276224528);
emit_32(1095508899);
emit_32(1114267661);
emit_32(3275968545);
emit_32(1097193541);
emit_32(1114267661);
emit_32(3275712496);
emit_32(1098984561);
emit_32(1114267661);
emit_32(3275456512);
emit_32(1099457574);
emit_32(1114267661);
emit_32(3275200528);
emit_32(1100590141);
emit_32(1114267661);
emit_32(3274944545);
emit_32(1101940969);
emit_32(1114267661);
emit_32(3274688496);
emit_32(1103512417);
emit_32(1114267661);
emit_32(3274432512);
emit_32(1104276147);
emit_32(1114267661);
emit_32(3274176528);
emit_32(1104819310);
emit_32(1114267661);
emit_32(3273920545);
emit_32(1105352144);
emit_32(1114267661);
emit_32(3273664496);
emit_32(1106559369);
emit_32(1114267661);
emit_32(3273408512);
emit_32(1107364859);
emit_32(1114267661);
emit_32(3273152528);
emit_32(1107533470);
emit_32(1114267661);
emit_32(3272896545);
emit_32(1107506024);
emit_32(1114267661);
emit_32(3272640496);
emit_32(1107420801);
emit_32(1114267661);
emit_32(3272384512);
emit_32(1107402398);
emit_32(1114267661);
emit_32(3272128528);
emit_32(1107706013);
emit_32(1114267661);
emit_32(3271872545);
emit_32(1107658749);
emit_32(1114267661);
emit_32(3271616496);
emit_32(1107586292);
emit_32(1114267661);
emit_32(3271163904);
emit_32(1107376315);
emit_32(1114267661);
emit_32(3270651937);
emit_32(1107428560);
emit_32(1114267661);
emit_32(3270139970);
emit_32(1107381348);
emit_32(1114267661);
emit_32(3269627871);
emit_32(1107411416);
emit_32(1114267661);
emit_32(3269115904);
emit_32(1107441222);
emit_32(1114267661);
emit_32(3268603937);
emit_32(1107539552);
emit_32(1114267661);
emit_32(3268091970);
emit_32(1107219658);
emit_32(1114267661);
emit_32(3267579911);
emit_32(1106732804);
emit_32(1114267661);
emit_32(3267067904);
emit_32(1106474592);
emit_32(1114267661);
emit_32(3266555911);
emit_32(1105371857);
emit_32(1114267661);
emit_32(3266043904);
emit_32(1103908989);
emit_32(1114267661);
emit_32(3265531911);
emit_32(1102613892);
emit_32(1114267661);
emit_32(3265019904);
emit_32(1101793853);
emit_32(1114267661);
emit_32(3264507911);
emit_32(1101568305);
emit_32(1114267661);
emit_32(3263995904);
emit_32(1100542693);
emit_32(1114267661);
emit_32(3263483911);
emit_32(1099317327);
emit_32(1114267661);
emit_32(3262775296);
emit_32(1098087557);
emit_32(1114267661);
emit_32(3261751309);
emit_32(1096945867);
emit_32(1114267661);
emit_32(3260727296);
emit_32(1096008440);
emit_32(1114267661);
emit_32(3259703309);
emit_32(1094604292);
emit_32(1114267661);
emit_32(3258679296);
emit_32(1093760293);
emit_32(1114267661);
emit_32(3257655309);
emit_32(1095498203);
emit_32(1114267661);
emit_32(3256631296);
emit_32(1096500642);
emit_32(1114267661);
emit_32(3255607309);
emit_32(1097453063);
emit_32(1114267661);
emit_32(3254386688);
emit_32(1098431594);
emit_32(1114267661);
emit_32(3252338714);
emit_32(1099318061);
emit_32(1114267661);
emit_32(3250290688);
emit_32(1100353529);
emit_32(1114267661);
emit_32(3248242714);
emit_32(1100897373);
emit_32(1114267661);
emit_32(3245998080);
emit_32(1101979661);
emit_32(1114267661);
emit_32(3241902132);
emit_32(1102434481);
emit_32(1114267661);
emit_32(3237609472);
emit_32(1103617327);
emit_32(1114267661);
emit_32(3229220864);
emit_32(1104375972);
emit_32(1114267661);
emit_32(0);
emit_32(1104908963);
emit_32(1114267661);
emit_32(1081737216);
emit_32(1105382343);
emit_32(1114267661);
emit_32(3279552512);
emit_32(1080567970);
emit_32(1113243648);
emit_32(3279296528);
emit_32(1081431200);
emit_32(1113243648);
emit_32(3279040545);
emit_32(1083053640);
emit_32(1113243648);
emit_32(3278784496);
emit_32(1084804594);
emit_32(1113243648);
emit_32(3278528512);
emit_32(1089344530);
emit_32(1113243648);
emit_32(3278272528);
emit_32(1089662899);
emit_32(1113243648);
emit_32(3278016545);
emit_32(1090822970);
emit_32(1113243648);
emit_32(3277760496);
emit_32(1092219662);
emit_32(1113243648);
emit_32(3277504512);
emit_32(1093309615);
emit_32(1113243648);
emit_32(3277248528);
emit_32(1093760608);
emit_32(1113243648);
emit_32(3276992545);
emit_32(1094942563);
emit_32(1113243648);
emit_32(3276736496);
emit_32(1095970062);
emit_32(1113243648);
emit_32(3276480512);
emit_32(1096808609);
emit_32(1113243648);
emit_32(3276224528);
emit_32(1097144677);
emit_32(1113243648);
emit_32(3275968545);
emit_32(1097732299);
emit_32(1113243648);
emit_32(3275712496);
emit_32(1099213255);
emit_32(1113243648);
emit_32(3275456512);
emit_32(1100077335);
emit_32(1113243648);
emit_32(3275200528);
emit_32(1101037358);
emit_32(1113243648);
emit_32(3274944545);
emit_32(1102522142);
emit_32(1113243648);
emit_32(3274688496);
emit_32(1103670333);
emit_32(1113243648);
emit_32(3274432512);
emit_32(1104447013);
emit_32(1113243648);
emit_32(3274176528);
emit_32(1104860519);
emit_32(1113243648);
emit_32(3273920545);
emit_32(1105841200);
emit_32(1113243648);
emit_32(3273664496);
emit_32(1106724782);
emit_32(1113243648);
emit_32(3273408512);
emit_32(1107646900);
emit_32(1113243648);
emit_32(3273152528);
emit_32(1107527152);
emit_32(1113243648);
emit_32(3272896545);
emit_32(1107447854);
emit_32(1113243648);
emit_32(3272640496);
emit_32(1107457160);
emit_32(1113243648);
emit_32(3272384512);
emit_32(1107532238);
emit_32(1113243648);
emit_32(3272128528);
emit_32(1107881152);
emit_32(1113243648);
emit_32(3271872545);
emit_32(1107776897);
emit_32(1113243648);
emit_32(3271616496);
emit_32(1107520258);
emit_32(1113243648);
emit_32(3271163904);
emit_32(1107733591);
emit_32(1113243648);
emit_32(3270651937);
emit_32(1107557168);
emit_32(1113243648);
emit_32(3270139970);
emit_32(1107429845);
emit_32(1113243648);
emit_32(3269627871);
emit_32(1107409161);
emit_32(1113243648);
emit_32(3269115904);
emit_32(1107202618);
emit_32(1113243648);
emit_32(3268603937);
emit_32(1107218137);
emit_32(1113243648);
emit_32(3268091970);
emit_32(1107106621);
emit_32(1113243648);
emit_32(3267579911);
emit_32(1106476217);
emit_32(1113243648);
emit_32(3267067904);
emit_32(1105687006);
emit_32(1113243648);
emit_32(3266555911);
emit_32(1104462742);
emit_32(1113243648);
emit_32(3266043904);
emit_32(1103481222);
emit_32(1113243648);
emit_32(3265531911);
emit_32(1102608859);
emit_32(1113243648);
emit_32(3265019904);
emit_32(1101715630);
emit_32(1113243648);
emit_32(3264507911);
emit_32(1101203400);
emit_32(1113243648);
emit_32(3263995904);
emit_32(1100648337);
emit_32(1113243648);
emit_32(3263483911);
emit_32(1099410807);
emit_32(1113243648);
emit_32(3262775296);
emit_32(1097508009);
emit_32(1113243648);
emit_32(3261751309);
emit_32(1097324193);
emit_32(1113243648);
emit_32(3260727296);
emit_32(1096121791);
emit_32(1113243648);
emit_32(3259703309);
emit_32(1095057906);
emit_32(1113243648);
emit_32(3258679296);
emit_32(1095394709);
emit_32(1113243648);
emit_32(3257655309);
emit_32(1097088473);
emit_32(1113243648);
emit_32(3256631296);
emit_32(1098581226);
emit_32(1113243648);
emit_32(3255607309);
emit_32(1099014498);
emit_32(1113243648);
emit_32(3254386688);
emit_32(1099554462);
emit_32(1113243648);
emit_32(3252338714);
emit_32(1100356151);
emit_32(1113243648);
emit_32(3250290688);
emit_32(1101134404);
emit_32(1113243648);
emit_32(3248242714);
emit_32(1101886076);
emit_32(1113243648);
emit_32(3245998080);
emit_32(1103145992);
emit_32(1113243648);
emit_32(3241902132);
emit_32(1103709182);
emit_32(1113243648);
emit_32(3237609472);
emit_32(1104517530);
emit_32(1113243648);
emit_32(3229220864);
emit_32(1104959033);
emit_32(1113243648);
emit_32(0);
emit_32(1105369183);
emit_32(1113243648);
emit_32(1081737216);
emit_32(1105831238);
emit_32(1113243648);
emit_32(3279552512);
emit_32(1081067470);
emit_32(1112219661);
emit_32(3279296528);
emit_32(1081676273);
emit_32(1112219661);
emit_32(3279040545);
emit_32(1082388277);
emit_32(1112219661);
emit_32(3278784496);
emit_32(1084582317);
emit_32(1112219661);
emit_32(3278528512);
emit_32(1086962144);
emit_32(1112219661);
emit_32(3278272528);
emit_32(1088882737);
emit_32(1112219661);
emit_32(3278016545);
emit_32(1091161282);
emit_32(1112219661);
emit_32(3277760496);
emit_32(1092751983);
emit_32(1112219661);
emit_32(3277504512);
emit_32(1095008308);
emit_32(1112219661);
emit_32(3277248528);
emit_32(1095060318);
emit_32(1112219661);
emit_32(3276992545);
emit_32(1096171599);
emit_32(1112219661);
emit_32(3276736496);
emit_32(1096970718);
emit_32(1112219661);
emit_32(3276480512);
emit_32(1096845518);
emit_32(1112219661);
emit_32(3276224528);
emit_32(1097664037);
emit_32(1112219661);
emit_32(3275968545);
emit_32(1099269407);
emit_32(1112219661);
emit_32(3275712496);
emit_32(1099766956);
emit_32(1112219661);
emit_32(3275456512);
emit_32(1100617351);
emit_32(1112219661);
emit_32(3275200528);
emit_32(1101396967);
emit_32(1112219661);
emit_32(3274944545);
emit_32(1102752933);
emit_32(1112219661);
emit_32(3274688496);
emit_32(1103879838);
emit_32(1112219661);
emit_32(3274432512);
emit_32(1104593866);
emit_32(1112219661);
emit_32(3274176528);
emit_32(1105083131);
emit_32(1112219661);
emit_32(3273920545);
emit_32(1106256803);
emit_32(1112219661);
emit_32(3273664496);
emit_32(1106808091);
emit_32(1112219661);
emit_32(3273408512);
emit_32(1107450869);
emit_32(1112219661);
emit_32(3273152528);
emit_32(1107444944);
emit_32(1112219661);
emit_32(3272896545);
emit_32(1107418258);
emit_32(1112219661);
emit_32(3272640496);
emit_32(1107742425);
emit_32(1112219661);
emit_32(3272384512);
emit_32(1108019590);
emit_32(1112219661);
emit_32(3272128528);
emit_32(1107796584);
emit_32(1112219661);
emit_32(3271872545);
emit_32(1107736920);
emit_32(1112219661);
emit_32(3271616496);
emit_32(1107725360);
emit_32(1112219661);
emit_32(3271163904);
emit_32(1107830270);
emit_32(1112219661);
emit_32(3270651937);
emit_32(1107833101);
emit_32(1112219661);
emit_32(3270139970);
emit_32(1107955024);
emit_32(1112219661);
emit_32(3269627871);
emit_32(1107743788);
emit_32(1112219661);
emit_32(3269115904);
emit_32(1107368686);
emit_32(1112219661);
emit_32(3268603937);
emit_32(1107312194);
emit_32(1112219661);
emit_32(3268091970);
emit_32(1106815641);
emit_32(1112219661);
emit_32(3267579911);
emit_32(1106204059);
emit_32(1112219661);
emit_32(3267067904);
emit_32(1105597773);
emit_32(1112219661);
emit_32(3266555911);
emit_32(1104651905);
emit_32(1112219661);
emit_32(3266043904);
emit_32(1103516559);
emit_32(1112219661);
emit_32(3265531911);
emit_32(1102993162);
emit_32(1112219661);
emit_32(3265019904);
emit_32(1101898029);
emit_32(1112219661);
emit_32(3264507911);
emit_32(1100758804);
emit_32(1112219661);
emit_32(3263995904);
emit_32(1100657040);
emit_32(1112219661);
emit_32(3263483911);
emit_32(1099876637);
emit_32(1112219661);
emit_32(3262775296);
emit_32(1097071696);
emit_32(1112219661);
emit_32(3261751309);
emit_32(1097587910);
emit_32(1112219661);
emit_32(3260727296);
emit_32(1096851915);
emit_32(1112219661);
emit_32(3259703309);
emit_32(1095734447);
emit_32(1112219661);
emit_32(3258679296);
emit_32(1096755026);
emit_32(1112219661);
emit_32(3257655309);
emit_32(1098731382);
emit_32(1112219661);
emit_32(3256631296);
emit_32(1099251896);
emit_32(1112219661);
emit_32(3255607309);
emit_32(1099497577);
emit_32(1112219661);
emit_32(3254386688);
emit_32(1100323121);
emit_32(1112219661);
emit_32(3252338714);
emit_32(1101464601);
emit_32(1112219661);
emit_32(3250290688);
emit_32(1102066431);
emit_32(1112219661);
emit_32(3248242714);
emit_32(1102544581);
emit_32(1112219661);
emit_32(3245998080);
emit_32(1103985902);
emit_32(1112219661);
emit_32(3241902132);
emit_32(1104242698);
emit_32(1112219661);
emit_32(3237609472);
emit_32(1105399801);
emit_32(1112219661);
emit_32(3229220864);
emit_32(1105617119);
emit_32(1112219661);
emit_32(0);
emit_32(1106104864);
emit_32(1112219661);
emit_32(1081737216);
emit_32(1106473438);
emit_32(1112219661);
emit_32(3279552512);
emit_32(1080840432);
emit_32(1111195648);
emit_32(3279296528);
emit_32(1081651568);
emit_32(1111195648);
emit_32(3279040545);
emit_32(1082066175);
emit_32(1111195648);
emit_32(3278784496);
emit_32(1084264746);
emit_32(1111195648);
emit_32(3278528512);
emit_32(1088920821);
emit_32(1111195648);
emit_32(3278272528);
emit_32(1090060120);
emit_32(1111195648);
emit_32(3278016545);
emit_32(1091098882);
emit_32(1111195648);
emit_32(3277760496);
emit_32(1092897630);
emit_32(1111195648);
emit_32(3277504512);
emit_32(1093865780);
emit_32(1111195648);
emit_32(3277248528);
emit_32(1095144309);
emit_32(1111195648);
emit_32(3276992545);
emit_32(1096518363);
emit_32(1111195648);
emit_32(3276736496);
emit_32(1097299342);
emit_32(1111195648);
emit_32(3276480512);
emit_32(1098421109);
emit_32(1111195648);
emit_32(3276224528);
emit_32(1098491888);
emit_32(1111195648);
emit_32(3275968545);
emit_32(1099350986);
emit_32(1111195648);
emit_32(3275712496);
emit_32(1100200332);
emit_32(1111195648);
emit_32(3275456512);
emit_32(1100698092);
emit_32(1111195648);
emit_32(3275200528);
emit_32(1101450655);
emit_32(1111195648);
emit_32(3274944545);
emit_32(1103069866);
emit_32(1111195648);
emit_32(3274688496);
emit_32(1104305508);
emit_32(1111195648);
emit_32(3274432512);
emit_32(1105027557);
emit_32(1111195648);
emit_32(3274176528);
emit_32(1105330019);
emit_32(1111195648);
emit_32(3273920545);
emit_32(1106064336);
emit_32(1111195648);
emit_32(3273664496);
emit_32(1107261863);
emit_32(1111195648);
emit_32(3273408512);
emit_32(1107667531);
emit_32(1111195648);
emit_32(3273152528);
emit_32(1107670598);
emit_32(1111195648);
emit_32(3272896545);
emit_32(1107641159);
emit_32(1111195648);
emit_32(3272640496);
emit_32(1107722528);
emit_32(1111195648);
emit_32(3272384512);
emit_32(1108132181);
emit_32(1111195648);
emit_32(3272128528);
emit_32(1108041636);
emit_32(1111195648);
emit_32(3271872545);
emit_32(1107852499);
emit_32(1111195648);
emit_32(3271616496);
emit_32(1107940187);
emit_32(1111195648);
emit_32(3271163904);
emit_32(1108075584);
emit_32(1111195648);
emit_32(3270651937);
emit_32(1108051519);
emit_32(1111195648);
emit_32(3270139970);
emit_32(1108131185);
emit_32(1111195648);
emit_32(3269627871);
emit_32(1107856720);
emit_32(1111195648);
emit_32(3269115904);
emit_32(1107481775);
emit_32(1111195648);
emit_32(3268603937);
emit_32(1107354426);
emit_32(1111195648);
emit_32(3268091970);
emit_32(1106901729);
emit_32(1111195648);
emit_32(3267579911);
emit_32(1106228648);
emit_32(1111195648);
emit_32(3267067904);
emit_32(1105262753);
emit_32(1111195648);
emit_32(3266555911);
emit_32(1104721425);
emit_32(1111195648);
emit_32(3266043904);
emit_32(1103674474);
emit_32(1111195648);
emit_32(3265531911);
emit_32(1102786488);
emit_32(1111195648);
emit_32(3265019904);
emit_32(1102197555);
emit_32(1111195648);
emit_32(3264507911);
emit_32(1100931295);
emit_32(1111195648);
emit_32(3263995904);
emit_32(1100417440);
emit_32(1111195648);
emit_32(3263483911);
emit_32(1099561330);
emit_32(1111195648);
emit_32(3262775296);
emit_32(1098381787);
emit_32(1111195648);
emit_32(3261751309);
emit_32(1097372218);
emit_32(1111195648);
emit_32(3260727296);
emit_32(1097540724);
emit_32(1111195648);
emit_32(3259703309);
emit_32(1096128502);
emit_32(1111195648);
emit_32(3258679296);
emit_32(1098525337);
emit_32(1111195648);
emit_32(3257655309);
emit_32(1099283929);
emit_32(1111195648);
emit_32(3256631296);
emit_32(1099669281);
emit_32(1111195648);
emit_32(3255607309);
emit_32(1100104388);
emit_32(1111195648);
emit_32(3254386688);
emit_32(1101177448);
emit_32(1111195648);
emit_32(3252338714);
emit_32(1102411989);
emit_32(1111195648);
emit_32(3250290688);
emit_32(1102859731);
emit_32(1111195648);
emit_32(3248242714);
emit_32(1103261650);
emit_32(1111195648);
emit_32(3245998080);
emit_32(1104208881);
emit_32(1111195648);
emit_32(3241902132);
emit_32(1104930721);
emit_32(1111195648);
emit_32(3237609472);
emit_32(1105910668);
emit_32(1111195648);
emit_32(3229220864);
emit_32(1106135482);
emit_32(1111195648);
emit_32(0);
emit_32(1106438364);
emit_32(1111195648);
emit_32(1081737216);
emit_32(1106707585);
emit_32(1111195648);
emit_32(3279552512);
emit_32(1082299945);
emit_32(1110171661);
emit_32(3279296528);
emit_32(1082335492);
emit_32(1110171661);
emit_32(3279040545);
emit_32(1081611639);
emit_32(1110171661);
emit_32(3278784496);
emit_32(1084483730);
emit_32(1110171661);
emit_32(3278528512);
emit_32(1087813567);
emit_32(1110171661);
emit_32(3278272528);
emit_32(1090011655);
emit_32(1110171661);
emit_32(3278016545);
emit_32(1090662443);
emit_32(1110171661);
emit_32(3277760496);
emit_32(1091411913);
emit_32(1110171661);
emit_32(3277504512);
emit_32(1093599547);
emit_32(1110171661);
emit_32(3277248528);
emit_32(1095137283);
emit_32(1110171661);
emit_32(3276992545);
emit_32(1096248040);
emit_32(1110171661);
emit_32(3276736496);
emit_32(1097581409);
emit_32(1110171661);
emit_32(3276480512);
emit_32(1098493460);
emit_32(1110171661);
emit_32(3276224528);
emit_32(1098645189);
emit_32(1110171661);
emit_32(3275968545);
emit_32(1099528405);
emit_32(1110171661);
emit_32(3275712496);
emit_32(1100673398);
emit_32(1110171661);
emit_32(3275456512);
emit_32(1101618269);
emit_32(1110171661);
emit_32(3275200528);
emit_32(1102431073);
emit_32(1110171661);
emit_32(3274944545);
emit_32(1103528093);
emit_32(1110171661);
emit_32(3274688496);
emit_32(1104554597);
emit_32(1110171661);
emit_32(3274432512);
emit_32(1105069133);
emit_32(1110171661);
emit_32(3274176528);
emit_32(1105654658);
emit_32(1110171661);
emit_32(3273920545);
emit_32(1106835145);
emit_32(1110171661);
emit_32(3273664496);
emit_32(1107634160);
emit_32(1110171661);
emit_32(3273408512);
emit_32(1107894338);
emit_32(1110171661);
emit_32(3273152528);
emit_32(1107815222);
emit_32(1110171661);
emit_32(3272896545);
emit_32(1107886788);
emit_32(1110171661);
emit_32(3272640496);
emit_32(1107869984);
emit_32(1110171661);
emit_32(3272384512);
emit_32(1108048085);
emit_32(1110171661);
emit_32(3272128528);
emit_32(1108254890);
emit_32(1110171661);
emit_32(3271872545);
emit_32(1108213734);
emit_32(1110171661);
emit_32(3271616496);
emit_32(1108197324);
emit_32(1110171661);
emit_32(3271163904);
emit_32(1108442612);
emit_32(1110171661);
emit_32(3270651937);
emit_32(1108195515);
emit_32(1110171661);
emit_32(3270139970);
emit_32(1107913422);
emit_32(1110171661);
emit_32(3269627871);
emit_32(1108099754);
emit_32(1110171661);
emit_32(3269115904);
emit_32(1107690809);
emit_32(1110171661);
emit_32(3268603937);
emit_32(1107419726);
emit_32(1110171661);
emit_32(3268091970);
emit_32(1106916881);
emit_32(1110171661);
emit_32(3267579911);
emit_32(1106123581);
emit_32(1110171661);
emit_32(3267067904);
emit_32(1105152285);
emit_32(1110171661);
emit_32(3266555911);
emit_32(1104426985);
emit_32(1110171661);
emit_32(3266043904);
emit_32(1103754376);
emit_32(1110171661);
emit_32(3265531911);
emit_32(1102897113);
emit_32(1110171661);
emit_32(3265019904);
emit_32(1102036808);
emit_32(1110171661);
emit_32(3264507911);
emit_32(1100742237);
emit_32(1110171661);
emit_32(3263995904);
emit_32(1099863477);
emit_32(1110171661);
emit_32(3263483911);
emit_32(1099645950);
emit_32(1110171661);
emit_32(3262775296);
emit_32(1099481114);
emit_32(1110171661);
emit_32(3261751309);
emit_32(1098210135);
emit_32(1110171661);
emit_32(3260727296);
emit_32(1097645582);
emit_32(1110171661);
emit_32(3259703309);
emit_32(1097853619);
emit_32(1110171661);
emit_32(3258679296);
emit_32(1099526675);
emit_32(1110171661);
emit_32(3257655309);
emit_32(1100018090);
emit_32(1110171661);
emit_32(3256631296);
emit_32(1100522927);
emit_32(1110171661);
emit_32(3255607309);
emit_32(1100845993);
emit_32(1110171661);
emit_32(3254386688);
emit_32(1101870924);
emit_32(1110171661);
emit_32(3252338714);
emit_32(1102805362);
emit_32(1110171661);
emit_32(3250290688);
emit_32(1103401216);
emit_32(1110171661);
emit_32(3248242714);
emit_32(1103731255);
emit_32(1110171661);
emit_32(3245998080);
emit_32(1104590458);
emit_32(1110171661);
emit_32(3241902132);
emit_32(1105688946);
emit_32(1110171661);
emit_32(3237609472);
emit_32(1106199393);
emit_32(1110171661);
emit_32(3229220864);
emit_32(1106912477);
emit_32(1110171661);
emit_32(0);
emit_32(1106977279);
emit_32(1110171661);
emit_32(1081737216);
emit_32(1107240944);
emit_32(1110171661);
emit_32(3279552512);
emit_32(1082717131);
emit_32(1109147648);
emit_32(3279296528);
emit_32(1082557014);
emit_32(1109147648);
emit_32(3279040545);
emit_32(1081304070);
emit_32(1109147648);
emit_32(3278784496);
emit_32(1083792278);
emit_32(1109147648);
emit_32(3278528512);
emit_32(1085314873);
emit_32(1109147648);
emit_32(3278272528);
emit_32(1088245664);
emit_32(1109147648);
emit_32(3278016545);
emit_32(1090788797);
emit_32(1109147648);
emit_32(3277760496);
emit_32(1091410718);
emit_32(1109147648);
emit_32(3277504512);
emit_32(1092169803);
emit_32(1109147648);
emit_32(3277248528);
emit_32(1094073608);
emit_32(1109147648);
emit_32(3276992545);
emit_32(1095322147);
emit_32(1109147648);
emit_32(3276736496);
emit_32(1097073584);
emit_32(1109147648);
emit_32(3276480512);
emit_32(1097631321);
emit_32(1109147648);
emit_32(3276224528);
emit_32(1098886781);
emit_32(1109147648);
emit_32(3275968545);
emit_32(1099653448);
emit_32(1109147648);
emit_32(3275712496);
emit_32(1100796029);
emit_32(1109147648);
emit_32(3275456512);
emit_32(1102110786);
emit_32(1109147648);
emit_32(3275200528);
emit_32(1103014553);
emit_32(1109147648);
emit_32(3274944545);
emit_32(1103661420);
emit_32(1109147648);
emit_32(3274688496);
emit_32(1104730758);
emit_32(1109147648);
emit_32(3274432512);
emit_32(1105461248);
emit_32(1109147648);
emit_32(3274176528);
emit_32(1106228019);
emit_32(1109147648);
emit_32(3273920545);
emit_32(1107398361);
emit_32(1109147648);
emit_32(3273664496);
emit_32(1107773987);
emit_32(1109147648);
emit_32(3273408512);
emit_32(1107908336);
emit_32(1109147648);
emit_32(3273152528);
emit_32(1107942729);
emit_32(1109147648);
emit_32(3272896545);
emit_32(1108010231);
emit_32(1109147648);
emit_32(3272640496);
emit_32(1107850140);
emit_32(1109147648);
emit_32(3272384512);
emit_32(1108057339);
emit_32(1109147648);
emit_32(3272128528);
emit_32(1108245977);
emit_32(1109147648);
emit_32(3271872545);
emit_32(1108269937);
emit_32(1109147648);
emit_32(3271616496);
emit_32(1108532291);
emit_32(1109147648);
emit_32(3271163904);
emit_32(1108595809);
emit_32(1109147648);
emit_32(3270651937);
emit_32(1108363942);
emit_32(1109147648);
emit_32(3270139970);
emit_32(1108139599);
emit_32(1109147648);
emit_32(3269627871);
emit_32(1108065465);
emit_32(1109147648);
emit_32(3269115904);
emit_32(1107970150);
emit_32(1109147648);
emit_32(3268603937);
emit_32(1107690678);
emit_32(1109147648);
emit_32(3268091970);
emit_32(1106957042);
emit_32(1109147648);
emit_32(3267579911);
emit_32(1106262517);
emit_32(1109147648);
emit_32(3267067904);
emit_32(1105527937);
emit_32(1109147648);
emit_32(3266555911);
emit_32(1104380638);
emit_32(1109147648);
emit_32(3266043904);
emit_32(1103529719);
emit_32(1109147648);
emit_32(3265531911);
emit_32(1102593130);
emit_32(1109147648);
emit_32(3265019904);
emit_32(1101585816);
emit_32(1109147648);
emit_32(3264507911);
emit_32(1100545471);
emit_32(1109147648);
emit_32(3263995904);
emit_32(1100004144);
emit_32(1109147648);
emit_32(3263483911);
emit_32(1099601124);
emit_32(1109147648);
emit_32(3262775296);
emit_32(1099485518);
emit_32(1109147648);
emit_32(3261751309);
emit_32(1099132987);
emit_32(1109147648);
emit_32(3260727296);
emit_32(1098562037);
emit_32(1109147648);
emit_32(3259703309);
emit_32(1099204605);
emit_32(1109147648);
emit_32(3258679296);
emit_32(1100206834);
emit_32(1109147648);
emit_32(3257655309);
emit_32(1100697777);
emit_32(1109147648);
emit_32(3256631296);
emit_32(1100970774);
emit_32(1109147648);
emit_32(3255607309);
emit_32(1101185522);
emit_32(1109147648);
emit_32(3254386688);
emit_32(1102281336);
emit_32(1109147648);
emit_32(3252338714);
emit_32(1103401478);
emit_32(1109147648);
emit_32(3250290688);
emit_32(1103912763);
emit_32(1109147648);
emit_32(3248242714);
emit_32(1104404808);
emit_32(1109147648);
emit_32(3245998080);
emit_32(1105352196);
emit_32(1109147648);
emit_32(3241902132);
emit_32(1106248519);
emit_32(1109147648);
emit_32(3237609472);
emit_32(1107362631);
emit_32(1109147648);
emit_32(3229220864);
emit_32(1107724259);
emit_32(1109147648);
emit_32(0);
emit_32(1107777290);
emit_32(1109147648);
emit_32(1081737216);
emit_32(1108060956);
emit_32(1109147648);
emit_32(3279552512);
emit_32(1081790232);
emit_32(1108123661);
emit_32(3279296528);
emit_32(1079535290);
emit_32(1108123661);
emit_32(3279040545);
emit_32(1079065864);
emit_32(1108123661);
emit_32(3278784496);
emit_32(1082272577);
emit_32(1108123661);
emit_32(3278528512);
emit_32(1083963574);
emit_32(1108123661);
emit_32(3278272528);
emit_32(1087349677);
emit_32(1108123661);
emit_32(3278016545);
emit_32(1088785241);
emit_32(1108123661);
emit_32(3277760496);
emit_32(1090741705);
emit_32(1108123661);
emit_32(3277504512);
emit_32(1090749360);
emit_32(1108123661);
emit_32(3277248528);
emit_32(1093053448);
emit_32(1108123661);
emit_32(3276992545);
emit_32(1094660601);
emit_32(1108123661);
emit_32(3276736496);
emit_32(1096196555);
emit_32(1108123661);
emit_32(3276480512);
emit_32(1096902351);
emit_32(1108123661);
emit_32(3276224528);
emit_32(1098391434);
emit_32(1108123661);
emit_32(3275968545);
emit_32(1099380084);
emit_32(1108123661);
emit_32(3275712496);
emit_32(1101235225);
emit_32(1108123661);
emit_32(3275456512);
emit_32(1102578188);
emit_32(1108123661);
emit_32(3275200528);
emit_32(1103112385);
emit_32(1108123661);
emit_32(3274944545);
emit_32(1103997541);
emit_32(1108123661);
emit_32(3274688496);
emit_32(1104833046);
emit_32(1108123661);
emit_32(3274432512);
emit_32(1105701582);
emit_32(1108123661);
emit_32(3274176528);
emit_32(1106849458);
emit_32(1108123661);
emit_32(3273920545);
emit_32(1107522617);
emit_32(1108123661);
emit_32(3273664496);
emit_32(1107703025);
emit_32(1108123661);
emit_32(3273408512);
emit_32(1107971565);
emit_32(1108123661);
emit_32(3273152528);
emit_32(1107971565);
emit_32(1108123661);
emit_32(3272896545);
emit_32(1107873025);
emit_32(1108123661);
emit_32(3272640496);
emit_32(1108008685);
emit_32(1108123661);
emit_32(3272384512);
emit_32(1108230878);
emit_32(1108123661);
emit_32(3272128528);
emit_32(1108292220);
emit_32(1108123661);
emit_32(3271872545);
emit_32(1108636520);
emit_32(1108123661);
emit_32(3271616496);
emit_32(1108671909);
emit_32(1108123661);
emit_32(3271163904);
emit_32(1108573789);
emit_32(1108123661);
emit_32(3270651937);
emit_32(1108191583);
emit_32(1108123661);
emit_32(3270139970);
emit_32(1108044546);
emit_32(1108123661);
emit_32(3269627871);
emit_32(1108195856);
emit_32(1108123661);
emit_32(3269115904);
emit_32(1108061848);
emit_32(1108123661);
emit_32(3268603937);
emit_32(1107692487);
emit_32(1108123661);
emit_32(3268091970);
emit_32(1107358332);
emit_32(1108123661);
emit_32(3267579911);
emit_32(1106436476);
emit_32(1108123661);
emit_32(3267067904);
emit_32(1105876117);
emit_32(1108123661);
emit_32(3266555911);
emit_32(1104926002);
emit_32(1108123661);
emit_32(3266043904);
emit_32(1103527150);
emit_32(1108123661);
emit_32(3265531911);
emit_32(1102838969);
emit_32(1108123661);
emit_32(3265019904);
emit_32(1101768163);
emit_32(1108123661);
emit_32(3264507911);
emit_32(1100951952);
emit_32(1108123661);
emit_32(3263995904);
emit_32(1099817497);
emit_32(1108123661);
emit_32(3263483911);
emit_32(1099592683);
emit_32(1108123661);
emit_32(3262775296);
emit_32(1099523424);
emit_32(1108123661);
emit_32(3261751309);
emit_32(1099184734);
emit_32(1108123661);
emit_32(3260727296);
emit_32(1099580100);
emit_32(1108123661);
emit_32(3259703309);
emit_32(1100319870);
emit_32(1108123661);
emit_32(3258679296);
emit_32(1100702181);
emit_32(1108123661);
emit_32(3257655309);
emit_32(1101110811);
emit_32(1108123661);
emit_32(3256631296);
emit_32(1101752487);
emit_32(1108123661);
emit_32(3255607309);
emit_32(1101832074);
emit_32(1108123661);
emit_32(3254386688);
emit_32(1103107038);
emit_32(1108123661);
emit_32(3252338714);
emit_32(1103861173);
emit_32(1108123661);
emit_32(3250290688);
emit_32(1104152415);
emit_32(1108123661);
emit_32(3248242714);
emit_32(1104902672);
emit_32(1108123661);
emit_32(3245998080);
emit_32(1106376602);
emit_32(1108123661);
emit_32(3241902132);
emit_32(1107508593);
emit_32(1108123661);
emit_32(3237609472);
emit_32(1108028267);
emit_32(1108123661);
emit_32(3229220864);
emit_32(1108316180);
emit_32(1108123661);
emit_32(0);
emit_32(1108600553);
emit_32(1108123661);
emit_32(1081737216);
emit_32(1109011386);
emit_32(1108123661);
emit_32(3279552512);
emit_32(1074938711);
emit_32(1106903040);
emit_32(3279296528);
emit_32(1070708671);
emit_32(1106903040);
emit_32(3279040545);
emit_32(1075430996);
emit_32(1106903040);
emit_32(3278784496);
emit_32(1078754772);
emit_32(1106903040);
emit_32(3278528512);
emit_32(1082105015);
emit_32(1106903040);
emit_32(3278272528);
emit_32(1084220747);
emit_32(1106903040);
emit_32(3278016545);
emit_32(1085553718);
emit_32(1106903040);
emit_32(3277760496);
emit_32(1088135228);
emit_32(1106903040);
emit_32(3277504512);
emit_32(1089208635);
emit_32(1106903040);
emit_32(3277248528);
emit_32(1091931860);
emit_32(1106903040);
emit_32(3276992545);
emit_32(1094402336);
emit_32(1106903040);
emit_32(3276736496);
emit_32(1096213751);
emit_32(1106903040);
emit_32(3276480512);
emit_32(1097279629);
emit_32(1106903040);
emit_32(3276224528);
emit_32(1098783601);
emit_32(1106903040);
emit_32(3275968545);
emit_32(1099888067);
emit_32(1106903040);
emit_32(3275712496);
emit_32(1101525837);
emit_32(1106903040);
emit_32(3275456512);
emit_32(1102857267);
emit_32(1106903040);
emit_32(3275200528);
emit_32(1103317277);
emit_32(1106903040);
emit_32(3274944545);
emit_32(1104193048);
emit_32(1106903040);
emit_32(3274688496);
emit_32(1105188461);
emit_32(1106903040);
emit_32(3274432512);
emit_32(1105975732);
emit_32(1106903040);
emit_32(3274176528);
emit_32(1107142692);
emit_32(1106903040);
emit_32(3273920545);
emit_32(1107580315);
emit_32(1106903040);
emit_32(3273664496);
emit_32(1107715634);
emit_32(1106903040);
emit_32(3273408512);
emit_32(1107697441);
emit_32(1106903040);
emit_32(3273152528);
emit_32(1107818683);
emit_32(1106903040);
emit_32(3272896545);
emit_32(1108195331);
emit_32(1106903040);
emit_32(3272640496);
emit_32(1108463609);
emit_32(1106903040);
emit_32(3272384512);
emit_32(1108323782);
emit_32(1106903040);
emit_32(3272128528);
emit_32(1108524374);
emit_32(1106903040);
emit_32(3271872545);
emit_32(1108820912);
emit_32(1106903040);
emit_32(3271616496);
emit_32(1108768614);
emit_32(1106903040);
emit_32(3271163904);
emit_32(1108591929);
emit_32(1106903040);
emit_32(3270651937);
emit_32(1108250146);
emit_32(1106903040);
emit_32(3270139970);
emit_32(1108083370);
emit_32(1106903040);
emit_32(3269627871);
emit_32(1108183876);
emit_32(1106903040);
emit_32(3269115904);
emit_32(1107985354);
emit_32(1106903040);
emit_32(3268603937);
emit_32(1107793333);
emit_32(1106903040);
emit_32(3268091970);
emit_32(1107344595);
emit_32(1106903040);
emit_32(3267579911);
emit_32(1106660190);
emit_32(1106903040);
emit_32(3267067904);
emit_32(1105863377);
emit_32(1106903040);
emit_32(3266555911);
emit_32(1104810344);
emit_32(1106903040);
emit_32(3266043904);
emit_32(1103848328);
emit_32(1106903040);
emit_32(3265531911);
emit_32(1102592396);
emit_32(1106903040);
emit_32(3265019904);
emit_32(1101769893);
emit_32(1106903040);
emit_32(3264507911);
emit_32(1100719378);
emit_32(1106903040);
emit_32(3263995904);
emit_32(1100007709);
emit_32(1106903040);
emit_32(3263483911);
emit_32(1099495585);
emit_32(1106903040);
emit_32(3262775296);
emit_32(1099523739);
emit_32(1106903040);
emit_32(3261751309);
emit_32(1099506857);
emit_32(1106903040);
emit_32(3260727296);
emit_32(1100188693);
emit_32(1106903040);
emit_32(3259703309);
emit_32(1100974496);
emit_32(1106903040);
emit_32(3258679296);
emit_32(1101640447);
emit_32(1106903040);
emit_32(3257655309);
emit_32(1101639503);
emit_32(1106903040);
emit_32(3256631296);
emit_32(1102123945);
emit_32(1106903040);
emit_32(3255607309);
emit_32(1102739250);
emit_32(1106903040);
emit_32(3254386688);
emit_32(1103471260);
emit_32(1106903040);
emit_32(3252338714);
emit_32(1104291457);
emit_32(1106903040);
emit_32(3250290688);
emit_32(1104973241);
emit_32(1106903040);
emit_32(3248242714);
emit_32(1106462586);
emit_32(1106903040);
emit_32(3245998080);
emit_32(1107570275);
emit_32(1106903040);
emit_32(3241902132);
emit_32(1108078939);
emit_32(1106903040);
emit_32(3237609472);
emit_32(1108626034);
emit_32(1106903040);
emit_32(3229220864);
emit_32(1109189434);
emit_32(1106903040);
emit_32(0);
emit_32(1109489300);
emit_32(1106903040);
emit_32(1081737216);
emit_32(1109770397);
emit_32(1106903040);
emit_32(3279552512);
emit_32(1056202922);
emit_32(1104855066);
emit_32(3279296528);
emit_32(1059176634);
emit_32(1104855066);
emit_32(3279040545);
emit_32(1067152489);
emit_32(1104855066);
emit_32(3278784496);
emit_32(1069776361);
emit_32(1104855066);
emit_32(3278528512);
emit_32(1076809790);
emit_32(1104855066);
emit_32(3278272528);
emit_32(1080678154);
emit_32(1104855066);
emit_32(3278016545);
emit_32(1084300292);
emit_32(1104855066);
emit_32(3277760496);
emit_32(1086892330);
emit_32(1104855066);
emit_32(3277504512);
emit_32(1089616510);
emit_32(1104855066);
emit_32(3277248528);
emit_32(1092235758);
emit_32(1104855066);
emit_32(3276992545);
emit_32(1094086505);
emit_32(1104855066);
emit_32(3276736496);
emit_32(1095456260);
emit_32(1104855066);
emit_32(3276480512);
emit_32(1097209794);
emit_32(1104855066);
emit_32(3276224528);
emit_32(1098815478);
emit_32(1104855066);
emit_32(3275968545);
emit_32(1099901331);
emit_32(1104855066);
emit_32(3275712496);
emit_32(1101448138);
emit_32(1104855066);
emit_32(3275456512);
emit_32(1102457340);
emit_32(1104855066);
emit_32(3275200528);
emit_32(1103405724);
emit_32(1104855014);
emit_32(3274944545);
emit_32(1104703652);
emit_32(1104855066);
emit_32(3274688496);
emit_32(1105909409);
emit_32(1104855014);
emit_32(3274432512);
emit_32(1106485392);
emit_32(1104855066);
emit_32(3274176528);
emit_32(1107410708);
emit_32(1104855014);
emit_32(3273920545);
emit_32(1107950751);
emit_32(1104855066);
emit_32(3273664496);
emit_32(1108072569);
emit_32(1104855014);
emit_32(3273408512);
emit_32(1108067090);
emit_32(1104855066);
emit_32(3273152528);
emit_32(1108270514);
emit_32(1104855014);
emit_32(3272896545);
emit_32(1108617121);
emit_32(1104855066);
emit_32(3272640496);
emit_32(1108893604);
emit_32(1104855014);
emit_32(3272384512);
emit_32(1108708478);
emit_32(1104855066);
emit_32(3272128528);
emit_32(1108458498);
emit_32(1104855014);
emit_32(3271872545);
emit_32(1108616544);
emit_32(1104855066);
emit_32(3271616496);
emit_32(1108674898);
emit_32(1104855014);
emit_32(3271163904);
emit_32(1108489064);
emit_32(1104855066);
emit_32(3270651937);
emit_32(1108208884);
emit_32(1104855014);
emit_32(3270139970);
emit_32(1108168330);
emit_32(1104855066);
emit_32(3269627871);
emit_32(1107919032);
emit_32(1104855014);
emit_32(3269115904);
emit_32(1107884900);
emit_32(1104855066);
emit_32(3268603937);
emit_32(1107737995);
emit_32(1104855014);
emit_32(3268091970);
emit_32(1107388714);
emit_32(1104855066);
emit_32(3267579911);
emit_32(1106305876);
emit_32(1104855014);
emit_32(3267067904);
emit_32(1105456634);
emit_32(1104855066);
emit_32(3266555911);
emit_32(1104695683);
emit_32(1104855014);
emit_32(3266043904);
emit_32(1103610459);
emit_32(1104855066);
emit_32(3265531911);
emit_32(1102562093);
emit_32(1104855014);
emit_32(3265019904);
emit_32(1101922409);
emit_32(1104855066);
emit_32(3264507911);
emit_32(1100403809);
emit_32(1104855066);
emit_32(3263995904);
emit_32(1100079589);
emit_32(1104855066);
emit_32(3263483911);
emit_32(1100150630);
emit_32(1104855066);
emit_32(3262775296);
emit_32(1100309489);
emit_32(1104855066);
emit_32(3261751309);
emit_32(1100247676);
emit_32(1104855066);
emit_32(3260727296);
emit_32(1100564555);
emit_32(1104855066);
emit_32(3259703309);
emit_32(1101442528);
emit_32(1104855066);
emit_32(3258679296);
emit_32(1101848484);
emit_32(1104855066);
emit_32(3257655309);
emit_32(1102017567);
emit_32(1104855014);
emit_32(3256631296);
emit_32(1102603144);
emit_32(1104855066);
emit_32(3255607309);
emit_32(1103556772);
emit_32(1104855014);
emit_32(3254386688);
emit_32(1103988313);
emit_32(1104855066);
emit_32(3252338714);
emit_32(1105183113);
emit_32(1104855014);
emit_32(3250290688);
emit_32(1106410471);
emit_32(1104855066);
emit_32(3248242714);
emit_32(1107817844);
emit_32(1104855014);
emit_32(3245998080);
emit_32(1108265874);
emit_32(1104855066);
emit_32(3241902132);
emit_32(1108848489);
emit_32(1104855014);
emit_32(3237609472);
emit_32(1109428929);
emit_32(1104855066);
emit_32(3229220864);
emit_32(1109814464);
emit_32(1104855014);
emit_32(0);
emit_32(1109989261);
emit_32(1104855066);
emit_32(1081737216);
emit_32(1110109952);
emit_32(1104855014);
emit_32(3279552512);
emit_32(1043753825);
emit_32(1102807040);
emit_32(3279296528);
emit_32(1066019523);
emit_32(1102807040);
emit_32(3279040545);
emit_32(1069754970);
emit_32(1102807040);
emit_32(3278784496);
emit_32(1076201867);
emit_32(1102807040);
emit_32(3278528512);
emit_32(1080094139);
emit_32(1102807040);
emit_32(3278272528);
emit_32(1082614937);
emit_32(1102807040);
emit_32(3278016545);
emit_32(1085915917);
emit_32(1102807040);
emit_32(3277760496);
emit_32(1088968951);
emit_32(1102807040);
emit_32(3277504512);
emit_32(1091412437);
emit_32(1102807040);
emit_32(3277248528);
emit_32(1093562951);
emit_32(1102807040);
emit_32(3276992545);
emit_32(1095461818);
emit_32(1102807040);
emit_32(3276736496);
emit_32(1097780324);
emit_32(1102807040);
emit_32(3276480512);
emit_32(1098541276);
emit_32(1102807040);
emit_32(3276224528);
emit_32(1099184996);
emit_32(1102807040);
emit_32(3275968545);
emit_32(1099512414);
emit_32(1102807040);
emit_32(3275712496);
emit_32(1101300079);
emit_32(1102807040);
emit_32(3275456512);
emit_32(1102630565);
emit_32(1102807040);
emit_32(3275200528);
emit_32(1103513990);
emit_32(1102807040);
emit_32(3274944545);
emit_32(1104603251);
emit_32(1102807040);
emit_32(3274688496);
emit_32(1105499154);
emit_32(1102807040);
emit_32(3274432512);
emit_32(1106400667);
emit_32(1102807040);
emit_32(3274176528);
emit_32(1107499889);
emit_32(1102807040);
emit_32(3273920545);
emit_32(1107983047);
emit_32(1102807040);
emit_32(3273664496);
emit_32(1108263620);
emit_32(1102807040);
emit_32(3273408512);
emit_32(1108637542);
emit_32(1102807040);
emit_32(3273152528);
emit_32(1108628367);
emit_32(1102807040);
emit_32(3272896545);
emit_32(1108868989);
emit_32(1102807040);
emit_32(3272640496);
emit_32(1109049213);
emit_32(1102807040);
emit_32(3272384512);
emit_32(1108849748);
emit_32(1102807040);
emit_32(3272128528);
emit_32(1108540811);
emit_32(1102807040);
emit_32(3271872545);
emit_32(1108655184);
emit_32(1102807040);
emit_32(3271616496);
emit_32(1108572425);
emit_32(1102807040);
emit_32(3271163904);
emit_32(1108411810);
emit_32(1102807040);
emit_32(3270651937);
emit_32(1108042344);
emit_32(1102807040);
emit_32(3270139970);
emit_32(1107971460);
emit_32(1102807040);
emit_32(3269627871);
emit_32(1107793412);
emit_32(1102807040);
emit_32(3269115904);
emit_32(1107689131);
emit_32(1102807040);
emit_32(3268603937);
emit_32(1107563643);
emit_32(1102807040);
emit_32(3268091970);
emit_32(1107010152);
emit_32(1102807040);
emit_32(3267579911);
emit_32(1106032669);
emit_32(1102807040);
emit_32(3267067904);
emit_32(1105136609);
emit_32(1102807040);
emit_32(3266555911);
emit_32(1104406695);
emit_32(1102807040);
emit_32(3266043904);
emit_32(1103385749);
emit_32(1102807040);
emit_32(3265531911);
emit_32(1102373034);
emit_32(1102807040);
emit_32(3265019904);
emit_32(1101728317);
emit_32(1102807040);
emit_32(3264507911);
emit_32(1100615464);
emit_32(1102807040);
emit_32(3263995904);
emit_32(1100840278);
emit_32(1102807040);
emit_32(3263483911);
emit_32(1100652636);
emit_32(1102807040);
emit_32(3262775296);
emit_32(1101193963);
emit_32(1102807040);
emit_32(3261751309);
emit_32(1101527463);
emit_32(1102807040);
emit_32(3260727296);
emit_32(1101300761);
emit_32(1102807040);
emit_32(3259703309);
emit_32(1101861382);
emit_32(1102807040);
emit_32(3258679296);
emit_32(1102090338);
emit_32(1102807040);
emit_32(3257655309);
emit_32(1102730966);
emit_32(1102807040);
emit_32(3256631296);
emit_32(1103554255);
emit_32(1102807040);
emit_32(3255607309);
emit_32(1104113408);
emit_32(1102807040);
emit_32(3254386688);
emit_32(1104786647);
emit_32(1102807040);
emit_32(3252338714);
emit_32(1106105913);
emit_32(1102807040);
emit_32(3250290688);
emit_32(1107509877);
emit_32(1102807040);
emit_32(3248242714);
emit_32(1108222175);
emit_32(1102807040);
emit_32(3245998080);
emit_32(1108925324);
emit_32(1102807040);
emit_32(3241902132);
emit_32(1109456873);
emit_32(1102807040);
emit_32(3237609472);
emit_32(1109851609);
emit_32(1102807040);
emit_32(3229220864);
emit_32(1110277358);
emit_32(1102807040);
emit_32(0);
emit_32(1110377130);
emit_32(1102807040);
emit_32(1081737216);
emit_32(1110619796);
emit_32(1102807040);
emit_32(3279552512);
emit_32(1041074638);
emit_32(1100759066);
emit_32(3279296528);
emit_32(1068712015);
emit_32(1100759066);
emit_32(3279040545);
emit_32(1079048248);
emit_32(1100759066);
emit_32(3278784496);
emit_32(1080674002);
emit_32(1100759066);
emit_32(3278528512);
emit_32(1084030494);
emit_32(1100759066);
emit_32(3278272528);
emit_32(1086394970);
emit_32(1100759066);
emit_32(3278016545);
emit_32(1090514279);
emit_32(1100759066);
emit_32(3277760496);
emit_32(1092005166);
emit_32(1100759066);
emit_32(3277504512);
emit_32(1092661805);
emit_32(1100759066);
emit_32(3277248528);
emit_32(1094882479);
emit_32(1100759066);
emit_32(3276992545);
emit_32(1096495818);
emit_32(1100759066);
emit_32(3276736496);
emit_32(1098656304);
emit_32(1100759066);
emit_32(3276480512);
emit_32(1098988860);
emit_32(1100759066);
emit_32(3276224528);
emit_32(1099485466);
emit_32(1100759066);
emit_32(3275968545);
emit_32(1100054109);
emit_32(1100759066);
emit_32(3275712496);
emit_32(1101363203);
emit_32(1100759066);
emit_32(3275456512);
emit_32(1102623015);
emit_32(1100759014);
emit_32(3275200528);
emit_32(1103260025);
emit_32(1100759066);
emit_32(3274944545);
emit_32(1104497764);
emit_32(1100759014);
emit_32(3274688496);
emit_32(1105320739);
emit_32(1100759066);
emit_32(3274432512);
emit_32(1106586055);
emit_32(1100759014);
emit_32(3274176528);
emit_32(1107523640);
emit_32(1100759066);
emit_32(3273920545);
emit_32(1108105783);
emit_32(1100759014);
emit_32(3273664496);
emit_32(1108678148);
emit_32(1100759066);
emit_32(3273408512);
emit_32(1109027062);
emit_32(1100759014);
emit_32(3273152528);
emit_32(1108942022);
emit_32(1100759066);
emit_32(3272896545);
emit_32(1108995290);
emit_32(1100759014);
emit_32(3272640496);
emit_32(1108955129);
emit_32(1100759066);
emit_32(3272384512);
emit_32(1108906895);
emit_32(1100759014);
emit_32(3272128528);
emit_32(1108765993);
emit_32(1100759014);
emit_32(3271872545);
emit_32(1108661948);
emit_32(1100759014);
emit_32(3271616496);
emit_32(1108494097);
emit_32(1100759014);
emit_32(3271163904);
emit_32(1108408166);
emit_32(1100759014);
emit_32(3270651937);
emit_32(1107959611);
emit_32(1100759014);
emit_32(3270139970);
emit_32(1107654974);
emit_32(1100759014);
emit_32(3269627871);
emit_32(1107500859);
emit_32(1100759014);
emit_32(3269115904);
emit_32(1107220916);
emit_32(1100759014);
emit_32(3268603937);
emit_32(1106950121);
emit_32(1100759014);
emit_32(3268091970);
emit_32(1106110684);
emit_32(1100759014);
emit_32(3267579911);
emit_32(1105572449);
emit_32(1100759014);
emit_32(3267067904);
emit_32(1105141642);
emit_32(1100759014);
emit_32(3266555911);
emit_32(1104163950);
emit_32(1100759014);
emit_32(3266043904);
emit_32(1103388685);
emit_32(1100759014);
emit_32(3265531911);
emit_32(1102762790);
emit_32(1100759014);
emit_32(3265019904);
emit_32(1101771361);
emit_32(1100759066);
emit_32(3264507911);
emit_32(1101188668);
emit_32(1100759066);
emit_32(3263995904);
emit_32(1101103314);
emit_32(1100759066);
emit_32(3263483911);
emit_32(1101520595);
emit_32(1100759066);
emit_32(3262775296);
emit_32(1102173438);
emit_32(1100759014);
emit_32(3261751309);
emit_32(1102239498);
emit_32(1100759014);
emit_32(3260727296);
emit_32(1102454928);
emit_32(1100759014);
emit_32(3259703309);
emit_32(1102538762);
emit_32(1100759014);
emit_32(3258679296);
emit_32(1102868120);
emit_32(1100759014);
emit_32(3257655309);
emit_32(1103304380);
emit_32(1100759014);
emit_32(3256631296);
emit_32(1103894256);
emit_32(1100759014);
emit_32(3255607309);
emit_32(1104606187);
emit_32(1100759014);
emit_32(3254386688);
emit_32(1105706615);
emit_32(1100759014);
emit_32(3252338714);
emit_32(1106778469);
emit_32(1100759014);
emit_32(3250290688);
emit_32(1108039618);
emit_32(1100759014);
emit_32(3248242714);
emit_32(1108668894);
emit_32(1100759014);
emit_32(3245998080);
emit_32(1109286558);
emit_32(1100759014);
emit_32(3241902132);
emit_32(1109804738);
emit_32(1100759014);
emit_32(3237609472);
emit_32(1110243829);
emit_32(1100759014);
emit_32(3229220864);
emit_32(1110734746);
emit_32(1100759014);
emit_32(0);
emit_32(1110902178);
emit_32(1100759014);
emit_32(1081737216);
emit_32(1111203643);
emit_32(1100759014);
emit_32(3279552512);
emit_32(1055720947);
emit_32(1098514432);
emit_32(3279296528);
emit_32(1074391480);
emit_32(1098514432);
emit_32(3279040545);
emit_32(1080839929);
emit_32(1098514432);
emit_32(3278784496);
emit_32(1084004468);
emit_32(1098514432);
emit_32(3278528512);
emit_32(1088331836);
emit_32(1098514432);
emit_32(3278272528);
emit_32(1090916618);
emit_32(1098514432);
emit_32(3278016545);
emit_32(1091793217);
emit_32(1098514432);
emit_32(3277760496);
emit_32(1092681623);
emit_32(1098514432);
emit_32(3277504512);
emit_32(1094343931);
emit_32(1098514432);
emit_32(3277248528);
emit_32(1096031404);
emit_32(1098514432);
emit_32(3276992545);
emit_32(1097722652);
emit_32(1098514432);
emit_32(3276736496);
emit_32(1098892129);
emit_32(1098514432);
emit_32(3276480512);
emit_32(1099445043);
emit_32(1098514432);
emit_32(3276224528);
emit_32(1099878158);
emit_32(1098514432);
emit_32(3275968545);
emit_32(1101192548);
emit_32(1098514432);
emit_32(3275712496);
emit_32(1102096839);
emit_32(1098514432);
emit_32(3275456512);
emit_32(1103322992);
emit_32(1098514432);
emit_32(3275200528);
emit_32(1103921152);
emit_32(1098514432);
emit_32(3274944545);
emit_32(1104725200);
emit_32(1098514432);
emit_32(3274688496);
emit_32(1106297907);
emit_32(1098514432);
emit_32(3274432512);
emit_32(1107190193);
emit_32(1098514432);
emit_32(3274176528);
emit_32(1108005172);
emit_32(1098514432);
emit_32(3273920545);
emit_32(1108650361);
emit_32(1098514432);
emit_32(3273664496);
emit_32(1108785837);
emit_32(1098514432);
emit_32(3273408512);
emit_32(1108769610);
emit_32(1098514432);
emit_32(3273152528);
emit_32(1108817661);
emit_32(1098514432);
emit_32(3272896545);
emit_32(1108831240);
emit_32(1098514432);
emit_32(3272640496);
emit_32(1108859630);
emit_32(1098514432);
emit_32(3272384512);
emit_32(1108733356);
emit_32(1098514432);
emit_32(3272128528);
emit_32(1108612271);
emit_32(1098514432);
emit_32(3271872545);
emit_32(1108465523);
emit_32(1098514432);
emit_32(3271616496);
emit_32(1108386120);
emit_32(1098514432);
emit_32(3271163904);
emit_32(1108193260);
emit_32(1098514432);
emit_32(3270651937);
emit_32(1107694767);
emit_32(1098514432);
emit_32(3270139970);
emit_32(1107326665);
emit_32(1098514432);
emit_32(3269627871);
emit_32(1106737994);
emit_32(1098514432);
emit_32(3269115904);
emit_32(1106158394);
emit_32(1098514432);
emit_32(3268603937);
emit_32(1106202906);
emit_32(1098514432);
emit_32(3268091970);
emit_32(1105578951);
emit_32(1098514432);
emit_32(3267579911);
emit_32(1105052566);
emit_32(1098514432);
emit_32(3267067904);
emit_32(1104895908);
emit_32(1098514432);
emit_32(3266555911);
emit_32(1104074873);
emit_32(1098514432);
emit_32(3266043904);
emit_32(1103133881);
emit_32(1098514432);
emit_32(3265531911);
emit_32(1102465938);
emit_32(1098514432);
emit_32(3265019904);
emit_32(1101262907);
emit_32(1098514432);
emit_32(3264507911);
emit_32(1101530399);
emit_32(1098514432);
emit_32(3263995904);
emit_32(1101685588);
emit_32(1098514432);
emit_32(3263483911);
emit_32(1102353111);
emit_32(1098514432);
emit_32(3262775296);
emit_32(1102607496);
emit_32(1098514432);
emit_32(3261751309);
emit_32(1102688970);
emit_32(1098514432);
emit_32(3260727296);
emit_32(1103199522);
emit_32(1098514432);
emit_32(3259703309);
emit_32(1103396916);
emit_32(1098514432);
emit_32(3258679296);
emit_32(1103692248);
emit_32(1098514432);
emit_32(3257655309);
emit_32(1104150266);
emit_32(1098514432);
emit_32(3256631296);
emit_32(1104605715);
emit_32(1098514432);
emit_32(3255607309);
emit_32(1105125337);
emit_32(1098514432);
emit_32(3254386688);
emit_32(1106191267);
emit_32(1098514432);
emit_32(3252338714);
emit_32(1107529407);
emit_32(1098514432);
emit_32(3250290688);
emit_32(1108420880);
emit_32(1098514432);
emit_32(3248242714);
emit_32(1108934001);
emit_32(1098514432);
emit_32(3245998080);
emit_32(1109548859);
emit_32(1098514432);
emit_32(3241902132);
emit_32(1109995631);
emit_32(1098514432);
emit_32(3237609472);
emit_32(1110790845);
emit_32(1098514432);
emit_32(3229220864);
emit_32(1111318856);
emit_32(1098514432);
emit_32(0);
emit_32(1111747671);
emit_32(1098514432);
emit_32(1081737216);
emit_32(1111812866);
emit_32(1098514432);
emit_32(3279552512);
emit_32(1066749584);
emit_32(1094418484);
emit_32(3279296528);
emit_32(1077908068);
emit_32(1094418484);
emit_32(3279040545);
emit_32(1082923764);
emit_32(1094418484);
emit_32(3278784496);
emit_32(1084680422);
emit_32(1094418484);
emit_32(3278528512);
emit_32(1088094187);
emit_32(1094418484);
emit_32(3278272528);
emit_32(1090882015);
emit_32(1094418484);
emit_32(3278016545);
emit_32(1091863944);
emit_32(1094418484);
emit_32(3277760496);
emit_32(1092512425);
emit_32(1094418484);
emit_32(3277504512);
emit_32(1093582035);
emit_32(1094418380);
emit_32(3277248528);
emit_32(1096483445);
emit_32(1094418380);
emit_32(3276992545);
emit_32(1098671194);
emit_32(1094418380);
emit_32(3276736496);
emit_32(1099029545);
emit_32(1094418380);
emit_32(3276480512);
emit_32(1099564319);
emit_32(1094418380);
emit_32(3276224528);
emit_32(1100538603);
emit_32(1094418380);
emit_32(3275968545);
emit_32(1101777758);
emit_32(1094418380);
emit_32(3275712496);
emit_32(1103112962);
emit_32(1094418380);
emit_32(3275456512);
emit_32(1104081112);
emit_32(1094418380);
emit_32(3275200528);
emit_32(1104685826);
emit_32(1094418380);
emit_32(3274944545);
emit_32(1105332273);
emit_32(1094418380);
emit_32(3274688496);
emit_32(1107088428);
emit_32(1094418380);
emit_32(3274432512);
emit_32(1107461145);
emit_32(1094418380);
emit_32(3274176528);
emit_32(1108070262);
emit_32(1094418380);
emit_32(3273920545);
emit_32(1108560734);
emit_32(1094418380);
emit_32(3273664496);
emit_32(1108646822);
emit_32(1094418380);
emit_32(3273408512);
emit_32(1108781538);
emit_32(1094418380);
emit_32(3273152528);
emit_32(1108714507);
emit_32(1094418380);
emit_32(3272896545);
emit_32(1108628105);
emit_32(1094418380);
emit_32(3272640496);
emit_32(1108772101);
emit_32(1094418380);
emit_32(3272384512);
emit_32(1108535384);
emit_32(1094418380);
emit_32(3272128528);
emit_32(1108471736);
emit_32(1094418380);
emit_32(3271872545);
emit_32(1108149718);
emit_32(1094418380);
emit_32(3271616496);
emit_32(1108005775);
emit_32(1094418380);
emit_32(3271163904);
emit_32(1107845369);
emit_32(1094418380);
emit_32(3270651937);
emit_32(1107488748);
emit_32(1094418380);
emit_32(3270139970);
emit_32(1107065831);
emit_32(1094418380);
emit_32(3269627871);
emit_32(1106640477);
emit_32(1094418380);
emit_32(3269115904);
emit_32(1106331986);
emit_32(1094418380);
emit_32(3268603937);
emit_32(1106202801);
emit_32(1094418380);
emit_32(3268091970);
emit_32(1105489140);
emit_32(1094418380);
emit_32(3267579911);
emit_32(1104258059);
emit_32(1094418380);
emit_32(3267067904);
emit_32(1104173177);
emit_32(1094418380);
emit_32(3266555911);
emit_32(1103722237);
emit_32(1094418380);
emit_32(3266043904);
emit_32(1102993687);
emit_32(1094418380);
emit_32(3265531911);
emit_32(1102417861);
emit_32(1094418380);
emit_32(3265019904);
emit_32(1102043519);
emit_32(1094418380);
emit_32(3264507911);
emit_32(1102232840);
emit_32(1094418380);
emit_32(3263995904);
emit_32(1102313370);
emit_32(1094418380);
emit_32(3263483911);
emit_32(1102548199);
emit_32(1094418380);
emit_32(3262775296);
emit_32(1102923222);
emit_32(1094418380);
emit_32(3261751309);
emit_32(1103187621);
emit_32(1094418380);
emit_32(3260727296);
emit_32(1103562329);
emit_32(1094418380);
emit_32(3259703309);
emit_32(1103808220);
emit_32(1094418380);
emit_32(3258679296);
emit_32(1104024646);
emit_32(1094418380);
emit_32(3257655309);
emit_32(1104470344);
emit_32(1094418380);
emit_32(3256631296);
emit_32(1104938690);
emit_32(1094418380);
emit_32(3255607309);
emit_32(1105867624);
emit_32(1094418380);
emit_32(3254386688);
emit_32(1107251534);
emit_32(1094418380);
emit_32(3252338714);
emit_32(1107872029);
emit_32(1094418380);
emit_32(3250290688);
emit_32(1108547574);
emit_32(1094418380);
emit_32(3248242714);
emit_32(1109195253);
emit_32(1094418380);
emit_32(3245998080);
emit_32(1109741247);
emit_32(1094418380);
emit_32(3241902132);
emit_32(1110512291);
emit_32(1094418380);
emit_32(3237609472);
emit_32(1111292851);
emit_32(1094418380);
emit_32(3229220864);
emit_32(1111810349);
emit_32(1094418380);
emit_32(0);
emit_32(1112081590);
emit_32(1094418380);
emit_32(1081737216);
emit_32(1112309314);
emit_32(1094418380);
emit_32(3279552512);
emit_32(1069773845);
emit_32(1090125824);
emit_32(3279296528);
emit_32(1077819820);
emit_32(1090125824);
emit_32(3279040545);
emit_32(1081179122);
emit_32(1090125824);
emit_32(3278784496);
emit_32(1083831117);
emit_32(1090125824);
emit_32(3278528512);
emit_32(1086208512);
emit_32(1090125824);
emit_32(3278272528);
emit_32(1089372988);
emit_32(1090125824);
emit_32(3278016545);
emit_32(1091534376);
emit_32(1090125824);
emit_32(3277760496);
emit_32(1091959238);
emit_32(1090125824);
emit_32(3277504512);
emit_32(1093016538);
emit_32(1090125824);
emit_32(3277248528);
emit_32(1095828190);
emit_32(1090125824);
emit_32(3276992545);
emit_32(1098471021);
emit_32(1090125824);
emit_32(3276736496);
emit_32(1099512257);
emit_32(1090125824);
emit_32(3276480512);
emit_32(1100641206);
emit_32(1090125824);
emit_32(3276224528);
emit_32(1101920207);
emit_32(1090125824);
emit_32(3275968545);
emit_32(1102579027);
emit_32(1090125824);
emit_32(3275712496);
emit_32(1103724596);
emit_32(1090125824);
emit_32(3275456512);
emit_32(1104932294);
emit_32(1090125824);
emit_32(3275200528);
emit_32(1105540415);
emit_32(1090125824);
emit_32(3274944545);
emit_32(1105706877);
emit_32(1090125824);
emit_32(3274688496);
emit_32(1106838815);
emit_32(1090125824);
emit_32(3274432512);
emit_32(1107416056);
emit_32(1090125824);
emit_32(3274176528);
emit_32(1107934210);
emit_32(1090125824);
emit_32(3273920545);
emit_32(1108321868);
emit_32(1090125824);
emit_32(3273664496);
emit_32(1108477949);
emit_32(1090125824);
emit_32(3273408512);
emit_32(1108606950);
emit_32(1090125824);
emit_32(3273152528);
emit_32(1108594314);
emit_32(1090125824);
emit_32(3272896545);
emit_32(1108861596);
emit_32(1090125824);
emit_32(3272640496);
emit_32(1108850508);
emit_32(1090125824);
emit_32(3272384512);
emit_32(1108746804);
emit_32(1090125824);
emit_32(3272128528);
emit_32(1108418180);
emit_32(1090125824);
emit_32(3271872545);
emit_32(1108132600);
emit_32(1090125824);
emit_32(3271616496);
emit_32(1107751233);
emit_32(1090125824);
emit_32(3271163904);
emit_32(1107845920);
emit_32(1090125824);
emit_32(3270651937);
emit_32(1107711440);
emit_32(1090125824);
emit_32(3270139970);
emit_32(1107541911);
emit_32(1090125824);
emit_32(3269627871);
emit_32(1107305510);
emit_32(1090125824);
emit_32(3269115904);
emit_32(1107014346);
emit_32(1090125824);
emit_32(3268603937);
emit_32(1106519471);
emit_32(1090125824);
emit_32(3268091970);
emit_32(1105586867);
emit_32(1090125824);
emit_32(3267579911);
emit_32(1104817160);
emit_32(1090125824);
emit_32(3267067904);
emit_32(1104215645);
emit_32(1090125824);
emit_32(3266555911);
emit_32(1103400324);
emit_32(1090125824);
emit_32(3266043904);
emit_32(1103065776);
emit_32(1090125824);
emit_32(3265531911);
emit_32(1102978377);
emit_32(1090125824);
emit_32(3265019904);
emit_32(1102293919);
emit_32(1090125824);
emit_32(3264507911);
emit_32(1102336229);
emit_32(1090125824);
emit_32(3263995904);
emit_32(1102542117);
emit_32(1090125824);
emit_32(3263483911);
emit_32(1102806306);
emit_32(1090125824);
emit_32(3262775296);
emit_32(1103245240);
emit_32(1090125824);
emit_32(3261751309);
emit_32(1103200151);
emit_32(1090125824);
emit_32(3260727296);
emit_32(1103241727);
emit_32(1090125824);
emit_32(3259703309);
emit_32(1103758465);
emit_32(1090125824);
emit_32(3258679296);
emit_32(1104333714);
emit_32(1090125824);
emit_32(3257655309);
emit_32(1104589095);
emit_32(1090125824);
emit_32(3256631296);
emit_32(1104963961);
emit_32(1090125824);
emit_32(3255607309);
emit_32(1106480516);
emit_32(1090125824);
emit_32(3254386688);
emit_32(1107703811);
emit_32(1090125824);
emit_32(3252338714);
emit_32(1108381768);
emit_32(1090125824);
emit_32(3250290688);
emit_32(1108898034);
emit_32(1090125824);
emit_32(3248242714);
emit_32(1109345462);
emit_32(1090125824);
emit_32(3245998080);
emit_32(1109947738);
emit_32(1090125824);
emit_32(3241902132);
emit_32(1110798578);
emit_32(1090125824);
emit_32(3237609472);
emit_32(1111401483);
emit_32(1090125824);
emit_32(3229220864);
emit_32(1112005149);
emit_32(1090125824);
emit_32(0);
emit_32(1112489827);
emit_32(1090125824);
emit_32(1081737216);
emit_32(1112605380);
emit_32(1090125824);
emit_32(3279552512);
emit_32(1041185636);
emit_32(1081737216);
emit_32(3279296528);
emit_32(1071476480);
emit_32(1081737216);
emit_32(3279040545);
emit_32(1076263523);
emit_32(1081737216);
emit_32(3278784496);
emit_32(1082158660);
emit_32(1081737216);
emit_32(3278528512);
emit_32(1084513929);
emit_32(1081737216);
emit_32(3278272528);
emit_32(1087785717);
emit_32(1081737216);
emit_32(3278016545);
emit_32(1090972056);
emit_32(1081737216);
emit_32(3277760496);
emit_32(1092442569);
emit_32(1081737216);
emit_32(3277504512);
emit_32(1094046974);
emit_32(1081737216);
emit_32(3277248528);
emit_32(1097043280);
emit_32(1081737216);
emit_32(3276992545);
emit_32(1098999818);
emit_32(1081737216);
emit_32(3276736496);
emit_32(1100434742);
emit_32(1081737216);
emit_32(3276480512);
emit_32(1101659007);
emit_32(1081737216);
emit_32(3276224528);
emit_32(1102608545);
emit_32(1081737216);
emit_32(3275968545);
emit_32(1103417836);
emit_32(1081737216);
emit_32(3275712496);
emit_32(1104053168);
emit_32(1081737216);
emit_32(3275456512);
emit_32(1104973450);
emit_32(1081737216);
emit_32(3275200528);
emit_32(1105837477);
emit_32(1081737216);
emit_32(3274944545);
emit_32(1106081743);
emit_32(1081737216);
emit_32(3274688496);
emit_32(1106636492);
emit_32(1081737216);
emit_32(3274432512);
emit_32(1107002917);
emit_32(1081737216);
emit_32(3274176528);
emit_32(1107580184);
emit_32(1081737216);
emit_32(3273920545);
emit_32(1107983729);
emit_32(1081737216);
emit_32(3273664496);
emit_32(1108213550);
emit_32(1081737216);
emit_32(3273408512);
emit_32(1108715137);
emit_32(1081737216);
emit_32(3273152528);
emit_32(1108987871);
emit_32(1081737216);
emit_32(3272896545);
emit_32(1109130582);
emit_32(1081737216);
emit_32(3272640496);
emit_32(1109075454);
emit_32(1081737216);
emit_32(3272384512);
emit_32(1108764813);
emit_32(1081737216);
emit_32(3272128528);
emit_32(1108391939);
emit_32(1081737216);
emit_32(3271872545);
emit_32(1108080224);
emit_32(1081737216);
emit_32(3271616496);
emit_32(1107854728);
emit_32(1081737216);
emit_32(3271163904);
emit_32(1107912740);
emit_32(1081737216);
emit_32(3270651937);
emit_32(1107731730);
emit_32(1081737216);
emit_32(3270139970);
emit_32(1107480989);
emit_32(1081737216);
emit_32(3269627871);
emit_32(1107400013);
emit_32(1081737216);
emit_32(3269115904);
emit_32(1106814855);
emit_32(1081737216);
emit_32(3268603937);
emit_32(1106747641);
emit_32(1081737216);
emit_32(3268091970);
emit_32(1106153570);
emit_32(1081737216);
emit_32(3267579911);
emit_32(1105450553);
emit_32(1081737216);
emit_32(3267067904);
emit_32(1105015289);
emit_32(1081737216);
emit_32(3266555911);
emit_32(1103926185);
emit_32(1081737216);
emit_32(3266043904);
emit_32(1103220965);
emit_32(1081737216);
emit_32(3265531911);
emit_32(1102714556);
emit_32(1081737216);
emit_32(3265019904);
emit_32(1102293972);
emit_32(1081737216);
emit_32(3264507911);
emit_32(1102696206);
emit_32(1081737216);
emit_32(3263995904);
emit_32(1102841119);
emit_32(1081737216);
emit_32(3263483911);
emit_32(1102940104);
emit_32(1081737216);
emit_32(3262775296);
emit_32(1103457681);
emit_32(1081737216);
emit_32(3261751309);
emit_32(1103885553);
emit_32(1081737216);
emit_32(3260727296);
emit_32(1104135953);
emit_32(1081737216);
emit_32(3259703309);
emit_32(1104254180);
emit_32(1081737216);
emit_32(3258679296);
emit_32(1104598218);
emit_32(1081737216);
emit_32(3257655309);
emit_32(1105055869);
emit_32(1081737216);
emit_32(3256631296);
emit_32(1105830661);
emit_32(1081737216);
emit_32(3255607309);
emit_32(1107186156);
emit_32(1081737216);
emit_32(3254386688);
emit_32(1107890222);
emit_32(1081737216);
emit_32(3252338714);
emit_32(1108342578);
emit_32(1081737216);
emit_32(3250290688);
emit_32(1108968106);
emit_32(1081737216);
emit_32(3248242714);
emit_32(1109363314);
emit_32(1081737216);
emit_32(3245998080);
emit_32(1110217982);
emit_32(1081737216);
emit_32(3241902132);
emit_32(1110836747);
emit_32(1081737216);
emit_32(3237609472);
emit_32(1111340011);
emit_32(1081737216);
emit_32(3229220864);
emit_32(1111989472);
emit_32(1081737216);
emit_32(0);
emit_32(1112547577);
emit_32(1081737216);
emit_32(1081737216);
emit_32(1112701298);
emit_32(1081737216);
emit_start(_ZTIN16btCollisionWorld17RayResultCallbackE)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSN16btCollisionWorld17RayResultCallbackE);
emit_start(_ZTSN16btCollisionWorld17RayResultCallbackE)
emit_string('N16btCollisionWorld17RayResultCallbackE\x00');
emit_start(_ZTVN16btCollisionWorld24ClosestRayResultCallbackE)
emit_32(0);
emit_32(_ZTIN16btCollisionWorld24ClosestRayResultCallbackE);
emit_32(_ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev__index__);
emit_32(_ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev__index__);
emit_32(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
emit_32(_ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb__index__);
emit_start(_ZTIN16btCollisionWorld24ClosestRayResultCallbackE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN16btCollisionWorld24ClosestRayResultCallbackE);
emit_32(_ZTIN16btCollisionWorld17RayResultCallbackE);
emit_start(_ZTSN16btCollisionWorld24ClosestRayResultCallbackE)
emit_string('N16btCollisionWorld24ClosestRayResultCallbackE\x00');
emit_start(_ZTI13btMotionState)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS13btMotionState);
emit_start(_ZTS13btMotionState)
emit_string('13btMotionState\x00');
emit_start(_ZTV20btDefaultMotionState)
emit_32(0);
emit_32(_ZTI20btDefaultMotionState);
emit_32(_ZN20btDefaultMotionStateD1Ev__index__);
emit_32(_ZN20btDefaultMotionStateD0Ev__index__);
emit_32(_ZNK20btDefaultMotionState17getWorldTransformER11btTransform__index__);
emit_32(_ZN20btDefaultMotionState17setWorldTransformERK11btTransform__index__);
emit_start(_ZTI20btDefaultMotionState)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS20btDefaultMotionState);
emit_32(_ZTI13btMotionState);
emit_start(_ZTS20btDefaultMotionState)
emit_string('20btDefaultMotionState\x00');
emit_start(_ZTI17btTypedConstraint)
emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8);
emit_32(_ZTS17btTypedConstraint);
emit_32(0);
emit_32(1);
emit_32(_ZTI13btTypedObject);
emit_32(1026);
emit_start(_ZTS17btTypedConstraint)
emit_string('17btTypedConstraint\x00');
emit_start(_ZTI13btTypedObject)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS13btTypedObject);
emit_start(_ZTS13btTypedObject)
emit_string('13btTypedObject\x00');
emit_start(_ZTV7RagDoll)
emit_32(0);
emit_32(_ZTI7RagDoll);
emit_32(_ZN7RagDollD1Ev__index__);
emit_32(_ZN7RagDollD0Ev__index__);
emit_start(_ZTI7RagDoll)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS7RagDoll);
emit_start(_ZTS7RagDoll)
emit_string('7RagDoll\x00');
emit_start(_ZTV13BenchmarkDemo)
emit_32(0);
emit_32(_ZTI13BenchmarkDemo);
emit_32(_ZN15DemoApplication6myinitEv__index__);
emit_32(_ZN15DemoApplication16getDynamicsWorldEv__index__);
emit_32(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__);
emit_32(_ZN13BenchmarkDemoD1Ev__index__);
emit_32(_ZN13BenchmarkDemoD0Ev__index__);
emit_32(_ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__);
emit_32(_ZN13BenchmarkDemo15displayCallbackEv__index__);
emit_start(_ZTI13BenchmarkDemo)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS13BenchmarkDemo);
emit_32(_ZTI15DemoApplication);
emit_start(_ZTS13BenchmarkDemo)
emit_string('13BenchmarkDemo\x00');
emit_start(_ZTI15DemoApplication)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS15DemoApplication);
emit_start(_ZTS15DemoApplication)
emit_string('15DemoApplication\x00');
emit_start(_2E_str3)
emit_string('rayResult.m_hitFraction <= m_closestHitFraction\x00');
emit_start(_2E_str4)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionWorld.h\x00');
emit_start(_2E_str5)
emit_string('(!shape || shape->getShapeType() != INVALID_SHAPE_PROXYTYPE)\x00');
emit_start(_2E_str6)
emit_string('../../../../Demos/BenchmarkDemo/BenchmarkDemo.cpp\x00');
emit_start(_2E_str7)
emit_string('%d rays in %d ms %d %d %f\x0a\x00');
emit_start(_ZL7TaruVtx)
emit_32(1066080005);
emit_32(3221161467);
emit_32(0);
emit_32(1061467093);
emit_32(3221161467);
emit_32(3208950741);
emit_32(1067773497);
emit_32(873485028);
emit_32(3215257145);
emit_32(1072250665);
emit_32(877448406);
emit_32(0);
emit_32(0);
emit_32(3221161467);
emit_32(3213563653);
emit_32(0);
emit_32(0);
emit_32(3219734313);
emit_32(0);
emit_32(3221161467);
emit_32(3213563653);
emit_32(3208950741);
emit_32(3221161467);
emit_32(3208950741);
emit_32(3215257145);
emit_32(873485028);
emit_32(3215257145);
emit_32(0);
emit_32(0);
emit_32(3219734313);
emit_32(3213563653);
emit_32(3221161467);
emit_32(876839787);
emit_32(3219734313);
emit_32(877448406);
emit_32(875236717);
emit_32(3208950741);
emit_32(3221161467);
emit_32(1061467109);
emit_32(3215257145);
emit_32(881107813);
emit_32(1067773497);
emit_32(874053818);
emit_32(3221161467);
emit_32(1066080005);
emit_32(880822819);
emit_32(881928664);
emit_32(1072250665);
emit_32(1061467093);
emit_32(3221161467);
emit_32(1061467093);
emit_32(1067773497);
emit_32(881107813);
emit_32(1067773497);
emit_32(1061467093);
emit_32(1073677819);
emit_32(3208950741);
emit_32(1066080005);
emit_32(1073677819);
emit_32(0);
emit_32(0);
emit_32(1073677819);
emit_32(3213563653);
emit_32(3208950741);
emit_32(1073677819);
emit_32(3208950741);
emit_32(0);
emit_32(1073677819);
emit_32(3213563653);
emit_32(3213563653);
emit_32(1073677819);
emit_32(0);
emit_32(3208950741);
emit_32(1073677819);
emit_32(1061467093);
emit_32(874053818);
emit_32(1073677819);
emit_32(1066080005);
emit_32(1061467093);
emit_32(1073677819);
emit_32(1061467093);
emit_32(874053818);
emit_32(3221161467);
emit_32(1066080005);
emit_32(3208950741);
emit_32(3221161467);
emit_32(1061467109);
emit_32(3213563653);
emit_32(3221161467);
emit_32(876839787);
emit_32(3208950741);
emit_32(3221161467);
emit_32(3208950741);
emit_32(0);
emit_32(3221161467);
emit_32(3213563653);
emit_32(1061467093);
emit_32(3221161467);
emit_32(3208950741);
emit_32(1066080005);
emit_32(3221161467);
emit_32(0);
emit_32(1061467093);
emit_32(3221161467);
emit_32(1061467093);
emit_32(1061467093);
emit_32(1073677819);
emit_32(3208950741);
emit_32(0);
emit_32(1073677819);
emit_32(3213563653);
emit_32(3208950741);
emit_32(1073677819);
emit_32(3208950741);
emit_32(3213563653);
emit_32(1073677819);
emit_32(0);
emit_32(3208950741);
emit_32(1073677819);
emit_32(1061467093);
emit_32(874053818);
emit_32(1073677819);
emit_32(1066080005);
emit_32(1061467093);
emit_32(1073677819);
emit_32(1061467093);
emit_32(1066080005);
emit_32(1073677819);
emit_32(0);
emit_start(LandscapeVtx)
emit_32(Landscape01Vtx);
emit_32(Landscape02Vtx);
emit_32(Landscape03Vtx);
emit_32(Landscape04Vtx);
emit_32(Landscape05Vtx);
emit_32(Landscape06Vtx);
emit_32(Landscape07Vtx);
emit_32(Landscape08Vtx);
emit_start(Landscape01Vtx)
emit_32(1081737258);
emit_32(1055384563);
emit_32(1131812880);
emit_32(1081737258);
emit_32(1069740626);
emit_32(1132068864);
emit_32(1090125824);
emit_32(1066883130);
emit_32(1131812880);
emit_32(1090125845);
emit_32(1071685776);
emit_32(1132068864);
emit_32(1094418484);
emit_32(1074283351);
emit_32(1131812880);
emit_32(1094418484);
emit_32(1076361335);
emit_32(1132068864);
emit_32(1098514432);
emit_32(1077997197);
emit_32(1131812880);
emit_32(1098514432);
emit_32(1078893017);
emit_32(1132068864);
emit_32(1100759066);
emit_32(1082022680);
emit_32(1131812880);
emit_32(1100759066);
emit_32(1080588228);
emit_32(1132068864);
emit_32(1102807040);
emit_32(1082313744);
emit_32(1131812880);
emit_32(1102807040);
emit_32(1082635783);
emit_32(1132068864);
emit_32(1104855066);
emit_32(1085939489);
emit_32(1131812880);
emit_32(1104855066);
emit_32(1086186513);
emit_32(1132068864);
emit_32(1106903040);
emit_32(1088145253);
emit_32(1131812880);
emit_32(1106903040);
emit_32(1089137122);
emit_32(1132068864);
emit_32(1108123661);
emit_32(1090785431);
emit_32(1131812880);
emit_32(1108123661);
emit_32(1091174473);
emit_32(1132068864);
emit_32(1109147648);
emit_32(1090923801);
emit_32(1131812880);
emit_32(1109147648);
emit_32(1091237136);
emit_32(1132068864);
emit_32(1110171661);
emit_32(1088312773);
emit_32(1131812880);
emit_32(1110171661);
emit_32(1089928629);
emit_32(1132068864);
emit_32(1111195648);
emit_32(1083403361);
emit_32(1131812880);
emit_32(1111195648);
emit_32(1086579729);
emit_32(1132068864);
emit_32(1112219661);
emit_32(1080632646);
emit_32(1131812880);
emit_32(1112219661);
emit_32(1084500256);
emit_32(1132068864);
emit_32(1113243648);
emit_32(1082171222);
emit_32(1131812880);
emit_32(1113243648);
emit_32(1085286142);
emit_32(1132068864);
emit_32(1114267661);
emit_32(1082256177);
emit_32(1131812880);
emit_32(1114267661);
emit_32(1084896932);
emit_32(1132068864);
emit_32(1115291648);
emit_32(1082088279);
emit_32(1131812880);
emit_32(1115291648);
emit_32(1085314391);
emit_32(1132068864);
emit_32(1116000263);
emit_32(1085158761);
emit_32(1131812880);
emit_32(1116000263);
emit_32(1088003066);
emit_32(1132068864);
emit_32(1116512256);
emit_32(1086405959);
emit_32(1131812880);
emit_32(1116512256);
emit_32(1089298141);
emit_32(1132068864);
emit_32(1117024263);
emit_32(1087104604);
emit_32(1131812880);
emit_32(1117024263);
emit_32(1090687347);
emit_32(1132068864);
emit_32(1117536256);
emit_32(1087885311);
emit_32(1131812880);
emit_32(1117536256);
emit_32(1091275053);
emit_32(1132068864);
emit_32(1118048263);
emit_32(1089217925);
emit_32(1131812880);
emit_32(1118048263);
emit_32(1092734157);
emit_32(1132068864);
emit_32(1118560256);
emit_32(1091544359);
emit_32(1131812880);
emit_32(1118560256);
emit_32(1093101054);
emit_32(1132068864);
emit_32(1119072263);
emit_32(1093751695);
emit_32(1131812880);
emit_32(1119072263);
emit_32(1094336171);
emit_32(1132068864);
emit_32(1119584256);
emit_32(1095057906);
emit_32(1131812880);
emit_32(1119584256);
emit_32(1095906414);
emit_32(1132068864);
emit_32(1120096263);
emit_32(1096387500);
emit_32(1131812880);
emit_32(1120096263);
emit_32(1097119721);
emit_32(1132068864);
emit_32(1120608322);
emit_32(1098446484);
emit_32(1131812880);
emit_32(1120608322);
emit_32(1099405040);
emit_32(1132068864);
emit_32(1121120289);
emit_32(1099429000);
emit_32(1131812880);
emit_32(1121120289);
emit_32(1100058250);
emit_32(1132068864);
emit_32(1121632256);
emit_32(1099896455);
emit_32(1131812880);
emit_32(1121632256);
emit_32(1100747951);
emit_32(1132068864);
emit_32(1122144223);
emit_32(1100443235);
emit_32(1131812880);
emit_32(1122144223);
emit_32(1101491654);
emit_32(1132068864);
emit_32(1122656322);
emit_32(1100473854);
emit_32(1131812880);
emit_32(1122656322);
emit_32(1101038145);
emit_32(1132068864);
emit_32(1123168289);
emit_32(1100215956);
emit_32(1131812880);
emit_32(1123168289);
emit_32(1101301390);
emit_32(1132068864);
emit_32(1123680256);
emit_32(1101082604);
emit_32(1131812880);
emit_32(1123680256);
emit_32(1101605949);
emit_32(1132068864);
emit_32(1124132848);
emit_32(1101268622);
emit_32(1131812880);
emit_32(1124132848);
emit_32(1102212026);
emit_32(1132068864);
emit_32(1124388897);
emit_32(1101640237);
emit_32(1131812880);
emit_32(1124388897);
emit_32(1102532523);
emit_32(1132068864);
emit_32(1124644880);
emit_32(1102204895);
emit_32(1131812880);
emit_32(1124644880);
emit_32(1103346847);
emit_32(1132068864);
emit_32(1124900864);
emit_32(1102705643);
emit_32(1131812880);
emit_32(1124900864);
emit_32(1103273709);
emit_32(1132068864);
emit_32(1125156848);
emit_32(1102314000);
emit_32(1131812880);
emit_32(1125156848);
emit_32(1103265949);
emit_32(1132068864);
emit_32(1125412897);
emit_32(1102386142);
emit_32(1131812880);
emit_32(1125412897);
emit_32(1103012351);
emit_32(1132068864);
emit_32(1125668880);
emit_32(1102880021);
emit_32(1131812880);
emit_32(1125668880);
emit_32(1103173727);
emit_32(1132068864);
emit_32(1125924864);
emit_32(1103727428);
emit_32(1131812880);
emit_32(1125924864);
emit_32(1103580732);
emit_32(1132068864);
emit_32(1126180848);
emit_32(1103758413);
emit_32(1131812880);
emit_32(1126180848);
emit_32(1103482113);
emit_32(1132068864);
emit_32(1126436897);
emit_32(1104015471);
emit_32(1131812880);
emit_32(1126436897);
emit_32(1103163241);
emit_32(1132068864);
emit_32(1126692880);
emit_32(1103273342);
emit_32(1131812880);
emit_32(1126692880);
emit_32(1103421348);
emit_32(1132068864);
emit_32(1126948864);
emit_32(1103651353);
emit_32(1131812880);
emit_32(1126948864);
emit_32(1103608938);
emit_32(1132068864);
emit_32(1127204848);
emit_32(1103631850);
emit_32(1131812880);
emit_32(1127204848);
emit_32(1103515039);
emit_32(1132068864);
emit_32(1127460897);
emit_32(1102883324);
emit_32(1131812880);
emit_32(1127460897);
emit_32(1102412041);
emit_32(1132068864);
emit_32(1127716880);
emit_32(1101507068);
emit_32(1131812880);
emit_32(1127716880);
emit_32(1101349991);
emit_32(1132068864);
emit_32(1127972864);
emit_32(1100875563);
emit_32(1131812880);
emit_32(1127972864);
emit_32(1101021210);
emit_32(1132068864);
emit_32(1128228848);
emit_32(1101251582);
emit_32(1131812880);
emit_32(1128228848);
emit_32(1101209063);
emit_32(1132068864);
emit_32(1128484897);
emit_32(1100876402);
emit_32(1131812880);
emit_32(1128484897);
emit_32(1101824944);
emit_32(1132068864);
emit_32(1128740880);
emit_32(1100846465);
emit_32(1131812880);
emit_32(1128740880);
emit_32(1101829662);
emit_32(1132068864);
emit_32(1128996864);
emit_32(1101043178);
emit_32(1131812880);
emit_32(1128996864);
emit_32(1101204029);
emit_32(1132068864);
emit_32(1129252848);
emit_32(1100934912);
emit_32(1131812880);
emit_32(1129252848);
emit_32(1100678640);
emit_32(1132068864);
emit_32(1129508897);
emit_32(1100716494);
emit_32(1131812880);
emit_32(1129508897);
emit_32(1100794770);
emit_32(1132068864);
emit_32(1129764880);
emit_32(1100633499);
emit_32(1131812880);
emit_32(1129764880);
emit_32(1100531158);
emit_32(1132068864);
emit_32(1130020864);
emit_32(1100357409);
emit_32(1131812880);
emit_32(1130020864);
emit_32(1100965793);
emit_32(1132068864);
emit_32(1130276848);
emit_32(1100382418);
emit_32(1131812880);
emit_32(1130276848);
emit_32(1100936852);
emit_32(1132068864);
emit_32(1130532897);
emit_32(1100142189);
emit_32(1131812880);
emit_32(1130532897);
emit_32(1100410834);
emit_32(1132068864);
emit_32(1130788880);
emit_32(1099421503);
emit_32(1131812880);
emit_32(1130788880);
emit_32(1099690462);
emit_32(1132068864);
emit_32(1131044864);
emit_32(1098506358);
emit_32(1131812880);
emit_32(1131044864);
emit_32(1098996725);
emit_32(1132068864);
emit_32(1131300848);
emit_32(1098434740);
emit_32(1131812880);
emit_32(1131300848);
emit_32(1098247465);
emit_32(1132068864);
emit_32(1131556897);
emit_32(1098117861);
emit_32(1131812880);
emit_32(1131556897);
emit_32(1097891158);
emit_32(1132068864);
emit_32(1131812880);
emit_32(1096949432);
emit_32(1131812880);
emit_32(1131812880);
emit_32(1097085433);
emit_32(1132068864);
emit_32(1132068864);
emit_32(1097236532);
emit_32(1131812880);
emit_32(1132068864);
emit_32(1097193960);
emit_32(1132068864);
emit_32(1081737258);
emit_32(1074643096);
emit_32(1131556897);
emit_32(1090125866);
emit_32(1074941647);
emit_32(1131556897);
emit_32(1094418484);
emit_32(1081645067);
emit_32(1131556897);
emit_32(1098514432);
emit_32(1079576814);
emit_32(1131556897);
emit_32(1100759066);
emit_32(1080655044);
emit_32(1131556897);
emit_32(1102807040);
emit_32(1082425543);
emit_32(1131556897);
emit_32(1104855066);
emit_32(1085781658);
emit_32(1131556897);
emit_32(1106903040);
emit_32(1087711834);
emit_32(1131556897);
emit_32(1108123661);
emit_32(1089079786);
emit_32(1131556897);
emit_32(1109147648);
emit_32(1089855732);
emit_32(1131556897);
emit_32(1110171661);
emit_32(1088401776);
emit_32(1131556897);
emit_32(1111195648);
emit_32(1084013213);
emit_32(1131556897);
emit_32(1112219661);
emit_32(1076464473);
emit_32(1131556897);
emit_32(1113243648);
emit_32(1076936835);
emit_32(1131556897);
emit_32(1114267661);
emit_32(1078376488);
emit_32(1131556897);
emit_32(1115291648);
emit_32(1083428884);
emit_32(1131556897);
emit_32(1116000263);
emit_32(1084998686);
emit_32(1131556897);
emit_32(1116512256);
emit_32(1085103334);
emit_32(1131556897);
emit_32(1117024263);
emit_32(1085114239);
emit_32(1131556897);
emit_32(1117536256);
emit_32(1085358662);
emit_32(1131556897);
emit_32(1118048263);
emit_32(1085033331);
emit_32(1131556897);
emit_32(1118560256);
emit_32(1090041456);
emit_32(1131556897);
emit_32(1119072263);
emit_32(1091993569);
emit_32(1131556897);
emit_32(1119584256);
emit_32(1093969274);
emit_32(1131556897);
emit_32(1120096263);
emit_32(1094791777);
emit_32(1131556897);
emit_32(1120608322);
emit_32(1096921435);
emit_32(1131556897);
emit_32(1121120289);
emit_32(1098017722);
emit_32(1131556897);
emit_32(1121632256);
emit_32(1098852807);
emit_32(1131556897);
emit_32(1122144223);
emit_32(1099349623);
emit_32(1131556897);
emit_32(1122656322);
emit_32(1099542928);
emit_32(1131556897);
emit_32(1123168289);
emit_32(1100094688);
emit_32(1131556897);
emit_32(1123680256);
emit_32(1100410887);
emit_32(1131556897);
emit_32(1124132848);
emit_32(1100650329);
emit_32(1131556897);
emit_32(1124388897);
emit_32(1101060742);
emit_32(1131556897);
emit_32(1124644880);
emit_32(1101440326);
emit_32(1131556897);
emit_32(1124900864);
emit_32(1101720243);
emit_32(1131556897);
emit_32(1125156848);
emit_32(1101846125);
emit_32(1131556897);
emit_32(1125412897);
emit_32(1102182141);
emit_32(1131556897);
emit_32(1125668880);
emit_32(1102845208);
emit_32(1131556897);
emit_32(1125924864);
emit_32(1103549327);
emit_32(1131556897);
emit_32(1126180848);
emit_32(1103862379);
emit_32(1131556897);
emit_32(1126436897);
emit_32(1104116816);
emit_32(1131556897);
emit_32(1126692880);
emit_32(1103549432);
emit_32(1131556897);
emit_32(1126948864);
emit_32(1103788717);
emit_32(1131556897);
emit_32(1127204848);
emit_32(1103809426);
emit_32(1131556897);
emit_32(1127460897);
emit_32(1103218816);
emit_32(1131556897);
emit_32(1127716880);
emit_32(1101572551);
emit_32(1131556897);
emit_32(1127972864);
emit_32(1100781453);
emit_32(1131556897);
emit_32(1128228848);
emit_32(1100996149);
emit_32(1131556897);
emit_32(1128484897);
emit_32(1100798283);
emit_32(1131556897);
emit_32(1128740880);
emit_32(1100454769);
emit_32(1131556897);
emit_32(1128996864);
emit_32(1101100116);
emit_32(1131556897);
emit_32(1129252848);
emit_32(1100635806);
emit_32(1131556897);
emit_32(1129508897);
emit_32(1100423260);
emit_32(1131556897);
emit_32(1129764880);
emit_32(1100375445);
emit_32(1131556897);
emit_32(1130020864);
emit_32(1100374711);
emit_32(1131556897);
emit_32(1130276848);
emit_32(1100128348);
emit_32(1131556897);
emit_32(1130532897);
emit_32(1099813985);
emit_32(1131556897);
emit_32(1130788880);
emit_32(1098580702);
emit_32(1131556897);
emit_32(1131044864);
emit_32(1098117861);
emit_32(1131556897);
emit_32(1131300848);
emit_32(1098142502);
emit_32(1131556897);
emit_32(1131556897);
emit_32(1097315071);
emit_32(1131556897);
emit_32(1131812880);
emit_32(1097397384);
emit_32(1131556897);
emit_32(1132068864);
emit_32(1096997143);
emit_32(1131556897);
emit_32(1081737258);
emit_32(1078120510);
emit_32(1131300848);
emit_32(1090125866);
emit_32(1081645067);
emit_32(1131300848);
emit_32(1094418484);
emit_32(1083207676);
emit_32(1131300848);
emit_32(1098514432);
emit_32(1082548394);
emit_32(1131300848);
emit_32(1100759066);
emit_32(1083149333);
emit_32(1131300848);
emit_32(1102807040);
emit_32(1084467750);
emit_32(1131300848);
emit_32(1104855066);
emit_32(1084194889);
emit_32(1131300848);
emit_32(1106903040);
emit_32(1085853632);
emit_32(1131300848);
emit_32(1108123661);
emit_32(1085123970);
emit_32(1131300848);
emit_32(1109147648);
emit_32(1087285441);
emit_32(1131300848);
emit_32(1110171661);
emit_32(1085386722);
emit_32(1131300848);
emit_32(1111195648);
emit_32(1080853476);
emit_32(1131300848);
emit_32(1112219661);
emit_32(1078285136);
emit_32(1131300848);
emit_32(1113243648);
emit_32(1077796206);
emit_32(1131300848);
emit_32(1114267661);
emit_32(1081903730);
emit_32(1131300848);
emit_32(1115291648);
emit_32(1083632098);
emit_32(1131300848);
emit_32(1116000263);
emit_32(1084393385);
emit_32(1131300848);
emit_32(1116512256);
emit_32(1085051576);
emit_32(1131300848);
emit_32(1117024263);
emit_32(1082744667);
emit_32(1131300848);
emit_32(1117536256);
emit_32(1082567793);
emit_32(1131300848);
emit_32(1118048263);
emit_32(1084454685);
emit_32(1131300848);
emit_32(1118560256);
emit_32(1085247932);
emit_32(1131300848);
emit_32(1119072263);
emit_32(1088549437);
emit_32(1131300848);
emit_32(1119584256);
emit_32(1091234903);
emit_32(1131300848);
emit_32(1120096263);
emit_32(1092613875);
emit_32(1131300848);
emit_32(1120608322);
emit_32(1094687864);
emit_32(1131300848);
emit_32(1121120289);
emit_32(1095660313);
emit_32(1131300848);
emit_32(1121632256);
emit_32(1096595223);
emit_32(1131300848);
emit_32(1122144223);
emit_32(1096407214);
emit_32(1131300848);
emit_32(1122656322);
emit_32(1098896848);
emit_32(1131300848);
emit_32(1123168289);
emit_32(1100002571);
emit_32(1131300848);
emit_32(1123680256);
emit_32(1100330566);
emit_32(1131300848);
emit_32(1124132848);
emit_32(1100556901);
emit_32(1131300848);
emit_32(1124388897);
emit_32(1101046271);
emit_32(1131300848);
emit_32(1124644880);
emit_32(1101210793);
emit_32(1131300848);
emit_32(1124900864);
emit_32(1101438753);
emit_32(1131300848);
emit_32(1125156848);
emit_32(1101639765);
emit_32(1131300848);
emit_32(1125412897);
emit_32(1102320291);
emit_32(1131300848);
emit_32(1125668880);
emit_32(1103059380);
emit_32(1131300848);
emit_32(1125924864);
emit_32(1103640815);
emit_32(1131300848);
emit_32(1126180848);
emit_32(1104063234);
emit_32(1131300848);
emit_32(1126436897);
emit_32(1103970068);
emit_32(1131300848);
emit_32(1126692880);
emit_32(1103293999);
emit_32(1131300848);
emit_32(1126948864);
emit_32(1106602885);
emit_32(1131300848);
emit_32(1127204848);
emit_32(1106714296);
emit_32(1131300848);
emit_32(1127460897);
emit_32(1105856718);
emit_32(1131300848);
emit_32(1127716880);
emit_32(1104477736);
emit_32(1131300848);
emit_32(1127972864);
emit_32(1103475455);
emit_32(1131300848);
emit_32(1128228848);
emit_32(1102947182);
emit_32(1131300848);
emit_32(1128484897);
emit_32(1102778938);
emit_32(1131300848);
emit_32(1128740880);
emit_32(1102741242);
emit_32(1131300848);
emit_32(1128996864);
emit_32(1099705667);
emit_32(1131300848);
emit_32(1129252848);
emit_32(1099651088);
emit_32(1131300848);
emit_32(1129508897);
emit_32(1099707659);
emit_32(1131300848);
emit_32(1129764880);
emit_32(1100081634);
emit_32(1131300848);
emit_32(1130020864);
emit_32(1100312373);
emit_32(1131300848);
emit_32(1130276848);
emit_32(1100150263);
emit_32(1131300848);
emit_32(1130532897);
emit_32(1099562326);
emit_32(1131300848);
emit_32(1130788880);
emit_32(1099117363);
emit_32(1131300848);
emit_32(1131044864);
emit_32(1098383150);
emit_32(1131300848);
emit_32(1131300848);
emit_32(1097461347);
emit_32(1131300848);
emit_32(1131556897);
emit_32(1097130836);
emit_32(1131300848);
emit_32(1131812880);
emit_32(1097046950);
emit_32(1131300848);
emit_32(1132068864);
emit_32(1096949537);
emit_32(1131300848);
emit_32(1081737258);
emit_32(1084629524);
emit_32(1131044864);
emit_32(1090125866);
emit_32(1084086907);
emit_32(1131044864);
emit_32(1094418484);
emit_32(1082202008);
emit_32(1131044864);
emit_32(1098514432);
emit_32(1080912280);
emit_32(1131044864);
emit_32(1100759066);
emit_32(1083063329);
emit_32(1131044864);
emit_32(1102807040);
emit_32(1084485051);
emit_32(1131044864);
emit_32(1104855066);
emit_32(1083389331);
emit_32(1131044864);
emit_32(1106903040);
emit_32(1083284872);
emit_32(1131044864);
emit_32(1108123661);
emit_32(1083776948);
emit_32(1131044864);
emit_32(1109147648);
emit_32(1084114904);
emit_32(1131044864);
emit_32(1110171661);
emit_32(1084297860);
emit_32(1131044864);
emit_32(1111195648);
emit_32(1078278635);
emit_32(1131044864);
emit_32(1112219661);
emit_32(1076164118);
emit_32(1131044864);
emit_32(1113243648);
emit_32(1078294028);
emit_32(1131044864);
emit_32(1114267661);
emit_32(1082183700);
emit_32(1131044864);
emit_32(1115291648);
emit_32(1083337867);
emit_32(1131044864);
emit_32(1116000263);
emit_32(1083538145);
emit_32(1131044864);
emit_32(1116512256);
emit_32(1083307354);
emit_32(1131044864);
emit_32(1117024263);
emit_32(1082616971);
emit_32(1131044864);
emit_32(1117536256);
emit_32(1082459895);
emit_32(1131044864);
emit_32(1118048263);
emit_32(1082553155);
emit_32(1131044864);
emit_32(1118560256);
emit_32(1082740745);
emit_32(1131044864);
emit_32(1119072263);
emit_32(1085377369);
emit_32(1131044864);
emit_32(1119584256);
emit_32(1088549688);
emit_32(1131044864);
emit_32(1120096263);
emit_32(1090805993);
emit_32(1131044864);
emit_32(1120608322);
emit_32(1092446868);
emit_32(1131044864);
emit_32(1121120289);
emit_32(1093587383);
emit_32(1131044864);
emit_32(1121632256);
emit_32(1094483916);
emit_32(1131044864);
emit_32(1122144223);
emit_32(1096648281);
emit_32(1131044864);
emit_32(1122656322);
emit_32(1098439773);
emit_32(1131044864);
emit_32(1123168289);
emit_32(1099378301);
emit_32(1131044864);
emit_32(1123680256);
emit_32(1100113301);
emit_32(1131044864);
emit_32(1124132848);
emit_32(1100821928);
emit_32(1131044864);
emit_32(1124388897);
emit_32(1100695994);
emit_32(1131044864);
emit_32(1124644880);
emit_32(1100654418);
emit_32(1131044864);
emit_32(1124900864);
emit_32(1101348733);
emit_32(1131044864);
emit_32(1125156848);
emit_32(1101846177);
emit_32(1131044864);
emit_32(1125412897);
emit_32(1102171131);
emit_32(1131044864);
emit_32(1125668880);
emit_32(1102926263);
emit_32(1131044864);
emit_32(1125924864);
emit_32(1103561857);
emit_32(1131044864);
emit_32(1126180848);
emit_32(1105011566);
emit_32(1131044864);
emit_32(1126436897);
emit_32(1105956281);
emit_32(1131044864);
emit_32(1126692880);
emit_32(1106074193);
emit_32(1131044864);
emit_32(1126948864);
emit_32(1106288155);
emit_32(1131044864);
emit_32(1127204848);
emit_32(1106414875);
emit_32(1131044864);
emit_32(1127460897);
emit_32(1105582830);
emit_32(1131044864);
emit_32(1127716880);
emit_32(1104515013);
emit_32(1131044864);
emit_32(1127972864);
emit_32(1103803187);
emit_32(1131044864);
emit_32(1128228848);
emit_32(1103189298);
emit_32(1131044864);
emit_32(1128484897);
emit_32(1102339532);
emit_32(1131044864);
emit_32(1128740880);
emit_32(1102167776);
emit_32(1131044864);
emit_32(1128996864);
emit_32(1102179887);
emit_32(1131044864);
emit_32(1129252848);
emit_32(1101976463);
emit_32(1131044864);
emit_32(1129508897);
emit_32(1099672899);
emit_32(1131044864);
emit_32(1129764880);
emit_32(1099572288);
emit_32(1131044864);
emit_32(1130020864);
emit_32(1099410126);
emit_32(1131044864);
emit_32(1130276848);
emit_32(1099232077);
emit_32(1131044864);
emit_32(1130532897);
emit_32(1099661994);
emit_32(1131044864);
emit_32(1130788880);
emit_32(1099398382);
emit_32(1131044864);
emit_32(1131044864);
emit_32(1098507197);
emit_32(1131044864);
emit_32(1131300848);
emit_32(1098737045);
emit_32(1131044864);
emit_32(1131556897);
emit_32(1097951452);
emit_32(1131044864);
emit_32(1131812880);
emit_32(1097046111);
emit_32(1131044864);
emit_32(1132068864);
emit_32(1096926888);
emit_32(1131044864);
emit_32(1081737258);
emit_32(1086083564);
emit_32(1130788880);
emit_32(1090125845);
emit_32(1085231281);
emit_32(1130788880);
emit_32(1094418484);
emit_32(1084350058);
emit_32(1130788880);
emit_32(1098514432);
emit_32(1082346082);
emit_32(1130788880);
emit_32(1100759066);
emit_32(1082352080);
emit_32(1130788880);
emit_32(1102807040);
emit_32(1083015472);
emit_32(1130788880);
emit_32(1104855066);
emit_32(1082714468);
emit_32(1130788880);
emit_32(1106903040);
emit_32(1082667555);
emit_32(1130788880);
emit_32(1108123661);
emit_32(1081440133);
emit_32(1130788880);
emit_32(1109147648);
emit_32(1079509621);
emit_32(1130788880);
emit_32(1110171661);
emit_32(1082472016);
emit_32(1130788880);
emit_32(1111195648);
emit_32(1077273302);
emit_32(1130788880);
emit_32(1112219661);
emit_32(1077242684);
emit_32(1130788880);
emit_32(1113243648);
emit_32(1078266387);
emit_32(1130788880);
emit_32(1114267661);
emit_32(1079519268);
emit_32(1130788880);
emit_32(1115291648);
emit_32(1082332010);
emit_32(1130788880);
emit_32(1116000263);
emit_32(1083509876);
emit_32(1130788880);
emit_32(1116512256);
emit_32(1083089082);
emit_32(1130788880);
emit_32(1117024263);
emit_32(1081681474);
emit_32(1130788880);
emit_32(1117536256);
emit_32(1081604928);
emit_32(1130788880);
emit_32(1118048263);
emit_32(1083484521);
emit_32(1130788880);
emit_32(1118560256);
emit_32(1085967948);
emit_32(1130788880);
emit_32(1119072263);
emit_32(1087165358);
emit_32(1130788880);
emit_32(1119584256);
emit_32(1089804205);
emit_32(1130788880);
emit_32(1120096263);
emit_32(1090592986);
emit_32(1130788880);
emit_32(1120608322);
emit_32(1092476018);
emit_32(1130788880);
emit_32(1121120289);
emit_32(1094570318);
emit_32(1130788880);
emit_32(1121632256);
emit_32(1095714420);
emit_32(1130788880);
emit_32(1122144223);
emit_32(1097098330);
emit_32(1130788880);
emit_32(1122656322);
emit_32(1098580073);
emit_32(1130788880);
emit_32(1123168289);
emit_32(1099541460);
emit_32(1130788880);
emit_32(1123680256);
emit_32(1100022651);
emit_32(1130788880);
emit_32(1124132848);
emit_32(1100679217);
emit_32(1130788880);
emit_32(1124388897);
emit_32(1100590455);
emit_32(1130788880);
emit_32(1124644880);
emit_32(1100445647);
emit_32(1130788880);
emit_32(1124900864);
emit_32(1100992374);
emit_32(1130788880);
emit_32(1125156848);
emit_32(1101812256);
emit_32(1130788880);
emit_32(1125412897);
emit_32(1101911923);
emit_32(1130788880);
emit_32(1125668880);
emit_32(1102583326);
emit_32(1130788880);
emit_32(1125924864);
emit_32(1105586396);
emit_32(1130788880);
emit_32(1126180848);
emit_32(1105418204);
emit_32(1130788880);
emit_32(1126436897);
emit_32(1105539000);
emit_32(1130788880);
emit_32(1126692880);
emit_32(1106015263);
emit_32(1130788880);
emit_32(1126948864);
emit_32(1106032198);
emit_32(1130788880);
emit_32(1127204848);
emit_32(1106139834);
emit_32(1130788880);
emit_32(1127460897);
emit_32(1105229880);
emit_32(1130788880);
emit_32(1127716880);
emit_32(1105009679);
emit_32(1130788880);
emit_32(1127972864);
emit_32(1104632873);
emit_32(1130788880);
emit_32(1128228848);
emit_32(1104045408);
emit_32(1130788880);
emit_32(1128484897);
emit_32(1103027136);
emit_32(1130788880);
emit_32(1128740880);
emit_32(1102134274);
emit_32(1130788880);
emit_32(1128996864);
emit_32(1101980290);
emit_32(1130788880);
emit_32(1129252848);
emit_32(1101929854);
emit_32(1130788880);
emit_32(1129508897);
emit_32(1102202274);
emit_32(1130788880);
emit_32(1129764880);
emit_32(1102297170);
emit_32(1130788880);
emit_32(1130020864);
emit_32(1099118307);
emit_32(1130788880);
emit_32(1130276848);
emit_32(1098962856);
emit_32(1130788880);
emit_32(1130532897);
emit_32(1099408500);
emit_32(1130788880);
emit_32(1130788880);
emit_32(1099424124);
emit_32(1130788880);
emit_32(1131044864);
emit_32(1098958347);
emit_32(1130788880);
emit_32(1131300848);
emit_32(1098882272);
emit_32(1130788880);
emit_32(1131556897);
emit_32(1098200698);
emit_32(1130788880);
emit_32(1131812880);
emit_32(1098164103);
emit_32(1130788880);
emit_32(1132068864);
emit_32(1097566310);
emit_32(1130788880);
emit_32(1081737258);
emit_32(1088205504);
emit_32(1130532897);
emit_32(1090125845);
emit_32(1087556645);
emit_32(1130532897);
emit_32(1094418484);
emit_32(1086398472);
emit_32(1130532897);
emit_32(1098514432);
emit_32(1083645478);
emit_32(1130532897);
emit_32(1100759066);
emit_32(1080639357);
emit_32(1130532897);
emit_32(1102807040);
emit_32(1082880395);
emit_32(1130532897);
emit_32(1104855066);
emit_32(1082376092);
emit_32(1130532897);
emit_32(1106903040);
emit_32(1082783171);
emit_32(1130532897);
emit_32(1108123661);
emit_32(1079715142);
emit_32(1130532897);
emit_32(1109147648);
emit_32(1074967232);
emit_32(1130532897);
emit_32(1110171661);
emit_32(1075751525);
emit_32(1130532897);
emit_32(1111195648);
emit_32(1074864513);
emit_32(1130532897);
emit_32(1112219661);
emit_32(1066352635);
emit_32(1130532897);
emit_32(1113243648);
emit_32(1075556532);
emit_32(1130532897);
emit_32(1114267661);
emit_32(1081657231);
emit_32(1130532897);
emit_32(1115291648);
emit_32(1082114913);
emit_32(1130532897);
emit_32(1116000263);
emit_32(1082771049);
emit_32(1130532897);
emit_32(1116512256);
emit_32(1083047705);
emit_32(1130532897);
emit_32(1117024263);
emit_32(1081671953);
emit_32(1130532897);
emit_32(1117536256);
emit_32(1082383810);
emit_32(1130532897);
emit_32(1118048263);
emit_32(1085344359);
emit_32(1130532897);
emit_32(1118560256);
emit_32(1087131993);
emit_32(1130532897);
emit_32(1119072263);
emit_32(1088001598);
emit_32(1130532897);
emit_32(1119584256);
emit_32(1090829398);
emit_32(1130532897);
emit_32(1120096263);
emit_32(1091029938);
emit_32(1130532897);
emit_32(1120608322);
emit_32(1092548601);
emit_32(1130532897);
emit_32(1121120289);
emit_32(1094257947);
emit_32(1130532897);
emit_32(1121632256);
emit_32(1095812881);
emit_32(1130532897);
emit_32(1122144223);
emit_32(1096665897);
emit_32(1130532897);
emit_32(1122656322);
emit_32(1097826356);
emit_32(1130532897);
emit_32(1123168289);
emit_32(1099106825);
emit_32(1130532897);
emit_32(1123680256);
emit_32(1099535378);
emit_32(1130532897);
emit_32(1124132848);
emit_32(1099629068);
emit_32(1130532897);
emit_32(1124388897);
emit_32(1100012480);
emit_32(1130532897);
emit_32(1124644880);
emit_32(1100315047);
emit_32(1130532897);
emit_32(1124900864);
emit_32(1100226809);
emit_32(1130532897);
emit_32(1125156848);
emit_32(1101404150);
emit_32(1130532897);
emit_32(1125412897);
emit_32(1101559392);
emit_32(1130532897);
emit_32(1125668880);
emit_32(1104381215);
emit_32(1130532897);
emit_32(1125924864);
emit_32(1104769555);
emit_32(1130532897);
emit_32(1126180848);
emit_32(1104830110);
emit_32(1130532897);
emit_32(1126436897);
emit_32(1105225685);
emit_32(1130532897);
emit_32(1126692880);
emit_32(1105543666);
emit_32(1130532897);
emit_32(1126948864);
emit_32(1105381923);
emit_32(1130532897);
emit_32(1127204848);
emit_32(1102960080);
emit_32(1130532897);
emit_32(1127460897);
emit_32(1102636017);
emit_32(1130532897);
emit_32(1127716880);
emit_32(1102352640);
emit_32(1130532897);
emit_32(1127972864);
emit_32(1102376600);
emit_32(1130532897);
emit_32(1128228848);
emit_32(1101985061);
emit_32(1130532897);
emit_32(1128484897);
emit_32(1100996464);
emit_32(1130532897);
emit_32(1128740880);
emit_32(1102569013);
emit_32(1130532897);
emit_32(1128996864);
emit_32(1102092331);
emit_32(1130532897);
emit_32(1129252848);
emit_32(1102309543);
emit_32(1130532897);
emit_32(1129508897);
emit_32(1102185287);
emit_32(1130532897);
emit_32(1129764880);
emit_32(1102249407);
emit_32(1130532897);
emit_32(1130020864);
emit_32(1102463107);
emit_32(1130532897);
emit_32(1130276848);
emit_32(1099451125);
emit_32(1130532897);
emit_32(1130532897);
emit_32(1098977588);
emit_32(1130532897);
emit_32(1130788880);
emit_32(1099393401);
emit_32(1130532897);
emit_32(1131044864);
emit_32(1099525941);
emit_32(1130532897);
emit_32(1131300848);
emit_32(1099608359);
emit_32(1130532897);
emit_32(1131556897);
emit_32(1099010985);
emit_32(1130532897);
emit_32(1131812880);
emit_32(1098150052);
emit_32(1130532897);
emit_32(1132068864);
emit_32(1097996750);
emit_32(1130532897);
emit_32(1081737258);
emit_32(1088030748);
emit_32(1130276848);
emit_32(1090125845);
emit_32(1088922017);
emit_32(1130276848);
emit_32(1094418484);
emit_32(1086531599);
emit_32(1130276848);
emit_32(1098514432);
emit_32(1084132164);
emit_32(1130276848);
emit_32(1100759066);
emit_32(1081632694);
emit_32(1130276848);
emit_32(1102807040);
emit_32(1082276478);
emit_32(1130276848);
emit_32(1104855066);
emit_32(1081735706);
emit_32(1130276848);
emit_32(1106903040);
emit_32(1082304580);
emit_32(1130276848);
emit_32(1108123661);
emit_32(1079035203);
emit_32(1130276848);
emit_32(1109147648);
emit_32(1069837514);
emit_32(1130276848);
emit_32(1110171661);
emit_32(1072973008);
emit_32(1130276848);
emit_32(1111195648);
emit_32(1073616750);
emit_32(1130276848);
emit_32(1112219661);
emit_32(1074356373);
emit_32(1130276848);
emit_32(1113243648);
emit_32(1076853159);
emit_32(1130276848);
emit_32(1114267661);
emit_32(1081069063);
emit_32(1130276848);
emit_32(1115291648);
emit_32(1082137856);
emit_32(1130276848);
emit_32(1116000263);
emit_32(1082943959);
emit_32(1130276848);
emit_32(1116512256);
emit_32(1081841906);
emit_32(1130276848);
emit_32(1117024263);
emit_32(1079724873);
emit_32(1130276848);
emit_32(1117536256);
emit_32(1084345444);
emit_32(1130276848);
emit_32(1118048263);
emit_32(1086294789);
emit_32(1130276848);
emit_32(1118560256);
emit_32(1087434528);
emit_32(1130276848);
emit_32(1119072263);
emit_32(1088073635);
emit_32(1130276848);
emit_32(1119584256);
emit_32(1089448947);
emit_32(1130276848);
emit_32(1120096263);
emit_32(1090721069);
emit_32(1130276848);
emit_32(1120608322);
emit_32(1091918239);
emit_32(1130276848);
emit_32(1121120289);
emit_32(1094547984);
emit_32(1130276848);
emit_32(1121632256);
emit_32(1095883345);
emit_32(1130276848);
emit_32(1122144223);
emit_32(1096699766);
emit_32(1130276848);
emit_32(1122656322);
emit_32(1097650825);
emit_32(1130276848);
emit_32(1123168289);
emit_32(1098292029);
emit_32(1130276848);
emit_32(1123680256);
emit_32(1098586993);
emit_32(1130276848);
emit_32(1124132848);
emit_32(1099015075);
emit_32(1130276848);
emit_32(1124388897);
emit_32(1099448608);
emit_32(1130276848);
emit_32(1124644880);
emit_32(1100240545);
emit_32(1130276848);
emit_32(1124900864);
emit_32(1100411568);
emit_32(1130276848);
emit_32(1125156848);
emit_32(1100717962);
emit_32(1130276848);
emit_32(1125412897);
emit_32(1104106121);
emit_32(1130276848);
emit_32(1125668880);
emit_32(1103981340);
emit_32(1130276848);
emit_32(1125924864);
emit_32(1104173177);
emit_32(1130276848);
emit_32(1126180848);
emit_32(1104308653);
emit_32(1130276848);
emit_32(1126436897);
emit_32(1104718856);
emit_32(1130276848);
emit_32(1126692880);
emit_32(1104731072);
emit_32(1130276848);
emit_32(1126948864);
emit_32(1102448479);
emit_32(1130276848);
emit_32(1127204848);
emit_32(1102776107);
emit_32(1130276848);
emit_32(1127460897);
emit_32(1102622858);
emit_32(1130276848);
emit_32(1127716880);
emit_32(1102367582);
emit_32(1130276848);
emit_32(1127972864);
emit_32(1102063704);
emit_32(1130276848);
emit_32(1128228848);
emit_32(1101966973);
emit_32(1130276848);
emit_32(1128484897);
emit_32(1101031067);
emit_32(1130276848);
emit_32(1128740880);
emit_32(1100260154);
emit_32(1130276848);
emit_32(1128996864);
emit_32(1100108530);
emit_32(1130276848);
emit_32(1129252848);
emit_32(1102466305);
emit_32(1130276848);
emit_32(1129508897);
emit_32(1102042209);
emit_32(1130276848);
emit_32(1129764880);
emit_32(1101779803);
emit_32(1130276848);
emit_32(1130020864);
emit_32(1101832441);
emit_32(1130276848);
emit_32(1130276848);
emit_32(1101855772);
emit_32(1130276848);
emit_32(1130532897);
emit_32(1099854407);
emit_32(1130276848);
emit_32(1130788880);
emit_32(1099755369);
emit_32(1130276848);
emit_32(1131044864);
emit_32(1100126198);
emit_32(1130276848);
emit_32(1131300848);
emit_32(1100210346);
emit_32(1130276848);
emit_32(1131556897);
emit_32(1099599131);
emit_32(1130276848);
emit_32(1131812880);
emit_32(1099312713);
emit_32(1130276848);
emit_32(1132068864);
emit_32(1099215405);
emit_32(1130276848);
emit_32(1081737300);
emit_32(1090545737);
emit_32(1130020864);
emit_32(1090125845);
emit_32(1090779118);
emit_32(1130020864);
emit_32(1094418484);
emit_32(1088257765);
emit_32(1130020864);
emit_32(1098514432);
emit_32(1086032917);
emit_32(1130020864);
emit_32(1100759066);
emit_32(1083317483);
emit_32(1130020864);
emit_32(1102807040);
emit_32(1080833973);
emit_32(1130020864);
emit_32(1104855066);
emit_32(1082686639);
emit_32(1130020864);
emit_32(1106903040);
emit_32(1079520862);
emit_32(1130020864);
emit_32(1108123661);
emit_32(1071421451);
emit_32(1130020864);
emit_32(1109147648);
emit_32(1074673169);
emit_32(1130020864);
emit_32(1110171661);
emit_32(1076755348);
emit_32(1130020864);
emit_32(1111195648);
emit_32(1078551432);
emit_32(1130020864);
emit_32(1112219661);
emit_32(1078159559);
emit_32(1130020864);
emit_32(1113243648);
emit_32(1078755569);
emit_32(1130020864);
emit_32(1114267661);
emit_32(1080798447);
emit_32(1130020864);
emit_32(1115291648);
emit_32(1079415837);
emit_32(1130020864);
emit_32(1116000263);
emit_32(1082138863);
emit_32(1130020864);
emit_32(1116512256);
emit_32(1077619039);
emit_32(1130020864);
emit_32(1117024263);
emit_32(1082948888);
emit_32(1130020864);
emit_32(1117536256);
emit_32(1085399431);
emit_32(1130020864);
emit_32(1118048263);
emit_32(1087137844);
emit_32(1130020864);
emit_32(1118560256);
emit_32(1087057984);
emit_32(1130020864);
emit_32(1119072263);
emit_32(1088011706);
emit_32(1130020864);
emit_32(1119584256);
emit_32(1087547166);
emit_32(1130020864);
emit_32(1120096263);
emit_32(1089001897);
emit_32(1130020864);
emit_32(1120608322);
emit_32(1092274230);
emit_32(1130020864);
emit_32(1121120289);
emit_32(1093489656);
emit_32(1130020864);
emit_32(1121632256);
emit_32(1094888037);
emit_32(1130020864);
emit_32(1122144223);
emit_32(1095981597);
emit_32(1130020864);
emit_32(1122656322);
emit_32(1097071696);
emit_32(1130020864);
emit_32(1123168289);
emit_32(1097539571);
emit_32(1130020864);
emit_32(1123680256);
emit_32(1097094346);
emit_32(1130020864);
emit_32(1124132848);
emit_32(1098861091);
emit_32(1130020864);
emit_32(1124388897);
emit_32(1099278215);
emit_32(1130020864);
emit_32(1124644880);
emit_32(1099782108);
emit_32(1130020864);
emit_32(1124900864);
emit_32(1100389129);
emit_32(1130020864);
emit_32(1125156848);
emit_32(1103220179);
emit_32(1130020864);
emit_32(1125412897);
emit_32(1103665509);
emit_32(1130020864);
emit_32(1125668880);
emit_32(1104112307);
emit_32(1130020864);
emit_32(1125924864);
emit_32(1104257063);
emit_32(1130020864);
emit_32(1126180848);
emit_32(1103372904);
emit_32(1130020864);
emit_32(1126436897);
emit_32(1104276514);
emit_32(1130020864);
emit_32(1126692880);
emit_32(1104476792);
emit_32(1130020864);
emit_32(1126948864);
emit_32(1102277299);
emit_32(1130020864);
emit_32(1127204848);
emit_32(1102993162);
emit_32(1130020864);
emit_32(1127460897);
emit_32(1102760011);
emit_32(1130020864);
emit_32(1127716880);
emit_32(1102172861);
emit_32(1130020864);
emit_32(1127972864);
emit_32(1102165993);
emit_32(1130020864);
emit_32(1128228848);
emit_32(1101400008);
emit_32(1130020864);
emit_32(1128484897);
emit_32(1100749524);
emit_32(1130020864);
emit_32(1128740880);
emit_32(1100733953);
emit_32(1130020864);
emit_32(1128996864);
emit_32(1100153147);
emit_32(1130020864);
emit_32(1129252848);
emit_32(1100010435);
emit_32(1130020864);
emit_32(1129508897);
emit_32(1101004957);
emit_32(1130020864);
emit_32(1129764880);
emit_32(1102164053);
emit_32(1130020864);
emit_32(1130020864);
emit_32(1101850110);
emit_32(1130020864);
emit_32(1130276848);
emit_32(1102364960);
emit_32(1130020864);
emit_32(1130532897);
emit_32(1103265268);
emit_32(1130020864);
emit_32(1130788880);
emit_32(1100508614);
emit_32(1130020864);
emit_32(1131044864);
emit_32(1100302936);
emit_32(1130020864);
emit_32(1131300848);
emit_32(1100358615);
emit_32(1130020864);
emit_32(1131556897);
emit_32(1100122056);
emit_32(1130020864);
emit_32(1131812880);
emit_32(1099275331);
emit_32(1130020864);
emit_32(1132068864);
emit_32(1099473145);
emit_32(1130020864);
emit_32(1081737300);
emit_32(1091835139);
emit_32(1129764880);
emit_32(1090125845);
emit_32(1092274629);
emit_32(1129764880);
emit_32(1094418484);
emit_32(1091485187);
emit_32(1129764880);
emit_32(1098514432);
emit_32(1088227650);
emit_32(1129764880);
emit_32(1100759066);
emit_32(1086589313);
emit_32(1129764880);
emit_32(1102807040);
emit_32(1084191974);
emit_32(1129764880);
emit_32(1104855066);
emit_32(1080611507);
emit_32(1129764880);
emit_32(1106903040);
emit_32(1075926931);
emit_32(1129764880);
emit_32(1108123661);
emit_32(1079228645);
emit_32(1129764880);
emit_32(1109147648);
emit_32(1082222833);
emit_32(1129764880);
emit_32(1110171661);
emit_32(1083146418);
emit_32(1129764880);
emit_32(1111195648);
emit_32(1082983868);
emit_32(1129764880);
emit_32(1112219661);
emit_32(1081162806);
emit_32(1129764880);
emit_32(1113243648);
emit_32(1077328919);
emit_32(1129764880);
emit_32(1114267661);
emit_32(1076126244);
emit_32(1129764880);
emit_32(1115291648);
emit_32(1076114164);
emit_32(1129764880);
emit_32(1116000263);
emit_32(1077220454);
emit_32(1129764880);
emit_32(1116512256);
emit_32(1076896821);
emit_32(1129764880);
emit_32(1117024263);
emit_32(1084289953);
emit_32(1129764880);
emit_32(1117536256);
emit_32(1085902789);
emit_32(1129764880);
emit_32(1118048263);
emit_32(1086392243);
emit_32(1129764880);
emit_32(1118560256);
emit_32(1086899838);
emit_32(1129764880);
emit_32(1119072263);
emit_32(1086675170);
emit_32(1129764880);
emit_32(1119584256);
emit_32(1088147014);
emit_32(1129764880);
emit_32(1120096263);
emit_32(1090408877);
emit_32(1129764880);
emit_32(1120608322);
emit_32(1091709677);
emit_32(1129764880);
emit_32(1121120289);
emit_32(1092234888);
emit_32(1129764880);
emit_32(1121632256);
emit_32(1092967570);
emit_32(1129764880);
emit_32(1122144223);
emit_32(1095135710);
emit_32(1129764880);
emit_32(1122656322);
emit_32(1095795579);
emit_32(1129764880);
emit_32(1123168289);
emit_32(1096420845);
emit_32(1129764880);
emit_32(1123680256);
emit_32(1097142580);
emit_32(1129764880);
emit_32(1124132848);
emit_32(1097919155);
emit_32(1129764880);
emit_32(1124388897);
emit_32(1099013659);
emit_32(1129764880);
emit_32(1124644880);
emit_32(1099826515);
emit_32(1129764880);
emit_32(1124900864);
emit_32(1102949541);
emit_32(1129764880);
emit_32(1125156848);
emit_32(1103290853);
emit_32(1129764880);
emit_32(1125412897);
emit_32(1103584035);
emit_32(1129764880);
emit_32(1125668880);
emit_32(1103730049);
emit_32(1129764880);
emit_32(1125924864);
emit_32(1101436027);
emit_32(1129764880);
emit_32(1126180848);
emit_32(1103412226);
emit_32(1129764880);
emit_32(1126436897);
emit_32(1103699850);
emit_32(1129764880);
emit_32(1126692880);
emit_32(1104185079);
emit_32(1129764880);
emit_32(1126948864);
emit_32(1102131233);
emit_32(1129764880);
emit_32(1127204848);
emit_32(1105054191);
emit_32(1129764880);
emit_32(1127460897);
emit_32(1104932451);
emit_32(1129764880);
emit_32(1127716880);
emit_32(1104496873);
emit_32(1129764880);
emit_32(1127972864);
emit_32(1104477159);
emit_32(1129764880);
emit_32(1128228848);
emit_32(1104320607);
emit_32(1129764880);
emit_32(1128484897);
emit_32(1103549432);
emit_32(1129764880);
emit_32(1128740880);
emit_32(1102911793);
emit_32(1129764880);
emit_32(1128996864);
emit_32(1101627707);
emit_32(1129764880);
emit_32(1129252848);
emit_32(1100874200);
emit_32(1129764880);
emit_32(1129508897);
emit_32(1102213074);
emit_32(1129764880);
emit_32(1129764880);
emit_32(1102331091);
emit_32(1129764880);
emit_32(1130020864);
emit_32(1102551345);
emit_32(1129764880);
emit_32(1130276848);
emit_32(1102696730);
emit_32(1129764880);
emit_32(1130532897);
emit_32(1103568568);
emit_32(1129764880);
emit_32(1130788880);
emit_32(1102851657);
emit_32(1129764880);
emit_32(1131044864);
emit_32(1100504787);
emit_32(1129764880);
emit_32(1131300848);
emit_32(1099935252);
emit_32(1129764880);
emit_32(1131556897);
emit_32(1100381212);
emit_32(1129764880);
emit_32(1131812880);
emit_32(1099598030);
emit_32(1129764880);
emit_32(1132068864);
emit_32(1099324719);
emit_32(1129764880);
emit_32(1081737300);
emit_32(1093216816);
emit_32(1129508897);
emit_32(1090125845);
emit_32(1092417151);
emit_32(1129508897);
emit_32(1094418484);
emit_32(1092298631);
emit_32(1129508897);
emit_32(1098514432);
emit_32(1090960878);
emit_32(1129508897);
emit_32(1100759066);
emit_32(1088614281);
emit_32(1129508897);
emit_32(1102807040);
emit_32(1087275941);
emit_32(1129508897);
emit_32(1104855066);
emit_32(1083352170);
emit_32(1129508897);
emit_32(1106903040);
emit_32(1082781472);
emit_32(1129508897);
emit_32(1108123661);
emit_32(1082625024);
emit_32(1129508897);
emit_32(1109147648);
emit_32(1083756291);
emit_32(1129508897);
emit_32(1110171661);
emit_32(1085301682);
emit_32(1129508897);
emit_32(1111195648);
emit_32(1085254392);
emit_32(1129508897);
emit_32(1112219661);
emit_32(1083183433);
emit_32(1129508897);
emit_32(1113243648);
emit_32(1082262280);
emit_32(1129508897);
emit_32(1114267661);
emit_32(1079746432);
emit_32(1129508897);
emit_32(1115291648);
emit_32(1079747858);
emit_32(1129508897);
emit_32(1116000263);
emit_32(1080629039);
emit_32(1129508897);
emit_32(1116512256);
emit_32(1084566295);
emit_32(1129508897);
emit_32(1117024263);
emit_32(1087852574);
emit_32(1129508897);
emit_32(1117536256);
emit_32(1089342076);
emit_32(1129508897);
emit_32(1118048263);
emit_32(1089066049);
emit_32(1129508897);
emit_32(1118560256);
emit_32(1087464056);
emit_32(1129508897);
emit_32(1119072263);
emit_32(1086240913);
emit_32(1129508897);
emit_32(1119584256);
emit_32(1087270531);
emit_32(1129508897);
emit_32(1120096263);
emit_32(1090862428);
emit_32(1129508897);
emit_32(1120608322);
emit_32(1091412280);
emit_32(1129508897);
emit_32(1121120289);
emit_32(1092239313);
emit_32(1129508897);
emit_32(1121632256);
emit_32(1093054602);
emit_32(1129508897);
emit_32(1122144223);
emit_32(1094389439);
emit_32(1129508897);
emit_32(1122656322);
emit_32(1094766612);
emit_32(1129508897);
emit_32(1123168289);
emit_32(1095867197);
emit_32(1129508897);
emit_32(1123680256);
emit_32(1097324193);
emit_32(1129508897);
emit_32(1124132848);
emit_32(1097994863);
emit_32(1129508897);
emit_32(1124388897);
emit_32(1098508665);
emit_32(1129508897);
emit_32(1124644880);
emit_32(1099390989);
emit_32(1129508897);
emit_32(1124900864);
emit_32(1102819570);
emit_32(1129508897);
emit_32(1125156848);
emit_32(1103456528);
emit_32(1129508897);
emit_32(1125412897);
emit_32(1104213443);
emit_32(1129508897);
emit_32(1125668880);
emit_32(1101924034);
emit_32(1129508897);
emit_32(1125924864);
emit_32(1101395290);
emit_32(1129508897);
emit_32(1126180848);
emit_32(1103179599);
emit_32(1129508897);
emit_32(1126436897);
emit_32(1104174855);
emit_32(1129508897);
emit_32(1126692880);
emit_32(1103711856);
emit_32(1129508897);
emit_32(1126948864);
emit_32(1101427166);
emit_32(1129508897);
emit_32(1127204848);
emit_32(1104341946);
emit_32(1129508897);
emit_32(1127460897);
emit_32(1103905266);
emit_32(1129508897);
emit_32(1127716880);
emit_32(1104351225);
emit_32(1129508897);
emit_32(1127972864);
emit_32(1104338538);
emit_32(1129508897);
emit_32(1128228848);
emit_32(1104240391);
emit_32(1129508897);
emit_32(1128484897);
emit_32(1104134537);
emit_32(1129508897);
emit_32(1128740880);
emit_32(1103285715);
emit_32(1129508897);
emit_32(1128996864);
emit_32(1103034843);
emit_32(1129508897);
emit_32(1129252848);
emit_32(1102598688);
emit_32(1129508897);
emit_32(1129508897);
emit_32(1102258058);
emit_32(1129508897);
emit_32(1129764880);
emit_32(1102454299);
emit_32(1129508897);
emit_32(1130020864);
emit_32(1102717125);
emit_32(1129508897);
emit_32(1130276848);
emit_32(1103026612);
emit_32(1129508897);
emit_32(1130532897);
emit_32(1103449817);
emit_32(1129508897);
emit_32(1130788880);
emit_32(1103303593);
emit_32(1129508897);
emit_32(1131044864);
emit_32(1100124678);
emit_32(1129508897);
emit_32(1131300848);
emit_32(1099774348);
emit_32(1129508897);
emit_32(1131556897);
emit_32(1099896141);
emit_32(1129508897);
emit_32(1131812880);
emit_32(1099520646);
emit_32(1129508897);
emit_32(1132068864);
emit_32(1098974233);
emit_32(1129508897);
emit_32(1081737258);
emit_32(1093092141);
emit_32(1129252848);
emit_32(1090125845);
emit_32(1092641463);
emit_32(1129252848);
emit_32(1094418484);
emit_32(1093021047);
emit_32(1129252848);
emit_32(1098514432);
emit_32(1091404216);
emit_32(1129252848);
emit_32(1100759066);
emit_32(1090891043);
emit_32(1129252848);
emit_32(1102807040);
emit_32(1087333718);
emit_32(1129252848);
emit_32(1104855066);
emit_32(1086550243);
emit_32(1129252848);
emit_32(1106903040);
emit_32(1086614059);
emit_32(1129252848);
emit_32(1108123661);
emit_32(1087395227);
emit_32(1129252848);
emit_32(1109147648);
emit_32(1087693715);
emit_32(1129252848);
emit_32(1110171661);
emit_32(1086905605);
emit_32(1129252848);
emit_32(1111195648);
emit_32(1085917406);
emit_32(1129252848);
emit_32(1112219661);
emit_32(1086122445);
emit_32(1129252848);
emit_32(1113243648);
emit_32(1085614577);
emit_32(1129252848);
emit_32(1114267661);
emit_32(1083545422);
emit_32(1129252848);
emit_32(1115291648);
emit_32(1083831285);
emit_32(1129252848);
emit_32(1116000263);
emit_32(1086466587);
emit_32(1129252848);
emit_32(1116512256);
emit_32(1089709267);
emit_32(1129252848);
emit_32(1117024263);
emit_32(1091281166);
emit_32(1129252848);
emit_32(1117536256);
emit_32(1091916068);
emit_32(1129252848);
emit_32(1118048263);
emit_32(1091040717);
emit_32(1129252848);
emit_32(1118560256);
emit_32(1090210612);
emit_32(1129252848);
emit_32(1119072263);
emit_32(1089209851);
emit_32(1129252848);
emit_32(1119584256);
emit_32(1089378399);
emit_32(1129252848);
emit_32(1120096263);
emit_32(1090028789);
emit_32(1129252848);
emit_32(1120608322);
emit_32(1091234840);
emit_32(1129252848);
emit_32(1121120289);
emit_32(1093074734);
emit_32(1129252848);
emit_32(1121632256);
emit_32(1093111330);
emit_32(1129252848);
emit_32(1122144223);
emit_32(1094128029);
emit_32(1129252848);
emit_32(1122656322);
emit_32(1095036410);
emit_32(1129252848);
emit_32(1123168289);
emit_32(1095680551);
emit_32(1129252848);
emit_32(1123680256);
emit_32(1097146460);
emit_32(1129252848);
emit_32(1124132848);
emit_32(1098042153);
emit_32(1129252848);
emit_32(1124388897);
emit_32(1097318741);
emit_32(1129252848);
emit_32(1124644880);
emit_32(1101515457);
emit_32(1129252848);
emit_32(1124900864);
emit_32(1102822454);
emit_32(1129252848);
emit_32(1125156848);
emit_32(1103621941);
emit_32(1129252848);
emit_32(1125412897);
emit_32(1104011330);
emit_32(1129252848);
emit_32(1125668880);
emit_32(1101788244);
emit_32(1129252848);
emit_32(1125924864);
emit_32(1102141981);
emit_32(1129252848);
emit_32(1126180848);
emit_32(1103612556);
emit_32(1129252848);
emit_32(1126436897);
emit_32(1104382421);
emit_32(1129252848);
emit_32(1126692880);
emit_32(1104094324);
emit_32(1129252848);
emit_32(1126948864);
emit_32(1101288335);
emit_32(1129252848);
emit_32(1127204848);
emit_32(1103222224);
emit_32(1129252848);
emit_32(1127460897);
emit_32(1103312087);
emit_32(1129252848);
emit_32(1127716880);
emit_32(1103773512);
emit_32(1129252848);
emit_32(1127972864);
emit_32(1104076551);
emit_32(1129252848);
emit_32(1128228848);
emit_32(1104345353);
emit_32(1129252848);
emit_32(1128484897);
emit_32(1104178053);
emit_32(1129252848);
emit_32(1128740880);
emit_32(1103422240);
emit_32(1129252848);
emit_32(1128996864);
emit_32(1103161092);
emit_32(1129252848);
emit_32(1129252848);
emit_32(1102825705);
emit_32(1129252848);
emit_32(1129508897);
emit_32(1102393482);
emit_32(1129252848);
emit_32(1129764880);
emit_32(1102471601);
emit_32(1129252848);
emit_32(1130020864);
emit_32(1100205471);
emit_32(1129252848);
emit_32(1130276848);
emit_32(1102674552);
emit_32(1129252848);
emit_32(1130532897);
emit_32(1102672980);
emit_32(1129252848);
emit_32(1130788880);
emit_32(1102535406);
emit_32(1129252848);
emit_32(1131044864);
emit_32(1100902669);
emit_32(1129252848);
emit_32(1131300848);
emit_32(1099358641);
emit_32(1129252848);
emit_32(1131556897);
emit_32(1099486829);
emit_32(1129252848);
emit_32(1131812880);
emit_32(1098967679);
emit_32(1129252848);
emit_32(1132068864);
emit_32(1097864210);
emit_32(1129252848);
emit_32(1081737258);
emit_32(1094158228);
emit_32(1128996864);
emit_32(1090125845);
emit_32(1093761447);
emit_32(1128996864);
emit_32(1094418484);
emit_32(1094140822);
emit_32(1128996864);
emit_32(1098514432);
emit_32(1093034574);
emit_32(1128996864);
emit_32(1100759066);
emit_32(1091456100);
emit_32(1128996864);
emit_32(1102807040);
emit_32(1089525095);
emit_32(1128996864);
emit_32(1104855066);
emit_32(1088585025);
emit_32(1128996864);
emit_32(1106903040);
emit_32(1090478817);
emit_32(1128996864);
emit_32(1108123661);
emit_32(1091340515);
emit_32(1128996864);
emit_32(1109147648);
emit_32(1091433031);
emit_32(1128996864);
emit_32(1110171661);
emit_32(1090929264);
emit_32(1128996864);
emit_32(1111195648);
emit_32(1089429192);
emit_32(1128996864);
emit_32(1112219661);
emit_32(1087959340);
emit_32(1128996864);
emit_32(1113243648);
emit_32(1088733567);
emit_32(1128996864);
emit_32(1114267661);
emit_32(1087293054);
emit_32(1128996864);
emit_32(1115291648);
emit_32(1087872937);
emit_32(1128996864);
emit_32(1116000263);
emit_32(1089774656);
emit_32(1128996864);
emit_32(1116512256);
emit_32(1091806303);
emit_32(1128996864);
emit_32(1117024263);
emit_32(1092488066);
emit_32(1128996864);
emit_32(1117536256);
emit_32(1092781238);
emit_32(1128996864);
emit_32(1118048263);
emit_32(1092423317);
emit_32(1128996864);
emit_32(1118560256);
emit_32(1092476627);
emit_32(1128996864);
emit_32(1119072263);
emit_32(1092619547);
emit_32(1128996864);
emit_32(1119584256);
emit_32(1092370794);
emit_32(1128996864);
emit_32(1120096263);
emit_32(1091790858);
emit_32(1128996864);
emit_32(1120608322);
emit_32(1091461888);
emit_32(1128996864);
emit_32(1121120289);
emit_32(1092460080);
emit_32(1128996864);
emit_32(1121632256);
emit_32(1094170916);
emit_32(1128996864);
emit_32(1122144223);
emit_32(1094599154);
emit_32(1128996864);
emit_32(1122656322);
emit_32(1095059898);
emit_32(1128996864);
emit_32(1123168289);
emit_32(1096401342);
emit_32(1128996864);
emit_32(1123680256);
emit_32(1096965371);
emit_32(1128996864);
emit_32(1124132848);
emit_32(1097641807);
emit_32(1128996864);
emit_32(1124388897);
emit_32(1099087059);
emit_32(1128996864);
emit_32(1124644880);
emit_32(1102450944);
emit_32(1128996864);
emit_32(1124900864);
emit_32(1103410286);
emit_32(1128996864);
emit_32(1125156848);
emit_32(1103813149);
emit_32(1128996864);
emit_32(1125412897);
emit_32(1101937980);
emit_32(1128996864);
emit_32(1125668880);
emit_32(1103166020);
emit_32(1128996864);
emit_32(1125924864);
emit_32(1104505681);
emit_32(1128996864);
emit_32(1126180848);
emit_32(1103994867);
emit_32(1128996864);
emit_32(1126436897);
emit_32(1104662548);
emit_32(1128996864);
emit_32(1126692880);
emit_32(1104116974);
emit_32(1128996864);
emit_32(1126948864);
emit_32(1100885629);
emit_32(1128996864);
emit_32(1127204848);
emit_32(1100638585);
emit_32(1128996864);
emit_32(1127460897);
emit_32(1100607442);
emit_32(1128996864);
emit_32(1127716880);
emit_32(1103522116);
emit_32(1128996864);
emit_32(1127972864);
emit_32(1103785676);
emit_32(1128996864);
emit_32(1128228848);
emit_32(1103795375);
emit_32(1128996864);
emit_32(1128484897);
emit_32(1101024146);
emit_32(1128996864);
emit_32(1128740880);
emit_32(1100738829);
emit_32(1128996864);
emit_32(1128996864);
emit_32(1102805677);
emit_32(1128996864);
emit_32(1129252848);
emit_32(1102445543);
emit_32(1128996864);
emit_32(1129508897);
emit_32(1102293657);
emit_32(1128996864);
emit_32(1129764880);
emit_32(1100424728);
emit_32(1128996864);
emit_32(1130020864);
emit_32(1099671273);
emit_32(1128996864);
emit_32(1130276848);
emit_32(1100387975);
emit_32(1128996864);
emit_32(1130532897);
emit_32(1101778072);
emit_32(1128996864);
emit_32(1130788880);
emit_32(1101932318);
emit_32(1128996864);
emit_32(1131044864);
emit_32(1101602383);
emit_32(1128996864);
emit_32(1131300848);
emit_32(1098804049);
emit_32(1128996864);
emit_32(1131556897);
emit_32(1098879861);
emit_32(1128996864);
emit_32(1131812880);
emit_32(1098098881);
emit_32(1128996864);
emit_32(1132068864);
emit_32(1096354890);
emit_32(1128996864);
emit_32(1081737258);
emit_32(1094837495);
emit_32(1128740880);
emit_32(1090125845);
emit_32(1095096284);
emit_32(1128740880);
emit_32(1094418484);
emit_32(1094836761);
emit_32(1128740880);
emit_32(1098514432);
emit_32(1093776966);
emit_32(1128740880);
emit_32(1100759066);
emit_32(1092523739);
emit_32(1128740880);
emit_32(1102807040);
emit_32(1091209108);
emit_32(1128740880);
emit_32(1104855066);
emit_32(1090481543);
emit_32(1128740880);
emit_32(1106903040);
emit_32(1091724850);
emit_32(1128740880);
emit_32(1108123661);
emit_32(1092918077);
emit_32(1128740880);
emit_32(1109147648);
emit_32(1092885571);
emit_32(1128740880);
emit_32(1110171661);
emit_32(1092185311);
emit_32(1128740880);
emit_32(1111195648);
emit_32(1090654935);
emit_32(1128740880);
emit_32(1112219661);
emit_32(1090140378);
emit_32(1128740880);
emit_32(1113243648);
emit_32(1091090734);
emit_32(1128740880);
emit_32(1114267661);
emit_32(1090672415);
emit_32(1128740880);
emit_32(1115291648);
emit_32(1091158399);
emit_32(1128740880);
emit_32(1116000263);
emit_32(1092233651);
emit_32(1128740880);
emit_32(1116512256);
emit_32(1093174139);
emit_32(1128740880);
emit_32(1117024263);
emit_32(1092967255);
emit_32(1128740880);
emit_32(1117536256);
emit_32(1093958998);
emit_32(1128740880);
emit_32(1118048263);
emit_32(1094070986);
emit_32(1128740880);
emit_32(1118560256);
emit_32(1094393423);
emit_32(1128740880);
emit_32(1119072263);
emit_32(1095115263);
emit_32(1128740880);
emit_32(1119584256);
emit_32(1095201351);
emit_32(1128740880);
emit_32(1120096263);
emit_32(1094051693);
emit_32(1128740880);
emit_32(1120608322);
emit_32(1092903187);
emit_32(1128740880);
emit_32(1121120289);
emit_32(1093066136);
emit_32(1128740880);
emit_32(1121632256);
emit_32(1093765641);
emit_32(1128740880);
emit_32(1122144223);
emit_32(1094858886);
emit_32(1128740880);
emit_32(1122656322);
emit_32(1095293731);
emit_32(1128740880);
emit_32(1123168289);
emit_32(1096058248);
emit_32(1128740880);
emit_32(1123680256);
emit_32(1098058197);
emit_32(1128740880);
emit_32(1124132848);
emit_32(1099090415);
emit_32(1128740880);
emit_32(1124388897);
emit_32(1099754216);
emit_32(1128740880);
emit_32(1124644880);
emit_32(1103037989);
emit_32(1128740880);
emit_32(1124900864);
emit_32(1103411334);
emit_32(1128740880);
emit_32(1125156848);
emit_32(1104264875);
emit_32(1128740880);
emit_32(1125412897);
emit_32(1101973160);
emit_32(1128740880);
emit_32(1125668880);
emit_32(1104413616);
emit_32(1128740880);
emit_32(1125924864);
emit_32(1104295861);
emit_32(1128740880);
emit_32(1126180848);
emit_32(1104392801);
emit_32(1128740880);
emit_32(1126436897);
emit_32(1104250248);
emit_32(1128740880);
emit_32(1126692880);
emit_32(1104207466);
emit_32(1128740880);
emit_32(1126948864);
emit_32(1101393507);
emit_32(1128740880);
emit_32(1127204848);
emit_32(1101210845);
emit_32(1128740880);
emit_32(1127460897);
emit_32(1100893913);
emit_32(1128740880);
emit_32(1127716880);
emit_32(1101512678);
emit_32(1128740880);
emit_32(1127972864);
emit_32(1103029862);
emit_32(1128740880);
emit_32(1128228848);
emit_32(1103145206);
emit_32(1128740880);
emit_32(1128484897);
emit_32(1100738514);
emit_32(1128740880);
emit_32(1128740880);
emit_32(1101464234);
emit_32(1128740880);
emit_32(1128996864);
emit_32(1102046560);
emit_32(1128740880);
emit_32(1129252848);
emit_32(1102012062);
emit_32(1128740880);
emit_32(1129508897);
emit_32(1101022678);
emit_32(1128740880);
emit_32(1129764880);
emit_32(1098697723);
emit_32(1128740880);
emit_32(1130020864);
emit_32(1098672662);
emit_32(1128740880);
emit_32(1130276848);
emit_32(1098798911);
emit_32(1128740880);
emit_32(1130532897);
emit_32(1100908750);
emit_32(1128740880);
emit_32(1130788880);
emit_32(1100999243);
emit_32(1128740880);
emit_32(1131044864);
emit_32(1100710255);
emit_32(1128740880);
emit_32(1131300848);
emit_32(1097055338);
emit_32(1128740880);
emit_32(1131556897);
emit_32(1097777807);
emit_32(1128740880);
emit_32(1131812880);
emit_32(1096376071);
emit_32(1128740880);
emit_32(1132068864);
emit_32(1094422364);
emit_32(1128740880);
emit_32(1081737258);
emit_32(1096602144);
emit_32(1128484897);
emit_32(1090125845);
emit_32(1096605604);
emit_32(1128484897);
emit_32(1094418484);
emit_32(1095915222);
emit_32(1128484897);
emit_32(1098514432);
emit_32(1094988700);
emit_32(1128484897);
emit_32(1100759066);
emit_32(1093318738);
emit_32(1128484897);
emit_32(1102807040);
emit_32(1092655199);
emit_32(1128484897);
emit_32(1104855066);
emit_32(1091908927);
emit_32(1128484897);
emit_32(1106903040);
emit_32(1093146457);
emit_32(1128484897);
emit_32(1108123661);
emit_32(1093729255);
emit_32(1128484897);
emit_32(1109147648);
emit_32(1093918628);
emit_32(1128484897);
emit_32(1110171661);
emit_32(1093116048);
emit_32(1128484897);
emit_32(1111195648);
emit_32(1091599514);
emit_32(1128484897);
emit_32(1112219661);
emit_32(1092064610);
emit_32(1128484897);
emit_32(1113243648);
emit_32(1092256562);
emit_32(1128484897);
emit_32(1114267661);
emit_32(1092232937);
emit_32(1128484897);
emit_32(1115291648);
emit_32(1092569216);
emit_32(1128484897);
emit_32(1116000263);
emit_32(1093499827);
emit_32(1128484897);
emit_32(1116512256);
emit_32(1094494401);
emit_32(1128484897);
emit_32(1117024263);
emit_32(1094275249);
emit_32(1128484897);
emit_32(1117536256);
emit_32(1095835320);
emit_32(1128484897);
emit_32(1118048263);
emit_32(1096603927);
emit_32(1128484897);
emit_32(1118560256);
emit_32(1095737174);
emit_32(1128484897);
emit_32(1119072263);
emit_32(1097480536);
emit_32(1128484897);
emit_32(1119584256);
emit_32(1097454217);
emit_32(1128484897);
emit_32(1120096263);
emit_32(1096093480);
emit_32(1128484897);
emit_32(1120608322);
emit_32(1095489500);
emit_32(1128484897);
emit_32(1121120289);
emit_32(1095558601);
emit_32(1128484897);
emit_32(1121632256);
emit_32(1094835713);
emit_32(1128484897);
emit_32(1122144223);
emit_32(1095452590);
emit_32(1128484897);
emit_32(1122656322);
emit_32(1095192334);
emit_32(1128484897);
emit_32(1123168289);
emit_32(1096359399);
emit_32(1128484897);
emit_32(1123680256);
emit_32(1098052325);
emit_32(1128484897);
emit_32(1124132848);
emit_32(1099302384);
emit_32(1128484897);
emit_32(1124388897);
emit_32(1100571948);
emit_32(1128484897);
emit_32(1124644880);
emit_32(1103063207);
emit_32(1128484897);
emit_32(1124900864);
emit_32(1104141301);
emit_32(1128484897);
emit_32(1125156848);
emit_32(1104236039);
emit_32(1128484897);
emit_32(1125412897);
emit_32(1101777338);
emit_32(1128484897);
emit_32(1125668880);
emit_32(1103904794);
emit_32(1128484897);
emit_32(1125924864);
emit_32(1104679954);
emit_32(1128484897);
emit_32(1126180848);
emit_32(1104977645);
emit_32(1128484897);
emit_32(1126436897);
emit_32(1104719800);
emit_32(1128484897);
emit_32(1126692880);
emit_32(1104308181);
emit_32(1128484897);
emit_32(1126948864);
emit_32(1102818784);
emit_32(1128484897);
emit_32(1127204848);
emit_32(1104373455);
emit_32(1128484897);
emit_32(1127460897);
emit_32(1101605267);
emit_32(1128484897);
emit_32(1127716880);
emit_32(1101582618);
emit_32(1128484897);
emit_32(1127972864);
emit_32(1103712433);
emit_32(1128484897);
emit_32(1128228848);
emit_32(1103557086);
emit_32(1128484897);
emit_32(1128484897);
emit_32(1103194069);
emit_32(1128484897);
emit_32(1128740880);
emit_32(1101005482);
emit_32(1128484897);
emit_32(1128996864);
emit_32(1102896693);
emit_32(1128484897);
emit_32(1129252848);
emit_32(1102422632);
emit_32(1128484897);
emit_32(1129508897);
emit_32(1099646737);
emit_32(1128484897);
emit_32(1129764880);
emit_32(1099338403);
emit_32(1128484897);
emit_32(1130020864);
emit_32(1099043701);
emit_32(1128484897);
emit_32(1130276848);
emit_32(1098432643);
emit_32(1128484897);
emit_32(1130532897);
emit_32(1101270824);
emit_32(1128484897);
emit_32(1130788880);
emit_32(1101020319);
emit_32(1128484897);
emit_32(1131044864);
emit_32(1100721370);
emit_32(1128484897);
emit_32(1131300848);
emit_32(1097164495);
emit_32(1128484897);
emit_32(1131556897);
emit_32(1096670721);
emit_32(1128484897);
emit_32(1131812880);
emit_32(1095529765);
emit_32(1128484897);
emit_32(1132068864);
emit_32(1095414841);
emit_32(1128484897);
emit_32(1081737258);
emit_32(1097223216);
emit_32(1128228848);
emit_32(1090125845);
emit_32(1097159043);
emit_32(1128228848);
emit_32(1094418484);
emit_32(1096303510);
emit_32(1128228848);
emit_32(1098514432);
emit_32(1095078878);
emit_32(1128228848);
emit_32(1100759066);
emit_32(1093559491);
emit_32(1128228848);
emit_32(1102807040);
emit_32(1093420450);
emit_32(1128228848);
emit_32(1104855066);
emit_32(1094782865);
emit_32(1128228848);
emit_32(1106903040);
emit_32(1094716699);
emit_32(1128228848);
emit_32(1108123661);
emit_32(1095422496);
emit_32(1128228848);
emit_32(1109147648);
emit_32(1095210998);
emit_32(1128228848);
emit_32(1110171661);
emit_32(1093591892);
emit_32(1128228848);
emit_32(1111195648);
emit_32(1093748025);
emit_32(1128228848);
emit_32(1112219661);
emit_32(1093936139);
emit_32(1128228848);
emit_32(1113243648);
emit_32(1093754421);
emit_32(1128228848);
emit_32(1114267661);
emit_32(1092768026);
emit_32(1128228848);
emit_32(1115291648);
emit_32(1093788919);
emit_32(1128228848);
emit_32(1116000263);
emit_32(1094950951);
emit_32(1128228848);
emit_32(1116512256);
emit_32(1095041758);
emit_32(1128228848);
emit_32(1117024263);
emit_32(1096487325);
emit_32(1128228848);
emit_32(1117536256);
emit_32(1097262852);
emit_32(1128228848);
emit_32(1118048263);
emit_32(1097536530);
emit_32(1128228848);
emit_32(1118560256);
emit_32(1098558367);
emit_32(1128228848);
emit_32(1119072263);
emit_32(1098952212);
emit_32(1128228848);
emit_32(1119584256);
emit_32(1099049048);
emit_32(1128228848);
emit_32(1120096263);
emit_32(1099095553);
emit_32(1128228848);
emit_32(1120608322);
emit_32(1098511915);
emit_32(1128228848);
emit_32(1121120289);
emit_32(1097554566);
emit_32(1128228848);
emit_32(1121632256);
emit_32(1096990851);
emit_32(1128228848);
emit_32(1122144223);
emit_32(1096447479);
emit_32(1128228848);
emit_32(1122656322);
emit_32(1097522584);
emit_32(1128228848);
emit_32(1123168289);
emit_32(1098051486);
emit_32(1128228848);
emit_32(1123680256);
emit_32(1099167013);
emit_32(1128228848);
emit_32(1124132848);
emit_32(1099703150);
emit_32(1128228848);
emit_32(1124388897);
emit_32(1102297537);
emit_32(1128228848);
emit_32(1124644880);
emit_32(1103741898);
emit_32(1128228848);
emit_32(1124900864);
emit_32(1104507778);
emit_32(1128228848);
emit_32(1125156848);
emit_32(1104918977);
emit_32(1128228848);
emit_32(1125412897);
emit_32(1102477630);
emit_32(1128228848);
emit_32(1125668880);
emit_32(1102229537);
emit_32(1128228848);
emit_32(1125924864);
emit_32(1105767065);
emit_32(1128228848);
emit_32(1126180848);
emit_32(1105996231);
emit_32(1128228848);
emit_32(1126436897);
emit_32(1105933527);
emit_32(1128228848);
emit_32(1126692880);
emit_32(1105463240);
emit_32(1128228848);
emit_32(1126948864);
emit_32(1105052985);
emit_32(1128228848);
emit_32(1127204848);
emit_32(1105035736);
emit_32(1128228848);
emit_32(1127460897);
emit_32(1104068424);
emit_32(1128228848);
emit_32(1127716880);
emit_32(1102737467);
emit_32(1128228848);
emit_32(1127972864);
emit_32(1105007739);
emit_32(1128228848);
emit_32(1128228848);
emit_32(1104220835);
emit_32(1128228848);
emit_32(1128484897);
emit_32(1104506624);
emit_32(1128228848);
emit_32(1128740880);
emit_32(1102445019);
emit_32(1128228848);
emit_32(1128996864);
emit_32(1102497553);
emit_32(1128228848);
emit_32(1129252848);
emit_32(1101981444);
emit_32(1128228848);
emit_32(1129508897);
emit_32(1101313920);
emit_32(1128228848);
emit_32(1129764880);
emit_32(1101362889);
emit_32(1128228848);
emit_32(1130020864);
emit_32(1098897582);
emit_32(1128228848);
emit_32(1130276848);
emit_32(1099105095);
emit_32(1128228848);
emit_32(1130532897);
emit_32(1101849428);
emit_32(1128228848);
emit_32(1130788880);
emit_32(1101462346);
emit_32(1128228848);
emit_32(1131044864);
emit_32(1101111964);
emit_32(1128228848);
emit_32(1131300848);
emit_32(1098211184);
emit_32(1128228848);
emit_32(1131556897);
emit_32(1097551315);
emit_32(1128228848);
emit_32(1131812880);
emit_32(1097268933);
emit_32(1128228848);
emit_32(1132068864);
emit_32(1096928356);
emit_32(1128228848);
emit_32(1081737258);
emit_32(1096992739);
emit_32(1127972864);
emit_32(1090125866);
emit_32(1097387423);
emit_32(1127972864);
emit_32(1094418484);
emit_32(1096399769);
emit_32(1127972864);
emit_32(1098514432);
emit_32(1094991636);
emit_32(1127972864);
emit_32(1100759066);
emit_32(1094441239);
emit_32(1127972864);
emit_32(1102807040);
emit_32(1095107189);
emit_32(1127972864);
emit_32(1104855066);
emit_32(1096891761);
emit_32(1127972864);
emit_32(1106903040);
emit_32(1096776417);
emit_32(1127972864);
emit_32(1108123661);
emit_32(1097155058);
emit_32(1127972864);
emit_32(1109147648);
emit_32(1095872545);
emit_32(1127972864);
emit_32(1110171661);
emit_32(1095805226);
emit_32(1127972864);
emit_32(1111195648);
emit_32(1096095367);
emit_32(1127972864);
emit_32(1112219661);
emit_32(1095697223);
emit_32(1127972864);
emit_32(1113243648);
emit_32(1095695440);
emit_32(1127972864);
emit_32(1114267661);
emit_32(1094850498);
emit_32(1127972864);
emit_32(1115291648);
emit_32(1095604738);
emit_32(1127972864);
emit_32(1116000263);
emit_32(1095794636);
emit_32(1127972864);
emit_32(1116512256);
emit_32(1095935669);
emit_32(1127972864);
emit_32(1117024263);
emit_32(1097458201);
emit_32(1127972864);
emit_32(1117536256);
emit_32(1099005428);
emit_32(1127972864);
emit_32(1118048263);
emit_32(1099075106);
emit_32(1127972864);
emit_32(1118560256);
emit_32(1099380713);
emit_32(1127972864);
emit_32(1119072263);
emit_32(1099718669);
emit_32(1127972864);
emit_32(1119584256);
emit_32(1100017356);
emit_32(1127972864);
emit_32(1120096263);
emit_32(1100344092);
emit_32(1127972864);
emit_32(1120608322);
emit_32(1100094793);
emit_32(1127972864);
emit_32(1121120289);
emit_32(1099700109);
emit_32(1127972864);
emit_32(1121632256);
emit_32(1099356386);
emit_32(1127972864);
emit_32(1122144223);
emit_32(1098732746);
emit_32(1127972864);
emit_32(1122656322);
emit_32(1099139855);
emit_32(1127972864);
emit_32(1123168289);
emit_32(1099468531);
emit_32(1127972864);
emit_32(1123680256);
emit_32(1099976619);
emit_32(1127972864);
emit_32(1124132848);
emit_32(1100936485);
emit_32(1127972864);
emit_32(1124388897);
emit_32(1103548174);
emit_32(1127972864);
emit_32(1124644880);
emit_32(1104509036);
emit_32(1127972864);
emit_32(1124900864);
emit_32(1105478183);
emit_32(1127972864);
emit_32(1125156848);
emit_32(1105595466);
emit_32(1127972864);
emit_32(1125412897);
emit_32(1103928335);
emit_32(1127972864);
emit_32(1125668880);
emit_32(1104097732);
emit_32(1127972864);
emit_32(1125924864);
emit_32(1105747981);
emit_32(1127972864);
emit_32(1126180848);
emit_32(1107329129);
emit_32(1127972864);
emit_32(1126436897);
emit_32(1107330807);
emit_32(1127972864);
emit_32(1126692880);
emit_32(1107185474);
emit_32(1127972864);
emit_32(1126948864);
emit_32(1106443082);
emit_32(1127972864);
emit_32(1127204848);
emit_32(1106311748);
emit_32(1127972864);
emit_32(1127460897);
emit_32(1106434117);
emit_32(1127972864);
emit_32(1127716880);
emit_32(1106504581);
emit_32(1127972864);
emit_32(1127972864);
emit_32(1105930800);
emit_32(1127972864);
emit_32(1128228848);
emit_32(1106592085);
emit_32(1127972864);
emit_32(1128484897);
emit_32(1106700245);
emit_32(1127972864);
emit_32(1128740880);
emit_32(1104209143);
emit_32(1127972864);
emit_32(1128996864);
emit_32(1103888803);
emit_32(1127972864);
emit_32(1129252848);
emit_32(1103514986);
emit_32(1127972864);
emit_32(1129508897);
emit_32(1104960710);
emit_32(1127972864);
emit_32(1129764880);
emit_32(1103902592);
emit_32(1127972864);
emit_32(1130020864);
emit_32(1101125124);
emit_32(1127972864);
emit_32(1130276848);
emit_32(1099577950);
emit_32(1127972864);
emit_32(1130532897);
emit_32(1102071045);
emit_32(1127972864);
emit_32(1130788880);
emit_32(1102154983);
emit_32(1127972864);
emit_32(1131044864);
emit_32(1101877530);
emit_32(1127972864);
emit_32(1131300848);
emit_32(1099361367);
emit_32(1127972864);
emit_32(1131556897);
emit_32(1098597270);
emit_32(1127972864);
emit_32(1131812880);
emit_32(1098904817);
emit_32(1127972864);
emit_32(1132068864);
emit_32(1098078224);
emit_32(1127972864);
emit_32(1081737258);
emit_32(1096797703);
emit_32(1127716880);
emit_32(1090125866);
emit_32(1097168375);
emit_32(1127716880);
emit_32(1094418484);
emit_32(1095948462);
emit_32(1127716880);
emit_32(1098514432);
emit_32(1095608618);
emit_32(1127716880);
emit_32(1100759066);
emit_32(1096751356);
emit_32(1127716880);
emit_32(1102807040);
emit_32(1097561276);
emit_32(1127716880);
emit_32(1104855066);
emit_32(1097849635);
emit_32(1127716880);
emit_32(1106903040);
emit_32(1098303144);
emit_32(1127716880);
emit_32(1108123661);
emit_32(1098264347);
emit_32(1127716880);
emit_32(1109147648);
emit_32(1097068341);
emit_32(1127716880);
emit_32(1110171661);
emit_32(1098172806);
emit_32(1127716880);
emit_32(1111195648);
emit_32(1098939053);
emit_32(1127716880);
emit_32(1112219661);
emit_32(1097712586);
emit_32(1127716880);
emit_32(1113243648);
emit_32(1097830341);
emit_32(1127716880);
emit_32(1114267661);
emit_32(1096396623);
emit_32(1127716880);
emit_32(1115291648);
emit_32(1095821689);
emit_32(1127716880);
emit_32(1116000263);
emit_32(1096202427);
emit_32(1127716880);
emit_32(1116512256);
emit_32(1096892495);
emit_32(1127716880);
emit_32(1117024263);
emit_32(1098192309);
emit_32(1127716880);
emit_32(1117536256);
emit_32(1099117101);
emit_32(1127716880);
emit_32(1118048263);
emit_32(1099661522);
emit_32(1127716880);
emit_32(1118560256);
emit_32(1099930114);
emit_32(1127716880);
emit_32(1119072263);
emit_32(1100208459);
emit_32(1127716880);
emit_32(1119584256);
emit_32(1100702129);
emit_32(1127716880);
emit_32(1120096263);
emit_32(1101093614);
emit_32(1127716880);
emit_32(1120608322);
emit_32(1101089158);
emit_32(1127716880);
emit_32(1121120289);
emit_32(1100770810);
emit_32(1127716880);
emit_32(1121632256);
emit_32(1100500959);
emit_32(1127716880);
emit_32(1122144223);
emit_32(1100074032);
emit_32(1127716880);
emit_32(1122656322);
emit_32(1100304509);
emit_32(1127716880);
emit_32(1123168289);
emit_32(1100602881);
emit_32(1127716880);
emit_32(1123680256);
emit_32(1101222799);
emit_32(1127716880);
emit_32(1124132848);
emit_32(1101588647);
emit_32(1127716880);
emit_32(1124388897);
emit_32(1103974262);
emit_32(1127716880);
emit_32(1124644880);
emit_32(1104918190);
emit_32(1127716880);
emit_32(1124900864);
emit_32(1105762661);
emit_32(1127716880);
emit_32(1125156848);
emit_32(1106612899);
emit_32(1127716880);
emit_32(1125412897);
emit_32(1104639689);
emit_32(1127716880);
emit_32(1125668880);
emit_32(1105198265);
emit_32(1127716880);
emit_32(1125924864);
emit_32(1105413748);
emit_32(1127716880);
emit_32(1126180848);
emit_32(1107783057);
emit_32(1127716880);
emit_32(1126436897);
emit_32(1107991672);
emit_32(1127716880);
emit_32(1126692880);
emit_32(1107664568);
emit_32(1127716880);
emit_32(1126948864);
emit_32(1107212999);
emit_32(1127716880);
emit_32(1127204848);
emit_32(1107232712);
emit_32(1127716880);
emit_32(1127460897);
emit_32(1107399803);
emit_32(1127716880);
emit_32(1127716880);
emit_32(1107519026);
emit_32(1127716880);
emit_32(1127972864);
emit_32(1105586291);
emit_32(1127716880);
emit_32(1128228848);
emit_32(1107722319);
emit_32(1127716880);
emit_32(1128484897);
emit_32(1107549828);
emit_32(1127716880);
emit_32(1128740880);
emit_32(1107213051);
emit_32(1127716880);
emit_32(1128996864);
emit_32(1104407953);
emit_32(1127716880);
emit_32(1129252848);
emit_32(1105963988);
emit_32(1127716880);
emit_32(1129508897);
emit_32(1105610303);
emit_32(1127716880);
emit_32(1129764880);
emit_32(1104453042);
emit_32(1127716880);
emit_32(1130020864);
emit_32(1103642178);
emit_32(1127716880);
emit_32(1130276848);
emit_32(1100372928);
emit_32(1127716880);
emit_32(1130532897);
emit_32(1102654577);
emit_32(1127716880);
emit_32(1130788880);
emit_32(1102227911);
emit_32(1127716880);
emit_32(1131044864);
emit_32(1101889641);
emit_32(1127716880);
emit_32(1131300848);
emit_32(1099123340);
emit_32(1127716880);
emit_32(1131556897);
emit_32(1099152595);
emit_32(1127716880);
emit_32(1131812880);
emit_32(1099081921);
emit_32(1127716880);
emit_32(1132068864);
emit_32(1098933705);
emit_32(1127716880);
emit_32(1081737258);
emit_32(1097521955);
emit_32(1127460897);
emit_32(1090125866);
emit_32(1097290954);
emit_32(1127460897);
emit_32(1094418484);
emit_32(1096535664);
emit_32(1127460897);
emit_32(1098514432);
emit_32(1096791202);
emit_32(1127460897);
emit_32(1100759066);
emit_32(1097822057);
emit_32(1127460897);
emit_32(1102807040);
emit_32(1098240020);
emit_32(1127460897);
emit_32(1104855066);
emit_32(1098978217);
emit_32(1127460897);
emit_32(1106903040);
emit_32(1099121977);
emit_32(1127460897);
emit_32(1108123661);
emit_32(1099009884);
emit_32(1127460897);
emit_32(1109147648);
emit_32(1099001233);
emit_32(1127460897);
emit_32(1110171661);
emit_32(1099564791);
emit_32(1127460897);
emit_32(1111195648);
emit_32(1099604427);
emit_32(1127460897);
emit_32(1112219661);
emit_32(1098912681);
emit_32(1127460897);
emit_32(1113243648);
emit_32(1098358823);
emit_32(1127460897);
emit_32(1114267661);
emit_32(1096897318);
emit_32(1127460897);
emit_32(1115291648);
emit_32(1095649408);
emit_32(1127460897);
emit_32(1116000263);
emit_32(1096935801);
emit_32(1127460897);
emit_32(1116512256);
emit_32(1097798359);
emit_32(1127460897);
emit_32(1117024263);
emit_32(1098804363);
emit_32(1127460897);
emit_32(1117536256);
emit_32(1099628859);
emit_32(1127460897);
emit_32(1118048263);
emit_32(1100288570);
emit_32(1127460897);
emit_32(1118560256);
emit_32(1100879076);
emit_32(1127460897);
emit_32(1119072263);
emit_32(1100927310);
emit_32(1127460897);
emit_32(1119584256);
emit_32(1101310879);
emit_32(1127460897);
emit_32(1120096263);
emit_32(1101683124);
emit_32(1127460897);
emit_32(1120608322);
emit_32(1101623879);
emit_32(1127460897);
emit_32(1121120289);
emit_32(1101768950);
emit_32(1127460897);
emit_32(1121632256);
emit_32(1101614495);
emit_32(1127460897);
emit_32(1122144223);
emit_32(1101255882);
emit_32(1127460897);
emit_32(1122656322);
emit_32(1101305165);
emit_32(1127460897);
emit_32(1123168289);
emit_32(1101210164);
emit_32(1127460897);
emit_32(1123680256);
emit_32(1101974785);
emit_32(1127460897);
emit_32(1124132848);
emit_32(1102412304);
emit_32(1127460897);
emit_32(1124388897);
emit_32(1102794981);
emit_32(1127460897);
emit_32(1124644880);
emit_32(1105358121);
emit_32(1127460897);
emit_32(1124900864);
emit_32(1106543274);
emit_32(1127460897);
emit_32(1125156848);
emit_32(1107495748);
emit_32(1127460897);
emit_32(1125412897);
emit_32(1105955861);
emit_32(1127460897);
emit_32(1125668880);
emit_32(1106429084);
emit_32(1127460897);
emit_32(1125924864);
emit_32(1107140909);
emit_32(1127460897);
emit_32(1126180848);
emit_32(1108420067);
emit_32(1127460897);
emit_32(1126436897);
emit_32(1108539421);
emit_32(1127460897);
emit_32(1126692880);
emit_32(1108278824);
emit_32(1127460897);
emit_32(1126948864);
emit_32(1106248099);
emit_32(1127460897);
emit_32(1127204848);
emit_32(1106077182);
emit_32(1127460897);
emit_32(1127460897);
emit_32(1107959900);
emit_32(1127460897);
emit_32(1127716880);
emit_32(1107937880);
emit_32(1127460897);
emit_32(1127972864);
emit_32(1107912006);
emit_32(1127460897);
emit_32(1128228848);
emit_32(1107668710);
emit_32(1127460897);
emit_32(1128484897);
emit_32(1106012327);
emit_32(1127460897);
emit_32(1128740880);
emit_32(1105705199);
emit_32(1127460897);
emit_32(1128996864);
emit_32(1105290802);
emit_32(1127460897);
emit_32(1129252848);
emit_32(1106539918);
emit_32(1127460897);
emit_32(1129508897);
emit_32(1105540573);
emit_32(1127460897);
emit_32(1129764880);
emit_32(1104772701);
emit_32(1127460897);
emit_32(1130020864);
emit_32(1101448086);
emit_32(1127460897);
emit_32(1130276848);
emit_32(1101175508);
emit_32(1127460897);
emit_32(1130532897);
emit_32(1103296830);
emit_32(1127460897);
emit_32(1130788880);
emit_32(1102692850);
emit_32(1127460897);
emit_32(1131044864);
emit_32(1101873336);
emit_32(1127460897);
emit_32(1131300848);
emit_32(1099038038);
emit_32(1127460897);
emit_32(1131556897);
emit_32(1099314443);
emit_32(1127460897);
emit_32(1131812880);
emit_32(1099183371);
emit_32(1127460897);
emit_32(1132068864);
emit_32(1098779931);
emit_32(1127460897);
emit_32(1081737258);
emit_32(1098169765);
emit_32(1127204848);
emit_32(1090125866);
emit_32(1097937715);
emit_32(1127204848);
emit_32(1094418484);
emit_32(1097656592);
emit_32(1127204848);
emit_32(1098514432);
emit_32(1097279105);
emit_32(1127204848);
emit_32(1100759066);
emit_32(1098705587);
emit_32(1127204848);
emit_32(1102807040);
emit_32(1099191760);
emit_32(1127204848);
emit_32(1104855066);
emit_32(1099316121);
emit_32(1127204848);
emit_32(1106903040);
emit_32(1099533910);
emit_32(1127204848);
emit_32(1108123661);
emit_32(1099430573);
emit_32(1127204848);
emit_32(1109147648);
emit_32(1099413848);
emit_32(1127204848);
emit_32(1110171661);
emit_32(1099829504);
emit_32(1127204848);
emit_32(1111195648);
emit_32(1100016517);
emit_32(1127204848);
emit_32(1112219661);
emit_32(1099249693);
emit_32(1127204848);
emit_32(1113243648);
emit_32(1098799645);
emit_32(1127204848);
emit_32(1114267661);
emit_32(1098342780);
emit_32(1127204848);
emit_32(1115291648);
emit_32(1097196791);
emit_32(1127204848);
emit_32(1116000263);
emit_32(1097901330);
emit_32(1127204848);
emit_32(1116512256);
emit_32(1098866124);
emit_32(1127204848);
emit_32(1117024263);
emit_32(1099404516);
emit_32(1127204848);
emit_32(1117536256);
emit_32(1099985741);
emit_32(1127204848);
emit_32(1118048263);
emit_32(1100426563);
emit_32(1127204848);
emit_32(1118560256);
emit_32(1101059169);
emit_32(1127204848);
emit_32(1119072263);
emit_32(1101194959);
emit_32(1127204848);
emit_32(1119584256);
emit_32(1101016072);
emit_32(1127204848);
emit_32(1120096263);
emit_32(1101472308);
emit_32(1127204848);
emit_32(1120608322);
emit_32(1101985323);
emit_32(1127204848);
emit_32(1121120289);
emit_32(1102436316);
emit_32(1127204848);
emit_32(1121632256);
emit_32(1102413719);
emit_32(1127204848);
emit_32(1122144223);
emit_32(1101785779);
emit_32(1127204848);
emit_32(1122656322);
emit_32(1101731673);
emit_32(1127204848);
emit_32(1123168289);
emit_32(1102273262);
emit_32(1127204848);
emit_32(1123680256);
emit_32(1102879182);
emit_32(1127204848);
emit_32(1124132848);
emit_32(1103081819);
emit_32(1127204848);
emit_32(1124388897);
emit_32(1103419985);
emit_32(1127204848);
emit_32(1124644880);
emit_32(1106708634);
emit_32(1127204848);
emit_32(1124900864);
emit_32(1107116530);
emit_32(1127204848);
emit_32(1125156848);
emit_32(1107879893);
emit_32(1127204848);
emit_32(1125412897);
emit_32(1106751573);
emit_32(1127204848);
emit_32(1125668880);
emit_32(1108314712);
emit_32(1127204848);
emit_32(1125924864);
emit_32(1109036342);
emit_32(1127204848);
emit_32(1126180848);
emit_32(1109160047);
emit_32(1127204848);
emit_32(1126436897);
emit_32(1109143323);
emit_32(1127204848);
emit_32(1126692880);
emit_32(1108877692);
emit_32(1127204848);
emit_32(1126948864);
emit_32(1108518135);
emit_32(1127204848);
emit_32(1127204848);
emit_32(1108362238);
emit_32(1127204848);
emit_32(1127460897);
emit_32(1108376997);
emit_32(1127204848);
emit_32(1127716880);
emit_32(1108363313);
emit_32(1127204848);
emit_32(1127972864);
emit_32(1108321213);
emit_32(1127204848);
emit_32(1128228848);
emit_32(1106462953);
emit_32(1127204848);
emit_32(1128484897);
emit_32(1106272584);
emit_32(1127204848);
emit_32(1128740880);
emit_32(1105682131);
emit_32(1127204848);
emit_32(1128996864);
emit_32(1107532055);
emit_32(1127204848);
emit_32(1129252848);
emit_32(1106896539);
emit_32(1127204848);
emit_32(1129508897);
emit_32(1106257851);
emit_32(1127204848);
emit_32(1129764880);
emit_32(1102788428);
emit_32(1127204848);
emit_32(1130020864);
emit_32(1101910298);
emit_32(1127204848);
emit_32(1130276848);
emit_32(1101035943);
emit_32(1127204848);
emit_32(1130532897);
emit_32(1103745044);
emit_32(1127204848);
emit_32(1130788880);
emit_32(1103183164);
emit_32(1127204848);
emit_32(1131044864);
emit_32(1102075291);
emit_32(1127204848);
emit_32(1131300848);
emit_32(1098519780);
emit_32(1127204848);
emit_32(1131556897);
emit_32(1098358928);
emit_32(1127204848);
emit_32(1131812880);
emit_32(1098789788);
emit_32(1127204848);
emit_32(1132068864);
emit_32(1097999476);
emit_32(1127204848);
emit_32(1081737258);
emit_32(1098949119);
emit_32(1126948864);
emit_32(1090125845);
emit_32(1098913939);
emit_32(1126948864);
emit_32(1094418484);
emit_32(1097887384);
emit_32(1126948864);
emit_32(1098514432);
emit_32(1098001888);
emit_32(1126948864);
emit_32(1100759066);
emit_32(1099097545);
emit_32(1126948864);
emit_32(1102807040);
emit_32(1099290588);
emit_32(1126948864);
emit_32(1104855066);
emit_32(1099551474);
emit_32(1126948864);
emit_32(1106903040);
emit_32(1099163605);
emit_32(1126948864);
emit_32(1108123661);
emit_32(1099190711);
emit_32(1126948864);
emit_32(1109147648);
emit_32(1099720557);
emit_32(1126948864);
emit_32(1110171661);
emit_32(1099796002);
emit_32(1126948864);
emit_32(1111195648);
emit_32(1099824156);
emit_32(1126948864);
emit_32(1112219661);
emit_32(1099671431);
emit_32(1126948864);
emit_32(1113243648);
emit_32(1099204133);
emit_32(1126948864);
emit_32(1114267661);
emit_32(1098311323);
emit_32(1126948864);
emit_32(1115291648);
emit_32(1097819226);
emit_32(1126948864);
emit_32(1116000263);
emit_32(1098122894);
emit_32(1126948864);
emit_32(1116512256);
emit_32(1099069548);
emit_32(1126948864);
emit_32(1117024263);
emit_32(1099712640);
emit_32(1126948864);
emit_32(1117536256);
emit_32(1100258161);
emit_32(1126948864);
emit_32(1118048263);
emit_32(1100567858);
emit_32(1126948864);
emit_32(1118560256);
emit_32(1100912735);
emit_32(1126948864);
emit_32(1119072263);
emit_32(1101335259);
emit_32(1126948864);
emit_32(1119584256);
emit_32(1101300236);
emit_32(1126948864);
emit_32(1120096263);
emit_32(1101307209);
emit_32(1126948864);
emit_32(1120608322);
emit_32(1101813252);
emit_32(1126948864);
emit_32(1121120289);
emit_32(1102347239);
emit_32(1126948864);
emit_32(1121632256);
emit_32(1102583851);
emit_32(1126948864);
emit_32(1122144223);
emit_32(1102372458);
emit_32(1126948864);
emit_32(1122656322);
emit_32(1102499126);
emit_32(1126948864);
emit_32(1123168289);
emit_32(1102697097);
emit_32(1126948864);
emit_32(1123680256);
emit_32(1103294890);
emit_32(1126948864);
emit_32(1124132848);
emit_32(1103928177);
emit_32(1126948864);
emit_32(1124388897);
emit_32(1105053195);
emit_32(1126948864);
emit_32(1124644880);
emit_32(1107678488);
emit_32(1126948864);
emit_32(1124900864);
emit_32(1107666613);
emit_32(1126948864);
emit_32(1125156848);
emit_32(1108068663);
emit_32(1126948864);
emit_32(1125412897);
emit_32(1107030075);
emit_32(1126948864);
emit_32(1125668880);
emit_32(1109044940);
emit_32(1126948864);
emit_32(1125924864);
emit_32(1109464528);
emit_32(1126948864);
emit_32(1126180848);
emit_32(1109502329);
emit_32(1126948864);
emit_32(1126436897);
emit_32(1109661634);
emit_32(1126948864);
emit_32(1126692880);
emit_32(1109335998);
emit_32(1126948864);
emit_32(1126948864);
emit_32(1108826548);
emit_32(1126948864);
emit_32(1127204848);
emit_32(1108883774);
emit_32(1126948864);
emit_32(1127460897);
emit_32(1107300110);
emit_32(1126948864);
emit_32(1127716880);
emit_32(1108142929);
emit_32(1126948864);
emit_32(1127972864);
emit_32(1108009838);
emit_32(1126948864);
emit_32(1128228848);
emit_32(1107061165);
emit_32(1126948864);
emit_32(1128484897);
emit_32(1105722553);
emit_32(1126948864);
emit_32(1128740880);
emit_32(1106183035);
emit_32(1126948864);
emit_32(1128996864);
emit_32(1107464133);
emit_32(1126948864);
emit_32(1129252848);
emit_32(1106950907);
emit_32(1126948864);
emit_32(1129508897);
emit_32(1105415740);
emit_32(1126948864);
emit_32(1129764880);
emit_32(1102572893);
emit_32(1126948864);
emit_32(1130020864);
emit_32(1101736444);
emit_32(1126948864);
emit_32(1130276848);
emit_32(1103790604);
emit_32(1126948864);
emit_32(1130532897);
emit_32(1103702943);
emit_32(1126948864);
emit_32(1130788880);
emit_32(1102824918);
emit_32(1126948864);
emit_32(1131044864);
emit_32(1102312374);
emit_32(1126948864);
emit_32(1131300848);
emit_32(1098839595);
emit_32(1126948864);
emit_32(1131556897);
emit_32(1098161272);
emit_32(1126948864);
emit_32(1131812880);
emit_32(1097697906);
emit_32(1126948864);
emit_32(1132068864);
emit_32(1097362991);
emit_32(1126948864);
emit_32(1081737258);
emit_32(1099508220);
emit_32(1126692880);
emit_32(1090125845);
emit_32(1099273653);
emit_32(1126692880);
emit_32(1094418484);
emit_32(1099205496);
emit_32(1126692880);
emit_32(1098514432);
emit_32(1098995047);
emit_32(1126692880);
emit_32(1100759066);
emit_32(1099092355);
emit_32(1126692880);
emit_32(1102807040);
emit_32(1099190187);
emit_32(1126692880);
emit_32(1104855066);
emit_32(1099331011);
emit_32(1126692880);
emit_32(1106903040);
emit_32(1099536112);
emit_32(1126692880);
emit_32(1108123661);
emit_32(1099882824);
emit_32(1126692880);
emit_32(1109147648);
emit_32(1100241332);
emit_32(1126692880);
emit_32(1110171661);
emit_32(1100308441);
emit_32(1126692880);
emit_32(1111195648);
emit_32(1099924085);
emit_32(1126692880);
emit_32(1112219661);
emit_32(1099715209);
emit_32(1126692880);
emit_32(1113243648);
emit_32(1099688575);
emit_32(1126692880);
emit_32(1114267661);
emit_32(1099415106);
emit_32(1126692880);
emit_32(1115291648);
emit_32(1099022572);
emit_32(1126692880);
emit_32(1116000263);
emit_32(1098456655);
emit_32(1126692880);
emit_32(1116512256);
emit_32(1099432827);
emit_32(1126692880);
emit_32(1117024263);
emit_32(1099963931);
emit_32(1126692880);
emit_32(1117536256);
emit_32(1100471914);
emit_32(1126692880);
emit_32(1118048263);
emit_32(1100910271);
emit_32(1126692880);
emit_32(1118560256);
emit_32(1100950746);
emit_32(1126692880);
emit_32(1119072263);
emit_32(1101340921);
emit_32(1126692880);
emit_32(1119584256);
emit_32(1101516925);
emit_32(1126692880);
emit_32(1120096263);
emit_32(1101607626);
emit_32(1126692880);
emit_32(1120608322);
emit_32(1101700478);
emit_32(1126692880);
emit_32(1121120289);
emit_32(1102113826);
emit_32(1126692880);
emit_32(1121632256);
emit_32(1102162428);
emit_32(1126692880);
emit_32(1122144223);
emit_32(1102697097);
emit_32(1126692880);
emit_32(1122656322);
emit_32(1103401950);
emit_32(1126692880);
emit_32(1123168289);
emit_32(1103831813);
emit_32(1126692880);
emit_32(1123680256);
emit_32(1104291194);
emit_32(1126692880);
emit_32(1124132848);
emit_32(1105271456);
emit_32(1126692880);
emit_32(1124388897);
emit_32(1106220574);
emit_32(1126692880);
emit_32(1124644880);
emit_32(1108019957);
emit_32(1126692880);
emit_32(1124900864);
emit_32(1108180861);
emit_32(1126692880);
emit_32(1125156848);
emit_32(1108381558);
emit_32(1126692880);
emit_32(1125412897);
emit_32(1108884508);
emit_32(1126692880);
emit_32(1125668880);
emit_32(1109395820);
emit_32(1126692880);
emit_32(1125924864);
emit_32(1109634712);
emit_32(1126692880);
emit_32(1126180848);
emit_32(1109777816);
emit_32(1126692880);
emit_32(1126436897);
emit_32(1109887130);
emit_32(1126692880);
emit_32(1126692880);
emit_32(1109468460);
emit_32(1126692880);
emit_32(1126948864);
emit_32(1108976887);
emit_32(1126692880);
emit_32(1127204848);
emit_32(1108737288);
emit_32(1126692880);
emit_32(1127460897);
emit_32(1107322339);
emit_32(1126692880);
emit_32(1127716880);
emit_32(1108472024);
emit_32(1126692880);
emit_32(1127972864);
emit_32(1107965326);
emit_32(1126692880);
emit_32(1128228848);
emit_32(1107928049);
emit_32(1126692880);
emit_32(1128484897);
emit_32(1106025906);
emit_32(1126692880);
emit_32(1128740880);
emit_32(1107754012);
emit_32(1126692880);
emit_32(1128996864);
emit_32(1107563407);
emit_32(1126692880);
emit_32(1129252848);
emit_32(1107120672);
emit_32(1126692880);
emit_32(1129508897);
emit_32(1103449188);
emit_32(1126692880);
emit_32(1129764880);
emit_32(1102395841);
emit_32(1126692880);
emit_32(1130020864);
emit_32(1101999899);
emit_32(1126692880);
emit_32(1130276848);
emit_32(1104243012);
emit_32(1126692880);
emit_32(1130532897);
emit_32(1103501407);
emit_32(1126692880);
emit_32(1130788880);
emit_32(1102408424);
emit_32(1126692880);
emit_32(1131044864);
emit_32(1099757099);
emit_32(1126692880);
emit_32(1131300848);
emit_32(1098990538);
emit_32(1126692880);
emit_32(1131556897);
emit_32(1097576795);
emit_32(1126692880);
emit_32(1131812880);
emit_32(1097118777);
emit_32(1126692880);
emit_32(1132068864);
emit_32(1095884499);
emit_32(1126692880);
emit_32(1081737300);
emit_32(1099149921);
emit_32(1126436897);
emit_32(1090125845);
emit_32(1099736547);
emit_32(1126436897);
emit_32(1094418484);
emit_32(1099814457);
emit_32(1126436897);
emit_32(1098514432);
emit_32(1099497996);
emit_32(1126436897);
emit_32(1100759066);
emit_32(1099614598);
emit_32(1126436897);
emit_32(1102807040);
emit_32(1099949041);
emit_32(1126436897);
emit_32(1104855066);
emit_32(1100303460);
emit_32(1126436897);
emit_32(1106903040);
emit_32(1100372194);
emit_32(1126436897);
emit_32(1108123661);
emit_32(1100388499);
emit_32(1126436897);
emit_32(1109147648);
emit_32(1100457129);
emit_32(1126436897);
emit_32(1110171661);
emit_32(1100645768);
emit_32(1126436897);
emit_32(1111195648);
emit_32(1100270587);
emit_32(1126436897);
emit_32(1112219661);
emit_32(1099961152);
emit_32(1126436897);
emit_32(1113243648);
emit_32(1099730885);
emit_32(1126436897);
emit_32(1114267661);
emit_32(1099738435);
emit_32(1126436897);
emit_32(1115291648);
emit_32(1099626866);
emit_32(1126436897);
emit_32(1116000263);
emit_32(1099808847);
emit_32(1126436897);
emit_32(1116512256);
emit_32(1099946000);
emit_32(1126436897);
emit_32(1117024263);
emit_32(1100112776);
emit_32(1126436897);
emit_32(1117536256);
emit_32(1100457758);
emit_32(1126436897);
emit_32(1118048263);
emit_32(1101221960);
emit_32(1126436897);
emit_32(1118560256);
emit_32(1101270404);
emit_32(1126436897);
emit_32(1119072263);
emit_32(1101406090);
emit_32(1126436897);
emit_32(1119584256);
emit_32(1101500619);
emit_32(1126436897);
emit_32(1120096263);
emit_32(1101585606);
emit_32(1126436897);
emit_32(1120608322);
emit_32(1101398278);
emit_32(1126436897);
emit_32(1121120289);
emit_32(1101771047);
emit_32(1126436897);
emit_32(1121632256);
emit_32(1102476005);
emit_32(1126436897);
emit_32(1122144223);
emit_32(1103241150);
emit_32(1126436897);
emit_32(1122656322);
emit_32(1103529247);
emit_32(1126436897);
emit_32(1123168289);
emit_32(1104315207);
emit_32(1126436897);
emit_32(1123680256);
emit_32(1105405149);
emit_32(1126436897);
emit_32(1124132848);
emit_32(1106277302);
emit_32(1126436897);
emit_32(1124388897);
emit_32(1107026667);
emit_32(1126436897);
emit_32(1124644880);
emit_32(1107115324);
emit_32(1126436897);
emit_32(1124900864);
emit_32(1108622626);
emit_32(1126436897);
emit_32(1125156848);
emit_32(1108806546);
emit_32(1126436897);
emit_32(1125412897);
emit_32(1109128328);
emit_32(1126436897);
emit_32(1125668880);
emit_32(1109170114);
emit_32(1126436897);
emit_32(1125924864);
emit_32(1108511739);
emit_32(1126436897);
emit_32(1126180848);
emit_32(1109723867);
emit_32(1126436897);
emit_32(1126436897);
emit_32(1109979719);
emit_32(1126436897);
emit_32(1126692880);
emit_32(1109649182);
emit_32(1126436897);
emit_32(1126948864);
emit_32(1107794749);
emit_32(1126436897);
emit_32(1127204848);
emit_32(1107867677);
emit_32(1126436897);
emit_32(1127460897);
emit_32(1107576278);
emit_32(1126436897);
emit_32(1127716880);
emit_32(1108142168);
emit_32(1126436897);
emit_32(1127972864);
emit_32(1108112284);
emit_32(1126436897);
emit_32(1128228848);
emit_32(1108004202);
emit_32(1126436897);
emit_32(1128484897);
emit_32(1106311696);
emit_32(1126436897);
emit_32(1128740880);
emit_32(1107993349);
emit_32(1126436897);
emit_32(1128996864);
emit_32(1107720798);
emit_32(1126436897);
emit_32(1129252848);
emit_32(1106276306);
emit_32(1126436897);
emit_32(1129508897);
emit_32(1103536849);
emit_32(1126436897);
emit_32(1129764880);
emit_32(1102593288);
emit_32(1126436897);
emit_32(1130020864);
emit_32(1104446017);
emit_32(1126436897);
emit_32(1130276848);
emit_32(1104044255);
emit_32(1126436897);
emit_32(1130532897);
emit_32(1102976752);
emit_32(1126436897);
emit_32(1130788880);
emit_32(1102244531);
emit_32(1126436897);
emit_32(1131044864);
emit_32(1099010199);
emit_32(1126436897);
emit_32(1131300848);
emit_32(1097715417);
emit_32(1126436897);
emit_32(1131556897);
emit_32(1096758067);
emit_32(1126436897);
emit_32(1131812880);
emit_32(1097016856);
emit_32(1126436897);
emit_32(1132068864);
emit_32(1096071355);
emit_32(1126436897);
emit_32(1081737300);
emit_32(1099236901);
emit_32(1126180848);
emit_32(1090125845);
emit_32(1099655702);
emit_32(1126180848);
emit_32(1094418484);
emit_32(1099975256);
emit_32(1126180848);
emit_32(1098514432);
emit_32(1100023700);
emit_32(1126180848);
emit_32(1100759066);
emit_32(1100282436);
emit_32(1126180848);
emit_32(1102807040);
emit_32(1100103077);
emit_32(1126180848);
emit_32(1104855066);
emit_32(1100266183);
emit_32(1126180848);
emit_32(1106903040);
emit_32(1100408947);
emit_32(1126180848);
emit_32(1108123661);
emit_32(1100595488);
emit_32(1126180848);
emit_32(1109147648);
emit_32(1100418698);
emit_32(1126180848);
emit_32(1110171661);
emit_32(1100484601);
emit_32(1126180848);
emit_32(1111195648);
emit_32(1100664327);
emit_32(1126180848);
emit_32(1112219661);
emit_32(1099877791);
emit_32(1126180848);
emit_32(1113243648);
emit_32(1100235250);
emit_32(1126180848);
emit_32(1114267661);
emit_32(1100072773);
emit_32(1126180848);
emit_32(1115291648);
emit_32(1099973001);
emit_32(1126180848);
emit_32(1116000263);
emit_32(1100257165);
emit_32(1126180848);
emit_32(1116512256);
emit_32(1100157288);
emit_32(1126180848);
emit_32(1117024263);
emit_32(1100000369);
emit_32(1126180848);
emit_32(1117536256);
emit_32(1100933077);
emit_32(1126180848);
emit_32(1118048263);
emit_32(1101502192);
emit_32(1126180848);
emit_32(1118560256);
emit_32(1101329701);
emit_32(1126180848);
emit_32(1119072263);
emit_32(1101273078);
emit_32(1126180848);
emit_32(1119584256);
emit_32(1101224057);
emit_32(1126180848);
emit_32(1120096263);
emit_32(1100934231);
emit_32(1126180848);
emit_32(1120608322);
emit_32(1101108137);
emit_32(1126180848);
emit_32(1121120289);
emit_32(1102075344);
emit_32(1126180848);
emit_32(1121632256);
emit_32(1102823975);
emit_32(1126180848);
emit_32(1122144223);
emit_32(1103440694);
emit_32(1126180848);
emit_32(1122656322);
emit_32(1104266238);
emit_32(1126180848);
emit_32(1123168289);
emit_32(1105264588);
emit_32(1126180848);
emit_32(1123680256);
emit_32(1106148170);
emit_32(1126180848);
emit_32(1124132848);
emit_32(1107157267);
emit_32(1126180848);
emit_32(1124388897);
emit_32(1107410970);
emit_32(1126180848);
emit_32(1124644880);
emit_32(1107631669);
emit_32(1126180848);
emit_32(1124900864);
emit_32(1108727248);
emit_32(1126180848);
emit_32(1125156848);
emit_32(1109083947);
emit_32(1126180848);
emit_32(1125412897);
emit_32(1109383499);
emit_32(1126180848);
emit_32(1125668880);
emit_32(1109832552);
emit_32(1126180848);
emit_32(1125924864);
emit_32(1108779362);
emit_32(1126180848);
emit_32(1126180848);
emit_32(1109779336);
emit_32(1126180848);
emit_32(1126436897);
emit_32(1109875019);
emit_32(1126180848);
emit_32(1126692880);
emit_32(1109584485);
emit_32(1126180848);
emit_32(1126948864);
emit_32(1108220130);
emit_32(1126180848);
emit_32(1127204848);
emit_32(1107865790);
emit_32(1126180848);
emit_32(1127460897);
emit_32(1107810792);
emit_32(1126180848);
emit_32(1127716880);
emit_32(1107637358);
emit_32(1126180848);
emit_32(1127972864);
emit_32(1108765940);
emit_32(1126180848);
emit_32(1128228848);
emit_32(1108423134);
emit_32(1126180848);
emit_32(1128484897);
emit_32(1107554101);
emit_32(1126180848);
emit_32(1128740880);
emit_32(1107893184);
emit_32(1126180848);
emit_32(1128996864);
emit_32(1107705384);
emit_32(1126180848);
emit_32(1129252848);
emit_32(1104640790);
emit_32(1126180848);
emit_32(1129508897);
emit_32(1103289857);
emit_32(1126180848);
emit_32(1129764880);
emit_32(1103910824);
emit_32(1126180848);
emit_32(1130020864);
emit_32(1104153359);
emit_32(1126180848);
emit_32(1130276848);
emit_32(1103150186);
emit_32(1126180848);
emit_32(1130532897);
emit_32(1102522509);
emit_32(1126180848);
emit_32(1130788880);
emit_32(1099531498);
emit_32(1126180848);
emit_32(1131044864);
emit_32(1097916953);
emit_32(1126180848);
emit_32(1131300848);
emit_32(1097069285);
emit_32(1126180848);
emit_32(1131556897);
emit_32(1096586310);
emit_32(1126180848);
emit_32(1131812880);
emit_32(1097348625);
emit_32(1126180848);
emit_32(1132068864);
emit_32(1097196791);
emit_32(1126180848);
emit_32(1081737300);
emit_32(1099397648);
emit_32(1125924864);
emit_32(1090125845);
emit_32(1100083993);
emit_32(1125924864);
emit_32(1094418484);
emit_32(1100159071);
emit_32(1125924864);
emit_32(1098514432);
emit_32(1100011536);
emit_32(1125924864);
emit_32(1100759066);
emit_32(1100346556);
emit_32(1125924864);
emit_32(1102807040);
emit_32(1100440404);
emit_32(1125924864);
emit_32(1104855066);
emit_32(1100194775);
emit_32(1125924864);
emit_32(1106903040);
emit_32(1100304561);
emit_32(1125924864);
emit_32(1108123661);
emit_32(1100451571);
emit_32(1125924864);
emit_32(1109147648);
emit_32(1100478992);
emit_32(1125924864);
emit_32(1110171661);
emit_32(1100408580);
emit_32(1125924864);
emit_32(1111195648);
emit_32(1100317249);
emit_32(1125924864);
emit_32(1112219661);
emit_32(1100401554);
emit_32(1125924864);
emit_32(1113243648);
emit_32(1100711618);
emit_32(1125924864);
emit_32(1114267661);
emit_32(1100343358);
emit_32(1125924864);
emit_32(1115291648);
emit_32(1099679924);
emit_32(1125924864);
emit_32(1116000263);
emit_32(1100265868);
emit_32(1125924864);
emit_32(1116512256);
emit_32(1100336438);
emit_32(1125924864);
emit_32(1117024263);
emit_32(1100743338);
emit_32(1125924864);
emit_32(1117536256);
emit_32(1100911529);
emit_32(1125924864);
emit_32(1118048263);
emit_32(1100933916);
emit_32(1125924864);
emit_32(1118560256);
emit_32(1100950012);
emit_32(1125924864);
emit_32(1119072263);
emit_32(1100711251);
emit_32(1125924864);
emit_32(1119584256);
emit_32(1100374239);
emit_32(1125924864);
emit_32(1120096263);
emit_32(1100424046);
emit_32(1125924864);
emit_32(1120608322);
emit_32(1101327290);
emit_32(1125924864);
emit_32(1121120289);
emit_32(1102568437);
emit_32(1125924864);
emit_32(1121632256);
emit_32(1103744257);
emit_32(1125924864);
emit_32(1122144223);
emit_32(1104560993);
emit_32(1125924864);
emit_32(1122656322);
emit_32(1105101115);
emit_32(1125924864);
emit_32(1123168289);
emit_32(1106075032);
emit_32(1125924864);
emit_32(1123680256);
emit_32(1107013874);
emit_32(1125924864);
emit_32(1124132848);
emit_32(1107516116);
emit_32(1125924864);
emit_32(1124388897);
emit_32(1107763764);
emit_32(1125924864);
emit_32(1124644880);
emit_32(1107925035);
emit_32(1125924864);
emit_32(1124900864);
emit_32(1108124867);
emit_32(1125924864);
emit_32(1125156848);
emit_32(1109418652);
emit_32(1125924864);
emit_32(1125412897);
emit_32(1109666352);
emit_32(1125924864);
emit_32(1125668880);
emit_32(1109926216);
emit_32(1125924864);
emit_32(1125924864);
emit_32(1109962156);
emit_32(1125924864);
emit_32(1126180848);
emit_32(1109898428);
emit_32(1125924864);
emit_32(1126436897);
emit_32(1110252978);
emit_32(1125924864);
emit_32(1126692880);
emit_32(1110074851);
emit_32(1125924864);
emit_32(1126948864);
emit_32(1108526681);
emit_32(1125924864);
emit_32(1127204848);
emit_32(1108040561);
emit_32(1125924864);
emit_32(1127460897);
emit_32(1108008160);
emit_32(1125924864);
emit_32(1127716880);
emit_32(1107835722);
emit_32(1125924864);
emit_32(1127972864);
emit_32(1107758862);
emit_32(1125924864);
emit_32(1128228848);
emit_32(1107617173);
emit_32(1125924864);
emit_32(1128484897);
emit_32(1107323860);
emit_32(1125924864);
emit_32(1128740880);
emit_32(1106591770);
emit_32(1125924864);
emit_32(1128996864);
emit_32(1107721716);
emit_32(1125924864);
emit_32(1129252848);
emit_32(1105209537);
emit_32(1125924864);
emit_32(1129508897);
emit_32(1106514647);
emit_32(1125924864);
emit_32(1129764880);
emit_32(1105924089);
emit_32(1125924864);
emit_32(1130020864);
emit_32(1104857583);
emit_32(1125924864);
emit_32(1130276848);
emit_32(1104080850);
emit_32(1125924864);
emit_32(1130532897);
emit_32(1103165338);
emit_32(1125924864);
emit_32(1130788880);
emit_32(1099955123);
emit_32(1125924864);
emit_32(1131044864);
emit_32(1098976015);
emit_32(1125924864);
emit_32(1131300848);
emit_32(1097678822);
emit_32(1125924864);
emit_32(1131556897);
emit_32(1095863632);
emit_32(1125924864);
emit_32(1131812880);
emit_32(1096143811);
emit_32(1125924864);
emit_32(1132068864);
emit_32(1096399978);
emit_32(1125924864);
emit_32(1081737300);
emit_32(1099796421);
emit_32(1125668880);
emit_32(1090125845);
emit_32(1100536244);
emit_32(1125668880);
emit_32(1094418484);
emit_32(1100815951);
emit_32(1125668880);
emit_32(1098514432);
emit_32(1100932763);
emit_32(1125668880);
emit_32(1100759066);
emit_32(1100556691);
emit_32(1125668880);
emit_32(1102807040);
emit_32(1100739091);
emit_32(1125668880);
emit_32(1104855066);
emit_32(1100685404);
emit_32(1125668880);
emit_32(1106903040);
emit_32(1100296592);
emit_32(1125668880);
emit_32(1108123661);
emit_32(1100158652);
emit_32(1125668880);
emit_32(1109147648);
emit_32(1100060033);
emit_32(1125668880);
emit_32(1110171661);
emit_32(1100191996);
emit_32(1125668880);
emit_32(1111195648);
emit_32(1099855718);
emit_32(1125668880);
emit_32(1112219661);
emit_32(1100233887);
emit_32(1125668880);
emit_32(1113243648);
emit_32(1100904976);
emit_32(1125668880);
emit_32(1114267661);
emit_32(1100654785);
emit_32(1125668880);
emit_32(1115291648);
emit_32(1100035234);
emit_32(1125668880);
emit_32(1116000263);
emit_32(1099851262);
emit_32(1125668880);
emit_32(1116512256);
emit_32(1099917741);
emit_32(1125668880);
emit_32(1117024263);
emit_32(1100254544);
emit_32(1125668880);
emit_32(1117536256);
emit_32(1100744910);
emit_32(1125668880);
emit_32(1118048263);
emit_32(1101045065);
emit_32(1125668880);
emit_32(1118560256);
emit_32(1100752460);
emit_32(1125668880);
emit_32(1119072263);
emit_32(1101140695);
emit_32(1125668880);
emit_32(1119584256);
emit_32(1100593706);
emit_32(1125668880);
emit_32(1120096263);
emit_32(1101066351);
emit_32(1125668880);
emit_32(1120608322);
emit_32(1102014421);
emit_32(1125668880);
emit_32(1121120289);
emit_32(1103061005);
emit_32(1125668880);
emit_32(1121632256);
emit_32(1104070627);
emit_32(1125668880);
emit_32(1122144223);
emit_32(1105156270);
emit_32(1125668880);
emit_32(1122656322);
emit_32(1105870088);
emit_32(1125668880);
emit_32(1123168289);
emit_32(1106367690);
emit_32(1125668880);
emit_32(1123680256);
emit_32(1107164922);
emit_32(1125668880);
emit_32(1124132848);
emit_32(1107602545);
emit_32(1125668880);
emit_32(1124388897);
emit_32(1107941812);
emit_32(1125668880);
emit_32(1124644880);
emit_32(1108344334);
emit_32(1125668880);
emit_32(1124900864);
emit_32(1108480308);
emit_32(1125668880);
emit_32(1125156848);
emit_32(1108327137);
emit_32(1125668880);
emit_32(1125412897);
emit_32(1109716107);
emit_32(1125668880);
emit_32(1125668880);
emit_32(1110107934);
emit_32(1125668880);
emit_32(1125924864);
emit_32(1110315159);
emit_32(1125668880);
emit_32(1126180848);
emit_32(1110535569);
emit_32(1125668880);
emit_32(1126436897);
emit_32(1110503509);
emit_32(1125668880);
emit_32(1126692880);
emit_32(1109463636);
emit_32(1125668880);
emit_32(1126948864);
emit_32(1108400118);
emit_32(1125668880);
emit_32(1127204848);
emit_32(1108447225);
emit_32(1125668880);
emit_32(1127460897);
emit_32(1108142195);
emit_32(1125668880);
emit_32(1127716880);
emit_32(1108004202);
emit_32(1125668880);
emit_32(1127972864);
emit_32(1108024046);
emit_32(1125668880);
emit_32(1128228848);
emit_32(1107844452);
emit_32(1125668880);
emit_32(1128484897);
emit_32(1107348947);
emit_32(1125668880);
emit_32(1128740880);
emit_32(1106593763);
emit_32(1125668880);
emit_32(1128996864);
emit_32(1105593683);
emit_32(1125668880);
emit_32(1129252848);
emit_32(1107573788);
emit_32(1125668880);
emit_32(1129508897);
emit_32(1107189039);
emit_32(1125668880);
emit_32(1129764880);
emit_32(1106191581);
emit_32(1125668880);
emit_32(1130020864);
emit_32(1104988812);
emit_32(1125668880);
emit_32(1130276848);
emit_32(1104221150);
emit_32(1125668880);
emit_32(1130532897);
emit_32(1100814903);
emit_32(1125668880);
emit_32(1130788880);
emit_32(1100302044);
emit_32(1125668880);
emit_32(1131044864);
emit_32(1099639816);
emit_32(1125668880);
emit_32(1131300848);
emit_32(1098467980);
emit_32(1125668880);
emit_32(1131556897);
emit_32(1096188795);
emit_32(1125668880);
emit_32(1131812880);
emit_32(1095551051);
emit_32(1125668880);
emit_32(1132068864);
emit_32(1095331689);
emit_32(1125668880);
emit_32(1081737258);
emit_32(1100171654);
emit_32(1125412897);
emit_32(1090125845);
emit_32(1100384200);
emit_32(1125412897);
emit_32(1094418484);
emit_32(1101392563);
emit_32(1125412897);
emit_32(1098514432);
emit_32(1101939763);
emit_32(1125412897);
emit_32(1100759066);
emit_32(1101350096);
emit_32(1125412897);
emit_32(1102807040);
emit_32(1100931242);
emit_32(1125412897);
emit_32(1104855066);
emit_32(1101054660);
emit_32(1125412897);
emit_32(1106903040);
emit_32(1100365745);
emit_32(1125412897);
emit_32(1108123661);
emit_32(1100020711);
emit_32(1125412897);
emit_32(1109147648);
emit_32(1099837211);
emit_32(1125412897);
emit_32(1110171661);
emit_32(1099961205);
emit_32(1125412897);
emit_32(1111195648);
emit_32(1099795792);
emit_32(1125412897);
emit_32(1112219661);
emit_32(1099519282);
emit_32(1125412897);
emit_32(1113243648);
emit_32(1100138886);
emit_32(1125412897);
emit_32(1114267661);
emit_32(1100250454);
emit_32(1125412897);
emit_32(1115291648);
emit_32(1100025640);
emit_32(1125412897);
emit_32(1116000263);
emit_32(1099647890);
emit_32(1125412897);
emit_32(1116512256);
emit_32(1099582564);
emit_32(1125412897);
emit_32(1117024263);
emit_32(1099791335);
emit_32(1125412897);
emit_32(1117536256);
emit_32(1100303198);
emit_32(1125412897);
emit_32(1118048263);
emit_32(1100818520);
emit_32(1125412897);
emit_32(1118560256);
emit_32(1100729182);
emit_32(1125412897);
emit_32(1119072263);
emit_32(1101156162);
emit_32(1125412897);
emit_32(1119584256);
emit_32(1101134247);
emit_32(1125412897);
emit_32(1120096263);
emit_32(1101623565);
emit_32(1125412897);
emit_32(1120608322);
emit_32(1102682626);
emit_32(1125412897);
emit_32(1121120289);
emit_32(1103567205);
emit_32(1125412897);
emit_32(1121632256);
emit_32(1104435374);
emit_32(1125412897);
emit_32(1122144223);
emit_32(1105541464);
emit_32(1125412897);
emit_32(1122656322);
emit_32(1106370730);
emit_32(1125412897);
emit_32(1123168289);
emit_32(1107136296);
emit_32(1125412897);
emit_32(1123680256);
emit_32(1107622678);
emit_32(1125412897);
emit_32(1124132848);
emit_32(1107924458);
emit_32(1125412897);
emit_32(1124388897);
emit_32(1108157006);
emit_32(1125412897);
emit_32(1124644880);
emit_32(1108530928);
emit_32(1125412897);
emit_32(1124900864);
emit_32(1108656600);
emit_32(1125412897);
emit_32(1125156848);
emit_32(1108481461);
emit_32(1125412897);
emit_32(1125412897);
emit_32(1108539159);
emit_32(1125412897);
emit_32(1125668880);
emit_32(1110441066);
emit_32(1125412897);
emit_32(1125924864);
emit_32(1110692148);
emit_32(1125412897);
emit_32(1126180848);
emit_32(1110653744);
emit_32(1125412897);
emit_32(1126436897);
emit_32(1110727721);
emit_32(1125412897);
emit_32(1126692880);
emit_32(1110202673);
emit_32(1125412897);
emit_32(1126948864);
emit_32(1109971881);
emit_32(1125412897);
emit_32(1127204848);
emit_32(1109534940);
emit_32(1125412897);
emit_32(1127460897);
emit_32(1108342263);
emit_32(1125412897);
emit_32(1127716880);
emit_32(1107927840);
emit_32(1125412897);
emit_32(1127972864);
emit_32(1108111183);
emit_32(1125412897);
emit_32(1128228848);
emit_32(1107908939);
emit_32(1125412897);
emit_32(1128484897);
emit_32(1108258954);
emit_32(1125412897);
emit_32(1128740880);
emit_32(1108072464);
emit_32(1125412897);
emit_32(1128996864);
emit_32(1107928180);
emit_32(1125412897);
emit_32(1129252848);
emit_32(1107296990);
emit_32(1125412897);
emit_32(1129508897);
emit_32(1106977751);
emit_32(1125412897);
emit_32(1129764880);
emit_32(1105908938);
emit_32(1125412897);
emit_32(1130020864);
emit_32(1105000556);
emit_32(1125412897);
emit_32(1130276848);
emit_32(1101880046);
emit_32(1125412897);
emit_32(1130532897);
emit_32(1101191447);
emit_32(1125412897);
emit_32(1130788880);
emit_32(1100805675);
emit_32(1125412897);
emit_32(1131044864);
emit_32(1099759459);
emit_32(1125412897);
emit_32(1131300848);
emit_32(1099177761);
emit_32(1125412897);
emit_32(1131556897);
emit_32(1097755263);
emit_32(1125412897);
emit_32(1131812880);
emit_32(1095551576);
emit_32(1125412897);
emit_32(1132068864);
emit_32(1095000968);
emit_32(1125412897);
emit_32(1081737258);
emit_32(1099891107);
emit_32(1125156848);
emit_32(1090125845);
emit_32(1100647078);
emit_32(1125156848);
emit_32(1094418484);
emit_32(1101487879);
emit_32(1125156848);
emit_32(1098514432);
emit_32(1101979399);
emit_32(1125156848);
emit_32(1100759066);
emit_32(1101681341);
emit_32(1125156848);
emit_32(1102807040);
emit_32(1100993475);
emit_32(1125156848);
emit_32(1104855066);
emit_32(1100813907);
emit_32(1125156848);
emit_32(1106903040);
emit_32(1100711094);
emit_32(1125156848);
emit_32(1108123661);
emit_32(1100302044);
emit_32(1125156848);
emit_32(1109147648);
emit_32(1099535063);
emit_32(1125156848);
emit_32(1110171661);
emit_32(1099325506);
emit_32(1125156848);
emit_32(1111195648);
emit_32(1099122554);
emit_32(1125156848);
emit_32(1112219661);
emit_32(1099190764);
emit_32(1125156848);
emit_32(1113243648);
emit_32(1099332846);
emit_32(1125156848);
emit_32(1114267661);
emit_32(1099594465);
emit_32(1125156848);
emit_32(1115291648);
emit_32(1099712850);
emit_32(1125156848);
emit_32(1116000263);
emit_32(1099353031);
emit_32(1125156848);
emit_32(1116512256);
emit_32(1099544553);
emit_32(1125156848);
emit_32(1117024263);
emit_32(1099237163);
emit_32(1125156848);
emit_32(1117536256);
emit_32(1099846700);
emit_32(1125156848);
emit_32(1118048263);
emit_32(1100273628);
emit_32(1125156848);
emit_32(1118560256);
emit_32(1100368839);
emit_32(1125156848);
emit_32(1119072263);
emit_32(1101256668);
emit_32(1125156848);
emit_32(1119584256);
emit_32(1101557609);
emit_32(1125156848);
emit_32(1120096263);
emit_32(1101502192);
emit_32(1125156848);
emit_32(1120608322);
emit_32(1102635231);
emit_32(1125156848);
emit_32(1121120289);
emit_32(1103741374);
emit_32(1125156848);
emit_32(1121632256);
emit_32(1104695211);
emit_32(1125156848);
emit_32(1122144223);
emit_32(1105984016);
emit_32(1125156848);
emit_32(1122656322);
emit_32(1106774537);
emit_32(1125156848);
emit_32(1123168289);
emit_32(1107580944);
emit_32(1125156848);
emit_32(1123680256);
emit_32(1107993847);
emit_32(1125156848);
emit_32(1124132848);
emit_32(1108308813);
emit_32(1125156848);
emit_32(1124388897);
emit_32(1108572163);
emit_32(1125156848);
emit_32(1124644880);
emit_32(1108751548);
emit_32(1125156848);
emit_32(1124900864);
emit_32(1108775613);
emit_32(1125156848);
emit_32(1125156848);
emit_32(1108840887);
emit_32(1125156848);
emit_32(1125412897);
emit_32(1108640452);
emit_32(1125156848);
emit_32(1125668880);
emit_32(1109400932);
emit_32(1125156848);
emit_32(1125924864);
emit_32(1110700537);
emit_32(1125156848);
emit_32(1126180848);
emit_32(1110726279);
emit_32(1125156848);
emit_32(1126436897);
emit_32(1110647059);
emit_32(1125156848);
emit_32(1126692880);
emit_32(1110057628);
emit_32(1125156848);
emit_32(1126948864);
emit_32(1109862960);
emit_32(1125156848);
emit_32(1127204848);
emit_32(1109806599);
emit_32(1125156848);
emit_32(1127460897);
emit_32(1109740539);
emit_32(1125156848);
emit_32(1127716880);
emit_32(1109309417);
emit_32(1125156848);
emit_32(1127972864);
emit_32(1109254577);
emit_32(1125156848);
emit_32(1128228848);
emit_32(1109010704);
emit_32(1125156848);
emit_32(1128484897);
emit_32(1108707980);
emit_32(1125156848);
emit_32(1128740880);
emit_32(1108196590);
emit_32(1125156848);
emit_32(1128996864);
emit_32(1107884428);
emit_32(1125156848);
emit_32(1129252848);
emit_32(1107202828);
emit_32(1125156848);
emit_32(1129508897);
emit_32(1106564402);
emit_32(1125156848);
emit_32(1129764880);
emit_32(1104622440);
emit_32(1125156848);
emit_32(1130020864);
emit_32(1102215591);
emit_32(1125156848);
emit_32(1130276848);
emit_32(1101762186);
emit_32(1125156848);
emit_32(1130532897);
emit_32(1101353085);
emit_32(1125156848);
emit_32(1130788880);
emit_32(1101174984);
emit_32(1125156848);
emit_32(1131044864);
emit_32(1099976252);
emit_32(1125156848);
emit_32(1131300848);
emit_32(1098682624);
emit_32(1125156848);
emit_32(1131556897);
emit_32(1097157994);
emit_32(1125156848);
emit_32(1131812880);
emit_32(1095208586);
emit_32(1125156848);
emit_32(1132068864);
emit_32(1095289117);
emit_32(1125156848);
emit_32(1081737258);
emit_32(1100260206);
emit_32(1124900864);
emit_32(1090125845);
emit_32(1100861722);
emit_32(1124900864);
emit_32(1094418484);
emit_32(1101453905);
emit_32(1124900864);
emit_32(1098514432);
emit_32(1101891581);
emit_32(1124900864);
emit_32(1100759066);
emit_32(1101491759);
emit_32(1124900864);
emit_32(1102807040);
emit_32(1101032640);
emit_32(1124900864);
emit_32(1104855066);
emit_32(1100567282);
emit_32(1124900864);
emit_32(1106903040);
emit_32(1100372876);
emit_32(1124900864);
emit_32(1108123661);
emit_32(1100112672);
emit_32(1124900864);
emit_32(1109147648);
emit_32(1099604689);
emit_32(1124900864);
emit_32(1110171661);
emit_32(1099198995);
emit_32(1124900864);
emit_32(1111195648);
emit_32(1098995676);
emit_32(1124900864);
emit_32(1112219661);
emit_32(1098921384);
emit_32(1124900864);
emit_32(1113243648);
emit_32(1098994627);
emit_32(1124900864);
emit_32(1114267661);
emit_32(1099148296);
emit_32(1124900864);
emit_32(1115291648);
emit_32(1099448032);
emit_32(1124900864);
emit_32(1116000263);
emit_32(1099762395);
emit_32(1124900864);
emit_32(1116512256);
emit_32(1099304849);
emit_32(1124900864);
emit_32(1117024263);
emit_32(1099411698);
emit_32(1124900864);
emit_32(1117536256);
emit_32(1099612239);
emit_32(1124900864);
emit_32(1118048263);
emit_32(1099837840);
emit_32(1124900864);
emit_32(1118560256);
emit_32(1100521092);
emit_32(1124900864);
emit_32(1119072263);
emit_32(1101042758);
emit_32(1124900864);
emit_32(1119584256);
emit_32(1101829715);
emit_32(1124900864);
emit_32(1120096263);
emit_32(1101787195);
emit_32(1124900864);
emit_32(1120608322);
emit_32(1103231661);
emit_32(1124900864);
emit_32(1121120289);
emit_32(1104133017);
emit_32(1124900864);
emit_32(1121632256);
emit_32(1105136347);
emit_32(1124900864);
emit_32(1122144223);
emit_32(1106058779);
emit_32(1124900864);
emit_32(1122656322);
emit_32(1107306060);
emit_32(1124900864);
emit_32(1123168289);
emit_32(1107824214);
emit_32(1124900864);
emit_32(1123680256);
emit_32(1108124343);
emit_32(1124900864);
emit_32(1124132848);
emit_32(1108411050);
emit_32(1124900864);
emit_32(1124388897);
emit_32(1108748167);
emit_32(1124900864);
emit_32(1124644880);
emit_32(1108912295);
emit_32(1124900864);
emit_32(1124900864);
emit_32(1108843273);
emit_32(1124900864);
emit_32(1125156848);
emit_32(1109145892);
emit_32(1124900864);
emit_32(1125412897);
emit_32(1108908258);
emit_32(1124900864);
emit_32(1125668880);
emit_32(1109287685);
emit_32(1124900864);
emit_32(1125924864);
emit_32(1109482773);
emit_32(1124900864);
emit_32(1126180848);
emit_32(1109256516);
emit_32(1124900864);
emit_32(1126436897);
emit_32(1110387222);
emit_32(1124900864);
emit_32(1126692880);
emit_32(1110113439);
emit_32(1124900864);
emit_32(1126948864);
emit_32(1109770738);
emit_32(1124900864);
emit_32(1127204848);
emit_32(1109713748);
emit_32(1124900864);
emit_32(1127460897);
emit_32(1109642471);
emit_32(1124900864);
emit_32(1127716880);
emit_32(1109465262);
emit_32(1124900864);
emit_32(1127972864);
emit_32(1109524768);
emit_32(1124900864);
emit_32(1128228848);
emit_32(1109357599);
emit_32(1124900864);
emit_32(1128484897);
emit_32(1108841438);
emit_32(1124900864);
emit_32(1128740880);
emit_32(1108264013);
emit_32(1124900864);
emit_32(1128996864);
emit_32(1107582543);
emit_32(1124900864);
emit_32(1129252848);
emit_32(1106640739);
emit_32(1124900864);
emit_32(1129508897);
emit_32(1103288074);
emit_32(1124900864);
emit_32(1129764880);
emit_32(1102897585);
emit_32(1124900864);
emit_32(1130020864);
emit_32(1102698145);
emit_32(1124900864);
emit_32(1130276848);
emit_32(1101950353);
emit_32(1124900864);
emit_32(1130532897);
emit_32(1101571713);
emit_32(1124900864);
emit_32(1130788880);
emit_32(1101236693);
emit_32(1124900864);
emit_32(1131044864);
emit_32(1100675547);
emit_32(1124900864);
emit_32(1131300848);
emit_32(1099383387);
emit_32(1124900864);
emit_32(1131556897);
emit_32(1098585840);
emit_32(1124900864);
emit_32(1131812880);
emit_32(1096815319);
emit_32(1124900864);
emit_32(1132068864);
emit_32(1095522740);
emit_32(1124900864);
emit_32(1081737258);
emit_32(1100859258);
emit_32(1124644880);
emit_32(1090125845);
emit_32(1101195903);
emit_32(1124644880);
emit_32(1094418484);
emit_32(1101106407);
emit_32(1124644880);
emit_32(1098514432);
emit_32(1101011196);
emit_32(1124644880);
emit_32(1100759066);
emit_32(1101487355);
emit_32(1124644880);
emit_32(1102807040);
emit_32(1101120563);
emit_32(1124644880);
emit_32(1104855066);
emit_32(1100659766);
emit_32(1124644880);
emit_32(1106903040);
emit_32(1100064175);
emit_32(1124644880);
emit_32(1108123661);
emit_32(1099751175);
emit_32(1124644880);
emit_32(1109147648);
emit_32(1099500618);
emit_32(1124644880);
emit_32(1110171661);
emit_32(1099345376);
emit_32(1124644880);
emit_32(1111195648);
emit_32(1099089157);
emit_32(1124644880);
emit_32(1112219661);
emit_32(1098329673);
emit_32(1124644880);
emit_32(1113243648);
emit_32(1098686084);
emit_32(1124644880);
emit_32(1114267661);
emit_32(1099133616);
emit_32(1124644880);
emit_32(1115291648);
emit_32(1099084752);
emit_32(1124644880);
emit_32(1116000263);
emit_32(1099672322);
emit_32(1124644880);
emit_32(1116512256);
emit_32(1099700004);
emit_32(1124644880);
emit_32(1117024263);
emit_32(1099767847);
emit_32(1124644880);
emit_32(1117536256);
emit_32(1099478440);
emit_32(1124644880);
emit_32(1118048263);
emit_32(1099565892);
emit_32(1124644880);
emit_32(1118560256);
emit_32(1100285634);
emit_32(1124644880);
emit_32(1119072263);
emit_32(1100840908);
emit_32(1124644880);
emit_32(1119584256);
emit_32(1101579577);
emit_32(1124644880);
emit_32(1120096263);
emit_32(1101821746);
emit_32(1124644880);
emit_32(1120608322);
emit_32(1103580575);
emit_32(1124644880);
emit_32(1121120289);
emit_32(1104976858);
emit_32(1124644880);
emit_32(1121632256);
emit_32(1105588440);
emit_32(1124644880);
emit_32(1122144223);
emit_32(1106822195);
emit_32(1124644880);
emit_32(1122656322);
emit_32(1107756686);
emit_32(1124644880);
emit_32(1123168289);
emit_32(1108002131);
emit_32(1124644880);
emit_32(1123680256);
emit_32(1108095874);
emit_32(1124644880);
emit_32(1124132848);
emit_32(1108362055);
emit_32(1124644880);
emit_32(1124388897);
emit_32(1108659431);
emit_32(1124644880);
emit_32(1124644880);
emit_32(1109016576);
emit_32(1124644880);
emit_32(1124900864);
emit_32(1109100043);
emit_32(1124644880);
emit_32(1125156848);
emit_32(1109226842);
emit_32(1124644880);
emit_32(1125412897);
emit_32(1109110030);
emit_32(1124644880);
emit_32(1125668880);
emit_32(1109268916);
emit_32(1124644880);
emit_32(1125924864);
emit_32(1109272612);
emit_32(1124644880);
emit_32(1126180848);
emit_32(1109315053);
emit_32(1124644880);
emit_32(1126436897);
emit_32(1108975105);
emit_32(1124644880);
emit_32(1126692880);
emit_32(1108796559);
emit_32(1124644880);
emit_32(1126948864);
emit_32(1108827649);
emit_32(1124644880);
emit_32(1127204848);
emit_32(1109670651);
emit_32(1124644880);
emit_32(1127460897);
emit_32(1109571771);
emit_32(1124644880);
emit_32(1127716880);
emit_32(1109561993);
emit_32(1124644880);
emit_32(1127972864);
emit_32(1109715478);
emit_32(1124644880);
emit_32(1128228848);
emit_32(1109451342);
emit_32(1124644880);
emit_32(1128484897);
emit_32(1108848070);
emit_32(1124644880);
emit_32(1128740880);
emit_32(1106750525);
emit_32(1124644880);
emit_32(1128996864);
emit_32(1105305377);
emit_32(1124644880);
emit_32(1129252848);
emit_32(1103748819);
emit_32(1124644880);
emit_32(1129508897);
emit_32(1103181906);
emit_32(1124644880);
emit_32(1129764880);
emit_32(1102910272);
emit_32(1124644880);
emit_32(1130020864);
emit_32(1102380846);
emit_32(1124644880);
emit_32(1130276848);
emit_32(1101721764);
emit_32(1124644880);
emit_32(1130532897);
emit_32(1101539941);
emit_32(1124644880);
emit_32(1130788880);
emit_32(1101138913);
emit_32(1124644880);
emit_32(1131044864);
emit_32(1100148166);
emit_32(1124644880);
emit_32(1131300848);
emit_32(1099305268);
emit_32(1124644880);
emit_32(1131556897);
emit_32(1099050412);
emit_32(1124644880);
emit_32(1131812880);
emit_32(1097572601);
emit_32(1124644880);
emit_32(1132068864);
emit_32(1096388234);
emit_32(1124644880);
emit_32(1081737258);
emit_32(1100982465);
emit_32(1124388897);
emit_32(1090125824);
emit_32(1101595148);
emit_32(1124388897);
emit_32(1094418484);
emit_32(1101527882);
emit_32(1124388897);
emit_32(1098514432);
emit_32(1101659007);
emit_32(1124388897);
emit_32(1100759066);
emit_32(1101842665);
emit_32(1124388897);
emit_32(1102807040);
emit_32(1101032902);
emit_32(1124388897);
emit_32(1104855066);
emit_32(1100272108);
emit_32(1124388897);
emit_32(1106903040);
emit_32(1100043256);
emit_32(1124388897);
emit_32(1108123661);
emit_32(1099540464);
emit_32(1124388897);
emit_32(1109147648);
emit_32(1099626080);
emit_32(1124388897);
emit_32(1110171661);
emit_32(1099081554);
emit_32(1124388897);
emit_32(1111195648);
emit_32(1098359138);
emit_32(1124388897);
emit_32(1112219661);
emit_32(1097625344);
emit_32(1124388897);
emit_32(1113243648);
emit_32(1097653341);
emit_32(1124388897);
emit_32(1114267661);
emit_32(1098623589);
emit_32(1124388897);
emit_32(1115291648);
emit_32(1099027815);
emit_32(1124388897);
emit_32(1116000263);
emit_32(1099509950);
emit_32(1124388897);
emit_32(1116512256);
emit_32(1099695496);
emit_32(1124388897);
emit_32(1117024263);
emit_32(1099418095);
emit_32(1124388897);
emit_32(1117536256);
emit_32(1099118097);
emit_32(1124388897);
emit_32(1118048263);
emit_32(1099305111);
emit_32(1124388897);
emit_32(1118560256);
emit_32(1100055524);
emit_32(1124388897);
emit_32(1119072263);
emit_32(1101014132);
emit_32(1124388897);
emit_32(1119584256);
emit_32(1101309569);
emit_32(1124388897);
emit_32(1120096263);
emit_32(1102362339);
emit_32(1124388897);
emit_32(1120608322);
emit_32(1103979663);
emit_32(1124388897);
emit_32(1121120289);
emit_32(1105246709);
emit_32(1124388897);
emit_32(1121632256);
emit_32(1105782322);
emit_32(1124388897);
emit_32(1122144223);
emit_32(1107021110);
emit_32(1124388897);
emit_32(1122656322);
emit_32(1107619427);
emit_32(1124388897);
emit_32(1123168289);
emit_32(1107918769);
emit_32(1124388897);
emit_32(1123680256);
emit_32(1108052515);
emit_32(1124388897);
emit_32(1124132848);
emit_32(1108443687);
emit_32(1124388897);
emit_32(1124388897);
emit_32(1108689656);
emit_32(1124388897);
emit_32(1124644880);
emit_32(1109031544);
emit_32(1124388897);
emit_32(1124900864);
emit_32(1109169904);
emit_32(1124388897);
emit_32(1125156848);
emit_32(1109272691);
emit_32(1124388897);
emit_32(1125412897);
emit_32(1109111367);
emit_32(1124388897);
emit_32(1125668880);
emit_32(1109309548);
emit_32(1124388897);
emit_32(1125924864);
emit_32(1109332460);
emit_32(1124388897);
emit_32(1126180848);
emit_32(1109248285);
emit_32(1124388897);
emit_32(1126436897);
emit_32(1108946898);
emit_32(1124388897);
emit_32(1126692880);
emit_32(1108703419);
emit_32(1124388897);
emit_32(1126948864);
emit_32(1108479758);
emit_32(1124388897);
emit_32(1127204848);
emit_32(1108324306);
emit_32(1124388897);
emit_32(1127460897);
emit_32(1108262886);
emit_32(1124388897);
emit_32(1127716880);
emit_32(1108353955);
emit_32(1124388897);
emit_32(1127972864);
emit_32(1108388610);
emit_32(1124388897);
emit_32(1128228848);
emit_32(1108016156);
emit_32(1124388897);
emit_32(1128484897);
emit_32(1107451209);
emit_32(1124388897);
emit_32(1128740880);
emit_32(1106693797);
emit_32(1124388897);
emit_32(1128996864);
emit_32(1105140908);
emit_32(1124388897);
emit_32(1129252848);
emit_32(1103671801);
emit_32(1124388897);
emit_32(1129508897);
emit_32(1102951481);
emit_32(1124388897);
emit_32(1129764880);
emit_32(1102824813);
emit_32(1124388897);
emit_32(1130020864);
emit_32(1102191421);
emit_32(1124388897);
emit_32(1130276848);
emit_32(1101602960);
emit_32(1124388897);
emit_32(1130532897);
emit_32(1101147668);
emit_32(1124388897);
emit_32(1130788880);
emit_32(1100725774);
emit_32(1124388897);
emit_32(1131044864);
emit_32(1100192730);
emit_32(1124388897);
emit_32(1131300848);
emit_32(1099972267);
emit_32(1124388897);
emit_32(1131556897);
emit_32(1099729574);
emit_32(1124388897);
emit_32(1131812880);
emit_32(1099118936);
emit_32(1124388897);
emit_32(1132068864);
emit_32(1097577634);
emit_32(1124388897);
emit_32(1081737258);
emit_32(1101050728);
emit_32(1124132848);
emit_32(1090125866);
emit_32(1101569144);
emit_32(1124132848);
emit_32(1094418484);
emit_32(1101742788);
emit_32(1124132848);
emit_32(1098514432);
emit_32(1102383625);
emit_32(1124132848);
emit_32(1100759066);
emit_32(1102114927);
emit_32(1124132848);
emit_32(1102807040);
emit_32(1101213309);
emit_32(1124132848);
emit_32(1104855066);
emit_32(1100341209);
emit_32(1124132848);
emit_32(1106903040);
emit_32(1099911345);
emit_32(1124132848);
emit_32(1108123661);
emit_32(1099586129);
emit_32(1124132848);
emit_32(1109147648);
emit_32(1099190030);
emit_32(1124132848);
emit_32(1110171661);
emit_32(1098581751);
emit_32(1124132848);
emit_32(1111195648);
emit_32(1097483053);
emit_32(1124132848);
emit_32(1112219661);
emit_32(1097178022);
emit_32(1124132848);
emit_32(1113243648);
emit_32(1096978688);
emit_32(1124132848);
emit_32(1114267661);
emit_32(1097352610);
emit_32(1124132848);
emit_32(1115291648);
emit_32(1097969906);
emit_32(1124132848);
emit_32(1116000263);
emit_32(1098943509);
emit_32(1124132848);
emit_32(1116512256);
emit_32(1099235380);
emit_32(1124132848);
emit_32(1117024263);
emit_32(1098875037);
emit_32(1124132848);
emit_32(1117536256);
emit_32(1098919916);
emit_32(1124132848);
emit_32(1118048263);
emit_32(1099015127);
emit_32(1124132848);
emit_32(1118560256);
emit_32(1100384410);
emit_32(1124132848);
emit_32(1119072263);
emit_32(1100817786);
emit_32(1124132848);
emit_32(1119584256);
emit_32(1101157682);
emit_32(1124132848);
emit_32(1120096263);
emit_32(1102698670);
emit_32(1124132848);
emit_32(1120608322);
emit_32(1104088662);
emit_32(1124132848);
emit_32(1121120289);
emit_32(1104975548);
emit_32(1124132848);
emit_32(1121632256);
emit_32(1105705671);
emit_32(1124132848);
emit_32(1122144223);
emit_32(1106546629);
emit_32(1124132848);
emit_32(1122656322);
emit_32(1107224271);
emit_32(1124132848);
emit_32(1123168289);
emit_32(1107432990);
emit_32(1124132848);
emit_32(1123680256);
emit_32(1107870823);
emit_32(1124132848);
emit_32(1124132848);
emit_32(1108611197);
emit_32(1124132848);
emit_32(1124388897);
emit_32(1109002394);
emit_32(1124132848);
emit_32(1124644880);
emit_32(1109174020);
emit_32(1124132848);
emit_32(1124900864);
emit_32(1109145131);
emit_32(1124132848);
emit_32(1125156848);
emit_32(1109111053);
emit_32(1124132848);
emit_32(1125412897);
emit_32(1108982156);
emit_32(1124132848);
emit_32(1125668880);
emit_32(1109159733);
emit_32(1124132848);
emit_32(1125924864);
emit_32(1109315342);
emit_32(1124132848);
emit_32(1126180848);
emit_32(1109210091);
emit_32(1124132848);
emit_32(1126436897);
emit_32(1108929885);
emit_32(1124132848);
emit_32(1126692880);
emit_32(1108541256);
emit_32(1124132848);
emit_32(1126948864);
emit_32(1108339091);
emit_32(1124132848);
emit_32(1127204848);
emit_32(1108284853);
emit_32(1124132848);
emit_32(1127460897);
emit_32(1108246449);
emit_32(1124132848);
emit_32(1127716880);
emit_32(1108208727);
emit_32(1124132848);
emit_32(1127972864);
emit_32(1108242648);
emit_32(1124132848);
emit_32(1128228848);
emit_32(1107828539);
emit_32(1124132848);
emit_32(1128484897);
emit_32(1107302207);
emit_32(1124132848);
emit_32(1128740880);
emit_32(1106125311);
emit_32(1124132848);
emit_32(1128996864);
emit_32(1104882853);
emit_32(1124132848);
emit_32(1129252848);
emit_32(1103712328);
emit_32(1124132848);
emit_32(1129508897);
emit_32(1103248228);
emit_32(1124132848);
emit_32(1129764880);
emit_32(1102281808);
emit_32(1124132848);
emit_32(1130020864);
emit_32(1101935621);
emit_32(1124132848);
emit_32(1130276848);
emit_32(1100815060);
emit_32(1124132848);
emit_32(1130532897);
emit_32(1100889457);
emit_32(1124132848);
emit_32(1130788880);
emit_32(1101023098);
emit_32(1124132848);
emit_32(1131044864);
emit_32(1100560938);
emit_32(1124132848);
emit_32(1131300848);
emit_32(1099884397);
emit_32(1124132848);
emit_32(1131556897);
emit_32(1099776918);
emit_32(1124132848);
emit_32(1131812880);
emit_32(1099406246);
emit_32(1124132848);
emit_32(1132068864);
emit_32(1099062890);
emit_32(1124132848);
emit_start(Landscape03Vtx)
emit_32(1081737216);
emit_32(1112116167);
emit_32(3054751226);
emit_32(1081737216);
emit_32(1112701298);
emit_32(1081737216);
emit_32(1090125824);
emit_32(1112117215);
emit_32(3054752017);
emit_32(1090125824);
emit_32(1112503694);
emit_32(1081737216);
emit_32(1094418484);
emit_32(1111966902);
emit_32(3054641802);
emit_32(1094418484);
emit_32(1112328084);
emit_32(1081737216);
emit_32(1098514432);
emit_32(1112170824);
emit_32(3054791336);
emit_32(1098514432);
emit_32(1112069951);
emit_32(1081737216);
emit_32(1100759066);
emit_32(1112121016);
emit_32(3054754788);
emit_32(1100759066);
emit_32(1112173655);
emit_32(1081737216);
emit_32(1102807040);
emit_32(1112268577);
emit_32(3054863024);
emit_32(1102807040);
emit_32(1112198559);
emit_32(1081737216);
emit_32(1104855066);
emit_32(1112660640);
emit_32(3055150524);
emit_32(1104855066);
emit_32(1112333694);
emit_32(1081737216);
emit_32(1106903040);
emit_32(1112840733);
emit_32(3055282597);
emit_32(1106903040);
emit_32(1112388744);
emit_32(1081737216);
emit_32(1108123661);
emit_32(1112817271);
emit_32(3055265401);
emit_32(1108123661);
emit_32(1112590726);
emit_32(1081737216);
emit_32(1109147648);
emit_32(1112978804);
emit_32(3055383885);
emit_32(1109147648);
emit_32(1113057735);
emit_32(1081737216);
emit_32(1110171661);
emit_32(1113143692);
emit_32(3055504787);
emit_32(1110171661);
emit_32(1113035296);
emit_32(1081737216);
emit_32(1111195648);
emit_32(1113241551);
emit_32(3055576563);
emit_32(1111195648);
emit_32(1112886896);
emit_32(1081737216);
emit_32(1112219661);
emit_32(1113409140);
emit_32(3055699444);
emit_32(1112219661);
emit_32(1112955971);
emit_32(1081737216);
emit_32(1113243648);
emit_32(1113827049);
emit_32(3056005944);
emit_32(1113243648);
emit_32(1113474440);
emit_32(1081737216);
emit_32(1114267661);
emit_32(1113969787);
emit_32(3056110618);
emit_32(1114267661);
emit_32(1113373252);
emit_32(1081737216);
emit_32(1115291648);
emit_32(1113729217);
emit_32(3055934168);
emit_32(1115291648);
emit_32(1112981923);
emit_32(1081737216);
emit_32(1116000263);
emit_32(1113555888);
emit_32(3055807065);
emit_32(1116000263);
emit_32(1112815462);
emit_32(1081737216);
emit_32(1116512256);
emit_32(1112971595);
emit_32(3055378563);
emit_32(1116512256);
emit_32(1112451711);
emit_32(1081737216);
emit_32(1117024263);
emit_32(1112445996);
emit_32(3054993118);
emit_32(1117024263);
emit_32(1112394144);
emit_32(1081737216);
emit_32(1117536256);
emit_32(1112490508);
emit_32(3055025752);
emit_32(1117536256);
emit_32(1112528414);
emit_32(1081737216);
emit_32(1118048263);
emit_32(1112364810);
emit_32(3054933569);
emit_32(1118048263);
emit_32(1112287950);
emit_32(1081737216);
emit_32(1118560256);
emit_32(1112062978);
emit_32(3054712259);
emit_32(1118560256);
emit_32(1111949653);
emit_32(1081737216);
emit_32(1119072263);
emit_32(1111766755);
emit_32(3054494995);
emit_32(1119072263);
emit_32(1111682685);
emit_32(1081737216);
emit_32(1119584256);
emit_32(1111332435);
emit_32(3054176489);
emit_32(1119584256);
emit_32(1111194678);
emit_32(1081737216);
emit_32(1120096263);
emit_32(1110914210);
emit_32(3053869769);
emit_32(1120096263);
emit_32(1111068639);
emit_32(1081737216);
emit_32(1120608322);
emit_32(1110765653);
emit_32(3053760829);
emit_32(1120608322);
emit_32(1110815303);
emit_32(1081737216);
emit_32(1121120289);
emit_32(1110612404);
emit_32(3053648459);
emit_32(1121120289);
emit_32(1110882674);
emit_32(1081737216);
emit_32(1121632256);
emit_32(1110535543);
emit_32(3053592076);
emit_32(1121632256);
emit_32(1110789010);
emit_32(1081737216);
emit_32(1122144223);
emit_32(1110472052);
emit_32(3053545501);
emit_32(1122144223);
emit_32(1110340062);
emit_32(1081737216);
emit_32(1122656322);
emit_32(1110285668);
emit_32(3053364308);
emit_32(1122656322);
emit_32(1109951539);
emit_32(1081737216);
emit_32(1123168289);
emit_32(1109697652);
emit_32(3052501939);
emit_32(1123168289);
emit_32(1109517848);
emit_32(1081737216);
emit_32(1123680256);
emit_32(1109444526);
emit_32(3052130656);
emit_32(1123680256);
emit_32(1109219108);
emit_32(1081737216);
emit_32(1124132848);
emit_32(1109279611);
emit_32(3051888763);
emit_32(1124132848);
emit_32(1108888571);
emit_32(1081737216);
emit_32(1124388897);
emit_32(1108937068);
emit_32(3051386330);
emit_32(1124388897);
emit_32(1108548203);
emit_32(1081737216);
emit_32(1124644880);
emit_32(1108458524);
emit_32(3050684490);
emit_32(1124644880);
emit_32(1108062057);
emit_32(1081737216);
emit_32(1124900864);
emit_32(1107860049);
emit_32(3049806640);
emit_32(1124900864);
emit_32(1107391755);
emit_32(1081737216);
emit_32(1125156848);
emit_32(1107061952);
emit_32(3048807931);
emit_32(1125156848);
emit_32(1107147201);
emit_32(1081737216);
emit_32(1125412897);
emit_32(1106198187);
emit_32(3048174525);
emit_32(1125412897);
emit_32(1106562515);
emit_32(1081737216);
emit_32(1125668880);
emit_32(1106521306);
emit_32(3048411491);
emit_32(1125668880);
emit_32(1107088323);
emit_32(1081737216);
emit_32(1125924864);
emit_32(1106837714);
emit_32(3048643444);
emit_32(1125924864);
emit_32(1107466728);
emit_32(1081737216);
emit_32(1126180848);
emit_32(1107242569);
emit_32(3048940401);
emit_32(1126180848);
emit_32(1107640477);
emit_32(1081737216);
emit_32(1126436897);
emit_32(1107053196);
emit_32(3048801510);
emit_32(1126436897);
emit_32(1107446858);
emit_32(1081737216);
emit_32(1126692880);
emit_32(1106540495);
emit_32(3048425477);
emit_32(1126692880);
emit_32(1107035003);
emit_32(1081737216);
emit_32(1126948864);
emit_32(1106275362);
emit_32(3048231084);
emit_32(1126948864);
emit_32(1106606398);
emit_32(1081737216);
emit_32(1127204848);
emit_32(1105871923);
emit_32(3047935271);
emit_32(1127204848);
emit_32(1106181305);
emit_32(1081737216);
emit_32(1127460897);
emit_32(1105372958);
emit_32(3047569266);
emit_32(1127460897);
emit_32(1105541831);
emit_32(1081737216);
emit_32(1127716880);
emit_32(1104684096);
emit_32(3047064106);
emit_32(1127716880);
emit_32(1104783501);
emit_32(1081737216);
emit_32(1127972864);
emit_32(1103501774);
emit_32(3046197075);
emit_32(1127972864);
emit_32(1103855197);
emit_32(1081737216);
emit_32(1128228848);
emit_32(1102439829);
emit_32(3045418269);
emit_32(1128228848);
emit_32(1103186310);
emit_32(1081737216);
emit_32(1128484897);
emit_32(1101869718);
emit_32(3044935642);
emit_32(1128484897);
emit_32(1103087482);
emit_32(1081737216);
emit_32(1128740880);
emit_32(1101702785);
emit_32(3044690829);
emit_32(1128740880);
emit_32(1102981471);
emit_32(1081737216);
emit_32(1128996864);
emit_32(1101484419);
emit_32(3044370528);
emit_32(1128996864);
emit_32(1102264716);
emit_32(1081737216);
emit_32(1129252848);
emit_32(1100736102);
emit_32(3043272969);
emit_32(1129252848);
emit_32(1102136581);
emit_32(1081737216);
emit_32(1129508897);
emit_32(1100482452);
emit_32(3042900948);
emit_32(1129508897);
emit_32(1101851735);
emit_32(1081737216);
emit_32(1129764880);
emit_32(1100170134);
emit_32(3042442865);
emit_32(1129764880);
emit_32(1101959109);
emit_32(1081737216);
emit_32(1130020864);
emit_32(1100368052);
emit_32(3042733136);
emit_32(1130020864);
emit_32(1101538001);
emit_32(1081737216);
emit_32(1130276848);
emit_32(1100034710);
emit_32(3042244249);
emit_32(1130276848);
emit_32(1100676386);
emit_32(1081737216);
emit_32(1130532897);
emit_32(1099793118);
emit_32(3041889854);
emit_32(1130532897);
emit_32(1100067740);
emit_32(1081737216);
emit_32(1130788880);
emit_32(1099349570);
emit_32(3041239348);
emit_32(1130788880);
emit_32(1099550582);
emit_32(1081737216);
emit_32(1131044864);
emit_32(1099102264);
emit_32(3040876615);
emit_32(1131044864);
emit_32(1099061684);
emit_32(1081737216);
emit_32(1131300848);
emit_32(1097152227);
emit_32(3039303785);
emit_32(1131300848);
emit_32(1097284243);
emit_32(1081737216);
emit_32(1131556897);
emit_32(1095174088);
emit_32(3037853098);
emit_32(1131556897);
emit_32(1096432799);
emit_32(1081737216);
emit_32(1131812880);
emit_32(1095119772);
emit_32(3037813287);
emit_32(1131812880);
emit_32(1096013998);
emit_32(1081737216);
emit_32(1132068864);
emit_32(1094633233);
emit_32(3037456465);
emit_32(1132068864);
emit_32(1095458043);
emit_32(1081737216);
emit_32(1081737216);
emit_32(1111714929);
emit_32(3229220864);
emit_32(1090125824);
emit_32(1111846420);
emit_32(3229220864);
emit_32(1094418484);
emit_32(1112005149);
emit_32(3229220864);
emit_32(1098514432);
emit_32(1112044365);
emit_32(3229220864);
emit_32(1100759066);
emit_32(1112440753);
emit_32(3229220864);
emit_32(1102807040);
emit_32(1112584120);
emit_32(3229220864);
emit_32(1104855066);
emit_32(1112766651);
emit_32(3229220864);
emit_32(1106903040);
emit_32(1113057657);
emit_32(3229220864);
emit_32(1108123661);
emit_32(1113035846);
emit_32(3229220864);
emit_32(1109147648);
emit_32(1113286037);
emit_32(3229220864);
emit_32(1110171661);
emit_32(1113632643);
emit_32(3229220864);
emit_32(1111195648);
emit_32(1113716556);
emit_32(3229220864);
emit_32(1112219661);
emit_32(1113737894);
emit_32(3229220864);
emit_32(1113243648);
emit_32(1114105892);
emit_32(3229220864);
emit_32(1114267661);
emit_32(1114272563);
emit_32(3229220864);
emit_32(1115291648);
emit_32(1114112603);
emit_32(3229220864);
emit_32(1116000263);
emit_32(1114000379);
emit_32(3229220864);
emit_32(1116512256);
emit_32(1113455303);
emit_32(3229220864);
emit_32(1117024263);
emit_32(1112990522);
emit_32(3229220864);
emit_32(1117536256);
emit_32(1112862360);
emit_32(3229220864);
emit_32(1118048263);
emit_32(1112683289);
emit_32(3229220864);
emit_32(1118560256);
emit_32(1112325279);
emit_32(3229220864);
emit_32(1119072263);
emit_32(1111923989);
emit_32(3229220864);
emit_32(1119584256);
emit_32(1111407434);
emit_32(3229220864);
emit_32(1120096263);
emit_32(1110917251);
emit_32(3229220864);
emit_32(1120608322);
emit_32(1110628080);
emit_32(3229220864);
emit_32(1121120289);
emit_32(1110728560);
emit_32(3229220864);
emit_32(1121632256);
emit_32(1110660245);
emit_32(3229220864);
emit_32(1122144223);
emit_32(1110578220);
emit_32(3229220864);
emit_32(1122656322);
emit_32(1110373800);
emit_32(3229220864);
emit_32(1123168289);
emit_32(1109998646);
emit_32(3229220864);
emit_32(1123680256);
emit_32(1109504138);
emit_32(3229220864);
emit_32(1124132848);
emit_32(1109245821);
emit_32(3229220864);
emit_32(1124388897);
emit_32(1109347533);
emit_32(3229220864);
emit_32(1124644880);
emit_32(1108947213);
emit_32(3229220864);
emit_32(1124900864);
emit_32(1108137607);
emit_32(3229220864);
emit_32(1125156848);
emit_32(1107314396);
emit_32(3229220864);
emit_32(1125412897);
emit_32(1106864505);
emit_32(3229220864);
emit_32(1125668880);
emit_32(1107350389);
emit_32(3229220864);
emit_32(1125924864);
emit_32(1107022263);
emit_32(3229220864);
emit_32(1126180848);
emit_32(1107147673);
emit_32(3229220864);
emit_32(1126436897);
emit_32(1107173940);
emit_32(3229220864);
emit_32(1126692880);
emit_32(1106863299);
emit_32(3229220864);
emit_32(1126948864);
emit_32(1106064966);
emit_32(3229220864);
emit_32(1127204848);
emit_32(1105610408);
emit_32(3229220864);
emit_32(1127460897);
emit_32(1105364464);
emit_32(3229220864);
emit_32(1127716880);
emit_32(1104474905);
emit_32(3229220864);
emit_32(1127972864);
emit_32(1103487985);
emit_32(3229220864);
emit_32(1128228848);
emit_32(1102533729);
emit_32(3229220864);
emit_32(1128484897);
emit_32(1101802294);
emit_32(3229220864);
emit_32(1128740880);
emit_32(1100883847);
emit_32(3229220864);
emit_32(1128996864);
emit_32(1100469607);
emit_32(3229220864);
emit_32(1129252848);
emit_32(1100396573);
emit_32(3229220864);
emit_32(1129508897);
emit_32(1100417440);
emit_32(3229220864);
emit_32(1129764880);
emit_32(1100382103);
emit_32(3229220864);
emit_32(1130020864);
emit_32(1100225498);
emit_32(3229220864);
emit_32(1130276848);
emit_32(1100250192);
emit_32(3229220864);
emit_32(1130532897);
emit_32(1099696859);
emit_32(3229220864);
emit_32(1130788880);
emit_32(1099685587);
emit_32(3229220864);
emit_32(1131044864);
emit_32(1099260389);
emit_32(3229220864);
emit_32(1131300848);
emit_32(1097711642);
emit_32(3229220864);
emit_32(1131556897);
emit_32(1095721340);
emit_32(3229220864);
emit_32(1131812880);
emit_32(1095617636);
emit_32(3229220864);
emit_32(1132068864);
emit_32(1094282799);
emit_32(3229220864);
emit_32(1081737216);
emit_32(1111679959);
emit_32(3237609472);
emit_32(1090125824);
emit_32(1111786285);
emit_32(3237609472);
emit_32(1094418484);
emit_32(1112014979);
emit_32(3237609472);
emit_32(1098514432);
emit_32(1112169408);
emit_32(3237609472);
emit_32(1100759066);
emit_32(1112421145);
emit_32(3237609472);
emit_32(1102807040);
emit_32(1112788461);
emit_32(3237609472);
emit_32(1104855066);
emit_32(1112831951);
emit_32(3237609472);
emit_32(1106903040);
emit_32(1113081302);
emit_32(3237609472);
emit_32(1108123661);
emit_32(1113387250);
emit_32(3237609472);
emit_32(1109147648);
emit_32(1113921710);
emit_32(3237609472);
emit_32(1110171661);
emit_32(1113963574);
emit_32(3237609472);
emit_32(1111195648);
emit_32(1114050658);
emit_32(3237609472);
emit_32(1112219661);
emit_32(1113921264);
emit_32(3237609472);
emit_32(1113243648);
emit_32(1114115854);
emit_32(3237609472);
emit_32(1114267661);
emit_32(1114312278);
emit_32(3237609472);
emit_32(1115291648);
emit_32(1114279117);
emit_32(3237609472);
emit_32(1116000263);
emit_32(1113920609);
emit_32(3237609472);
emit_32(1116512256);
emit_32(1113584645);
emit_32(3237609472);
emit_32(1117024263);
emit_32(1113293246);
emit_32(3237609472);
emit_32(1117536256);
emit_32(1113201469);
emit_32(3237609472);
emit_32(1118048263);
emit_32(1112988661);
emit_32(3237609472);
emit_32(1118560256);
emit_32(1112637047);
emit_32(3237609472);
emit_32(1119072263);
emit_32(1112267476);
emit_32(3237609472);
emit_32(1119584256);
emit_32(1111621186);
emit_32(3237609472);
emit_32(1120096263);
emit_32(1110940949);
emit_32(3237609472);
emit_32(1120608322);
emit_32(1110726751);
emit_32(3237609472);
emit_32(1121120289);
emit_32(1110505737);
emit_32(3237609472);
emit_32(1121632256);
emit_32(1110430476);
emit_32(3237609472);
emit_32(1122144223);
emit_32(1110258876);
emit_32(3237609472);
emit_32(1122656322);
emit_32(1110246425);
emit_32(3237609472);
emit_32(1123168289);
emit_32(1110111368);
emit_32(3237609472);
emit_32(1123680256);
emit_32(1109704075);
emit_32(3237609472);
emit_32(1124132848);
emit_32(1109328449);
emit_32(3237609472);
emit_32(1124388897);
emit_32(1109344020);
emit_32(3237609472);
emit_32(1124644880);
emit_32(1109056501);
emit_32(3237609472);
emit_32(1124900864);
emit_32(1108366983);
emit_32(3237609472);
emit_32(1125156848);
emit_32(1107828618);
emit_32(3237609472);
emit_32(1125412897);
emit_32(1107568047);
emit_32(3237609472);
emit_32(1125668880);
emit_32(1107450056);
emit_32(3237609472);
emit_32(1125924864);
emit_32(1107525842);
emit_32(3237609472);
emit_32(1126180848);
emit_32(1107466650);
emit_32(3237609472);
emit_32(1126436897);
emit_32(1107475195);
emit_32(3237609472);
emit_32(1126692880);
emit_32(1107046852);
emit_32(3237609472);
emit_32(1126948864);
emit_32(1106460593);
emit_32(3237609472);
emit_32(1127204848);
emit_32(1105866051);
emit_32(3237609472);
emit_32(1127460897);
emit_32(1105220967);
emit_32(3237609472);
emit_32(1127716880);
emit_32(1104257535);
emit_32(3237609472);
emit_32(1127972864);
emit_32(1103215618);
emit_32(3237609472);
emit_32(1128228848);
emit_32(1102464785);
emit_32(3237609472);
emit_32(1128484897);
emit_32(1101270562);
emit_32(3237609472);
emit_32(1128740880);
emit_32(1100280706);
emit_32(3237609472);
emit_32(1128996864);
emit_32(1099709599);
emit_32(3237609472);
emit_32(1129252848);
emit_32(1100000579);
emit_32(3237609472);
emit_32(1129508897);
emit_32(1100207987);
emit_32(3237609472);
emit_32(1129764880);
emit_32(1100241227);
emit_32(3237609472);
emit_32(1130020864);
emit_32(1100129029);
emit_32(3237609472);
emit_32(1130276848);
emit_32(1099912079);
emit_32(3237609472);
emit_32(1130532897);
emit_32(1099448608);
emit_32(3237609472);
emit_32(1130788880);
emit_32(1099055392);
emit_32(3237609472);
emit_32(1131044864);
emit_32(1098378012);
emit_32(3237609472);
emit_32(1131300848);
emit_32(1096274779);
emit_32(3237609472);
emit_32(1131556897);
emit_32(1096113088);
emit_32(3237609472);
emit_32(1131812880);
emit_32(1094998137);
emit_32(3237609472);
emit_32(1132068864);
emit_32(1093654387);
emit_32(3237609472);
emit_32(1081737216);
emit_32(1111917802);
emit_32(3241902132);
emit_32(1090125824);
emit_32(1112032752);
emit_32(3241902132);
emit_32(1094418484);
emit_32(1112179868);
emit_32(3241902132);
emit_32(1098514432);
emit_32(1112289968);
emit_32(3241902132);
emit_32(1100759066);
emit_32(1112667167);
emit_32(3241902132);
emit_32(1102807040);
emit_32(1112883777);
emit_32(3241902132);
emit_32(1104855066);
emit_32(1113176434);
emit_32(3241902132);
emit_32(1106903040);
emit_32(1113400908);
emit_32(3241902132);
emit_32(1108123661);
emit_32(1113733176);
emit_32(3241902132);
emit_32(1109147648);
emit_32(1114095642);
emit_32(3241902132);
emit_32(1110171661);
emit_32(1114172346);
emit_32(3241902132);
emit_32(1111195648);
emit_32(1114411342);
emit_32(3241902132);
emit_32(1112219661);
emit_32(1114340694);
emit_32(3241902132);
emit_32(1113243648);
emit_32(1114253374);
emit_32(3241902132);
emit_32(1114267661);
emit_32(1114280192);
emit_32(3241902132);
emit_32(1115291648);
emit_32(1114163721);
emit_32(3241902132);
emit_32(1116000263);
emit_32(1114090190);
emit_32(3241902132);
emit_32(1116512256);
emit_32(1113701666);
emit_32(3241902132);
emit_32(1117024263);
emit_32(1113532950);
emit_32(3241902132);
emit_32(1117536256);
emit_32(1113573556);
emit_32(3241902132);
emit_32(1118048263);
emit_32(1113300219);
emit_32(3241902132);
emit_32(1118560256);
emit_32(1112826289);
emit_32(3241902132);
emit_32(1119072263);
emit_32(1112471713);
emit_32(3241902132);
emit_32(1119584256);
emit_32(1111810323);
emit_32(3241902132);
emit_32(1120096263);
emit_32(1110995816);
emit_32(3241902132);
emit_32(1120608322);
emit_32(1110440752);
emit_32(3241902132);
emit_32(1121120289);
emit_32(1110331281);
emit_32(3241902132);
emit_32(1121632256);
emit_32(1110265928);
emit_32(3241902132);
emit_32(1122144223);
emit_32(1110314897);
emit_32(3241902132);
emit_32(1122656322);
emit_32(1110355136);
emit_32(3241902132);
emit_32(1123168289);
emit_32(1110061272);
emit_32(3241902132);
emit_32(1123680256);
emit_32(1109762481);
emit_32(3241902132);
emit_32(1124132848);
emit_32(1109249543);
emit_32(3241902132);
emit_32(1124388897);
emit_32(1109267133);
emit_32(3241902132);
emit_32(1124644880);
emit_32(1108818474);
emit_32(3241902132);
emit_32(1124900864);
emit_32(1108492996);
emit_32(3241902132);
emit_32(1125156848);
emit_32(1108035555);
emit_32(3241902132);
emit_32(1125412897);
emit_32(1107824896);
emit_32(3241902132);
emit_32(1125668880);
emit_32(1107697625);
emit_32(3241902132);
emit_32(1125924864);
emit_32(1107864374);
emit_32(3241902132);
emit_32(1126180848);
emit_32(1107783896);
emit_32(3241902132);
emit_32(1126436897);
emit_32(1107786911);
emit_32(3241902132);
emit_32(1126692880);
emit_32(1107603043);
emit_32(3241902132);
emit_32(1126948864);
emit_32(1106784603);
emit_32(3241902132);
emit_32(1127204848);
emit_32(1106394376);
emit_32(3241902132);
emit_32(1127460897);
emit_32(1105369026);
emit_32(3241902132);
emit_32(1127716880);
emit_32(1104382892);
emit_32(3241902132);
emit_32(1127972864);
emit_32(1103613552);
emit_32(3241902132);
emit_32(1128228848);
emit_32(1102201959);
emit_32(3241902132);
emit_32(1128484897);
emit_32(1100683674);
emit_32(3241902132);
emit_32(1128740880);
emit_32(1100170081);
emit_32(3241902132);
emit_32(1128996864);
emit_32(1099248330);
emit_32(3241902132);
emit_32(1129252848);
emit_32(1098972398);
emit_32(3241902132);
emit_32(1129508897);
emit_32(1099403729);
emit_32(3241902132);
emit_32(1129764880);
emit_32(1099570243);
emit_32(3241902132);
emit_32(1130020864);
emit_32(1099452174);
emit_32(3241902132);
emit_32(1130276848);
emit_32(1099309567);
emit_32(3241902132);
emit_32(1130532897);
emit_32(1098235616);
emit_32(3241902132);
emit_32(1130788880);
emit_32(1097234960);
emit_32(3241902132);
emit_32(1131044864);
emit_32(1096084777);
emit_32(3241902132);
emit_32(1131300848);
emit_32(1095855768);
emit_32(3241902132);
emit_32(1131556897);
emit_32(1095600649);
emit_32(3241902132);
emit_32(1131812880);
emit_32(1095372584);
emit_32(3241902132);
emit_32(1132068864);
emit_32(1094155711);
emit_32(3241902132);
emit_32(1081737216);
emit_32(1112196121);
emit_32(3245998080);
emit_32(1090125824);
emit_32(1112339435);
emit_32(3245998080);
emit_32(1094418484);
emit_32(1112635054);
emit_32(3245998080);
emit_32(1098514432);
emit_32(1112640664);
emit_32(3245998080);
emit_32(1100759066);
emit_32(1112829670);
emit_32(3245998080);
emit_32(1102807040);
emit_32(1113234342);
emit_32(3245998080);
emit_32(1104855066);
emit_32(1113597123);
emit_32(3245998080);
emit_32(1106903040);
emit_32(1113703003);
emit_32(3245998080);
emit_32(1108123661);
emit_32(1113932589);
emit_32(3245998080);
emit_32(1109147648);
emit_32(1114173735);
emit_32(3245998080);
emit_32(1110171661);
emit_32(1114493341);
emit_32(3245998080);
emit_32(1111195648);
emit_32(1114614687);
emit_32(3245998080);
emit_32(1112219661);
emit_32(1114656971);
emit_32(3245998080);
emit_32(1113243648);
emit_32(1114375193);
emit_32(3245998080);
emit_32(1114267661);
emit_32(1114462251);
emit_32(3245998080);
emit_32(1115291648);
emit_32(1114444425);
emit_32(3245998080);
emit_32(1116000263);
emit_32(1114258040);
emit_32(3245998080);
emit_32(1116512256);
emit_32(1113897068);
emit_32(3245998080);
emit_32(1117024263);
emit_32(1113641399);
emit_32(3245998080);
emit_32(1117536256);
emit_32(1113834835);
emit_32(3245998080);
emit_32(1118048263);
emit_32(1113430688);
emit_32(3245998080);
emit_32(1118560256);
emit_32(1112813260);
emit_32(3245998080);
emit_32(1119072263);
emit_32(1112444187);
emit_32(3245998080);
emit_32(1119584256);
emit_32(1111786704);
emit_32(3245998080);
emit_32(1120096263);
emit_32(1111130558);
emit_32(3245998080);
emit_32(1120608322);
emit_32(1110632169);
emit_32(3245998080);
emit_32(1121120289);
emit_32(1110279953);
emit_32(3245998080);
emit_32(1121632256);
emit_32(1110145840);
emit_32(3245998080);
emit_32(1122144223);
emit_32(1110117869);
emit_32(3245998080);
emit_32(1122656322);
emit_32(1109967425);
emit_32(3245998080);
emit_32(1123168289);
emit_32(1109898533);
emit_32(3245998080);
emit_32(1123680256);
emit_32(1109796192);
emit_32(3245998080);
emit_32(1124132848);
emit_32(1109273031);
emit_32(3245998080);
emit_32(1124388897);
emit_32(1109109716);
emit_32(3245998080);
emit_32(1124644880);
emit_32(1108907052);
emit_32(3245998080);
emit_32(1124900864);
emit_32(1108479705);
emit_32(3245998080);
emit_32(1125156848);
emit_32(1108048504);
emit_32(3245998080);
emit_32(1125412897);
emit_32(1108035581);
emit_32(3245998080);
emit_32(1125668880);
emit_32(1107927761);
emit_32(3245998080);
emit_32(1125924864);
emit_32(1108119231);
emit_32(3245998080);
emit_32(1126180848);
emit_32(1108244955);
emit_32(3245998080);
emit_32(1126436897);
emit_32(1108024597);
emit_32(3245998080);
emit_32(1126692880);
emit_32(1107730052);
emit_32(3245998080);
emit_32(1126948864);
emit_32(1107344019);
emit_32(3245998080);
emit_32(1127204848);
emit_32(1106859314);
emit_32(3245998080);
emit_32(1127460897);
emit_32(1105701057);
emit_32(3245998080);
emit_32(1127716880);
emit_32(1104883954);
emit_32(3245998080);
emit_32(1127972864);
emit_32(1103479492);
emit_32(3245998080);
emit_32(1128228848);
emit_32(1101941126);
emit_32(3245998080);
emit_32(1128484897);
emit_32(1100612003);
emit_32(3245998080);
emit_32(1128740880);
emit_32(1099967182);
emit_32(3245998080);
emit_32(1128996864);
emit_32(1099350200);
emit_32(3245998080);
emit_32(1129252848);
emit_32(1098786642);
emit_32(3245998080);
emit_32(1129508897);
emit_32(1098582799);
emit_32(3245998080);
emit_32(1129764880);
emit_32(1098188639);
emit_32(3245998080);
emit_32(1130020864);
emit_32(1098264032);
emit_32(3245998080);
emit_32(1130276848);
emit_32(1097098120);
emit_32(3245998080);
emit_32(1130532897);
emit_32(1096369150);
emit_32(3245998080);
emit_32(1130788880);
emit_32(1096281280);
emit_32(3245998080);
emit_32(1131044864);
emit_32(1096127244);
emit_32(3245998080);
emit_32(1131300848);
emit_32(1096047342);
emit_32(3245998080);
emit_32(1131556897);
emit_32(1096229061);
emit_32(3245998080);
emit_32(1131812880);
emit_32(1095837942);
emit_32(3245998080);
emit_32(1132068864);
emit_32(1094247567);
emit_32(3245998080);
emit_32(1081737216);
emit_32(1112566084);
emit_32(3248242714);
emit_32(1090125824);
emit_32(1112769036);
emit_32(3248242714);
emit_32(1094418484);
emit_32(1113204903);
emit_32(3248242714);
emit_32(1098514432);
emit_32(1113297807);
emit_32(3248242714);
emit_32(1100759066);
emit_32(1113299590);
emit_32(3248242714);
emit_32(1102807040);
emit_32(1113631778);
emit_32(3248242714);
emit_32(1104855066);
emit_32(1113733962);
emit_32(3248242714);
emit_32(1106903040);
emit_32(1114058575);
emit_32(3248242714);
emit_32(1108123661);
emit_32(1114302841);
emit_32(3248242714);
emit_32(1109147648);
emit_32(1114499816);
emit_32(3248242714);
emit_32(1110171661);
emit_32(1114705389);
emit_32(3248242714);
emit_32(1111195648);
emit_32(1114954505);
emit_32(3248242714);
emit_32(1112219661);
emit_32(1114757818);
emit_32(3248242714);
emit_32(1113243648);
emit_32(1114552664);
emit_32(3248242714);
emit_32(1114267661);
emit_32(1114690499);
emit_32(3248242714);
emit_32(1115291648);
emit_32(1114401800);
emit_32(3248242714);
emit_32(1116000263);
emit_32(1114010445);
emit_32(3248242714);
emit_32(1116512256);
emit_32(1113755904);
emit_32(3248242714);
emit_32(1117024263);
emit_32(1113715219);
emit_32(3248242714);
emit_32(1117536256);
emit_32(1113634478);
emit_32(3248242714);
emit_32(1118048263);
emit_32(1113284962);
emit_32(3248242714);
emit_32(1118560256);
emit_32(1112908602);
emit_32(3248242714);
emit_32(1119072263);
emit_32(1112464713);
emit_32(3248242714);
emit_32(1119584256);
emit_32(1111750948);
emit_32(3248242714);
emit_32(1120096263);
emit_32(1111362529);
emit_32(3248242714);
emit_32(1120608322);
emit_32(1110906005);
emit_32(3248242714);
emit_32(1121120289);
emit_32(1110451867);
emit_32(3248242714);
emit_32(1121632256);
emit_32(1110203905);
emit_32(3248242714);
emit_32(1122144223);
emit_32(1110022344);
emit_32(3248242714);
emit_32(1122656322);
emit_32(1109942023);
emit_32(3248242714);
emit_32(1123168289);
emit_32(1109931930);
emit_32(3248242714);
emit_32(1123680256);
emit_32(1109863432);
emit_32(3248242714);
emit_32(1124132848);
emit_32(1109215989);
emit_32(3248242714);
emit_32(1124388897);
emit_32(1109161384);
emit_32(3248242714);
emit_32(1124644880);
emit_32(1108931536);
emit_32(3248242714);
emit_32(1124900864);
emit_32(1108371544);
emit_32(3248242714);
emit_32(1125156848);
emit_32(1108462875);
emit_32(3248242714);
emit_32(1125412897);
emit_32(1108261182);
emit_32(3248242714);
emit_32(1125668880);
emit_32(1108292980);
emit_32(3248242714);
emit_32(1125924864);
emit_32(1108474724);
emit_32(3248242714);
emit_32(1126180848);
emit_32(1108428377);
emit_32(3248242714);
emit_32(1126436897);
emit_32(1108089713);
emit_32(3248242714);
emit_32(1126692880);
emit_32(1107824057);
emit_32(3248242714);
emit_32(1126948864);
emit_32(1107727614);
emit_32(3248242714);
emit_32(1127204848);
emit_32(1107082976);
emit_32(3248242714);
emit_32(1127460897);
emit_32(1106264772);
emit_32(3248242714);
emit_32(1127716880);
emit_32(1105380141);
emit_32(3248242714);
emit_32(1127972864);
emit_32(1103821223);
emit_32(3248242714);
emit_32(1128228848);
emit_32(1102097049);
emit_32(3248242714);
emit_32(1128484897);
emit_32(1100348129);
emit_32(3248242714);
emit_32(1128740880);
emit_32(1099721186);
emit_32(3248242714);
emit_32(1128996864);
emit_32(1098987759);
emit_32(3248242714);
emit_32(1129252848);
emit_32(1098503317);
emit_32(3248242714);
emit_32(1129508897);
emit_32(1097783679);
emit_32(3248242714);
emit_32(1129764880);
emit_32(1097409338);
emit_32(3248242714);
emit_32(1130020864);
emit_32(1096647547);
emit_32(3248242714);
emit_32(1130276848);
emit_32(1096484599);
emit_32(3248242714);
emit_32(1130532897);
emit_32(1095929168);
emit_32(3248242714);
emit_32(1130788880);
emit_32(1096063071);
emit_32(3248242714);
emit_32(1131044864);
emit_32(1096407109);
emit_32(3248242714);
emit_32(1131300848);
emit_32(1095628227);
emit_32(3248242714);
emit_32(1131556897);
emit_32(1095460769);
emit_32(3248242714);
emit_32(1131812880);
emit_32(1095830916);
emit_32(3248242714);
emit_32(1132068864);
emit_32(1094232467);
emit_32(3248242714);
emit_32(1081737216);
emit_32(1113150456);
emit_32(3250290688);
emit_32(1090125824);
emit_32(1113492292);
emit_32(3250290688);
emit_32(1094418484);
emit_32(1113689922);
emit_32(3250290688);
emit_32(1098514432);
emit_32(1113686357);
emit_32(3250290688);
emit_32(1100759066);
emit_32(1113837352);
emit_32(3250290688);
emit_32(1102807040);
emit_32(1113996473);
emit_32(3250290688);
emit_32(1104855066);
emit_32(1114061039);
emit_32(3250290688);
emit_32(1106903040);
emit_32(1114255891);
emit_32(3250290688);
emit_32(1108123661);
emit_32(1114434988);
emit_32(3250290688);
emit_32(1109147648);
emit_32(1114792814);
emit_32(3250290688);
emit_32(1110171661);
emit_32(1114681586);
emit_32(3250290688);
emit_32(1111195648);
emit_32(1114881157);
emit_32(3250290688);
emit_32(1112219661);
emit_32(1114508309);
emit_32(3250290688);
emit_32(1113243648);
emit_32(1114572115);
emit_32(3250290688);
emit_32(1114267661);
emit_32(1114613377);
emit_32(3250290688);
emit_32(1115291648);
emit_32(1114243334);
emit_32(3250290688);
emit_32(1116000263);
emit_32(1114073701);
emit_32(3250290688);
emit_32(1116512256);
emit_32(1113815594);
emit_32(3250290688);
emit_32(1117024263);
emit_32(1113605721);
emit_32(3250290688);
emit_32(1117536256);
emit_32(1113440702);
emit_32(3250290688);
emit_32(1118048263);
emit_32(1112989159);
emit_32(3250290688);
emit_32(1118560256);
emit_32(1112567395);
emit_32(3250290688);
emit_32(1119072263);
emit_32(1112247344);
emit_32(3250290688);
emit_32(1119584256);
emit_32(1112009920);
emit_32(3250290688);
emit_32(1120096263);
emit_32(1111470454);
emit_32(3250290688);
emit_32(1120608322);
emit_32(1110996838);
emit_32(3250290688);
emit_32(1121120289);
emit_32(1110568495);
emit_32(3250290688);
emit_32(1121632256);
emit_32(1110151633);
emit_32(3250290688);
emit_32(1122144223);
emit_32(1109917460);
emit_32(3250290688);
emit_32(1122656322);
emit_32(1109701663);
emit_32(3250290688);
emit_32(1123168289);
emit_32(1109686721);
emit_32(3250290688);
emit_32(1123680256);
emit_32(1109370549);
emit_32(3250290688);
emit_32(1124132848);
emit_32(1109357783);
emit_32(3250290688);
emit_32(1124388897);
emit_32(1109361348);
emit_32(3250290688);
emit_32(1124644880);
emit_32(1108962627);
emit_32(3250290688);
emit_32(1124900864);
emit_32(1108736108);
emit_32(3250290688);
emit_32(1125156848);
emit_32(1108614185);
emit_32(3250290688);
emit_32(1125412897);
emit_32(1108533864);
emit_32(3250290688);
emit_32(1125668880);
emit_32(1108590068);
emit_32(3250290688);
emit_32(1125924864);
emit_32(1108802404);
emit_32(3250290688);
emit_32(1126180848);
emit_32(1108700955);
emit_32(3250290688);
emit_32(1126436897);
emit_32(1108392988);
emit_32(3250290688);
emit_32(1126692880);
emit_32(1108021871);
emit_32(3250290688);
emit_32(1126948864);
emit_32(1107615521);
emit_32(3250290688);
emit_32(1127204848);
emit_32(1107132835);
emit_32(3250290688);
emit_32(1127460897);
emit_32(1106307239);
emit_32(3250290688);
emit_32(1127716880);
emit_32(1105259659);
emit_32(3250290688);
emit_32(1127972864);
emit_32(1103882145);
emit_32(3250290688);
emit_32(1128228848);
emit_32(1102498916);
emit_32(3250290688);
emit_32(1128484897);
emit_32(1100712509);
emit_32(3250290688);
emit_32(1128740880);
emit_32(1099497629);
emit_32(3250290688);
emit_32(1128996864);
emit_32(1097686476);
emit_32(3250290688);
emit_32(1129252848);
emit_32(1096996199);
emit_32(3250290688);
emit_32(1129508897);
emit_32(1096729441);
emit_32(3250290688);
emit_32(1129764880);
emit_32(1096118855);
emit_32(3250290688);
emit_32(1130020864);
emit_32(1095816970);
emit_32(3250290688);
emit_32(1130276848);
emit_32(1095839934);
emit_32(3250290688);
emit_32(1130532897);
emit_32(1095807218);
emit_32(3250290688);
emit_32(1130788880);
emit_32(1096112249);
emit_32(3250290688);
emit_32(1131044864);
emit_32(1096393372);
emit_32(3250290688);
emit_32(1131300848);
emit_32(1096168558);
emit_32(3250290688);
emit_32(1131556897);
emit_32(1095322776);
emit_32(3250290688);
emit_32(1131812880);
emit_32(1094576924);
emit_32(3250290688);
emit_32(1132068864);
emit_32(1094020760);
emit_32(3250290688);
emit_32(1081737216);
emit_32(1113988085);
emit_32(3252338714);
emit_32(1090125824);
emit_32(1114065260);
emit_32(3252338714);
emit_32(1094418484);
emit_32(1113997338);
emit_32(3252338714);
emit_32(1098514432);
emit_32(1114054171);
emit_32(3252338714);
emit_32(1100759066);
emit_32(1114320378);
emit_32(3252338714);
emit_32(1102807040);
emit_32(1114467126);
emit_32(3252338714);
emit_32(1104855066);
emit_32(1114435984);
emit_32(3252338714);
emit_32(1106903040);
emit_32(1114341953);
emit_32(3252338714);
emit_32(1108123661);
emit_32(1114299407);
emit_32(3252338714);
emit_32(1109147648);
emit_32(1114563438);
emit_32(3252338714);
emit_32(1110171661);
emit_32(1114648268);
emit_32(3252338714);
emit_32(1111195648);
emit_32(1114546084);
emit_32(3252338714);
emit_32(1112219661);
emit_32(1114619144);
emit_32(3252338714);
emit_32(1113243648);
emit_32(1114743636);
emit_32(3252338714);
emit_32(1114267661);
emit_32(1114455592);
emit_32(3252338714);
emit_32(1115291648);
emit_32(1114088040);
emit_32(3252338714);
emit_32(1116000263);
emit_32(1113929390);
emit_32(3252338714);
emit_32(1116512256);
emit_32(1113476511);
emit_32(3252338714);
emit_32(1117024263);
emit_32(1113251303);
emit_32(3252338714);
emit_32(1117536256);
emit_32(1113169592);
emit_32(3252338714);
emit_32(1118048263);
emit_32(1112818162);
emit_32(3252338714);
emit_32(1118560256);
emit_32(1112268839);
emit_32(3252338714);
emit_32(1119072263);
emit_32(1111908916);
emit_32(3252338714);
emit_32(1119584256);
emit_32(1111826550);
emit_32(3252338714);
emit_32(1120096263);
emit_32(1111731418);
emit_32(3252338714);
emit_32(1120608322);
emit_32(1111230146);
emit_32(3252338714);
emit_32(1121120289);
emit_32(1110553815);
emit_32(3252338714);
emit_32(1121632256);
emit_32(1110036683);
emit_32(3252338714);
emit_32(1122144223);
emit_32(1109799364);
emit_32(3252338714);
emit_32(1122656322);
emit_32(1109771393);
emit_32(3252338714);
emit_32(1123168289);
emit_32(1109709003);
emit_32(3252338714);
emit_32(1123680256);
emit_32(1109442691);
emit_32(3252338714);
emit_32(1124132848);
emit_32(1109517769);
emit_32(3252338714);
emit_32(1124388897);
emit_32(1109424524);
emit_32(3252338714);
emit_32(1124644880);
emit_32(1109080277);
emit_32(3252338714);
emit_32(1124900864);
emit_32(1108875411);
emit_32(3252338714);
emit_32(1125156848);
emit_32(1108744733);
emit_32(3252338714);
emit_32(1125412897);
emit_32(1108572268);
emit_32(3252338714);
emit_32(1125668880);
emit_32(1108842041);
emit_32(3252338714);
emit_32(1125924864);
emit_32(1108992537);
emit_32(3252338714);
emit_32(1126180848);
emit_32(1108824136);
emit_32(3252338714);
emit_32(1126436897);
emit_32(1108504583);
emit_32(3252338714);
emit_32(1126692880);
emit_32(1107939112);
emit_32(3252338714);
emit_32(1126948864);
emit_32(1107373221);
emit_32(3252338714);
emit_32(1127204848);
emit_32(1107163454);
emit_32(3252338714);
emit_32(1127460897);
emit_32(1106219106);
emit_32(3252338714);
emit_32(1127716880);
emit_32(1105070444);
emit_32(3252338714);
emit_32(1127972864);
emit_32(1103725960);
emit_32(3252338714);
emit_32(1128228848);
emit_32(1102334919);
emit_32(3252338714);
emit_32(1128484897);
emit_32(1100777102);
emit_32(3252338714);
emit_32(1128740880);
emit_32(1099662937);
emit_32(3252338714);
emit_32(1128996864);
emit_32(1098431490);
emit_32(3252338714);
emit_32(1129252848);
emit_32(1097775186);
emit_32(3252338714);
emit_32(1129508897);
emit_32(1096256848);
emit_32(3252338714);
emit_32(1129764880);
emit_32(1095754895);
emit_32(3252338714);
emit_32(1130020864);
emit_32(1096060659);
emit_32(3252338714);
emit_32(1130276848);
emit_32(1095067238);
emit_32(3252338714);
emit_32(1130532897);
emit_32(1094771330);
emit_32(3252338714);
emit_32(1130788880);
emit_32(1095212047);
emit_32(3252338714);
emit_32(1131044864);
emit_32(1094803207);
emit_32(3252338714);
emit_32(1131300848);
emit_32(1094921801);
emit_32(3252338714);
emit_32(1131556897);
emit_32(1094618028);
emit_32(3252338714);
emit_32(1131812880);
emit_32(1093381757);
emit_32(3252338714);
emit_32(1132068864);
emit_32(1092728180);
emit_32(3252338714);
emit_32(1081737216);
emit_32(1114484349);
emit_32(3254386688);
emit_32(1090125824);
emit_32(1114516331);
emit_32(3254386688);
emit_32(1094418484);
emit_32(1114316079);
emit_32(3254386688);
emit_32(1098514432);
emit_32(1114579953);
emit_32(3254386688);
emit_32(1100759066);
emit_32(1114764660);
emit_32(3254386688);
emit_32(1102807040);
emit_32(1114796065);
emit_32(3254386688);
emit_32(1104855066);
emit_32(1114724998);
emit_32(3254386688);
emit_32(1106903040);
emit_32(1114516881);
emit_32(3254386688);
emit_32(1108123661);
emit_32(1114291254);
emit_32(3254386688);
emit_32(1109147648);
emit_32(1114334036);
emit_32(3254386688);
emit_32(1110171661);
emit_32(1114475987);
emit_32(3254386688);
emit_32(1111195648);
emit_32(1114491322);
emit_32(3254386688);
emit_32(1112219661);
emit_32(1114531378);
emit_32(3254386688);
emit_32(1113243648);
emit_32(1114372755);
emit_32(3254386688);
emit_32(1114267661);
emit_32(1114308136);
emit_32(3254386688);
emit_32(1115291648);
emit_32(1113743609);
emit_32(3254386688);
emit_32(1116000263);
emit_32(1113664809);
emit_32(3254386688);
emit_32(1116512256);
emit_32(1113231799);
emit_32(3254386688);
emit_32(1117024263);
emit_32(1112995057);
emit_32(3254386688);
emit_32(1117536256);
emit_32(1112878744);
emit_32(3254386688);
emit_32(1118048263);
emit_32(1112754959);
emit_32(3254386688);
emit_32(1118560256);
emit_32(1112570436);
emit_32(3254386688);
emit_32(1119072263);
emit_32(1112364417);
emit_32(3254386688);
emit_32(1119584256);
emit_32(1111993903);
emit_32(3254386688);
emit_32(1120096263);
emit_32(1111795748);
emit_32(3254386688);
emit_32(1120608322);
emit_32(1111345490);
emit_32(3254386688);
emit_32(1121120289);
emit_32(1110601525);
emit_32(3254386688);
emit_32(1121632256);
emit_32(1110149693);
emit_32(3254386688);
emit_32(1122144223);
emit_32(1110165946);
emit_32(3254386688);
emit_32(1122656322);
emit_32(1109981554);
emit_32(3254386688);
emit_32(1123168289);
emit_32(1109825395);
emit_32(3254386688);
emit_32(1123680256);
emit_32(1109816797);
emit_32(3254386688);
emit_32(1124132848);
emit_32(1109710052);
emit_32(3254386688);
emit_32(1124388897);
emit_32(1109602468);
emit_32(3254386688);
emit_32(1124644880);
emit_32(1109349918);
emit_32(3254386688);
emit_32(1124900864);
emit_32(1109069634);
emit_32(3254386688);
emit_32(1125156848);
emit_32(1108800622);
emit_32(3254386688);
emit_32(1125412897);
emit_32(1108662341);
emit_32(3254386688);
emit_32(1125668880);
emit_32(1108955051);
emit_32(3254386688);
emit_32(1125924864);
emit_32(1109069896);
emit_32(3254386688);
emit_32(1126180848);
emit_32(1108753986);
emit_32(3254386688);
emit_32(1126436897);
emit_32(1108343941);
emit_32(3254386688);
emit_32(1126692880);
emit_32(1107751600);
emit_32(3254386688);
emit_32(1126948864);
emit_32(1107299113);
emit_32(3254386688);
emit_32(1127204848);
emit_32(1106833257);
emit_32(3254386688);
emit_32(1127460897);
emit_32(1106258742);
emit_32(3254386688);
emit_32(1127716880);
emit_32(1104970147);
emit_32(3254386688);
emit_32(1127972864);
emit_32(1103641549);
emit_32(3254386688);
emit_32(1128228848);
emit_32(1102486700);
emit_32(3254386688);
emit_32(1128484897);
emit_32(1100950903);
emit_32(3254386688);
emit_32(1128740880);
emit_32(1099783943);
emit_32(3254386688);
emit_32(1128996864);
emit_32(1099048105);
emit_32(3254386688);
emit_32(1129252848);
emit_32(1097916324);
emit_32(3254386688);
emit_32(1129508897);
emit_32(1096849293);
emit_32(3254386688);
emit_32(1129764880);
emit_32(1095290166);
emit_32(3254386688);
emit_32(1130020864);
emit_32(1094873566);
emit_32(3254386688);
emit_32(1130276848);
emit_32(1094773742);
emit_32(3254386688);
emit_32(1130532897);
emit_32(1093963298);
emit_32(3254386688);
emit_32(1130788880);
emit_32(1094288251);
emit_32(3254386688);
emit_32(1131044864);
emit_32(1093582560);
emit_32(3254386688);
emit_32(1131300848);
emit_32(1093578994);
emit_32(3254386688);
emit_32(1131556897);
emit_32(1093961096);
emit_32(3254386688);
emit_32(1131812880);
emit_32(1094270950);
emit_32(3254386688);
emit_32(1132068864);
emit_32(1094226805);
emit_32(3254386688);
emit_32(1081737216);
emit_32(1114694274);
emit_32(3255607309);
emit_32(1090125824);
emit_32(1114471950);
emit_32(3255607309);
emit_32(1094418484);
emit_32(1114251644);
emit_32(3255607309);
emit_32(1098514432);
emit_32(1114525794);
emit_32(3255607309);
emit_32(1100759066);
emit_32(1114675374);
emit_32(3255607309);
emit_32(1102807040);
emit_32(1114775146);
emit_32(3255607309);
emit_32(1104855066);
emit_32(1114776168);
emit_32(3255607309);
emit_32(1106903040);
emit_32(1114678755);
emit_32(3255607309);
emit_32(1108123661);
emit_32(1114267373);
emit_32(3255607309);
emit_32(1109147648);
emit_32(1114095459);
emit_32(3255607309);
emit_32(1110171661);
emit_32(1114227474);
emit_32(3255607309);
emit_32(1111195648);
emit_32(1114305305);
emit_32(3255607309);
emit_32(1112219661);
emit_32(1114012333);
emit_32(3255607309);
emit_32(1113243648);
emit_32(1113935761);
emit_32(3255607309);
emit_32(1114267661);
emit_32(1113756087);
emit_32(3255607309);
emit_32(1115291648);
emit_32(1113651780);
emit_32(3255607309);
emit_32(1116000263);
emit_32(1113622315);
emit_32(3255607309);
emit_32(1116512256);
emit_32(1113238353);
emit_32(3255607309);
emit_32(1117024263);
emit_32(1112877931);
emit_32(3255607309);
emit_32(1117536256);
emit_32(1112868625);
emit_32(3255607309);
emit_32(1118048263);
emit_32(1112560842);
emit_32(3255607309);
emit_32(1118560256);
emit_32(1112530249);
emit_32(3255607309);
emit_32(1119072263);
emit_32(1112251957);
emit_32(3255607309);
emit_32(1119584256);
emit_32(1111883697);
emit_32(3255607309);
emit_32(1120096263);
emit_32(1111510168);
emit_32(3255607309);
emit_32(1120608322);
emit_32(1111049686);
emit_32(3255607309);
emit_32(1121120289);
emit_32(1110465000);
emit_32(3255607309);
emit_32(1121632256);
emit_32(1110143926);
emit_32(3255607309);
emit_32(1122144223);
emit_32(1110128565);
emit_32(3255607309);
emit_32(1122656322);
emit_32(1110170613);
emit_32(3255607309);
emit_32(1123168289);
emit_32(1110002133);
emit_32(3255607309);
emit_32(1123680256);
emit_32(1109827938);
emit_32(3255607309);
emit_32(1124132848);
emit_32(1109697652);
emit_32(3255607309);
emit_32(1124388897);
emit_32(1109285929);
emit_32(3255607309);
emit_32(1124644880);
emit_32(1109015973);
emit_32(3255607309);
emit_32(1124900864);
emit_32(1108853103);
emit_32(3255607309);
emit_32(1125156848);
emit_32(1108675186);
emit_32(3255607309);
emit_32(1125412897);
emit_32(1108706171);
emit_32(3255607309);
emit_32(1125668880);
emit_32(1108840441);
emit_32(3255607309);
emit_32(1125924864);
emit_32(1108822485);
emit_32(3255607309);
emit_32(1126180848);
emit_32(1108425782);
emit_32(3255607309);
emit_32(1126436897);
emit_32(1108131997);
emit_32(3255607309);
emit_32(1126692880);
emit_32(1107626584);
emit_32(3255607309);
emit_32(1126948864);
emit_32(1107199630);
emit_32(3255607309);
emit_32(1127204848);
emit_32(1106951065);
emit_32(3255607309);
emit_32(1127460897);
emit_32(1106261574);
emit_32(3255607309);
emit_32(1127716880);
emit_32(1104881543);
emit_32(3255607309);
emit_32(1127972864);
emit_32(1103438021);
emit_32(3255607309);
emit_32(1128228848);
emit_32(1102185759);
emit_32(3255607309);
emit_32(1128484897);
emit_32(1101110234);
emit_32(3255607309);
emit_32(1128740880);
emit_32(1100328678);
emit_32(3255607309);
emit_32(1128996864);
emit_32(1099613287);
emit_32(3255607309);
emit_32(1129252848);
emit_32(1098156658);
emit_32(3255607309);
emit_32(1129508897);
emit_32(1096407528);
emit_32(3255607309);
emit_32(1129764880);
emit_32(1096170131);
emit_32(3255607309);
emit_32(1130020864);
emit_32(1095690512);
emit_32(3255607309);
emit_32(1130276848);
emit_32(1094209084);
emit_32(3255607309);
emit_32(1130532897);
emit_32(1093127687);
emit_32(3255607309);
emit_32(1130788880);
emit_32(1092438259);
emit_32(3255607309);
emit_32(1131044864);
emit_32(1092531729);
emit_32(3255607309);
emit_32(1131300848);
emit_32(1093627753);
emit_32(3255607309);
emit_32(1131556897);
emit_32(1094279863);
emit_32(3255607309);
emit_32(1131812880);
emit_32(1094536449);
emit_32(3255607309);
emit_32(1132068864);
emit_32(1094652422);
emit_32(3255607309);
emit_32(1081737216);
emit_32(1114612538);
emit_32(3256631296);
emit_32(1090125824);
emit_32(1114274713);
emit_32(3256631296);
emit_32(1094418484);
emit_32(1114042532);
emit_32(3256631296);
emit_32(1098514432);
emit_32(1114371758);
emit_32(3256631296);
emit_32(1100759066);
emit_32(1114654061);
emit_32(3256631296);
emit_32(1102807040);
emit_32(1114778344);
emit_32(3256631296);
emit_32(1104855066);
emit_32(1114758762);
emit_32(3256631296);
emit_32(1106903040);
emit_32(1114526817);
emit_32(3256631296);
emit_32(1108123661);
emit_32(1114218640);
emit_32(3256631296);
emit_32(1109147648);
emit_32(1113983497);
emit_32(3256631296);
emit_32(1110171661);
emit_32(1114023684);
emit_32(3256631296);
emit_32(1111195648);
emit_32(1114065102);
emit_32(3256631296);
emit_32(1112219661);
emit_32(1113899585);
emit_32(3256631296);
emit_32(1113243648);
emit_32(1113503538);
emit_32(3256631296);
emit_32(1114267661);
emit_32(1113409769);
emit_32(3256631296);
emit_32(1115291648);
emit_32(1113402665);
emit_32(3256631296);
emit_32(1116000263);
emit_32(1113537931);
emit_32(3256631296);
emit_32(1116512256);
emit_32(1113144426);
emit_32(3256631296);
emit_32(1117024263);
emit_32(1112966772);
emit_32(3256631296);
emit_32(1117536256);
emit_32(1112729086);
emit_32(3256631296);
emit_32(1118048263);
emit_32(1112420463);
emit_32(3256631296);
emit_32(1118560256);
emit_32(1112416322);
emit_32(3256631296);
emit_32(1119072263);
emit_32(1112175306);
emit_32(3256631296);
emit_32(1119584256);
emit_32(1112112733);
emit_32(3256631296);
emit_32(1120096263);
emit_32(1111723265);
emit_32(3256631296);
emit_32(1120608322);
emit_32(1111230539);
emit_32(3256631296);
emit_32(1121120289);
emit_32(1110568521);
emit_32(3256631296);
emit_32(1121632256);
emit_32(1110333220);
emit_32(3256631296);
emit_32(1122144223);
emit_32(1110249780);
emit_32(3256631296);
emit_32(1122656322);
emit_32(1110285117);
emit_32(3256631296);
emit_32(1123168289);
emit_32(1109907735);
emit_32(3256631296);
emit_32(1123680256);
emit_32(1109777213);
emit_32(3256631296);
emit_32(1124132848);
emit_32(1109451630);
emit_32(3256631296);
emit_32(1124388897);
emit_32(1109111184);
emit_32(3256631296);
emit_32(1124644880);
emit_32(1108792102);
emit_32(3256631296);
emit_32(1124900864);
emit_32(1108776190);
emit_32(3256631296);
emit_32(1125156848);
emit_32(1108834805);
emit_32(3256631296);
emit_32(1125412897);
emit_32(1108715477);
emit_32(3256631296);
emit_32(1125668880);
emit_32(1108660453);
emit_32(3256631296);
emit_32(1125924864);
emit_32(1108548623);
emit_32(3256631296);
emit_32(1126180848);
emit_32(1108317621);
emit_32(3256631296);
emit_32(1126436897);
emit_32(1107958091);
emit_32(3256631296);
emit_32(1126692880);
emit_32(1107488198);
emit_32(3256631296);
emit_32(1126948864);
emit_32(1107323624);
emit_32(3256631296);
emit_32(1127204848);
emit_32(1106940264);
emit_32(3256631296);
emit_32(1127460897);
emit_32(1106131026);
emit_32(3256631296);
emit_32(1127716880);
emit_32(1104537505);
emit_32(3256631296);
emit_32(1127972864);
emit_32(1103113277);
emit_32(3256631296);
emit_32(1128228848);
emit_32(1102198604);
emit_32(3256631296);
emit_32(1128484897);
emit_32(1101660003);
emit_32(3256631296);
emit_32(1128740880);
emit_32(1100980106);
emit_32(3256631296);
emit_32(1128996864);
emit_32(1100131808);
emit_32(3256631296);
emit_32(1129252848);
emit_32(1099325034);
emit_32(3256631296);
emit_32(1129508897);
emit_32(1097933521);
emit_32(3256631296);
emit_32(1129764880);
emit_32(1096350800);
emit_32(3256631296);
emit_32(1130020864);
emit_32(1095937976);
emit_32(3256631296);
emit_32(1130276848);
emit_32(1093950924);
emit_32(3256631296);
emit_32(1130532897);
emit_32(1093143101);
emit_32(3256631296);
emit_32(1130788880);
emit_32(1092323492);
emit_32(3256631296);
emit_32(1131044864);
emit_32(1092516462);
emit_32(3256631296);
emit_32(1131300848);
emit_32(1093374417);
emit_32(3256631296);
emit_32(1131556897);
emit_32(1093934567);
emit_32(3256631296);
emit_32(1131812880);
emit_32(1094793141);
emit_32(3256631296);
emit_32(1132068864);
emit_32(1094610584);
emit_32(3256631296);
emit_32(1081737216);
emit_32(1114510642);
emit_32(3257655309);
emit_32(1090125824);
emit_32(1114177090);
emit_32(3257655309);
emit_32(1094418484);
emit_32(1114130088);
emit_32(3257655309);
emit_32(1098514432);
emit_32(1114485503);
emit_32(3257655309);
emit_32(1100759066);
emit_32(1114774202);
emit_32(3257655309);
emit_32(1102807040);
emit_32(1114811400);
emit_32(3257655309);
emit_32(1104855066);
emit_32(1114642894);
emit_32(3257655309);
emit_32(1106903040);
emit_32(1114125710);
emit_32(3257655309);
emit_32(1108123661);
emit_32(1113782380);
emit_32(3257655309);
emit_32(1109147648);
emit_32(1113903464);
emit_32(3257655309);
emit_32(1110171661);
emit_32(1113893372);
emit_32(3257655309);
emit_32(1111195648);
emit_32(1113835831);
emit_32(3257655309);
emit_32(1112219661);
emit_32(1113519056);
emit_32(3257655309);
emit_32(1113243648);
emit_32(1113402219);
emit_32(3257655309);
emit_32(1114267661);
emit_32(1113222650);
emit_32(3257655309);
emit_32(1115291648);
emit_32(1113112760);
emit_32(3257655309);
emit_32(1116000263);
emit_32(1112977441);
emit_32(3257655309);
emit_32(1116512256);
emit_32(1112883121);
emit_32(3257655309);
emit_32(1117024263);
emit_32(1112823615);
emit_32(3257655309);
emit_32(1117536256);
emit_32(1112700957);
emit_32(3257655309);
emit_32(1118048263);
emit_32(1112438473);
emit_32(3257655309);
emit_32(1118560256);
emit_32(1112053645);
emit_32(3257655309);
emit_32(1119072263);
emit_32(1111879136);
emit_32(3257655309);
emit_32(1119584256);
emit_32(1112020641);
emit_32(3257655309);
emit_32(1120096263);
emit_32(1111750895);
emit_32(3257655309);
emit_32(1120608322);
emit_32(1111255810);
emit_32(3257655309);
emit_32(1121120289);
emit_32(1110557852);
emit_32(3257655309);
emit_32(1121632256);
emit_32(1110574917);
emit_32(3257655309);
emit_32(1122144223);
emit_32(1110468329);
emit_32(3257655309);
emit_32(1122656322);
emit_32(1110138264);
emit_32(3257655309);
emit_32(1123168289);
emit_32(1110059752);
emit_32(3257655309);
emit_32(1123680256);
emit_32(1109798447);
emit_32(3257655309);
emit_32(1124132848);
emit_32(1109243252);
emit_32(3257655309);
emit_32(1124388897);
emit_32(1109362344);
emit_32(3257655309);
emit_32(1124644880);
emit_32(1109167073);
emit_32(3257655309);
emit_32(1124900864);
emit_32(1109064601);
emit_32(3257655309);
emit_32(1125156848);
emit_32(1108980715);
emit_32(3257655309);
emit_32(1125412897);
emit_32(1108866472);
emit_32(3257655309);
emit_32(1125668880);
emit_32(1108651960);
emit_32(3257655309);
emit_32(1125924864);
emit_32(1108356130);
emit_32(3257655309);
emit_32(1126180848);
emit_32(1108103240);
emit_32(3257655309);
emit_32(1126436897);
emit_32(1107651828);
emit_32(3257655309);
emit_32(1126692880);
emit_32(1107336154);
emit_32(3257655309);
emit_32(1126948864);
emit_32(1106756135);
emit_32(3257655309);
emit_32(1127204848);
emit_32(1106100145);
emit_32(3257655309);
emit_32(1127460897);
emit_32(1105225790);
emit_32(3257655309);
emit_32(1127716880);
emit_32(1104058987);
emit_32(3257655309);
emit_32(1127972864);
emit_32(1103547702);
emit_32(3257655309);
emit_32(1128228848);
emit_32(1102526860);
emit_32(3257655309);
emit_32(1128484897);
emit_32(1101431308);
emit_32(3257655309);
emit_32(1128740880);
emit_32(1100829216);
emit_32(3257655309);
emit_32(1128996864);
emit_32(1100205418);
emit_32(3257655309);
emit_32(1129252848);
emit_32(1099550373);
emit_32(3257655309);
emit_32(1129508897);
emit_32(1098506148);
emit_32(3257655309);
emit_32(1129764880);
emit_32(1096071564);
emit_32(3257655309);
emit_32(1130020864);
emit_32(1095937976);
emit_32(3257655309);
emit_32(1130276848);
emit_32(1093431145);
emit_32(3257655309);
emit_32(1130532897);
emit_32(1092220816);
emit_32(3257655309);
emit_32(1130788880);
emit_32(1091857117);
emit_32(3257655309);
emit_32(1131044864);
emit_32(1092062974);
emit_32(3257655309);
emit_32(1131300848);
emit_32(1092869004);
emit_32(3257655309);
emit_32(1131556897);
emit_32(1094057460);
emit_32(3257655309);
emit_32(1131812880);
emit_32(1093644845);
emit_32(3257655309);
emit_32(1132068864);
emit_32(1092544669);
emit_32(3257655309);
emit_32(1081737216);
emit_32(1114350184);
emit_32(3258679296);
emit_32(1090125824);
emit_32(1114346619);
emit_32(3258679296);
emit_32(1094418484);
emit_32(1114421513);
emit_32(3258679296);
emit_32(1098514432);
emit_32(1114700304);
emit_32(3258679296);
emit_32(1100759066);
emit_32(1114796563);
emit_32(3258679296);
emit_32(1102807040);
emit_32(1114621582);
emit_32(3258679296);
emit_32(1104855066);
emit_32(1114296549);
emit_32(3258679296);
emit_32(1106903040);
emit_32(1114209753);
emit_32(3258679296);
emit_32(1108123661);
emit_32(1113856567);
emit_32(3258679296);
emit_32(1109147648);
emit_32(1113867944);
emit_32(3258679296);
emit_32(1110171661);
emit_32(1113863907);
emit_32(3258679296);
emit_32(1111195648);
emit_32(1113532976);
emit_32(3258679296);
emit_32(1112219661);
emit_32(1113290808);
emit_32(3258679296);
emit_32(1113243648);
emit_32(1113017942);
emit_32(3258679296);
emit_32(1114267661);
emit_32(1112948867);
emit_32(3258679296);
emit_32(1115291648);
emit_32(1112695872);
emit_32(3258679296);
emit_32(1116000263);
emit_32(1112643627);
emit_32(3258679296);
emit_32(1116512256);
emit_32(1112588707);
emit_32(3258679296);
emit_32(1117024263);
emit_32(1112603833);
emit_32(3258679296);
emit_32(1117536256);
emit_32(1112628213);
emit_32(3258679296);
emit_32(1118048263);
emit_32(1112273715);
emit_32(3258679296);
emit_32(1118560256);
emit_32(1111859449);
emit_32(3258679296);
emit_32(1119072263);
emit_32(1111576936);
emit_32(3258679296);
emit_32(1119584256);
emit_32(1111726726);
emit_32(3258679296);
emit_32(1120096263);
emit_32(1111402296);
emit_32(3258679296);
emit_32(1120608322);
emit_32(1110549489);
emit_32(3258679296);
emit_32(1121120289);
emit_32(1110448511);
emit_32(3258679296);
emit_32(1121632256);
emit_32(1110373695);
emit_32(3258679296);
emit_32(1122144223);
emit_32(1110467333);
emit_32(3258679296);
emit_32(1122656322);
emit_32(1110274028);
emit_32(3258679296);
emit_32(1123168289);
emit_32(1109946532);
emit_32(3258679296);
emit_32(1123680256);
emit_32(1109626795);
emit_32(3258679296);
emit_32(1124132848);
emit_32(1109494622);
emit_32(3258679296);
emit_32(1124388897);
emit_32(1109413069);
emit_32(3258679296);
emit_32(1124644880);
emit_32(1109297647);
emit_32(3258679296);
emit_32(1124900864);
emit_32(1109062294);
emit_32(3258679296);
emit_32(1125156848);
emit_32(1108844007);
emit_32(3258679296);
emit_32(1125412897);
emit_32(1108568860);
emit_32(3258679296);
emit_32(1125668880);
emit_32(1108450004);
emit_32(3258679296);
emit_32(1125924864);
emit_32(1108186943);
emit_32(3258679296);
emit_32(1126180848);
emit_32(1107845369);
emit_32(3258679296);
emit_32(1126436897);
emit_32(1107362972);
emit_32(3258679296);
emit_32(1126692880);
emit_32(1106252189);
emit_32(3258679296);
emit_32(1126948864);
emit_32(1105829298);
emit_32(3258679296);
emit_32(1127204848);
emit_32(1105218083);
emit_32(3258679296);
emit_32(1127460897);
emit_32(1104523506);
emit_32(3258679296);
emit_32(1127716880);
emit_32(1104128351);
emit_32(3258679296);
emit_32(1127972864);
emit_32(1103796214);
emit_32(3258679296);
emit_32(1128228848);
emit_32(1103027818);
emit_32(3258679296);
emit_32(1128484897);
emit_32(1101322309);
emit_32(3258679296);
emit_32(1128740880);
emit_32(1100681576);
emit_32(3258679296);
emit_32(1128996864);
emit_32(1099668023);
emit_32(3258679296);
emit_32(1129252848);
emit_32(1099208380);
emit_32(3258679296);
emit_32(1129508897);
emit_32(1097801400);
emit_32(3258679296);
emit_32(1129764880);
emit_32(1095333472);
emit_32(3258679296);
emit_32(1130020864);
emit_32(1094540329);
emit_32(3258679296);
emit_32(1130276848);
emit_32(1092787739);
emit_32(3258679296);
emit_32(1130532897);
emit_32(1092315051);
emit_32(3258679296);
emit_32(1130788880);
emit_32(1091861091);
emit_32(3258679296);
emit_32(1131044864);
emit_32(1091047459);
emit_32(3258679296);
emit_32(1131300848);
emit_32(1091787586);
emit_32(3258679296);
emit_32(1131556897);
emit_32(1091795230);
emit_32(3258679296);
emit_32(1131812880);
emit_32(1091987980);
emit_32(3258679296);
emit_32(1132068864);
emit_32(1091100066);
emit_32(3258679296);
emit_32(1081737216);
emit_32(1114597202);
emit_32(3259703309);
emit_32(1090125824);
emit_32(1114535127);
emit_32(3259703309);
emit_32(1094418484);
emit_32(1114569520);
emit_32(3259703309);
emit_32(1098514432);
emit_32(1114747935);
emit_32(3259703309);
emit_32(1100759066);
emit_32(1114487233);
emit_32(3259703309);
emit_32(1102807040);
emit_32(1114382795);
emit_32(3259703309);
emit_32(1104855066);
emit_32(1113996919);
emit_32(3259703309);
emit_32(1106903040);
emit_32(1114099181);
emit_32(3259703309);
emit_32(1108123661);
emit_32(1113852163);
emit_32(3259703309);
emit_32(1109147648);
emit_32(1113652435);
emit_32(3259703309);
emit_32(1110171661);
emit_32(1113551117);
emit_32(3259703309);
emit_32(1111195648);
emit_32(1113386543);
emit_32(3259703309);
emit_32(1112219661);
emit_32(1113298436);
emit_32(3259703309);
emit_32(1113243648);
emit_32(1112846185);
emit_32(3259703309);
emit_32(1114267661);
emit_32(1112699621);
emit_32(3259703309);
emit_32(1115291648);
emit_32(1112253320);
emit_32(3259703309);
emit_32(1116000263);
emit_32(1112228338);
emit_32(3259703309);
emit_32(1116512256);
emit_32(1112085679);
emit_32(3259703309);
emit_32(1117024263);
emit_32(1112407068);
emit_32(3259703309);
emit_32(1117536256);
emit_32(1112221391);
emit_32(3259703309);
emit_32(1118048263);
emit_32(1111896936);
emit_32(3259703309);
emit_32(1118560256);
emit_32(1111579322);
emit_32(3259703309);
emit_32(1119072263);
emit_32(1111494309);
emit_32(3259703309);
emit_32(1119584256);
emit_32(1111163588);
emit_32(3259703309);
emit_32(1120096263);
emit_32(1110845004);
emit_32(3259703309);
emit_32(1120608322);
emit_32(1110534835);
emit_32(3259703309);
emit_32(1121120289);
emit_32(1110661294);
emit_32(3259703309);
emit_32(1121632256);
emit_32(1110709161);
emit_32(3259703309);
emit_32(1122144223);
emit_32(1110566843);
emit_32(3259703309);
emit_32(1122656322);
emit_32(1110304385);
emit_32(3259703309);
emit_32(1123168289);
emit_32(1109925298);
emit_32(3259703309);
emit_32(1123680256);
emit_32(1109647897);
emit_32(3259703309);
emit_32(1124132848);
emit_32(1109489300);
emit_32(3259703309);
emit_32(1124388897);
emit_32(1109413541);
emit_32(3259703309);
emit_32(1124644880);
emit_32(1109402137);
emit_32(3259703309);
emit_32(1124900864);
emit_32(1108939034);
emit_32(3259703309);
emit_32(1125156848);
emit_32(1108484450);
emit_32(3259703309);
emit_32(1125412897);
emit_32(1108297200);
emit_32(3259703309);
emit_32(1125668880);
emit_32(1108185815);
emit_32(3259703309);
emit_32(1125924864);
emit_32(1108077104);
emit_32(3259703309);
emit_32(1126180848);
emit_32(1107688659);
emit_32(3259703309);
emit_32(1126436897);
emit_32(1107166075);
emit_32(3259703309);
emit_32(1126692880);
emit_32(1105985012);
emit_32(3259703309);
emit_32(1126948864);
emit_32(1104765465);
emit_32(3259703309);
emit_32(1127204848);
emit_32(1103884766);
emit_32(3259703309);
emit_32(1127460897);
emit_32(1103770157);
emit_32(3259703309);
emit_32(1127716880);
emit_32(1103747613);
emit_32(3259703309);
emit_32(1127972864);
emit_32(1103380349);
emit_32(3259703309);
emit_32(1128228848);
emit_32(1102807669);
emit_32(3259703309);
emit_32(1128484897);
emit_32(1101721240);
emit_32(3259703309);
emit_32(1128740880);
emit_32(1100629095);
emit_32(3259703309);
emit_32(1128996864);
emit_32(1099835323);
emit_32(3259703309);
emit_32(1129252848);
emit_32(1098920598);
emit_32(3259703309);
emit_32(1129508897);
emit_32(1096752929);
emit_32(3259703309);
emit_32(1129764880);
emit_32(1095066609);
emit_32(3259703309);
emit_32(1130020864);
emit_32(1093563371);
emit_32(3259703309);
emit_32(1130276848);
emit_32(1092693157);
emit_32(3259703309);
emit_32(1130532897);
emit_32(1091653725);
emit_32(3259703309);
emit_32(1130788880);
emit_32(1091615085);
emit_32(3259703309);
emit_32(1131044864);
emit_32(1091394161);
emit_32(3259703309);
emit_32(1131300848);
emit_32(1091605134);
emit_32(3259703309);
emit_32(1131556897);
emit_32(1091638730);
emit_32(3259703309);
emit_32(1131812880);
emit_32(1091599786);
emit_32(3259703309);
emit_32(1132068864);
emit_32(1092266859);
emit_32(3259703309);
emit_32(1081737216);
emit_32(1114739258);
emit_32(3260727296);
emit_32(1090125824);
emit_32(1114878378);
emit_32(3260727296);
emit_32(1094418484);
emit_32(1114870802);
emit_32(3260727296);
emit_32(1098514432);
emit_32(1114770794);
emit_32(3260727296);
emit_32(1100759066);
emit_32(1114231276);
emit_32(3260727296);
emit_32(1102807040);
emit_32(1114104450);
emit_32(3260727296);
emit_32(1104855066);
emit_32(1113868626);
emit_32(3260727296);
emit_32(1106903040);
emit_32(1113833393);
emit_32(3260727296);
emit_32(1108123661);
emit_32(1113996840);
emit_32(3260727296);
emit_32(1109147648);
emit_32(1113765393);
emit_32(3260727296);
emit_32(1110171661);
emit_32(1113650627);
emit_32(3260727296);
emit_32(1111195648);
emit_32(1113342896);
emit_32(3260727296);
emit_32(1112219661);
emit_32(1113156380);
emit_32(3260727296);
emit_32(1113243648);
emit_32(1112582154);
emit_32(3260727296);
emit_32(1114267661);
emit_32(1112346277);
emit_32(3260727296);
emit_32(1115291648);
emit_32(1111870249);
emit_32(3260727296);
emit_32(1116000263);
emit_32(1111605930);
emit_32(3260727296);
emit_32(1116512256);
emit_32(1111495305);
emit_32(3260727296);
emit_32(1117024263);
emit_32(1111701219);
emit_32(3260727296);
emit_32(1117536256);
emit_32(1111545768);
emit_32(3260727296);
emit_32(1118048263);
emit_32(1111442876);
emit_32(3260727296);
emit_32(1118560256);
emit_32(1111332802);
emit_32(3260727296);
emit_32(1119072263);
emit_32(1111091472);
emit_32(3260727296);
emit_32(1119584256);
emit_32(1110805001);
emit_32(3260727296);
emit_32(1120096263);
emit_32(1110581864);
emit_32(3260727296);
emit_32(1120608322);
emit_32(1110742008);
emit_32(3260727296);
emit_32(1121120289);
emit_32(1110855516);
emit_32(3260727296);
emit_32(1121632256);
emit_32(1110816168);
emit_32(3260727296);
emit_32(1122144223);
emit_32(1110551665);
emit_32(3260727296);
emit_32(1122656322);
emit_32(1110342579);
emit_32(3260727296);
emit_32(1123168289);
emit_32(1110183327);
emit_32(3260727296);
emit_32(1123680256);
emit_32(1109713040);
emit_32(3260727296);
emit_32(1124132848);
emit_32(1109405598);
emit_32(3260727296);
emit_32(1124388897);
emit_32(1109483874);
emit_32(3260727296);
emit_32(1124644880);
emit_32(1109243252);
emit_32(3260727296);
emit_32(1124900864);
emit_32(1108683915);
emit_32(3260727296);
emit_32(1125156848);
emit_32(1108334268);
emit_32(3260727296);
emit_32(1125412897);
emit_32(1108021346);
emit_32(3260727296);
emit_32(1125668880);
emit_32(1107650229);
emit_32(3260727296);
emit_32(1125924864);
emit_32(1107734875);
emit_32(3260727296);
emit_32(1126180848);
emit_32(1107447356);
emit_32(3260727296);
emit_32(1126436897);
emit_32(1106611641);
emit_32(3260727296);
emit_32(1126692880);
emit_32(1105656650);
emit_32(3260727296);
emit_32(1126948864);
emit_32(1104580601);
emit_32(3260727296);
emit_32(1127204848);
emit_32(1103477447);
emit_32(3260727296);
emit_32(1127460897);
emit_32(1102867753);
emit_32(3260727296);
emit_32(1127716880);
emit_32(1102847882);
emit_32(3260727296);
emit_32(1127972864);
emit_32(1102763996);
emit_32(3260727296);
emit_32(1128228848);
emit_32(1102458913);
emit_32(3260727296);
emit_32(1128484897);
emit_32(1102197083);
emit_32(3260727296);
emit_32(1128740880);
emit_32(1101514251);
emit_32(3260727296);
emit_32(1128996864);
emit_32(1100242957);
emit_32(3260727296);
emit_32(1129252848);
emit_32(1098935488);
emit_32(3260727296);
emit_32(1129508897);
emit_32(1096397147);
emit_32(3260727296);
emit_32(1129764880);
emit_32(1093735442);
emit_32(3260727296);
emit_32(1130020864);
emit_32(1092509887);
emit_32(3260727296);
emit_32(1130276848);
emit_32(1092214797);
emit_32(3260727296);
emit_32(1130532897);
emit_32(1091179916);
emit_32(3260727296);
emit_32(1130788880);
emit_32(1091523565);
emit_32(3260727296);
emit_32(1131044864);
emit_32(1091405317);
emit_32(3260727296);
emit_32(1131300848);
emit_32(1091481213);
emit_32(3260727296);
emit_32(1131556897);
emit_32(1091769446);
emit_32(3260727296);
emit_32(1131812880);
emit_32(1091742634);
emit_32(3260727296);
emit_32(1132068864);
emit_32(1092008249);
emit_32(3260727296);
emit_32(1081737216);
emit_32(1115049086);
emit_32(3261751309);
emit_32(1090125824);
emit_32(1114962395);
emit_32(3261751309);
emit_32(1094418484);
emit_32(1114740674);
emit_32(3261751309);
emit_32(1098514432);
emit_32(1114486001);
emit_32(3261751309);
emit_32(1100759066);
emit_32(1114250779);
emit_32(3261751309);
emit_32(1102807040);
emit_32(1113755799);
emit_32(3261751309);
emit_32(1104855066);
emit_32(1113604699);
emit_32(3261751309);
emit_32(1106903040);
emit_32(1113715717);
emit_32(3261751309);
emit_32(1108123661);
emit_32(1113733516);
emit_32(3261751309);
emit_32(1109147648);
emit_32(1113783009);
emit_32(3261751309);
emit_32(1110171661);
emit_32(1113496093);
emit_32(3261751309);
emit_32(1111195648);
emit_32(1113237016);
emit_32(3261751309);
emit_32(1112219661);
emit_32(1112990181);
emit_32(3261751309);
emit_32(1113243648);
emit_32(1112521022);
emit_32(3261751309);
emit_32(1114267661);
emit_32(1112125315);
emit_32(3261751309);
emit_32(1115291648);
emit_32(1111604671);
emit_32(3261751309);
emit_32(1116000263);
emit_32(1111264408);
emit_32(3261751309);
emit_32(1116512256);
emit_32(1110967242);
emit_32(3261751309);
emit_32(1117024263);
emit_32(1110960898);
emit_32(3261751309);
emit_32(1117536256);
emit_32(1110766938);
emit_32(3261751309);
emit_32(1118048263);
emit_32(1110773334);
emit_32(3261751309);
emit_32(1118560256);
emit_32(1110772364);
emit_32(3261751309);
emit_32(1119072263);
emit_32(1110784763);
emit_32(3261751309);
emit_32(1119584256);
emit_32(1110671203);
emit_32(3261751309);
emit_32(1120096263);
emit_32(1110537562);
emit_32(3261751309);
emit_32(1120608322);
emit_32(1110731470);
emit_32(3261751309);
emit_32(1121120289);
emit_32(1110870222);
emit_32(3261751309);
emit_32(1121632256);
emit_32(1110602652);
emit_32(3261751309);
emit_32(1122144223);
emit_32(1110529357);
emit_32(3261751309);
emit_32(1122656322);
emit_32(1110527626);
emit_32(3261751309);
emit_32(1123168289);
emit_32(1110155303);
emit_32(3261751309);
emit_32(1123680256);
emit_32(1109558559);
emit_32(3261751309);
emit_32(1124132848);
emit_32(1109729686);
emit_32(3261751309);
emit_32(1124388897);
emit_32(1109466835);
emit_32(3261751309);
emit_32(1124644880);
emit_32(1109238455);
emit_32(3261751309);
emit_32(1124900864);
emit_32(1108631067);
emit_32(3261751309);
emit_32(1125156848);
emit_32(1108053590);
emit_32(3261751309);
emit_32(1125412897);
emit_32(1107431549);
emit_32(3261751309);
emit_32(1125668880);
emit_32(1107275127);
emit_32(3261751309);
emit_32(1125924864);
emit_32(1107085807);
emit_32(3261751309);
emit_32(1126180848);
emit_32(1106875043);
emit_32(3261751309);
emit_32(1126436897);
emit_32(1106465207);
emit_32(3261751309);
emit_32(1126692880);
emit_32(1105739330);
emit_32(3261751309);
emit_32(1126948864);
emit_32(1104828380);
emit_32(3261751309);
emit_32(1127204848);
emit_32(1104194306);
emit_32(3261751309);
emit_32(1127460897);
emit_32(1103488510);
emit_32(3261751309);
emit_32(1127716880);
emit_32(1102913680);
emit_32(3261751309);
emit_32(1127972864);
emit_32(1102738044);
emit_32(3261751309);
emit_32(1128228848);
emit_32(1102513753);
emit_32(3261751309);
emit_32(1128484897);
emit_32(1102220624);
emit_32(3261751309);
emit_32(1128740880);
emit_32(1101685640);
emit_32(3261751309);
emit_32(1128996864);
emit_32(1100932081);
emit_32(3261751309);
emit_32(1129252848);
emit_32(1099376414);
emit_32(3261751309);
emit_32(1129508897);
emit_32(1096550344);
emit_32(3261751309);
emit_32(1129764880);
emit_32(1094603244);
emit_32(3261751309);
emit_32(1130020864);
emit_32(1092245762);
emit_32(3261751309);
emit_32(1130276848);
emit_32(1091851801);
emit_32(3261751309);
emit_32(1130532897);
emit_32(1091990360);
emit_32(3261751309);
emit_32(1130788880);
emit_32(1091469343);
emit_32(3261751309);
emit_32(1131044864);
emit_32(1091186889);
emit_32(3261751309);
emit_32(1131300848);
emit_32(1091680191);
emit_32(3261751309);
emit_32(1131556897);
emit_32(1092249820);
emit_32(3261751309);
emit_32(1131812880);
emit_32(1091787240);
emit_32(3261751309);
emit_32(1132068864);
emit_32(1092823076);
emit_32(3261751309);
emit_32(1081737216);
emit_32(1115189700);
emit_32(3262775296);
emit_32(1090125824);
emit_32(1114804086);
emit_32(3262775296);
emit_32(1094418484);
emit_32(1114524457);
emit_32(3262775296);
emit_32(1098514432);
emit_32(1114431554);
emit_32(3262775296);
emit_32(1100759066);
emit_32(1113978044);
emit_32(3262775296);
emit_32(1102807040);
emit_32(1113530381);
emit_32(3262775296);
emit_32(1104855066);
emit_32(1113581814);
emit_32(3262775296);
emit_32(1106903040);
emit_32(1113583963);
emit_32(3262775296);
emit_32(1108123661);
emit_32(1113510458);
emit_32(3262775296);
emit_32(1109147648);
emit_32(1113580162);
emit_32(3262775296);
emit_32(1110171661);
emit_32(1113244408);
emit_32(3262775296);
emit_32(1111195648);
emit_32(1113012699);
emit_32(3262775296);
emit_32(1112219661);
emit_32(1112648765);
emit_32(3262775296);
emit_32(1113243648);
emit_32(1112238483);
emit_32(3262775296);
emit_32(1114267661);
emit_32(1111804976);
emit_32(3262775296);
emit_32(1115291648);
emit_32(1111412362);
emit_32(3262775296);
emit_32(1116000263);
emit_32(1110827074);
emit_32(3262775296);
emit_32(1116512256);
emit_32(1110530694);
emit_32(3262775296);
emit_32(1117024263);
emit_32(1110239399);
emit_32(3262775296);
emit_32(1117536256);
emit_32(1110405048);
emit_32(3262775296);
emit_32(1118048263);
emit_32(1110532476);
emit_32(3262775296);
emit_32(1118560256);
emit_32(1110521885);
emit_32(3262775296);
emit_32(1119072263);
emit_32(1110500757);
emit_32(3262775296);
emit_32(1119584256);
emit_32(1110457372);
emit_32(3262775296);
emit_32(1120096263);
emit_32(1110371651);
emit_32(3262775296);
emit_32(1120608322);
emit_32(1110583332);
emit_32(3262775296);
emit_32(1121120289);
emit_32(1110579793);
emit_32(3262775296);
emit_32(1121632256);
emit_32(1110326510);
emit_32(3262775296);
emit_32(1122144223);
emit_32(1110576044);
emit_32(3262775296);
emit_32(1122656322);
emit_32(1110255731);
emit_32(3262775296);
emit_32(1123168289);
emit_32(1109817767);
emit_32(3262775296);
emit_32(1123680256);
emit_32(1109393120);
emit_32(3262775296);
emit_32(1124132848);
emit_32(1109645407);
emit_32(3262775296);
emit_32(1124388897);
emit_32(1109352881);
emit_32(3262775296);
emit_32(1124644880);
emit_32(1109118131);
emit_32(3262775296);
emit_32(1124900864);
emit_32(1108538950);
emit_32(3262775296);
emit_32(1125156848);
emit_32(1108056028);
emit_32(3262775296);
emit_32(1125412897);
emit_32(1107693981);
emit_32(3262775296);
emit_32(1125668880);
emit_32(1107060169);
emit_32(3262775296);
emit_32(1125924864);
emit_32(1106929307);
emit_32(3262775296);
emit_32(1126180848);
emit_32(1106668945);
emit_32(3262775296);
emit_32(1126436897);
emit_32(1106423893);
emit_32(3262775296);
emit_32(1126692880);
emit_32(1106097157);
emit_32(3262775296);
emit_32(1126948864);
emit_32(1105689628);
emit_32(3262775296);
emit_32(1127204848);
emit_32(1104863822);
emit_32(3262775296);
emit_32(1127460897);
emit_32(1104431232);
emit_32(3262775296);
emit_32(1127716880);
emit_32(1103727061);
emit_32(3262775296);
emit_32(1127972864);
emit_32(1103036154);
emit_32(3262775296);
emit_32(1128228848);
emit_32(1102391227);
emit_32(3262775296);
emit_32(1128484897);
emit_32(1102074977);
emit_32(3262775296);
emit_32(1128740880);
emit_32(1101512049);
emit_32(3262775296);
emit_32(1128996864);
emit_32(1100231108);
emit_32(3262775296);
emit_32(1129252848);
emit_32(1098399508);
emit_32(3262775296);
emit_32(1129508897);
emit_32(1096015571);
emit_32(3262775296);
emit_32(1129764880);
emit_32(1093673366);
emit_32(3262775296);
emit_32(1130020864);
emit_32(1092539069);
emit_32(3262775296);
emit_32(1130276848);
emit_32(1092267928);
emit_32(3262775296);
emit_32(1130532897);
emit_32(1092764041);
emit_32(3262775296);
emit_32(1130788880);
emit_32(1092150519);
emit_32(3262775296);
emit_32(1131044864);
emit_32(1091502594);
emit_32(3262775296);
emit_32(1131300848);
emit_32(1091946980);
emit_32(3262775296);
emit_32(1131556897);
emit_32(1091906568);
emit_32(3262775296);
emit_32(1131812880);
emit_32(1092505546);
emit_32(3262775296);
emit_32(1132068864);
emit_32(1093985842);
emit_32(3262775296);
emit_32(1081737216);
emit_32(1114860919);
emit_32(3263483911);
emit_32(1090125824);
emit_32(1114455068);
emit_32(3263483911);
emit_32(1094418484);
emit_32(1114274320);
emit_32(3263483911);
emit_32(1098514432);
emit_32(1113998492);
emit_32(3263483911);
emit_32(1100759066);
emit_32(1113229912);
emit_32(3263483911);
emit_32(1102807040);
emit_32(1112963364);
emit_32(3263483911);
emit_32(1104855066);
emit_32(1113085549);
emit_32(3263483911);
emit_32(1106903040);
emit_32(1113193500);
emit_32(3263483911);
emit_32(1108123661);
emit_32(1113051339);
emit_32(3263483911);
emit_32(1109147648);
emit_32(1112914631);
emit_32(3263483911);
emit_32(1110171661);
emit_32(1112713593);
emit_32(3263483911);
emit_32(1111195648);
emit_32(1112530774);
emit_32(3263483911);
emit_32(1112219661);
emit_32(1112319538);
emit_32(3263483911);
emit_32(1113243648);
emit_32(1112017836);
emit_32(3263483911);
emit_32(1114267661);
emit_32(1111480022);
emit_32(3263483911);
emit_32(1115291648);
emit_32(1111044889);
emit_32(3263483911);
emit_32(1116000263);
emit_32(1110559058);
emit_32(3263483911);
emit_32(1116512256);
emit_32(1109970151);
emit_32(3263483911);
emit_32(1117024263);
emit_32(1109713014);
emit_32(3263483911);
emit_32(1117536256);
emit_32(1109844532);
emit_32(3263483911);
emit_32(1118048263);
emit_32(1110110713);
emit_32(3263483911);
emit_32(1118560256);
emit_32(1110168096);
emit_32(3263483911);
emit_32(1119072263);
emit_32(1110188910);
emit_32(3263483911);
emit_32(1119584256);
emit_32(1110300531);
emit_32(3263483911);
emit_32(1120096263);
emit_32(1110086438);
emit_32(3263483911);
emit_32(1120608322);
emit_32(1110098418);
emit_32(3263483911);
emit_32(1121120289);
emit_32(1110207470);
emit_32(3263483911);
emit_32(1121632256);
emit_32(1110104814);
emit_32(3263483911);
emit_32(1122144223);
emit_32(1110042057);
emit_32(3263483911);
emit_32(1122656322);
emit_32(1109977963);
emit_32(3263483911);
emit_32(1123168289);
emit_32(1109719017);
emit_32(3263483911);
emit_32(1123680256);
emit_32(1109491371);
emit_32(3263483911);
emit_32(1124132848);
emit_32(1109439493);
emit_32(3263483911);
emit_32(1124388897);
emit_32(1109273372);
emit_32(3263483911);
emit_32(1124644880);
emit_32(1109142720);
emit_32(3263483911);
emit_32(1124900864);
emit_32(1108647110);
emit_32(3263483911);
emit_32(1125156848);
emit_32(1108078520);
emit_32(3263483911);
emit_32(1125412897);
emit_32(1107629520);
emit_32(3263483911);
emit_32(1125668880);
emit_32(1107405963);
emit_32(3263483911);
emit_32(1125924864);
emit_32(1107180388);
emit_32(3263483911);
emit_32(1126180848);
emit_32(1106634447);
emit_32(3263483911);
emit_32(1126436897);
emit_32(1106537297);
emit_32(3263483911);
emit_32(1126692880);
emit_32(1106021869);
emit_32(3263483911);
emit_32(1126948864);
emit_32(1105710599);
emit_32(3263483911);
emit_32(1127204848);
emit_32(1104910693);
emit_32(3263483911);
emit_32(1127460897);
emit_32(1104565083);
emit_32(3263483911);
emit_32(1127716880);
emit_32(1103934836);
emit_32(3263483911);
emit_32(1127972864);
emit_32(1103249120);
emit_32(3263483911);
emit_32(1128228848);
emit_32(1102145336);
emit_32(3263483911);
emit_32(1128484897);
emit_32(1101411962);
emit_32(3263483911);
emit_32(1128740880);
emit_32(1100959711);
emit_32(3263483911);
emit_32(1128996864);
emit_32(1099510055);
emit_32(3263483911);
emit_32(1129252848);
emit_32(1096815005);
emit_32(3263483911);
emit_32(1129508897);
emit_32(1094088393);
emit_32(3263483911);
emit_32(1129764880);
emit_32(1092617450);
emit_32(3263483911);
emit_32(1130020864);
emit_32(1091201757);
emit_32(3263483911);
emit_32(1130276848);
emit_32(1091975481);
emit_32(3263483911);
emit_32(1130532897);
emit_32(1092051219);
emit_32(3263483911);
emit_32(1130788880);
emit_32(1091427243);
emit_32(3263483911);
emit_32(1131044864);
emit_32(1091236570);
emit_32(3263483911);
emit_32(1131300848);
emit_32(1092364376);
emit_32(3263483911);
emit_32(1131556897);
emit_32(1093015385);
emit_32(3263483911);
emit_32(1131812880);
emit_32(1093629116);
emit_32(3263483911);
emit_32(1132068864);
emit_32(1094121318);
emit_32(3263483911);
emit_32(1081737216);
emit_32(1114412994);
emit_32(3263995904);
emit_32(1090125824);
emit_32(1114056740);
emit_32(3263995904);
emit_32(1094418484);
emit_32(1113478634);
emit_32(3263995904);
emit_32(1098514432);
emit_32(1113153890);
emit_32(3263995904);
emit_32(1100759066);
emit_32(1112554235);
emit_32(3263995904);
emit_32(1102807040);
emit_32(1112170430);
emit_32(3263995904);
emit_32(1104855066);
emit_32(1112241550);
emit_32(3263995904);
emit_32(1106903040);
emit_32(1112360406);
emit_32(3263995904);
emit_32(1108123661);
emit_32(1112453310);
emit_32(3263995904);
emit_32(1109147648);
emit_32(1112310127);
emit_32(3263995904);
emit_32(1110171661);
emit_32(1112440544);
emit_32(3263995904);
emit_32(1111195648);
emit_32(1111943545);
emit_32(3263995904);
emit_32(1112219661);
emit_32(1111698283);
emit_32(3263995904);
emit_32(1113243648);
emit_32(1111330233);
emit_32(3263995904);
emit_32(1114267661);
emit_32(1111083634);
emit_32(3263995904);
emit_32(1115291648);
emit_32(1110768275);
emit_32(3263995904);
emit_32(1116000263);
emit_32(1110145158);
emit_32(3263995904);
emit_32(1116512256);
emit_32(1109629941);
emit_32(3263995904);
emit_32(1117024263);
emit_32(1109269781);
emit_32(3263995904);
emit_32(1117536256);
emit_32(1109302287);
emit_32(3263995904);
emit_32(1118048263);
emit_32(1109529015);
emit_32(3263995904);
emit_32(1118560256);
emit_32(1109660900);
emit_32(3263995904);
emit_32(1119072263);
emit_32(1109901076);
emit_32(3263995904);
emit_32(1119584256);
emit_32(1109952850);
emit_32(3263995904);
emit_32(1120096263);
emit_32(1109778733);
emit_32(3263995904);
emit_32(1120608322);
emit_32(1109570460);
emit_32(3263995904);
emit_32(1121120289);
emit_32(1109713381);
emit_32(3263995904);
emit_32(1121632256);
emit_32(1109646849);
emit_32(3263995904);
emit_32(1122144223);
emit_32(1109683837);
emit_32(3263995904);
emit_32(1122656322);
emit_32(1109578377);
emit_32(3263995904);
emit_32(1123168289);
emit_32(1109348975);
emit_32(3263995904);
emit_32(1123680256);
emit_32(1109644804);
emit_32(3263995904);
emit_32(1124132848);
emit_32(1109851662);
emit_32(3263995904);
emit_32(1124388897);
emit_32(1109688451);
emit_32(3263995904);
emit_32(1124644880);
emit_32(1109357599);
emit_32(3263995904);
emit_32(1124900864);
emit_32(1108828593);
emit_32(3263995904);
emit_32(1125156848);
emit_32(1108185291);
emit_32(3263995904);
emit_32(1125412897);
emit_32(1107780226);
emit_32(3263995904);
emit_32(1125668880);
emit_32(1107584457);
emit_32(3263995904);
emit_32(1125924864);
emit_32(1107420958);
emit_32(3263995904);
emit_32(1126180848);
emit_32(1107022525);
emit_32(3263995904);
emit_32(1126436897);
emit_32(1105944170);
emit_32(3263995904);
emit_32(1126692880);
emit_32(1105239946);
emit_32(3263995904);
emit_32(1126948864);
emit_32(1105095295);
emit_32(3263995904);
emit_32(1127204848);
emit_32(1104538816);
emit_32(3263995904);
emit_32(1127460897);
emit_32(1103876692);
emit_32(3263995904);
emit_32(1127716880);
emit_32(1103498786);
emit_32(3263995904);
emit_32(1127972864);
emit_32(1102542589);
emit_32(3263995904);
emit_32(1128228848);
emit_32(1101655913);
emit_32(3263995904);
emit_32(1128484897);
emit_32(1100746955);
emit_32(3263995904);
emit_32(1128740880);
emit_32(1099747662);
emit_32(3263995904);
emit_32(1128996864);
emit_32(1098190422);
emit_32(3263995904);
emit_32(1129252848);
emit_32(1095504599);
emit_32(3263995904);
emit_32(1129508897);
emit_32(1092998503);
emit_32(3263995904);
emit_32(1129764880);
emit_32(1090781394);
emit_32(3263995904);
emit_32(1130020864);
emit_32(1090669165);
emit_32(3263995904);
emit_32(1130276848);
emit_32(1091201548);
emit_32(3263995904);
emit_32(1130532897);
emit_32(1091148238);
emit_32(3263995904);
emit_32(1130788880);
emit_32(1091128944);
emit_32(3263995904);
emit_32(1131044864);
emit_32(1091988745);
emit_32(3263995904);
emit_32(1131300848);
emit_32(1092577195);
emit_32(3263995904);
emit_32(1131556897);
emit_32(1092426756);
emit_32(3263995904);
emit_32(1131812880);
emit_32(1092938944);
emit_32(3263995904);
emit_32(1132068864);
emit_32(1093077985);
emit_32(3263995904);
emit_32(1081737216);
emit_32(1113723162);
emit_32(3264507911);
emit_32(1090125824);
emit_32(1113515282);
emit_32(3264507911);
emit_32(1094418484);
emit_32(1112907160);
emit_32(3264507911);
emit_32(1098514432);
emit_32(1112285197);
emit_32(3264507911);
emit_32(1100759066);
emit_32(1111782615);
emit_32(3264507911);
emit_32(1102807040);
emit_32(1111448565);
emit_32(3264507911);
emit_32(1104855066);
emit_32(1111432364);
emit_32(3264507911);
emit_32(1106903040);
emit_32(1111593242);
emit_32(3264507911);
emit_32(1108123661);
emit_32(1111556175);
emit_32(3264507911);
emit_32(1109147648);
emit_32(1111791947);
emit_32(3264507911);
emit_32(1110171661);
emit_32(1111706147);
emit_32(3264507911);
emit_32(1111195648);
emit_32(1111342658);
emit_32(3264507911);
emit_32(1112219661);
emit_32(1111241785);
emit_32(3264507911);
emit_32(1113243648);
emit_32(1110814700);
emit_32(3264507911);
emit_32(1114267661);
emit_32(1110530720);
emit_32(3264507911);
emit_32(1115291648);
emit_32(1110173496);
emit_32(3264507911);
emit_32(1116000263);
emit_32(1109779887);
emit_32(3264507911);
emit_32(1116512256);
emit_32(1109242701);
emit_32(3264507911);
emit_32(1117024263);
emit_32(1108763528);
emit_32(3264507911);
emit_32(1117536256);
emit_32(1108823140);
emit_32(3264507911);
emit_32(1118048263);
emit_32(1109120202);
emit_32(3264507911);
emit_32(1118560256);
emit_32(1109432205);
emit_32(3264507911);
emit_32(1119072263);
emit_32(1109682684);
emit_32(3264507911);
emit_32(1119584256);
emit_32(1109558821);
emit_32(3264507911);
emit_32(1120096263);
emit_32(1109416031);
emit_32(3264507911);
emit_32(1120608322);
emit_32(1109479208);
emit_32(3264507911);
emit_32(1121120289);
emit_32(1109404235);
emit_32(3264507911);
emit_32(1121632256);
emit_32(1109406882);
emit_32(3264507911);
emit_32(1122144223);
emit_32(1109258378);
emit_32(3264507911);
emit_32(1122656322);
emit_32(1109286008);
emit_32(3264507911);
emit_32(1123168289);
emit_32(1109433857);
emit_32(3264507911);
emit_32(1123680256);
emit_32(1109483166);
emit_32(3264507911);
emit_32(1124132848);
emit_32(1109859762);
emit_32(3264507911);
emit_32(1124388897);
emit_32(1109785995);
emit_32(3264507911);
emit_32(1124644880);
emit_32(1109694218);
emit_32(3264507911);
emit_32(1124900864);
emit_32(1109081588);
emit_32(3264507911);
emit_32(1125156848);
emit_32(1108301316);
emit_32(3264507911);
emit_32(1125412897);
emit_32(1107987923);
emit_32(3264507911);
emit_32(1125668880);
emit_32(1107744208);
emit_32(3264507911);
emit_32(1125924864);
emit_32(1107483348);
emit_32(3264507911);
emit_32(1126180848);
emit_32(1106653741);
emit_32(3264507911);
emit_32(1126436897);
emit_32(1105289282);
emit_32(3264507911);
emit_32(1126692880);
emit_32(1104749946);
emit_32(3264507911);
emit_32(1126948864);
emit_32(1104530532);
emit_32(3264507911);
emit_32(1127204848);
emit_32(1104035552);
emit_32(3264507911);
emit_32(1127460897);
emit_32(1103561123);
emit_32(3264507911);
emit_32(1127716880);
emit_32(1102839493);
emit_32(3264507911);
emit_32(1127972864);
emit_32(1102745908);
emit_32(3264507911);
emit_32(1128228848);
emit_32(1102238083);
emit_32(3264507911);
emit_32(1128484897);
emit_32(1101176504);
emit_32(3264507911);
emit_32(1128740880);
emit_32(1099585395);
emit_32(3264507911);
emit_32(1128996864);
emit_32(1097910033);
emit_32(3264507911);
emit_32(1129252848);
emit_32(1094998662);
emit_32(3264507911);
emit_32(1129508897);
emit_32(1092197905);
emit_32(3264507911);
emit_32(1129764880);
emit_32(1089185482);
emit_32(3264507911);
emit_32(1130020864);
emit_32(1088998898);
emit_32(3264507911);
emit_32(1130276848);
emit_32(1090896014);
emit_32(3264507911);
emit_32(1130532897);
emit_32(1090711286);
emit_32(3264507911);
emit_32(1130788880);
emit_32(1091554068);
emit_32(3264507911);
emit_32(1131044864);
emit_32(1091546760);
emit_32(3264507911);
emit_32(1131300848);
emit_32(1091602523);
emit_32(3264507911);
emit_32(1131556897);
emit_32(1091448749);
emit_32(3264507911);
emit_32(1131812880);
emit_32(1091178993);
emit_32(3264507911);
emit_32(1132068864);
emit_32(1092283059);
emit_32(3264507911);
emit_32(1081737216);
emit_32(1113178820);
emit_32(3265019904);
emit_32(1090125824);
emit_32(1112815043);
emit_32(3265019904);
emit_32(1094418484);
emit_32(1112334769);
emit_32(3265019904);
emit_32(1098514432);
emit_32(1111680641);
emit_32(3265019904);
emit_32(1100759066);
emit_32(1110962104);
emit_32(3265019904);
emit_32(1102807040);
emit_32(1110710079);
emit_32(3265019904);
emit_32(1104855066);
emit_32(1110785366);
emit_32(3265019904);
emit_32(1106903040);
emit_32(1110945956);
emit_32(3265019904);
emit_32(1108123661);
emit_32(1111176643);
emit_32(3265019904);
emit_32(1109147648);
emit_32(1111187364);
emit_32(3265019904);
emit_32(1110171661);
emit_32(1110966901);
emit_32(3265019904);
emit_32(1111195648);
emit_32(1110878952);
emit_32(3265019904);
emit_32(1112219661);
emit_32(1110825343);
emit_32(3265019904);
emit_32(1113243648);
emit_32(1110299718);
emit_32(3265019904);
emit_32(1114267661);
emit_32(1109951067);
emit_32(3265019904);
emit_32(1115291648);
emit_32(1109657859);
emit_32(3265019904);
emit_32(1116000263);
emit_32(1109104185);
emit_32(3265019904);
emit_32(1116512256);
emit_32(1108869644);
emit_32(3265019904);
emit_32(1117024263);
emit_32(1108483296);
emit_32(3265019904);
emit_32(1117536256);
emit_32(1108620057);
emit_32(3265019904);
emit_32(1118048263);
emit_32(1108696603);
emit_32(3265019904);
emit_32(1118560256);
emit_32(1109027874);
emit_32(3265019904);
emit_32(1119072263);
emit_32(1109328580);
emit_32(3265019904);
emit_32(1119584256);
emit_32(1109485499);
emit_32(3265019904);
emit_32(1120096263);
emit_32(1109574785);
emit_32(3265019904);
emit_32(1120608322);
emit_32(1109596203);
emit_32(3265019904);
emit_32(1121120289);
emit_32(1109472235);
emit_32(3265019904);
emit_32(1121632256);
emit_32(1109210510);
emit_32(3265019904);
emit_32(1122144223);
emit_32(1109167152);
emit_32(3265019904);
emit_32(1122656322);
emit_32(1109362999);
emit_32(3265019904);
emit_32(1123168289);
emit_32(1109542149);
emit_32(3265019904);
emit_32(1123680256);
emit_32(1109608156);
emit_32(3265019904);
emit_32(1124132848);
emit_32(1109889647);
emit_32(3265019904);
emit_32(1124388897);
emit_32(1110013300);
emit_32(3265019904);
emit_32(1124644880);
emit_32(1109719908);
emit_32(3265019904);
emit_32(1124900864);
emit_32(1109054299);
emit_32(3265019904);
emit_32(1125156848);
emit_32(1108598561);
emit_32(3265019904);
emit_32(1125412897);
emit_32(1108352696);
emit_32(3265019904);
emit_32(1125668880);
emit_32(1107819128);
emit_32(3265019904);
emit_32(1125924864);
emit_32(1107355868);
emit_32(3265019904);
emit_32(1126180848);
emit_32(1106496193);
emit_32(3265019904);
emit_32(1126436897);
emit_32(1105447564);
emit_32(3265019904);
emit_32(1126692880);
emit_32(1104791208);
emit_32(3265019904);
emit_32(1126948864);
emit_32(1104514122);
emit_32(3265019904);
emit_32(1127204848);
emit_32(1103658956);
emit_32(3265019904);
emit_32(1127460897);
emit_32(1103186887);
emit_32(3265019904);
emit_32(1127716880);
emit_32(1103111179);
emit_32(3265019904);
emit_32(1127972864);
emit_32(1103121823);
emit_32(3265019904);
emit_32(1128228848);
emit_32(1102278872);
emit_32(3265019904);
emit_32(1128484897);
emit_32(1100851603);
emit_32(3265019904);
emit_32(1128740880);
emit_32(1099479699);
emit_32(3265019904);
emit_32(1128996864);
emit_32(1097632580);
emit_32(3265019904);
emit_32(1129252848);
emit_32(1094591185);
emit_32(3265019904);
emit_32(1129508897);
emit_32(1091931629);
emit_32(3265019904);
emit_32(1129764880);
emit_32(1088905806);
emit_32(3265019904);
emit_32(1130020864);
emit_32(1090343655);
emit_32(3265019904);
emit_32(1130276848);
emit_32(1091249918);
emit_32(3265019904);
emit_32(1130532897);
emit_32(1091107417);
emit_32(3265019904);
emit_32(1130788880);
emit_32(1092474068);
emit_32(3265019904);
emit_32(1131044864);
emit_32(1091844765);
emit_32(3265019904);
emit_32(1131300848);
emit_32(1091016830);
emit_32(3265019904);
emit_32(1131556897);
emit_32(1090180560);
emit_32(3265019904);
emit_32(1131812880);
emit_32(1090146502);
emit_32(3265019904);
emit_32(1132068864);
emit_32(1091238625);
emit_32(3265019904);
emit_32(1081737216);
emit_32(1112525767);
emit_32(3265531911);
emit_32(1090125824);
emit_32(1112045230);
emit_32(3265531911);
emit_32(1094418484);
emit_32(1111728246);
emit_32(3265531911);
emit_32(1098514432);
emit_32(1111134490);
emit_32(3265531911);
emit_32(1100759066);
emit_32(1110592061);
emit_32(3265531911);
emit_32(1102807040);
emit_32(1110293873);
emit_32(3265531911);
emit_32(1104855066);
emit_32(1110356761);
emit_32(3265531911);
emit_32(1106903040);
emit_32(1110662159);
emit_32(3265531911);
emit_32(1108123661);
emit_32(1110710760);
emit_32(3265531911);
emit_32(1109147648);
emit_32(1110634267);
emit_32(3265531911);
emit_32(1110171661);
emit_32(1110559556);
emit_32(3265531911);
emit_32(1111195648);
emit_32(1110659144);
emit_32(3265531911);
emit_32(1112219661);
emit_32(1110325251);
emit_32(3265531911);
emit_32(1113243648);
emit_32(1109714954);
emit_32(3265531911);
emit_32(1114267661);
emit_32(1109517035);
emit_32(3265531911);
emit_32(1115291648);
emit_32(1108983441);
emit_32(3265531911);
emit_32(1116000263);
emit_32(1108437998);
emit_32(3265531911);
emit_32(1116512256);
emit_32(1108232687);
emit_32(3265531911);
emit_32(1117024263);
emit_32(1108084497);
emit_32(3265531911);
emit_32(1117536256);
emit_32(1108299979);
emit_32(3265531911);
emit_32(1118048263);
emit_32(1108631434);
emit_32(3265531911);
emit_32(1118560256);
emit_32(1108895544);
emit_32(3265531911);
emit_32(1119072263);
emit_32(1109120306);
emit_32(3265531911);
emit_32(1119584256);
emit_32(1109413095);
emit_32(3265531911);
emit_32(1120096263);
emit_32(1109497977);
emit_32(3265531911);
emit_32(1120608322);
emit_32(1109458603);
emit_32(3265531911);
emit_32(1121120289);
emit_32(1109373328);
emit_32(3265531911);
emit_32(1121632256);
emit_32(1109400669);
emit_32(3265531911);
emit_32(1122144223);
emit_32(1109567655);
emit_32(3265531911);
emit_32(1122656322);
emit_32(1109574287);
emit_32(3265531911);
emit_32(1123168289);
emit_32(1109599375);
emit_32(3265531911);
emit_32(1123680256);
emit_32(1109804660);
emit_32(3265531911);
emit_32(1124132848);
emit_32(1109874704);
emit_32(3265531911);
emit_32(1124388897);
emit_32(1109814254);
emit_32(3265531911);
emit_32(1124644880);
emit_32(1109294763);
emit_32(3265531911);
emit_32(1124900864);
emit_32(1109046460);
emit_32(3265531911);
emit_32(1125156848);
emit_32(1108605901);
emit_32(3265531911);
emit_32(1125412897);
emit_32(1108298039);
emit_32(3265531911);
emit_32(1125668880);
emit_32(1108029997);
emit_32(3265531911);
emit_32(1125924864);
emit_32(1107621262);
emit_32(3265531911);
emit_32(1126180848);
emit_32(1106659980);
emit_32(3265531911);
emit_32(1126436897);
emit_32(1105554362);
emit_32(3265531911);
emit_32(1126692880);
emit_32(1104494356);
emit_32(3265531911);
emit_32(1126948864);
emit_32(1104060455);
emit_32(3265531911);
emit_32(1127204848);
emit_32(1103517817);
emit_32(3265531911);
emit_32(1127460897);
emit_32(1102225500);
emit_32(3265531911);
emit_32(1127716880);
emit_32(1102665010);
emit_32(3265531911);
emit_32(1127972864);
emit_32(1102667894);
emit_32(3265531911);
emit_32(1128228848);
emit_32(1101705144);
emit_32(3265531911);
emit_32(1128484897);
emit_32(1100387503);
emit_32(3265531911);
emit_32(1128740880);
emit_32(1099194486);
emit_32(3265531911);
emit_32(1128996864);
emit_32(1097299866);
emit_32(3265531911);
emit_32(1129252848);
emit_32(1093825515);
emit_32(3265531911);
emit_32(1129508897);
emit_32(1090816720);
emit_32(3265531911);
emit_32(1129764880);
emit_32(1090544321);
emit_32(3265531911);
emit_32(1130020864);
emit_32(1090558718);
emit_32(3265531911);
emit_32(1130276848);
emit_32(1090808845);
emit_32(3265531911);
emit_32(1130532897);
emit_32(1090674481);
emit_32(3265531911);
emit_32(1130788880);
emit_32(1090993898);
emit_32(3265531911);
emit_32(1131044864);
emit_32(1090749297);
emit_32(3265531911);
emit_32(1131300848);
emit_32(1090783533);
emit_32(3265531911);
emit_32(1131556897);
emit_32(1089829685);
emit_32(3265531911);
emit_32(1131812880);
emit_32(1090562483);
emit_32(3265531911);
emit_32(1132068864);
emit_32(1091169052);
emit_32(3265531911);
emit_32(1081737216);
emit_32(1112016683);
emit_32(3266043904);
emit_32(1090125824);
emit_32(1111610963);
emit_32(3266043904);
emit_32(1094418484);
emit_32(1110972380);
emit_32(3266043904);
emit_32(1098514432);
emit_32(1110456559);
emit_32(3266043904);
emit_32(1100759066);
emit_32(1110004833);
emit_32(3266043904);
emit_32(1102807040);
emit_32(1109891010);
emit_32(3266043904);
emit_32(1104855066);
emit_32(1110020745);
emit_32(3266043904);
emit_32(1106903040);
emit_32(1110210065);
emit_32(3266043904);
emit_32(1108123661);
emit_32(1110213526);
emit_32(3266043904);
emit_32(1109147648);
emit_32(1110290465);
emit_32(3266043904);
emit_32(1110171661);
emit_32(1110321843);
emit_32(3266043904);
emit_32(1111195648);
emit_32(1109977832);
emit_32(3266043904);
emit_32(1112219661);
emit_32(1109631120);
emit_32(3266043904);
emit_32(1113243648);
emit_32(1109240762);
emit_32(3266043904);
emit_32(1114267661);
emit_32(1108674478);
emit_32(3266043904);
emit_32(1115291648);
emit_32(1108141775);
emit_32(3266043904);
emit_32(1116000263);
emit_32(1107789637);
emit_32(3266043904);
emit_32(1116512256);
emit_32(1107598534);
emit_32(3266043904);
emit_32(1117024263);
emit_32(1107892555);
emit_32(3266043904);
emit_32(1117536256);
emit_32(1108239712);
emit_32(3266043904);
emit_32(1118048263);
emit_32(1108608811);
emit_32(3266043904);
emit_32(1118560256);
emit_32(1108738520);
emit_32(3266043904);
emit_32(1119072263);
emit_32(1108905191);
emit_32(3266043904);
emit_32(1119584256);
emit_32(1109116820);
emit_32(3266043904);
emit_32(1120096263);
emit_32(1109110843);
emit_32(3266043904);
emit_32(1120608322);
emit_32(1109093384);
emit_32(3266043904);
emit_32(1121120289);
emit_32(1109277331);
emit_32(3266043904);
emit_32(1121632256);
emit_32(1109425678);
emit_32(3266043904);
emit_32(1122144223);
emit_32(1109587814);
emit_32(3266043904);
emit_32(1122656322);
emit_32(1109495330);
emit_32(3266043904);
emit_32(1123168289);
emit_32(1109569438);
emit_32(3266043904);
emit_32(1123680256);
emit_32(1109583358);
emit_32(3266043904);
emit_32(1124132848);
emit_32(1109553945);
emit_32(3266043904);
emit_32(1124388897);
emit_32(1109310833);
emit_32(3266043904);
emit_32(1124644880);
emit_32(1109184820);
emit_32(3266043904);
emit_32(1124900864);
emit_32(1108916725);
emit_32(3266043904);
emit_32(1125156848);
emit_32(1108501594);
emit_32(3266043904);
emit_32(1125412897);
emit_32(1108421037);
emit_32(3266043904);
emit_32(1125668880);
emit_32(1108052070);
emit_32(3266043904);
emit_32(1125924864);
emit_32(1107663887);
emit_32(3266043904);
emit_32(1126180848);
emit_32(1106901100);
emit_32(3266043904);
emit_32(1126436897);
emit_32(1105810896);
emit_32(3266043904);
emit_32(1126692880);
emit_32(1104533153);
emit_32(3266043904);
emit_32(1126948864);
emit_32(1103280577);
emit_32(3266043904);
emit_32(1127204848);
emit_32(1102832153);
emit_32(3266043904);
emit_32(1127460897);
emit_32(1101711226);
emit_32(3266043904);
emit_32(1127716880);
emit_32(1101683910);
emit_32(3266043904);
emit_32(1127972864);
emit_32(1101916956);
emit_32(3266043904);
emit_32(1128228848);
emit_32(1101225945);
emit_32(3266043904);
emit_32(1128484897);
emit_32(1099926497);
emit_32(3266043904);
emit_32(1128740880);
emit_32(1098187591);
emit_32(3266043904);
emit_32(1128996864);
emit_32(1095823367);
emit_32(3266043904);
emit_32(1129252848);
emit_32(1091829718);
emit_32(3266043904);
emit_32(1129508897);
emit_32(1088807932);
emit_32(3266043904);
emit_32(1129764880);
emit_32(1089675104);
emit_32(3266043904);
emit_32(1130020864);
emit_32(1090567704);
emit_32(3266043904);
emit_32(1130276848);
emit_32(1090536174);
emit_32(3266043904);
emit_32(1130532897);
emit_32(1090414497);
emit_32(3266043904);
emit_32(1130788880);
emit_32(1090232632);
emit_32(3266043904);
emit_32(1131044864);
emit_32(1086780888);
emit_32(3266043904);
emit_32(1131300848);
emit_32(1089263098);
emit_32(3266043904);
emit_32(1131556897);
emit_32(1089690267);
emit_32(3266043904);
emit_32(1131812880);
emit_32(1087942248);
emit_32(3266043904);
emit_32(1132068864);
emit_32(1090262202);
emit_32(3266043904);
emit_32(1081737216);
emit_32(1111401326);
emit_32(3266555911);
emit_32(1090125824);
emit_32(1110943623);
emit_32(3266555911);
emit_32(1094418484);
emit_32(1110454960);
emit_32(3266555911);
emit_32(1098514432);
emit_32(1110052097);
emit_32(3266555911);
emit_32(1100759066);
emit_32(1109812734);
emit_32(3266555911);
emit_32(1102807040);
emit_32(1109724706);
emit_32(3266555911);
emit_32(1104855066);
emit_32(1109725597);
emit_32(3266555911);
emit_32(1106903040);
emit_32(1109797162);
emit_32(3266555911);
emit_32(1108123661);
emit_32(1110063972);
emit_32(3266555911);
emit_32(1109147648);
emit_32(1110046147);
emit_32(3266555911);
emit_32(1110171661);
emit_32(1109992119);
emit_32(3266555911);
emit_32(1111195648);
emit_32(1109639850);
emit_32(3266555911);
emit_32(1112219661);
emit_32(1109061691);
emit_32(3266555911);
emit_32(1113243648);
emit_32(1108508410);
emit_32(3266555911);
emit_32(1114267661);
emit_32(1108134540);
emit_32(3266555911);
emit_32(1115291648);
emit_32(1108063604);
emit_32(3266555911);
emit_32(1116000263);
emit_32(1107530351);
emit_32(3266555911);
emit_32(1116512256);
emit_32(1107403761);
emit_32(3266555911);
emit_32(1117024263);
emit_32(1107815668);
emit_32(3266555911);
emit_32(1117536256);
emit_32(1108314030);
emit_32(3266555911);
emit_32(1118048263);
emit_32(1108639613);
emit_32(3266555911);
emit_32(1118560256);
emit_32(1108710628);
emit_32(3266555911);
emit_32(1119072263);
emit_32(1108872213);
emit_32(3266555911);
emit_32(1119584256);
emit_32(1108749215);
emit_32(3266555911);
emit_32(1120096263);
emit_32(1108889462);
emit_32(3266555911);
emit_32(1120608322);
emit_32(1108863484);
emit_32(3266555911);
emit_32(1121120289);
emit_32(1109036604);
emit_32(3266555911);
emit_32(1121632256);
emit_32(1109205713);
emit_32(3266555911);
emit_32(1122144223);
emit_32(1109394116);
emit_32(3266555911);
emit_32(1122656322);
emit_32(1109718781);
emit_32(3266555911);
emit_32(1123168289);
emit_32(1109715871);
emit_32(3266555911);
emit_32(1123680256);
emit_32(1109592926);
emit_32(3266555911);
emit_32(1124132848);
emit_32(1109325932);
emit_32(3266555911);
emit_32(1124388897);
emit_32(1109167623);
emit_32(3266555911);
emit_32(1124644880);
emit_32(1108999930);
emit_32(3266555911);
emit_32(1124900864);
emit_32(1108794147);
emit_32(3266555911);
emit_32(1125156848);
emit_32(1108512054);
emit_32(3266555911);
emit_32(1125412897);
emit_32(1108376184);
emit_32(3266555911);
emit_32(1125668880);
emit_32(1108266215);
emit_32(3266555911);
emit_32(1125924864);
emit_32(1107795326);
emit_32(3266555911);
emit_32(1126180848);
emit_32(1107314763);
emit_32(3266555911);
emit_32(1126436897);
emit_32(1106114511);
emit_32(3266555911);
emit_32(1126692880);
emit_32(1104385514);
emit_32(3266555911);
emit_32(1126948864);
emit_32(1102999506);
emit_32(3266555911);
emit_32(1127204848);
emit_32(1102036337);
emit_32(3266555911);
emit_32(1127460897);
emit_32(1101372378);
emit_32(3266555911);
emit_32(1127716880);
emit_32(1101356021);
emit_32(3266555911);
emit_32(1127972864);
emit_32(1101083863);
emit_32(3266555911);
emit_32(1128228848);
emit_32(1099864211);
emit_32(3266555911);
emit_32(1128484897);
emit_32(1099053662);
emit_32(3266555911);
emit_32(1128740880);
emit_32(1096243846);
emit_32(3266555911);
emit_32(1128996864);
emit_32(1092140631);
emit_32(3266555911);
emit_32(1129252848);
emit_32(1086381925);
emit_32(3266555911);
emit_32(1129508897);
emit_32(1086092015);
emit_32(3266555911);
emit_32(1129764880);
emit_32(1087322309);
emit_32(3266555911);
emit_32(1130020864);
emit_32(1086744250);
emit_32(3266555911);
emit_32(1130276848);
emit_32(1086502784);
emit_32(3266555911);
emit_32(1130532897);
emit_32(1088099933);
emit_32(3266555911);
emit_32(1130788880);
emit_32(1087042801);
emit_32(3266555911);
emit_32(1131044864);
emit_32(1085944166);
emit_32(3266555911);
emit_32(1131300848);
emit_32(1086098348);
emit_32(3266555911);
emit_32(1131556897);
emit_32(1088087979);
emit_32(3266555911);
emit_32(1131812880);
emit_32(1087004759);
emit_32(3266555911);
emit_32(1132068864);
emit_32(1086940628);
emit_32(3266555911);
emit_32(1081737216);
emit_32(1110813757);
emit_32(3267067904);
emit_32(1090125824);
emit_32(1110590462);
emit_32(3267067904);
emit_32(1094418484);
emit_32(1110447410);
emit_32(3267067904);
emit_32(1098514432);
emit_32(1109984621);
emit_32(3267067904);
emit_32(1100759066);
emit_32(1109628053);
emit_32(3267067904);
emit_32(1102807040);
emit_32(1109594341);
emit_32(3267067904);
emit_32(1104855066);
emit_32(1109544298);
emit_32(3267067904);
emit_32(1106903040);
emit_32(1109733881);
emit_32(3267067904);
emit_32(1108123661);
emit_32(1109573291);
emit_32(3267067904);
emit_32(1109147648);
emit_32(1109550878);
emit_32(3267067904);
emit_32(1110171661);
emit_32(1109270961);
emit_32(3267067904);
emit_32(1111195648);
emit_32(1108931091);
emit_32(3267067904);
emit_32(1112219661);
emit_32(1108382633);
emit_32(3267067904);
emit_32(1113243648);
emit_32(1108013298);
emit_32(3267067904);
emit_32(1114267661);
emit_32(1107931011);
emit_32(3267067904);
emit_32(1115291648);
emit_32(1107808171);
emit_32(3267067904);
emit_32(1116000263);
emit_32(1107425519);
emit_32(3267067904);
emit_32(1116512256);
emit_32(1107431129);
emit_32(3267067904);
emit_32(1117024263);
emit_32(1107661423);
emit_32(3267067904);
emit_32(1117536256);
emit_32(1108073723);
emit_32(3267067904);
emit_32(1118048263);
emit_32(1108439492);
emit_32(3267067904);
emit_32(1118560256);
emit_32(1108755874);
emit_32(3267067904);
emit_32(1119072263);
emit_32(1108610122);
emit_32(3267067904);
emit_32(1119584256);
emit_32(1108774538);
emit_32(3267067904);
emit_32(1120096263);
emit_32(1108983703);
emit_32(3267067904);
emit_32(1120608322);
emit_32(1108966611);
emit_32(3267067904);
emit_32(1121120289);
emit_32(1109162171);
emit_32(3267067904);
emit_32(1121632256);
emit_32(1109004596);
emit_32(3267067904);
emit_32(1122144223);
emit_32(1109403972);
emit_32(3267067904);
emit_32(1122656322);
emit_32(1109453098);
emit_32(3267067904);
emit_32(1123168289);
emit_32(1109628944);
emit_32(3267067904);
emit_32(1123680256);
emit_32(1109442953);
emit_32(3267067904);
emit_32(1124132848);
emit_32(1109378597);
emit_32(3267067904);
emit_32(1124388897);
emit_32(1109310151);
emit_32(3267067904);
emit_32(1124644880);
emit_32(1109090370);
emit_32(3267067904);
emit_32(1124900864);
emit_32(1108727012);
emit_32(3267067904);
emit_32(1125156848);
emit_32(1108564378);
emit_32(3267067904);
emit_32(1125412897);
emit_32(1108413016);
emit_32(3267067904);
emit_32(1125668880);
emit_32(1108252662);
emit_32(3267067904);
emit_32(1125924864);
emit_32(1107867468);
emit_32(3267067904);
emit_32(1126180848);
emit_32(1107313322);
emit_32(3267067904);
emit_32(1126436897);
emit_32(1105536274);
emit_32(3267067904);
emit_32(1126692880);
emit_32(1103691199);
emit_32(3267067904);
emit_32(1126948864);
emit_32(1102287156);
emit_32(3267067904);
emit_32(1127204848);
emit_32(1100758437);
emit_32(3267067904);
emit_32(1127460897);
emit_32(1100185390);
emit_32(3267067904);
emit_32(1127716880);
emit_32(1100274781);
emit_32(3267067904);
emit_32(1127972864);
emit_32(1099687789);
emit_32(3267067904);
emit_32(1128228848);
emit_32(1098027264);
emit_32(3267067904);
emit_32(1128484897);
emit_32(1095782577);
emit_32(3267067904);
emit_32(1128740880);
emit_32(1092060656);
emit_32(3267067904);
emit_32(1128996864);
emit_32(1085479584);
emit_32(3267067904);
emit_32(1129252848);
emit_32(1080427922);
emit_32(3267067904);
emit_32(1129508897);
emit_32(1082737893);
emit_32(3267067904);
emit_32(1129764880);
emit_32(1082587842);
emit_32(3267067904);
emit_32(1130020864);
emit_32(1082372569);
emit_32(3267067904);
emit_32(1130276848);
emit_32(1085083537);
emit_32(3267067904);
emit_32(1130532897);
emit_32(1085407211);
emit_32(3267067904);
emit_32(1130788880);
emit_32(1084963160);
emit_32(3267067904);
emit_32(1131044864);
emit_32(1084737318);
emit_32(3267067904);
emit_32(1131300848);
emit_32(1083924504);
emit_32(3267067904);
emit_32(1131556897);
emit_32(1084286829);
emit_32(3267067904);
emit_32(1131812880);
emit_32(1084905342);
emit_32(3267067904);
emit_32(1132068864);
emit_32(1085475641);
emit_32(3267067904);
emit_32(1081737216);
emit_32(1110694612);
emit_32(3267579911);
emit_32(1090125824);
emit_32(1110646797);
emit_32(3267579911);
emit_32(1094418484);
emit_32(1110299640);
emit_32(3267579911);
emit_32(1098514432);
emit_32(1110057393);
emit_32(3267579911);
emit_32(1100759066);
emit_32(1109526053);
emit_32(3267579911);
emit_32(1102807040);
emit_32(1109344807);
emit_32(3267579911);
emit_32(1104855066);
emit_32(1109452259);
emit_32(3267579911);
emit_32(1106903040);
emit_32(1109261550);
emit_32(3267579911);
emit_32(1108123661);
emit_32(1109082820);
emit_32(3267579911);
emit_32(1109147648);
emit_32(1108958406);
emit_32(3267579911);
emit_32(1110171661);
emit_32(1108756398);
emit_32(3267579911);
emit_32(1111195648);
emit_32(1108426831);
emit_32(3267579911);
emit_32(1112219661);
emit_32(1107880234);
emit_32(3267579911);
emit_32(1113243648);
emit_32(1107647398);
emit_32(3267579911);
emit_32(1114267661);
emit_32(1107551060);
emit_32(3267579911);
emit_32(1115291648);
emit_32(1107461800);
emit_32(3267579911);
emit_32(1116000263);
emit_32(1107421980);
emit_32(3267579911);
emit_32(1116512256);
emit_32(1107111287);
emit_32(3267579911);
emit_32(1117024263);
emit_32(1107355396);
emit_32(3267579911);
emit_32(1117536256);
emit_32(1107770029);
emit_32(3267579911);
emit_32(1118048263);
emit_32(1108281682);
emit_32(3267579911);
emit_32(1118560256);
emit_32(1108475930);
emit_32(3267579911);
emit_32(1119072263);
emit_32(1108583724);
emit_32(3267579911);
emit_32(1119584256);
emit_32(1108787908);
emit_32(3267579911);
emit_32(1120096263);
emit_32(1108859761);
emit_32(3267579911);
emit_32(1120608322);
emit_32(1109119625);
emit_32(3267579911);
emit_32(1121120289);
emit_32(1109310125);
emit_32(3267579911);
emit_32(1121632256);
emit_32(1109129088);
emit_32(3267579911);
emit_32(1122144223);
emit_32(1109416267);
emit_32(3267579911);
emit_32(1122656322);
emit_32(1109508751);
emit_32(3267579911);
emit_32(1123168289);
emit_32(1109311540);
emit_32(3267579911);
emit_32(1123680256);
emit_32(1109131552);
emit_32(3267579911);
emit_32(1124132848);
emit_32(1109360247);
emit_32(3267579911);
emit_32(1124388897);
emit_32(1109275522);
emit_32(3267579911);
emit_32(1124644880);
emit_32(1108801749);
emit_32(3267579911);
emit_32(1124900864);
emit_32(1108467804);
emit_32(3267579911);
emit_32(1125156848);
emit_32(1108391100);
emit_32(3267579911);
emit_32(1125412897);
emit_32(1108331096);
emit_32(3267579911);
emit_32(1125668880);
emit_32(1108112599);
emit_32(3267579911);
emit_32(1125924864);
emit_32(1107624355);
emit_32(3267579911);
emit_32(1126180848);
emit_32(1106590564);
emit_32(3267579911);
emit_32(1126436897);
emit_32(1104796346);
emit_32(3267579911);
emit_32(1126692880);
emit_32(1102786068);
emit_32(3267579911);
emit_32(1126948864);
emit_32(1101357226);
emit_32(3267579911);
emit_32(1127204848);
emit_32(1100162793);
emit_32(3267579911);
emit_32(1127460897);
emit_32(1099771412);
emit_32(3267579911);
emit_32(1127716880);
emit_32(1098962017);
emit_32(3267579911);
emit_32(1127972864);
emit_32(1097608462);
emit_32(3267579911);
emit_32(1128228848);
emit_32(1094970874);
emit_32(3267579911);
emit_32(1128484897);
emit_32(1092021933);
emit_32(3267579911);
emit_32(1128740880);
emit_32(1088236919);
emit_32(3267579911);
emit_32(1128996864);
emit_32(1082682696);
emit_32(3267579911);
emit_32(1129252848);
emit_32(1079924773);
emit_32(3267579911);
emit_32(1129508897);
emit_32(1081076487);
emit_32(3267579911);
emit_32(1129764880);
emit_32(1081136801);
emit_32(3267579911);
emit_32(1130020864);
emit_32(1081313088);
emit_32(3267579911);
emit_32(1130276848);
emit_32(1082622067);
emit_32(3267579911);
emit_32(1130532897);
emit_32(1080914755);
emit_32(3267579911);
emit_32(1130788880);
emit_32(1081174131);
emit_32(3267579911);
emit_32(1131044864);
emit_32(1081307258);
emit_32(3267579911);
emit_32(1131300848);
emit_32(1080904101);
emit_32(3267579911);
emit_32(1131556897);
emit_32(1082632301);
emit_32(3267579911);
emit_32(1131812880);
emit_32(1082980177);
emit_32(3267579911);
emit_32(1132068864);
emit_32(1083203964);
emit_32(3267579911);
emit_32(1081737216);
emit_32(1110581209);
emit_32(3268091970);
emit_32(1090125824);
emit_32(1110551586);
emit_32(3268091970);
emit_32(1094418484);
emit_32(1110307347);
emit_32(3268091970);
emit_32(1098514432);
emit_32(1109985591);
emit_32(3268091970);
emit_32(1100759066);
emit_32(1109670180);
emit_32(3268091970);
emit_32(1102807040);
emit_32(1109393303);
emit_32(3268091970);
emit_32(1104855066);
emit_32(1109233946);
emit_32(3268091970);
emit_32(1106903040);
emit_32(1109280450);
emit_32(3268091970);
emit_32(1108123661);
emit_32(1108630281);
emit_32(3268091970);
emit_32(1109147648);
emit_32(1108457449);
emit_32(3268091970);
emit_32(1110171661);
emit_32(1108487176);
emit_32(3268091970);
emit_32(1111195648);
emit_32(1108197114);
emit_32(3268091970);
emit_32(1112219661);
emit_32(1107653847);
emit_32(3268091970);
emit_32(1113243648);
emit_32(1107312745);
emit_32(3268091970);
emit_32(1114267661);
emit_32(1107342131);
emit_32(3268091970);
emit_32(1115291648);
emit_32(1107499418);
emit_32(3268091970);
emit_32(1116000263);
emit_32(1107104104);
emit_32(3268091970);
emit_32(1116512256);
emit_32(1107322497);
emit_32(3268091970);
emit_32(1117024263);
emit_32(1107451078);
emit_32(3268091970);
emit_32(1117536256);
emit_32(1107597774);
emit_32(3268091970);
emit_32(1118048263);
emit_32(1108134383);
emit_32(3268091970);
emit_32(1118560256);
emit_32(1108348292);
emit_32(3268091970);
emit_32(1119072263);
emit_32(1108697206);
emit_32(3268091970);
emit_32(1119584256);
emit_32(1108767120);
emit_32(3268091970);
emit_32(1120096263);
emit_32(1108911089);
emit_32(3268091970);
emit_32(1120608322);
emit_32(1109333115);
emit_32(3268091970);
emit_32(1121120289);
emit_32(1109311147);
emit_32(3268091970);
emit_32(1121632256);
emit_32(1109257853);
emit_32(3268091970);
emit_32(1122144223);
emit_32(1109429663);
emit_32(3268091970);
emit_32(1122656322);
emit_32(1109626926);
emit_32(3268091970);
emit_32(1123168289);
emit_32(1109223460);
emit_32(3268091970);
emit_32(1123680256);
emit_32(1109113464);
emit_32(3268091970);
emit_32(1124132848);
emit_32(1109197770);
emit_32(3268091970);
emit_32(1124388897);
emit_32(1108996941);
emit_32(3268091970);
emit_32(1124644880);
emit_32(1108521910);
emit_32(3268091970);
emit_32(1124900864);
emit_32(1108156167);
emit_32(3268091970);
emit_32(1125156848);
emit_32(1108312169);
emit_32(3268091970);
emit_32(1125412897);
emit_32(1108417210);
emit_32(3268091970);
emit_32(1125668880);
emit_32(1108025410);
emit_32(3268091970);
emit_32(1125924864);
emit_32(1107366039);
emit_32(3268091970);
emit_32(1126180848);
emit_32(1106152836);
emit_32(3268091970);
emit_32(1126436897);
emit_32(1104094377);
emit_32(3268091970);
emit_32(1126692880);
emit_32(1102342783);
emit_32(3268091970);
emit_32(1126948864);
emit_32(1101171838);
emit_32(3268091970);
emit_32(1127204848);
emit_32(1099584871);
emit_32(3268091970);
emit_32(1127460897);
emit_32(1099343069);
emit_32(3268091970);
emit_32(1127716880);
emit_32(1097562115);
emit_32(3268091970);
emit_32(1127972864);
emit_32(1094777202);
emit_32(3268091970);
emit_32(1128228848);
emit_32(1092522051);
emit_32(3268091970);
emit_32(1128484897);
emit_32(1088883870);
emit_32(3268091970);
emit_32(1128740880);
emit_32(1085242165);
emit_32(3268091970);
emit_32(1128996864);
emit_32(1078093792);
emit_32(3268091970);
emit_32(1129252848);
emit_32(1078026222);
emit_32(3268091970);
emit_32(1129508897);
emit_32(1077460788);
emit_32(3268091970);
emit_32(1129764880);
emit_32(1078305017);
emit_32(3268091970);
emit_32(1130020864);
emit_32(1079773820);
emit_32(3268091970);
emit_32(1130276848);
emit_32(1080393613);
emit_32(3268091970);
emit_32(1130532897);
emit_32(1078685021);
emit_32(3268091970);
emit_32(1130788880);
emit_32(1075784911);
emit_32(3268091970);
emit_32(1131044864);
emit_32(1076529820);
emit_32(3268091970);
emit_32(1131300848);
emit_32(1074011602);
emit_32(3268091970);
emit_32(1131556897);
emit_32(1075826561);
emit_32(3268091970);
emit_32(1131812880);
emit_32(1078155029);
emit_32(3268091970);
emit_32(1132068864);
emit_32(1080836699);
emit_32(3268091970);
emit_32(1081737216);
emit_32(1110663915);
emit_32(3268603937);
emit_32(1090125824);
emit_32(1110523301);
emit_32(3268603937);
emit_32(1094418484);
emit_32(1110414092);
emit_32(3268603937);
emit_32(1098514432);
emit_32(1110239740);
emit_32(3268603937);
emit_32(1100759066);
emit_32(1110111263);
emit_32(3268603937);
emit_32(1102807040);
emit_32(1109732989);
emit_32(3268603937);
emit_32(1104855066);
emit_32(1109257434);
emit_32(3268603937);
emit_32(1106903040);
emit_32(1108986639);
emit_32(3268603937);
emit_32(1108123661);
emit_32(1108299324);
emit_32(3268603937);
emit_32(1109147648);
emit_32(1108108666);
emit_32(3268603937);
emit_32(1110171661);
emit_32(1108133256);
emit_32(3268603937);
emit_32(1111195648);
emit_32(1107900341);
emit_32(3268603937);
emit_32(1112219661);
emit_32(1106990544);
emit_32(3268603937);
emit_32(1113243648);
emit_32(1106677911);
emit_32(3268603937);
emit_32(1114267661);
emit_32(1106924116);
emit_32(3268603937);
emit_32(1115291648);
emit_32(1107371465);
emit_32(3268603937);
emit_32(1116000263);
emit_32(1107430500);
emit_32(3268603937);
emit_32(1116512256);
emit_32(1107498631);
emit_32(3268603937);
emit_32(1117024263);
emit_32(1107438390);
emit_32(3268603937);
emit_32(1117536256);
emit_32(1107833808);
emit_32(3268603937);
emit_32(1118048263);
emit_32(1108210981);
emit_32(3268603937);
emit_32(1118560256);
emit_32(1108542226);
emit_32(3268603937);
emit_32(1119072263);
emit_32(1108787882);
emit_32(3268603937);
emit_32(1119584256);
emit_32(1108829274);
emit_32(3268603937);
emit_32(1120096263);
emit_32(1109124029);
emit_32(3268603937);
emit_32(1120608322);
emit_32(1109412387);
emit_32(3268603937);
emit_32(1121120289);
emit_32(1109324752);
emit_32(3268603937);
emit_32(1121632256);
emit_32(1109233631);
emit_32(3268603937);
emit_32(1122144223);
emit_32(1109356105);
emit_32(3268603937);
emit_32(1122656322);
emit_32(1109523353);
emit_32(3268603937);
emit_32(1123168289);
emit_32(1109276492);
emit_32(3268603937);
emit_32(1123680256);
emit_32(1109141330);
emit_32(3268603937);
emit_32(1124132848);
emit_32(1108924485);
emit_32(3268603937);
emit_32(1124388897);
emit_32(1108532029);
emit_32(3268603937);
emit_32(1124644880);
emit_32(1108013482);
emit_32(3268603937);
emit_32(1124900864);
emit_32(1107879159);
emit_32(3268603937);
emit_32(1125156848);
emit_32(1108192290);
emit_32(3268603937);
emit_32(1125412897);
emit_32(1108199499);
emit_32(3268603937);
emit_32(1125668880);
emit_32(1107673455);
emit_32(3268603937);
emit_32(1125924864);
emit_32(1106232371);
emit_32(3268603937);
emit_32(1126180848);
emit_32(1104800226);
emit_32(3268603937);
emit_32(1126436897);
emit_32(1103280682);
emit_32(3268603937);
emit_32(1126692880);
emit_32(1102286055);
emit_32(3268603937);
emit_32(1126948864);
emit_32(1100759748);
emit_32(3268603937);
emit_32(1127204848);
emit_32(1099429367);
emit_32(3268603937);
emit_32(1127460897);
emit_32(1097617900);
emit_32(3268603937);
emit_32(1127716880);
emit_32(1095952341);
emit_32(3268603937);
emit_32(1127972864);
emit_32(1093005319);
emit_32(3268603937);
emit_32(1128228848);
emit_32(1088642320);
emit_32(3268603937);
emit_32(1128484897);
emit_32(1085144270);
emit_32(3268603937);
emit_32(1128740880);
emit_32(1079423554);
emit_32(3268603937);
emit_32(1128996864);
emit_32(1075473065);
emit_32(3268603937);
emit_32(1129252848);
emit_32(1075224804);
emit_32(3268603937);
emit_32(1129508897);
emit_32(1074942527);
emit_32(3268603937);
emit_32(1129764880);
emit_32(1070517327);
emit_32(3268603937);
emit_32(1130020864);
emit_32(1076303998);
emit_32(3268603937);
emit_32(1130276848);
emit_32(1075194647);
emit_32(3268603937);
emit_32(1130532897);
emit_32(1069302069);
emit_32(3268603937);
emit_32(1130788880);
emit_32(1059149840);
emit_32(3268603937);
emit_32(1131044864);
emit_32(1062802928);
emit_32(3268603937);
emit_32(1131300848);
emit_32(1068305922);
emit_32(3268603937);
emit_32(1131556897);
emit_32(1074623970);
emit_32(3268603937);
emit_32(1131812880);
emit_32(1077991619);
emit_32(3268603937);
emit_32(1132068864);
emit_32(1078469350);
emit_32(3268603937);
emit_32(1081737216);
emit_32(1110808645);
emit_32(3269115904);
emit_32(1090125824);
emit_32(1110606427);
emit_32(3269115904);
emit_32(1094418484);
emit_32(1110590725);
emit_32(3269115904);
emit_32(1098514432);
emit_32(1110520575);
emit_32(3269115904);
emit_32(1100759066);
emit_32(1110320952);
emit_32(3269115904);
emit_32(1102807040);
emit_32(1109925718);
emit_32(3269115904);
emit_32(1104855066);
emit_32(1109578691);
emit_32(3269115904);
emit_32(1106903040);
emit_32(1109301579);
emit_32(3269115904);
emit_32(1108123661);
emit_32(1108401481);
emit_32(3269115904);
emit_32(1109147648);
emit_32(1108050418);
emit_32(3269115904);
emit_32(1110171661);
emit_32(1108134828);
emit_32(3269115904);
emit_32(1111195648);
emit_32(1107813047);
emit_32(3269115904);
emit_32(1112219661);
emit_32(1106770867);
emit_32(3269115904);
emit_32(1113243648);
emit_32(1107263016);
emit_32(3269115904);
emit_32(1114267661);
emit_32(1107073696);
emit_32(3269115904);
emit_32(1115291648);
emit_32(1107071861);
emit_32(3269115904);
emit_32(1116000263);
emit_32(1107575911);
emit_32(3269115904);
emit_32(1116512256);
emit_32(1107727326);
emit_32(3269115904);
emit_32(1117024263);
emit_32(1107439570);
emit_32(3269115904);
emit_32(1117536256);
emit_32(1107890956);
emit_32(3269115904);
emit_32(1118048263);
emit_32(1108361426);
emit_32(3269115904);
emit_32(1118560256);
emit_32(1108752964);
emit_32(3269115904);
emit_32(1119072263);
emit_32(1109015894);
emit_32(3269115904);
emit_32(1119584256);
emit_32(1109044966);
emit_32(3269115904);
emit_32(1120096263);
emit_32(1109198320);
emit_32(3269115904);
emit_32(1120608322);
emit_32(1109370103);
emit_32(3269115904);
emit_32(1121120289);
emit_32(1109373380);
emit_32(3269115904);
emit_32(1121632256);
emit_32(1109279795);
emit_32(3269115904);
emit_32(1122144223);
emit_32(1109433568);
emit_32(3269115904);
emit_32(1122656322);
emit_32(1109623387);
emit_32(3269115904);
emit_32(1123168289);
emit_32(1109428273);
emit_32(3269115904);
emit_32(1123680256);
emit_32(1108960346);
emit_32(3269115904);
emit_32(1124132848);
emit_32(1108585323);
emit_32(3269115904);
emit_32(1124388897);
emit_32(1108055818);
emit_32(3269115904);
emit_32(1124644880);
emit_32(1107534728);
emit_32(3269115904);
emit_32(1124900864);
emit_32(1107471001);
emit_32(3269115904);
emit_32(1125156848);
emit_32(1107590041);
emit_32(3269115904);
emit_32(1125412897);
emit_32(1107454172);
emit_32(3269115904);
emit_32(1125668880);
emit_32(1106832209);
emit_32(3269115904);
emit_32(1125924864);
emit_32(1105088217);
emit_32(3269115904);
emit_32(1126180848);
emit_32(1103608676);
emit_32(3269115904);
emit_32(1126436897);
emit_32(1102467039);
emit_32(3269115904);
emit_32(1126692880);
emit_32(1101262068);
emit_32(3269115904);
emit_32(1126948864);
emit_32(1100082158);
emit_32(3269115904);
emit_32(1127204848);
emit_32(1098845677);
emit_32(3269115904);
emit_32(1127460897);
emit_32(1095460140);
emit_32(3269115904);
emit_32(1127716880);
emit_32(1093620938);
emit_32(3269115904);
emit_32(1127972864);
emit_32(1089412289);
emit_32(3269115904);
emit_32(1128228848);
emit_32(1083970620);
emit_32(3269115904);
emit_32(1128484897);
emit_32(1077038086);
emit_32(3269115904);
emit_32(1128740880);
emit_32(1069835165);
emit_32(3269115904);
emit_32(1128996864);
emit_32(1070535279);
emit_32(3269115904);
emit_32(1129252848);
emit_32(1071829221);
emit_32(3269115904);
emit_32(1129508897);
emit_32(1066648753);
emit_32(3269115904);
emit_32(1129764880);
emit_32(1051679953);
emit_32(3269115904);
emit_32(1130020864);
emit_32(1057135450);
emit_32(3269115904);
emit_32(1130276848);
emit_32(1048743000);
emit_32(3269115904);
emit_32(1130532897);
emit_32(3194534264);
emit_32(3269115904);
emit_32(1130788880);
emit_32(3210162995);
emit_32(3269115904);
emit_32(1131044864);
emit_32(3197138557);
emit_32(3269115904);
emit_32(1131300848);
emit_32(1054446180);
emit_32(3269115904);
emit_32(1131556897);
emit_32(1071525302);
emit_32(3269115904);
emit_32(1131812880);
emit_32(1072082306);
emit_32(3269115904);
emit_32(1132068864);
emit_32(1070395189);
emit_32(3269115904);
emit_32(1081737216);
emit_32(1111356054);
emit_32(3269627871);
emit_32(1090125824);
emit_32(1111049765);
emit_32(3269627871);
emit_32(1094418484);
emit_32(1111095011);
emit_32(3269627871);
emit_32(1098514432);
emit_32(1110769821);
emit_32(3269627871);
emit_32(1100759066);
emit_32(1110387956);
emit_32(3269627871);
emit_32(1102807040);
emit_32(1110076608);
emit_32(3269627871);
emit_32(1104855066);
emit_32(1109830507);
emit_32(3269627871);
emit_32(1106903040);
emit_32(1109267474);
emit_32(3269627871);
emit_32(1108123661);
emit_32(1108522670);
emit_32(3269627871);
emit_32(1109147648);
emit_32(1108306716);
emit_32(3269627871);
emit_32(1110171661);
emit_32(1108152078);
emit_32(3269627871);
emit_32(1111195648);
emit_32(1107581521);
emit_32(3269627871);
emit_32(1112219661);
emit_32(1106841751);
emit_32(3269627871);
emit_32(1113243648);
emit_32(1107248808);
emit_32(3269627871);
emit_32(1114267661);
emit_32(1107071599);
emit_32(3269627871);
emit_32(1115291648);
emit_32(1107391729);
emit_32(3269627871);
emit_32(1116000263);
emit_32(1107625981);
emit_32(3269627871);
emit_32(1116512256);
emit_32(1107606818);
emit_32(3269627871);
emit_32(1117024263);
emit_32(1107732044);
emit_32(3269627871);
emit_32(1117536256);
emit_32(1108255231);
emit_32(3269627871);
emit_32(1118048263);
emit_32(1108554259);
emit_32(3269627871);
emit_32(1118560256);
emit_32(1108867835);
emit_32(3269627871);
emit_32(1119072263);
emit_32(1109054272);
emit_32(3269627871);
emit_32(1119584256);
emit_32(1109386251);
emit_32(3269627871);
emit_32(1120096263);
emit_32(1109299298);
emit_32(3269627871);
emit_32(1120608322);
emit_32(1109427959);
emit_32(3269627871);
emit_32(1121120289);
emit_32(1109424079);
emit_32(3269627871);
emit_32(1121632256);
emit_32(1109411181);
emit_32(3269627871);
emit_32(1122144223);
emit_32(1109433621);
emit_32(3269627871);
emit_32(1122656322);
emit_32(1109598955);
emit_32(3269627871);
emit_32(1123168289);
emit_32(1109218086);
emit_32(3269627871);
emit_32(1123680256);
emit_32(1108916909);
emit_32(3269627871);
emit_32(1124132848);
emit_32(1108631119);
emit_32(3269627871);
emit_32(1124388897);
emit_32(1108074483);
emit_32(3269627871);
emit_32(1124644880);
emit_32(1107470084);
emit_32(3269627871);
emit_32(1124900864);
emit_32(1106751049);
emit_32(3269627871);
emit_32(1125156848);
emit_32(1106805732);
emit_32(3269627871);
emit_32(1125412897);
emit_32(1106063917);
emit_32(3269627871);
emit_32(1125668880);
emit_32(1104941941);
emit_32(3269627871);
emit_32(1125924864);
emit_32(1103592738);
emit_32(3269627871);
emit_32(1126180848);
emit_32(1102378749);
emit_32(3269627871);
emit_32(1126436897);
emit_32(1101064359);
emit_32(3269627871);
emit_32(1126692880);
emit_32(1099948989);
emit_32(3269627871);
emit_32(1126948864);
emit_32(1098973289);
emit_32(3269627871);
emit_32(1127204848);
emit_32(1097124125);
emit_32(3269627871);
emit_32(1127460897);
emit_32(1094111671);
emit_32(3269627871);
emit_32(1127716880);
emit_32(1091103611);
emit_32(3269627871);
emit_32(1127972864);
emit_32(1086368084);
emit_32(3269627871);
emit_32(1128228848);
emit_32(1078725915);
emit_32(3269627871);
emit_32(1128484897);
emit_32(1069950844);
emit_32(3269627871);
emit_32(1128740880);
emit_32(1018630897);
emit_32(3269627871);
emit_32(1128996864);
emit_32(3181731986);
emit_32(3269627871);
emit_32(1129252848);
emit_32(3201792590);
emit_32(3269627871);
emit_32(1129508897);
emit_32(3204973752);
emit_32(3269627871);
emit_32(1129764880);
emit_32(3215721958);
emit_32(3269627871);
emit_32(1130020864);
emit_32(3222414389);
emit_32(3269627871);
emit_32(1130276848);
emit_32(3222253076);
emit_32(3269627871);
emit_32(1130532897);
emit_32(3222187310);
emit_32(3269627871);
emit_32(1130788880);
emit_32(3216801991);
emit_32(3269627871);
emit_32(1131044864);
emit_32(3205181336);
emit_32(3269627871);
emit_32(1131300848);
emit_32(3200822633);
emit_32(3269627871);
emit_32(1131556897);
emit_32(3196733320);
emit_32(3269627871);
emit_32(1131812880);
emit_32(3206975391);
emit_32(3269627871);
emit_32(1132068864);
emit_32(1038377734);
emit_32(3269627871);
emit_32(1081737216);
emit_32(1111592455);
emit_32(3270139970);
emit_32(1090125824);
emit_32(1111491609);
emit_32(3270139970);
emit_32(1094418484);
emit_32(1111194940);
emit_32(3270139970);
emit_32(1098514432);
emit_32(1110835331);
emit_32(3270139970);
emit_32(1100759066);
emit_32(1110275365);
emit_32(3270139970);
emit_32(1102807040);
emit_32(1110005567);
emit_32(3270139970);
emit_32(1104855066);
emit_32(1109696499);
emit_32(3270139970);
emit_32(1106903040);
emit_32(1109176772);
emit_32(3270139970);
emit_32(1108123661);
emit_32(1108885556);
emit_32(3270139970);
emit_32(1109147648);
emit_32(1108468774);
emit_32(3270139970);
emit_32(1110171661);
emit_32(1108030285);
emit_32(3270139970);
emit_32(1111195648);
emit_32(1107430028);
emit_32(3270139970);
emit_32(1112219661);
emit_32(1107103737);
emit_32(3270139970);
emit_32(1113243648);
emit_32(1107092098);
emit_32(3270139970);
emit_32(1114267661);
emit_32(1107375004);
emit_32(3270139970);
emit_32(1115291648);
emit_32(1107478708);
emit_32(3270139970);
emit_32(1116000263);
emit_32(1107657884);
emit_32(3270139970);
emit_32(1116512256);
emit_32(1107812575);
emit_32(3270139970);
emit_32(1117024263);
emit_32(1108062005);
emit_32(3270139970);
emit_32(1117536256);
emit_32(1108546316);
emit_32(3270139970);
emit_32(1118048263);
emit_32(1108808198);
emit_32(3270139970);
emit_32(1118560256);
emit_32(1108821253);
emit_32(3270139970);
emit_32(1119072263);
emit_32(1108944565);
emit_32(3270139970);
emit_32(1119584256);
emit_32(1109292509);
emit_32(3270139970);
emit_32(1120096263);
emit_32(1109325827);
emit_32(3270139970);
emit_32(1120608322);
emit_32(1109645355);
emit_32(3270139970);
emit_32(1121120289);
emit_32(1109627555);
emit_32(3270139970);
emit_32(1121632256);
emit_32(1109566502);
emit_32(3270139970);
emit_32(1122144223);
emit_32(1109470347);
emit_32(3270139970);
emit_32(1122656322);
emit_32(1109358831);
emit_32(3270139970);
emit_32(1123168289);
emit_32(1109156561);
emit_32(3270139970);
emit_32(1123680256);
emit_32(1108641920);
emit_32(3270139970);
emit_32(1124132848);
emit_32(1108219580);
emit_32(3270139970);
emit_32(1124388897);
emit_32(1107796112);
emit_32(3270139970);
emit_32(1124644880);
emit_32(1107364885);
emit_32(3270139970);
emit_32(1124900864);
emit_32(1106177268);
emit_32(3270139970);
emit_32(1125156848);
emit_32(1105288443);
emit_32(3270139970);
emit_32(1125412897);
emit_32(1104753197);
emit_32(3270139970);
emit_32(1125668880);
emit_32(1103375473);
emit_32(3270139970);
emit_32(1125924864);
emit_32(1102075344);
emit_32(3270139970);
emit_32(1126180848);
emit_32(1100964849);
emit_32(3270139970);
emit_32(1126436897);
emit_32(1099792384);
emit_32(3270139970);
emit_32(1126692880);
emit_32(1098450049);
emit_32(3270139970);
emit_32(1126948864);
emit_32(1096338322);
emit_32(3270139970);
emit_32(1127204848);
emit_32(1093954280);
emit_32(3270139970);
emit_32(1127460897);
emit_32(1091524247);
emit_32(3270139970);
emit_32(1127716880);
emit_32(1088518839);
emit_32(3270139970);
emit_32(1127972864);
emit_32(1083884385);
emit_32(3270139970);
emit_32(1128228848);
emit_32(1076931424);
emit_32(3270139970);
emit_32(1128484897);
emit_32(1044557454);
emit_32(3270139970);
emit_32(1128740880);
emit_32(3205427693);
emit_32(3270139970);
emit_32(1128996864);
emit_32(3213113940);
emit_32(3270139970);
emit_32(1129252848);
emit_32(3221962118);
emit_32(3270139970);
emit_32(1129508897);
emit_32(3220483500);
emit_32(3270139970);
emit_32(1129764880);
emit_32(3225420531);
emit_32(3270139970);
emit_32(1130020864);
emit_32(3230173831);
emit_32(3270139970);
emit_32(1130276848);
emit_32(3232043735);
emit_32(3270139970);
emit_32(1130532897);
emit_32(3227363752);
emit_32(3270139970);
emit_32(1130788880);
emit_32(3221899790);
emit_32(3270139970);
emit_32(1131044864);
emit_32(3216845360);
emit_32(3270139970);
emit_32(1131300848);
emit_32(3219415546);
emit_32(3270139970);
emit_32(1131556897);
emit_32(3212863456);
emit_32(3270139970);
emit_32(1131812880);
emit_32(3221056106);
emit_32(3270139970);
emit_32(1132068864);
emit_32(3222457423);
emit_32(3270139970);
emit_start(Landscape04Vtx)
emit_32(1081737216);
emit_32(1100462372);
emit_32(1123680256);
emit_32(1081737216);
emit_32(1101050728);
emit_32(1124132848);
emit_32(1090125824);
emit_32(1101307000);
emit_32(1123680256);
emit_32(1090125824);
emit_32(1101569144);
emit_32(1124132848);
emit_32(1094418484);
emit_32(1101816870);
emit_32(1123680256);
emit_32(1094418484);
emit_32(1101742788);
emit_32(1124132848);
emit_32(1098514432);
emit_32(1102313580);
emit_32(1123680256);
emit_32(1098514432);
emit_32(1102383625);
emit_32(1124132848);
emit_32(1100759066);
emit_32(1102224504);
emit_32(1123680256);
emit_32(1100759066);
emit_32(1102114927);
emit_32(1124132848);
emit_32(1102807040);
emit_32(1101213834);
emit_32(1123680256);
emit_32(1102807040);
emit_32(1101213309);
emit_32(1124132848);
emit_32(1104855066);
emit_32(1100303408);
emit_32(1123680256);
emit_32(1104855066);
emit_32(1100341209);
emit_32(1124132848);
emit_32(1106903040);
emit_32(1099679610);
emit_32(1123680256);
emit_32(1106903040);
emit_32(1099911345);
emit_32(1124132848);
emit_32(1108123661);
emit_32(1099160984);
emit_32(1123680256);
emit_32(1108123661);
emit_32(1099586129);
emit_32(1124132848);
emit_32(1109147648);
emit_32(1098137259);
emit_32(1123680256);
emit_32(1109147648);
emit_32(1099190030);
emit_32(1124132848);
emit_32(1110171661);
emit_32(1097207906);
emit_32(1123680256);
emit_32(1110171661);
emit_32(1098581751);
emit_32(1124132848);
emit_32(1111195648);
emit_32(1096797074);
emit_32(1123680256);
emit_32(1111195648);
emit_32(1097483053);
emit_32(1124132848);
emit_32(1112219661);
emit_32(1097544709);
emit_32(1123680256);
emit_32(1112219661);
emit_32(1097178022);
emit_32(1124132848);
emit_32(1113243648);
emit_32(1097976408);
emit_32(1123680256);
emit_32(1113243648);
emit_32(1096978688);
emit_32(1124132848);
emit_32(1114267661);
emit_32(1097506541);
emit_32(1123680256);
emit_32(1114267661);
emit_32(1097352610);
emit_32(1124132848);
emit_32(1115291648);
emit_32(1097510945);
emit_32(1123680256);
emit_32(1115291648);
emit_32(1097969906);
emit_32(1124132848);
emit_32(1116000263);
emit_32(1097837262);
emit_32(1123680256);
emit_32(1116000263);
emit_32(1098943509);
emit_32(1124132848);
emit_32(1116512256);
emit_32(1098359872);
emit_32(1123680256);
emit_32(1116512256);
emit_32(1099235380);
emit_32(1124132848);
emit_32(1117024263);
emit_32(1097957533);
emit_32(1123680256);
emit_32(1117024263);
emit_32(1098875037);
emit_32(1124132848);
emit_32(1117536256);
emit_32(1098416705);
emit_32(1123680256);
emit_32(1117536256);
emit_32(1098919916);
emit_32(1124132848);
emit_32(1118048263);
emit_32(1098948385);
emit_32(1123680256);
emit_32(1118048263);
emit_32(1099015127);
emit_32(1124132848);
emit_32(1118560256);
emit_32(1099890845);
emit_32(1123680256);
emit_32(1118560256);
emit_32(1100384410);
emit_32(1124132848);
emit_32(1119072263);
emit_32(1100416863);
emit_32(1123680256);
emit_32(1119072263);
emit_32(1100817786);
emit_32(1124132848);
emit_32(1119584256);
emit_32(1100910848);
emit_32(1123680256);
emit_32(1119584256);
emit_32(1101157682);
emit_32(1124132848);
emit_32(1120096263);
emit_32(1102712825);
emit_32(1123680256);
emit_32(1120096263);
emit_32(1102698670);
emit_32(1124132848);
emit_32(1120608322);
emit_32(1103789661);
emit_32(1123680256);
emit_32(1120608322);
emit_32(1104088662);
emit_32(1124132848);
emit_32(1121120289);
emit_32(1104607602);
emit_32(1123680256);
emit_32(1121120289);
emit_32(1104975548);
emit_32(1124132848);
emit_32(1121632256);
emit_32(1105587811);
emit_32(1123680256);
emit_32(1121632256);
emit_32(1105705671);
emit_32(1124132848);
emit_32(1122144223);
emit_32(1106213025);
emit_32(1123680256);
emit_32(1122144223);
emit_32(1106546629);
emit_32(1124132848);
emit_32(1122656322);
emit_32(1106606765);
emit_32(1123680256);
emit_32(1122656322);
emit_32(1107224271);
emit_32(1124132848);
emit_32(1123168289);
emit_32(1107406409);
emit_32(1123680256);
emit_32(1123168289);
emit_32(1107432990);
emit_32(1124132848);
emit_32(1123680256);
emit_32(1108017021);
emit_32(1123680256);
emit_32(1123680256);
emit_32(1107870823);
emit_32(1124132848);
emit_32(1124132848);
emit_32(1108642890);
emit_32(1123680256);
emit_32(1124132848);
emit_32(1108611197);
emit_32(1124132848);
emit_32(1124388897);
emit_32(1108976940);
emit_32(1123680256);
emit_32(1124388897);
emit_32(1109002394);
emit_32(1124132848);
emit_32(1124644880);
emit_32(1108915991);
emit_32(1123680256);
emit_32(1124644880);
emit_32(1109174020);
emit_32(1124132848);
emit_32(1124900864);
emit_32(1109069713);
emit_32(1123680256);
emit_32(1124900864);
emit_32(1109145131);
emit_32(1124132848);
emit_32(1125156848);
emit_32(1108852159);
emit_32(1123680256);
emit_32(1125156848);
emit_32(1109111053);
emit_32(1124132848);
emit_32(1125412897);
emit_32(1109018044);
emit_32(1123680256);
emit_32(1125412897);
emit_32(1108982156);
emit_32(1124132848);
emit_32(1125668880);
emit_32(1109032776);
emit_32(1123680256);
emit_32(1125668880);
emit_32(1109159733);
emit_32(1124132848);
emit_32(1125924864);
emit_32(1109297490);
emit_32(1123680256);
emit_32(1125924864);
emit_32(1109315342);
emit_32(1124132848);
emit_32(1126180848);
emit_32(1109331018);
emit_32(1123680256);
emit_32(1126180848);
emit_32(1109210091);
emit_32(1124132848);
emit_32(1126436897);
emit_32(1109010285);
emit_32(1123680256);
emit_32(1126436897);
emit_32(1108929885);
emit_32(1124132848);
emit_32(1126692880);
emit_32(1108437919);
emit_32(1123680256);
emit_32(1126692880);
emit_32(1108541256);
emit_32(1124132848);
emit_32(1126948864);
emit_32(1108395583);
emit_32(1123680256);
emit_32(1126948864);
emit_32(1108339091);
emit_32(1124132848);
emit_32(1127204848);
emit_32(1108230432);
emit_32(1123680256);
emit_32(1127204848);
emit_32(1108284853);
emit_32(1124132848);
emit_32(1127460897);
emit_32(1107992091);
emit_32(1123680256);
emit_32(1127460897);
emit_32(1108246449);
emit_32(1124132848);
emit_32(1127716880);
emit_32(1107862408);
emit_32(1123680256);
emit_32(1127716880);
emit_32(1108208727);
emit_32(1124132848);
emit_32(1127972864);
emit_32(1107704336);
emit_32(1123680256);
emit_32(1127972864);
emit_32(1108242648);
emit_32(1124132848);
emit_32(1128228848);
emit_32(1107562018);
emit_32(1123680256);
emit_32(1128228848);
emit_32(1107828539);
emit_32(1124132848);
emit_32(1128484897);
emit_32(1106914679);
emit_32(1123680256);
emit_32(1128484897);
emit_32(1107302207);
emit_32(1124132848);
emit_32(1128740880);
emit_32(1105855984);
emit_32(1123680256);
emit_32(1128740880);
emit_32(1106125311);
emit_32(1124132848);
emit_32(1128996864);
emit_32(1104645194);
emit_32(1123680256);
emit_32(1128996864);
emit_32(1104882853);
emit_32(1124132848);
emit_32(1129252848);
emit_32(1103670490);
emit_32(1123680256);
emit_32(1129252848);
emit_32(1103712328);
emit_32(1124132848);
emit_32(1129508897);
emit_32(1102923956);
emit_32(1123680256);
emit_32(1129508897);
emit_32(1103248228);
emit_32(1124132848);
emit_32(1129764880);
emit_32(1102092435);
emit_32(1123680256);
emit_32(1129764880);
emit_32(1102281808);
emit_32(1124132848);
emit_32(1130020864);
emit_32(1101172887);
emit_32(1123680256);
emit_32(1130020864);
emit_32(1101935621);
emit_32(1124132848);
emit_32(1130276848);
emit_32(1101025876);
emit_32(1123680256);
emit_32(1130276848);
emit_32(1100815060);
emit_32(1124132848);
emit_32(1130532897);
emit_32(1101065722);
emit_32(1123680256);
emit_32(1130532897);
emit_32(1100889457);
emit_32(1124132848);
emit_32(1130788880);
emit_32(1101130577);
emit_32(1123680256);
emit_32(1130788880);
emit_32(1101023098);
emit_32(1124132848);
emit_32(1131044864);
emit_32(1100802530);
emit_32(1123680256);
emit_32(1131044864);
emit_32(1100560938);
emit_32(1124132848);
emit_32(1131300848);
emit_32(1100276983);
emit_32(1123680256);
emit_32(1131300848);
emit_32(1099884397);
emit_32(1124132848);
emit_32(1131556897);
emit_32(1099626499);
emit_32(1123680256);
emit_32(1131556897);
emit_32(1099776918);
emit_32(1124132848);
emit_32(1131812880);
emit_32(1099785830);
emit_32(1123680256);
emit_32(1131812880);
emit_32(1099406246);
emit_32(1124132848);
emit_32(1132068864);
emit_32(1099641599);
emit_32(1123680256);
emit_32(1132068864);
emit_32(1099062890);
emit_32(1124132848);
emit_32(1081737216);
emit_32(1100235512);
emit_32(1123168289);
emit_32(1090125824);
emit_32(1100861512);
emit_32(1123168289);
emit_32(1094418484);
emit_32(1101523373);
emit_32(1123168289);
emit_32(1098514432);
emit_32(1102177632);
emit_32(1123168289);
emit_32(1100759066);
emit_32(1102223140);
emit_32(1123168289);
emit_32(1102807040);
emit_32(1101084754);
emit_32(1123168289);
emit_32(1104855066);
emit_32(1099931897);
emit_32(1123168289);
emit_32(1106903040);
emit_32(1099771150);
emit_32(1123168289);
emit_32(1108123661);
emit_32(1099034001);
emit_32(1123168289);
emit_32(1109147648);
emit_32(1097525730);
emit_32(1123168289);
emit_32(1110171661);
emit_32(1097329331);
emit_32(1123168289);
emit_32(1111195648);
emit_32(1097895877);
emit_32(1123168289);
emit_32(1112219661);
emit_32(1098267283);
emit_32(1123168289);
emit_32(1113243648);
emit_32(1098019609);
emit_32(1123168289);
emit_32(1114267661);
emit_32(1097783994);
emit_32(1123168289);
emit_32(1115291648);
emit_32(1097984587);
emit_32(1123168289);
emit_32(1116000263);
emit_32(1098022755);
emit_32(1123168289);
emit_32(1116512256);
emit_32(1098026110);
emit_32(1123168289);
emit_32(1117024263);
emit_32(1097933206);
emit_32(1123168289);
emit_32(1117536256);
emit_32(1098931503);
emit_32(1123168289);
emit_32(1118048263);
emit_32(1099231973);
emit_32(1123168289);
emit_32(1118560256);
emit_32(1099649463);
emit_32(1123168289);
emit_32(1119072263);
emit_32(1100347343);
emit_32(1123168289);
emit_32(1119584256);
emit_32(1100400558);
emit_32(1123168289);
emit_32(1120096263);
emit_32(1101890794);
emit_32(1123168289);
emit_32(1120608322);
emit_32(1103399223);
emit_32(1123168289);
emit_32(1121120289);
emit_32(1104023703);
emit_32(1123168289);
emit_32(1121632256);
emit_32(1104903930);
emit_32(1123168289);
emit_32(1122144223);
emit_32(1105787670);
emit_32(1123168289);
emit_32(1122656322);
emit_32(1106319507);
emit_32(1123168289);
emit_32(1123168289);
emit_32(1107324096);
emit_32(1123168289);
emit_32(1123680256);
emit_32(1107997229);
emit_32(1123168289);
emit_32(1124132848);
emit_32(1108634344);
emit_32(1123168289);
emit_32(1124388897);
emit_32(1108819601);
emit_32(1123168289);
emit_32(1124644880);
emit_32(1108814096);
emit_32(1123168289);
emit_32(1124900864);
emit_32(1108757106);
emit_32(1123168289);
emit_32(1125156848);
emit_32(1108647897);
emit_32(1123168289);
emit_32(1125412897);
emit_32(1108920920);
emit_32(1123168289);
emit_32(1125668880);
emit_32(1109111000);
emit_32(1123168289);
emit_32(1125924864);
emit_32(1109475302);
emit_32(1123168289);
emit_32(1126180848);
emit_32(1109573422);
emit_32(1123168289);
emit_32(1126436897);
emit_32(1109272140);
emit_32(1123168289);
emit_32(1126692880);
emit_32(1108874101);
emit_32(1123168289);
emit_32(1126948864);
emit_32(1108464710);
emit_32(1123168289);
emit_32(1127204848);
emit_32(1108148460);
emit_32(1123168289);
emit_32(1127460897);
emit_32(1107996416);
emit_32(1123168289);
emit_32(1127716880);
emit_32(1107704781);
emit_32(1123168289);
emit_32(1127972864);
emit_32(1107621603);
emit_32(1123168289);
emit_32(1128228848);
emit_32(1107169798);
emit_32(1123168289);
emit_32(1128484897);
emit_32(1106434222);
emit_32(1123168289);
emit_32(1128740880);
emit_32(1105659953);
emit_32(1123168289);
emit_32(1128996864);
emit_32(1104548410);
emit_32(1123168289);
emit_32(1129252848);
emit_32(1103654289);
emit_32(1123168289);
emit_32(1129508897);
emit_32(1102602673);
emit_32(1123168289);
emit_32(1129764880);
emit_32(1101366401);
emit_32(1123168289);
emit_32(1130020864);
emit_32(1100673240);
emit_32(1123168289);
emit_32(1130276848);
emit_32(1100637012);
emit_32(1123168289);
emit_32(1130532897);
emit_32(1101126015);
emit_32(1123168289);
emit_32(1130788880);
emit_32(1101170999);
emit_32(1123168289);
emit_32(1131044864);
emit_32(1101134194);
emit_32(1123168289);
emit_32(1131300848);
emit_32(1101200569);
emit_32(1123168289);
emit_32(1131556897);
emit_32(1100148952);
emit_32(1123168289);
emit_32(1131812880);
emit_32(1099244241);
emit_32(1123168289);
emit_32(1132068864);
emit_32(1099746247);
emit_32(1123168289);
emit_32(1081737216);
emit_32(1100438045);
emit_32(1122656322);
emit_32(1090125824);
emit_32(1100591871);
emit_32(1122656322);
emit_32(1094418484);
emit_32(1101406352);
emit_32(1122656322);
emit_32(1098514432);
emit_32(1101309359);
emit_32(1122656322);
emit_32(1100759066);
emit_32(1101169112);
emit_32(1122656322);
emit_32(1102807040);
emit_32(1100305872);
emit_32(1122656322);
emit_32(1104855066);
emit_32(1099701682);
emit_32(1122656322);
emit_32(1106903040);
emit_32(1099474561);
emit_32(1122656322);
emit_32(1108123661);
emit_32(1098570950);
emit_32(1122656322);
emit_32(1109147648);
emit_32(1097605421);
emit_32(1122656322);
emit_32(1110171661);
emit_32(1097274386);
emit_32(1122656322);
emit_32(1111195648);
emit_32(1097648413);
emit_32(1122656322);
emit_32(1112219661);
emit_32(1097935199);
emit_32(1122656322);
emit_32(1113243648);
emit_32(1097655229);
emit_32(1122656322);
emit_32(1114267661);
emit_32(1098651795);
emit_32(1122656322);
emit_32(1115291648);
emit_32(1099066193);
emit_32(1122656322);
emit_32(1116000263);
emit_32(1098931189);
emit_32(1122656322);
emit_32(1116512256);
emit_32(1098814849);
emit_32(1122656322);
emit_32(1117024263);
emit_32(1098993264);
emit_32(1122656322);
emit_32(1117536256);
emit_32(1099606157);
emit_32(1122656322);
emit_32(1118048263);
emit_32(1099571344);
emit_32(1122656322);
emit_32(1118560256);
emit_32(1099949408);
emit_32(1122656322);
emit_32(1119072263);
emit_32(1100115817);
emit_32(1122656322);
emit_32(1119584256);
emit_32(1100095947);
emit_32(1122656322);
emit_32(1120096263);
emit_32(1100761740);
emit_32(1122656322);
emit_32(1120608322);
emit_32(1101924191);
emit_32(1122656322);
emit_32(1121120289);
emit_32(1102920810);
emit_32(1122656322);
emit_32(1121632256);
emit_32(1103899499);
emit_32(1122656322);
emit_32(1122144223);
emit_32(1105260918);
emit_32(1122656322);
emit_32(1122656322);
emit_32(1106034347);
emit_32(1122656322);
emit_32(1123168289);
emit_32(1107198004);
emit_32(1122656322);
emit_32(1123680256);
emit_32(1107826495);
emit_32(1122656322);
emit_32(1124132848);
emit_32(1108446937);
emit_32(1122656322);
emit_32(1124388897);
emit_32(1108618065);
emit_32(1122656322);
emit_32(1124644880);
emit_32(1108561835);
emit_32(1122656322);
emit_32(1124900864);
emit_32(1108406410);
emit_32(1122656322);
emit_32(1125156848);
emit_32(1108576174);
emit_32(1122656322);
emit_32(1125412897);
emit_32(1109301448);
emit_32(1122656322);
emit_32(1125668880);
emit_32(1109829249);
emit_32(1122656322);
emit_32(1125924864);
emit_32(1110051154);
emit_32(1122656322);
emit_32(1126180848);
emit_32(1110198478);
emit_32(1122656322);
emit_32(1126436897);
emit_32(1109858268);
emit_32(1122656322);
emit_32(1126692880);
emit_32(1109550301);
emit_32(1122656322);
emit_32(1126948864);
emit_32(1108917669);
emit_32(1122656322);
emit_32(1127204848);
emit_32(1108613005);
emit_32(1122656322);
emit_32(1127460897);
emit_32(1108306375);
emit_32(1122656322);
emit_32(1127716880);
emit_32(1107971382);
emit_32(1122656322);
emit_32(1127972864);
emit_32(1107731022);
emit_32(1122656322);
emit_32(1128228848);
emit_32(1107436241);
emit_32(1122656322);
emit_32(1128484897);
emit_32(1106805103);
emit_32(1122656322);
emit_32(1128740880);
emit_32(1105736132);
emit_32(1122656322);
emit_32(1128996864);
emit_32(1104687818);
emit_32(1122656322);
emit_32(1129252848);
emit_32(1103709969);
emit_32(1122656322);
emit_32(1129508897);
emit_32(1102382734);
emit_32(1122656322);
emit_32(1129764880);
emit_32(1101330121);
emit_32(1122656322);
emit_32(1130020864);
emit_32(1100614520);
emit_32(1122656322);
emit_32(1130276848);
emit_32(1100389233);
emit_32(1122656322);
emit_32(1130532897);
emit_32(1100597690);
emit_32(1122656322);
emit_32(1130788880);
emit_32(1101237636);
emit_32(1122656322);
emit_32(1131044864);
emit_32(1101286500);
emit_32(1122656322);
emit_32(1131300848);
emit_32(1101166386);
emit_32(1122656322);
emit_32(1131556897);
emit_32(1100711041);
emit_32(1122656322);
emit_32(1131812880);
emit_32(1099946053);
emit_32(1122656322);
emit_32(1132068864);
emit_32(1099609932);
emit_32(1122656322);
emit_32(1081737216);
emit_32(1100139620);
emit_32(1122144223);
emit_32(1090125824);
emit_32(1100323697);
emit_32(1122144223);
emit_32(1094418484);
emit_32(1100674708);
emit_32(1122144223);
emit_32(1098514432);
emit_32(1100753299);
emit_32(1122144223);
emit_32(1100759066);
emit_32(1100255278);
emit_32(1122144223);
emit_32(1102807040);
emit_32(1099783052);
emit_32(1122144223);
emit_32(1104855066);
emit_32(1099327131);
emit_32(1122144223);
emit_32(1106903040);
emit_32(1099190764);
emit_32(1122144223);
emit_32(1108123661);
emit_32(1098756443);
emit_32(1122144223);
emit_32(1109147648);
emit_32(1097994967);
emit_32(1122144223);
emit_32(1110171661);
emit_32(1098760743);
emit_32(1122144223);
emit_32(1111195648);
emit_32(1099136762);
emit_32(1122144223);
emit_32(1112219661);
emit_32(1099063729);
emit_32(1122144223);
emit_32(1113243648);
emit_32(1099278634);
emit_32(1122144223);
emit_32(1114267661);
emit_32(1099336883);
emit_32(1122144223);
emit_32(1115291648);
emit_32(1099511261);
emit_32(1122144223);
emit_32(1116000263);
emit_32(1099185311);
emit_32(1122144223);
emit_32(1116512256);
emit_32(1098779931);
emit_32(1122144223);
emit_32(1117024263);
emit_32(1099229561);
emit_32(1122144223);
emit_32(1117536256);
emit_32(1099456787);
emit_32(1122144223);
emit_32(1118048263);
emit_32(1099608673);
emit_32(1122144223);
emit_32(1118560256);
emit_32(1099933417);
emit_32(1122144223);
emit_32(1119072263);
emit_32(1100161640);
emit_32(1122144223);
emit_32(1119584256);
emit_32(1100494039);
emit_32(1122144223);
emit_32(1120096263);
emit_32(1100626841);
emit_32(1122144223);
emit_32(1120608322);
emit_32(1101085173);
emit_32(1122144223);
emit_32(1121120289);
emit_32(1102206573);
emit_32(1122144223);
emit_32(1121632256);
emit_32(1103460303);
emit_32(1122144223);
emit_32(1122144223);
emit_32(1104032825);
emit_32(1122144223);
emit_32(1122656322);
emit_32(1105660740);
emit_32(1122144223);
emit_32(1123168289);
emit_32(1106883065);
emit_32(1122144223);
emit_32(1123680256);
emit_32(1107680480);
emit_32(1122144223);
emit_32(1124132848);
emit_32(1108110344);
emit_32(1122144223);
emit_32(1124388897);
emit_32(1108454854);
emit_32(1122144223);
emit_32(1124644880);
emit_32(1108686065);
emit_32(1122144223);
emit_32(1124900864);
emit_32(1108654057);
emit_32(1122144223);
emit_32(1125156848);
emit_32(1108922519);
emit_32(1122144223);
emit_32(1125412897);
emit_32(1109770450);
emit_32(1122144223);
emit_32(1125668880);
emit_32(1110434487);
emit_32(1122144223);
emit_32(1125924864);
emit_32(1110705884);
emit_32(1122144223);
emit_32(1126180848);
emit_32(1110743214);
emit_32(1122144223);
emit_32(1126436897);
emit_32(1110390656);
emit_32(1122144223);
emit_32(1126692880);
emit_32(1110053093);
emit_32(1122144223);
emit_32(1126948864);
emit_32(1109488042);
emit_32(1122144223);
emit_32(1127204848);
emit_32(1108960713);
emit_32(1122144223);
emit_32(1127460897);
emit_32(1108725701);
emit_32(1122144223);
emit_32(1127716880);
emit_32(1108233840);
emit_32(1122144223);
emit_32(1127972864);
emit_32(1107884455);
emit_32(1122144223);
emit_32(1128228848);
emit_32(1107301971);
emit_32(1122144223);
emit_32(1128484897);
emit_32(1106353639);
emit_32(1122144223);
emit_32(1128740880);
emit_32(1105631956);
emit_32(1122144223);
emit_32(1128996864);
emit_32(1104783920);
emit_32(1122144223);
emit_32(1129252848);
emit_32(1103622046);
emit_32(1122144223);
emit_32(1129508897);
emit_32(1102332926);
emit_32(1122144223);
emit_32(1129764880);
emit_32(1100887622);
emit_32(1122144223);
emit_32(1130020864);
emit_32(1100248410);
emit_32(1122144223);
emit_32(1130276848);
emit_32(1100033242);
emit_32(1122144223);
emit_32(1130532897);
emit_32(1099938346);
emit_32(1122144223);
emit_32(1130788880);
emit_32(1100585370);
emit_32(1122144223);
emit_32(1131044864);
emit_32(1101043650);
emit_32(1122144223);
emit_32(1131300848);
emit_32(1101065565);
emit_32(1122144223);
emit_32(1131556897);
emit_32(1100500540);
emit_32(1122144223);
emit_32(1131812880);
emit_32(1100135373);
emit_32(1122144223);
emit_32(1132068864);
emit_32(1100354840);
emit_32(1122144223);
emit_32(1081737216);
emit_32(1099957115);
emit_32(1121632256);
emit_32(1090125824);
emit_32(1100037593);
emit_32(1121632256);
emit_32(1094418484);
emit_32(1100062445);
emit_32(1121632256);
emit_32(1098514432);
emit_32(1100063284);
emit_32(1121632256);
emit_32(1100759066);
emit_32(1099841195);
emit_32(1121632256);
emit_32(1102807040);
emit_32(1099713898);
emit_32(1121632256);
emit_32(1104855066);
emit_32(1099359951);
emit_32(1121632256);
emit_32(1106903040);
emit_32(1098837289);
emit_32(1121632256);
emit_32(1108123661);
emit_32(1098060399);
emit_32(1121632256);
emit_32(1109147648);
emit_32(1098949381);
emit_32(1121632256);
emit_32(1110171661);
emit_32(1099007001);
emit_32(1121632256);
emit_32(1111195648);
emit_32(1098883950);
emit_32(1121632256);
emit_32(1112219661);
emit_32(1099407242);
emit_32(1121632256);
emit_32(1113243648);
emit_32(1099479174);
emit_32(1121632256);
emit_32(1114267661);
emit_32(1099627076);
emit_32(1121632256);
emit_32(1115291648);
emit_32(1099212207);
emit_32(1121632256);
emit_32(1116000263);
emit_32(1099332898);
emit_32(1121632256);
emit_32(1116512256);
emit_32(1099391985);
emit_32(1121632256);
emit_32(1117024263);
emit_32(1099349203);
emit_32(1121632256);
emit_32(1117536256);
emit_32(1099452960);
emit_32(1121632256);
emit_32(1118048263);
emit_32(1099360476);
emit_32(1121632256);
emit_32(1118560256);
emit_32(1099645374);
emit_32(1121632256);
emit_32(1119072263);
emit_32(1099926864);
emit_32(1121632256);
emit_32(1119584256);
emit_32(1100231737);
emit_32(1121632256);
emit_32(1120096263);
emit_32(1100104545);
emit_32(1121632256);
emit_32(1120608322);
emit_32(1100531630);
emit_32(1121632256);
emit_32(1121120289);
emit_32(1101229824);
emit_32(1121632256);
emit_32(1121632256);
emit_32(1102138835);
emit_32(1121632256);
emit_32(1122144223);
emit_32(1103981340);
emit_32(1121632256);
emit_32(1122656322);
emit_32(1105126595);
emit_32(1121632256);
emit_32(1123168289);
emit_32(1106590722);
emit_32(1121632256);
emit_32(1123680256);
emit_32(1107669182);
emit_32(1121632256);
emit_32(1124132848);
emit_32(1107932296);
emit_32(1121632256);
emit_32(1124388897);
emit_32(1108574129);
emit_32(1121632256);
emit_32(1124644880);
emit_32(1108726278);
emit_32(1121632256);
emit_32(1124900864);
emit_32(1108737393);
emit_32(1121632256);
emit_32(1125156848);
emit_32(1109413095);
emit_32(1121632256);
emit_32(1125412897);
emit_32(1110114933);
emit_32(1121632256);
emit_32(1125668880);
emit_32(1110645303);
emit_32(1121632256);
emit_32(1125924864);
emit_32(1111013117);
emit_32(1121632256);
emit_32(1126180848);
emit_32(1111064655);
emit_32(1121632256);
emit_32(1126436897);
emit_32(1110758890);
emit_32(1121632256);
emit_32(1126692880);
emit_32(1110376107);
emit_32(1121632256);
emit_32(1126948864);
emit_32(1109822407);
emit_32(1121632256);
emit_32(1127204848);
emit_32(1109326797);
emit_32(1121632256);
emit_32(1127460897);
emit_32(1108601838);
emit_32(1121632256);
emit_32(1127716880);
emit_32(1108258010);
emit_32(1121632256);
emit_32(1127972864);
emit_32(1108088245);
emit_32(1121632256);
emit_32(1128228848);
emit_32(1107411154);
emit_32(1121632256);
emit_32(1128484897);
emit_32(1106040377);
emit_32(1121632256);
emit_32(1128740880);
emit_32(1105294629);
emit_32(1121632256);
emit_32(1128996864);
emit_32(1104278664);
emit_32(1121632256);
emit_32(1129252848);
emit_32(1103177554);
emit_32(1121632256);
emit_32(1129508897);
emit_32(1102109580);
emit_32(1121632256);
emit_32(1129764880);
emit_32(1101025824);
emit_32(1121632256);
emit_32(1130020864);
emit_32(1099990984);
emit_32(1121632256);
emit_32(1130276848);
emit_32(1099361681);
emit_32(1121632256);
emit_32(1130532897);
emit_32(1099399011);
emit_32(1121632256);
emit_32(1130788880);
emit_32(1099424229);
emit_32(1121632256);
emit_32(1131044864);
emit_32(1099786407);
emit_32(1121632256);
emit_32(1131300848);
emit_32(1100148585);
emit_32(1121632256);
emit_32(1131556897);
emit_32(1100174118);
emit_32(1121632256);
emit_32(1131812880);
emit_32(1100070047);
emit_32(1121632256);
emit_32(1132068864);
emit_32(1100267704);
emit_32(1121632256);
emit_32(1081737216);
emit_32(1099935672);
emit_32(1121120289);
emit_32(1090125824);
emit_32(1100185285);
emit_32(1121120289);
emit_32(1094418484);
emit_32(1100187225);
emit_32(1121120289);
emit_32(1098514432);
emit_32(1099887280);
emit_32(1121120289);
emit_32(1100759066);
emit_32(1099826148);
emit_32(1121120289);
emit_32(1102807040);
emit_32(1099732563);
emit_32(1121120289);
emit_32(1104855066);
emit_32(1099085749);
emit_32(1121120289);
emit_32(1106903040);
emit_32(1098762735);
emit_32(1121120289);
emit_32(1108123661);
emit_32(1098970248);
emit_32(1121120289);
emit_32(1109147648);
emit_32(1099373740);
emit_32(1121120289);
emit_32(1110171661);
emit_32(1099054658);
emit_32(1121120289);
emit_32(1111195648);
emit_32(1098747635);
emit_32(1121120289);
emit_32(1112219661);
emit_32(1099059272);
emit_32(1121120289);
emit_32(1113243648);
emit_32(1099057280);
emit_32(1121120289);
emit_32(1114267661);
emit_32(1099293943);
emit_32(1121120289);
emit_32(1115291648);
emit_32(1099644535);
emit_32(1121120289);
emit_32(1116000263);
emit_32(1099369441);
emit_32(1121120289);
emit_32(1116512256);
emit_32(1099598817);
emit_32(1121120289);
emit_32(1117024263);
emit_32(1099807641);
emit_32(1121120289);
emit_32(1117536256);
emit_32(1099466382);
emit_32(1121120289);
emit_32(1118048263);
emit_32(1099290640);
emit_32(1121120289);
emit_32(1118560256);
emit_32(1099113641);
emit_32(1121120289);
emit_32(1119072263);
emit_32(1099247124);
emit_32(1121120289);
emit_32(1119584256);
emit_32(1099832754);
emit_32(1121120289);
emit_32(1120096263);
emit_32(1100177054);
emit_32(1121120289);
emit_32(1120608322);
emit_32(1100171549);
emit_32(1121120289);
emit_32(1121120289);
emit_32(1100677172);
emit_32(1121120289);
emit_32(1121632256);
emit_32(1101971063);
emit_32(1121120289);
emit_32(1122144223);
emit_32(1103633737);
emit_32(1121120289);
emit_32(1122656322);
emit_32(1104631195);
emit_32(1121120289);
emit_32(1123168289);
emit_32(1106163951);
emit_32(1121120289);
emit_32(1123680256);
emit_32(1107425676);
emit_32(1121120289);
emit_32(1124132848);
emit_32(1107927394);
emit_32(1121120289);
emit_32(1124388897);
emit_32(1108148145);
emit_32(1121120289);
emit_32(1124644880);
emit_32(1108470268);
emit_32(1121120289);
emit_32(1124900864);
emit_32(1108816246);
emit_32(1121120289);
emit_32(1125156848);
emit_32(1109543145);
emit_32(1121120289);
emit_32(1125412897);
emit_32(1110276781);
emit_32(1121120289);
emit_32(1125668880);
emit_32(1110909649);
emit_32(1121120289);
emit_32(1125924864);
emit_32(1111224091);
emit_32(1121120289);
emit_32(1126180848);
emit_32(1111301135);
emit_32(1121120289);
emit_32(1126436897);
emit_32(1111167992);
emit_32(1121120289);
emit_32(1126692880);
emit_32(1110709345);
emit_32(1121120289);
emit_32(1126948864);
emit_32(1110071837);
emit_32(1121120289);
emit_32(1127204848);
emit_32(1109390262);
emit_32(1121120289);
emit_32(1127460897);
emit_32(1108886238);
emit_32(1121120289);
emit_32(1127716880);
emit_32(1108757814);
emit_32(1121120289);
emit_32(1127972864);
emit_32(1108248258);
emit_32(1121120289);
emit_32(1128228848);
emit_32(1107404862);
emit_32(1121120289);
emit_32(1128484897);
emit_32(1106003467);
emit_32(1121120289);
emit_32(1128740880);
emit_32(1104821354);
emit_32(1121120289);
emit_32(1128996864);
emit_32(1104184607);
emit_32(1121120289);
emit_32(1129252848);
emit_32(1103554570);
emit_32(1121120289);
emit_32(1129508897);
emit_32(1102588989);
emit_32(1121120289);
emit_32(1129764880);
emit_32(1101617378);
emit_32(1121120289);
emit_32(1130020864);
emit_32(1100444598);
emit_32(1121120289);
emit_32(1130276848);
emit_32(1099799619);
emit_32(1121120289);
emit_32(1130532897);
emit_32(1099403939);
emit_32(1121120289);
emit_32(1130788880);
emit_32(1099507276);
emit_32(1121120289);
emit_32(1131044864);
emit_32(1099782737);
emit_32(1121120289);
emit_32(1131300848);
emit_32(1099916535);
emit_32(1121120289);
emit_32(1131556897);
emit_32(1099956486);
emit_32(1121120289);
emit_32(1131812880);
emit_32(1100280182);
emit_32(1121120289);
emit_32(1132068864);
emit_32(1100594020);
emit_32(1121120289);
emit_32(1081737216);
emit_32(1099802817);
emit_32(1120608322);
emit_32(1090125824);
emit_32(1100171706);
emit_32(1120608322);
emit_32(1094418484);
emit_32(1099951820);
emit_32(1120608322);
emit_32(1098514432);
emit_32(1100236666);
emit_32(1120608322);
emit_32(1100759066);
emit_32(1100302621);
emit_32(1120608322);
emit_32(1102807040);
emit_32(1099644797);
emit_32(1120608322);
emit_32(1104855066);
emit_32(1099555458);
emit_32(1120608322);
emit_32(1106903040);
emit_32(1099452645);
emit_32(1120608322);
emit_32(1108123661);
emit_32(1099951138);
emit_32(1120608322);
emit_32(1109147648);
emit_32(1100092696);
emit_32(1120608322);
emit_32(1110171661);
emit_32(1099905735);
emit_32(1120608322);
emit_32(1111195648);
emit_32(1099555563);
emit_32(1120608322);
emit_32(1112219661);
emit_32(1098964743);
emit_32(1120608322);
emit_32(1113243648);
emit_32(1099224475);
emit_32(1120608322);
emit_32(1114267661);
emit_32(1099204185);
emit_32(1120608322);
emit_32(1115291648);
emit_32(1099361419);
emit_32(1120608322);
emit_32(1116000263);
emit_32(1099438385);
emit_32(1120608322);
emit_32(1116512256);
emit_32(1099693294);
emit_32(1120608322);
emit_32(1117024263);
emit_32(1099966448);
emit_32(1120608322);
emit_32(1117536256);
emit_32(1099611085);
emit_32(1120608322);
emit_32(1118048263);
emit_32(1099352087);
emit_32(1120608322);
emit_32(1118560256);
emit_32(1098341627);
emit_32(1120608322);
emit_32(1119072263);
emit_32(1098488322);
emit_32(1120608322);
emit_32(1119584256);
emit_32(1099373688);
emit_32(1120608322);
emit_32(1120096263);
emit_32(1099586286);
emit_32(1120608322);
emit_32(1120608322);
emit_32(1099611819);
emit_32(1120608322);
emit_32(1121120289);
emit_32(1100077125);
emit_32(1120608322);
emit_32(1121632256);
emit_32(1101296094);
emit_32(1120608322);
emit_32(1122144223);
emit_32(1102346872);
emit_32(1120608322);
emit_32(1122656322);
emit_32(1103678512);
emit_32(1120608322);
emit_32(1123168289);
emit_32(1105306478);
emit_32(1120608322);
emit_32(1123680256);
emit_32(1106488852);
emit_32(1120608322);
emit_32(1124132848);
emit_32(1107446438);
emit_32(1120608322);
emit_32(1124388897);
emit_32(1107966506);
emit_32(1120608322);
emit_32(1124644880);
emit_32(1108466205);
emit_32(1120608322);
emit_32(1124900864);
emit_32(1108823481);
emit_32(1120608322);
emit_32(1125156848);
emit_32(1109507624);
emit_32(1120608322);
emit_32(1125412897);
emit_32(1110351387);
emit_32(1120608322);
emit_32(1125668880);
emit_32(1111019749);
emit_32(1120608322);
emit_32(1125924864);
emit_32(1111329971);
emit_32(1120608322);
emit_32(1126180848);
emit_32(1111365308);
emit_32(1120608322);
emit_32(1126436897);
emit_32(1111184166);
emit_32(1120608322);
emit_32(1126692880);
emit_32(1110574760);
emit_32(1120608322);
emit_32(1126948864);
emit_32(1110380328);
emit_32(1120608322);
emit_32(1127204848);
emit_32(1109912165);
emit_32(1120608322);
emit_32(1127460897);
emit_32(1109599191);
emit_32(1120608322);
emit_32(1127716880);
emit_32(1109069372);
emit_32(1120608322);
emit_32(1127972864);
emit_32(1108386487);
emit_32(1120608322);
emit_32(1128228848);
emit_32(1107668422);
emit_32(1120608322);
emit_32(1128484897);
emit_32(1106120173);
emit_32(1120608322);
emit_32(1128740880);
emit_32(1104797657);
emit_32(1120608322);
emit_32(1128996864);
emit_32(1104352117);
emit_32(1120608322);
emit_32(1129252848);
emit_32(1103791338);
emit_32(1120608322);
emit_32(1129508897);
emit_32(1102834355);
emit_32(1120608322);
emit_32(1129764880);
emit_32(1102173438);
emit_32(1120608322);
emit_32(1130020864);
emit_32(1101005534);
emit_32(1120608322);
emit_32(1130276848);
emit_32(1100530582);
emit_32(1120608322);
emit_32(1130532897);
emit_32(1099941020);
emit_32(1120608322);
emit_32(1130788880);
emit_32(1099395393);
emit_32(1120608322);
emit_32(1131044864);
emit_32(1099621676);
emit_32(1120608322);
emit_32(1131300848);
emit_32(1099449605);
emit_32(1120608322);
emit_32(1131556897);
emit_32(1099506595);
emit_32(1120608322);
emit_32(1131812880);
emit_32(1100131336);
emit_32(1120608322);
emit_32(1132068864);
emit_32(1100624377);
emit_32(1120608322);
emit_32(1081737216);
emit_32(1099965451);
emit_32(1120096263);
emit_32(1090125824);
emit_32(1100056678);
emit_32(1120096263);
emit_32(1094418484);
emit_32(1099809423);
emit_32(1120096263);
emit_32(1098514432);
emit_32(1100136789);
emit_32(1120096263);
emit_32(1100759066);
emit_32(1100328573);
emit_32(1120096263);
emit_32(1102807040);
emit_32(1099649149);
emit_32(1120096263);
emit_32(1104855066);
emit_32(1099960680);
emit_32(1120096263);
emit_32(1106903040);
emit_32(1100214383);
emit_32(1120096263);
emit_32(1108123661);
emit_32(1100707214);
emit_32(1120096263);
emit_32(1109147648);
emit_32(1100899838);
emit_32(1120096263);
emit_32(1110171661);
emit_32(1100765934);
emit_32(1120096263);
emit_32(1111195648);
emit_32(1100769552);
emit_32(1120096263);
emit_32(1112219661);
emit_32(1099924609);
emit_32(1120096263);
emit_32(1113243648);
emit_32(1099242301);
emit_32(1120096263);
emit_32(1114267661);
emit_32(1098940101);
emit_32(1120096263);
emit_32(1115291648);
emit_32(1099295726);
emit_32(1120096263);
emit_32(1116000263);
emit_32(1099408343);
emit_32(1120096263);
emit_32(1116512256);
emit_32(1099741895);
emit_32(1120096263);
emit_32(1117024263);
emit_32(1099493854);
emit_32(1120096263);
emit_32(1117536256);
emit_32(1099382810);
emit_32(1120096263);
emit_32(1118048263);
emit_32(1099116734);
emit_32(1120096263);
emit_32(1118560256);
emit_32(1098839491);
emit_32(1120096263);
emit_32(1119072263);
emit_32(1098942461);
emit_32(1120096263);
emit_32(1119584256);
emit_32(1099008626);
emit_32(1120096263);
emit_32(1120096263);
emit_32(1099170002);
emit_32(1120096263);
emit_32(1120608322);
emit_32(1099494064);
emit_32(1120096263);
emit_32(1121120289);
emit_32(1099581830);
emit_32(1120096263);
emit_32(1121632256);
emit_32(1100481875);
emit_32(1120096263);
emit_32(1122144223);
emit_32(1101530032);
emit_32(1120096263);
emit_32(1122656322);
emit_32(1102909853);
emit_32(1120096263);
emit_32(1123168289);
emit_32(1104403812);
emit_32(1120096263);
emit_32(1123680256);
emit_32(1105884611);
emit_32(1120096263);
emit_32(1124132848);
emit_32(1107445731);
emit_32(1120096263);
emit_32(1124388897);
emit_32(1107970254);
emit_32(1120096263);
emit_32(1124644880);
emit_32(1108388505);
emit_32(1120096263);
emit_32(1124900864);
emit_32(1108761877);
emit_32(1120096263);
emit_32(1125156848);
emit_32(1109478133);
emit_32(1120096263);
emit_32(1125412897);
emit_32(1110090973);
emit_32(1120096263);
emit_32(1125668880);
emit_32(1110851033);
emit_32(1120096263);
emit_32(1125924864);
emit_32(1111411497);
emit_32(1120096263);
emit_32(1126180848);
emit_32(1111336655);
emit_32(1120096263);
emit_32(1126436897);
emit_32(1111269415);
emit_32(1120096263);
emit_32(1126692880);
emit_32(1110784292);
emit_32(1120096263);
emit_32(1126948864);
emit_32(1110653508);
emit_32(1120096263);
emit_32(1127204848);
emit_32(1110359330);
emit_32(1120096263);
emit_32(1127460897);
emit_32(1109834623);
emit_32(1120096263);
emit_32(1127716880);
emit_32(1109238009);
emit_32(1120096263);
emit_32(1127972864);
emit_32(1108505212);
emit_32(1120096263);
emit_32(1128228848);
emit_32(1107662209);
emit_32(1120096263);
emit_32(1128484897);
emit_32(1106214755);
emit_32(1120096263);
emit_32(1128740880);
emit_32(1105231400);
emit_32(1120096263);
emit_32(1128996864);
emit_32(1104882277);
emit_32(1120096263);
emit_32(1129252848);
emit_32(1103989781);
emit_32(1120096263);
emit_32(1129508897);
emit_32(1103333268);
emit_32(1120096263);
emit_32(1129764880);
emit_32(1102701186);
emit_32(1120096263);
emit_32(1130020864);
emit_32(1101762396);
emit_32(1120096263);
emit_32(1130276848);
emit_32(1100764257);
emit_32(1120096263);
emit_32(1130532897);
emit_32(1100213020);
emit_32(1120096263);
emit_32(1130788880);
emit_32(1099813093);
emit_32(1120096263);
emit_32(1131044864);
emit_32(1099177080);
emit_32(1120096263);
emit_32(1131300848);
emit_32(1099042862);
emit_32(1120096263);
emit_32(1131556897);
emit_32(1098988336);
emit_32(1120096263);
emit_32(1131812880);
emit_32(1099476815);
emit_32(1120096263);
emit_32(1132068864);
emit_32(1100226285);
emit_32(1120096263);
emit_32(1081737216);
emit_32(1099519545);
emit_32(1119584256);
emit_32(1090125824);
emit_32(1099335991);
emit_32(1119584256);
emit_32(1094418484);
emit_32(1099709442);
emit_32(1119584256);
emit_32(1098514432);
emit_32(1100359978);
emit_32(1119584256);
emit_32(1100759066);
emit_32(1100132490);
emit_32(1119584256);
emit_32(1102807040);
emit_32(1100526073);
emit_32(1119584256);
emit_32(1104855066);
emit_32(1100876716);
emit_32(1119584256);
emit_32(1106903040);
emit_32(1101010724);
emit_32(1119584256);
emit_32(1108123661);
emit_32(1101185208);
emit_32(1119584256);
emit_32(1109147648);
emit_32(1101761557);
emit_32(1119584256);
emit_32(1110171661);
emit_32(1101844080);
emit_32(1119584256);
emit_32(1111195648);
emit_32(1101813409);
emit_32(1119584256);
emit_32(1112219661);
emit_32(1101402839);
emit_32(1119584256);
emit_32(1113243648);
emit_32(1100438936);
emit_32(1119584256);
emit_32(1114267661);
emit_32(1099786984);
emit_32(1119584256);
emit_32(1115291648);
emit_32(1099715523);
emit_32(1119584256);
emit_32(1116000263);
emit_32(1099745985);
emit_32(1119584256);
emit_32(1116512256);
emit_32(1100093902);
emit_32(1119584256);
emit_32(1117024263);
emit_32(1100168351);
emit_32(1119584256);
emit_32(1117536256);
emit_32(1100068946);
emit_32(1119584256);
emit_32(1118048263);
emit_32(1100204894);
emit_32(1119584256);
emit_32(1118560256);
emit_32(1099776865);
emit_32(1119584256);
emit_32(1119072263);
emit_32(1099815715);
emit_32(1119584256);
emit_32(1119584256);
emit_32(1100174957);
emit_32(1119584256);
emit_32(1120096263);
emit_32(1100503528);
emit_32(1119584256);
emit_32(1120608322);
emit_32(1100870425);
emit_32(1119584256);
emit_32(1121120289);
emit_32(1100930771);
emit_32(1119584256);
emit_32(1121632256);
emit_32(1100869219);
emit_32(1119584256);
emit_32(1122144223);
emit_32(1101778439);
emit_32(1119584256);
emit_32(1122656322);
emit_32(1103199574);
emit_32(1119584256);
emit_32(1123168289);
emit_32(1104588361);
emit_32(1119584256);
emit_32(1123680256);
emit_32(1106227809);
emit_32(1119584256);
emit_32(1124132848);
emit_32(1107512970);
emit_32(1119584256);
emit_32(1124388897);
emit_32(1107998251);
emit_32(1119584256);
emit_32(1124644880);
emit_32(1108347008);
emit_32(1119584256);
emit_32(1124900864);
emit_32(1108602048);
emit_32(1119584256);
emit_32(1125156848);
emit_32(1109290831);
emit_32(1119584256);
emit_32(1125412897);
emit_32(1109977176);
emit_32(1119584256);
emit_32(1125668880);
emit_32(1110570959);
emit_32(1119584256);
emit_32(1125924864);
emit_32(1111274737);
emit_32(1119584256);
emit_32(1126180848);
emit_32(1111376973);
emit_32(1119584256);
emit_32(1126436897);
emit_32(1111218586);
emit_32(1119584256);
emit_32(1126692880);
emit_32(1110884090);
emit_32(1119584256);
emit_32(1126948864);
emit_32(1110905140);
emit_32(1119584256);
emit_32(1127204848);
emit_32(1110659642);
emit_32(1119584256);
emit_32(1127460897);
emit_32(1110072466);
emit_32(1119584256);
emit_32(1127716880);
emit_32(1109486102);
emit_32(1119584256);
emit_32(1127972864);
emit_32(1108855960);
emit_32(1119584256);
emit_32(1128228848);
emit_32(1108119781);
emit_32(1119584256);
emit_32(1128484897);
emit_32(1107034689);
emit_32(1119584256);
emit_32(1128740880);
emit_32(1106087772);
emit_32(1119584256);
emit_32(1128996864);
emit_32(1105093617);
emit_32(1119584256);
emit_32(1129252848);
emit_32(1104335182);
emit_32(1119584256);
emit_32(1129508897);
emit_32(1104074192);
emit_32(1119584256);
emit_32(1129764880);
emit_32(1103483057);
emit_32(1119584256);
emit_32(1130020864);
emit_32(1102981208);
emit_32(1119584256);
emit_32(1130276848);
emit_32(1101489714);
emit_32(1119584256);
emit_32(1130532897);
emit_32(1100552235);
emit_32(1119584256);
emit_32(1130788880);
emit_32(1100255278);
emit_32(1119584256);
emit_32(1131044864);
emit_32(1099722392);
emit_32(1119584256);
emit_32(1131300848);
emit_32(1097754634);
emit_32(1119584256);
emit_32(1131556897);
emit_32(1099078199);
emit_32(1119584256);
emit_32(1131812880);
emit_32(1098909588);
emit_32(1119584256);
emit_32(1132068864);
emit_32(1098899364);
emit_32(1119584256);
emit_32(1081737216);
emit_32(1098532992);
emit_32(1119072263);
emit_32(1090125824);
emit_32(1099050359);
emit_32(1119072263);
emit_32(1094418484);
emit_32(1099771203);
emit_32(1119072263);
emit_32(1098514432);
emit_32(1100405277);
emit_32(1119072263);
emit_32(1100759066);
emit_32(1100821823);
emit_32(1119072263);
emit_32(1102807040);
emit_32(1101489399);
emit_32(1119072263);
emit_32(1104855066);
emit_32(1101426590);
emit_32(1119072263);
emit_32(1106903040);
emit_32(1101124023);
emit_32(1119072263);
emit_32(1108123661);
emit_32(1101831497);
emit_32(1119072263);
emit_32(1109147648);
emit_32(1102350123);
emit_32(1119072263);
emit_32(1110171661);
emit_32(1102793199);
emit_32(1119072263);
emit_32(1111195648);
emit_32(1102843111);
emit_32(1119072263);
emit_32(1112219661);
emit_32(1102558318);
emit_32(1119072263);
emit_32(1113243648);
emit_32(1101824891);
emit_32(1119072263);
emit_32(1114267661);
emit_32(1101196113);
emit_32(1119072263);
emit_32(1115291648);
emit_32(1100804365);
emit_32(1119072263);
emit_32(1116000263);
emit_32(1100310538);
emit_32(1119072263);
emit_32(1116512256);
emit_32(1100314680);
emit_32(1119072263);
emit_32(1117024263);
emit_32(1100878604);
emit_32(1119072263);
emit_32(1117536256);
emit_32(1101233180);
emit_32(1119072263);
emit_32(1118048263);
emit_32(1101099486);
emit_32(1119072263);
emit_32(1118560256);
emit_32(1100717123);
emit_32(1119072263);
emit_32(1119072263);
emit_32(1100634758);
emit_32(1119072263);
emit_32(1119584256);
emit_32(1100997670);
emit_32(1119072263);
emit_32(1120096263);
emit_32(1101349205);
emit_32(1119072263);
emit_32(1120608322);
emit_32(1101475873);
emit_32(1119072263);
emit_32(1121120289);
emit_32(1101425646);
emit_32(1119072263);
emit_32(1121632256);
emit_32(1101796422);
emit_32(1119072263);
emit_32(1122144223);
emit_32(1102446120);
emit_32(1119072263);
emit_32(1122656322);
emit_32(1103203559);
emit_32(1119072263);
emit_32(1123168289);
emit_32(1104856849);
emit_32(1119072263);
emit_32(1123680256);
emit_32(1106223877);
emit_32(1119072263);
emit_32(1124132848);
emit_32(1107396421);
emit_32(1119072263);
emit_32(1124388897);
emit_32(1107875018);
emit_32(1119072263);
emit_32(1124644880);
emit_32(1108277173);
emit_32(1119072263);
emit_32(1124900864);
emit_32(1108512814);
emit_32(1119072263);
emit_32(1125156848);
emit_32(1109177296);
emit_32(1119072263);
emit_32(1125412897);
emit_32(1109962811);
emit_32(1119072263);
emit_32(1125668880);
emit_32(1110386698);
emit_32(1119072263);
emit_32(1125924864);
emit_32(1110954895);
emit_32(1119072263);
emit_32(1126180848);
emit_32(1111373146);
emit_32(1119072263);
emit_32(1126436897);
emit_32(1111232741);
emit_32(1119072263);
emit_32(1126692880);
emit_32(1110968474);
emit_32(1119072263);
emit_32(1126948864);
emit_32(1110976076);
emit_32(1119072263);
emit_32(1127204848);
emit_32(1110947948);
emit_32(1119072263);
emit_32(1127460897);
emit_32(1110319458);
emit_32(1119072263);
emit_32(1127716880);
emit_32(1109529802);
emit_32(1119072263);
emit_32(1127972864);
emit_32(1108903985);
emit_32(1119072263);
emit_32(1128228848);
emit_32(1108310439);
emit_32(1119072263);
emit_32(1128484897);
emit_32(1107575387);
emit_32(1119072263);
emit_32(1128740880);
emit_32(1106795613);
emit_32(1119072263);
emit_32(1128996864);
emit_32(1105037099);
emit_32(1119072263);
emit_32(1129252848);
emit_32(1104566131);
emit_32(1119072263);
emit_32(1129508897);
emit_32(1104325640);
emit_32(1119072263);
emit_32(1129764880);
emit_32(1103661315);
emit_32(1119072263);
emit_32(1130020864);
emit_32(1102795191);
emit_32(1119072263);
emit_32(1130276848);
emit_32(1101517868);
emit_32(1119072263);
emit_32(1130532897);
emit_32(1100461113);
emit_32(1119072263);
emit_32(1130788880);
emit_32(1100370097);
emit_32(1119072263);
emit_32(1131044864);
emit_32(1099572602);
emit_32(1119072263);
emit_32(1131300848);
emit_32(1097838100);
emit_32(1119072263);
emit_32(1131556897);
emit_32(1098295594);
emit_32(1119072263);
emit_32(1131812880);
emit_32(1098303459);
emit_32(1119072263);
emit_32(1132068864);
emit_32(1098824601);
emit_32(1119072263);
emit_32(1081737216);
emit_32(1098479410);
emit_32(1118560256);
emit_32(1090125824);
emit_32(1099112959);
emit_32(1118560256);
emit_32(1094418484);
emit_32(1100063546);
emit_32(1118560256);
emit_32(1098514432);
emit_32(1100578082);
emit_32(1118560256);
emit_32(1100759066);
emit_32(1101399327);
emit_32(1118560256);
emit_32(1102807040);
emit_32(1101862745);
emit_32(1118560256);
emit_32(1104855066);
emit_32(1102014684);
emit_32(1118560256);
emit_32(1106903040);
emit_32(1101855457);
emit_32(1118560256);
emit_32(1108123661);
emit_32(1102305349);
emit_32(1118560256);
emit_32(1109147648);
emit_32(1102995679);
emit_32(1118560256);
emit_32(1110171661);
emit_32(1103423603);
emit_32(1118560256);
emit_32(1111195648);
emit_32(1103543455);
emit_32(1118560256);
emit_32(1112219661);
emit_32(1103387741);
emit_32(1118560256);
emit_32(1113243648);
emit_32(1102938374);
emit_32(1118560256);
emit_32(1114267661);
emit_32(1102169244);
emit_32(1118560256);
emit_32(1115291648);
emit_32(1101791704);
emit_32(1118560256);
emit_32(1116000263);
emit_32(1101646581);
emit_32(1118560256);
emit_32(1116512256);
emit_32(1101112698);
emit_32(1118560256);
emit_32(1117024263);
emit_32(1101184998);
emit_32(1118560256);
emit_32(1117536256);
emit_32(1101989727);
emit_32(1118560256);
emit_32(1118048263);
emit_32(1102023229);
emit_32(1118560256);
emit_32(1118560256);
emit_32(1101345377);
emit_32(1118560256);
emit_32(1119072263);
emit_32(1101364199);
emit_32(1118560256);
emit_32(1119584256);
emit_32(1101345325);
emit_32(1118560256);
emit_32(1120096263);
emit_32(1101567780);
emit_32(1118560256);
emit_32(1120608322);
emit_32(1101948047);
emit_32(1118560256);
emit_32(1121120289);
emit_32(1102252343);
emit_32(1118560256);
emit_32(1121632256);
emit_32(1102278400);
emit_32(1118560256);
emit_32(1122144223);
emit_32(1102915882);
emit_32(1118560256);
emit_32(1122656322);
emit_32(1103545342);
emit_32(1118560256);
emit_32(1123168289);
emit_32(1104523873);
emit_32(1118560256);
emit_32(1123680256);
emit_32(1105840623);
emit_32(1118560256);
emit_32(1124132848);
emit_32(1107083500);
emit_32(1118560256);
emit_32(1124388897);
emit_32(1107781668);
emit_32(1118560256);
emit_32(1124644880);
emit_32(1108269990);
emit_32(1118560256);
emit_32(1124900864);
emit_32(1108523300);
emit_32(1118560256);
emit_32(1125156848);
emit_32(1109103110);
emit_32(1118560256);
emit_32(1125412897);
emit_32(1109825526);
emit_32(1118560256);
emit_32(1125668880);
emit_32(1110495330);
emit_32(1118560256);
emit_32(1125924864);
emit_32(1110756478);
emit_32(1118560256);
emit_32(1126180848);
emit_32(1111016630);
emit_32(1118560256);
emit_32(1126436897);
emit_32(1111283388);
emit_32(1118560256);
emit_32(1126692880);
emit_32(1111246530);
emit_32(1118560256);
emit_32(1126948864);
emit_32(1110841937);
emit_32(1118560256);
emit_32(1127204848);
emit_32(1110618826);
emit_32(1118560256);
emit_32(1127460897);
emit_32(1110342972);
emit_32(1118560256);
emit_32(1127716880);
emit_32(1109456191);
emit_32(1118560256);
emit_32(1127972864);
emit_32(1108985774);
emit_32(1118560256);
emit_32(1128228848);
emit_32(1108475956);
emit_32(1118560256);
emit_32(1128484897);
emit_32(1107767512);
emit_32(1118560256);
emit_32(1128740880);
emit_32(1107083552);
emit_32(1118560256);
emit_32(1128996864);
emit_32(1105634525);
emit_32(1118560256);
emit_32(1129252848);
emit_32(1104932871);
emit_32(1118560256);
emit_32(1129508897);
emit_32(1104170766);
emit_32(1118560256);
emit_32(1129764880);
emit_32(1103195904);
emit_32(1118560256);
emit_32(1130020864);
emit_32(1102135532);
emit_32(1118560256);
emit_32(1130276848);
emit_32(1101066089);
emit_32(1118560256);
emit_32(1130532897);
emit_32(1100669413);
emit_32(1118560256);
emit_32(1130788880);
emit_32(1099835795);
emit_32(1118560256);
emit_32(1131044864);
emit_32(1099072641);
emit_32(1118560256);
emit_32(1131300848);
emit_32(1097951976);
emit_32(1118560256);
emit_32(1131556897);
emit_32(1097998742);
emit_32(1118560256);
emit_32(1131812880);
emit_32(1097628595);
emit_32(1118560256);
emit_32(1132068864);
emit_32(1098095945);
emit_32(1118560256);
emit_32(1081737216);
emit_32(1099413271);
emit_32(1118048263);
emit_32(1090125824);
emit_32(1099851366);
emit_32(1118048263);
emit_32(1094418484);
emit_32(1100634810);
emit_32(1118048263);
emit_32(1098514432);
emit_32(1101543191);
emit_32(1118048263);
emit_32(1100759066);
emit_32(1102227020);
emit_32(1118048263);
emit_32(1102807040);
emit_32(1102623329);
emit_32(1118048263);
emit_32(1104855066);
emit_32(1102636122);
emit_32(1118048263);
emit_32(1106903040);
emit_32(1102855746);
emit_32(1118048263);
emit_32(1108123661);
emit_32(1103180228);
emit_32(1118048263);
emit_32(1109147648);
emit_32(1103670700);
emit_32(1118048263);
emit_32(1110171661);
emit_32(1104191894);
emit_32(1118048263);
emit_32(1111195648);
emit_32(1104328733);
emit_32(1118048263);
emit_32(1112219661);
emit_32(1103856769);
emit_32(1118048263);
emit_32(1113243648);
emit_32(1103570665);
emit_32(1118048263);
emit_32(1114267661);
emit_32(1103155744);
emit_32(1118048263);
emit_32(1115291648);
emit_32(1103141221);
emit_32(1118048263);
emit_32(1116000263);
emit_32(1102853230);
emit_32(1118048263);
emit_32(1116512256);
emit_32(1102033034);
emit_32(1118048263);
emit_32(1117024263);
emit_32(1102017724);
emit_32(1118048263);
emit_32(1117536256);
emit_32(1102380584);
emit_32(1118048263);
emit_32(1118048263);
emit_32(1102405698);
emit_32(1118048263);
emit_32(1118560256);
emit_32(1101754689);
emit_32(1118048263);
emit_32(1119072263);
emit_32(1101894202);
emit_32(1118048263);
emit_32(1119584256);
emit_32(1101906471);
emit_32(1118048263);
emit_32(1120096263);
emit_32(1102313056);
emit_32(1118048263);
emit_32(1120608322);
emit_32(1102601309);
emit_32(1118048263);
emit_32(1121120289);
emit_32(1102592606);
emit_32(1118048263);
emit_32(1121632256);
emit_32(1102703493);
emit_32(1118048263);
emit_32(1122144223);
emit_32(1102937378);
emit_32(1118048263);
emit_32(1122656322);
emit_32(1103504867);
emit_32(1118048263);
emit_32(1123168289);
emit_32(1104384675);
emit_32(1118048263);
emit_32(1123680256);
emit_32(1105635049);
emit_32(1118048263);
emit_32(1124132848);
emit_32(1106752255);
emit_32(1118048263);
emit_32(1124388897);
emit_32(1107767879);
emit_32(1118048263);
emit_32(1124644880);
emit_32(1108294474);
emit_32(1118048263);
emit_32(1124900864);
emit_32(1108613634);
emit_32(1118048263);
emit_32(1125156848);
emit_32(1109065177);
emit_32(1118048263);
emit_32(1125412897);
emit_32(1109930095);
emit_32(1118048263);
emit_32(1125668880);
emit_32(1110386383);
emit_32(1118048263);
emit_32(1125924864);
emit_32(1110751995);
emit_32(1118048263);
emit_32(1126180848);
emit_32(1111030602);
emit_32(1118048263);
emit_32(1126436897);
emit_32(1111233554);
emit_32(1118048263);
emit_32(1126692880);
emit_32(1111303704);
emit_32(1118048263);
emit_32(1126948864);
emit_32(1111031703);
emit_32(1118048263);
emit_32(1127204848);
emit_32(1110529488);
emit_32(1118048263);
emit_32(1127460897);
emit_32(1110208545);
emit_32(1118048263);
emit_32(1127716880);
emit_32(1109599375);
emit_32(1118048263);
emit_32(1127972864);
emit_32(1109300609);
emit_32(1118048263);
emit_32(1128228848);
emit_32(1108749189);
emit_32(1118048263);
emit_32(1128484897);
emit_32(1108160047);
emit_32(1118048263);
emit_32(1128740880);
emit_32(1107724180);
emit_32(1118048263);
emit_32(1128996864);
emit_32(1106714873);
emit_32(1118048263);
emit_32(1129252848);
emit_32(1104821512);
emit_32(1118048263);
emit_32(1129508897);
emit_32(1103852103);
emit_32(1118048263);
emit_32(1129764880);
emit_32(1103039771);
emit_32(1118048263);
emit_32(1130020864);
emit_32(1102286212);
emit_32(1118048263);
emit_32(1130276848);
emit_32(1101202509);
emit_32(1118048263);
emit_32(1130532897);
emit_32(1100589197);
emit_32(1118048263);
emit_32(1130788880);
emit_32(1100484811);
emit_32(1118048263);
emit_32(1131044864);
emit_32(1099835113);
emit_32(1118048263);
emit_32(1131300848);
emit_32(1098729600);
emit_32(1118048263);
emit_32(1131556897);
emit_32(1097121608);
emit_32(1118048263);
emit_32(1131812880);
emit_32(1098002203);
emit_32(1118048263);
emit_32(1132068864);
emit_32(1097770887);
emit_32(1118048263);
emit_32(1081737216);
emit_32(1100388447);
emit_32(1117536256);
emit_32(1090125824);
emit_32(1100757493);
emit_32(1117536256);
emit_32(1094418484);
emit_32(1101501091);
emit_32(1117536256);
emit_32(1098514432);
emit_32(1102103236);
emit_32(1117536256);
emit_32(1100759066);
emit_32(1102707845);
emit_32(1117536256);
emit_32(1102807040);
emit_32(1103009572);
emit_32(1117536256);
emit_32(1104855066);
emit_32(1103428898);
emit_32(1117536256);
emit_32(1106903040);
emit_32(1103146831);
emit_32(1117536256);
emit_32(1108123661);
emit_32(1103947576);
emit_32(1117536256);
emit_32(1109147648);
emit_32(1104597484);
emit_32(1117536256);
emit_32(1110171661);
emit_32(1104667424);
emit_32(1117536256);
emit_32(1111195648);
emit_32(1104486230);
emit_32(1117536256);
emit_32(1112219661);
emit_32(1104487068);
emit_32(1117536256);
emit_32(1113243648);
emit_32(1104896904);
emit_32(1117536256);
emit_32(1114267661);
emit_32(1104464524);
emit_32(1117536256);
emit_32(1115291648);
emit_32(1104222355);
emit_32(1117536256);
emit_32(1116000263);
emit_32(1103558974);
emit_32(1117536256);
emit_32(1116512256);
emit_32(1103033480);
emit_32(1117536256);
emit_32(1117024263);
emit_32(1102717544);
emit_32(1117536256);
emit_32(1117536256);
emit_32(1102634340);
emit_32(1117536256);
emit_32(1118048263);
emit_32(1102741976);
emit_32(1117536256);
emit_32(1118560256);
emit_32(1102625007);
emit_32(1117536256);
emit_32(1119072263);
emit_32(1102725618);
emit_32(1117536256);
emit_32(1119584256);
emit_32(1103254520);
emit_32(1117536256);
emit_32(1120096263);
emit_32(1103392722);
emit_32(1117536256);
emit_32(1120608322);
emit_32(1103322992);
emit_32(1117536256);
emit_32(1121120289);
emit_32(1103436395);
emit_32(1117536256);
emit_32(1121632256);
emit_32(1103376417);
emit_32(1117536256);
emit_32(1122144223);
emit_32(1103563325);
emit_32(1117536256);
emit_32(1122656322);
emit_32(1103992612);
emit_32(1117536256);
emit_32(1123168289);
emit_32(1104630514);
emit_32(1117536256);
emit_32(1123680256);
emit_32(1106116556);
emit_32(1117536256);
emit_32(1124132848);
emit_32(1106961236);
emit_32(1117536256);
emit_32(1124388897);
emit_32(1107803950);
emit_32(1117536256);
emit_32(1124644880);
emit_32(1108189276);
emit_32(1117536256);
emit_32(1124900864);
emit_32(1108506129);
emit_32(1117536256);
emit_32(1125156848);
emit_32(1109028792);
emit_32(1117536256);
emit_32(1125412897);
emit_32(1109715216);
emit_32(1117536256);
emit_32(1125668880);
emit_32(1110237171);
emit_32(1117536256);
emit_32(1125924864);
emit_32(1110769507);
emit_32(1117536256);
emit_32(1126180848);
emit_32(1111106100);
emit_32(1117536256);
emit_32(1126436897);
emit_32(1111271906);
emit_32(1117536256);
emit_32(1126692880);
emit_32(1111370210);
emit_32(1117536256);
emit_32(1126948864);
emit_32(1111065310);
emit_32(1117536256);
emit_32(1127204848);
emit_32(1110676210);
emit_32(1117536256);
emit_32(1127460897);
emit_32(1110374587);
emit_32(1117536256);
emit_32(1127716880);
emit_32(1110042162);
emit_32(1117536256);
emit_32(1127972864);
emit_32(1109530614);
emit_32(1117536256);
emit_32(1128228848);
emit_32(1108942678);
emit_32(1117536256);
emit_32(1128484897);
emit_32(1108422689);
emit_32(1117536256);
emit_32(1128740880);
emit_32(1108099491);
emit_32(1117536256);
emit_32(1128996864);
emit_32(1107404915);
emit_32(1117536256);
emit_32(1129252848);
emit_32(1105961366);
emit_32(1117536256);
emit_32(1129508897);
emit_32(1104014161);
emit_32(1117536256);
emit_32(1129764880);
emit_32(1102659977);
emit_32(1117536256);
emit_32(1130020864);
emit_32(1101498941);
emit_32(1117536256);
emit_32(1130276848);
emit_32(1100603667);
emit_32(1117536256);
emit_32(1130532897);
emit_32(1100248567);
emit_32(1117536256);
emit_32(1130788880);
emit_32(1100396993);
emit_32(1117536256);
emit_32(1131044864);
emit_32(1099775974);
emit_32(1117536256);
emit_32(1131300848);
emit_32(1098614781);
emit_32(1117536256);
emit_32(1131556897);
emit_32(1097165439);
emit_32(1117536256);
emit_32(1131812880);
emit_32(1096806092);
emit_32(1117536256);
emit_32(1132068864);
emit_32(1097532755);
emit_32(1117536256);
emit_32(1081737216);
emit_32(1101362836);
emit_32(1117024263);
emit_32(1090125824);
emit_32(1102440982);
emit_32(1117024263);
emit_32(1094418484);
emit_32(1102525602);
emit_32(1117024263);
emit_32(1098514432);
emit_32(1102772542);
emit_32(1117024263);
emit_32(1100759066);
emit_32(1102996623);
emit_32(1117024263);
emit_32(1102807040);
emit_32(1103394295);
emit_32(1117024263);
emit_32(1104855066);
emit_32(1103807853);
emit_32(1117024263);
emit_32(1106903040);
emit_32(1104063968);
emit_32(1117024263);
emit_32(1108123661);
emit_32(1104272477);
emit_32(1117024263);
emit_32(1109147648);
emit_32(1105094404);
emit_32(1117024263);
emit_32(1110171661);
emit_32(1105462297);
emit_32(1117024263);
emit_32(1111195648);
emit_32(1105615756);
emit_32(1117024263);
emit_32(1112219661);
emit_32(1105780539);
emit_32(1117024263);
emit_32(1113243648);
emit_32(1105949622);
emit_32(1117024263);
emit_32(1114267661);
emit_32(1105825523);
emit_32(1117024263);
emit_32(1115291648);
emit_32(1105325457);
emit_32(1117024263);
emit_32(1116000263);
emit_32(1104503217);
emit_32(1117024263);
emit_32(1116512256);
emit_32(1103914389);
emit_32(1117024263);
emit_32(1117024263);
emit_32(1103220703);
emit_32(1117024263);
emit_32(1117536256);
emit_32(1103554989);
emit_32(1117024263);
emit_32(1118048263);
emit_32(1103557663);
emit_32(1117024263);
emit_32(1118560256);
emit_32(1103000555);
emit_32(1117024263);
emit_32(1119072263);
emit_32(1103407455);
emit_32(1117024263);
emit_32(1119584256);
emit_32(1103934783);
emit_32(1117024263);
emit_32(1120096263);
emit_32(1103628861);
emit_32(1117024263);
emit_32(1120608322);
emit_32(1103876221);
emit_32(1117024263);
emit_32(1121120289);
emit_32(1104062762);
emit_32(1117024263);
emit_32(1121632256);
emit_32(1104076446);
emit_32(1117024263);
emit_32(1122144223);
emit_32(1104571479);
emit_32(1117024263);
emit_32(1122656322);
emit_32(1105134302);
emit_32(1117024263);
emit_32(1123168289);
emit_32(1105662312);
emit_32(1117024263);
emit_32(1123680256);
emit_32(1106251717);
emit_32(1117024263);
emit_32(1124132848);
emit_32(1107284512);
emit_32(1117024263);
emit_32(1124388897);
emit_32(1107873183);
emit_32(1117024263);
emit_32(1124644880);
emit_32(1108188149);
emit_32(1117024263);
emit_32(1124900864);
emit_32(1108443241);
emit_32(1117024263);
emit_32(1125156848);
emit_32(1109131028);
emit_32(1117024263);
emit_32(1125412897);
emit_32(1109732884);
emit_32(1117024263);
emit_32(1125668880);
emit_32(1110471632);
emit_32(1117024263);
emit_32(1125924864);
emit_32(1111024494);
emit_32(1117024263);
emit_32(1126180848);
emit_32(1111170666);
emit_32(1117024263);
emit_32(1126436897);
emit_32(1111345332);
emit_32(1117024263);
emit_32(1126692880);
emit_32(1111265011);
emit_32(1117024263);
emit_32(1126948864);
emit_32(1110964620);
emit_32(1117024263);
emit_32(1127204848);
emit_32(1110816430);
emit_32(1117024263);
emit_32(1127460897);
emit_32(1110708847);
emit_32(1117024263);
emit_32(1127716880);
emit_32(1110212162);
emit_32(1117024263);
emit_32(1127972864);
emit_32(1109715111);
emit_32(1117024263);
emit_32(1128228848);
emit_32(1108818579);
emit_32(1117024263);
emit_32(1128484897);
emit_32(1108483873);
emit_32(1117024263);
emit_32(1128740880);
emit_32(1108125627);
emit_32(1117024263);
emit_32(1128996864);
emit_32(1107598718);
emit_32(1117024263);
emit_32(1129252848);
emit_32(1106363390);
emit_32(1117024263);
emit_32(1129508897);
emit_32(1104237822);
emit_32(1117024263);
emit_32(1129764880);
emit_32(1102138258);
emit_32(1117024263);
emit_32(1130020864);
emit_32(1100193202);
emit_32(1117024263);
emit_32(1130276848);
emit_32(1099480433);
emit_32(1117024263);
emit_32(1130532897);
emit_32(1099613759);
emit_32(1117024263);
emit_32(1130788880);
emit_32(1099142005);
emit_32(1117024263);
emit_32(1131044864);
emit_32(1098613732);
emit_32(1117024263);
emit_32(1131300848);
emit_32(1097637718);
emit_32(1117024263);
emit_32(1131556897);
emit_32(1096434057);
emit_32(1117024263);
emit_32(1131812880);
emit_32(1095523684);
emit_32(1117024263);
emit_32(1132068864);
emit_32(1096168243);
emit_32(1117024263);
emit_32(1081737216);
emit_32(1102550401);
emit_32(1116512256);
emit_32(1090125824);
emit_32(1103281835);
emit_32(1116512256);
emit_32(1094418484);
emit_32(1103432620);
emit_32(1116512256);
emit_32(1098514432);
emit_32(1103624300);
emit_32(1116512256);
emit_32(1100759066);
emit_32(1103732880);
emit_32(1116512256);
emit_32(1102807040);
emit_32(1103772569);
emit_32(1116512256);
emit_32(1104855066);
emit_32(1104059145);
emit_32(1116512256);
emit_32(1106903040);
emit_32(1104733694);
emit_32(1116512256);
emit_32(1108123661);
emit_32(1105135927);
emit_32(1116512256);
emit_32(1109147648);
emit_32(1105641446);
emit_32(1116512256);
emit_32(1110171661);
emit_32(1106189117);
emit_32(1116512256);
emit_32(1111195648);
emit_32(1106590984);
emit_32(1116512256);
emit_32(1112219661);
emit_32(1106792730);
emit_32(1116512256);
emit_32(1113243648);
emit_32(1107103528);
emit_32(1116512256);
emit_32(1114267661);
emit_32(1107045751);
emit_32(1116512256);
emit_32(1115291648);
emit_32(1106493886);
emit_32(1116512256);
emit_32(1116000263);
emit_32(1105577011);
emit_32(1116512256);
emit_32(1116512256);
emit_32(1104601992);
emit_32(1116512256);
emit_32(1117024263);
emit_32(1103981498);
emit_32(1116512256);
emit_32(1117536256);
emit_32(1104213076);
emit_32(1116512256);
emit_32(1118048263);
emit_32(1103729577);
emit_32(1116512256);
emit_32(1118560256);
emit_32(1103354344);
emit_32(1116512256);
emit_32(1119072263);
emit_32(1103689836);
emit_32(1116512256);
emit_32(1119584256);
emit_32(1104224505);
emit_32(1116512256);
emit_32(1120096263);
emit_32(1104374714);
emit_32(1116512256);
emit_32(1120608322);
emit_32(1104188696);
emit_32(1116512256);
emit_32(1121120289);
emit_32(1104209773);
emit_32(1116512256);
emit_32(1121632256);
emit_32(1104973765);
emit_32(1116512256);
emit_32(1122144223);
emit_32(1105524110);
emit_32(1116512256);
emit_32(1122656322);
emit_32(1106275992);
emit_32(1116512256);
emit_32(1123168289);
emit_32(1106381373);
emit_32(1116512256);
emit_32(1123680256);
emit_32(1106763527);
emit_32(1116512256);
emit_32(1124132848);
emit_32(1107402293);
emit_32(1116512256);
emit_32(1124388897);
emit_32(1107816822);
emit_32(1116512256);
emit_32(1124644880);
emit_32(1108307293);
emit_32(1116512256);
emit_32(1124900864);
emit_32(1108759098);
emit_32(1116512256);
emit_32(1125156848);
emit_32(1109471632);
emit_32(1116512256);
emit_32(1125412897);
emit_32(1109900027);
emit_32(1116512256);
emit_32(1125668880);
emit_32(1110484111);
emit_32(1116512256);
emit_32(1125924864);
emit_32(1110873316);
emit_32(1116512256);
emit_32(1126180848);
emit_32(1111321923);
emit_32(1116512256);
emit_32(1126436897);
emit_32(1111520628);
emit_32(1116512256);
emit_32(1126692880);
emit_32(1111429507);
emit_32(1116512256);
emit_32(1126948864);
emit_32(1110992722);
emit_32(1116512256);
emit_32(1127204848);
emit_32(1110804503);
emit_32(1116512256);
emit_32(1127460897);
emit_32(1110532633);
emit_32(1116512256);
emit_32(1127716880);
emit_32(1110132130);
emit_32(1116512256);
emit_32(1127972864);
emit_32(1109531112);
emit_32(1116512256);
emit_32(1128228848);
emit_32(1108783425);
emit_32(1116512256);
emit_32(1128484897);
emit_32(1108534467);
emit_32(1116512256);
emit_32(1128740880);
emit_32(1108104918);
emit_32(1116512256);
emit_32(1128996864);
emit_32(1107580866);
emit_32(1116512256);
emit_32(1129252848);
emit_32(1106274314);
emit_32(1116512256);
emit_32(1129508897);
emit_32(1104539025);
emit_32(1116512256);
emit_32(1129764880);
emit_32(1102452516);
emit_32(1116512256);
emit_32(1130020864);
emit_32(1100238029);
emit_32(1116512256);
emit_32(1130276848);
emit_32(1098493670);
emit_32(1116512256);
emit_32(1130532897);
emit_32(1097538732);
emit_32(1116512256);
emit_32(1130788880);
emit_32(1097860435);
emit_32(1116512256);
emit_32(1131044864);
emit_32(1096806826);
emit_32(1116512256);
emit_32(1131300848);
emit_32(1095175137);
emit_32(1116512256);
emit_32(1131556897);
emit_32(1095179751);
emit_32(1116512256);
emit_32(1131812880);
emit_32(1094445538);
emit_32(1116512256);
emit_32(1132068864);
emit_32(1094491675);
emit_32(1116512256);
emit_32(1081737216);
emit_32(1103917954);
emit_32(1116000263);
emit_32(1090125824);
emit_32(1104214281);
emit_32(1116000263);
emit_32(1094418484);
emit_32(1104273211);
emit_32(1116000263);
emit_32(1098514432);
emit_32(1104389236);
emit_32(1116000263);
emit_32(1100759066);
emit_32(1104665746);
emit_32(1116000263);
emit_32(1102807040);
emit_32(1104683886);
emit_32(1116000263);
emit_32(1104855066);
emit_32(1104862354);
emit_32(1116000263);
emit_32(1106903040);
emit_32(1105668342);
emit_32(1116000263);
emit_32(1108123661);
emit_32(1106303097);
emit_32(1116000263);
emit_32(1109147648);
emit_32(1106378228);
emit_32(1116000263);
emit_32(1110171661);
emit_32(1106845054);
emit_32(1116000263);
emit_32(1111195648);
emit_32(1107149298);
emit_32(1116000263);
emit_32(1112219661);
emit_32(1107634553);
emit_32(1116000263);
emit_32(1113243648);
emit_32(1107721139);
emit_32(1116000263);
emit_32(1114267661);
emit_32(1107693457);
emit_32(1116000263);
emit_32(1115291648);
emit_32(1107040823);
emit_32(1116000263);
emit_32(1116000263);
emit_32(1106302678);
emit_32(1116000263);
emit_32(1116512256);
emit_32(1105678251);
emit_32(1116000263);
emit_32(1117024263);
emit_32(1104723575);
emit_32(1116000263);
emit_32(1117536256);
emit_32(1104584219);
emit_32(1116000263);
emit_32(1118048263);
emit_32(1104086408);
emit_32(1116000263);
emit_32(1118560256);
emit_32(1103762398);
emit_32(1116000263);
emit_32(1119072263);
emit_32(1104084573);
emit_32(1116000263);
emit_32(1119584256);
emit_32(1104925583);
emit_32(1116000263);
emit_32(1120096263);
emit_32(1104774273);
emit_32(1116000263);
emit_32(1120608322);
emit_32(1104591244);
emit_32(1116000263);
emit_32(1121120289);
emit_32(1104826283);
emit_32(1116000263);
emit_32(1121632256);
emit_32(1105545973);
emit_32(1116000263);
emit_32(1122144223);
emit_32(1105872919);
emit_32(1116000263);
emit_32(1122656322);
emit_32(1106423946);
emit_32(1116000263);
emit_32(1123168289);
emit_32(1107313243);
emit_32(1116000263);
emit_32(1123680256);
emit_32(1107471709);
emit_32(1116000263);
emit_32(1124132848);
emit_32(1107748166);
emit_32(1116000263);
emit_32(1124388897);
emit_32(1108035319);
emit_32(1116000263);
emit_32(1124644880);
emit_32(1108525135);
emit_32(1116000263);
emit_32(1124900864);
emit_32(1109011254);
emit_32(1116000263);
emit_32(1125156848);
emit_32(1109529539);
emit_32(1116000263);
emit_32(1125412897);
emit_32(1109929073);
emit_32(1116000263);
emit_32(1125668880);
emit_32(1110361244);
emit_32(1116000263);
emit_32(1125924864);
emit_32(1111018701);
emit_32(1116000263);
emit_32(1126180848);
emit_32(1111418392);
emit_32(1116000263);
emit_32(1126436897);
emit_32(1111581943);
emit_32(1116000263);
emit_32(1126692880);
emit_32(1111596912);
emit_32(1116000263);
emit_32(1126948864);
emit_32(1111336970);
emit_32(1116000263);
emit_32(1127204848);
emit_32(1110946611);
emit_32(1116000263);
emit_32(1127460897);
emit_32(1110462222);
emit_32(1116000263);
emit_32(1127716880);
emit_32(1109940398);
emit_32(1116000263);
emit_32(1127972864);
emit_32(1109463846);
emit_32(1116000263);
emit_32(1128228848);
emit_32(1108875307);
emit_32(1116000263);
emit_32(1128484897);
emit_32(1108586607);
emit_32(1116000263);
emit_32(1128740880);
emit_32(1108248442);
emit_32(1116000263);
emit_32(1128996864);
emit_32(1107558426);
emit_32(1116000263);
emit_32(1129252848);
emit_32(1106322391);
emit_32(1116000263);
emit_32(1129508897);
emit_32(1104389131);
emit_32(1116000263);
emit_32(1129764880);
emit_32(1102274835);
emit_32(1116000263);
emit_32(1130020864);
emit_32(1100247571);
emit_32(1116000263);
emit_32(1130276848);
emit_32(1098982516);
emit_32(1116000263);
emit_32(1130532897);
emit_32(1097852990);
emit_32(1116000263);
emit_32(1130788880);
emit_32(1097777388);
emit_32(1116000263);
emit_32(1131044864);
emit_32(1096162057);
emit_32(1116000263);
emit_32(1131300848);
emit_32(1093655750);
emit_32(1116000263);
emit_32(1131556897);
emit_32(1093255194);
emit_32(1116000263);
emit_32(1131812880);
emit_32(1092384509);
emit_32(1116000263);
emit_32(1132068864);
emit_32(1092614651);
emit_32(1116000263);
emit_32(1081737216);
emit_32(1104775951);
emit_32(1115291648);
emit_32(1090125824);
emit_32(1105273081);
emit_32(1115291648);
emit_32(1094418484);
emit_32(1105163033);
emit_32(1115291648);
emit_32(1098514432);
emit_32(1105037623);
emit_32(1115291648);
emit_32(1100759066);
emit_32(1105121038);
emit_32(1115291648);
emit_32(1102807040);
emit_32(1105312455);
emit_32(1115291648);
emit_32(1104855066);
emit_32(1106012694);
emit_32(1115291648);
emit_32(1106903040);
emit_32(1106371779);
emit_32(1115291648);
emit_32(1108123661);
emit_32(1106828329);
emit_32(1115291648);
emit_32(1109147648);
emit_32(1107099071);
emit_32(1115291648);
emit_32(1110171661);
emit_32(1107519026);
emit_32(1115291648);
emit_32(1111195648);
emit_32(1107598272);
emit_32(1115291648);
emit_32(1112219661);
emit_32(1107988605);
emit_32(1115291648);
emit_32(1113243648);
emit_32(1108084340);
emit_32(1115291648);
emit_32(1114267661);
emit_32(1107768272);
emit_32(1115291648);
emit_32(1115291648);
emit_32(1107585375);
emit_32(1115291648);
emit_32(1116000263);
emit_32(1107334686);
emit_32(1115291648);
emit_32(1116512256);
emit_32(1106384729);
emit_32(1115291648);
emit_32(1117024263);
emit_32(1105355237);
emit_32(1115291648);
emit_32(1117536256);
emit_32(1105239160);
emit_32(1115291648);
emit_32(1118048263);
emit_32(1104804472);
emit_32(1115291648);
emit_32(1118560256);
emit_32(1104295703);
emit_32(1115291648);
emit_32(1119072263);
emit_32(1104303725);
emit_32(1115291648);
emit_32(1119584256);
emit_32(1104739566);
emit_32(1115291648);
emit_32(1120096263);
emit_32(1104935911);
emit_32(1115291648);
emit_32(1120608322);
emit_32(1104793148);
emit_32(1115291648);
emit_32(1121120289);
emit_32(1105350990);
emit_32(1115291648);
emit_32(1121632256);
emit_32(1105666821);
emit_32(1115291648);
emit_32(1122144223);
emit_32(1106542854);
emit_32(1115291648);
emit_32(1122656322);
emit_32(1107330282);
emit_32(1115291648);
emit_32(1123168289);
emit_32(1107522722);
emit_32(1115291648);
emit_32(1123680256);
emit_32(1107991908);
emit_32(1115291648);
emit_32(1124132848);
emit_32(1108210273);
emit_32(1115291648);
emit_32(1124388897);
emit_32(1108506863);
emit_32(1115291648);
emit_32(1124644880);
emit_32(1108775220);
emit_32(1115291648);
emit_32(1124900864);
emit_32(1109189670);
emit_32(1115291648);
emit_32(1125156848);
emit_32(1109527233);
emit_32(1115291648);
emit_32(1125412897);
emit_32(1109974057);
emit_32(1115291648);
emit_32(1125668880);
emit_32(1110321240);
emit_32(1115291648);
emit_32(1125924864);
emit_32(1110734825);
emit_32(1115291648);
emit_32(1126180848);
emit_32(1111142197);
emit_32(1115291648);
emit_32(1126436897);
emit_32(1111340456);
emit_32(1115291648);
emit_32(1126692880);
emit_32(1111407224);
emit_32(1115291648);
emit_32(1126948864);
emit_32(1111510535);
emit_32(1115291648);
emit_32(1127204848);
emit_32(1111087042);
emit_32(1115291648);
emit_32(1127460897);
emit_32(1110641816);
emit_32(1115291648);
emit_32(1127716880);
emit_32(1110084734);
emit_32(1115291648);
emit_32(1127972864);
emit_32(1109478107);
emit_32(1115291648);
emit_32(1128228848);
emit_32(1108983703);
emit_32(1115291648);
emit_32(1128484897);
emit_32(1108396684);
emit_32(1115291648);
emit_32(1128740880);
emit_32(1108182303);
emit_32(1115291648);
emit_32(1128996864);
emit_32(1107304776);
emit_32(1115291648);
emit_32(1129252848);
emit_32(1105830714);
emit_32(1115291648);
emit_32(1129508897);
emit_32(1104926999);
emit_32(1115291648);
emit_32(1129764880);
emit_32(1103134825);
emit_32(1115291648);
emit_32(1130020864);
emit_32(1101331694);
emit_32(1115291648);
emit_32(1130276848);
emit_32(1100242905);
emit_32(1115291648);
emit_32(1130532897);
emit_32(1099575381);
emit_32(1115291648);
emit_32(1130788880);
emit_32(1098291610);
emit_32(1115291648);
emit_32(1131044864);
emit_32(1096472330);
emit_32(1115291648);
emit_32(1131300848);
emit_32(1094126875);
emit_32(1115291648);
emit_32(1131556897);
emit_32(1092334691);
emit_32(1115291648);
emit_32(1131812880);
emit_32(1091097822);
emit_32(1115291648);
emit_32(1132068864);
emit_32(1090977194);
emit_32(1115291648);
emit_32(1081737216);
emit_32(1105382343);
emit_32(1114267661);
emit_32(1090125824);
emit_32(1105662155);
emit_32(1114267661);
emit_32(1094418484);
emit_32(1105488092);
emit_32(1114267661);
emit_32(1098514432);
emit_32(1105646479);
emit_32(1114267661);
emit_32(1100759066);
emit_32(1105753591);
emit_32(1114267661);
emit_32(1102807040);
emit_32(1106409108);
emit_32(1114267661);
emit_32(1104855066);
emit_32(1106974396);
emit_32(1114267661);
emit_32(1106903040);
emit_32(1107565006);
emit_32(1114267661);
emit_32(1108123661);
emit_32(1107665538);
emit_32(1114267661);
emit_32(1109147648);
emit_32(1107918481);
emit_32(1114267661);
emit_32(1110171661);
emit_32(1108002577);
emit_32(1114267661);
emit_32(1111195648);
emit_32(1107850848);
emit_32(1114267661);
emit_32(1112219661);
emit_32(1108010494);
emit_32(1114267661);
emit_32(1113243648);
emit_32(1108185815);
emit_32(1114267661);
emit_32(1114267661);
emit_32(1108069791);
emit_32(1114267661);
emit_32(1115291648);
emit_32(1107943490);
emit_32(1114267661);
emit_32(1116000263);
emit_32(1107599924);
emit_32(1114267661);
emit_32(1116512256);
emit_32(1106557691);
emit_32(1114267661);
emit_32(1117024263);
emit_32(1106465102);
emit_32(1114267661);
emit_32(1117536256);
emit_32(1106678120);
emit_32(1114267661);
emit_32(1118048263);
emit_32(1106208044);
emit_32(1114267661);
emit_32(1118560256);
emit_32(1105390469);
emit_32(1114267661);
emit_32(1119072263);
emit_32(1105130632);
emit_32(1114267661);
emit_32(1119584256);
emit_32(1105068923);
emit_32(1114267661);
emit_32(1120096263);
emit_32(1105156532);
emit_32(1114267661);
emit_32(1120608322);
emit_32(1105073537);
emit_32(1114267661);
emit_32(1121120289);
emit_32(1105331225);
emit_32(1114267661);
emit_32(1121632256);
emit_32(1105964145);
emit_32(1114267661);
emit_32(1122144223);
emit_32(1106908702);
emit_32(1114267661);
emit_32(1122656322);
emit_32(1107699250);
emit_32(1114267661);
emit_32(1123168289);
emit_32(1107951485);
emit_32(1114267661);
emit_32(1123680256);
emit_32(1108124448);
emit_32(1114267661);
emit_32(1124132848);
emit_32(1108505998);
emit_32(1114267661);
emit_32(1124388897);
emit_32(1108644332);
emit_32(1114267661);
emit_32(1124644880);
emit_32(1108925429);
emit_32(1114267661);
emit_32(1124900864);
emit_32(1109130320);
emit_32(1114267661);
emit_32(1125156848);
emit_32(1109477189);
emit_32(1114267661);
emit_32(1125412897);
emit_32(1110047693);
emit_32(1114267661);
emit_32(1125668880);
emit_32(1110276833);
emit_32(1114267661);
emit_32(1125924864);
emit_32(1110533420);
emit_32(1114267661);
emit_32(1126180848);
emit_32(1110872975);
emit_32(1114267635);
emit_32(1126436897);
emit_32(1110877064);
emit_32(1114267635);
emit_32(1126692880);
emit_32(1111218743);
emit_32(1114267661);
emit_32(1126948864);
emit_32(1111252874);
emit_32(1114267661);
emit_32(1127204848);
emit_32(1110924067);
emit_32(1114267635);
emit_32(1127460897);
emit_32(1110454855);
emit_32(1114267635);
emit_32(1127716880);
emit_32(1109824949);
emit_32(1114267661);
emit_32(1127972864);
emit_32(1109367508);
emit_32(1114267661);
emit_32(1128228848);
emit_32(1108826469);
emit_32(1114267661);
emit_32(1128484897);
emit_32(1108105521);
emit_32(1114267661);
emit_32(1128740880);
emit_32(1107979010);
emit_32(1114267661);
emit_32(1128996864);
emit_32(1107413408);
emit_32(1114267661);
emit_32(1129252848);
emit_32(1106515224);
emit_32(1114267661);
emit_32(1129508897);
emit_32(1105576277);
emit_32(1114267661);
emit_32(1129764880);
emit_32(1104326584);
emit_32(1114267661);
emit_32(1130020864);
emit_32(1103294261);
emit_32(1114267661);
emit_32(1130276848);
emit_32(1102143501);
emit_32(1114267661);
emit_32(1130532897);
emit_32(1101094348);
emit_32(1114267661);
emit_32(1130788880);
emit_32(1100028785);
emit_32(1114267661);
emit_32(1131044864);
emit_32(1098592446);
emit_32(1114267661);
emit_32(1131300848);
emit_32(1095355492);
emit_32(1114267661);
emit_32(1131556897);
emit_32(1093903738);
emit_32(1114267661);
emit_32(1131812880);
emit_32(1093133979);
emit_32(1114267661);
emit_32(1132068864);
emit_32(1092040083);
emit_32(1114267661);
emit_32(1081737216);
emit_32(1105831238);
emit_32(1113243648);
emit_32(1090125824);
emit_32(1105941548);
emit_32(1113243648);
emit_32(1094418484);
emit_32(1106052330);
emit_32(1113243648);
emit_32(1098514432);
emit_32(1106181987);
emit_32(1113243648);
emit_32(1100759066);
emit_32(1106947762);
emit_32(1113243648);
emit_32(1102807040);
emit_32(1107434170);
emit_32(1113243648);
emit_32(1104855066);
emit_32(1107922597);
emit_32(1113243648);
emit_32(1106903040);
emit_32(1108070236);
emit_32(1113243648);
emit_32(1108123661);
emit_32(1108318408);
emit_32(1113243648);
emit_32(1109147648);
emit_32(1108398991);
emit_32(1113243648);
emit_32(1110171661);
emit_32(1108455247);
emit_32(1113243648);
emit_32(1111195648);
emit_32(1108380929);
emit_32(1113243648);
emit_32(1112219661);
emit_32(1108193129);
emit_32(1113243648);
emit_32(1113243648);
emit_32(1108214940);
emit_32(1113243648);
emit_32(1114267661);
emit_32(1108368189);
emit_32(1113243648);
emit_32(1115291648);
emit_32(1108351228);
emit_32(1113243648);
emit_32(1116000263);
emit_32(1108058728);
emit_32(1113243648);
emit_32(1116512256);
emit_32(1107523561);
emit_32(1113243648);
emit_32(1117024263);
emit_32(1107704624);
emit_32(1113243648);
emit_32(1117536256);
emit_32(1107780384);
emit_32(1113243648);
emit_32(1118048263);
emit_32(1107523797);
emit_32(1113243648);
emit_32(1118560256);
emit_32(1106889671);
emit_32(1113243648);
emit_32(1119072263);
emit_32(1105955127);
emit_32(1113243648);
emit_32(1119584256);
emit_32(1105678513);
emit_32(1113243648);
emit_32(1120096263);
emit_32(1105031175);
emit_32(1113243648);
emit_32(1120608322);
emit_32(1105177346);
emit_32(1113243648);
emit_32(1121120289);
emit_32(1105487043);
emit_32(1113243648);
emit_32(1121632256);
emit_32(1105785782);
emit_32(1113243648);
emit_32(1122144223);
emit_32(1106626950);
emit_32(1113243648);
emit_32(1122656322);
emit_32(1107401638);
emit_32(1113243648);
emit_32(1123168289);
emit_32(1107915047);
emit_32(1113243648);
emit_32(1123680256);
emit_32(1108256070);
emit_32(1113243648);
emit_32(1124132848);
emit_32(1108654529);
emit_32(1113243648);
emit_32(1124388897);
emit_32(1108830034);
emit_32(1113243648);
emit_32(1124644880);
emit_32(1108955156);
emit_32(1113243648);
emit_32(1124900864);
emit_32(1109136769);
emit_32(1113243648);
emit_32(1125156848);
emit_32(1109352907);
emit_32(1113243648);
emit_32(1125412897);
emit_32(1109748534);
emit_32(1113243648);
emit_32(1125668880);
emit_32(1109939926);
emit_32(1113243648);
emit_32(1125924864);
emit_32(1110036867);
emit_32(1113243648);
emit_32(1126180848);
emit_32(1110259401);
emit_32(1113243648);
emit_32(1126436897);
emit_32(1110514257);
emit_32(1113243648);
emit_32(1126692880);
emit_32(1110728167);
emit_32(1113243648);
emit_32(1126948864);
emit_32(1110690470);
emit_32(1113243648);
emit_32(1127204848);
emit_32(1110543172);
emit_32(1113243648);
emit_32(1127460897);
emit_32(1110206867);
emit_32(1113243648);
emit_32(1127716880);
emit_32(1109792994);
emit_32(1113243648);
emit_32(1127972864);
emit_32(1109392779);
emit_32(1113243648);
emit_32(1128228848);
emit_32(1108657596);
emit_32(1113243648);
emit_32(1128484897);
emit_32(1108142902);
emit_32(1113243648);
emit_32(1128740880);
emit_32(1107935625);
emit_32(1113243648);
emit_32(1128996864);
emit_32(1107490216);
emit_32(1113243648);
emit_32(1129252848);
emit_32(1107021844);
emit_32(1113243648);
emit_32(1129508897);
emit_32(1106216328);
emit_32(1113243648);
emit_32(1129764880);
emit_32(1105553103);
emit_32(1113243648);
emit_32(1130020864);
emit_32(1104695106);
emit_32(1113243648);
emit_32(1130276848);
emit_32(1103352404);
emit_32(1113243648);
emit_32(1130532897);
emit_32(1101904950);
emit_32(1113243648);
emit_32(1130788880);
emit_32(1101020476);
emit_32(1113243648);
emit_32(1131044864);
emit_32(1099594623);
emit_32(1113243648);
emit_32(1131300848);
emit_32(1097008782);
emit_32(1113243648);
emit_32(1131556897);
emit_32(1094881640);
emit_32(1113243648);
emit_32(1131812880);
emit_32(1093566726);
emit_32(1113243648);
emit_32(1132068864);
emit_32(1093310244);
emit_32(1113243648);
emit_32(1081737216);
emit_32(1106473438);
emit_32(1112219661);
emit_32(1090125824);
emit_32(1106755138);
emit_32(1112219661);
emit_32(1094418484);
emit_32(1106932662);
emit_32(1112219661);
emit_32(1098514432);
emit_32(1107310071);
emit_32(1112219661);
emit_32(1100759066);
emit_32(1107799179);
emit_32(1112219661);
emit_32(1102807040);
emit_32(1107999693);
emit_32(1112219661);
emit_32(1104855066);
emit_32(1108293059);
emit_32(1112219661);
emit_32(1106903040);
emit_32(1108560839);
emit_32(1112219661);
emit_32(1108123661);
emit_32(1108867783);
emit_32(1112219661);
emit_32(1109147648);
emit_32(1108932769);
emit_32(1112219661);
emit_32(1110171661);
emit_32(1108709527);
emit_32(1112219661);
emit_32(1111195648);
emit_32(1108681661);
emit_32(1112219661);
emit_32(1112219661);
emit_32(1108461250);
emit_32(1112219661);
emit_32(1113243648);
emit_32(1108501751);
emit_32(1112219661);
emit_32(1114267661);
emit_32(1108538058);
emit_32(1112219661);
emit_32(1115291648);
emit_32(1108506155);
emit_32(1112219661);
emit_32(1116000263);
emit_32(1108331069);
emit_32(1112219661);
emit_32(1116512256);
emit_32(1108130713);
emit_32(1112219661);
emit_32(1117024263);
emit_32(1108289153);
emit_32(1112219661);
emit_32(1117536256);
emit_32(1108320872);
emit_32(1112219661);
emit_32(1118048263);
emit_32(1108083946);
emit_32(1112219661);
emit_32(1118560256);
emit_32(1107747196);
emit_32(1112219661);
emit_32(1119072263);
emit_32(1107465942);
emit_32(1112219661);
emit_32(1119584256);
emit_32(1106748480);
emit_32(1112219661);
emit_32(1120096263);
emit_32(1105589856);
emit_32(1112219661);
emit_32(1120608322);
emit_32(1105803398);
emit_32(1112219661);
emit_32(1121120289);
emit_32(1106245426);
emit_32(1112219661);
emit_32(1121632256);
emit_32(1106538345);
emit_32(1112219661);
emit_32(1122144223);
emit_32(1107136191);
emit_32(1112219661);
emit_32(1122656322);
emit_32(1107495066);
emit_32(1112219661);
emit_32(1123168289);
emit_32(1107886552);
emit_32(1112219661);
emit_32(1123680256);
emit_32(1108441668);
emit_32(1112219661);
emit_32(1124132848);
emit_32(1108593266);
emit_32(1112219661);
emit_32(1124388897);
emit_32(1108683470);
emit_32(1112219661);
emit_32(1124644880);
emit_32(1108825211);
emit_32(1112219661);
emit_32(1124900864);
emit_32(1108891271);
emit_32(1112219661);
emit_32(1125156848);
emit_32(1109395715);
emit_32(1112219661);
emit_32(1125412897);
emit_32(1109608864);
emit_32(1112219661);
emit_32(1125668880);
emit_32(1110023576);
emit_32(1112219661);
emit_32(1125924864);
emit_32(1110077237);
emit_32(1112219661);
emit_32(1126180848);
emit_32(1110323678);
emit_32(1112219661);
emit_32(1126436897);
emit_32(1110319510);
emit_32(1112219661);
emit_32(1126692880);
emit_32(1110497559);
emit_32(1112219635);
emit_32(1126948864);
emit_32(1110356630);
emit_32(1112219661);
emit_32(1127204848);
emit_32(1110231745);
emit_32(1112219661);
emit_32(1127460897);
emit_32(1110168568);
emit_32(1112219661);
emit_32(1127716880);
emit_32(1109786440);
emit_32(1112219661);
emit_32(1127972864);
emit_32(1109264984);
emit_32(1112219661);
emit_32(1128228848);
emit_32(1108914445);
emit_32(1112219661);
emit_32(1128484897);
emit_32(1108210640);
emit_32(1112219661);
emit_32(1128740880);
emit_32(1107987897);
emit_32(1112219661);
emit_32(1128996864);
emit_32(1107869644);
emit_32(1112219661);
emit_32(1129252848);
emit_32(1107326534);
emit_32(1112219661);
emit_32(1129508897);
emit_32(1106725831);
emit_32(1112219661);
emit_32(1129764880);
emit_32(1106425466);
emit_32(1112219661);
emit_32(1130020864);
emit_32(1105264955);
emit_32(1112219661);
emit_32(1130276848);
emit_32(1103574860);
emit_32(1112219661);
emit_32(1130532897);
emit_32(1102181460);
emit_32(1112219661);
emit_32(1130788880);
emit_32(1101485677);
emit_32(1112219661);
emit_32(1131044864);
emit_32(1100402288);
emit_32(1112219661);
emit_32(1131300848);
emit_32(1098898421);
emit_32(1112219661);
emit_32(1131556897);
emit_32(1095522425);
emit_32(1112219661);
emit_32(1131812880);
emit_32(1094313732);
emit_32(1112219661);
emit_32(1132068864);
emit_32(1094995201);
emit_32(1112219661);
emit_32(1081737216);
emit_32(1106707585);
emit_32(1111195648);
emit_32(1090125824);
emit_32(1107420879);
emit_32(1111195648);
emit_32(1094418484);
emit_32(1107741455);
emit_32(1111195648);
emit_32(1098514432);
emit_32(1108119388);
emit_32(1111195648);
emit_32(1100759066);
emit_32(1108616649);
emit_32(1111195648);
emit_32(1102807040);
emit_32(1108965851);
emit_32(1111195648);
emit_32(1104855066);
emit_32(1109029919);
emit_32(1111195648);
emit_32(1106903040);
emit_32(1109125602);
emit_32(1111195648);
emit_32(1108123661);
emit_32(1109390551);
emit_32(1111195648);
emit_32(1109147648);
emit_32(1109477215);
emit_32(1111195648);
emit_32(1110171661);
emit_32(1109385334);
emit_32(1111195648);
emit_32(1111195648);
emit_32(1109314608);
emit_32(1111195648);
emit_32(1112219661);
emit_32(1109240919);
emit_32(1111195648);
emit_32(1113243648);
emit_32(1108946400);
emit_32(1111195648);
emit_32(1114267661);
emit_32(1108953006);
emit_32(1111195648);
emit_32(1115291648);
emit_32(1109031911);
emit_32(1111195648);
emit_32(1116000263);
emit_32(1108925062);
emit_32(1111195648);
emit_32(1116512256);
emit_32(1108595887);
emit_32(1111195648);
emit_32(1117024263);
emit_32(1108683941);
emit_32(1111195648);
emit_32(1117536256);
emit_32(1108833809);
emit_32(1111195648);
emit_32(1118048263);
emit_32(1108582282);
emit_32(1111195648);
emit_32(1118560256);
emit_32(1108393093);
emit_32(1111195648);
emit_32(1119072263);
emit_32(1108034008);
emit_32(1111195648);
emit_32(1119584256);
emit_32(1107578926);
emit_32(1111195648);
emit_32(1120096263);
emit_32(1106764313);
emit_32(1111195648);
emit_32(1120608322);
emit_32(1106737365);
emit_32(1111195648);
emit_32(1121120289);
emit_32(1107324568);
emit_32(1111195648);
emit_32(1121632256);
emit_32(1107570511);
emit_32(1111195648);
emit_32(1122144223);
emit_32(1107538818);
emit_32(1111195648);
emit_32(1122656322);
emit_32(1107646926);
emit_32(1111195648);
emit_32(1123168289);
emit_32(1107876984);
emit_32(1111195648);
emit_32(1123680256);
emit_32(1108102060);
emit_32(1111195648);
emit_32(1124132848);
emit_32(1108560812);
emit_32(1111195648);
emit_32(1124388897);
emit_32(1108645328);
emit_32(1111195648);
emit_32(1124644880);
emit_32(1108748770);
emit_32(1111195648);
emit_32(1124900864);
emit_32(1109085782);
emit_32(1111195648);
emit_32(1125156848);
emit_32(1109583226);
emit_32(1111195648);
emit_32(1125412897);
emit_32(1109638486);
emit_32(1111195648);
emit_32(1125668880);
emit_32(1110035425);
emit_32(1111195648);
emit_32(1125924864);
emit_32(1110433989);
emit_32(1111195648);
emit_32(1126180848);
emit_32(1110499420);
emit_32(1111195648);
emit_32(1126436897);
emit_32(1110684860);
emit_32(1111195648);
emit_32(1126692880);
emit_32(1110426858);
emit_32(1111195648);
emit_32(1126948864);
emit_32(1110251405);
emit_32(1111195648);
emit_32(1127204848);
emit_32(1110246503);
emit_32(1111195648);
emit_32(1127460897);
emit_32(1110057366);
emit_32(1111195648);
emit_32(1127716880);
emit_32(1109702135);
emit_32(1111195648);
emit_32(1127972864);
emit_32(1109224404);
emit_32(1111195648);
emit_32(1128228848);
emit_32(1108823035);
emit_32(1111195648);
emit_32(1128484897);
emit_32(1108466703);
emit_32(1111195648);
emit_32(1128740880);
emit_32(1108265009);
emit_32(1111195648);
emit_32(1128996864);
emit_32(1108131919);
emit_32(1111195648);
emit_32(1129252848);
emit_32(1107543668);
emit_32(1111195648);
emit_32(1129508897);
emit_32(1106964749);
emit_32(1111195648);
emit_32(1129764880);
emit_32(1106629467);
emit_32(1111195648);
emit_32(1130020864);
emit_32(1105373587);
emit_32(1111195648);
emit_32(1130276848);
emit_32(1103657645);
emit_32(1111195648);
emit_32(1130532897);
emit_32(1103203244);
emit_32(1111195648);
emit_32(1130788880);
emit_32(1102255384);
emit_32(1111195648);
emit_32(1131044864);
emit_32(1100737203);
emit_32(1111195648);
emit_32(1131300848);
emit_32(1099366557);
emit_32(1111195648);
emit_32(1131556897);
emit_32(1096754817);
emit_32(1111195648);
emit_32(1131812880);
emit_32(1096073871);
emit_32(1111195648);
emit_32(1132068864);
emit_32(1096026581);
emit_32(1111195648);
emit_32(1081737216);
emit_32(1107240944);
emit_32(1110171661);
emit_32(1090125824);
emit_32(1107823611);
emit_32(1110171661);
emit_32(1094418484);
emit_32(1108408821);
emit_32(1110171661);
emit_32(1098514432);
emit_32(1108701925);
emit_32(1110171661);
emit_32(1100759066);
emit_32(1109285326);
emit_32(1110171661);
emit_32(1102807040);
emit_32(1109681609);
emit_32(1110171661);
emit_32(1104855066);
emit_32(1109940345);
emit_32(1110171661);
emit_32(1106903040);
emit_32(1109939952);
emit_32(1110171661);
emit_32(1108123661);
emit_32(1109971121);
emit_32(1110171661);
emit_32(1109147648);
emit_32(1110303834);
emit_32(1110171661);
emit_32(1110171661);
emit_32(1110120962);
emit_32(1110171661);
emit_32(1111195648);
emit_32(1110000979);
emit_32(1110171661);
emit_32(1112219661);
emit_32(1109972484);
emit_32(1110171661);
emit_32(1113243648);
emit_32(1109736686);
emit_32(1110171661);
emit_32(1114267661);
emit_32(1109619612);
emit_32(1110171661);
emit_32(1115291648);
emit_32(1109518608);
emit_32(1110171661);
emit_32(1116000263);
emit_32(1109430003);
emit_32(1110171661);
emit_32(1116512256);
emit_32(1109161909);
emit_32(1110171661);
emit_32(1117024263);
emit_32(1109167492);
emit_32(1110171661);
emit_32(1117536256);
emit_32(1109168515);
emit_32(1110171661);
emit_32(1118048263);
emit_32(1109105626);
emit_32(1110171661);
emit_32(1118560256);
emit_32(1108756686);
emit_32(1110171661);
emit_32(1119072263);
emit_32(1108552555);
emit_32(1110171661);
emit_32(1119584256);
emit_32(1108023286);
emit_32(1110171661);
emit_32(1120096263);
emit_32(1107602178);
emit_32(1110171661);
emit_32(1120608322);
emit_32(1107405649);
emit_32(1110171661);
emit_32(1121120289);
emit_32(1107570616);
emit_32(1110171661);
emit_32(1121632256);
emit_32(1107660164);
emit_32(1110171661);
emit_32(1122144223);
emit_32(1107756004);
emit_32(1110171661);
emit_32(1122656322);
emit_32(1107706800);
emit_32(1110171661);
emit_32(1123168289);
emit_32(1107795667);
emit_32(1110171661);
emit_32(1123680256);
emit_32(1108061218);
emit_32(1110171661);
emit_32(1124132848);
emit_32(1108159365);
emit_32(1110171661);
emit_32(1124388897);
emit_32(1108652615);
emit_32(1110171661);
emit_32(1124644880);
emit_32(1108895151);
emit_32(1110171661);
emit_32(1124900864);
emit_32(1109068900);
emit_32(1110171661);
emit_32(1125156848);
emit_32(1109317911);
emit_32(1110171661);
emit_32(1125412897);
emit_32(1109583646);
emit_32(1110171661);
emit_32(1125668880);
emit_32(1109982314);
emit_32(1110171661);
emit_32(1125924864);
emit_32(1110319589);
emit_32(1110171661);
emit_32(1126180848);
emit_32(1110618800);
emit_32(1110171635);
emit_32(1126436897);
emit_32(1110589833);
emit_32(1110171661);
emit_32(1126692880);
emit_32(1110601236);
emit_32(1110171661);
emit_32(1126948864);
emit_32(1110238219);
emit_32(1110171661);
emit_32(1127204848);
emit_32(1110066804);
emit_32(1110171661);
emit_32(1127460897);
emit_32(1109910933);
emit_32(1110171661);
emit_32(1127716880);
emit_32(1109484739);
emit_32(1110171661);
emit_32(1127972864);
emit_32(1109107907);
emit_32(1110171661);
emit_32(1128228848);
emit_32(1108797633);
emit_32(1110171661);
emit_32(1128484897);
emit_32(1108483428);
emit_32(1110171661);
emit_32(1128740880);
emit_32(1108328081);
emit_32(1110171661);
emit_32(1128996864);
emit_32(1108125627);
emit_32(1110171661);
emit_32(1129252848);
emit_32(1107731808);
emit_32(1110171661);
emit_32(1129508897);
emit_32(1106917982);
emit_32(1110171661);
emit_32(1129764880);
emit_32(1106313688);
emit_32(1110171661);
emit_32(1130020864);
emit_32(1105521174);
emit_32(1110171661);
emit_32(1130276848);
emit_32(1104211450);
emit_32(1110171661);
emit_32(1130532897);
emit_32(1103253052);
emit_32(1110171661);
emit_32(1130788880);
emit_32(1102325744);
emit_32(1110171661);
emit_32(1131044864);
emit_32(1101081451);
emit_32(1110171661);
emit_32(1131300848);
emit_32(1099684171);
emit_32(1110171661);
emit_32(1131556897);
emit_32(1098145962);
emit_32(1110171661);
emit_32(1131812880);
emit_32(1096588198);
emit_32(1110171661);
emit_32(1132068864);
emit_32(1095942590);
emit_32(1110171661);
emit_32(1081737216);
emit_32(1108060956);
emit_32(1109147648);
emit_32(1090125824);
emit_32(1108546971);
emit_32(1109147648);
emit_32(1094418484);
emit_32(1109017939);
emit_32(1109147648);
emit_32(1098514432);
emit_32(1109407144);
emit_32(1109147648);
emit_32(1100759066);
emit_32(1109980401);
emit_32(1109147648);
emit_32(1102807040);
emit_32(1110240972);
emit_32(1109147648);
emit_32(1104855066);
emit_32(1110658358);
emit_32(1109147648);
emit_32(1106903040);
emit_32(1110751524);
emit_32(1109147648);
emit_32(1108123661);
emit_32(1110695844);
emit_32(1109147648);
emit_32(1109147648);
emit_32(1110721089);
emit_32(1109147648);
emit_32(1110171661);
emit_32(1110727406);
emit_32(1109147648);
emit_32(1111195648);
emit_32(1110842173);
emit_32(1109147648);
emit_32(1112219661);
emit_32(1110770765);
emit_32(1109147648);
emit_32(1113243648);
emit_32(1110489091);
emit_32(1109147648);
emit_32(1114267661);
emit_32(1110249518);
emit_32(1109147648);
emit_32(1115291648);
emit_32(1110116087);
emit_32(1109147648);
emit_32(1116000263);
emit_32(1110026722);
emit_32(1109147648);
emit_32(1116512256);
emit_32(1109757343);
emit_32(1109147648);
emit_32(1117024263);
emit_32(1109707325);
emit_32(1109147648);
emit_32(1117536256);
emit_32(1109736109);
emit_32(1109147648);
emit_32(1118048263);
emit_32(1109670940);
emit_32(1109147648);
emit_32(1118560256);
emit_32(1109409425);
emit_32(1109147648);
emit_32(1119072263);
emit_32(1109060459);
emit_32(1109147648);
emit_32(1119584256);
emit_32(1108683601);
emit_32(1109147648);
emit_32(1120096263);
emit_32(1108291643);
emit_32(1109147648);
emit_32(1120608322);
emit_32(1108134645);
emit_32(1109147648);
emit_32(1121120289);
emit_32(1107726382);
emit_32(1109147648);
emit_32(1121632256);
emit_32(1107627056);
emit_32(1109147648);
emit_32(1122144223);
emit_32(1107778260);
emit_32(1109147648);
emit_32(1122656322);
emit_32(1108018568);
emit_32(1109147648);
emit_32(1123168289);
emit_32(1107783031);
emit_32(1109147648);
emit_32(1123680256);
emit_32(1108023470);
emit_32(1109147648);
emit_32(1124132848);
emit_32(1108274551);
emit_32(1109147648);
emit_32(1124388897);
emit_32(1108502721);
emit_32(1109147648);
emit_32(1124644880);
emit_32(1108792679);
emit_32(1109147648);
emit_32(1124900864);
emit_32(1108934997);
emit_32(1109147648);
emit_32(1125156848);
emit_32(1109183483);
emit_32(1109147648);
emit_32(1125412897);
emit_32(1109454645);
emit_32(1109147648);
emit_32(1125668880);
emit_32(1109678699);
emit_32(1109147648);
emit_32(1125924864);
emit_32(1110022658);
emit_32(1109147648);
emit_32(1126180848);
emit_32(1110147151);
emit_32(1109147648);
emit_32(1126436897);
emit_32(1110222596);
emit_32(1109147648);
emit_32(1126692880);
emit_32(1110347035);
emit_32(1109147648);
emit_32(1126948864);
emit_32(1110235231);
emit_32(1109147648);
emit_32(1127204848);
emit_32(1110061194);
emit_32(1109147648);
emit_32(1127460897);
emit_32(1109745022);
emit_32(1109147648);
emit_32(1127716880);
emit_32(1109246162);
emit_32(1109147648);
emit_32(1127972864);
emit_32(1109124003);
emit_32(1109147648);
emit_32(1128228848);
emit_32(1108700011);
emit_32(1109147648);
emit_32(1128484897);
emit_32(1108308525);
emit_32(1109147648);
emit_32(1128740880);
emit_32(1108062844);
emit_32(1109147648);
emit_32(1128996864);
emit_32(1107977306);
emit_32(1109147648);
emit_32(1129252848);
emit_32(1107731205);
emit_32(1109147648);
emit_32(1129508897);
emit_32(1107357781);
emit_32(1109147648);
emit_32(1129764880);
emit_32(1106463529);
emit_32(1109147648);
emit_32(1130020864);
emit_32(1105450081);
emit_32(1109147648);
emit_32(1130276848);
emit_32(1104493307);
emit_32(1109147648);
emit_32(1130532897);
emit_32(1103358434);
emit_32(1109147648);
emit_32(1130788880);
emit_32(1102558632);
emit_32(1109147648);
emit_32(1131044864);
emit_32(1101338404);
emit_32(1109147648);
emit_32(1131300848);
emit_32(1100196558);
emit_32(1109147648);
emit_32(1131556897);
emit_32(1099061264);
emit_32(1109147648);
emit_32(1131812880);
emit_32(1096545521);
emit_32(1109147648);
emit_32(1132068864);
emit_32(1096018716);
emit_32(1109147648);
emit_32(1081737216);
emit_32(1109011386);
emit_32(1108123661);
emit_32(1090125824);
emit_32(1109203904);
emit_32(1108123661);
emit_32(1094418484);
emit_32(1109519263);
emit_32(1108123661);
emit_32(1098514432);
emit_32(1109988842);
emit_32(1108123661);
emit_32(1100759066);
emit_32(1110461461);
emit_32(1108123635);
emit_32(1102807040);
emit_32(1110941919);
emit_32(1108123635);
emit_32(1104855066);
emit_32(1111344415);
emit_32(1108123661);
emit_32(1106903040);
emit_32(1111428956);
emit_32(1108123661);
emit_32(1108123661);
emit_32(1111187862);
emit_32(1108123635);
emit_32(1109147648);
emit_32(1111258851);
emit_32(1108123635);
emit_32(1110171661);
emit_32(1111121199);
emit_32(1108123661);
emit_32(1111195648);
emit_32(1111334951);
emit_32(1108123661);
emit_32(1112219661);
emit_32(1111280871);
emit_32(1108123635);
emit_32(1113243648);
emit_32(1111290597);
emit_32(1108123635);
emit_32(1114267661);
emit_32(1111219660);
emit_32(1108123661);
emit_32(1115291648);
emit_32(1110791212);
emit_32(1108123661);
emit_32(1116000263);
emit_32(1110556043);
emit_32(1108123635);
emit_32(1116512256);
emit_32(1110407643);
emit_32(1108123635);
emit_32(1117024263);
emit_32(1110379174);
emit_32(1108123661);
emit_32(1117536256);
emit_32(1110347979);
emit_32(1108123661);
emit_32(1118048263);
emit_32(1110338280);
emit_32(1108123661);
emit_32(1118560256);
emit_32(1109911536);
emit_32(1108123661);
emit_32(1119072263);
emit_32(1109549908);
emit_32(1108123661);
emit_32(1119584256);
emit_32(1109081142);
emit_32(1108123661);
emit_32(1120096263);
emit_32(1108718492);
emit_32(1108123661);
emit_32(1120608322);
emit_32(1108472470);
emit_32(1108123661);
emit_32(1121120289);
emit_32(1108029604);
emit_32(1108123661);
emit_32(1121632256);
emit_32(1107454879);
emit_32(1108123661);
emit_32(1122144223);
emit_32(1107399252);
emit_32(1108123661);
emit_32(1122656322);
emit_32(1107660793);
emit_32(1108123661);
emit_32(1123168289);
emit_32(1107749241);
emit_32(1108123661);
emit_32(1123680256);
emit_32(1107770448);
emit_32(1108123661);
emit_32(1124132848);
emit_32(1108146730);
emit_32(1108123661);
emit_32(1124388897);
emit_32(1108341608);
emit_32(1108123661);
emit_32(1124644880);
emit_32(1108443057);
emit_32(1108123661);
emit_32(1124900864);
emit_32(1108765442);
emit_32(1108123661);
emit_32(1125156848);
emit_32(1108966061);
emit_32(1108123661);
emit_32(1125412897);
emit_32(1109234287);
emit_32(1108123661);
emit_32(1125668880);
emit_32(1109396423);
emit_32(1108123661);
emit_32(1125924864);
emit_32(1109622050);
emit_32(1108123661);
emit_32(1126180848);
emit_32(1109584826);
emit_32(1108123661);
emit_32(1126436897);
emit_32(1109832945);
emit_32(1108123661);
emit_32(1126692880);
emit_32(1109962759);
emit_32(1108123661);
emit_32(1126948864);
emit_32(1109897773);
emit_32(1108123661);
emit_32(1127204848);
emit_32(1109645800);
emit_32(1108123661);
emit_32(1127460897);
emit_32(1109215386);
emit_32(1108123661);
emit_32(1127716880);
emit_32(1108859027);
emit_32(1108123661);
emit_32(1127972864);
emit_32(1108683050);
emit_32(1108123661);
emit_32(1128228848);
emit_32(1108384704);
emit_32(1108123661);
emit_32(1128484897);
emit_32(1108232031);
emit_32(1108123661);
emit_32(1128740880);
emit_32(1108097027);
emit_32(1108123661);
emit_32(1128996864);
emit_32(1107779178);
emit_32(1108123661);
emit_32(1129252848);
emit_32(1107602938);
emit_32(1108123661);
emit_32(1129508897);
emit_32(1107406278);
emit_32(1108123661);
emit_32(1129764880);
emit_32(1106809874);
emit_32(1108123661);
emit_32(1130020864);
emit_32(1105779438);
emit_32(1108123661);
emit_32(1130276848);
emit_32(1104361030);
emit_32(1108123661);
emit_32(1130532897);
emit_32(1102937430);
emit_32(1108123661);
emit_32(1130788880);
emit_32(1102218107);
emit_32(1108123661);
emit_32(1131044864);
emit_32(1101488456);
emit_32(1108123661);
emit_32(1131300848);
emit_32(1100298741);
emit_32(1108123661);
emit_32(1131556897);
emit_32(1099192756);
emit_32(1108123661);
emit_32(1131812880);
emit_32(1097382704);
emit_32(1108123661);
emit_32(1132068864);
emit_32(1096297952);
emit_32(1108123661);
emit_32(1081737216);
emit_32(1109770397);
emit_32(1106903040);
emit_32(1090125824);
emit_32(1109777737);
emit_32(1106903040);
emit_32(1094418484);
emit_32(1110054299);
emit_32(1106903040);
emit_32(1098514432);
emit_32(1110481751);
emit_32(1106903040);
emit_32(1100759066);
emit_32(1110921734);
emit_32(1106903040);
emit_32(1102807040);
emit_32(1111312643);
emit_32(1106903040);
emit_32(1104855066);
emit_32(1111792130);
emit_32(1106903040);
emit_32(1106903040);
emit_32(1111787124);
emit_32(1106903040);
emit_32(1108123661);
emit_32(1111611697);
emit_32(1106903040);
emit_32(1109147648);
emit_32(1111513262);
emit_32(1106903040);
emit_32(1110171661);
emit_32(1111366278);
emit_32(1106903040);
emit_32(1111195648);
emit_32(1111544090);
emit_32(1106903040);
emit_32(1112219661);
emit_32(1111560762);
emit_32(1106903040);
emit_32(1113243648);
emit_32(1111668713);
emit_32(1106903040);
emit_32(1114267661);
emit_32(1111792235);
emit_32(1106903040);
emit_32(1115291648);
emit_32(1111628474);
emit_32(1106903040);
emit_32(1116000263);
emit_32(1111299169);
emit_32(1106903040);
emit_32(1116512256);
emit_32(1111051180);
emit_32(1106903040);
emit_32(1117024263);
emit_32(1110941447);
emit_32(1106903040);
emit_32(1117536256);
emit_32(1110781408);
emit_32(1106903040);
emit_32(1118048263);
emit_32(1110736162);
emit_32(1106903040);
emit_32(1118560256);
emit_32(1110488462);
emit_32(1106903040);
emit_32(1119072263);
emit_32(1109937383);
emit_32(1106903040);
emit_32(1119584256);
emit_32(1109345724);
emit_32(1106903040);
emit_32(1120096263);
emit_32(1108919032);
emit_32(1106903040);
emit_32(1120608322);
emit_32(1108581522);
emit_32(1106903040);
emit_32(1121120289);
emit_32(1108342132);
emit_32(1106903040);
emit_32(1121632256);
emit_32(1107848908);
emit_32(1106903040);
emit_32(1122144223);
emit_32(1107817451);
emit_32(1106903040);
emit_32(1122656322);
emit_32(1107677518);
emit_32(1106903040);
emit_32(1123168289);
emit_32(1107491160);
emit_32(1106903040);
emit_32(1123680256);
emit_32(1107374427);
emit_32(1106903040);
emit_32(1124132848);
emit_32(1107634238);
emit_32(1106903040);
emit_32(1124388897);
emit_32(1107933318);
emit_32(1106903040);
emit_32(1124644880);
emit_32(1108214022);
emit_32(1106903040);
emit_32(1124900864);
emit_32(1108453936);
emit_32(1106903040);
emit_32(1125156848);
emit_32(1108889960);
emit_32(1106903040);
emit_32(1125412897);
emit_32(1108978801);
emit_32(1106903040);
emit_32(1125668880);
emit_32(1108913553);
emit_32(1106903040);
emit_32(1125924864);
emit_32(1109166234);
emit_32(1106903040);
emit_32(1126180848);
emit_32(1109341451);
emit_32(1106903040);
emit_32(1126436897);
emit_32(1109498502);
emit_32(1106903040);
emit_32(1126692880);
emit_32(1109568048);
emit_32(1106903040);
emit_32(1126948864);
emit_32(1109560892);
emit_32(1106903040);
emit_32(1127204848);
emit_32(1109393539);
emit_32(1106903040);
emit_32(1127460897);
emit_32(1108906790);
emit_32(1106903040);
emit_32(1127716880);
emit_32(1108388794);
emit_32(1106903040);
emit_32(1127972864);
emit_32(1108280685);
emit_32(1106903040);
emit_32(1128228848);
emit_32(1108149246);
emit_32(1106903040);
emit_32(1128484897);
emit_32(1107958379);
emit_32(1106903040);
emit_32(1128740880);
emit_32(1107807725);
emit_32(1106903040);
emit_32(1128996864);
emit_32(1107773594);
emit_32(1106903040);
emit_32(1129252848);
emit_32(1107432414);
emit_32(1106903040);
emit_32(1129508897);
emit_32(1107128327);
emit_32(1106903040);
emit_32(1129764880);
emit_32(1106506678);
emit_32(1106903040);
emit_32(1130020864);
emit_32(1105675629);
emit_32(1106903040);
emit_32(1130276848);
emit_32(1104725148);
emit_32(1106903040);
emit_32(1130532897);
emit_32(1102879234);
emit_32(1106903040);
emit_32(1130788880);
emit_32(1102337697);
emit_32(1106903040);
emit_32(1131044864);
emit_32(1101447194);
emit_32(1106903040);
emit_32(1131300848);
emit_32(1100372404);
emit_32(1106903040);
emit_32(1131556897);
emit_32(1099275803);
emit_32(1106903040);
emit_32(1131812880);
emit_32(1097451700);
emit_32(1106903040);
emit_32(1132068864);
emit_32(1095526829);
emit_32(1106903040);
emit_32(1081737216);
emit_32(1110109952);
emit_32(1104855014);
emit_32(1090125824);
emit_32(1110275732);
emit_32(1104855066);
emit_32(1094418484);
emit_32(1110685778);
emit_32(1104855014);
emit_32(1098514432);
emit_32(1111152735);
emit_32(1104855066);
emit_32(1100759066);
emit_32(1111517587);
emit_32(1104855014);
emit_32(1102807040);
emit_32(1111678596);
emit_32(1104855066);
emit_32(1104855066);
emit_32(1111775642);
emit_32(1104855014);
emit_32(1106903040);
emit_32(1112048193);
emit_32(1104855066);
emit_32(1108123661);
emit_32(1111799470);
emit_32(1104855014);
emit_32(1109147648);
emit_32(1112134622);
emit_32(1104855066);
emit_32(1110171661);
emit_32(1111941867);
emit_32(1104855014);
emit_32(1111195648);
emit_32(1111767463);
emit_32(1104855066);
emit_32(1112219661);
emit_32(1111687011);
emit_32(1104855014);
emit_32(1113243648);
emit_32(1111766309);
emit_32(1104855066);
emit_32(1114267661);
emit_32(1111969340);
emit_32(1104855014);
emit_32(1115291648);
emit_32(1111967505);
emit_32(1104855066);
emit_32(1116000263);
emit_32(1111727355);
emit_32(1104855014);
emit_32(1116512256);
emit_32(1111359540);
emit_32(1104855066);
emit_32(1117024263);
emit_32(1111157847);
emit_32(1104855014);
emit_32(1117536256);
emit_32(1110917304);
emit_32(1104855066);
emit_32(1118048263);
emit_32(1110816929);
emit_32(1104855014);
emit_32(1118560256);
emit_32(1110568783);
emit_32(1104855066);
emit_32(1119072263);
emit_32(1110093490);
emit_32(1104855014);
emit_32(1119584256);
emit_32(1109527311);
emit_32(1104855066);
emit_32(1120096263);
emit_32(1108993586);
emit_32(1104855014);
emit_32(1120608322);
emit_32(1108933555);
emit_32(1104855066);
emit_32(1121120289);
emit_32(1108821698);
emit_32(1104855014);
emit_32(1121632256);
emit_32(1108751234);
emit_32(1104855066);
emit_32(1122144223);
emit_32(1108472837);
emit_32(1104855014);
emit_32(1122656322);
emit_32(1108266844);
emit_32(1104855066);
emit_32(1123168289);
emit_32(1107914103);
emit_32(1104855014);
emit_32(1123680256);
emit_32(1107834175);
emit_32(1104855066);
emit_32(1124132848);
emit_32(1107903539);
emit_32(1104855014);
emit_32(1124388897);
emit_32(1107817215);
emit_32(1104855066);
emit_32(1124644880);
emit_32(1107776661);
emit_32(1104855014);
emit_32(1124900864);
emit_32(1108217378);
emit_32(1104855066);
emit_32(1125156848);
emit_32(1108340821);
emit_32(1104855014);
emit_32(1125412897);
emit_32(1108427643);
emit_32(1104855066);
emit_32(1125668880);
emit_32(1108896016);
emit_32(1104855014);
emit_32(1125924864);
emit_32(1109136271);
emit_32(1104855066);
emit_32(1126180848);
emit_32(1109149745);
emit_32(1104855014);
emit_32(1126436897);
emit_32(1109121932);
emit_32(1104855066);
emit_32(1126692880);
emit_32(1108894600);
emit_32(1104855014);
emit_32(1126948864);
emit_32(1108941734);
emit_32(1104855066);
emit_32(1127204848);
emit_32(1108756031);
emit_32(1104855014);
emit_32(1127460897);
emit_32(1108342132);
emit_32(1104855066);
emit_32(1127716880);
emit_32(1107861281);
emit_32(1104855014);
emit_32(1127972864);
emit_32(1107811264);
emit_32(1104855066);
emit_32(1128228848);
emit_32(1107808905);
emit_32(1104855014);
emit_32(1128484897);
emit_32(1107751705);
emit_32(1104855066);
emit_32(1128740880);
emit_32(1107656337);
emit_32(1104855014);
emit_32(1128996864);
emit_32(1107347820);
emit_32(1104855066);
emit_32(1129252848);
emit_32(1107352119);
emit_32(1104855014);
emit_32(1129508897);
emit_32(1106497084);
emit_32(1104855066);
emit_32(1129764880);
emit_32(1105749344);
emit_32(1104855014);
emit_32(1130020864);
emit_32(1104957407);
emit_32(1104855066);
emit_32(1130276848);
emit_32(1104016048);
emit_32(1104855014);
emit_32(1130532897);
emit_32(1102858578);
emit_32(1104855066);
emit_32(1130788880);
emit_32(1102331511);
emit_32(1104855014);
emit_32(1131044864);
emit_32(1101186518);
emit_32(1104855066);
emit_32(1131300848);
emit_32(1100268490);
emit_32(1104855066);
emit_32(1131556897);
emit_32(1099251266);
emit_32(1104855066);
emit_32(1131812880);
emit_32(1097610874);
emit_32(1104855066);
emit_32(1132068864);
emit_32(1095739900);
emit_32(1104855066);
emit_32(1081737216);
emit_32(1110619796);
emit_32(1102807040);
emit_32(1090125824);
emit_32(1110999800);
emit_32(1102807040);
emit_32(1094418484);
emit_32(1111488489);
emit_32(1102807040);
emit_32(1098514432);
emit_32(1111646011);
emit_32(1102807040);
emit_32(1100759066);
emit_32(1111969235);
emit_32(1102807040);
emit_32(1102807040);
emit_32(1112017758);
emit_32(1102807040);
emit_32(1104855066);
emit_32(1111955341);
emit_32(1102807040);
emit_32(1106903040);
emit_32(1112183747);
emit_32(1102807040);
emit_32(1108123661);
emit_32(1112078287);
emit_32(1102807040);
emit_32(1109147648);
emit_32(1112415640);
emit_32(1102807040);
emit_32(1110171661);
emit_32(1112379359);
emit_32(1102807040);
emit_32(1111195648);
emit_32(1112160154);
emit_32(1102807040);
emit_32(1112219661);
emit_32(1112004362);
emit_32(1102807040);
emit_32(1113243648);
emit_32(1112284594);
emit_32(1102807040);
emit_32(1114267661);
emit_32(1112145815);
emit_32(1102807040);
emit_32(1115291648);
emit_32(1112028165);
emit_32(1102807040);
emit_32(1116000263);
emit_32(1111869699);
emit_32(1102807040);
emit_32(1116512256);
emit_32(1111690130);
emit_32(1102807040);
emit_32(1117024263);
emit_32(1111495488);
emit_32(1102807040);
emit_32(1117536256);
emit_32(1111516565);
emit_32(1102807040);
emit_32(1118048263);
emit_32(1111279455);
emit_32(1102807040);
emit_32(1118560256);
emit_32(1110753647);
emit_32(1102807040);
emit_32(1119072263);
emit_32(1110422245);
emit_32(1102807040);
emit_32(1119584256);
emit_32(1109864350);
emit_32(1102807040);
emit_32(1120096263);
emit_32(1109488566);
emit_32(1102807040);
emit_32(1120608322);
emit_32(1109477320);
emit_32(1102807040);
emit_32(1121120289);
emit_32(1109194755);
emit_32(1102807040);
emit_32(1121632256);
emit_32(1109034743);
emit_32(1102807040);
emit_32(1122144223);
emit_32(1108849800);
emit_32(1102807040);
emit_32(1122656322);
emit_32(1108636598);
emit_32(1102807040);
emit_32(1123168289);
emit_32(1108210719);
emit_32(1102807040);
emit_32(1123680256);
emit_32(1108302496);
emit_32(1102807040);
emit_32(1124132848);
emit_32(1108212213);
emit_32(1102807040);
emit_32(1124388897);
emit_32(1107870640);
emit_32(1102807040);
emit_32(1124644880);
emit_32(1107736422);
emit_32(1102807040);
emit_32(1124900864);
emit_32(1107676522);
emit_32(1102807040);
emit_32(1125156848);
emit_32(1108209094);
emit_32(1102807040);
emit_32(1125412897);
emit_32(1108349734);
emit_32(1102807040);
emit_32(1125668880);
emit_32(1108929675);
emit_32(1102807040);
emit_32(1125924864);
emit_32(1109162643);
emit_32(1102807040);
emit_32(1126180848);
emit_32(1109107540);
emit_32(1102807040);
emit_32(1126436897);
emit_32(1108914654);
emit_32(1102807040);
emit_32(1126692880);
emit_32(1108541388);
emit_32(1102807040);
emit_32(1126948864);
emit_32(1108505081);
emit_32(1102807040);
emit_32(1127204848);
emit_32(1108237222);
emit_32(1102807040);
emit_32(1127460897);
emit_32(1108014924);
emit_32(1102807040);
emit_32(1127716880);
emit_32(1107468589);
emit_32(1102807040);
emit_32(1127972864);
emit_32(1107449269);
emit_32(1102807040);
emit_32(1128228848);
emit_32(1107434458);
emit_32(1102807040);
emit_32(1128484897);
emit_32(1107390916);
emit_32(1102807040);
emit_32(1128740880);
emit_32(1107022787);
emit_32(1102807040);
emit_32(1128996864);
emit_32(1106671200);
emit_32(1102807040);
emit_32(1129252848);
emit_32(1106222724);
emit_32(1102807040);
emit_32(1129508897);
emit_32(1106247575);
emit_32(1102807040);
emit_32(1129764880);
emit_32(1105452230);
emit_32(1102807040);
emit_32(1130020864);
emit_32(1104502273);
emit_32(1102807040);
emit_32(1130276848);
emit_32(1103619634);
emit_32(1102807040);
emit_32(1130532897);
emit_32(1102588831);
emit_32(1102807040);
emit_32(1130788880);
emit_32(1101717150);
emit_32(1102807040);
emit_32(1131044864);
emit_32(1100508142);
emit_32(1102807040);
emit_32(1131300848);
emit_32(1100011589);
emit_32(1102807040);
emit_32(1131556897);
emit_32(1099322674);
emit_32(1102807040);
emit_32(1131812880);
emit_32(1097813040);
emit_32(1102807040);
emit_32(1132068864);
emit_32(1095768526);
emit_32(1102807040);
emit_32(1081737216);
emit_32(1111203643);
emit_32(1100759014);
emit_32(1090125824);
emit_32(1111589362);
emit_32(1100759014);
emit_32(1094418484);
emit_32(1112030917);
emit_32(1100759014);
emit_32(1098514432);
emit_32(1112275996);
emit_32(1100759014);
emit_32(1100759066);
emit_32(1112319197);
emit_32(1100759014);
emit_32(1102807040);
emit_32(1112479393);
emit_32(1100759014);
emit_32(1104855066);
emit_32(1112429638);
emit_32(1100759014);
emit_32(1106903040);
emit_32(1112415247);
emit_32(1100759014);
emit_32(1108123661);
emit_32(1112431998);
emit_32(1100759014);
emit_32(1109147648);
emit_32(1112654453);
emit_32(1100759014);
emit_32(1110171661);
emit_32(1112696396);
emit_32(1100759014);
emit_32(1111195648);
emit_32(1112521022);
emit_32(1100759014);
emit_32(1112219661);
emit_32(1112435904);
emit_32(1100759014);
emit_32(1113243648);
emit_32(1112240292);
emit_32(1100759014);
emit_32(1114267661);
emit_32(1112316209);
emit_32(1100759014);
emit_32(1115291648);
emit_32(1112066150);
emit_32(1100759014);
emit_32(1116000263);
emit_32(1111963651);
emit_32(1100759014);
emit_32(1116512256);
emit_32(1111800886);
emit_32(1100759014);
emit_32(1117024263);
emit_32(1111681296);
emit_32(1100759014);
emit_32(1117536256);
emit_32(1111620767);
emit_32(1100759014);
emit_32(1118048263);
emit_32(1111346774);
emit_32(1100759014);
emit_32(1118560256);
emit_32(1111034272);
emit_32(1100759014);
emit_32(1119072263);
emit_32(1110619088);
emit_32(1100759014);
emit_32(1119584256);
emit_32(1110189723);
emit_32(1100759014);
emit_32(1120096263);
emit_32(1109747512);
emit_32(1100759014);
emit_32(1120608322);
emit_32(1109609965);
emit_32(1100759014);
emit_32(1121120289);
emit_32(1109538216);
emit_32(1100759014);
emit_32(1121632256);
emit_32(1109322341);
emit_32(1100759014);
emit_32(1122144223);
emit_32(1109116505);
emit_32(1100759014);
emit_32(1122656322);
emit_32(1108968237);
emit_32(1100759014);
emit_32(1123168289);
emit_32(1108596962);
emit_32(1100759014);
emit_32(1123680256);
emit_32(1108337885);
emit_32(1100759014);
emit_32(1124132848);
emit_32(1108184583);
emit_32(1100759014);
emit_32(1124388897);
emit_32(1107955103);
emit_32(1100759014);
emit_32(1124644880);
emit_32(1108010677);
emit_32(1100759014);
emit_32(1124900864);
emit_32(1107800306);
emit_32(1100759014);
emit_32(1125156848);
emit_32(1107894626);
emit_32(1100759014);
emit_32(1125412897);
emit_32(1108230616);
emit_32(1100759014);
emit_32(1125668880);
emit_32(1108803374);
emit_32(1100759014);
emit_32(1125924864);
emit_32(1109075454);
emit_32(1100759014);
emit_32(1126180848);
emit_32(1109027350);
emit_32(1100759014);
emit_32(1126436897);
emit_32(1108939951);
emit_32(1100759014);
emit_32(1126692880);
emit_32(1108326744);
emit_32(1100759014);
emit_32(1126948864);
emit_32(1108036865);
emit_32(1100759014);
emit_32(1127204848);
emit_32(1107817923);
emit_32(1100759014);
emit_32(1127460897);
emit_32(1107732464);
emit_32(1100759014);
emit_32(1127716880);
emit_32(1107137554);
emit_32(1100759014);
emit_32(1127972864);
emit_32(1106958562);
emit_32(1100759014);
emit_32(1128228848);
emit_32(1106960135);
emit_32(1100759014);
emit_32(1128484897);
emit_32(1106646873);
emit_32(1100759014);
emit_32(1128740880);
emit_32(1105859497);
emit_32(1100759014);
emit_32(1128996864);
emit_32(1105603382);
emit_32(1100759014);
emit_32(1129252848);
emit_32(1105170530);
emit_32(1100759014);
emit_32(1129508897);
emit_32(1105374164);
emit_32(1100759014);
emit_32(1129764880);
emit_32(1105401636);
emit_32(1100759014);
emit_32(1130020864);
emit_32(1104911427);
emit_32(1100759014);
emit_32(1130276848);
emit_32(1103660424);
emit_32(1100759014);
emit_32(1130532897);
emit_32(1102697778);
emit_32(1100759014);
emit_32(1130788880);
emit_32(1101449239);
emit_32(1100759066);
emit_32(1131044864);
emit_32(1100702810);
emit_32(1100759066);
emit_32(1131300848);
emit_32(1099801611);
emit_32(1100759066);
emit_32(1131556897);
emit_32(1099221015);
emit_32(1100759066);
emit_32(1131812880);
emit_32(1097633733);
emit_32(1100759066);
emit_32(1132068864);
emit_32(1095588276);
emit_32(1100759066);
emit_32(1081737216);
emit_32(1111812866);
emit_32(1098514432);
emit_32(1090125824);
emit_32(1112034614);
emit_32(1098514432);
emit_32(1094418484);
emit_32(1112430949);
emit_32(1098514432);
emit_32(1098514432);
emit_32(1112552899);
emit_32(1098514432);
emit_32(1100759066);
emit_32(1112388901);
emit_32(1098514432);
emit_32(1102807040);
emit_32(1112497324);
emit_32(1098514432);
emit_32(1104855066);
emit_32(1112626351);
emit_32(1098514432);
emit_32(1106903040);
emit_32(1112804164);
emit_32(1098514432);
emit_32(1108123661);
emit_32(1112732048);
emit_32(1098514432);
emit_32(1109147648);
emit_32(1112876043);
emit_32(1098514432);
emit_32(1110171661);
emit_32(1112974741);
emit_32(1098514432);
emit_32(1111195648);
emit_32(1112667141);
emit_32(1098514432);
emit_32(1112219661);
emit_32(1112522411);
emit_32(1098514432);
emit_32(1113243648);
emit_32(1112234315);
emit_32(1098514432);
emit_32(1114267661);
emit_32(1112061562);
emit_32(1098514432);
emit_32(1115291648);
emit_32(1111763216);
emit_32(1098514432);
emit_32(1116000263);
emit_32(1111779207);
emit_32(1098514432);
emit_32(1116512256);
emit_32(1111697732);
emit_32(1098514432);
emit_32(1117024263);
emit_32(1111651097);
emit_32(1098514432);
emit_32(1117536256);
emit_32(1111523564);
emit_32(1098514432);
emit_32(1118048263);
emit_32(1111418916);
emit_32(1098514432);
emit_32(1118560256);
emit_32(1111207811);
emit_32(1098514432);
emit_32(1119072263);
emit_32(1110728743);
emit_32(1098514432);
emit_32(1119584256);
emit_32(1110351885);
emit_32(1098514432);
emit_32(1120096263);
emit_32(1110067354);
emit_32(1098514432);
emit_32(1120608322);
emit_32(1109906476);
emit_32(1098514432);
emit_32(1121120289);
emit_32(1109648474);
emit_32(1098514432);
emit_32(1121632256);
emit_32(1109594787);
emit_32(1098514432);
emit_32(1122144223);
emit_32(1109226711);
emit_32(1098514432);
emit_32(1122656322);
emit_32(1109203825);
emit_32(1098514432);
emit_32(1123168289);
emit_32(1108763659);
emit_32(1098514432);
emit_32(1123680256);
emit_32(1108360770);
emit_32(1098514432);
emit_32(1124132848);
emit_32(1108356628);
emit_32(1098514432);
emit_32(1124388897);
emit_32(1108118838);
emit_32(1098514432);
emit_32(1124644880);
emit_32(1108079411);
emit_32(1098514432);
emit_32(1124900864);
emit_32(1107833179);
emit_32(1098514432);
emit_32(1125156848);
emit_32(1107770841);
emit_32(1098514432);
emit_32(1125412897);
emit_32(1108082531);
emit_32(1098514432);
emit_32(1125668880);
emit_32(1108414667);
emit_32(1098514432);
emit_32(1125924864);
emit_32(1108808670);
emit_32(1098514432);
emit_32(1126180848);
emit_32(1108779572);
emit_32(1098514432);
emit_32(1126436897);
emit_32(1108586686);
emit_32(1098514432);
emit_32(1126692880);
emit_32(1108017650);
emit_32(1098514432);
emit_32(1126948864);
emit_32(1107632508);
emit_32(1098514432);
emit_32(1127204848);
emit_32(1107530849);
emit_32(1098514432);
emit_32(1127460897);
emit_32(1107331357);
emit_32(1098514432);
emit_32(1127716880);
emit_32(1106461065);
emit_32(1098514432);
emit_32(1127972864);
emit_32(1105721295);
emit_32(1098514432);
emit_32(1128228848);
emit_32(1105899395);
emit_32(1098514432);
emit_32(1128484897);
emit_32(1105780959);
emit_32(1098514432);
emit_32(1128740880);
emit_32(1105112806);
emit_32(1098514432);
emit_32(1128996864);
emit_32(1104398988);
emit_32(1098514432);
emit_32(1129252848);
emit_32(1104246420);
emit_32(1098514432);
emit_32(1129508897);
emit_32(1104877715);
emit_32(1098514432);
emit_32(1129764880);
emit_32(1104934024);
emit_32(1098514432);
emit_32(1130020864);
emit_32(1104407062);
emit_32(1098514432);
emit_32(1130276848);
emit_32(1103509009);
emit_32(1098514432);
emit_32(1130532897);
emit_32(1102561359);
emit_32(1098514432);
emit_32(1130788880);
emit_32(1101226941);
emit_32(1098514432);
emit_32(1131044864);
emit_32(1100378223);
emit_32(1098514432);
emit_32(1131300848);
emit_32(1099670330);
emit_32(1098514432);
emit_32(1131556897);
emit_32(1099052247);
emit_32(1098514432);
emit_32(1131812880);
emit_32(1097040344);
emit_32(1098514432);
emit_32(1132068864);
emit_32(1094514429);
emit_32(1098514432);
emit_32(1081737216);
emit_32(1112309314);
emit_32(1094418380);
emit_32(1090125824);
emit_32(1112490036);
emit_32(1094418380);
emit_32(1094418484);
emit_32(1112564590);
emit_32(1094418380);
emit_32(1098514432);
emit_32(1112495017);
emit_32(1094418380);
emit_32(1100759066);
emit_32(1112570934);
emit_32(1094418380);
emit_32(1102807040);
emit_32(1112483797);
emit_32(1094418380);
emit_32(1104855066);
emit_32(1112593269);
emit_32(1094418380);
emit_32(1106903040);
emit_32(1112653955);
emit_32(1094418380);
emit_32(1108123661);
emit_32(1112696973);
emit_32(1094418380);
emit_32(1109147648);
emit_32(1112876358);
emit_32(1094418380);
emit_32(1110171661);
emit_32(1112771972);
emit_32(1094418380);
emit_32(1111195648);
emit_32(1112696658);
emit_32(1094418380);
emit_32(1112219661);
emit_32(1112760438);
emit_32(1094418380);
emit_32(1113243648);
emit_32(1112709844);
emit_32(1094418380);
emit_32(1114267661);
emit_32(1112445708);
emit_32(1094418380);
emit_32(1115291648);
emit_32(1112126810);
emit_32(1094418380);
emit_32(1116000263);
emit_32(1111838268);
emit_32(1094418380);
emit_32(1116512256);
emit_32(1111661530);
emit_32(1094418380);
emit_32(1117024263);
emit_32(1111906163);
emit_32(1094418380);
emit_32(1117536256);
emit_32(1112106389);
emit_32(1094418380);
emit_32(1118048263);
emit_32(1111761879);
emit_32(1094418380);
emit_32(1118560256);
emit_32(1111398128);
emit_32(1094418380);
emit_32(1119072263);
emit_32(1110978645);
emit_32(1094418380);
emit_32(1119584256);
emit_32(1110634319);
emit_32(1094418380);
emit_32(1120096263);
emit_32(1110529776);
emit_32(1094418380);
emit_32(1120608322);
emit_32(1110304358);
emit_32(1094418380);
emit_32(1121120289);
emit_32(1110165710);
emit_32(1094418380);
emit_32(1121632256);
emit_32(1109858216);
emit_32(1094418380);
emit_32(1122144223);
emit_32(1109581365);
emit_32(1094418380);
emit_32(1122656322);
emit_32(1109235859);
emit_32(1094418380);
emit_32(1123168289);
emit_32(1108903907);
emit_32(1094418380);
emit_32(1123680256);
emit_32(1108430973);
emit_32(1094418380);
emit_32(1124132848);
emit_32(1108410683);
emit_32(1094418380);
emit_32(1124388897);
emit_32(1108135038);
emit_32(1094418380);
emit_32(1124644880);
emit_32(1107804973);
emit_32(1094418380);
emit_32(1124900864);
emit_32(1107639901);
emit_32(1094418380);
emit_32(1125156848);
emit_32(1107772126);
emit_32(1094418380);
emit_32(1125412897);
emit_32(1107737261);
emit_32(1094418380);
emit_32(1125668880);
emit_32(1108006063);
emit_32(1094418380);
emit_32(1125924864);
emit_32(1108199919);
emit_32(1094418380);
emit_32(1126180848);
emit_32(1108248678);
emit_32(1094418380);
emit_32(1126436897);
emit_32(1107916253);
emit_32(1094418380);
emit_32(1126692880);
emit_32(1107555149);
emit_32(1094418380);
emit_32(1126948864);
emit_32(1107371177);
emit_32(1094418380);
emit_32(1127204848);
emit_32(1107332275);
emit_32(1094418380);
emit_32(1127460897);
emit_32(1106749686);
emit_32(1094418380);
emit_32(1127716880);
emit_32(1105781640);
emit_32(1094418380);
emit_32(1127972864);
emit_32(1105277223);
emit_32(1094418380);
emit_32(1128228848);
emit_32(1104907757);
emit_32(1094418380);
emit_32(1128484897);
emit_32(1104873049);
emit_32(1094418380);
emit_32(1128740880);
emit_32(1104381896);
emit_32(1094418380);
emit_32(1128996864);
emit_32(1103612294);
emit_32(1094418380);
emit_32(1129252848);
emit_32(1103676519);
emit_32(1094418380);
emit_32(1129508897);
emit_32(1104280132);
emit_32(1094418380);
emit_32(1129764880);
emit_32(1104232789);
emit_32(1094418380);
emit_32(1130020864);
emit_32(1103550533);
emit_32(1094418380);
emit_32(1130276848);
emit_32(1102514592);
emit_32(1094418380);
emit_32(1130532897);
emit_32(1101953866);
emit_32(1094418380);
emit_32(1130788880);
emit_32(1100634653);
emit_32(1094418380);
emit_32(1131044864);
emit_32(1099709337);
emit_32(1094418380);
emit_32(1131300848);
emit_32(1099034526);
emit_32(1094418380);
emit_32(1131556897);
emit_32(1098146172);
emit_32(1094418380);
emit_32(1131812880);
emit_32(1096675754);
emit_32(1094418380);
emit_32(1132068864);
emit_32(1095032426);
emit_32(1094418380);
emit_32(1081737216);
emit_32(1112605380);
emit_32(1090125824);
emit_32(1090125824);
emit_32(1112742534);
emit_32(1090125824);
emit_32(1094418484);
emit_32(1112581997);
emit_32(1090125824);
emit_32(1098514432);
emit_32(1112591984);
emit_32(1090125824);
emit_32(1100759066);
emit_32(1112534732);
emit_32(1090125824);
emit_32(1102807040);
emit_32(1112399387);
emit_32(1090125824);
emit_32(1104855066);
emit_32(1112277857);
emit_32(1090125824);
emit_32(1106903040);
emit_32(1112201599);
emit_32(1090125824);
emit_32(1108123661);
emit_32(1112445472);
emit_32(1090125824);
emit_32(1109147648);
emit_32(1112670418);
emit_32(1090125824);
emit_32(1110171661);
emit_32(1112875572);
emit_32(1090125824);
emit_32(1111195648);
emit_32(1112679095);
emit_32(1090125824);
emit_32(1112219661);
emit_32(1112703500);
emit_32(1090125824);
emit_32(1113243648);
emit_32(1112775511);
emit_32(1090125824);
emit_32(1114267661);
emit_32(1112764999);
emit_32(1090125824);
emit_32(1115291648);
emit_32(1112475330);
emit_32(1090125824);
emit_32(1116000263);
emit_32(1112362661);
emit_32(1090125824);
emit_32(1116512256);
emit_32(1112174966);
emit_32(1090125824);
emit_32(1117024263);
emit_32(1112258039);
emit_32(1090125824);
emit_32(1117536256);
emit_32(1112460755);
emit_32(1090125824);
emit_32(1118048263);
emit_32(1112160312);
emit_32(1090125824);
emit_32(1118560256);
emit_32(1111604462);
emit_32(1090125824);
emit_32(1119072263);
emit_32(1111322578);
emit_32(1090125824);
emit_32(1119584256);
emit_32(1110893291);
emit_32(1090125824);
emit_32(1120096263);
emit_32(1110900736);
emit_32(1090125824);
emit_32(1120608322);
emit_32(1110553369);
emit_32(1090125824);
emit_32(1121120289);
emit_32(1110630518);
emit_32(1090125824);
emit_32(1121632256);
emit_32(1110571431);
emit_32(1090125824);
emit_32(1122144223);
emit_32(1110245900);
emit_32(1090125824);
emit_32(1122656322);
emit_32(1109753463);
emit_32(1090125824);
emit_32(1123168289);
emit_32(1109358386);
emit_32(1090125824);
emit_32(1123680256);
emit_32(1108613530);
emit_32(1090125824);
emit_32(1124132848);
emit_32(1108478368);
emit_32(1090125824);
emit_32(1124388897);
emit_32(1108175854);
emit_32(1090125824);
emit_32(1124644880);
emit_32(1107804527);
emit_32(1090125824);
emit_32(1124900864);
emit_32(1107498500);
emit_32(1090125824);
emit_32(1125156848);
emit_32(1107513704);
emit_32(1090125824);
emit_32(1125412897);
emit_32(1107414562);
emit_32(1090125824);
emit_32(1125668880);
emit_32(1107678934);
emit_32(1090125824);
emit_32(1125924864);
emit_32(1107910564);
emit_32(1090125824);
emit_32(1126180848);
emit_32(1108046853);
emit_32(1090125824);
emit_32(1126436897);
emit_32(1107743028);
emit_32(1090125824);
emit_32(1126692880);
emit_32(1107443817);
emit_32(1090125824);
emit_32(1126948864);
emit_32(1107040246);
emit_32(1090125824);
emit_32(1127204848);
emit_32(1106762321);
emit_32(1090125824);
emit_32(1127460897);
emit_32(1106354582);
emit_32(1090125824);
emit_32(1127716880);
emit_32(1105464079);
emit_32(1090125824);
emit_32(1127972864);
emit_32(1104597169);
emit_32(1090125824);
emit_32(1128228848);
emit_32(1103944902);
emit_32(1090125824);
emit_32(1128484897);
emit_32(1104198028);
emit_32(1090125824);
emit_32(1128740880);
emit_32(1103790342);
emit_32(1090125824);
emit_32(1128996864);
emit_32(1103102686);
emit_32(1090125824);
emit_32(1129252848);
emit_32(1103136555);
emit_32(1090125824);
emit_32(1129508897);
emit_32(1103360688);
emit_32(1090125824);
emit_32(1129764880);
emit_32(1103301339);
emit_32(1090125824);
emit_32(1130020864);
emit_32(1102581596);
emit_32(1090125824);
emit_32(1130276848);
emit_32(1101582723);
emit_32(1090125824);
emit_32(1130532897);
emit_32(1100502427);
emit_32(1090125824);
emit_32(1130788880);
emit_32(1099934623);
emit_32(1090125824);
emit_32(1131044864);
emit_32(1099180854);
emit_32(1090125824);
emit_32(1131300848);
emit_32(1098378012);
emit_32(1090125824);
emit_32(1131556897);
emit_32(1096908852);
emit_32(1090125824);
emit_32(1131812880);
emit_32(1096091278);
emit_32(1090125824);
emit_32(1132068864);
emit_32(1095719453);
emit_32(1090125824);
emit_32(1081737216);
emit_32(1112701298);
emit_32(1081737216);
emit_32(1090125824);
emit_32(1112503694);
emit_32(1081737216);
emit_32(1094418484);
emit_32(1112328084);
emit_32(1081737216);
emit_32(1098514432);
emit_32(1112069951);
emit_32(1081737216);
emit_32(1100759066);
emit_32(1112173655);
emit_32(1081737216);
emit_32(1102807040);
emit_32(1112198559);
emit_32(1081737216);
emit_32(1104855066);
emit_32(1112333694);
emit_32(1081737216);
emit_32(1106903040);
emit_32(1112388744);
emit_32(1081737216);
emit_32(1108123661);
emit_32(1112590726);
emit_32(1081737216);
emit_32(1109147648);
emit_32(1113057735);
emit_32(1081737216);
emit_32(1110171661);
emit_32(1113035296);
emit_32(1081737216);
emit_32(1111195648);
emit_32(1112886896);
emit_32(1081737216);
emit_32(1112219661);
emit_32(1112955971);
emit_32(1081737216);
emit_32(1113243648);
emit_32(1113474440);
emit_32(1081737216);
emit_32(1114267661);
emit_32(1113373252);
emit_32(1081737216);
emit_32(1115291648);
emit_32(1112981923);
emit_32(1081737216);
emit_32(1116000263);
emit_32(1112815462);
emit_32(1081737216);
emit_32(1116512256);
emit_32(1112451711);
emit_32(1081737216);
emit_32(1117024263);
emit_32(1112394144);
emit_32(1081737216);
emit_32(1117536256);
emit_32(1112528414);
emit_32(1081737216);
emit_32(1118048263);
emit_32(1112287950);
emit_32(1081737216);
emit_32(1118560256);
emit_32(1111949653);
emit_32(1081737216);
emit_32(1119072263);
emit_32(1111682685);
emit_32(1081737216);
emit_32(1119584256);
emit_32(1111194678);
emit_32(1081737216);
emit_32(1120096263);
emit_32(1111068639);
emit_32(1081737216);
emit_32(1120608322);
emit_32(1110815303);
emit_32(1081737216);
emit_32(1121120289);
emit_32(1110882674);
emit_32(1081737216);
emit_32(1121632256);
emit_32(1110789010);
emit_32(1081737216);
emit_32(1122144223);
emit_32(1110340062);
emit_32(1081737216);
emit_32(1122656322);
emit_32(1109951539);
emit_32(1081737216);
emit_32(1123168289);
emit_32(1109517848);
emit_32(1081737216);
emit_32(1123680256);
emit_32(1109219108);
emit_32(1081737216);
emit_32(1124132848);
emit_32(1108888571);
emit_32(1081737216);
emit_32(1124388897);
emit_32(1108548203);
emit_32(1081737216);
emit_32(1124644880);
emit_32(1108062057);
emit_32(1081737216);
emit_32(1124900864);
emit_32(1107391755);
emit_32(1081737216);
emit_32(1125156848);
emit_32(1107147201);
emit_32(1081737216);
emit_32(1125412897);
emit_32(1106562515);
emit_32(1081737216);
emit_32(1125668880);
emit_32(1107088323);
emit_32(1081737216);
emit_32(1125924864);
emit_32(1107466728);
emit_32(1081737216);
emit_32(1126180848);
emit_32(1107640477);
emit_32(1081737216);
emit_32(1126436897);
emit_32(1107446858);
emit_32(1081737216);
emit_32(1126692880);
emit_32(1107035003);
emit_32(1081737216);
emit_32(1126948864);
emit_32(1106606398);
emit_32(1081737216);
emit_32(1127204848);
emit_32(1106181305);
emit_32(1081737216);
emit_32(1127460897);
emit_32(1105541831);
emit_32(1081737216);
emit_32(1127716880);
emit_32(1104783501);
emit_32(1081737216);
emit_32(1127972864);
emit_32(1103855197);
emit_32(1081737216);
emit_32(1128228848);
emit_32(1103186310);
emit_32(1081737216);
emit_32(1128484897);
emit_32(1103087482);
emit_32(1081737216);
emit_32(1128740880);
emit_32(1102981471);
emit_32(1081737216);
emit_32(1128996864);
emit_32(1102264716);
emit_32(1081737216);
emit_32(1129252848);
emit_32(1102136581);
emit_32(1081737216);
emit_32(1129508897);
emit_32(1101851735);
emit_32(1081737216);
emit_32(1129764880);
emit_32(1101959109);
emit_32(1081737216);
emit_32(1130020864);
emit_32(1101538001);
emit_32(1081737216);
emit_32(1130276848);
emit_32(1100676386);
emit_32(1081737216);
emit_32(1130532897);
emit_32(1100067740);
emit_32(1081737216);
emit_32(1130788880);
emit_32(1099550582);
emit_32(1081737216);
emit_32(1131044864);
emit_32(1099061684);
emit_32(1081737216);
emit_32(1131300848);
emit_32(1097284243);
emit_32(1081737216);
emit_32(1131556897);
emit_32(1096432799);
emit_32(1081737216);
emit_32(1131812880);
emit_32(1096013998);
emit_32(1081737216);
emit_32(1132068864);
emit_32(1095458043);
emit_32(1081737216);
emit_start(Landscape05Vtx)
emit_32(3279552512);
emit_32(3212673672);
emit_32(0);
emit_32(3279552512);
emit_32(1041185636);
emit_32(1081737216);
emit_32(3279296528);
emit_32(1059833579);
emit_32(0);
emit_32(3279296528);
emit_32(1071476480);
emit_32(1081737216);
emit_32(3279040545);
emit_32(1072407784);
emit_32(0);
emit_32(3279040545);
emit_32(1076263523);
emit_32(1081737216);
emit_32(3278784496);
emit_32(1080759692);
emit_32(3022808678);
emit_32(3278784496);
emit_32(1082158660);
emit_32(1081737216);
emit_32(3278528512);
emit_32(1084161503);
emit_32(3026792956);
emit_32(3278528512);
emit_32(1084513929);
emit_32(1081737216);
emit_32(3278272528);
emit_32(1087503650);
emit_32(3029991200);
emit_32(3278272528);
emit_32(1087785717);
emit_32(1081737216);
emit_32(3278016545);
emit_32(1090834682);
emit_32(3032665494);
emit_32(3278016545);
emit_32(1090972056);
emit_32(1081737216);
emit_32(3277760496);
emit_32(1092557314);
emit_32(3035192119);
emit_32(3277760496);
emit_32(1092442569);
emit_32(1081737216);
emit_32(3277504512);
emit_32(1094292446);
emit_32(3037206586);
emit_32(3277504512);
emit_32(1094046974);
emit_32(1081737216);
emit_32(3277248528);
emit_32(1097139854);
emit_32(3039294743);
emit_32(3277248528);
emit_32(1097043280);
emit_32(1081737216);
emit_32(3276992545);
emit_32(1099197999);
emit_32(3041017018);
emit_32(3276992545);
emit_32(1098999818);
emit_32(1081737216);
emit_32(3276736496);
emit_32(1100402917);
emit_32(3042784259);
emit_32(3276736496);
emit_32(1100434742);
emit_32(1081737216);
emit_32(3276480512);
emit_32(1101809268);
emit_32(3044847030);
emit_32(3276480512);
emit_32(1101659007);
emit_32(1081737216);
emit_32(3276224528);
emit_32(1102438046);
emit_32(3045416976);
emit_32(3276224528);
emit_32(1102608545);
emit_32(1081737216);
emit_32(3275968545);
emit_32(1103348997);
emit_32(3046085013);
emit_32(3275968545);
emit_32(1103417836);
emit_32(1081737216);
emit_32(3275712496);
emit_32(1104211817);
emit_32(3046717804);
emit_32(3275712496);
emit_32(1104053168);
emit_32(1081737216);
emit_32(3275456512);
emit_32(1104674187);
emit_32(3047056805);
emit_32(3275456512);
emit_32(1104973450);
emit_32(1081737216);
emit_32(3275200528);
emit_32(1105401165);
emit_32(3047590024);
emit_32(3275200528);
emit_32(1105837477);
emit_32(1081737216);
emit_32(3274944545);
emit_32(1105747352);
emit_32(3047843880);
emit_32(3274944545);
emit_32(1106081743);
emit_32(1081737216);
emit_32(3274688496);
emit_32(1106143871);
emit_32(3048134678);
emit_32(3274688496);
emit_32(1106636492);
emit_32(1081737216);
emit_32(3274432512);
emit_32(1106329416);
emit_32(3048270754);
emit_32(3274432512);
emit_32(1107002917);
emit_32(1081737216);
emit_32(3274176528);
emit_32(1107393459);
emit_32(3049122304);
emit_32(3274176528);
emit_32(1107580184);
emit_32(1081737216);
emit_32(3273920545);
emit_32(1108074955);
emit_32(3050121892);
emit_32(3273920545);
emit_32(1107983729);
emit_32(1081737216);
emit_32(3273664496);
emit_32(1108448641);
emit_32(3050669976);
emit_32(3273664496);
emit_32(1108213550);
emit_32(1081737216);
emit_32(3273408512);
emit_32(1108684230);
emit_32(3051015487);
emit_32(3273408512);
emit_32(1108715137);
emit_32(1081737216);
emit_32(3273152528);
emit_32(1108934132);
emit_32(3051382020);
emit_32(3273152528);
emit_32(1108987871);
emit_32(1081737216);
emit_32(3272896545);
emit_32(1108952377);
emit_32(3051408760);
emit_32(3272896545);
emit_32(1109130582);
emit_32(1081737216);
emit_32(3272640496);
emit_32(1108910775);
emit_32(3051347803);
emit_32(3272640496);
emit_32(1109075454);
emit_32(1081737216);
emit_32(3272384512);
emit_32(1108499366);
emit_32(3050744391);
emit_32(3272384512);
emit_32(1108764813);
emit_32(1081737216);
emit_32(3272128528);
emit_32(1108270907);
emit_32(3050409260);
emit_32(3272128528);
emit_32(1108391939);
emit_32(1081737216);
emit_32(3271872545);
emit_32(1107755506);
emit_32(3049653324);
emit_32(3271872545);
emit_32(1108080224);
emit_32(1081737216);
emit_32(3271616496);
emit_32(1107633190);
emit_32(3049473972);
emit_32(3271616496);
emit_32(1107854728);
emit_32(1081737216);
emit_32(3271163904);
emit_32(1107663336);
emit_32(3049518128);
emit_32(3271163904);
emit_32(1107912740);
emit_32(1081737216);
emit_32(3270651937);
emit_32(1107588075);
emit_32(3049407737);
emit_32(3270651937);
emit_32(1107731730);
emit_32(1081737216);
emit_32(3270139970);
emit_32(1107502327);
emit_32(3049282041);
emit_32(3270139970);
emit_32(1107480989);
emit_32(1081737216);
emit_32(3269627871);
emit_32(1107559370);
emit_32(3049365692);
emit_32(3269627871);
emit_32(1107400013);
emit_32(1081737216);
emit_32(3269115904);
emit_32(1107429425);
emit_32(3049175080);
emit_32(3269115904);
emit_32(1106814855);
emit_32(1081737216);
emit_32(3268603937);
emit_32(1107211531);
emit_32(3048917619);
emit_32(3268603937);
emit_32(1106747641);
emit_32(1081737216);
emit_32(3268091970);
emit_32(1106869381);
emit_32(3048666666);
emit_32(3268091970);
emit_32(1106153570);
emit_32(1081737216);
emit_32(3267579911);
emit_32(1106076710);
emit_32(3048085420);
emit_32(3267579911);
emit_32(1105450553);
emit_32(1081737216);
emit_32(3267067904);
emit_32(1105107773);
emit_32(3047374784);
emit_32(3267067904);
emit_32(1105015289);
emit_32(1081737216);
emit_32(3266555911);
emit_32(1104100511);
emit_32(3046636088);
emit_32(3266555911);
emit_32(1103926185);
emit_32(1081737216);
emit_32(3266043904);
emit_32(1102799385);
emit_32(3045681976);
emit_32(3266043904);
emit_32(1103220965);
emit_32(1081737216);
emit_32(3265531911);
emit_32(1102770130);
emit_32(3045660513);
emit_32(3265531911);
emit_32(1102714556);
emit_32(1081737216);
emit_32(3265019904);
emit_32(1102608335);
emit_32(3045541854);
emit_32(3265019904);
emit_32(1102293972);
emit_32(1081737216);
emit_32(3264507911);
emit_32(1103061372);
emit_32(3045874083);
emit_32(3264507911);
emit_32(1102696206);
emit_32(1081737216);
emit_32(3263995904);
emit_32(1102915777);
emit_32(3045767298);
emit_32(3263995904);
emit_32(1102841119);
emit_32(1081737216);
emit_32(3263483911);
emit_32(1102723888);
emit_32(3045626560);
emit_32(3263483911);
emit_32(1102940104);
emit_32(1081737216);
emit_32(3262775296);
emit_32(1103408189);
emit_32(3046128466);
emit_32(3262775296);
emit_32(1103457681);
emit_32(1081737216);
emit_32(3261751309);
emit_32(1103998484);
emit_32(3046561321);
emit_32(3261751309);
emit_32(1103885553);
emit_32(1081737216);
emit_32(3260727296);
emit_32(1104668105);
emit_32(3047052407);
emit_32(3260727296);
emit_32(1104135953);
emit_32(1081737216);
emit_32(3259703309);
emit_32(1105127381);
emit_32(3047389210);
emit_32(3259703309);
emit_32(1104254180);
emit_32(1081737216);
emit_32(3258679296);
emit_32(1105216196);
emit_32(3047454301);
emit_32(3258679296);
emit_32(1104598218);
emit_32(1081737216);
emit_32(3257655309);
emit_32(1105244507);
emit_32(3047475059);
emit_32(3257655309);
emit_32(1105055869);
emit_32(1081737216);
emit_32(3256631296);
emit_32(1106325379);
emit_32(3048267763);
emit_32(3256631296);
emit_32(1105830661);
emit_32(1081737216);
emit_32(3255607309);
emit_32(1107402398);
emit_32(3049135410);
emit_32(3255607309);
emit_32(1107186156);
emit_32(1081737216);
emit_32(3254386688);
emit_32(1107944119);
emit_32(3049929961);
emit_32(3254386688);
emit_32(1107890222);
emit_32(1081737216);
emit_32(3252338714);
emit_32(1108676916);
emit_32(3051004756);
emit_32(3252338714);
emit_32(1108342578);
emit_32(1081737216);
emit_32(3250290688);
emit_32(1109077105);
emit_32(3051591719);
emit_32(3250290688);
emit_32(1108968106);
emit_32(1081737216);
emit_32(3248242714);
emit_32(1109498895);
emit_32(3052210436);
emit_32(3248242714);
emit_32(1109363314);
emit_32(1081737216);
emit_32(3245998080);
emit_32(1110132051);
emit_32(3053139040);
emit_32(3245998080);
emit_32(1110217982);
emit_32(1081737216);
emit_32(3241902132);
emit_32(1110709318);
emit_32(3053719532);
emit_32(3241902132);
emit_32(1110836747);
emit_32(1081737216);
emit_32(3237609472);
emit_32(1111158922);
emit_32(3054049253);
emit_32(3237609472);
emit_32(1111340011);
emit_32(1081737216);
emit_32(3229220864);
emit_32(1111589126);
emit_32(3054364725);
emit_32(3229220864);
emit_32(1111989472);
emit_32(1081737216);
emit_32(0);
emit_32(1111989053);
emit_32(3054658031);
emit_32(0);
emit_32(1112547577);
emit_32(1081737216);
emit_32(1081737216);
emit_32(1112116167);
emit_32(3054751226);
emit_32(1081737216);
emit_32(1112701298);
emit_32(1081737216);
emit_32(3279552512);
emit_32(3209799987);
emit_32(3229220864);
emit_32(3279296528);
emit_32(1059840776);
emit_32(3229220864);
emit_32(3279040545);
emit_32(1077240503);
emit_32(3229220864);
emit_32(3278784496);
emit_32(1082549401);
emit_32(3229220864);
emit_32(3278528512);
emit_32(1085468217);
emit_32(3229220864);
emit_32(3278272528);
emit_32(1088296919);
emit_32(3229220864);
emit_32(3278016545);
emit_32(1090881837);
emit_32(3229220864);
emit_32(3277760496);
emit_32(1092463268);
emit_32(3229220864);
emit_32(3277504512);
emit_32(1093558757);
emit_32(3229220864);
emit_32(3277248528);
emit_32(1096426612);
emit_32(3229220864);
emit_32(3276992545);
emit_32(1099175874);
emit_32(3229220864);
emit_32(3276736496);
emit_32(1099804757);
emit_32(3229220864);
emit_32(3276480512);
emit_32(1101394975);
emit_32(3229220864);
emit_32(3276224528);
emit_32(1102334185);
emit_32(3229220864);
emit_32(3275968545);
emit_32(1103311038);
emit_32(3229220864);
emit_32(3275712496);
emit_32(1104048921);
emit_32(3229220864);
emit_32(3275456512);
emit_32(1104659821);
emit_32(3229220864);
emit_32(3275200528);
emit_32(1105062632);
emit_32(3229220864);
emit_32(3274944545);
emit_32(1105651669);
emit_32(3229220864);
emit_32(3274688496);
emit_32(1106231322);
emit_32(3229220864);
emit_32(3274432512);
emit_32(1107336626);
emit_32(3229220864);
emit_32(3274176528);
emit_32(1107657989);
emit_32(3229220864);
emit_32(3273920545);
emit_32(1108184452);
emit_32(3229220864);
emit_32(3273664496);
emit_32(1108338672);
emit_32(3229220864);
emit_32(3273408512);
emit_32(1108483926);
emit_32(3229220864);
emit_32(3273152528);
emit_32(1108691229);
emit_32(3229220864);
emit_32(3272896545);
emit_32(1108557850);
emit_32(3229220864);
emit_32(3272640496);
emit_32(1108486573);
emit_32(3229220864);
emit_32(3272384512);
emit_32(1108265140);
emit_32(3229220864);
emit_32(3272128528);
emit_32(1108112887);
emit_32(3229220864);
emit_32(3271872545);
emit_32(1107872003);
emit_32(3229220864);
emit_32(3271616496);
emit_32(1107841411);
emit_32(3229220864);
emit_32(3271163904);
emit_32(1107883406);
emit_32(3229220864);
emit_32(3270651937);
emit_32(1107859944);
emit_32(3229220864);
emit_32(3270139970);
emit_32(1107767014);
emit_32(3229220864);
emit_32(3269627871);
emit_32(1107782795);
emit_32(3229220864);
emit_32(3269115904);
emit_32(1107629310);
emit_32(3229220864);
emit_32(3268603937);
emit_32(1107448404);
emit_32(3229220864);
emit_32(3268091970);
emit_32(1107249594);
emit_32(3229220864);
emit_32(3267579911);
emit_32(1106441929);
emit_32(3229220864);
emit_32(3267067904);
emit_32(1105756265);
emit_32(3229220864);
emit_32(3266555911);
emit_32(1104508197);
emit_32(3229220864);
emit_32(3266043904);
emit_32(1103537583);
emit_32(3229220864);
emit_32(3265531911);
emit_32(1103027556);
emit_32(3229220864);
emit_32(3265019904);
emit_32(1102775006);
emit_32(3229220864);
emit_32(3264507911);
emit_32(1103080037);
emit_32(3229220864);
emit_32(3263995904);
emit_32(1103170109);
emit_32(3229220864);
emit_32(3263483911);
emit_32(1103334002);
emit_32(3229220864);
emit_32(3262775296);
emit_32(1103932372);
emit_32(3229220864);
emit_32(3261751309);
emit_32(1104512234);
emit_32(3229220864);
emit_32(3260727296);
emit_32(1105151184);
emit_32(3229220864);
emit_32(3259703309);
emit_32(1105468116);
emit_32(3229220864);
emit_32(3258679296);
emit_32(1105860336);
emit_32(3229220864);
emit_32(3257655309);
emit_32(1105963568);
emit_32(3229220864);
emit_32(3256631296);
emit_32(1106718071);
emit_32(3229220864);
emit_32(3255607309);
emit_32(1107534414);
emit_32(3229220864);
emit_32(3254386688);
emit_32(1108061821);
emit_32(3229220864);
emit_32(3252338714);
emit_32(1108796323);
emit_32(3229220864);
emit_32(3250290688);
emit_32(1109110555);
emit_32(3229220864);
emit_32(3248242714);
emit_32(1109471606);
emit_32(3229220864);
emit_32(3245998080);
emit_32(1109857115);
emit_32(3229220864);
emit_32(3241902132);
emit_32(1110399726);
emit_32(3229220864);
emit_32(3237609472);
emit_32(1110641187);
emit_32(3229220864);
emit_32(3229220864);
emit_32(1111105208);
emit_32(3229220864);
emit_32(0);
emit_32(1111556044);
emit_32(3229220864);
emit_32(1081737216);
emit_32(1111714929);
emit_32(3229220864);
emit_32(3279552512);
emit_32(1054711998);
emit_32(3237609472);
emit_32(3279296528);
emit_32(1073162675);
emit_32(3237609472);
emit_32(3279040545);
emit_32(1079142997);
emit_32(3237609472);
emit_32(3278784496);
emit_32(1083244271);
emit_32(3237609472);
emit_32(3278528512);
emit_32(1085647335);
emit_32(3237609472);
emit_32(3278272528);
emit_32(1089136346);
emit_32(3237609472);
emit_32(3278016545);
emit_32(1091028155);
emit_32(3237609472);
emit_32(3277760496);
emit_32(1092749361);
emit_32(3237609472);
emit_32(3277504512);
emit_32(1094007338);
emit_32(3237609472);
emit_32(3277248528);
emit_32(1096172333);
emit_32(3237609472);
emit_32(3276992545);
emit_32(1098404017);
emit_32(3237609472);
emit_32(3276736496);
emit_32(1099924924);
emit_32(3237609472);
emit_32(3276480512);
emit_32(1101300708);
emit_32(3237609472);
emit_32(3276224528);
emit_32(1102514540);
emit_32(3237609472);
emit_32(3275968545);
emit_32(1102952530);
emit_32(3237609472);
emit_32(3275712496);
emit_32(1104219315);
emit_32(3237609472);
emit_32(3275456512);
emit_32(1105238635);
emit_32(3237609472);
emit_32(3275200528);
emit_32(1105786254);
emit_32(3237609472);
emit_32(3274944545);
emit_32(1106026116);
emit_32(3237609472);
emit_32(3274688496);
emit_32(1106387979);
emit_32(3237609472);
emit_32(3274432512);
emit_32(1107205816);
emit_32(3237609472);
emit_32(3274176528);
emit_32(1107688659);
emit_32(3237609472);
emit_32(3273920545);
emit_32(1107937067);
emit_32(3237609472);
emit_32(3273664496);
emit_32(1108184426);
emit_32(3237609472);
emit_32(3273408512);
emit_32(1108351831);
emit_32(3237609472);
emit_32(3273152528);
emit_32(1108376840);
emit_32(3237609472);
emit_32(3272896545);
emit_32(1108546866);
emit_32(3237609472);
emit_32(3272640496);
emit_32(1108425232);
emit_32(3237609472);
emit_32(3272384512);
emit_32(1108404994);
emit_32(3237609472);
emit_32(3272128528);
emit_32(1108262466);
emit_32(3237609472);
emit_32(3271872545);
emit_32(1107983912);
emit_32(3237609472);
emit_32(3271616496);
emit_32(1107864453);
emit_32(3237609472);
emit_32(3271163904);
emit_32(1107866576);
emit_32(3237609472);
emit_32(3270651937);
emit_32(1107727562);
emit_32(3237609472);
emit_32(3270139970);
emit_32(1107886499);
emit_32(3237609472);
emit_32(3269627871);
emit_32(1107880313);
emit_32(3237609472);
emit_32(3269115904);
emit_32(1107886866);
emit_32(3237609472);
emit_32(3268603937);
emit_32(1107605533);
emit_32(3237609472);
emit_32(3268091970);
emit_32(1107358646);
emit_32(3237609472);
emit_32(3267579911);
emit_32(1106791734);
emit_32(3237609472);
emit_32(3267067904);
emit_32(1106079646);
emit_32(3237609472);
emit_32(3266555911);
emit_32(1104985928);
emit_32(3237609472);
emit_32(3266043904);
emit_32(1104015576);
emit_32(3237609472);
emit_32(3265531911);
emit_32(1103311720);
emit_32(3237609472);
emit_32(3265019904);
emit_32(1103316648);
emit_32(3237609472);
emit_32(3264507911);
emit_32(1103704569);
emit_32(3237609472);
emit_32(3263995904);
emit_32(1103636359);
emit_32(3237609472);
emit_32(3263483911);
emit_32(1103830817);
emit_32(3237609472);
emit_32(3262775296);
emit_32(1104077757);
emit_32(3237609472);
emit_32(3261751309);
emit_32(1104578819);
emit_32(3237609472);
emit_32(3260727296);
emit_32(1105235699);
emit_32(3237609472);
emit_32(3259703309);
emit_32(1105711858);
emit_32(3237609472);
emit_32(3258679296);
emit_32(1105779124);
emit_32(3237609472);
emit_32(3257655309);
emit_32(1106565975);
emit_32(3237609472);
emit_32(3256631296);
emit_32(1107139756);
emit_32(3237609472);
emit_32(3255607309);
emit_32(1107456478);
emit_32(3237609472);
emit_32(3254386688);
emit_32(1107977988);
emit_32(3237609472);
emit_32(3252338714);
emit_32(1108423606);
emit_32(3237609472);
emit_32(3250290688);
emit_32(1108993822);
emit_32(3237609472);
emit_32(3248242714);
emit_32(1109315132);
emit_32(3237609472);
emit_32(3245998080);
emit_32(1109596884);
emit_32(3237609472);
emit_32(3241902132);
emit_32(1110086989);
emit_32(3237609472);
emit_32(3237609472);
emit_32(1110712176);
emit_32(3237609472);
emit_32(3229220864);
emit_32(1111303415);
emit_32(3237609472);
emit_32(0);
emit_32(1111637125);
emit_32(3237609472);
emit_32(1081737216);
emit_32(1111679959);
emit_32(3237609472);
emit_32(3279552512);
emit_32(1058110391);
emit_32(3241902132);
emit_32(3279296528);
emit_32(1072323898);
emit_32(3241902132);
emit_32(3279040545);
emit_32(1079279857);
emit_32(3241902132);
emit_32(3278784496);
emit_32(1082742465);
emit_32(3241902132);
emit_32(3278528512);
emit_32(1086410992);
emit_32(3241902132);
emit_32(3278272528);
emit_32(1088461147);
emit_32(3241902132);
emit_32(3278016545);
emit_32(1091533338);
emit_32(3241902132);
emit_32(3277760496);
emit_32(1093009303);
emit_32(3241902132);
emit_32(3277504512);
emit_32(1094260359);
emit_32(3241902132);
emit_32(3277248528);
emit_32(1096715285);
emit_32(3241902132);
emit_32(3276992545);
emit_32(1098545575);
emit_32(3241902132);
emit_32(3276736496);
emit_32(1100069260);
emit_32(3241902132);
emit_32(3276480512);
emit_32(1101010882);
emit_32(3241902132);
emit_32(3276224528);
emit_32(1101814458);
emit_32(3241902132);
emit_32(3275968545);
emit_32(1102816372);
emit_32(3241902132);
emit_32(3275712496);
emit_32(1104296175);
emit_32(3241902132);
emit_32(3275456512);
emit_32(1105227573);
emit_32(3241902132);
emit_32(3275200528);
emit_32(1105862695);
emit_32(3241902132);
emit_32(3274944545);
emit_32(1106061767);
emit_32(3241902132);
emit_32(3274688496);
emit_32(1106614157);
emit_32(3241902132);
emit_32(3274432512);
emit_32(1106679117);
emit_32(3241902132);
emit_32(3274176528);
emit_32(1107555097);
emit_32(3241902132);
emit_32(3273920545);
emit_32(1107710706);
emit_32(3241902132);
emit_32(3273664496);
emit_32(1107987399);
emit_32(3241902132);
emit_32(3273408512);
emit_32(1108243985);
emit_32(3241902132);
emit_32(3273152528);
emit_32(1108410132);
emit_32(3241902132);
emit_32(3272896545);
emit_32(1108423370);
emit_32(3241902132);
emit_32(3272640496);
emit_32(1108487858);
emit_32(3241902132);
emit_32(3272384512);
emit_32(1108444525);
emit_32(3241902132);
emit_32(3272128528);
emit_32(1108145681);
emit_32(3241902132);
emit_32(3271872545);
emit_32(1107836142);
emit_32(3241902132);
emit_32(3271616496);
emit_32(1107856825);
emit_32(3241902132);
emit_32(3271163904);
emit_32(1107713065);
emit_32(3241902132);
emit_32(3270651937);
emit_32(1107761431);
emit_32(3241902132);
emit_32(3270139970);
emit_32(1107749346);
emit_32(3241902132);
emit_32(3269627871);
emit_32(1107742242);
emit_32(3241902132);
emit_32(3269115904);
emit_32(1107724468);
emit_32(3241902132);
emit_32(3268603937);
emit_32(1107622651);
emit_32(3241902132);
emit_32(3268091970);
emit_32(1107524085);
emit_32(3241902132);
emit_32(3267579911);
emit_32(1106842380);
emit_32(3241902132);
emit_32(3267067904);
emit_32(1106029733);
emit_32(3241902132);
emit_32(3266555911);
emit_32(1104983674);
emit_32(3241902132);
emit_32(3266043904);
emit_32(1104019456);
emit_32(3241902132);
emit_32(3265531911);
emit_32(1103853571);
emit_32(3241902132);
emit_32(3265019904);
emit_32(1103951666);
emit_32(3241902132);
emit_32(3264507911);
emit_32(1103711542);
emit_32(3241902132);
emit_32(3263995904);
emit_32(1103910404);
emit_32(3241902132);
emit_32(3263483911);
emit_32(1103908517);
emit_32(3241902132);
emit_32(3262775296);
emit_32(1104110577);
emit_32(3241902132);
emit_32(3261751309);
emit_32(1104188172);
emit_32(3241902132);
emit_32(3260727296);
emit_32(1104905241);
emit_32(3241902132);
emit_32(3259703309);
emit_32(1105620212);
emit_32(3241902132);
emit_32(3258679296);
emit_32(1106230221);
emit_32(3241902132);
emit_32(3257655309);
emit_32(1107170322);
emit_32(3241902132);
emit_32(3256631296);
emit_32(1107365357);
emit_32(3241902132);
emit_32(3255607309);
emit_32(1107446569);
emit_32(3241902132);
emit_32(3254386688);
emit_32(1107700744);
emit_32(3241902132);
emit_32(3252338714);
emit_32(1108112651);
emit_32(3241902132);
emit_32(3250290688);
emit_32(1108689473);
emit_32(3241902132);
emit_32(3248242714);
emit_32(1109194519);
emit_32(3241902132);
emit_32(3245998080);
emit_32(1109874285);
emit_32(3241902132);
emit_32(3241902132);
emit_32(1110441774);
emit_32(3241902132);
emit_32(3237609472);
emit_32(1111191218);
emit_32(3241902132);
emit_32(3229220864);
emit_32(1111647243);
emit_32(3241902132);
emit_32(0);
emit_32(1111674821);
emit_32(3241902132);
emit_32(1081737216);
emit_32(1111917802);
emit_32(3241902132);
emit_32(3279552512);
emit_32(1069567233);
emit_32(3245998080);
emit_32(3279296528);
emit_32(1071989863);
emit_32(3245998080);
emit_32(3279040545);
emit_32(1075944798);
emit_32(3245998080);
emit_32(3278784496);
emit_32(1082325006);
emit_32(3245998080);
emit_32(3278528512);
emit_32(1086766564);
emit_32(3245998080);
emit_32(3278272528);
emit_32(1089466668);
emit_32(3245998080);
emit_32(3278016545);
emit_32(1091111989);
emit_32(3245998080);
emit_32(3277760496);
emit_32(1092605224);
emit_32(3245998080);
emit_32(3277504512);
emit_32(1095055494);
emit_32(3245998080);
emit_32(3277248528);
emit_32(1097329541);
emit_32(3245998080);
emit_32(3276992545);
emit_32(1098231421);
emit_32(3245998080);
emit_32(3276736496);
emit_32(1099798361);
emit_32(3245998080);
emit_32(3276480512);
emit_32(1100629777);
emit_32(3245998080);
emit_32(3276224528);
emit_32(1101582932);
emit_32(3245998080);
emit_32(3275968545);
emit_32(1102756341);
emit_32(3245998080);
emit_32(3275712496);
emit_32(1103822271);
emit_32(3245998080);
emit_32(3275456512);
emit_32(1104867754);
emit_32(3245998080);
emit_32(3275200528);
emit_32(1105394716);
emit_32(3245998080);
emit_32(3274944545);
emit_32(1106013428);
emit_32(3245998080);
emit_32(3274688496);
emit_32(1106248257);
emit_32(3245998080);
emit_32(3274432512);
emit_32(1106783293);
emit_32(3245998080);
emit_32(3274176528);
emit_32(1107441641);
emit_32(3245998080);
emit_32(3273920545);
emit_32(1107472338);
emit_32(3245998080);
emit_32(3273664496);
emit_32(1107780305);
emit_32(3245998080);
emit_32(3273408512);
emit_32(1108116033);
emit_32(3245998080);
emit_32(3273152528);
emit_32(1108228755);
emit_32(3245998080);
emit_32(3272896545);
emit_32(1108513391);
emit_32(3245998080);
emit_32(3272640496);
emit_32(1108457108);
emit_32(3245998080);
emit_32(3272384512);
emit_32(1108243173);
emit_32(3245998080);
emit_32(3272128528);
emit_32(1108176536);
emit_32(3245998080);
emit_32(3271872545);
emit_32(1107871348);
emit_32(3245998080);
emit_32(3271616496);
emit_32(1107923121);
emit_32(3245998080);
emit_32(3271163904);
emit_32(1107614682);
emit_32(3245998080);
emit_32(3270651937);
emit_32(1107505709);
emit_32(3245998080);
emit_32(3270139970);
emit_32(1107594707);
emit_32(3245998080);
emit_32(3269627871);
emit_32(1107597381);
emit_32(3245998080);
emit_32(3269115904);
emit_32(1107730471);
emit_32(3245998080);
emit_32(3268603937);
emit_32(1107619086);
emit_32(3245998080);
emit_32(3268091970);
emit_32(1107455273);
emit_32(3245998080);
emit_32(3267579911);
emit_32(1106610802);
emit_32(3245998080);
emit_32(3267067904);
emit_32(1105479074);
emit_32(3245998080);
emit_32(3266555911);
emit_32(1105028081);
emit_32(3245998080);
emit_32(3266043904);
emit_32(1104895856);
emit_32(3245998080);
emit_32(3265531911);
emit_32(1104167515);
emit_32(3245998080);
emit_32(3265019904);
emit_32(1104032563);
emit_32(3245998080);
emit_32(3264507911);
emit_32(1104102818);
emit_32(3245998080);
emit_32(3263995904);
emit_32(1103636621);
emit_32(3245998080);
emit_32(3263483911);
emit_32(1104117812);
emit_32(3245998080);
emit_32(3262775296);
emit_32(1104170556);
emit_32(3245998080);
emit_32(3261751309);
emit_32(1104075031);
emit_32(3245998080);
emit_32(3260727296);
emit_32(1104866076);
emit_32(3245998080);
emit_32(3259703309);
emit_32(1105674056);
emit_32(3245998080);
emit_32(3258679296);
emit_32(1106593763);
emit_32(3245998080);
emit_32(3257655309);
emit_32(1107479652);
emit_32(3245998080);
emit_32(3256631296);
emit_32(1107477371);
emit_32(3245998080);
emit_32(3255607309);
emit_32(1107602886);
emit_32(3245998080);
emit_32(3254386688);
emit_32(1108002655);
emit_32(3245998080);
emit_32(3252338714);
emit_32(1108265717);
emit_32(3245998080);
emit_32(3250290688);
emit_32(1108946348);
emit_32(3245998080);
emit_32(3248242714);
emit_32(1109570748);
emit_32(3245998080);
emit_32(3245998080);
emit_32(1110334348);
emit_32(3245998080);
emit_32(3241902132);
emit_32(1111046776);
emit_32(3245998080);
emit_32(3237609472);
emit_32(1111662998);
emit_32(3245998080);
emit_32(3229220864);
emit_32(1111752783);
emit_32(3245998080);
emit_32(0);
emit_32(1112149144);
emit_32(3245998080);
emit_32(1081737216);
emit_32(1112196121);
emit_32(3245998080);
emit_32(3279552512);
emit_32(1069069537);
emit_32(3248242714);
emit_32(3279296528);
emit_32(1070813613);
emit_32(3248242714);
emit_32(3279040545);
emit_32(1077694242);
emit_32(3248242714);
emit_32(3278784496);
emit_32(1083641745);
emit_32(3248242714);
emit_32(3278528512);
emit_32(1087538169);
emit_32(3248242714);
emit_32(3278272528);
emit_32(1089089810);
emit_32(3248242714);
emit_32(3278016545);
emit_32(1090321216);
emit_32(3248242714);
emit_32(3277760496);
emit_32(1092452761);
emit_32(3248242714);
emit_32(3277504512);
emit_32(1094878390);
emit_32(3248242714);
emit_32(3277248528);
emit_32(1096058143);
emit_32(3248242714);
emit_32(3276992545);
emit_32(1098098567);
emit_32(3248242714);
emit_32(3276736496);
emit_32(1099576902);
emit_32(3248242714);
emit_32(3276480512);
emit_32(1100562563);
emit_32(3248242714);
emit_32(3276224528);
emit_32(1101167224);
emit_32(3248242714);
emit_32(3275968545);
emit_32(1102019088);
emit_32(3248242714);
emit_32(3275712496);
emit_32(1103025878);
emit_32(3248242714);
emit_32(3275456512);
emit_32(1104220258);
emit_32(3248242714);
emit_32(3275200528);
emit_32(1104981944);
emit_32(3248242714);
emit_32(3274944545);
emit_32(1105491132);
emit_32(3248242714);
emit_32(3274688496);
emit_32(1105710495);
emit_32(3248242714);
emit_32(3274432512);
emit_32(1106232423);
emit_32(3248242714);
emit_32(3274176528);
emit_32(1106909961);
emit_32(3248242714);
emit_32(3273920545);
emit_32(1107031858);
emit_32(3248242714);
emit_32(3273664496);
emit_32(1107735426);
emit_32(3248242714);
emit_32(3273408512);
emit_32(1108117868);
emit_32(3248242714);
emit_32(3273152528);
emit_32(1108098862);
emit_32(3248242714);
emit_32(3272896545);
emit_32(1108068716);
emit_32(3248242714);
emit_32(3272640496);
emit_32(1108110003);
emit_32(3248242714);
emit_32(3272384512);
emit_32(1108104761);
emit_32(3248242714);
emit_32(3272128528);
emit_32(1108024125);
emit_32(3248242714);
emit_32(3271872545);
emit_32(1107776111);
emit_32(3248242714);
emit_32(3271616496);
emit_32(1107637384);
emit_32(3248242714);
emit_32(3271163904);
emit_32(1107446360);
emit_32(3248242714);
emit_32(3270651937);
emit_32(1107041400);
emit_32(3248242714);
emit_32(3270139970);
emit_32(1107011882);
emit_32(3248242714);
emit_32(3269627871);
emit_32(1107115167);
emit_32(3248242714);
emit_32(3269115904);
emit_32(1107418494);
emit_32(3248242714);
emit_32(3268603937);
emit_32(1107457422);
emit_32(3248242714);
emit_32(3268091970);
emit_32(1106904613);
emit_32(3248242714);
emit_32(3267579911);
emit_32(1106031411);
emit_32(3248242714);
emit_32(3267067904);
emit_32(1105454223);
emit_32(3248242714);
emit_32(3266555911);
emit_32(1105778967);
emit_32(3248242714);
emit_32(3266043904);
emit_32(1105570929);
emit_32(3248242714);
emit_32(3265531911);
emit_32(1104914258);
emit_32(3248242714);
emit_32(3265019904);
emit_32(1104424468);
emit_32(3248242714);
emit_32(3264507911);
emit_32(1104545527);
emit_32(3248242714);
emit_32(3263995904);
emit_32(1104296280);
emit_32(3248242714);
emit_32(3263483911);
emit_32(1103990568);
emit_32(3248242714);
emit_32(3262775296);
emit_32(1104013427);
emit_32(3248242714);
emit_32(3261751309);
emit_32(1104087142);
emit_32(3248242714);
emit_32(3260727296);
emit_32(1104895017);
emit_32(3248242714);
emit_32(3259703309);
emit_32(1105764129);
emit_32(3248242714);
emit_32(3258679296);
emit_32(1106780357);
emit_32(3248242714);
emit_32(3257655309);
emit_32(1107436005);
emit_32(3248242714);
emit_32(3256631296);
emit_32(1107614237);
emit_32(3248242714);
emit_32(3255607309);
emit_32(1107805785);
emit_32(3248242714);
emit_32(3254386688);
emit_32(1108259294);
emit_32(3248242714);
emit_32(3252338714);
emit_32(1108838738);
emit_32(3248242714);
emit_32(3250290688);
emit_32(1109532056);
emit_32(3248242714);
emit_32(3248242714);
emit_32(1110357731);
emit_32(3248242714);
emit_32(3245998080);
emit_32(1111305617);
emit_32(3248242714);
emit_32(3241902132);
emit_32(1111938354);
emit_32(3248242714);
emit_32(3237609472);
emit_32(1112310678);
emit_32(3248242714);
emit_32(3229220864);
emit_32(1112422010);
emit_32(3248242714);
emit_32(0);
emit_32(1112626745);
emit_32(3248242714);
emit_32(1081737216);
emit_32(1112566084);
emit_32(3248242714);
emit_32(3279552512);
emit_32(1065800916);
emit_32(3250290688);
emit_32(3279296528);
emit_32(1067728450);
emit_32(3250290688);
emit_32(3279040545);
emit_32(1079534242);
emit_32(3250290688);
emit_32(3278784496);
emit_32(1083207466);
emit_32(3250290688);
emit_32(3278528512);
emit_32(1085554830);
emit_32(3250290688);
emit_32(3278272528);
emit_32(1087362784);
emit_32(3250290688);
emit_32(3278016545);
emit_32(1089916067);
emit_32(3250290688);
emit_32(3277760496);
emit_32(1091396866);
emit_32(3250290688);
emit_32(3277504512);
emit_32(1093035832);
emit_32(3250290688);
emit_32(3277248528);
emit_32(1094508767);
emit_32(3250290688);
emit_32(3276992545);
emit_32(1096595328);
emit_32(3250290688);
emit_32(3276736496);
emit_32(1099173252);
emit_32(3250290688);
emit_32(3276480512);
emit_32(1100269748);
emit_32(3250290688);
emit_32(3276224528);
emit_32(1101165704);
emit_32(3250290688);
emit_32(3275968545);
emit_32(1101889169);
emit_32(3250290688);
emit_32(3275712496);
emit_32(1102356467);
emit_32(3250290688);
emit_32(3275456512);
emit_32(1103641549);
emit_32(3250290688);
emit_32(3275200528);
emit_32(1104432910);
emit_32(3250290688);
emit_32(3274944545);
emit_32(1104777157);
emit_32(3250290688);
emit_32(3274688496);
emit_32(1105410025);
emit_32(3250290688);
emit_32(3274432512);
emit_32(1105737233);
emit_32(3250290688);
emit_32(3274176528);
emit_32(1106211085);
emit_32(3250290688);
emit_32(3273920545);
emit_32(1107190979);
emit_32(3250290688);
emit_32(3273664496);
emit_32(1107686903);
emit_32(3250290688);
emit_32(3273408512);
emit_32(1107933449);
emit_32(3250290688);
emit_32(3273152528);
emit_32(1107858896);
emit_32(3250290688);
emit_32(3272896545);
emit_32(1107712567);
emit_32(3250290688);
emit_32(3272640496);
emit_32(1107834044);
emit_32(3250290688);
emit_32(3272384512);
emit_32(1107745256);
emit_32(3250290688);
emit_32(3272128528);
emit_32(1107612821);
emit_32(3250290688);
emit_32(3271872545);
emit_32(1107307240);
emit_32(3250290688);
emit_32(3271616496);
emit_32(1106953581);
emit_32(3250290688);
emit_32(3271163904);
emit_32(1106958195);
emit_32(3250290688);
emit_32(3270651937);
emit_32(1106599635);
emit_32(3250290688);
emit_32(3270139970);
emit_32(1106321238);
emit_32(3250290688);
emit_32(3269627871);
emit_32(1106339588);
emit_32(3250290688);
emit_32(3269115904);
emit_32(1106571795);
emit_32(3250290688);
emit_32(3268603937);
emit_32(1106917982);
emit_32(3250290688);
emit_32(3268091970);
emit_32(1106501383);
emit_32(3250290688);
emit_32(3267579911);
emit_32(1105718516);
emit_32(3250290688);
emit_32(3267067904);
emit_32(1105903065);
emit_32(3250290688);
emit_32(3266555911);
emit_32(1106013795);
emit_32(3250290688);
emit_32(3266043904);
emit_32(1105949517);
emit_32(3250290688);
emit_32(3265531911);
emit_32(1105206863);
emit_32(3250290688);
emit_32(3265019904);
emit_32(1104861934);
emit_32(3250290688);
emit_32(3264507911);
emit_32(1104599790);
emit_32(3250290688);
emit_32(3263995904);
emit_32(1103950932);
emit_32(3250290688);
emit_32(3263483911);
emit_32(1104055527);
emit_32(3250290688);
emit_32(3262775296);
emit_32(1103866364);
emit_32(3250290688);
emit_32(3261751309);
emit_32(1104419383);
emit_32(3250290688);
emit_32(3260727296);
emit_32(1104811026);
emit_32(3250290688);
emit_32(3259703309);
emit_32(1105456634);
emit_32(3250290688);
emit_32(3258679296);
emit_32(1106791681);
emit_32(3250290688);
emit_32(3257655309);
emit_32(1107583068);
emit_32(3250290688);
emit_32(3256631296);
emit_32(1107949860);
emit_32(3250290688);
emit_32(3255607309);
emit_32(1108658278);
emit_32(3250290688);
emit_32(3254386688);
emit_32(1109252165);
emit_32(3250290688);
emit_32(3252338714);
emit_32(1109776086);
emit_32(3250290688);
emit_32(3250290688);
emit_32(1110334321);
emit_32(3250290688);
emit_32(3248242714);
emit_32(1111177403);
emit_32(3250290688);
emit_32(3245998080);
emit_32(1111862202);
emit_32(3250290688);
emit_32(3241902132);
emit_32(1112485580);
emit_32(3250290688);
emit_32(3237609472);
emit_32(1112835516);
emit_32(3250290688);
emit_32(3229220864);
emit_32(1112928997);
emit_32(3250290688);
emit_32(0);
emit_32(1112967689);
emit_32(3250290688);
emit_32(1081737216);
emit_32(1113150456);
emit_32(3250290688);
emit_32(3279552512);
emit_32(1065811150);
emit_32(3252338714);
emit_32(3279296528);
emit_32(1074401378);
emit_32(3252338714);
emit_32(3279040545);
emit_32(1078638548);
emit_32(3252338714);
emit_32(3278784496);
emit_32(1082498734);
emit_32(3252338714);
emit_32(3278528512);
emit_32(1084586134);
emit_32(3252338714);
emit_32(3278272528);
emit_32(1087624907);
emit_32(3252338714);
emit_32(3278016545);
emit_32(1088961422);
emit_32(3252338714);
emit_32(3277760496);
emit_32(1091843412);
emit_32(3252338714);
emit_32(3277504512);
emit_32(1093413739);
emit_32(3252338714);
emit_32(3277248528);
emit_32(1094395206);
emit_32(3252338714);
emit_32(3276992545);
emit_32(1095806484);
emit_32(3252338714);
emit_32(3276736496);
emit_32(1097929536);
emit_32(3252338714);
emit_32(3276480512);
emit_32(1099744988);
emit_32(3252338714);
emit_32(3276224528);
emit_32(1100647340);
emit_32(3252338714);
emit_32(3275968545);
emit_32(1101240992);
emit_32(3252338714);
emit_32(3275712496);
emit_32(1101372693);
emit_32(3252338714);
emit_32(3275456512);
emit_32(1102475638);
emit_32(3252338714);
emit_32(3275200528);
emit_32(1103490240);
emit_32(3252338714);
emit_32(3274944545);
emit_32(1104043416);
emit_32(3252338714);
emit_32(3274688496);
emit_32(1105440696);
emit_32(3252338714);
emit_32(3274432512);
emit_32(1105987161);
emit_32(3252338714);
emit_32(3274176528);
emit_32(1106185395);
emit_32(3252338714);
emit_32(3273920545);
emit_32(1107031700);
emit_32(3252338714);
emit_32(3273664496);
emit_32(1107454932);
emit_32(3252338714);
emit_32(3273408512);
emit_32(1107539368);
emit_32(3252338714);
emit_32(3273152528);
emit_32(1107466152);
emit_32(3252338714);
emit_32(3272896545);
emit_32(1107413067);
emit_32(3252338714);
emit_32(3272640496);
emit_32(1107297960);
emit_32(3252338714);
emit_32(3272384512);
emit_32(1107173310);
emit_32(3252338714);
emit_32(3272128528);
emit_32(1107130371);
emit_32(3252338714);
emit_32(3271872545);
emit_32(1106771653);
emit_32(3252338714);
emit_32(3271616496);
emit_32(1106460803);
emit_32(3252338714);
emit_32(3271163904);
emit_32(1106115455);
emit_32(3252338714);
emit_32(3270651937);
emit_32(1105926344);
emit_32(3252338714);
emit_32(3270139970);
emit_32(1105546602);
emit_32(3252338714);
emit_32(3269627871);
emit_32(1105660477);
emit_32(3252338714);
emit_32(3269115904);
emit_32(1105920367);
emit_32(3252338714);
emit_32(3268603937);
emit_32(1106109897);
emit_32(3252338714);
emit_32(3268091970);
emit_32(1105672798);
emit_32(3252338714);
emit_32(3267579911);
emit_32(1105767537);
emit_32(3252338714);
emit_32(3267067904);
emit_32(1105707139);
emit_32(3252338714);
emit_32(3266555911);
emit_32(1105871241);
emit_32(3252338714);
emit_32(3266043904);
emit_32(1105955599);
emit_32(3252338714);
emit_32(3265531911);
emit_32(1105848435);
emit_32(3252338714);
emit_32(3265019904);
emit_32(1105348264);
emit_32(3252338714);
emit_32(3264507911);
emit_32(1104644040);
emit_32(3252338714);
emit_32(3263995904);
emit_32(1104354371);
emit_32(3252338714);
emit_32(3263483911);
emit_32(1104366902);
emit_32(3252338714);
emit_32(3262775296);
emit_32(1104900103);
emit_32(3252338714);
emit_32(3261751309);
emit_32(1105214885);
emit_32(3252338714);
emit_32(3260727296);
emit_32(1105392147);
emit_32(3252338714);
emit_32(3259703309);
emit_32(1106490111);
emit_32(3252338714);
emit_32(3258679296);
emit_32(1107465837);
emit_32(3252338714);
emit_32(3257655309);
emit_32(1108021897);
emit_32(3252338714);
emit_32(3256631296);
emit_32(1108703366);
emit_32(3252338714);
emit_32(3255607309);
emit_32(1109418128);
emit_32(3252338714);
emit_32(3254386688);
emit_32(1110033669);
emit_32(3252338714);
emit_32(3252338714);
emit_32(1110598065);
emit_32(3252338714);
emit_32(3250290688);
emit_32(1111530878);
emit_32(3252338714);
emit_32(3248242714);
emit_32(1112167127);
emit_32(3252338714);
emit_32(3245998080);
emit_32(1112747776);
emit_32(3252338714);
emit_32(3241902132);
emit_32(1113057631);
emit_32(3252338714);
emit_32(3237609472);
emit_32(1113395220);
emit_32(3252338714);
emit_32(3229220864);
emit_32(1113520262);
emit_32(3252338714);
emit_32(0);
emit_32(1113746230);
emit_32(3252338714);
emit_32(1081737216);
emit_32(1113988085);
emit_32(3252338714);
emit_32(3279552512);
emit_32(1073007234);
emit_32(3254386688);
emit_32(3279296528);
emit_32(1071855058);
emit_32(3254386688);
emit_32(3279040545);
emit_32(1077504995);
emit_32(3254386688);
emit_32(3278784496);
emit_32(1083853809);
emit_32(3254386688);
emit_32(3278528512);
emit_32(1085433090);
emit_32(3254386688);
emit_32(3278272528);
emit_32(1086653926);
emit_32(3254386688);
emit_32(3278016545);
emit_32(1089328256);
emit_32(3254386688);
emit_32(3277760496);
emit_32(1091680359);
emit_32(3254386688);
emit_32(3277504512);
emit_32(1093386371);
emit_32(3254386688);
emit_32(3277248528);
emit_32(1094430019);
emit_32(3254386688);
emit_32(3276992545);
emit_32(1095762759);
emit_32(3254386688);
emit_32(3276736496);
emit_32(1097278685);
emit_32(3254386688);
emit_32(3276480512);
emit_32(1099307942);
emit_32(3254386688);
emit_32(3276224528);
emit_32(1100328206);
emit_32(3254386688);
emit_32(3275968545);
emit_32(1100510396);
emit_32(3254386688);
emit_32(3275712496);
emit_32(1100754190);
emit_32(3254386688);
emit_32(3275456512);
emit_32(1101542300);
emit_32(3254386688);
emit_32(3275200528);
emit_32(1102303461);
emit_32(3254386688);
emit_32(3274944545);
emit_32(1103597719);
emit_32(3254386688);
emit_32(3274688496);
emit_32(1104967316);
emit_32(3254386688);
emit_32(3274432512);
emit_32(1105690205);
emit_32(3254386688);
emit_32(3274176528);
emit_32(1106034714);
emit_32(3254386688);
emit_32(3273920545);
emit_32(1106220994);
emit_32(3254386688);
emit_32(3273664496);
emit_32(1106826651);
emit_32(3254386688);
emit_32(3273408512);
emit_32(1107242779);
emit_32(3254386688);
emit_32(3273152528);
emit_32(1107302810);
emit_32(3254386688);
emit_32(3272896545);
emit_32(1107370915);
emit_32(3254386688);
emit_32(3272640496);
emit_32(1107004385);
emit_32(3254386688);
emit_32(3272384512);
emit_32(1106217429);
emit_32(3254386688);
emit_32(3272128528);
emit_32(1106380587);
emit_32(3254386688);
emit_32(3271872545);
emit_32(1106492418);
emit_32(3254386688);
emit_32(3271616496);
emit_32(1106313793);
emit_32(3254386688);
emit_32(3271163904);
emit_32(1105860336);
emit_32(3254386688);
emit_32(3270651937);
emit_32(1104962965);
emit_32(3254386688);
emit_32(3270139970);
emit_32(1104709367);
emit_32(3254386688);
emit_32(3269627871);
emit_32(1104850924);
emit_32(3254386688);
emit_32(3269115904);
emit_32(1105116162);
emit_32(3254386688);
emit_32(3268603937);
emit_32(1105713640);
emit_32(3254386688);
emit_32(3268091970);
emit_32(1105431311);
emit_32(3254386688);
emit_32(3267579911);
emit_32(1105504921);
emit_32(3254386688);
emit_32(3267067904);
emit_32(1105722658);
emit_32(3254386688);
emit_32(3266555911);
emit_32(1106419279);
emit_32(3254386688);
emit_32(3266043904);
emit_32(1106556905);
emit_32(3254386688);
emit_32(3265531911);
emit_32(1106183088);
emit_32(3254386688);
emit_32(3265019904);
emit_32(1105580681);
emit_32(3254386688);
emit_32(3264507911);
emit_32(1105335366);
emit_32(3254386688);
emit_32(3263995904);
emit_32(1104986348);
emit_32(3254386688);
emit_32(3263483911);
emit_32(1105341763);
emit_32(3254386688);
emit_32(3262775296);
emit_32(1105698541);
emit_32(3254386688);
emit_32(3261751309);
emit_32(1105960737);
emit_32(3254386688);
emit_32(3260727296);
emit_32(1106331828);
emit_32(3254386688);
emit_32(3259703309);
emit_32(1107459886);
emit_32(3254386688);
emit_32(3258679296);
emit_32(1108153677);
emit_32(3254386688);
emit_32(3257655309);
emit_32(1108782508);
emit_32(3254386688);
emit_32(3256631296);
emit_32(1109432127);
emit_32(3254386688);
emit_32(3255607309);
emit_32(1110052097);
emit_32(3254386688);
emit_32(3254386688);
emit_32(1110875832);
emit_32(3254386688);
emit_32(3252338714);
emit_32(1111641214);
emit_32(3254386688);
emit_32(3250290688);
emit_32(1112331230);
emit_32(3254386688);
emit_32(3248242714);
emit_32(1112948054);
emit_32(3254386688);
emit_32(3245998080);
emit_32(1113423243);
emit_32(3254386688);
emit_32(3241902132);
emit_32(1113710579);
emit_32(3254386688);
emit_32(3237609472);
emit_32(1113669763);
emit_32(3254386688);
emit_32(3229220864);
emit_32(1114121516);
emit_32(3254386688);
emit_32(0);
emit_32(1114484769);
emit_32(3254386688);
emit_32(1081737216);
emit_32(1114484349);
emit_32(3254386688);
emit_32(3279552512);
emit_32(1072117538);
emit_32(3255607309);
emit_32(3279296528);
emit_32(1066548005);
emit_32(3255607309);
emit_32(3279040545);
emit_32(1074090329);
emit_32(3255607309);
emit_32(3278784496);
emit_32(1080727353);
emit_32(3255607309);
emit_32(3278528512);
emit_32(1083163300);
emit_32(3255607309);
emit_32(3278272528);
emit_32(1085569447);
emit_32(3255607309);
emit_32(3278016545);
emit_32(1089130264);
emit_32(3255607309);
emit_32(3277760496);
emit_32(1091726821);
emit_32(3255607309);
emit_32(3277504512);
emit_32(1092664741);
emit_32(3255607309);
emit_32(3277248528);
emit_32(1094453402);
emit_32(3255607309);
emit_32(3276992545);
emit_32(1095438854);
emit_32(3255607309);
emit_32(3276736496);
emit_32(1096833145);
emit_32(3255607309);
emit_32(3276480512);
emit_32(1097840722);
emit_32(3255607309);
emit_32(3276224528);
emit_32(1099027500);
emit_32(3255607309);
emit_32(3275968545);
emit_32(1099544815);
emit_32(3255607309);
emit_32(3275712496);
emit_32(1099992505);
emit_32(3255607309);
emit_32(3275456512);
emit_32(1100930351);
emit_32(3255607309);
emit_32(3275200528);
emit_32(1102195720);
emit_32(3255607309);
emit_32(3274944545);
emit_32(1103964773);
emit_32(3255607309);
emit_32(3274688496);
emit_32(1105022262);
emit_32(3255607309);
emit_32(3274432512);
emit_32(1105539419);
emit_32(3255607309);
emit_32(3274176528);
emit_32(1106031097);
emit_32(3255607309);
emit_32(3273920545);
emit_32(1106016050);
emit_32(3255607309);
emit_32(3273664496);
emit_32(1106647135);
emit_32(3255607309);
emit_32(3273408512);
emit_32(1106967003);
emit_32(3255607309);
emit_32(3273152528);
emit_32(1107003861);
emit_32(3255607309);
emit_32(3272896545);
emit_32(1107169273);
emit_32(3255607309);
emit_32(3272640496);
emit_32(1106842170);
emit_32(3255607309);
emit_32(3272384512);
emit_32(1105904481);
emit_32(3255607309);
emit_32(3272128528);
emit_32(1105234493);
emit_32(3255607309);
emit_32(3271872545);
emit_32(1105294944);
emit_32(3255607309);
emit_32(3271616496);
emit_32(1105337988);
emit_32(3255607309);
emit_32(3271163904);
emit_32(1104796765);
emit_32(3255607309);
emit_32(3270651937);
emit_32(1104285113);
emit_32(3255607309);
emit_32(3270139970);
emit_32(1103883875);
emit_32(3255607309);
emit_32(3269627871);
emit_32(1103911662);
emit_32(3255607309);
emit_32(3269115904);
emit_32(1104082528);
emit_32(3255607309);
emit_32(3268603937);
emit_32(1105166231);
emit_32(3255607309);
emit_32(3268091970);
emit_32(1105162718);
emit_32(3255607309);
emit_32(3267579911);
emit_32(1105161460);
emit_32(3255607309);
emit_32(3267067904);
emit_32(1105681397);
emit_32(3255607309);
emit_32(3266555911);
emit_32(1106322129);
emit_32(3255607309);
emit_32(3266043904);
emit_32(1106430080);
emit_32(3255607309);
emit_32(3265531911);
emit_32(1106116084);
emit_32(3255607309);
emit_32(3265019904);
emit_32(1105862643);
emit_32(3255607309);
emit_32(3264507911);
emit_32(1105647947);
emit_32(3255607309);
emit_32(3263995904);
emit_32(1105573655);
emit_32(3255607309);
emit_32(3263483911);
emit_32(1105891374);
emit_32(3255607309);
emit_32(3262775296);
emit_32(1106077339);
emit_32(3255607309);
emit_32(3261751309);
emit_32(1106805889);
emit_32(3255607309);
emit_32(3260727296);
emit_32(1107381269);
emit_32(3255607309);
emit_32(3259703309);
emit_32(1107945325);
emit_32(3255607309);
emit_32(3258679296);
emit_32(1108632771);
emit_32(3255607309);
emit_32(3257655309);
emit_32(1109426989);
emit_32(3255607309);
emit_32(3256631296);
emit_32(1110034927);
emit_32(3255607309);
emit_32(3255607309);
emit_32(1110881652);
emit_32(3255607309);
emit_32(3254386688);
emit_32(1111900946);
emit_32(3255607309);
emit_32(3252338714);
emit_32(1112428590);
emit_32(3255607309);
emit_32(3250290688);
emit_32(1112879923);
emit_32(3255607309);
emit_32(3248242714);
emit_32(1113433755);
emit_32(3255607309);
emit_32(3245998080);
emit_32(1113801412);
emit_32(3255607309);
emit_32(3241902132);
emit_32(1113823248);
emit_32(3255607309);
emit_32(3237609472);
emit_32(1114004154);
emit_32(3255607309);
emit_32(3229220864);
emit_32(1114356344);
emit_32(3255607309);
emit_32(0);
emit_32(1114696502);
emit_32(3255607309);
emit_32(1081737216);
emit_32(1114694274);
emit_32(3255607309);
emit_32(3279552512);
emit_32(1076255680);
emit_32(3256631296);
emit_32(3279296528);
emit_32(1069990271);
emit_32(3256631296);
emit_32(3279040545);
emit_32(1068896816);
emit_32(3256631296);
emit_32(3278784496);
emit_32(1077023364);
emit_32(3256631296);
emit_32(3278528512);
emit_32(1081539790);
emit_32(3256631296);
emit_32(3278272528);
emit_32(1084255287);
emit_32(3256631296);
emit_32(3278016545);
emit_32(1087513968);
emit_32(3256631296);
emit_32(3277760496);
emit_32(1090514049);
emit_32(3256631296);
emit_32(3277504512);
emit_32(1092329323);
emit_32(3256631296);
emit_32(3277248528);
emit_32(1094687130);
emit_32(3256631296);
emit_32(3276992545);
emit_32(1095553044);
emit_32(3256631296);
emit_32(3276736496);
emit_32(1096485647);
emit_32(3256631296);
emit_32(3276480512);
emit_32(1097021994);
emit_32(3256631296);
emit_32(3276224528);
emit_32(1097731565);
emit_32(3256631296);
emit_32(3275968545);
emit_32(1099236114);
emit_32(3256631296);
emit_32(3275712496);
emit_32(1099466539);
emit_32(3256631296);
emit_32(3275456512);
emit_32(1100645820);
emit_32(3256631296);
emit_32(3275200528);
emit_32(1102788270);
emit_32(3256631296);
emit_32(3274944545);
emit_32(1104259213);
emit_32(3256631296);
emit_32(3274688496);
emit_32(1105157161);
emit_32(3256631296);
emit_32(3274432512);
emit_32(1105746199);
emit_32(3256631296);
emit_32(3274176528);
emit_32(1105646689);
emit_32(3256631296);
emit_32(3273920545);
emit_32(1106061296);
emit_32(3256631296);
emit_32(3273664496);
emit_32(1106358777);
emit_32(3256631296);
emit_32(3273408512);
emit_32(1106493728);
emit_32(3256631296);
emit_32(3273152528);
emit_32(1106565556);
emit_32(3256631296);
emit_32(3272896545);
emit_32(1106704649);
emit_32(3256631296);
emit_32(3272640496);
emit_32(1106418231);
emit_32(3256631296);
emit_32(3272384512);
emit_32(1105930014);
emit_32(3256631296);
emit_32(3272128528);
emit_32(1105073589);
emit_32(3256631296);
emit_32(3271872545);
emit_32(1104573104);
emit_32(3256631296);
emit_32(3271616496);
emit_32(1104491368);
emit_32(3256631296);
emit_32(3271163904);
emit_32(1103992822);
emit_32(3256631296);
emit_32(3270651937);
emit_32(1103347004);
emit_32(3256631296);
emit_32(3270139970);
emit_32(1103160882);
emit_32(3256631296);
emit_32(3269627871);
emit_32(1103581256);
emit_32(3256631296);
emit_32(3269115904);
emit_32(1103924874);
emit_32(3256631296);
emit_32(3268603937);
emit_32(1103872184);
emit_32(3256631296);
emit_32(3268091970);
emit_32(1104525237);
emit_32(3256631296);
emit_32(3267579911);
emit_32(1104546785);
emit_32(3256631296);
emit_32(3267067904);
emit_32(1105161250);
emit_32(3256631296);
emit_32(3266555911);
emit_32(1105731204);
emit_32(3256631296);
emit_32(3266043904);
emit_32(1105909881);
emit_32(3256631296);
emit_32(3265531911);
emit_32(1106044990);
emit_32(3256631296);
emit_32(3265019904);
emit_32(1105972009);
emit_32(3256631296);
emit_32(3264507911);
emit_32(1105900444);
emit_32(3256631296);
emit_32(3263995904);
emit_32(1106042264);
emit_32(3256631296);
emit_32(3263483911);
emit_32(1105966347);
emit_32(3256631296);
emit_32(3262775296);
emit_32(1106865029);
emit_32(3256631296);
emit_32(3261751309);
emit_32(1107485707);
emit_32(3256631296);
emit_32(3260727296);
emit_32(1107879081);
emit_32(3256631296);
emit_32(3259703309);
emit_32(1108393643);
emit_32(3256631296);
emit_32(3258679296);
emit_32(1109055845);
emit_32(3256631296);
emit_32(3257655309);
emit_32(1109718362);
emit_32(3256631296);
emit_32(3256631296);
emit_32(1110595522);
emit_32(3256631296);
emit_32(3255607309);
emit_32(1111233213);
emit_32(3256631296);
emit_32(3254386688);
emit_32(1112275236);
emit_32(3256631296);
emit_32(3252338714);
emit_32(1112879058);
emit_32(3256631296);
emit_32(3250290688);
emit_32(1113378678);
emit_32(3256631296);
emit_32(3248242714);
emit_32(1113688847);
emit_32(3256631296);
emit_32(3245998080);
emit_32(1114075693);
emit_32(3256631296);
emit_32(3241902132);
emit_32(1114046857);
emit_32(3256631296);
emit_32(3237609472);
emit_32(1114323576);
emit_32(3256631296);
emit_32(3229220864);
emit_32(1114565509);
emit_32(3256631296);
emit_32(0);
emit_32(1114610047);
emit_32(3256631296);
emit_32(1081737216);
emit_32(1114612538);
emit_32(3256631296);
emit_32(3279552512);
emit_32(1076804295);
emit_32(3257655309);
emit_32(3279296528);
emit_32(1073151266);
emit_32(3257655309);
emit_32(3279040545);
emit_32(1073776846);
emit_32(3257655309);
emit_32(3278784496);
emit_32(1078617493);
emit_32(3257655309);
emit_32(3278528512);
emit_32(1079412439);
emit_32(3257655309);
emit_32(3278272528);
emit_32(1083194359);
emit_32(3257655309);
emit_32(3278016545);
emit_32(1086932302);
emit_32(3257655309);
emit_32(3277760496);
emit_32(1090303516);
emit_32(3257655309);
emit_32(3277504512);
emit_32(1091865904);
emit_32(3257655309);
emit_32(3277248528);
emit_32(1094115865);
emit_32(3257655309);
emit_32(3276992545);
emit_32(1095463705);
emit_32(3257655309);
emit_32(3276736496);
emit_32(1096420531);
emit_32(3257655309);
emit_32(3276480512);
emit_32(1097432511);
emit_32(3257655309);
emit_32(3276224528);
emit_32(1097662883);
emit_32(3257655309);
emit_32(3275968545);
emit_32(1098694263);
emit_32(3257655309);
emit_32(3275712496);
emit_32(1099094871);
emit_32(3257655309);
emit_32(3275456512);
emit_32(1101139542);
emit_32(3257655309);
emit_32(3275200528);
emit_32(1102734583);
emit_32(3257655309);
emit_32(3274944545);
emit_32(1103866521);
emit_32(3257655309);
emit_32(3274688496);
emit_32(1104826178);
emit_32(3257655309);
emit_32(3274432512);
emit_32(1105191869);
emit_32(3257655309);
emit_32(3274176528);
emit_32(1105342759);
emit_32(3257655309);
emit_32(3273920545);
emit_32(1105684804);
emit_32(3257655309);
emit_32(3273664496);
emit_32(1105820647);
emit_32(3257655309);
emit_32(3273408512);
emit_32(1106189903);
emit_32(3257655309);
emit_32(3273152528);
emit_32(1105981447);
emit_32(3257655309);
emit_32(3272896545);
emit_32(1105858134);
emit_32(3257655309);
emit_32(3272640496);
emit_32(1105678146);
emit_32(3257655309);
emit_32(3272384512);
emit_32(1104998826);
emit_32(3257655309);
emit_32(3272128528);
emit_32(1104598218);
emit_32(3257655309);
emit_32(3271872545);
emit_32(1104297643);
emit_32(3257655309);
emit_32(3271616496);
emit_32(1103698487);
emit_32(3257655309);
emit_32(3271163904);
emit_32(1103368290);
emit_32(3257655309);
emit_32(3270651937);
emit_32(1103021107);
emit_32(3257655309);
emit_32(3270139970);
emit_32(1102840332);
emit_32(3257655309);
emit_32(3269627871);
emit_32(1103133042);
emit_32(3257655309);
emit_32(3269115904);
emit_32(1103173570);
emit_32(3257655309);
emit_32(3268603937);
emit_32(1103141274);
emit_32(3257655309);
emit_32(3268091970);
emit_32(1103365407);
emit_32(3257655309);
emit_32(3267579911);
emit_32(1103545342);
emit_32(3257655309);
emit_32(3267067904);
emit_32(1104414140);
emit_32(3257655309);
emit_32(3266555911);
emit_32(1104666532);
emit_32(3257655309);
emit_32(3266043904);
emit_32(1105496480);
emit_32(3257655309);
emit_32(3265531911);
emit_32(1105715423);
emit_32(3257655309);
emit_32(3265019904);
emit_32(1105801196);
emit_32(3257655309);
emit_32(3264507911);
emit_32(1105657070);
emit_32(3257655309);
emit_32(3263995904);
emit_32(1106199708);
emit_32(3257655309);
emit_32(3263483911);
emit_32(1107111182);
emit_32(3257655309);
emit_32(3262775296);
emit_32(1107520468);
emit_32(3257655309);
emit_32(3261751309);
emit_32(1107938194);
emit_32(3257655309);
emit_32(3260727296);
emit_32(1108285168);
emit_32(3257655309);
emit_32(3259703309);
emit_32(1109004937);
emit_32(3257655309);
emit_32(3258679296);
emit_32(1109555675);
emit_32(3257655309);
emit_32(3257655309);
emit_32(1110079124);
emit_32(3257655309);
emit_32(3256631296);
emit_32(1110954659);
emit_32(3257655309);
emit_32(3255607309);
emit_32(1111702136);
emit_32(3257655309);
emit_32(3254386688);
emit_32(1112419205);
emit_32(3257655309);
emit_32(3252338714);
emit_32(1113101723);
emit_32(3257655309);
emit_32(3250290688);
emit_32(1113769509);
emit_32(3257655309);
emit_32(3248242714);
emit_32(1113942393);
emit_32(3257655309);
emit_32(3245998080);
emit_32(1114187760);
emit_32(3257655309);
emit_32(3241902132);
emit_32(1114233451);
emit_32(3257655309);
emit_32(3237609472);
emit_32(1114375009);
emit_32(3257655309);
emit_32(3229220864);
emit_32(1114534052);
emit_32(3257655309);
emit_32(0);
emit_32(1114534445);
emit_32(3257655309);
emit_32(1081737216);
emit_32(1114510642);
emit_32(3257655309);
emit_32(3279552512);
emit_32(1073972469);
emit_32(3258679296);
emit_32(3279296528);
emit_32(1069063330);
emit_32(3258679296);
emit_32(3279040545);
emit_32(1073401750);
emit_32(3258679296);
emit_32(3278784496);
emit_32(1075865903);
emit_32(3258679296);
emit_32(3278528512);
emit_32(1078931520);
emit_32(3258679296);
emit_32(3278272528);
emit_32(1083096191);
emit_32(3258679296);
emit_32(3278016545);
emit_32(1086698344);
emit_32(3258679296);
emit_32(3277760496);
emit_32(1089640354);
emit_32(3258679296);
emit_32(3277504512);
emit_32(1091993652);
emit_32(3258679296);
emit_32(3277248528);
emit_32(1094077907);
emit_32(3258679296);
emit_32(3276992545);
emit_32(1095184469);
emit_32(3258679296);
emit_32(3276736496);
emit_32(1095896243);
emit_32(3258679296);
emit_32(3276480512);
emit_32(1096633916);
emit_32(3258679296);
emit_32(3276224528);
emit_32(1096975542);
emit_32(3258679296);
emit_32(3275968545);
emit_32(1097889376);
emit_32(3258679296);
emit_32(3275712496);
emit_32(1099541774);
emit_32(3258679296);
emit_32(3275456512);
emit_32(1101179178);
emit_32(3258679296);
emit_32(3275200528);
emit_32(1102317932);
emit_32(3258679296);
emit_32(3274944545);
emit_32(1103521278);
emit_32(3258679296);
emit_32(3274688496);
emit_32(1104345983);
emit_32(3258679296);
emit_32(3274432512);
emit_32(1104852759);
emit_32(3258679296);
emit_32(3274176528);
emit_32(1104831526);
emit_32(3258679296);
emit_32(3273920545);
emit_32(1104946974);
emit_32(3258679296);
emit_32(3273664496);
emit_32(1105281994);
emit_32(3258679296);
emit_32(3273408512);
emit_32(1105386275);
emit_32(3258679296);
emit_32(3273152528);
emit_32(1104804053);
emit_32(3258679296);
emit_32(3272896545);
emit_32(1105020374);
emit_32(3258679296);
emit_32(3272640496);
emit_32(1104527806);
emit_32(3258679296);
emit_32(3272384512);
emit_32(1103824211);
emit_32(3258679296);
emit_32(3272128528);
emit_32(1103687791);
emit_32(3258679296);
emit_32(3271872545);
emit_32(1103464392);
emit_32(3258679296);
emit_32(3271616496);
emit_32(1103011774);
emit_32(3258679296);
emit_32(3271163904);
emit_32(1102466777);
emit_32(3258679296);
emit_32(3270651937);
emit_32(1102908804);
emit_32(3258679296);
emit_32(3270139970);
emit_32(1102728659);
emit_32(3258679296);
emit_32(3269627871);
emit_32(1102517318);
emit_32(3258679296);
emit_32(3269115904);
emit_32(1102387190);
emit_32(3258679296);
emit_32(3268603937);
emit_32(1102173019);
emit_32(3258679296);
emit_32(3268091970);
emit_32(1102448637);
emit_32(3258679296);
emit_32(3267579911);
emit_32(1102804104);
emit_32(3258679296);
emit_32(3267067904);
emit_32(1103652140);
emit_32(3258679296);
emit_32(3266555911);
emit_32(1104033035);
emit_32(3258679296);
emit_32(3266043904);
emit_32(1104794721);
emit_32(3258679296);
emit_32(3265531911);
emit_32(1105280578);
emit_32(3258679296);
emit_32(3265019904);
emit_32(1105555305);
emit_32(3258679296);
emit_32(3264507911);
emit_32(1106497398);
emit_32(3258679296);
emit_32(3263995904);
emit_32(1107356549);
emit_32(3258679296);
emit_32(3263483911);
emit_32(1107738440);
emit_32(3258679296);
emit_32(3262775296);
emit_32(1108026091);
emit_32(3258679296);
emit_32(3261751309);
emit_32(1108412596);
emit_32(3258679296);
emit_32(3260727296);
emit_32(1108935547);
emit_32(3258679296);
emit_32(3259703309);
emit_32(1109269178);
emit_32(3258679296);
emit_32(3258679296);
emit_32(1109856774);
emit_32(3258679296);
emit_32(3257655309);
emit_32(1110673955);
emit_32(3258679296);
emit_32(3256631296);
emit_32(1111396031);
emit_32(3258679296);
emit_32(3255607309);
emit_32(1111904302);
emit_32(3258679296);
emit_32(3254386688);
emit_32(1112640612);
emit_32(3258679296);
emit_32(3252338714);
emit_32(1113308083);
emit_32(3258679296);
emit_32(3250290688);
emit_32(1113763480);
emit_32(3258679296);
emit_32(3248242714);
emit_32(1113823117);
emit_32(3258679296);
emit_32(3245998080);
emit_32(1114289734);
emit_32(3258679296);
emit_32(3241902132);
emit_32(1114547028);
emit_32(3258679296);
emit_32(3237609472);
emit_32(1114378417);
emit_32(3258679296);
emit_32(3229220864);
emit_32(1114468175);
emit_32(3258679296);
emit_32(0);
emit_32(1114253689);
emit_32(3258679296);
emit_32(1081737216);
emit_32(1114350184);
emit_32(3258679296);
emit_32(3279552512);
emit_32(1076163699);
emit_32(3259703309);
emit_32(3279296528);
emit_32(1074005017);
emit_32(3259703309);
emit_32(3279040545);
emit_32(1074851343);
emit_32(3259703309);
emit_32(3278784496);
emit_32(1075567479);
emit_32(3259703309);
emit_32(3278528512);
emit_32(1076420223);
emit_32(3259703309);
emit_32(3278272528);
emit_32(1083073395);
emit_32(3259703309);
emit_32(3278016545);
emit_32(1087377339);
emit_32(3259703309);
emit_32(3277760496);
emit_32(1090634446);
emit_32(3259703309);
emit_32(3277504512);
emit_32(1092723461);
emit_32(3259703309);
emit_32(3277248528);
emit_32(1094053580);
emit_32(3259703309);
emit_32(3276992545);
emit_32(1095488766);
emit_32(3259703309);
emit_32(3276736496);
emit_32(1096447794);
emit_32(3259703309);
emit_32(3276480512);
emit_32(1096424305);
emit_32(3259703309);
emit_32(3276224528);
emit_32(1096267648);
emit_32(3259703309);
emit_32(3275968545);
emit_32(1098177000);
emit_32(3259703309);
emit_32(3275712496);
emit_32(1099698536);
emit_32(3259703309);
emit_32(3275456512);
emit_32(1100780981);
emit_32(3259703309);
emit_32(3275200528);
emit_32(1102100247);
emit_32(3259703309);
emit_32(3274944545);
emit_32(1103045696);
emit_32(3259703309);
emit_32(3274688496);
emit_32(1103591375);
emit_32(3259703309);
emit_32(3274432512);
emit_32(1104209510);
emit_32(3259703309);
emit_32(3274176528);
emit_32(1104099882);
emit_32(3259703309);
emit_32(3273920545);
emit_32(1104651171);
emit_32(3259703309);
emit_32(3273664496);
emit_32(1104566760);
emit_32(3259703309);
emit_32(3273408512);
emit_32(1104331250);
emit_32(3259703309);
emit_32(3273152528);
emit_32(1103945269);
emit_32(3259703309);
emit_32(3272896545);
emit_32(1103774247);
emit_32(3259703309);
emit_32(3272640496);
emit_32(1103880729);
emit_32(3259703309);
emit_32(3272384512);
emit_32(1103052669);
emit_32(3259703309);
emit_32(3272128528);
emit_32(1102949594);
emit_32(3259703309);
emit_32(3271872545);
emit_32(1102556640);
emit_32(3259703309);
emit_32(3271616496);
emit_32(1102215329);
emit_32(3259703309);
emit_32(3271163904);
emit_32(1102211711);
emit_32(3259703309);
emit_32(3270651937);
emit_32(1102750102);
emit_32(3259703309);
emit_32(3270139970);
emit_32(1102672246);
emit_32(3259703309);
emit_32(3269627871);
emit_32(1102404282);
emit_32(3259703309);
emit_32(3269115904);
emit_32(1101664721);
emit_32(3259703309);
emit_32(3268603937);
emit_32(1101247965);
emit_32(3259703309);
emit_32(3268091970);
emit_32(1101781742);
emit_32(3259703309);
emit_32(3267579911);
emit_32(1102060559);
emit_32(3259703309);
emit_32(3267067904);
emit_32(1102827382);
emit_32(3259703309);
emit_32(3266555911);
emit_32(1103737651);
emit_32(3259703309);
emit_32(3266043904);
emit_32(1104384360);
emit_32(3259703309);
emit_32(3265531911);
emit_32(1104969151);
emit_32(3259703309);
emit_32(3265019904);
emit_32(1106019143);
emit_32(3259703309);
emit_32(3264507911);
emit_32(1106853337);
emit_32(3259703309);
emit_32(3263995904);
emit_32(1107698306);
emit_32(3259703309);
emit_32(3263483911);
emit_32(1108253868);
emit_32(3259703309);
emit_32(3262775296);
emit_32(1108408245);
emit_32(3259703309);
emit_32(3261751309);
emit_32(1108719619);
emit_32(3259703309);
emit_32(3260727296);
emit_32(1109327662);
emit_32(3259703309);
emit_32(3259703309);
emit_32(1109785051);
emit_32(3259703309);
emit_32(3258679296);
emit_32(1110584826);
emit_32(3259703309);
emit_32(3257655309);
emit_32(1111298907);
emit_32(3259703309);
emit_32(3256631296);
emit_32(1111928472);
emit_32(3259703309);
emit_32(3255607309);
emit_32(1112511401);
emit_32(3259703309);
emit_32(3254386688);
emit_32(1113049871);
emit_32(3259703309);
emit_32(3252338714);
emit_32(1113389636);
emit_32(3259703309);
emit_32(3250290688);
emit_32(1113731419);
emit_32(3259703309);
emit_32(3248242714);
emit_32(1114257359);
emit_32(3259703309);
emit_32(3245998080);
emit_32(1114519870);
emit_32(3259703309);
emit_32(3241902132);
emit_32(1114340039);
emit_32(3259703309);
emit_32(3237609472);
emit_32(1114383922);
emit_32(3259703309);
emit_32(3229220864);
emit_32(1114528390);
emit_32(3259703309);
emit_32(0);
emit_32(1114544302);
emit_32(3259703309);
emit_32(1081737216);
emit_32(1114597202);
emit_32(3259703309);
emit_32(3279552512);
emit_32(1073915300);
emit_32(3260727296);
emit_32(3279296528);
emit_32(1076045336);
emit_32(3260727296);
emit_32(3279040545);
emit_32(1076717767);
emit_32(3260727296);
emit_32(3278784496);
emit_32(1077967921);
emit_32(3260727296);
emit_32(3278528512);
emit_32(1080230706);
emit_32(3260727296);
emit_32(3278272528);
emit_32(1084434174);
emit_32(3260727296);
emit_32(3278016545);
emit_32(1088619209);
emit_32(3260727296);
emit_32(3277760496);
emit_32(1090948694);
emit_32(3260727296);
emit_32(3277504512);
emit_32(1092674388);
emit_32(3260727296);
emit_32(3277248528);
emit_32(1094185071);
emit_32(3260727296);
emit_32(3276992545);
emit_32(1094902717);
emit_32(3260727296);
emit_32(3276736496);
emit_32(1095470101);
emit_32(3260727296);
emit_32(3276480512);
emit_32(1095440531);
emit_32(3260727296);
emit_32(3276224528);
emit_32(1096837654);
emit_32(3260727296);
emit_32(3275968545);
emit_32(1098967784);
emit_32(3260727296);
emit_32(3275712496);
emit_32(1100160067);
emit_32(3260727296);
emit_32(3275456512);
emit_32(1100666582);
emit_32(3260727296);
emit_32(3275200528);
emit_32(1101873178);
emit_32(3260727296);
emit_32(3274944545);
emit_32(1102572736);
emit_32(3260727296);
emit_32(3274688496);
emit_32(1102982834);
emit_32(3260727296);
emit_32(3274432512);
emit_32(1103746092);
emit_32(3260727296);
emit_32(3274176528);
emit_32(1104190584);
emit_32(3260727296);
emit_32(3273920545);
emit_32(1104541647);
emit_32(3260727296);
emit_32(3273664496);
emit_32(1104309335);
emit_32(3260727296);
emit_32(3273408512);
emit_32(1103949831);
emit_32(3260727296);
emit_32(3273152528);
emit_32(1103383495);
emit_32(3260727296);
emit_32(3272896545);
emit_32(1103021107);
emit_32(3260727296);
emit_32(3272640496);
emit_32(1102773014);
emit_32(3260727296);
emit_32(3272384512);
emit_32(1102509192);
emit_32(3260727296);
emit_32(3272128528);
emit_32(1102328470);
emit_32(3260727296);
emit_32(3271872545);
emit_32(1101757678);
emit_32(3260727296);
emit_32(3271616496);
emit_32(1101776133);
emit_32(3260727296);
emit_32(3271163904);
emit_32(1102138363);
emit_32(3260727296);
emit_32(3270651937);
emit_32(1102294496);
emit_32(3260727296);
emit_32(3270139970);
emit_32(1101746563);
emit_32(3260727296);
emit_32(3269627871);
emit_32(1101436656);
emit_32(3260727296);
emit_32(3269115904);
emit_32(1100808559);
emit_32(3260727296);
emit_32(3268603937);
emit_32(1101081451);
emit_32(3260727296);
emit_32(3268091970);
emit_32(1101838156);
emit_32(3260727296);
emit_32(3267579911);
emit_32(1102177947);
emit_32(3260727296);
emit_32(3267067904);
emit_32(1102933656);
emit_32(3260727296);
emit_32(3266555911);
emit_32(1103594940);
emit_32(3260727296);
emit_32(3266043904);
emit_32(1104370991);
emit_32(3260727296);
emit_32(3265531911);
emit_32(1105153229);
emit_32(3260727296);
emit_32(3265019904);
emit_32(1106283803);
emit_32(3260727296);
emit_32(3264507911);
emit_32(1107489928);
emit_32(3260727296);
emit_32(3263995904);
emit_32(1107912347);
emit_32(3260727296);
emit_32(3263483911);
emit_32(1108259976);
emit_32(3260727296);
emit_32(3262775296);
emit_32(1108728218);
emit_32(3260727296);
emit_32(3261751309);
emit_32(1108959507);
emit_32(3260727296);
emit_32(3260727296);
emit_32(1109551402);
emit_32(3260727296);
emit_32(3259703309);
emit_32(1110560788);
emit_32(3260727296);
emit_32(3258679296);
emit_32(1111390473);
emit_32(3260727296);
emit_32(3257655309);
emit_32(1111954109);
emit_32(3260727296);
emit_32(3256631296);
emit_32(1112588288);
emit_32(3260727296);
emit_32(3255607309);
emit_32(1113193211);
emit_32(3260727296);
emit_32(3254386688);
emit_32(1113572953);
emit_32(3260727296);
emit_32(3252338714);
emit_32(1113885324);
emit_32(3260727296);
emit_32(3250290688);
emit_32(1114116194);
emit_32(3260727296);
emit_32(3248242714);
emit_32(1114531771);
emit_32(3260727296);
emit_32(3245998080);
emit_32(1114632933);
emit_32(3260727296);
emit_32(3241902132);
emit_32(1114591697);
emit_32(3260727296);
emit_32(3237609472);
emit_32(1114663420);
emit_32(3260727296);
emit_32(3229220864);
emit_32(1114860631);
emit_32(3260727296);
emit_32(0);
emit_32(1114783587);
emit_32(3260727296);
emit_32(1081737216);
emit_32(1114739258);
emit_32(3260727296);
emit_32(3279552512);
emit_32(1082154906);
emit_32(3261751309);
emit_32(3279296528);
emit_32(1078227213);
emit_32(3261751309);
emit_32(3279040545);
emit_32(1079515745);
emit_32(3261751309);
emit_32(3278784496);
emit_32(1080953133);
emit_32(3261751309);
emit_32(3278528512);
emit_32(1082315317);
emit_32(3261751309);
emit_32(3278272528);
emit_32(1085410084);
emit_32(3261751309);
emit_32(3278016545);
emit_32(1089116884);
emit_32(3261751309);
emit_32(3277760496);
emit_32(1091162058);
emit_32(3261751309);
emit_32(3277504512);
emit_32(1092383922);
emit_32(3261751309);
emit_32(3277248528);
emit_32(1094686500);
emit_32(3261751309);
emit_32(3276992545);
emit_32(1095695440);
emit_32(3261751309);
emit_32(3276736496);
emit_32(1096304558);
emit_32(3261751309);
emit_32(3276480512);
emit_32(1096755970);
emit_32(3261751309);
emit_32(3276224528);
emit_32(1097235484);
emit_32(3261751309);
emit_32(3275968545);
emit_32(1098986081);
emit_32(3261751309);
emit_32(3275712496);
emit_32(1099885602);
emit_32(3261751309);
emit_32(3275456512);
emit_32(1100472805);
emit_32(3261751309);
emit_32(3275200528);
emit_32(1101685588);
emit_32(3261751309);
emit_32(3274944545);
emit_32(1102836243);
emit_32(3261751309);
emit_32(3274688496);
emit_32(1103812048);
emit_32(3261751309);
emit_32(3274432512);
emit_32(1104207518);
emit_32(3261751309);
emit_32(3274176528);
emit_32(1104457970);
emit_32(3261751309);
emit_32(3273920545);
emit_32(1104083891);
emit_32(3261751309);
emit_32(3273664496);
emit_32(1103629805);
emit_32(3261751309);
emit_32(3273408512);
emit_32(1103776553);
emit_32(3261751309);
emit_32(3273152528);
emit_32(1103074794);
emit_32(3261751309);
emit_32(3272896545);
emit_32(1102698250);
emit_32(3261751309);
emit_32(3272640496);
emit_32(1102376914);
emit_32(3261751309);
emit_32(3272384512);
emit_32(1101790760);
emit_32(3261751309);
emit_32(3272128528);
emit_32(1101572184);
emit_32(3261751309);
emit_32(3271872545);
emit_32(1101531028);
emit_32(3261751309);
emit_32(3271616496);
emit_32(1101967498);
emit_32(3261751309);
emit_32(3271163904);
emit_32(1101842874);
emit_32(3261751309);
emit_32(3270651937);
emit_32(1101503398);
emit_32(3261751309);
emit_32(3270139970);
emit_32(1101637406);
emit_32(3261751309);
emit_32(3269627871);
emit_32(1100872627);
emit_32(3261751309);
emit_32(3269115904);
emit_32(1100259629);
emit_32(3261751309);
emit_32(3268603937);
emit_32(1101213676);
emit_32(3261751309);
emit_32(3268091970);
emit_32(1102188118);
emit_32(3261751309);
emit_32(3267579911);
emit_32(1102756499);
emit_32(3261751309);
emit_32(3267067904);
emit_32(1103291744);
emit_32(3261751309);
emit_32(3266555911);
emit_32(1104021763);
emit_32(3261751309);
emit_32(3266043904);
emit_32(1105069185);
emit_32(3261751309);
emit_32(3265531911);
emit_32(1105681659);
emit_32(3261751309);
emit_32(3265019904);
emit_32(1106673612);
emit_32(3261751309);
emit_32(3264507911);
emit_32(1107534728);
emit_32(3261751309);
emit_32(3263995904);
emit_32(1108049579);
emit_32(3261751309);
emit_32(3263483911);
emit_32(1108358411);
emit_32(3261751309);
emit_32(3262775296);
emit_32(1109001765);
emit_32(3261751309);
emit_32(3261751309);
emit_32(1109732911);
emit_32(3261751309);
emit_32(3260727296);
emit_32(1110268628);
emit_32(3261751309);
emit_32(3259703309);
emit_32(1111109324);
emit_32(3261751309);
emit_32(3258679296);
emit_32(1111815854);
emit_32(3261751309);
emit_32(3257655309);
emit_32(1112380434);
emit_32(3261751309);
emit_32(3256631296);
emit_32(1113088511);
emit_32(3261751309);
emit_32(3255607309);
emit_32(1113540657);
emit_32(3261751309);
emit_32(3254386688);
emit_32(1113874498);
emit_32(3261751309);
emit_32(3252338714);
emit_32(1114128672);
emit_32(3261751309);
emit_32(3250290688);
emit_32(1114325883);
emit_32(3261751309);
emit_32(3248242714);
emit_32(1114630023);
emit_32(3261751309);
emit_32(3245998080);
emit_32(1114691181);
emit_32(3261751309);
emit_32(3241902132);
emit_32(1114643497);
emit_32(3261751309);
emit_32(3237609472);
emit_32(1114924410);
emit_32(3261751309);
emit_32(3229220864);
emit_32(1115023894);
emit_32(3261751309);
emit_32(0);
emit_32(1115026751);
emit_32(3261751309);
emit_32(1081737216);
emit_32(1115049086);
emit_32(3261751309);
emit_32(3279552512);
emit_32(1085379717);
emit_32(3262775296);
emit_32(3279296528);
emit_32(1082515763);
emit_32(3262775296);
emit_32(3279040545);
emit_32(1081713392);
emit_32(3262775296);
emit_32(3278784496);
emit_32(1082674664);
emit_32(3262775296);
emit_32(3278528512);
emit_32(1083857751);
emit_32(3262775296);
emit_32(3278272528);
emit_32(1086391782);
emit_32(3262775296);
emit_32(3278016545);
emit_32(1089887986);
emit_32(3262775296);
emit_32(3277760496);
emit_32(1091366562);
emit_32(3262775296);
emit_32(3277504512);
emit_32(1093480323);
emit_32(3262775296);
emit_32(3277248528);
emit_32(1096367053);
emit_32(3262775296);
emit_32(3276992545);
emit_32(1097288647);
emit_32(3262775296);
emit_32(3276736496);
emit_32(1097900491);
emit_32(3262775296);
emit_32(3276480512);
emit_32(1097387737);
emit_32(3262775296);
emit_32(3276224528);
emit_32(1098997092);
emit_32(3262775296);
emit_32(3275968545);
emit_32(1099406141);
emit_32(3262775296);
emit_32(3275712496);
emit_32(1100061920);
emit_32(3262775296);
emit_32(3275456512);
emit_32(1100936328);
emit_32(3262775296);
emit_32(3275200528);
emit_32(1102376704);
emit_32(3262775296);
emit_32(3274944545);
emit_32(1103402212);
emit_32(3262775296);
emit_32(3274688496);
emit_32(1104153831);
emit_32(3262775296);
emit_32(3274432512);
emit_32(1104171447);
emit_32(3262775296);
emit_32(3274176528);
emit_32(1104486911);
emit_32(3262775296);
emit_32(3273920545);
emit_32(1103965769);
emit_32(3262775296);
emit_32(3273664496);
emit_32(1103343911);
emit_32(3262775296);
emit_32(3273408512);
emit_32(1102855274);
emit_32(3262775296);
emit_32(3273152528);
emit_32(1102990751);
emit_32(3262775296);
emit_32(3272896545);
emit_32(1102516113);
emit_32(3262775296);
emit_32(3272640496);
emit_32(1101872916);
emit_32(3262775296);
emit_32(3272384512);
emit_32(1101340606);
emit_32(3262775296);
emit_32(3272128528);
emit_32(1101093667);
emit_32(3262775296);
emit_32(3271872545);
emit_32(1101409288);
emit_32(3262775296);
emit_32(3271616496);
emit_32(1101315074);
emit_32(3262775296);
emit_32(3271163904);
emit_32(1101239471);
emit_32(3262775296);
emit_32(3270651937);
emit_32(1100955936);
emit_32(3262775296);
emit_32(3270139970);
emit_32(1100734163);
emit_32(3262775296);
emit_32(3269627871);
emit_32(1099873911);
emit_32(3262775296);
emit_32(3269115904);
emit_32(1100253023);
emit_32(3262775296);
emit_32(3268603937);
emit_32(1101062786);
emit_32(3262775296);
emit_32(3268091970);
emit_32(1101695916);
emit_32(3262775296);
emit_32(3267579911);
emit_32(1102727139);
emit_32(3262775296);
emit_32(3267067904);
emit_32(1103290748);
emit_32(3262775296);
emit_32(3266555911);
emit_32(1104346717);
emit_32(3262775296);
emit_32(3266043904);
emit_32(1105063261);
emit_32(3262775296);
emit_32(3265531911);
emit_32(1106002838);
emit_32(3262775296);
emit_32(3265019904);
emit_32(1107066723);
emit_32(3262775296);
emit_32(3264507911);
emit_32(1107631093);
emit_32(3262775296);
emit_32(3263995904);
emit_32(1108240630);
emit_32(3262775296);
emit_32(3263483911);
emit_32(1108980662);
emit_32(3262775296);
emit_32(3262775296);
emit_32(1109633532);
emit_32(3262775296);
emit_32(3261751309);
emit_32(1110425679);
emit_32(3262775296);
emit_32(3260727296);
emit_32(1110943098);
emit_32(3262775296);
emit_32(3259703309);
emit_32(1111573843);
emit_32(3262775296);
emit_32(3258679296);
emit_32(1112066674);
emit_32(3262775296);
emit_32(3257655309);
emit_32(1112658464);
emit_32(3262775296);
emit_32(3256631296);
emit_32(1113241131);
emit_32(3262775296);
emit_32(3255607309);
emit_32(1113628711);
emit_32(3262775296);
emit_32(3254386688);
emit_32(1113998361);
emit_32(3262775296);
emit_32(3252338714);
emit_32(1114315476);
emit_32(3262775296);
emit_32(3250290688);
emit_32(1114404291);
emit_32(3262775296);
emit_32(3248242714);
emit_32(1114257097);
emit_32(3262775296);
emit_32(3245998080);
emit_32(1114167496);
emit_32(3262775296);
emit_32(3241902132);
emit_32(1114396767);
emit_32(3262775296);
emit_32(3237609472);
emit_32(1114735247);
emit_32(3262775296);
emit_32(3229220864);
emit_32(1114903465);
emit_32(3262775296);
emit_32(0);
emit_32(1115124924);
emit_32(3262775296);
emit_32(1081737216);
emit_32(1115189700);
emit_32(3262775296);
emit_32(3279552512);
emit_32(1086492571);
emit_32(3263483911);
emit_32(3279296528);
emit_32(1084509819);
emit_32(3263483911);
emit_32(3279040545);
emit_32(1084430379);
emit_32(3263483911);
emit_32(3278784496);
emit_32(1085001978);
emit_32(3263483911);
emit_32(3278528512);
emit_32(1084687406);
emit_32(3263483911);
emit_32(3278272528);
emit_32(1087121591);
emit_32(3263483911);
emit_32(3278016545);
emit_32(1090205138);
emit_32(3263483911);
emit_32(3277760496);
emit_32(1091946330);
emit_32(3263483911);
emit_32(3277504512);
emit_32(1094604292);
emit_32(3263483911);
emit_32(3277248528);
emit_32(1096763205);
emit_32(3263483911);
emit_32(3276992545);
emit_32(1098349072);
emit_32(3263483911);
emit_32(3276736496);
emit_32(1098895589);
emit_32(3263483911);
emit_32(3276480512);
emit_32(1099139645);
emit_32(3263483911);
emit_32(3276224528);
emit_32(1099654916);
emit_32(3263483911);
emit_32(3275968545);
emit_32(1100028838);
emit_32(3263483911);
emit_32(3275712496);
emit_32(1100411096);
emit_32(3263483911);
emit_32(3275456512);
emit_32(1101073796);
emit_32(3263483911);
emit_32(3275200528);
emit_32(1102500803);
emit_32(3263483911);
emit_32(3274944545);
emit_32(1103383180);
emit_32(3263483911);
emit_32(3274688496);
emit_32(1103953081);
emit_32(3263483911);
emit_32(3274432512);
emit_32(1104117078);
emit_32(3263483911);
emit_32(3274176528);
emit_32(1104031777);
emit_32(3263483911);
emit_32(3273920545);
emit_32(1103706141);
emit_32(3263483911);
emit_32(3273664496);
emit_32(1103324512);
emit_32(3263483911);
emit_32(3273408512);
emit_32(1102513124);
emit_32(3263483911);
emit_32(3273152528);
emit_32(1102512757);
emit_32(3263483911);
emit_32(3272896545);
emit_32(1102001367);
emit_32(3263483911);
emit_32(3272640496);
emit_32(1101489347);
emit_32(3263483911);
emit_32(3272384512);
emit_32(1101058382);
emit_32(3263483911);
emit_32(3272128528);
emit_32(1100785805);
emit_32(3263483911);
emit_32(3271872545);
emit_32(1100711985);
emit_32(3263483911);
emit_32(3271616496);
emit_32(1100454979);
emit_32(3263483911);
emit_32(3271163904);
emit_32(1100441924);
emit_32(3263483911);
emit_32(3270651937);
emit_32(1100316829);
emit_32(3263483911);
emit_32(3270139970);
emit_32(1099903690);
emit_32(3263483911);
emit_32(3269627871);
emit_32(1099946525);
emit_32(3263483911);
emit_32(3269115904);
emit_32(1100095265);
emit_32(3263483911);
emit_32(3268603937);
emit_32(1100759958);
emit_32(3263483911);
emit_32(3268091970);
emit_32(1101531447);
emit_32(3263483911);
emit_32(3267579911);
emit_32(1102182403);
emit_32(3263483911);
emit_32(3267067904);
emit_32(1102954575);
emit_32(3263483911);
emit_32(3266555911);
emit_32(1103927181);
emit_32(3263483911);
emit_32(3266043904);
emit_32(1104963174);
emit_32(3263483911);
emit_32(3265531911);
emit_32(1106107695);
emit_32(3263483911);
emit_32(3265019904);
emit_32(1106811971);
emit_32(3263483911);
emit_32(3264507911);
emit_32(1107810242);
emit_32(3263483911);
emit_32(3263995904);
emit_32(1108701217);
emit_32(3263483911);
emit_32(3263483911);
emit_32(1109660533);
emit_32(3263483911);
emit_32(3262775296);
emit_32(1110370838);
emit_32(3263483911);
emit_32(3261751309);
emit_32(1111099363);
emit_32(3263483911);
emit_32(3260727296);
emit_32(1111486628);
emit_32(3263483911);
emit_32(3259703309);
emit_32(1111821464);
emit_32(3263483911);
emit_32(3258679296);
emit_32(1112262967);
emit_32(3263483911);
emit_32(3257655309);
emit_32(1112778211);
emit_32(3263483911);
emit_32(3256631296);
emit_32(1113334717);
emit_32(3263483911);
emit_32(3255607309);
emit_32(1113699910);
emit_32(3263483911);
emit_32(3254386688);
emit_32(1113953429);
emit_32(3263483911);
emit_32(3252338714);
emit_32(1114251775);
emit_32(3263483911);
emit_32(3250290688);
emit_32(1114199242);
emit_32(3263483911);
emit_32(3248242714);
emit_32(1113838033);
emit_32(3263483911);
emit_32(3245998080);
emit_32(1113833787);
emit_32(3263483911);
emit_32(3241902132);
emit_32(1114207840);
emit_32(3263483911);
emit_32(3237609472);
emit_32(1114546556);
emit_32(3263483911);
emit_32(3229220864);
emit_32(1114598697);
emit_32(3263483911);
emit_32(0);
emit_32(1114817954);
emit_32(3263483911);
emit_32(1081737216);
emit_32(1114860919);
emit_32(3263483911);
emit_32(3279552512);
emit_32(1087139710);
emit_32(3263995904);
emit_32(3279296528);
emit_32(1087121150);
emit_32(3263995904);
emit_32(3279040545);
emit_32(1087424797);
emit_32(3263995904);
emit_32(3278784496);
emit_32(1088288866);
emit_32(3263995904);
emit_32(3278528512);
emit_32(1087946275);
emit_32(3263995904);
emit_32(3278272528);
emit_32(1088967861);
emit_32(3263995904);
emit_32(3278016545);
emit_32(1091560444);
emit_32(3263995904);
emit_32(3277760496);
emit_32(1093142053);
emit_32(3263995904);
emit_32(3277504512);
emit_32(1094326419);
emit_32(3263995904);
emit_32(3277248528);
emit_32(1096867958);
emit_32(3263995904);
emit_32(3276992545);
emit_32(1098819882);
emit_32(3263995904);
emit_32(3276736496);
emit_32(1099265422);
emit_32(3263995904);
emit_32(3276480512);
emit_32(1099487668);
emit_32(3263995904);
emit_32(3276224528);
emit_32(1099990827);
emit_32(3263995904);
emit_32(3275968545);
emit_32(1100246627);
emit_32(3263995904);
emit_32(3275712496);
emit_32(1100397937);
emit_32(3263995904);
emit_32(3275456512);
emit_32(1101410127);
emit_32(3263995904);
emit_32(3275200528);
emit_32(1102521513);
emit_32(3263995904);
emit_32(3274944545);
emit_32(1103207386);
emit_32(3263995904);
emit_32(3274688496);
emit_32(1103390940);
emit_32(3263995904);
emit_32(3274432512);
emit_32(1103443263);
emit_32(3263995904);
emit_32(3274176528);
emit_32(1103097024);
emit_32(3263995904);
emit_32(3273920545);
emit_32(1102906864);
emit_32(3263995904);
emit_32(3273664496);
emit_32(1102900730);
emit_32(3263995904);
emit_32(3273408512);
emit_32(1102220938);
emit_32(3263995904);
emit_32(3273152528);
emit_32(1102144078);
emit_32(3263995904);
emit_32(3272896545);
emit_32(1101363046);
emit_32(3263995904);
emit_32(3272640496);
emit_32(1100839544);
emit_32(3263995904);
emit_32(3272384512);
emit_32(1100199127);
emit_32(3263995904);
emit_32(3272128528);
emit_32(1100097362);
emit_32(3263995904);
emit_32(3271872545);
emit_32(1099987419);
emit_32(3263995904);
emit_32(3271616496);
emit_32(1099540044);
emit_32(3263995904);
emit_32(3271163904);
emit_32(1099437336);
emit_32(3263995904);
emit_32(3270651937);
emit_32(1099514983);
emit_32(3263995904);
emit_32(3270139970);
emit_32(1099717201);
emit_32(3263995904);
emit_32(3269627871);
emit_32(1099729155);
emit_32(3263995904);
emit_32(3269115904);
emit_32(1099827039);
emit_32(3263995904);
emit_32(3268603937);
emit_32(1100161378);
emit_32(3263995904);
emit_32(3268091970);
emit_32(1100861355);
emit_32(3263995904);
emit_32(3267579911);
emit_32(1101473671);
emit_32(3263995904);
emit_32(3267067904);
emit_32(1102447483);
emit_32(3263995904);
emit_32(3266555911);
emit_32(1103703782);
emit_32(3263995904);
emit_32(3266043904);
emit_32(1104882067);
emit_32(3263995904);
emit_32(3265531911);
emit_32(1105992194);
emit_32(3263995904);
emit_32(3265019904);
emit_32(1106919608);
emit_32(3263995904);
emit_32(3264507911);
emit_32(1107993271);
emit_32(3263995904);
emit_32(3263995904);
emit_32(1108925769);
emit_32(3263995904);
emit_32(3263483911);
emit_32(1110019198);
emit_32(3263995904);
emit_32(3262775296);
emit_32(1110818501);
emit_32(3263995904);
emit_32(3261751309);
emit_32(1111233161);
emit_32(3263995904);
emit_32(3260727296);
emit_32(1111683183);
emit_32(3263995904);
emit_32(3259703309);
emit_32(1111981792);
emit_32(3263995904);
emit_32(3258679296);
emit_32(1112340798);
emit_32(3263995904);
emit_32(3257655309);
emit_32(1112786705);
emit_32(3263995904);
emit_32(3256631296);
emit_32(1113283966);
emit_32(3263995904);
emit_32(3255607309);
emit_32(1113555626);
emit_32(3263995904);
emit_32(3254386688);
emit_32(1113825948);
emit_32(3263995904);
emit_32(3252338714);
emit_32(1113819107);
emit_32(3263995904);
emit_32(3250290688);
emit_32(1113630940);
emit_32(3263995904);
emit_32(3248242714);
emit_32(1113321059);
emit_32(3263995904);
emit_32(3245998080);
emit_32(1113733018);
emit_32(3263995904);
emit_32(3241902132);
emit_32(1114113861);
emit_32(3263995904);
emit_32(3237609472);
emit_32(1114143562);
emit_32(3263995904);
emit_32(3229220864);
emit_32(1114322213);
emit_32(3263995904);
emit_32(0);
emit_32(1114472841);
emit_32(3263995904);
emit_32(1081737216);
emit_32(1114412994);
emit_32(3263995904);
emit_32(3279552512);
emit_32(1089045854);
emit_32(3264507911);
emit_32(3279296528);
emit_32(1088278862);
emit_32(3264507911);
emit_32(3279040545);
emit_32(1090412714);
emit_32(3264507911);
emit_32(3278784496);
emit_32(1089711259);
emit_32(3264507911);
emit_32(3278528512);
emit_32(1090927439);
emit_32(3264507911);
emit_32(3278272528);
emit_32(1091410686);
emit_32(3264507911);
emit_32(3278016545);
emit_32(1093437227);
emit_32(3264507911);
emit_32(3277760496);
emit_32(1094926205);
emit_32(3264507911);
emit_32(3277504512);
emit_32(1095460140);
emit_32(3264507911);
emit_32(3277248528);
emit_32(1097105460);
emit_32(3264507911);
emit_32(3276992545);
emit_32(1098968413);
emit_32(3264507911);
emit_32(3276736496);
emit_32(1099353345);
emit_32(3264507911);
emit_32(3276480512);
emit_32(1099813618);
emit_32(3264507911);
emit_32(3276224528);
emit_32(1100320499);
emit_32(3264507911);
emit_32(3275968545);
emit_32(1100493829);
emit_32(3264507911);
emit_32(3275712496);
emit_32(1100473906);
emit_32(3264507911);
emit_32(3275456512);
emit_32(1101401948);
emit_32(3264507911);
emit_32(3275200528);
emit_32(1102298848);
emit_32(3264507911);
emit_32(3274944545);
emit_32(1102989230);
emit_32(3264507911);
emit_32(3274688496);
emit_32(1102648967);
emit_32(3264507911);
emit_32(3274432512);
emit_32(1102203952);
emit_32(3264507911);
emit_32(3274176528);
emit_32(1102020923);
emit_32(3264507911);
emit_32(3273920545);
emit_32(1102482244);
emit_32(3264507911);
emit_32(3273664496);
emit_32(1101949515);
emit_32(3264507911);
emit_32(3273408512);
emit_32(1101712379);
emit_32(3264507911);
emit_32(3273152528);
emit_32(1100957195);
emit_32(3264507911);
emit_32(3272896545);
emit_32(1100760377);
emit_32(3264507911);
emit_32(3272640496);
emit_32(1100597271);
emit_32(3264507911);
emit_32(3272384512);
emit_32(1099567360);
emit_32(3264507911);
emit_32(3272128528);
emit_32(1098669307);
emit_32(3264507911);
emit_32(3271872545);
emit_32(1098076022);
emit_32(3264507911);
emit_32(3271616496);
emit_32(1097956485);
emit_32(3264507911);
emit_32(3271163904);
emit_32(1098180565);
emit_32(3264507911);
emit_32(3270651937);
emit_32(1097980812);
emit_32(3264507911);
emit_32(3270139970);
emit_32(1098969042);
emit_32(3264507911);
emit_32(3269627871);
emit_32(1099581411);
emit_32(3264507911);
emit_32(3269115904);
emit_32(1099345900);
emit_32(3264507911);
emit_32(3268603937);
emit_32(1099778595);
emit_32(3264507911);
emit_32(3268091970);
emit_32(1100042784);
emit_32(3264507911);
emit_32(3267579911);
emit_32(1100446643);
emit_32(3264507911);
emit_32(3267067904);
emit_32(1101589486);
emit_32(3264507911);
emit_32(3266555911);
emit_32(1103063522);
emit_32(3264507911);
emit_32(3266043904);
emit_32(1104431599);
emit_32(3264507911);
emit_32(3265531911);
emit_32(1106038332);
emit_32(3264507911);
emit_32(3265019904);
emit_32(1107210011);
emit_32(3264507911);
emit_32(3264507911);
emit_32(1107970254);
emit_32(3264507911);
emit_32(3263995904);
emit_32(1108769794);
emit_32(3264507911);
emit_32(3263483911);
emit_32(1109911929);
emit_32(3264507911);
emit_32(3262775296);
emit_32(1110640427);
emit_32(3264507911);
emit_32(3261751309);
emit_32(1111295551);
emit_32(3264507911);
emit_32(3260727296);
emit_32(1111699227);
emit_32(3264507911);
emit_32(3259703309);
emit_32(1112037130);
emit_32(3264507911);
emit_32(3258679296);
emit_32(1112388927);
emit_32(3264507911);
emit_32(3257655309);
emit_32(1112777766);
emit_32(3264507911);
emit_32(3256631296);
emit_32(1112967610);
emit_32(3264507911);
emit_32(3255607309);
emit_32(1113472080);
emit_32(3264507911);
emit_32(3254386688);
emit_32(1113707171);
emit_32(3264507911);
emit_32(3252338714);
emit_32(1113542073);
emit_32(3264507911);
emit_32(3250290688);
emit_32(1113390370);
emit_32(3264507911);
emit_32(3248242714);
emit_32(1113303574);
emit_32(3264507911);
emit_32(3245998080);
emit_32(1113650705);
emit_32(3264507911);
emit_32(3241902132);
emit_32(1114040330);
emit_32(3264507911);
emit_32(3237609472);
emit_32(1114029556);
emit_32(3264507911);
emit_32(3229220864);
emit_32(1113975580);
emit_32(3264507911);
emit_32(0);
emit_32(1113691390);
emit_32(3264507911);
emit_32(1081737216);
emit_32(1113723162);
emit_32(3264507911);
emit_32(3279552512);
emit_32(1091448267);
emit_32(3265019904);
emit_32(3279296528);
emit_32(1090852236);
emit_32(3265019904);
emit_32(3279040545);
emit_32(1091224616);
emit_32(3265019904);
emit_32(3278784496);
emit_32(1092115172);
emit_32(3265019904);
emit_32(3278528512);
emit_32(1092387560);
emit_32(3265019904);
emit_32(3278272528);
emit_32(1093982696);
emit_32(3265019904);
emit_32(3278016545);
emit_32(1095925288);
emit_32(3265019904);
emit_32(3277760496);
emit_32(1097267780);
emit_32(3265019904);
emit_32(3277504512);
emit_32(1098458962);
emit_32(3265019904);
emit_32(3277248528);
emit_32(1097176554);
emit_32(3265019904);
emit_32(3276992545);
emit_32(1098529427);
emit_32(3265019904);
emit_32(3276736496);
emit_32(1099386480);
emit_32(3265019904);
emit_32(3276480512);
emit_32(1100029729);
emit_32(3265019904);
emit_32(3276224528);
emit_32(1100574360);
emit_32(3265019904);
emit_32(3275968545);
emit_32(1100451571);
emit_32(3265019904);
emit_32(3275712496);
emit_32(1100757808);
emit_32(3265019904);
emit_32(3275456512);
emit_32(1101452909);
emit_32(3265019904);
emit_32(3275200528);
emit_32(1102452412);
emit_32(3265019904);
emit_32(3274944545);
emit_32(1102489269);
emit_32(3265019904);
emit_32(3274688496);
emit_32(1101956383);
emit_32(3265019904);
emit_32(3274432512);
emit_32(1102164106);
emit_32(3265019904);
emit_32(3274176528);
emit_32(1102017829);
emit_32(3265019904);
emit_32(3273920545);
emit_32(1101687633);
emit_32(3265019904);
emit_32(3273664496);
emit_32(1101190398);
emit_32(3265019904);
emit_32(3273408512);
emit_32(1100930771);
emit_32(3265019904);
emit_32(3273152528);
emit_32(1099875379);
emit_32(3265019904);
emit_32(3272896545);
emit_32(1099988363);
emit_32(3265019904);
emit_32(3272640496);
emit_32(1099466749);
emit_32(3265019904);
emit_32(3272384512);
emit_32(1099025927);
emit_32(3265019904);
emit_32(3272128528);
emit_32(1097133667);
emit_32(3265019904);
emit_32(3271872545);
emit_32(1096125042);
emit_32(3265019904);
emit_32(3271616496);
emit_32(1097217448);
emit_32(3265019904);
emit_32(3271163904);
emit_32(1097530343);
emit_32(3265019904);
emit_32(3270651937);
emit_32(1097021365);
emit_32(3265019904);
emit_32(3270139970);
emit_32(1098337432);
emit_32(3265019904);
emit_32(3269627871);
emit_32(1099231186);
emit_32(3265019904);
emit_32(3269115904);
emit_32(1099058066);
emit_32(3265019904);
emit_32(3268603937);
emit_32(1098845363);
emit_32(3265019904);
emit_32(3268091970);
emit_32(1099724436);
emit_32(3265019904);
emit_32(3267579911);
emit_32(1100562825);
emit_32(3265019904);
emit_32(3267067904);
emit_32(1101564635);
emit_32(3265019904);
emit_32(3266555911);
emit_32(1102663280);
emit_32(3265019904);
emit_32(3266043904);
emit_32(1103783055);
emit_32(3265019904);
emit_32(3265531911);
emit_32(1105695185);
emit_32(3265019904);
emit_32(3265019904);
emit_32(1107222541);
emit_32(3265019904);
emit_32(3264507911);
emit_32(1108142824);
emit_32(3265019904);
emit_32(3263995904);
emit_32(1108595363);
emit_32(3265019904);
emit_32(3263483911);
emit_32(1109574812);
emit_32(3265019904);
emit_32(3262775296);
emit_32(1110596754);
emit_32(3265019904);
emit_32(3261751309);
emit_32(1111223304);
emit_32(3265019904);
emit_32(3260727296);
emit_32(1111571117);
emit_32(3265019904);
emit_32(3259703309);
emit_32(1111962445);
emit_32(3265019904);
emit_32(3258679296);
emit_32(1112404944);
emit_32(3265019904);
emit_32(3257655309);
emit_32(1112735429);
emit_32(3265019904);
emit_32(3256631296);
emit_32(1112827337);
emit_32(3265019904);
emit_32(3255607309);
emit_32(1113233949);
emit_32(3265019904);
emit_32(3254386688);
emit_32(1113414513);
emit_32(3265019904);
emit_32(3252338714);
emit_32(1113420150);
emit_32(3265019904);
emit_32(3250290688);
emit_32(1113163904);
emit_32(3265019904);
emit_32(3248242714);
emit_32(1113052807);
emit_32(3265019904);
emit_32(3245998080);
emit_32(1113343787);
emit_32(3265019904);
emit_32(3241902132);
emit_32(1113698599);
emit_32(3265019904);
emit_32(3237609472);
emit_32(1113628816);
emit_32(3265019904);
emit_32(3229220864);
emit_32(1113662187);
emit_32(3265019904);
emit_32(0);
emit_32(1113260242);
emit_32(3265019904);
emit_32(1081737216);
emit_32(1113178820);
emit_32(3265019904);
emit_32(3279552512);
emit_32(1093438171);
emit_32(3265531911);
emit_32(3279296528);
emit_32(1092747788);
emit_32(3265531911);
emit_32(3279040545);
emit_32(1093310454);
emit_32(3265531911);
emit_32(3278784496);
emit_32(1094102234);
emit_32(3265531911);
emit_32(3278528512);
emit_32(1095034523);
emit_32(3265531911);
emit_32(3278272528);
emit_32(1096277295);
emit_32(3265531911);
emit_32(3278016545);
emit_32(1097766063);
emit_32(3265531911);
emit_32(3277760496);
emit_32(1099194067);
emit_32(3265531911);
emit_32(3277504512);
emit_32(1099628649);
emit_32(3265531911);
emit_32(3277248528);
emit_32(1099258973);
emit_32(3265531911);
emit_32(3276992545);
emit_32(1098472174);
emit_32(3265531911);
emit_32(3276736496);
emit_32(1099274020);
emit_32(3265531911);
emit_32(3276480512);
emit_32(1099770049);
emit_32(3265531911);
emit_32(3276224528);
emit_32(1100217110);
emit_32(3265531911);
emit_32(3275968545);
emit_32(1099973526);
emit_32(3265531911);
emit_32(3275712496);
emit_32(1100572682);
emit_32(3265531911);
emit_32(3275456512);
emit_32(1101377883);
emit_32(3265531911);
emit_32(3275200528);
emit_32(1101817027);
emit_32(3265531911);
emit_32(3274944545);
emit_32(1101419407);
emit_32(3265531911);
emit_32(3274688496);
emit_32(1101366087);
emit_32(3265531911);
emit_32(3274432512);
emit_32(1101862955);
emit_32(3265531911);
emit_32(3274176528);
emit_32(1101888854);
emit_32(3265531911);
emit_32(3273920545);
emit_32(1101226888);
emit_32(3265531911);
emit_32(3273664496);
emit_32(1100713768);
emit_32(3265531911);
emit_32(3273408512);
emit_32(1099889010);
emit_32(3265531911);
emit_32(3273152528);
emit_32(1098959238);
emit_32(3265531911);
emit_32(3272896545);
emit_32(1098971873);
emit_32(3265531911);
emit_32(3272640496);
emit_32(1098173750);
emit_32(3265531911);
emit_32(3272384512);
emit_32(1096822345);
emit_32(3265531911);
emit_32(3272128528);
emit_32(1095460769);
emit_32(3265531911);
emit_32(3271872545);
emit_32(1095939654);
emit_32(3265531911);
emit_32(3271616496);
emit_32(1096979107);
emit_32(3265531911);
emit_32(3271163904);
emit_32(1096816787);
emit_32(3265531911);
emit_32(3270651937);
emit_32(1096356567);
emit_32(3265531911);
emit_32(3270139970);
emit_32(1097648308);
emit_32(3265531911);
emit_32(3269627871);
emit_32(1098574096);
emit_32(3265531911);
emit_32(3269115904);
emit_32(1097968858);
emit_32(3265531911);
emit_32(3268603937);
emit_32(1098365115);
emit_32(3265531911);
emit_32(3268091970);
emit_32(1099546126);
emit_32(3265531911);
emit_32(3267579911);
emit_32(1100574569);
emit_32(3265531911);
emit_32(3267067904);
emit_32(1101687475);
emit_32(3265531911);
emit_32(3266555911);
emit_32(1102052380);
emit_32(3265531911);
emit_32(3266043904);
emit_32(1103313292);
emit_32(3265531911);
emit_32(3265531911);
emit_32(1105621785);
emit_32(3265531911);
emit_32(3265019904);
emit_32(1107169169);
emit_32(3265531911);
emit_32(3264507911);
emit_32(1107983021);
emit_32(3265531911);
emit_32(3263995904);
emit_32(1108610777);
emit_32(3265531911);
emit_32(3263483911);
emit_32(1109287292);
emit_32(3265531911);
emit_32(3262775296);
emit_32(1110292405);
emit_32(3265531911);
emit_32(3261751309);
emit_32(1110956075);
emit_32(3265531911);
emit_32(3260727296);
emit_32(1111332749);
emit_32(3265531911);
emit_32(3259703309);
emit_32(1111901392);
emit_32(3265531911);
emit_32(3258679296);
emit_32(1112404473);
emit_32(3265531911);
emit_32(3257655309);
emit_32(1112625041);
emit_32(3265531911);
emit_32(3256631296);
emit_32(1112715716);
emit_32(3265531911);
emit_32(3255607309);
emit_32(1112946875);
emit_32(3265531911);
emit_32(3254386688);
emit_32(1113184299);
emit_32(3265531911);
emit_32(3252338714);
emit_32(1112883882);
emit_32(3265531911);
emit_32(3250290688);
emit_32(1112791607);
emit_32(3265531911);
emit_32(3248242714);
emit_32(1112621633);
emit_32(3265531911);
emit_32(3245998080);
emit_32(1113008138);
emit_32(3265531911);
emit_32(3241902132);
emit_32(1113167285);
emit_32(3265531911);
emit_32(3237609472);
emit_32(1113124399);
emit_32(3265531911);
emit_32(3229220864);
emit_32(1112977362);
emit_32(3265531911);
emit_32(0);
emit_32(1112766703);
emit_32(3265531911);
emit_32(1081737216);
emit_32(1112525767);
emit_32(3265531911);
emit_32(3279552512);
emit_32(1095002332);
emit_32(3266043904);
emit_32(3279296528);
emit_32(1094609640);
emit_32(3266043904);
emit_32(3279040545);
emit_32(1096233255);
emit_32(3266043904);
emit_32(3278784496);
emit_32(1097215037);
emit_32(3266043904);
emit_32(3278528512);
emit_32(1097707028);
emit_32(3266043904);
emit_32(3278272528);
emit_32(1098213910);
emit_32(3266043904);
emit_32(3278016545);
emit_32(1099607939);
emit_32(3266043904);
emit_32(3277760496);
emit_32(1100328888);
emit_32(3266043904);
emit_32(3277504512);
emit_32(1099961205);
emit_32(3266043904);
emit_32(3277248528);
emit_32(1099657799);
emit_32(3266043904);
emit_32(3276992545);
emit_32(1099461558);
emit_32(3266043904);
emit_32(3276736496);
emit_32(1099119408);
emit_32(3266043904);
emit_32(3276480512);
emit_32(1099612763);
emit_32(3266043904);
emit_32(3276224528);
emit_32(1099736862);
emit_32(3266043904);
emit_32(3275968545);
emit_32(1099825729);
emit_32(3266043904);
emit_32(3275712496);
emit_32(1100371460);
emit_32(3266043904);
emit_32(3275456512);
emit_32(1100899051);
emit_32(3266043904);
emit_32(3275200528);
emit_32(1100798702);
emit_32(3266043904);
emit_32(3274944545);
emit_32(1100553703);
emit_32(3266043904);
emit_32(3274688496);
emit_32(1100490159);
emit_32(3266043904);
emit_32(3274432512);
emit_32(1100873309);
emit_32(3266043904);
emit_32(3274176528);
emit_32(1100817524);
emit_32(3266043904);
emit_32(3273920545);
emit_32(1100275568);
emit_32(3266043904);
emit_32(3273664496);
emit_32(1100060977);
emit_32(3266043904);
emit_32(3273408512);
emit_32(1099264636);
emit_32(3266043904);
emit_32(3273152528);
emit_32(1097887279);
emit_32(3266043904);
emit_32(3272896545);
emit_32(1096157548);
emit_32(3266043904);
emit_32(3272640496);
emit_32(1095486249);
emit_32(3266043904);
emit_32(3272384512);
emit_32(1094979368);
emit_32(3266043904);
emit_32(3272128528);
emit_32(1095398693);
emit_32(3266043904);
emit_32(3271872545);
emit_32(1095531024);
emit_32(3266043904);
emit_32(3271616496);
emit_32(1095980968);
emit_32(3266043904);
emit_32(3271163904);
emit_32(1095589534);
emit_32(3266043904);
emit_32(3270651937);
emit_32(1095288383);
emit_32(3266043904);
emit_32(3270139970);
emit_32(1096315044);
emit_32(3266043904);
emit_32(3269627871);
emit_32(1096326788);
emit_32(3266043904);
emit_32(3269115904);
emit_32(1096402705);
emit_32(3266043904);
emit_32(3268603937);
emit_32(1097546911);
emit_32(3266043904);
emit_32(3268091970);
emit_32(1099249798);
emit_32(3266043904);
emit_32(3267579911);
emit_32(1099942016);
emit_32(3266043904);
emit_32(3267067904);
emit_32(1100913469);
emit_32(3266043904);
emit_32(3266555911);
emit_32(1101943433);
emit_32(3266043904);
emit_32(3266043904);
emit_32(1102787536);
emit_32(3266043904);
emit_32(3265531911);
emit_32(1104904507);
emit_32(3266043904);
emit_32(3265019904);
emit_32(1106333873);
emit_32(3266043904);
emit_32(3264507911);
emit_32(1107759779);
emit_32(3266043904);
emit_32(3263995904);
emit_32(1108391467);
emit_32(3266043904);
emit_32(3263483911);
emit_32(1108904981);
emit_32(3266043904);
emit_32(3262775296);
emit_32(1109806757);
emit_32(3266043904);
emit_32(3261751309);
emit_32(1110385151);
emit_32(3266043904);
emit_32(3260727296);
emit_32(1110931145);
emit_32(3266043904);
emit_32(3259703309);
emit_32(1111641319);
emit_32(3266043904);
emit_32(3258679296);
emit_32(1112124634);
emit_32(3266043904);
emit_32(3257655309);
emit_32(1112283257);
emit_32(3266043904);
emit_32(3256631296);
emit_32(1112339618);
emit_32(3266043904);
emit_32(3255607309);
emit_32(1112509383);
emit_32(3266043904);
emit_32(3254386688);
emit_32(1112776009);
emit_32(3266043904);
emit_32(3252338714);
emit_32(1112680825);
emit_32(3266043904);
emit_32(3250290688);
emit_32(1112625539);
emit_32(3266043904);
emit_32(3248242714);
emit_32(1112693513);
emit_32(3266043904);
emit_32(3245998080);
emit_32(1112618644);
emit_32(3266043904);
emit_32(3241902132);
emit_32(1112571616);
emit_32(3266043904);
emit_32(3237609472);
emit_32(1112555074);
emit_32(3266043904);
emit_32(3229220864);
emit_32(1112282576);
emit_32(3266043904);
emit_32(0);
emit_32(1112161675);
emit_32(3266043904);
emit_32(1081737216);
emit_32(1112016683);
emit_32(3266043904);
emit_32(3279552512);
emit_32(1096435525);
emit_32(3266555911);
emit_32(3279296528);
emit_32(1097116575);
emit_32(3266555911);
emit_32(3279040545);
emit_32(1098870633);
emit_32(3266555911);
emit_32(3278784496);
emit_32(1099498730);
emit_32(3266555911);
emit_32(3278528512);
emit_32(1099914596);
emit_32(3266555911);
emit_32(3278272528);
emit_32(1099951872);
emit_32(3266555911);
emit_32(3278016545);
emit_32(1100659976);
emit_32(3266555911);
emit_32(3277760496);
emit_32(1101078253);
emit_32(3266555911);
emit_32(3277504512);
emit_32(1100635177);
emit_32(3266555911);
emit_32(3277248528);
emit_32(1100013948);
emit_32(3266555911);
emit_32(3276992545);
emit_32(1099614650);
emit_32(3266555911);
emit_32(3276736496);
emit_32(1099488402);
emit_32(3266555911);
emit_32(3276480512);
emit_32(1099820591);
emit_32(3266555911);
emit_32(3276224528);
emit_32(1099553833);
emit_32(3266555911);
emit_32(3275968545);
emit_32(1099782999);
emit_32(3266555911);
emit_32(3275712496);
emit_32(1100398566);
emit_32(3266555911);
emit_32(3275456512);
emit_32(1100575303);
emit_32(3266555911);
emit_32(3275200528);
emit_32(1100289986);
emit_32(3266555911);
emit_32(3274944545);
emit_32(1099602382);
emit_32(3266555911);
emit_32(3274688496);
emit_32(1099733506);
emit_32(3266555911);
emit_32(3274432512);
emit_32(1100008915);
emit_32(3266555911);
emit_32(3274176528);
emit_32(1100003777);
emit_32(3266555911);
emit_32(3273920545);
emit_32(1099179753);
emit_32(3266555911);
emit_32(3273664496);
emit_32(1098406953);
emit_32(3266555911);
emit_32(3273408512);
emit_32(1097223320);
emit_32(3266555911);
emit_32(3273152528);
emit_32(1096202217);
emit_32(3266555911);
emit_32(3272896545);
emit_32(1095613442);
emit_32(3266555911);
emit_32(3272640496);
emit_32(1095615539);
emit_32(3266555911);
emit_32(3272384512);
emit_32(1095008728);
emit_32(3266555911);
emit_32(3272128528);
emit_32(1095144623);
emit_32(3266555911);
emit_32(3271872545);
emit_32(1095756572);
emit_32(3266555911);
emit_32(3271616496);
emit_32(1094683564);
emit_32(3266555911);
emit_32(3271163904);
emit_32(1094540119);
emit_32(3266555911);
emit_32(3270651937);
emit_32(1094978843);
emit_32(3266555911);
emit_32(3270139970);
emit_32(1095340707);
emit_32(3266555911);
emit_32(3269627871);
emit_32(1095981597);
emit_32(3266555911);
emit_32(3269115904);
emit_32(1096517838);
emit_32(3266555911);
emit_32(3268603937);
emit_32(1096669463);
emit_32(3266555911);
emit_32(3268091970);
emit_32(1097720555);
emit_32(3266555911);
emit_32(3267579911);
emit_32(1098962122);
emit_32(3266555911);
emit_32(3267067904);
emit_32(1099956067);
emit_32(3266555911);
emit_32(3266555911);
emit_32(1101017750);
emit_32(3266555911);
emit_32(3266043904);
emit_32(1102473436);
emit_32(3266555911);
emit_32(3265531911);
emit_32(1104059040);
emit_32(3266555911);
emit_32(3265019904);
emit_32(1105738491);
emit_32(3266555911);
emit_32(3264507911);
emit_32(1107208438);
emit_32(3266555911);
emit_32(3263995904);
emit_32(1107891008);
emit_32(3266555911);
emit_32(3263483911);
emit_32(1108674504);
emit_32(3266555911);
emit_32(3262775296);
emit_32(1109604067);
emit_32(3266555911);
emit_32(3261751309);
emit_32(1110189120);
emit_32(3266555911);
emit_32(3260727296);
emit_32(1110577670);
emit_32(3266555911);
emit_32(3259703309);
emit_32(1111354953);
emit_32(3266555911);
emit_32(3258679296);
emit_32(1111734537);
emit_32(3266555911);
emit_32(3257655309);
emit_32(1111705518);
emit_32(3266555911);
emit_32(3256631296);
emit_32(1111723527);
emit_32(3266555911);
emit_32(3255607309);
emit_32(1112027955);
emit_32(3266555911);
emit_32(3254386688);
emit_32(1112257410);
emit_32(3266555911);
emit_32(3252338714);
emit_32(1112640297);
emit_32(3266555911);
emit_32(3250290688);
emit_32(1112609967);
emit_32(3266555911);
emit_32(3248242714);
emit_32(1112557696);
emit_32(3266555911);
emit_32(3245998080);
emit_32(1112351231);
emit_32(3266555911);
emit_32(3241902132);
emit_32(1112040774);
emit_32(3266555911);
emit_32(3237609472);
emit_32(1111912900);
emit_32(3266555911);
emit_32(3229220864);
emit_32(1111694639);
emit_32(3266555911);
emit_32(0);
emit_32(1111678858);
emit_32(3266555911);
emit_32(1081737216);
emit_32(1111401326);
emit_32(3266555911);
emit_32(3279552512);
emit_32(1098118070);
emit_32(3267067904);
emit_32(3279296528);
emit_32(1099747453);
emit_32(3267067904);
emit_32(3279040545);
emit_32(1100611269);
emit_32(3267067904);
emit_32(3278784496);
emit_32(1101443210);
emit_32(3267067904);
emit_32(3278528512);
emit_32(1101232603);
emit_32(3267067904);
emit_32(3278272528);
emit_32(1101611506);
emit_32(3267067904);
emit_32(3278016545);
emit_32(1101693243);
emit_32(3267067904);
emit_32(3277760496);
emit_32(1101466016);
emit_32(3267067904);
emit_32(3277504512);
emit_32(1101285137);
emit_32(3267067904);
emit_32(3277248528);
emit_32(1100667106);
emit_32(3267067904);
emit_32(3276992545);
emit_32(1100084308);
emit_32(3267067904);
emit_32(3276736496);
emit_32(1099746194);
emit_32(3267067904);
emit_32(3276480512);
emit_32(1099973840);
emit_32(3267067904);
emit_32(3276224528);
emit_32(1099985637);
emit_32(3267067904);
emit_32(3275968545);
emit_32(1099784782);
emit_32(3267067904);
emit_32(3275712496);
emit_32(1100330146);
emit_32(3267067904);
emit_32(3275456512);
emit_32(1100180200);
emit_32(3267067904);
emit_32(3275200528);
emit_32(1099997118);
emit_32(3267067904);
emit_32(3274944545);
emit_32(1099326240);
emit_32(3267067904);
emit_32(3274688496);
emit_32(1099003435);
emit_32(3267067904);
emit_32(3274432512);
emit_32(1099218918);
emit_32(3267067904);
emit_32(3274176528);
emit_32(1098944243);
emit_32(3267067904);
emit_32(3273920545);
emit_32(1097839464);
emit_32(3267067904);
emit_32(3273664496);
emit_32(1095942065);
emit_32(3267067904);
emit_32(3273408512);
emit_32(1094895587);
emit_32(3267067904);
emit_32(3273152528);
emit_32(1094953468);
emit_32(3267067904);
emit_32(3272896545);
emit_32(1095007260);
emit_32(3267067904);
emit_32(3272640496);
emit_32(1095264895);
emit_32(3267067904);
emit_32(3272384512);
emit_32(1094611422);
emit_32(3267067904);
emit_32(3272128528);
emit_32(1095079402);
emit_32(3267067904);
emit_32(3271872545);
emit_32(1094441973);
emit_32(3267067904);
emit_32(3271616496);
emit_32(1094236766);
emit_32(3267067904);
emit_32(3271163904);
emit_32(1094323798);
emit_32(3267067904);
emit_32(3270651937);
emit_32(1094165987);
emit_32(3267067904);
emit_32(3270139970);
emit_32(1094226805);
emit_32(3267067904);
emit_32(3269627871);
emit_32(1094579336);
emit_32(3267067904);
emit_32(3269115904);
emit_32(1095352975);
emit_32(3267067904);
emit_32(3268603937);
emit_32(1095436757);
emit_32(3267067904);
emit_32(3268091970);
emit_32(1095935879);
emit_32(3267067904);
emit_32(3267579911);
emit_32(1097439012);
emit_32(3267067904);
emit_32(3267067904);
emit_32(1099223007);
emit_32(3267067904);
emit_32(3266555911);
emit_32(1100974863);
emit_32(3267067904);
emit_32(3266043904);
emit_32(1102518734);
emit_32(3267067904);
emit_32(3265531911);
emit_32(1104318772);
emit_32(3267067904);
emit_32(3265019904);
emit_32(1105646112);
emit_32(3267067904);
emit_32(3264507911);
emit_32(1106403341);
emit_32(3267067904);
emit_32(3263995904);
emit_32(1107600264);
emit_32(3267067904);
emit_32(3263483911);
emit_32(1108414248);
emit_32(3267067904);
emit_32(3262775296);
emit_32(1109181543);
emit_32(3267067904);
emit_32(3261751309);
emit_32(1109764892);
emit_32(3267067904);
emit_32(3260727296);
emit_32(1110292536);
emit_32(3267067904);
emit_32(3259703309);
emit_32(1110846682);
emit_32(3267067904);
emit_32(3258679296);
emit_32(1111130925);
emit_32(3267067904);
emit_32(3257655309);
emit_32(1111171793);
emit_32(3267067904);
emit_32(3256631296);
emit_32(1111317938);
emit_32(3267067904);
emit_32(3255607309);
emit_32(1111635762);
emit_32(3267067904);
emit_32(3254386688);
emit_32(1112164637);
emit_32(3267067904);
emit_32(3252338714);
emit_32(1112290938);
emit_32(3267067904);
emit_32(3250290688);
emit_32(1112478450);
emit_32(3267067904);
emit_32(3248242714);
emit_32(1112372360);
emit_32(3267067904);
emit_32(3245998080);
emit_32(1111917566);
emit_32(3267067904);
emit_32(3241902132);
emit_32(1112023289);
emit_32(3267067904);
emit_32(3237609472);
emit_32(1111655422);
emit_32(3267067904);
emit_32(3229220864);
emit_32(1111168988);
emit_32(3267067904);
emit_32(0);
emit_32(1110861231);
emit_32(3267067904);
emit_32(1081737216);
emit_32(1110813757);
emit_32(3267067904);
emit_32(3279552512);
emit_32(1100220360);
emit_32(3267579911);
emit_32(3279296528);
emit_32(1101067662);
emit_32(3267579911);
emit_32(3279040545);
emit_32(1102439514);
emit_32(3267579911);
emit_32(3278784496);
emit_32(1103265006);
emit_32(3267579911);
emit_32(3278528512);
emit_32(1103236799);
emit_32(3267579911);
emit_32(3278272528);
emit_32(1103276120);
emit_32(3267579911);
emit_32(3278016545);
emit_32(1103285505);
emit_32(3267579911);
emit_32(3277760496);
emit_32(1102760850);
emit_32(3267579911);
emit_32(3277504512);
emit_32(1101931584);
emit_32(3267579911);
emit_32(3277248528);
emit_32(1101349415);
emit_32(3267579911);
emit_32(3276992545);
emit_32(1100402341);
emit_32(3267579911);
emit_32(3276736496);
emit_32(1100027265);
emit_32(3267579911);
emit_32(3276480512);
emit_32(1100259525);
emit_32(3267579911);
emit_32(3276224528);
emit_32(1100063651);
emit_32(3267579911);
emit_32(3275968545);
emit_32(1099648782);
emit_32(3267579911);
emit_32(3275712496);
emit_32(1100276302);
emit_32(3267579911);
emit_32(3275456512);
emit_32(1100001260);
emit_32(3267579911);
emit_32(3275200528);
emit_32(1099604217);
emit_32(3267579911);
emit_32(3274944545);
emit_32(1099253678);
emit_32(3267579911);
emit_32(3274688496);
emit_32(1098028836);
emit_32(3267579911);
emit_32(3274432512);
emit_32(1097094660);
emit_32(3267579911);
emit_32(3274176528);
emit_32(1096265341);
emit_32(3267579911);
emit_32(3273920545);
emit_32(1095381601);
emit_32(3267579911);
emit_32(3273664496);
emit_32(1094132852);
emit_32(3267579911);
emit_32(3273408512);
emit_32(1094233411);
emit_32(3267579911);
emit_32(3273152528);
emit_32(1094498386);
emit_32(3267579911);
emit_32(3272896545);
emit_32(1093571235);
emit_32(3267579911);
emit_32(3272640496);
emit_32(1093897237);
emit_32(3267579911);
emit_32(3272384512);
emit_32(1093720657);
emit_32(3267579911);
emit_32(3272128528);
emit_32(1094242743);
emit_32(3267579911);
emit_32(3271872545);
emit_32(1094359764);
emit_32(3267579911);
emit_32(3271616496);
emit_32(1093621672);
emit_32(3267579911);
emit_32(3271163904);
emit_32(1093012449);
emit_32(3267579911);
emit_32(3270651937);
emit_32(1092577332);
emit_32(3267579911);
emit_32(3270139970);
emit_32(1093321674);
emit_32(3267579911);
emit_32(3269627871);
emit_32(1093936035);
emit_32(3267579911);
emit_32(3269115904);
emit_32(1093928170);
emit_32(3267579911);
emit_32(3268603937);
emit_32(1094840746);
emit_32(3267579911);
emit_32(3268091970);
emit_32(1094808555);
emit_32(3267579911);
emit_32(3267579911);
emit_32(1096373764);
emit_32(3267579911);
emit_32(3267067904);
emit_32(1099250323);
emit_32(3267579911);
emit_32(3266555911);
emit_32(1100852966);
emit_32(3267579911);
emit_32(3266043904);
emit_32(1102489846);
emit_32(3267579911);
emit_32(3265531911);
emit_32(1104539655);
emit_32(3267579911);
emit_32(3265019904);
emit_32(1105973058);
emit_32(3267579911);
emit_32(3264507911);
emit_32(1106325275);
emit_32(3267579911);
emit_32(3263995904);
emit_32(1107714664);
emit_32(3267579911);
emit_32(3263483911);
emit_32(1108389003);
emit_32(3267579911);
emit_32(3262775296);
emit_32(1108702606);
emit_32(3267579911);
emit_32(3261751309);
emit_32(1109247787);
emit_32(3267579911);
emit_32(3260727296);
emit_32(1109490349);
emit_32(3267579911);
emit_32(3259703309);
emit_32(1110247866);
emit_32(3267579911);
emit_32(3258679296);
emit_32(1110389712);
emit_32(3267579911);
emit_32(3257655309);
emit_32(1110661425);
emit_32(3267579911);
emit_32(3256631296);
emit_32(1111202018);
emit_32(3267579911);
emit_32(3255607309);
emit_32(1111704260);
emit_32(3267579911);
emit_32(3254386688);
emit_32(1112088275);
emit_32(3267579911);
emit_32(3252338714);
emit_32(1111942549);
emit_32(3267579911);
emit_32(3250290688);
emit_32(1111975579);
emit_32(3267579911);
emit_32(3248242714);
emit_32(1111977309);
emit_32(3267579911);
emit_32(3245998080);
emit_32(1111576202);
emit_32(3267579911);
emit_32(3241902132);
emit_32(1111451789);
emit_32(3267579911);
emit_32(3237609472);
emit_32(1111316601);
emit_32(3267579911);
emit_32(3229220864);
emit_32(1111007166);
emit_32(3267579911);
emit_32(0);
emit_32(1110677022);
emit_32(3267579911);
emit_32(1081737216);
emit_32(1110694612);
emit_32(3267579911);
emit_32(3279552512);
emit_32(1101546599);
emit_32(3268091970);
emit_32(3279296528);
emit_32(1102626423);
emit_32(3268091970);
emit_32(3279040545);
emit_32(1103845864);
emit_32(3268091970);
emit_32(3278784496);
emit_32(1104837345);
emit_32(3268091970);
emit_32(3278528512);
emit_32(1104581650);
emit_32(3268091970);
emit_32(3278272528);
emit_32(1104347136);
emit_32(3268091970);
emit_32(3278016545);
emit_32(1104555173);
emit_32(3268091970);
emit_32(3277760496);
emit_32(1103817186);
emit_32(3268091970);
emit_32(3277504512);
emit_32(1102977119);
emit_32(3268091970);
emit_32(3277248528);
emit_32(1101762816);
emit_32(3268091970);
emit_32(3276992545);
emit_32(1100889928);
emit_32(3268091970);
emit_32(3276736496);
emit_32(1100508824);
emit_32(3268091970);
emit_32(3276480512);
emit_32(1100799646);
emit_32(3268091970);
emit_32(3276224528);
emit_32(1100611741);
emit_32(3268091970);
emit_32(3275968545);
emit_32(1099998639);
emit_32(3268091970);
emit_32(3275712496);
emit_32(1099825152);
emit_32(3268091970);
emit_32(3275456512);
emit_32(1099499674);
emit_32(3268091970);
emit_32(3275200528);
emit_32(1099020422);
emit_32(3268091970);
emit_32(3274944545);
emit_32(1098795241);
emit_32(3268091970);
emit_32(3274688496);
emit_32(1097320733);
emit_32(3268091970);
emit_32(3274432512);
emit_32(1096709728);
emit_32(3268091970);
emit_32(3274176528);
emit_32(1095004848);
emit_32(3268091970);
emit_32(3273920545);
emit_32(1094273362);
emit_32(3268091970);
emit_32(3273664496);
emit_32(1094729282);
emit_32(3268091970);
emit_32(3273408512);
emit_32(1094410620);
emit_32(3268091970);
emit_32(3273152528);
emit_32(1093402205);
emit_32(3268091970);
emit_32(3272896545);
emit_32(1092271431);
emit_32(3268091970);
emit_32(3272640496);
emit_32(1092329176);
emit_32(3268091970);
emit_32(3272384512);
emit_32(1092614609);
emit_32(3268091970);
emit_32(3272128528);
emit_32(1093144674);
emit_32(3268091970);
emit_32(3271872545);
emit_32(1093760922);
emit_32(3268091970);
emit_32(3271616496);
emit_32(1093140165);
emit_32(3268091970);
emit_32(3271163904);
emit_32(1091696654);
emit_32(3268091970);
emit_32(3270651937);
emit_32(1090884374);
emit_32(3268091970);
emit_32(3270139970);
emit_32(1091484506);
emit_32(3268091970);
emit_32(3269627871);
emit_32(1092037976);
emit_32(3268091970);
emit_32(3269115904);
emit_32(1093188295);
emit_32(3268091970);
emit_32(3268603937);
emit_32(1093395808);
emit_32(3268091970);
emit_32(3268091970);
emit_32(1094337220);
emit_32(3268091970);
emit_32(3267579911);
emit_32(1097044643);
emit_32(3268091970);
emit_32(3267067904);
emit_32(1099465543);
emit_32(3268091970);
emit_32(3266555911);
emit_32(1101317433);
emit_32(3268091970);
emit_32(3266043904);
emit_32(1102556745);
emit_32(3268091970);
emit_32(3265531911);
emit_32(1104196718);
emit_32(3268091970);
emit_32(3265019904);
emit_32(1105380036);
emit_32(3268091970);
emit_32(3264507911);
emit_32(1106482194);
emit_32(3268091970);
emit_32(3263995904);
emit_32(1107758783);
emit_32(3268091970);
emit_32(3263483911);
emit_32(1108425415);
emit_32(3268091970);
emit_32(3262775296);
emit_32(1108887024);
emit_32(3268091970);
emit_32(3261751309);
emit_32(1109173128);
emit_32(3268091970);
emit_32(3260727296);
emit_32(1109482432);
emit_32(3268091970);
emit_32(3259703309);
emit_32(1109785208);
emit_32(3268091970);
emit_32(3258679296);
emit_32(1110180600);
emit_32(3268091970);
emit_32(3257655309);
emit_32(1110663076);
emit_32(3268091970);
emit_32(3256631296);
emit_32(1111283309);
emit_32(3268091970);
emit_32(3255607309);
emit_32(1111318829);
emit_32(3268091970);
emit_32(3254386688);
emit_32(1111804844);
emit_32(3268091970);
emit_32(3252338714);
emit_32(1111712072);
emit_32(3268091970);
emit_32(3250290688);
emit_32(1111394877);
emit_32(3268091970);
emit_32(3248242714);
emit_32(1111473652);
emit_32(3268091970);
emit_32(3245998080);
emit_32(1111266139);
emit_32(3268091970);
emit_32(3241902132);
emit_32(1110947660);
emit_32(3268091970);
emit_32(3237609472);
emit_32(1111203722);
emit_32(3268091970);
emit_32(3229220864);
emit_32(1110998647);
emit_32(3268091970);
emit_32(0);
emit_32(1110773727);
emit_32(3268091970);
emit_32(1081737216);
emit_32(1110581209);
emit_32(3268091970);
emit_32(3279552512);
emit_32(1103102267);
emit_32(3268603937);
emit_32(3279296528);
emit_32(1104534831);
emit_32(3268603937);
emit_32(3279040545);
emit_32(1105424810);
emit_32(3268603937);
emit_32(3278784496);
emit_32(1105745989);
emit_32(3268603937);
emit_32(3278528512);
emit_32(1105282046);
emit_32(3268603937);
emit_32(3278272528);
emit_32(1105208436);
emit_32(3268603937);
emit_32(3278016545);
emit_32(1104906394);
emit_32(3268603937);
emit_32(3277760496);
emit_32(1104679063);
emit_32(3268603937);
emit_32(3277504512);
emit_32(1103607680);
emit_32(3268603937);
emit_32(3277248528);
emit_32(1102510188);
emit_32(3268603937);
emit_32(3276992545);
emit_32(1101765385);
emit_32(3268603937);
emit_32(3276736496);
emit_32(1101636986);
emit_32(3268603937);
emit_32(3276480512);
emit_32(1101430207);
emit_32(3268603937);
emit_32(3276224528);
emit_32(1101386534);
emit_32(3268603937);
emit_32(3275968545);
emit_32(1100866283);
emit_32(3268603937);
emit_32(3275712496);
emit_32(1100204370);
emit_32(3268603937);
emit_32(3275456512);
emit_32(1099530240);
emit_32(3268603937);
emit_32(3275200528);
emit_32(1098318663);
emit_32(3268603937);
emit_32(3274944545);
emit_32(1096968831);
emit_32(3268603937);
emit_32(3274688496);
emit_32(1096686764);
emit_32(3268603937);
emit_32(3274432512);
emit_32(1095657901);
emit_32(3268603937);
emit_32(3274176528);
emit_32(1093922718);
emit_32(3268603937);
emit_32(3273920545);
emit_32(1093799720);
emit_32(3268603937);
emit_32(3273664496);
emit_32(1093400527);
emit_32(3268603937);
emit_32(3273408512);
emit_32(1094189371);
emit_32(3268603937);
emit_32(3273152528);
emit_32(1093002383);
emit_32(3268603937);
emit_32(3272896545);
emit_32(1092483505);
emit_32(3268603937);
emit_32(3272640496);
emit_32(1092251707);
emit_32(3268603937);
emit_32(3272384512);
emit_32(1090906562);
emit_32(3268603937);
emit_32(3272128528);
emit_32(1091695983);
emit_32(3268603937);
emit_32(3271872545);
emit_32(1092003666);
emit_32(3268603937);
emit_32(3271616496);
emit_32(1091543866);
emit_32(3268603937);
emit_32(3271163904);
emit_32(1090300789);
emit_32(3268603937);
emit_32(3270651937);
emit_32(1088844569);
emit_32(3268603937);
emit_32(3270139970);
emit_32(1087660223);
emit_32(3268603937);
emit_32(3269627871);
emit_32(1090808153);
emit_32(3268603937);
emit_32(3269115904);
emit_32(1090929306);
emit_32(3268603937);
emit_32(3268603937);
emit_32(1092294940);
emit_32(3268603937);
emit_32(3268091970);
emit_32(1094951266);
emit_32(3268603937);
emit_32(3267579911);
emit_32(1098255958);
emit_32(3268603937);
emit_32(3267067904);
emit_32(1100042365);
emit_32(3268603937);
emit_32(3266555911);
emit_32(1101461717);
emit_32(3268603937);
emit_32(3266043904);
emit_32(1102844841);
emit_32(3268603937);
emit_32(3265531911);
emit_32(1103734872);
emit_32(3268603937);
emit_32(3265019904);
emit_32(1105122348);
emit_32(3268603937);
emit_32(3264507911);
emit_32(1106689969);
emit_32(3268603937);
emit_32(3263995904);
emit_32(1107793438);
emit_32(3268603937);
emit_32(3263483911);
emit_32(1108426280);
emit_32(3268603937);
emit_32(3262775296);
emit_32(1108850534);
emit_32(3268603937);
emit_32(3261751309);
emit_32(1109340009);
emit_32(3268603937);
emit_32(3260727296);
emit_32(1109539003);
emit_32(3268603937);
emit_32(3259703309);
emit_32(1109953715);
emit_32(3268603937);
emit_32(3258679296);
emit_32(1110117502);
emit_32(3268603937);
emit_32(3257655309);
emit_32(1110591485);
emit_32(3268603937);
emit_32(3256631296);
emit_32(1111088562);
emit_32(3268603937);
emit_32(3255607309);
emit_32(1111126206);
emit_32(3268603937);
emit_32(3254386688);
emit_32(1111259559);
emit_32(3268603937);
emit_32(3252338714);
emit_32(1111504191);
emit_32(3268603937);
emit_32(3250290688);
emit_32(1111434068);
emit_32(3268603937);
emit_32(3248242714);
emit_32(1111442299);
emit_32(3268603937);
emit_32(3245998080);
emit_32(1111170010);
emit_32(3268603937);
emit_32(3241902132);
emit_32(1110967137);
emit_32(3268603937);
emit_32(3237609472);
emit_32(1111303415);
emit_32(3268603937);
emit_32(3229220864);
emit_32(1111224012);
emit_32(3268603937);
emit_32(0);
emit_32(1110873788);
emit_32(3268603937);
emit_32(1081737216);
emit_32(1110663915);
emit_32(3268603937);
emit_32(3279552512);
emit_32(1104677595);
emit_32(3269115904);
emit_32(3279296528);
emit_32(1105454590);
emit_32(3269115904);
emit_32(3279040545);
emit_32(1106154304);
emit_32(3269115904);
emit_32(3278784496);
emit_32(1106277093);
emit_32(3269115904);
emit_32(3278528512);
emit_32(1105875016);
emit_32(3269115904);
emit_32(3278272528);
emit_32(1106034452);
emit_32(3269115904);
emit_32(3278016545);
emit_32(1105655077);
emit_32(3269115904);
emit_32(3277760496);
emit_32(1104930721);
emit_32(3269115904);
emit_32(3277504512);
emit_32(1104001892);
emit_32(3269115904);
emit_32(3277248528);
emit_32(1103101166);
emit_32(3269115904);
emit_32(3276992545);
emit_32(1102785177);
emit_32(3269115904);
emit_32(3276736496);
emit_32(1102764678);
emit_32(3269115904);
emit_32(3276480512);
emit_32(1102751256);
emit_32(3269115904);
emit_32(3276224528);
emit_32(1102164210);
emit_32(3269115904);
emit_32(3275968545);
emit_32(1101552786);
emit_32(3269115904);
emit_32(3275712496);
emit_32(1101117679);
emit_32(3269115904);
emit_32(3275456512);
emit_32(1100386245);
emit_32(3269115904);
emit_32(3275200528);
emit_32(1099326974);
emit_32(3269115904);
emit_32(3274944545);
emit_32(1098796709);
emit_32(3269115904);
emit_32(3274688496);
emit_32(1097716256);
emit_32(3269115904);
emit_32(3274432512);
emit_32(1095916585);
emit_32(3269115904);
emit_32(3274176528);
emit_32(1095486669);
emit_32(3269115904);
emit_32(3273920545);
emit_32(1093398010);
emit_32(3269115904);
emit_32(3273664496);
emit_32(1092921118);
emit_32(3269115904);
emit_32(3273408512);
emit_32(1092252829);
emit_32(3269115904);
emit_32(3273152528);
emit_32(1092749676);
emit_32(3269115904);
emit_32(3272896545);
emit_32(1092530481);
emit_32(3269115904);
emit_32(3272640496);
emit_32(1091486131);
emit_32(3269115904);
emit_32(3272384512);
emit_32(1090876730);
emit_32(3269115904);
emit_32(3272128528);
emit_32(1090142454);
emit_32(3269115904);
emit_32(3271872545);
emit_32(1088793147);
emit_32(3269115904);
emit_32(3271616496);
emit_32(1089015130);
emit_32(3269115904);
emit_32(3271163904);
emit_32(1088303693);
emit_32(3269115904);
emit_32(3270651937);
emit_32(1087535674);
emit_32(3269115904);
emit_32(3270139970);
emit_32(1085670299);
emit_32(3269115904);
emit_32(3269627871);
emit_32(1085625420);
emit_32(3269115904);
emit_32(3269115904);
emit_32(1088308013);
emit_32(3269115904);
emit_32(3268603937);
emit_32(1092417340);
emit_32(3269115904);
emit_32(3268091970);
emit_32(1095410752);
emit_32(3269115904);
emit_32(3267579911);
emit_32(1098094582);
emit_32(3269115904);
emit_32(3267067904);
emit_32(1100161430);
emit_32(3269115904);
emit_32(3266555911);
emit_32(1101552891);
emit_32(3269115904);
emit_32(3266043904);
emit_32(1102765307);
emit_32(3269115904);
emit_32(3265531911);
emit_32(1103641549);
emit_32(3269115904);
emit_32(3265019904);
emit_32(1105704360);
emit_32(3269115904);
emit_32(3264507911);
emit_32(1107288811);
emit_32(3269115904);
emit_32(3263995904);
emit_32(1107972981);
emit_32(3269115904);
emit_32(3263483911);
emit_32(1108646167);
emit_32(3269115904);
emit_32(3262775296);
emit_32(1109009918);
emit_32(3269115904);
emit_32(3261751309);
emit_32(1109314581);
emit_32(3269115904);
emit_32(3260727296);
emit_32(1109742427);
emit_32(3269115904);
emit_32(3259703309);
emit_32(1110003653);
emit_32(3269115904);
emit_32(3258679296);
emit_32(1110284435);
emit_32(3269115904);
emit_32(3257655309);
emit_32(1110677153);
emit_32(3269115904);
emit_32(3256631296);
emit_32(1111084630);
emit_32(3269115904);
emit_32(3255607309);
emit_32(1111141489);
emit_32(3269115904);
emit_32(3254386688);
emit_32(1111299090);
emit_32(3269115904);
emit_32(3252338714);
emit_32(1111545138);
emit_32(3269115904);
emit_32(3250290688);
emit_32(1111299378);
emit_32(3269115904);
emit_32(3248242714);
emit_32(1111477977);
emit_32(3269115904);
emit_32(3245998080);
emit_32(1111335580);
emit_32(3269115904);
emit_32(3241902132);
emit_32(1111332776);
emit_32(3269115904);
emit_32(3237609472);
emit_32(1111510640);
emit_32(3269115904);
emit_32(3229220864);
emit_32(1111358806);
emit_32(3269115904);
emit_32(0);
emit_32(1111013904);
emit_32(3269115904);
emit_32(1081737216);
emit_32(1110808645);
emit_32(3269115904);
emit_32(3279552512);
emit_32(1105473988);
emit_32(3269627871);
emit_32(3279296528);
emit_32(1106406644);
emit_32(3269627871);
emit_32(3279040545);
emit_32(1106900052);
emit_32(3269627871);
emit_32(3278784496);
emit_32(1106631983);
emit_32(3269627871);
emit_32(3278528512);
emit_32(1106899527);
emit_32(3269627871);
emit_32(3278272528);
emit_32(1107077575);
emit_32(3269627871);
emit_32(3278016545);
emit_32(1106405386);
emit_32(3269627871);
emit_32(3277760496);
emit_32(1105322207);
emit_32(3269627871);
emit_32(3277504512);
emit_32(1104051752);
emit_32(3269627871);
emit_32(3277248528);
emit_32(1103820331);
emit_32(3269627871);
emit_32(3276992545);
emit_32(1103544189);
emit_32(3269627871);
emit_32(3276736496);
emit_32(1104020714);
emit_32(3269627871);
emit_32(3276480512);
emit_32(1104151629);
emit_32(3269627871);
emit_32(3276224528);
emit_32(1103575069);
emit_32(3269627871);
emit_32(3275968545);
emit_32(1102962911);
emit_32(3269627871);
emit_32(3275712496);
emit_32(1102032824);
emit_32(3269627871);
emit_32(3275456512);
emit_32(1101115320);
emit_32(3269627871);
emit_32(3275200528);
emit_32(1100461113);
emit_32(3269627871);
emit_32(3274944545);
emit_32(1099847644);
emit_32(3269627871);
emit_32(3274688496);
emit_32(1099097702);
emit_32(3269627871);
emit_32(3274432512);
emit_32(1097494692);
emit_32(3269627871);
emit_32(3274176528);
emit_32(1096228851);
emit_32(3269627871);
emit_32(3273920545);
emit_32(1094225966);
emit_32(3269627871);
emit_32(3273664496);
emit_32(1093095391);
emit_32(3269627871);
emit_32(3273408512);
emit_32(1092478294);
emit_32(3269627871);
emit_32(3273152528);
emit_32(1092368508);
emit_32(3269627871);
emit_32(3272896545);
emit_32(1091995425);
emit_32(3269627871);
emit_32(3272640496);
emit_32(1090918526);
emit_32(3269627871);
emit_32(3272384512);
emit_32(1090551315);
emit_32(3269627871);
emit_32(3272128528);
emit_32(1089373156);
emit_32(3269627871);
emit_32(3271872545);
emit_32(1087003689);
emit_32(3269627871);
emit_32(3271616496);
emit_32(1086132763);
emit_32(3269627871);
emit_32(3271163904);
emit_32(1085152973);
emit_32(3269627871);
emit_32(3270651937);
emit_32(1085347149);
emit_32(3269627871);
emit_32(3270139970);
emit_32(1084963286);
emit_32(3269627871);
emit_32(3269627871);
emit_32(1086623454);
emit_32(3269627871);
emit_32(3269115904);
emit_32(1089942512);
emit_32(3269627871);
emit_32(3268603937);
emit_32(1092605381);
emit_32(3269627871);
emit_32(3268091970);
emit_32(1095649093);
emit_32(3269627871);
emit_32(3267579911);
emit_32(1098551656);
emit_32(3269627871);
emit_32(3267067904);
emit_32(1100188326);
emit_32(3269627871);
emit_32(3266555911);
emit_32(1101247703);
emit_32(3269627871);
emit_32(3266043904);
emit_32(1102236038);
emit_32(3269627871);
emit_32(3265531911);
emit_32(1104015996);
emit_32(3269627871);
emit_32(3265019904);
emit_32(1106019562);
emit_32(3269627871);
emit_32(3264507911);
emit_32(1107489640);
emit_32(3269627871);
emit_32(3263995904);
emit_32(1107939269);
emit_32(3269627871);
emit_32(3263483911);
emit_32(1108609493);
emit_32(3269627871);
emit_32(3262775296);
emit_32(1108936360);
emit_32(3269627871);
emit_32(3261751309);
emit_32(1109365909);
emit_32(3269627871);
emit_32(3260727296);
emit_32(1109731836);
emit_32(3269627871);
emit_32(3259703309);
emit_32(1110075454);
emit_32(3269627871);
emit_32(3258679296);
emit_32(1110274841);
emit_32(3269627871);
emit_32(3257655309);
emit_32(1110532397);
emit_32(3269627871);
emit_32(3256631296);
emit_32(1110820677);
emit_32(3269627871);
emit_32(3255607309);
emit_32(1110970388);
emit_32(3269627871);
emit_32(3254386688);
emit_32(1111402270);
emit_32(3269627871);
emit_32(3252338714);
emit_32(1111410187);
emit_32(3269627871);
emit_32(3250290688);
emit_32(1111092730);
emit_32(3269627871);
emit_32(3248242714);
emit_32(1111561549);
emit_32(3269627871);
emit_32(3245998080);
emit_32(1111622576);
emit_32(3269627871);
emit_32(3241902132);
emit_32(1111406543);
emit_32(3269627871);
emit_32(3237609472);
emit_32(1111614869);
emit_32(3269627871);
emit_32(3229220864);
emit_32(1111623991);
emit_32(3269627871);
emit_32(0);
emit_32(1111334244);
emit_32(3269627871);
emit_32(1081737216);
emit_32(1111356054);
emit_32(3269627871);
emit_32(3279552512);
emit_32(1106615049);
emit_32(3270139970);
emit_32(3279296528);
emit_32(1107119309);
emit_32(3270139970);
emit_32(3279040545);
emit_32(1107204296);
emit_32(3270139970);
emit_32(3278784496);
emit_32(1107426043);
emit_32(3270139970);
emit_32(3278528512);
emit_32(1107651514);
emit_32(3270139970);
emit_32(3278272528);
emit_32(1107492104);
emit_32(3270139970);
emit_32(3278016545);
emit_32(1106671934);
emit_32(3270139970);
emit_32(3277760496);
emit_32(1105363468);
emit_32(3270139970);
emit_32(3277504512);
emit_32(1104722631);
emit_32(3270139970);
emit_32(3277248528);
emit_32(1104684463);
emit_32(3270139970);
emit_32(3276992545);
emit_32(1104973765);
emit_32(3270139970);
emit_32(3276736496);
emit_32(1105162981);
emit_32(3270139970);
emit_32(3276480512);
emit_32(1105246762);
emit_32(3270139970);
emit_32(3276224528);
emit_32(1104513126);
emit_32(3270139970);
emit_32(3275968545);
emit_32(1103992350);
emit_32(3270139970);
emit_32(3275712496);
emit_32(1103134301);
emit_32(3270139970);
emit_32(3275456512);
emit_32(1102130761);
emit_32(3270139970);
emit_32(3275200528);
emit_32(1101510214);
emit_32(3270139970);
emit_32(3274944545);
emit_32(1100554804);
emit_32(3270139970);
emit_32(3274688496);
emit_32(1100005560);
emit_32(3270139970);
emit_32(3274432512);
emit_32(1099090258);
emit_32(3270139970);
emit_32(3274176528);
emit_32(1096702388);
emit_32(3270139970);
emit_32(3273920545);
emit_32(1094929875);
emit_32(3270139970);
emit_32(3273664496);
emit_32(1093071903);
emit_32(3270139970);
emit_32(3273408512);
emit_32(1091864185);
emit_32(3270139970);
emit_32(3273152528);
emit_32(1090738538);
emit_32(3270139970);
emit_32(3272896545);
emit_32(1089872215);
emit_32(3270139970);
emit_32(3272640496);
emit_32(1088532009);
emit_32(3270139970);
emit_32(3272384512);
emit_32(1087136019);
emit_32(3270139970);
emit_32(3272128528);
emit_32(1086091155);
emit_32(3270139970);
emit_32(3271872545);
emit_32(1083137212);
emit_32(3270139970);
emit_32(3271616496);
emit_32(1082194374);
emit_32(3270139970);
emit_32(3271163904);
emit_32(1084156344);
emit_32(3270139970);
emit_32(3270651937);
emit_32(1086494710);
emit_32(3270139970);
emit_32(3270139970);
emit_32(1087925178);
emit_32(3270139970);
emit_32(3269627871);
emit_32(1089283545);
emit_32(3270139970);
emit_32(3269115904);
emit_32(1089544493);
emit_32(3270139970);
emit_32(3268603937);
emit_32(1092490552);
emit_32(3270139970);
emit_32(3268091970);
emit_32(1094596637);
emit_32(3270139970);
emit_32(3267579911);
emit_32(1097303536);
emit_32(3270139970);
emit_32(3267067904);
emit_32(1099546598);
emit_32(3270139970);
emit_32(3266555911);
emit_32(1101122293);
emit_32(3270139970);
emit_32(3266043904);
emit_32(1102198394);
emit_32(3270139970);
emit_32(3265531911);
emit_32(1104133751);
emit_32(3270139970);
emit_32(3265019904);
emit_32(1105876641);
emit_32(3270139970);
emit_32(3264507911);
emit_32(1107287081);
emit_32(3270139970);
emit_32(3263995904);
emit_32(1107840362);
emit_32(3270139970);
emit_32(3263483911);
emit_32(1108323913);
emit_32(3270139970);
emit_32(3262775296);
emit_32(1108846340);
emit_32(3270139970);
emit_32(3261751309);
emit_32(1109191243);
emit_32(3270139970);
emit_32(3260727296);
emit_32(1109548335);
emit_32(3270139970);
emit_32(3259703309);
emit_32(1110053775);
emit_32(3270139970);
emit_32(3258679296);
emit_32(1110107410);
emit_32(3270139970);
emit_32(3257655309);
emit_32(1110399726);
emit_32(3270139970);
emit_32(3256631296);
emit_32(1110760515);
emit_32(3270139970);
emit_32(3255607309);
emit_32(1110729294);
emit_32(3270139970);
emit_32(3254386688);
emit_32(1110963755);
emit_32(3270139970);
emit_32(3252338714);
emit_32(1110772128);
emit_32(3270139970);
emit_32(3250290688);
emit_32(1110896358);
emit_32(3270139970);
emit_32(3248242714);
emit_32(1111339775);
emit_32(3270139970);
emit_32(3245998080);
emit_32(1111522542);
emit_32(3270139970);
emit_32(3241902132);
emit_32(1111498739);
emit_32(3270139970);
emit_32(3237609472);
emit_32(1111764002);
emit_32(3270139970);
emit_32(3229220864);
emit_32(1111826209);
emit_32(3270139970);
emit_32(0);
emit_32(1111701062);
emit_32(3270139970);
emit_32(1081737216);
emit_32(1111592455);
emit_32(3270139970);
emit_32(3279552512);
emit_32(1107165027);
emit_32(3270651937);
emit_32(3279296528);
emit_32(1106980268);
emit_32(3270651937);
emit_32(3279040545);
emit_32(1107315707);
emit_32(3270651937);
emit_32(3278784496);
emit_32(1107598272);
emit_32(3270651937);
emit_32(3278528512);
emit_32(1107717469);
emit_32(3270651937);
emit_32(3278272528);
emit_32(1107286557);
emit_32(3270651937);
emit_32(3278016545);
emit_32(1106402712);
emit_32(3270651937);
emit_32(3277760496);
emit_32(1105497896);
emit_32(3270651937);
emit_32(3277504512);
emit_32(1105374898);
emit_32(3270651937);
emit_32(3277248528);
emit_32(1105640659);
emit_32(3270651937);
emit_32(3276992545);
emit_32(1105948416);
emit_32(3270651937);
emit_32(3276736496);
emit_32(1105871923);
emit_32(3270651937);
emit_32(3276480512);
emit_32(1105415268);
emit_32(3270651937);
emit_32(3276224528);
emit_32(1104908386);
emit_32(3270651937);
emit_32(3275968545);
emit_32(1104625166);
emit_32(3270651937);
emit_32(3275712496);
emit_32(1103529981);
emit_32(3270651937);
emit_32(3275456512);
emit_32(1102284535);
emit_32(3270651937);
emit_32(3275200528);
emit_32(1101814668);
emit_32(3270651937);
emit_32(3274944545);
emit_32(1101354395);
emit_32(3270651937);
emit_32(3274688496);
emit_32(1100467772);
emit_32(3270651937);
emit_32(3274432512);
emit_32(1099331902);
emit_32(3270651937);
emit_32(3274176528);
emit_32(1097334469);
emit_32(3270651937);
emit_32(3273920545);
emit_32(1095774713);
emit_32(3270651937);
emit_32(3273664496);
emit_32(1093969274);
emit_32(3270651937);
emit_32(3273408512);
emit_32(1092236870);
emit_32(3270651937);
emit_32(3273152528);
emit_32(1091177242);
emit_32(3270651937);
emit_32(3272896545);
emit_32(1089194521);
emit_32(3270651937);
emit_32(3272640496);
emit_32(1087253250);
emit_32(3270651937);
emit_32(3272384512);
emit_32(1085293042);
emit_32(3270651937);
emit_32(3272128528);
emit_32(1086332055);
emit_32(3270651937);
emit_32(3271872545);
emit_32(1083552217);
emit_32(3270651937);
emit_32(3271616496);
emit_32(1081840228);
emit_32(3270651937);
emit_32(3271163904);
emit_32(1085052373);
emit_32(3270651937);
emit_32(3270651937);
emit_32(1088324601);
emit_32(3270651937);
emit_32(3270139970);
emit_32(1090526128);
emit_32(3270651937);
emit_32(3269627871);
emit_32(1090035353);
emit_32(3270651937);
emit_32(3269115904);
emit_32(1091146088);
emit_32(3270651937);
emit_32(3268603937);
emit_32(1092321972);
emit_32(3270651937);
emit_32(3268091970);
emit_32(1094166931);
emit_32(3270651937);
emit_32(3267579911);
emit_32(1096361705);
emit_32(3270651937);
emit_32(3267067904);
emit_32(1098923167);
emit_32(3270651937);
emit_32(3266555911);
emit_32(1100222510);
emit_32(3270651937);
emit_32(3266043904);
emit_32(1102327683);
emit_32(3270651937);
emit_32(3265531911);
emit_32(1104008865);
emit_32(3270651937);
emit_32(3265019904);
emit_32(1105745465);
emit_32(3270651937);
emit_32(3264507911);
emit_32(1107240472);
emit_32(3270651937);
emit_32(3263995904);
emit_32(1107738152);
emit_32(3270651937);
emit_32(3263483911);
emit_32(1108317333);
emit_32(3270651937);
emit_32(3262775296);
emit_32(1108718230);
emit_32(3270651937);
emit_32(3261751309);
emit_32(1109166313);
emit_32(3270651937);
emit_32(3260727296);
emit_32(1109572767);
emit_32(3270651937);
emit_32(3259703309);
emit_32(1109886999);
emit_32(3270651937);
emit_32(3258679296);
emit_32(1110175934);
emit_32(3270651937);
emit_32(3257655309);
emit_32(1110012409);
emit_32(3270651937);
emit_32(3256631296);
emit_32(1110458420);
emit_32(3270651937);
emit_32(3255607309);
emit_32(1110277908);
emit_32(3270651937);
emit_32(3254386688);
emit_32(1110242571);
emit_32(3270651937);
emit_32(3252338714);
emit_32(1110493941);
emit_32(3270651937);
emit_32(3250290688);
emit_32(1110776139);
emit_32(3270651937);
emit_32(3248242714);
emit_32(1111135643);
emit_32(3270651937);
emit_32(3245998080);
emit_32(1111317021);
emit_32(3270651937);
emit_32(3241902132);
emit_32(1111525111);
emit_32(3270651937);
emit_32(3237609472);
emit_32(1111847102);
emit_32(3270651937);
emit_32(3229220864);
emit_32(1111929704);
emit_32(3270651937);
emit_32(0);
emit_32(1111847364);
emit_32(3270651937);
emit_32(1081737216);
emit_32(1111930149);
emit_32(3270651937);
emit_32(3279552512);
emit_32(1106982994);
emit_32(3271163904);
emit_32(3279296528);
emit_32(1106990334);
emit_32(3271163904);
emit_32(3279040545);
emit_32(1107378569);
emit_32(3271163904);
emit_32(3278784496);
emit_32(1107553734);
emit_32(3271163904);
emit_32(3278528512);
emit_32(1107478761);
emit_32(3271163904);
emit_32(3278272528);
emit_32(1106962389);
emit_32(3271163904);
emit_32(3278016545);
emit_32(1105953607);
emit_32(3271163904);
emit_32(3277760496);
emit_32(1105995497);
emit_32(3271163904);
emit_32(3277504512);
emit_32(1105958325);
emit_32(3271163904);
emit_32(3277248528);
emit_32(1106168041);
emit_32(3271163904);
emit_32(3276992545);
emit_32(1106461590);
emit_32(3271163904);
emit_32(3276736496);
emit_32(1106400248);
emit_32(3271163904);
emit_32(3276480512);
emit_32(1105590904);
emit_32(3271163904);
emit_32(3276224528);
emit_32(1105294315);
emit_32(3271163904);
emit_32(3275968545);
emit_32(1104823661);
emit_32(3271163904);
emit_32(3275712496);
emit_32(1103994185);
emit_32(3271163904);
emit_32(3275456512);
emit_32(1102728764);
emit_32(3271163904);
emit_32(3275200528);
emit_32(1102137996);
emit_32(3271163904);
emit_32(3274944545);
emit_32(1101349782);
emit_32(3271163904);
emit_32(3274688496);
emit_32(1100398356);
emit_32(3271163904);
emit_32(3274432512);
emit_32(1099098489);
emit_32(3271163904);
emit_32(3274176528);
emit_32(1097575747);
emit_32(3271163904);
emit_32(3273920545);
emit_32(1095747135);
emit_32(3271163904);
emit_32(3273664496);
emit_32(1094011427);
emit_32(3271163904);
emit_32(3273408512);
emit_32(1092817099);
emit_32(3271163904);
emit_32(3273152528);
emit_32(1090935010);
emit_32(3271163904);
emit_32(3272896545);
emit_32(1086813205);
emit_32(3271163904);
emit_32(3272640496);
emit_32(1085254874);
emit_32(3271163904);
emit_32(3272384512);
emit_32(1084610859);
emit_32(3271163904);
emit_32(3272128528);
emit_32(1085403226);
emit_32(3271163904);
emit_32(3271872545);
emit_32(1085803741);
emit_32(3271163904);
emit_32(3271616496);
emit_32(1084901902);
emit_32(3271163904);
emit_32(3271163904);
emit_32(1086653402);
emit_32(3271163904);
emit_32(3270651937);
emit_32(1089541201);
emit_32(3271163904);
emit_32(3270139970);
emit_32(1090924587);
emit_32(3271163904);
emit_32(3269627871);
emit_32(1091193002);
emit_32(3271163904);
emit_32(3269115904);
emit_32(1091042709);
emit_32(3271163904);
emit_32(3268603937);
emit_32(1091824318);
emit_32(3271163904);
emit_32(3268091970);
emit_32(1094207721);
emit_32(3271163904);
emit_32(3267579911);
emit_32(1096193199);
emit_32(3271163904);
emit_32(3267067904);
emit_32(1098383045);
emit_32(3271163904);
emit_32(3266555911);
emit_32(1099615542);
emit_32(3271163904);
emit_32(3266043904);
emit_32(1101433038);
emit_32(3271163904);
emit_32(3265531911);
emit_32(1103595045);
emit_32(3271163904);
emit_32(3265019904);
emit_32(1105129950);
emit_32(3271163904);
emit_32(3264507911);
emit_32(1106326061);
emit_32(3271163904);
emit_32(3263995904);
emit_32(1107411652);
emit_32(3271163904);
emit_32(3263483911);
emit_32(1107887050);
emit_32(3271163904);
emit_32(3262775296);
emit_32(1108492236);
emit_32(3271163904);
emit_32(3261751309);
emit_32(1109105757);
emit_32(3271163904);
emit_32(3260727296);
emit_32(1109424656);
emit_32(3271163904);
emit_32(3259703309);
emit_32(1109901784);
emit_32(3271163904);
emit_32(3258679296);
emit_32(1109885321);
emit_32(3271163904);
emit_32(3257655309);
emit_32(1109822564);
emit_32(3271163904);
emit_32(3256631296);
emit_32(1109824163);
emit_32(3271163904);
emit_32(3255607309);
emit_32(1109730315);
emit_32(3271163904);
emit_32(3254386688);
emit_32(1109803113);
emit_32(3271163904);
emit_32(3252338714);
emit_32(1109995186);
emit_32(3271163904);
emit_32(3250290688);
emit_32(1110434618);
emit_32(3271163904);
emit_32(3248242714);
emit_32(1111024783);
emit_32(3271163904);
emit_32(3245998080);
emit_32(1111309785);
emit_32(3271163904);
emit_32(3241902132);
emit_32(1111384208);
emit_32(3271163904);
emit_32(3237609472);
emit_32(1111783952);
emit_32(3271163904);
emit_32(3229220864);
emit_32(1111918930);
emit_32(3271163904);
emit_32(0);
emit_32(1112106100);
emit_32(3271163904);
emit_32(1081737216);
emit_32(1112094042);
emit_32(3271163904);
emit_start(Landscape06Vtx)
emit_32(3279552512);
emit_32(1085562023);
emit_32(1131812880);
emit_32(3279552512);
emit_32(1090639836);
emit_32(1132068864);
emit_32(3279296528);
emit_32(1088557385);
emit_32(1131812880);
emit_32(3279296528);
emit_32(1092330749);
emit_32(1132068864);
emit_32(3279040545);
emit_32(1092455865);
emit_32(1131812880);
emit_32(3279040545);
emit_32(1094355780);
emit_32(1132068864);
emit_32(3278784496);
emit_32(1095594567);
emit_32(1131812880);
emit_32(3278784496);
emit_32(1095302539);
emit_32(1132068864);
emit_32(3278528512);
emit_32(1096797808);
emit_32(1131812880);
emit_32(3278528512);
emit_32(1095711379);
emit_32(1132068864);
emit_32(3278272528);
emit_32(1098618136);
emit_32(1131812880);
emit_32(3278272528);
emit_32(1098003041);
emit_32(1132068864);
emit_32(3278016545);
emit_32(1099699061);
emit_32(1131812880);
emit_32(3278016545);
emit_32(1099454009);
emit_32(1132068864);
emit_32(3277760496);
emit_32(1100182821);
emit_32(1131812880);
emit_32(3277760496);
emit_32(1099951977);
emit_32(1132068864);
emit_32(3277504512);
emit_32(1100520096);
emit_32(1131812880);
emit_32(3277504512);
emit_32(1100371355);
emit_32(1132068864);
emit_32(3277248528);
emit_32(1100966579);
emit_32(1131812880);
emit_32(3277248528);
emit_32(1100780352);
emit_32(1132068864);
emit_32(3276992545);
emit_32(1100860306);
emit_32(1131812880);
emit_32(3276992545);
emit_32(1101050203);
emit_32(1132068864);
emit_32(3276736496);
emit_32(1100465622);
emit_32(1131812880);
emit_32(3276736496);
emit_32(1100893074);
emit_32(1132068864);
emit_32(3276480512);
emit_32(1100581280);
emit_32(1131812880);
emit_32(3276480512);
emit_32(1101018641);
emit_32(1132068864);
emit_32(3276224528);
emit_32(1099877895);
emit_32(1131812880);
emit_32(3276224528);
emit_32(1100648651);
emit_32(1132068864);
emit_32(3275968545);
emit_32(1098108633);
emit_32(1131812880);
emit_32(3275968545);
emit_32(1099969017);
emit_32(1132068864);
emit_32(3275712496);
emit_32(1097534433);
emit_32(1131812880);
emit_32(3275712496);
emit_32(1099061736);
emit_32(1132068864);
emit_32(3275456512);
emit_32(1095741263);
emit_32(1131812880);
emit_32(3275456512);
emit_32(1097819121);
emit_32(1132068864);
emit_32(3275200528);
emit_32(1094351061);
emit_32(1131812880);
emit_32(3275200528);
emit_32(1095413373);
emit_32(1132068864);
emit_32(3274944545);
emit_32(1095198940);
emit_32(1131812880);
emit_32(3274944545);
emit_32(1096465724);
emit_32(1132068864);
emit_32(3274688496);
emit_32(1095888378);
emit_32(1131812880);
emit_32(3274688496);
emit_32(1097378510);
emit_32(1132068864);
emit_32(3274432512);
emit_32(1096087503);
emit_32(1131812880);
emit_32(3274432512);
emit_32(1098800064);
emit_32(1132068864);
emit_32(3274176528);
emit_32(1096238288);
emit_32(1131812880);
emit_32(3274176528);
emit_32(1098870004);
emit_32(1132068864);
emit_32(3273920545);
emit_32(1096234303);
emit_32(1131812880);
emit_32(3273920545);
emit_32(1098365115);
emit_32(1132068864);
emit_32(3273664496);
emit_32(1097531182);
emit_32(1131812880);
emit_32(3273664496);
emit_32(1097973681);
emit_32(1132068864);
emit_32(3273408512);
emit_32(1096980680);
emit_32(1131812880);
emit_32(3273408512);
emit_32(1097661835);
emit_32(1132068864);
emit_32(3273152528);
emit_32(1096822135);
emit_32(1131812880);
emit_32(3273152528);
emit_32(1097231709);
emit_32(1132068864);
emit_32(3272896545);
emit_32(1095973103);
emit_32(1131812880);
emit_32(3272896545);
emit_32(1097116261);
emit_32(1132068864);
emit_32(3272640496);
emit_32(1095621621);
emit_32(1131812880);
emit_32(3272640496);
emit_32(1096358035);
emit_32(1132068864);
emit_32(3272384512);
emit_32(1095942380);
emit_32(1131812880);
emit_32(3272384512);
emit_32(1097122133);
emit_32(1132068864);
emit_32(3272128528);
emit_32(1095707289);
emit_32(1131812880);
emit_32(3272128528);
emit_32(1097935303);
emit_32(1132068864);
emit_32(3271872545);
emit_32(1096204524);
emit_32(1131812880);
emit_32(3271872545);
emit_32(1097370855);
emit_32(1132068864);
emit_32(3271616496);
emit_32(1096900883);
emit_32(1131812880);
emit_32(3271616496);
emit_32(1098608280);
emit_32(1132068864);
emit_32(3271163904);
emit_32(1096266285);
emit_32(1131812880);
emit_32(3271163904);
emit_32(1098342256);
emit_32(1132068864);
emit_32(3270651937);
emit_32(1095366397);
emit_32(1131812880);
emit_32(3270651937);
emit_32(1098053793);
emit_32(1132068864);
emit_32(3270139970);
emit_32(1094774581);
emit_32(1131812880);
emit_32(3270139970);
emit_32(1098324640);
emit_32(1132068864);
emit_32(3269627871);
emit_32(1095465488);
emit_32(1131812880);
emit_32(3269627871);
emit_32(1098790417);
emit_32(1132068864);
emit_32(3269115904);
emit_32(1095080136);
emit_32(1131812880);
emit_32(3269115904);
emit_32(1098071199);
emit_32(1132068864);
emit_32(3268603937);
emit_32(1095775027);
emit_32(1131812880);
emit_32(3268603937);
emit_32(1098042258);
emit_32(1132068864);
emit_32(3268091970);
emit_32(1096498335);
emit_32(1131812880);
emit_32(3268091970);
emit_32(1097596823);
emit_32(1132068864);
emit_32(3267579911);
emit_32(1096881170);
emit_32(1131812880);
emit_32(3267579911);
emit_32(1097962986);
emit_32(1132068864);
emit_32(3267067904);
emit_32(1096646604);
emit_32(1131812880);
emit_32(3267067904);
emit_32(1097510525);
emit_32(1132068864);
emit_32(3266555911);
emit_32(1097473930);
emit_32(1131812880);
emit_32(3266555911);
emit_32(1096970614);
emit_32(1132068864);
emit_32(3266043904);
emit_32(1096072928);
emit_32(1131812880);
emit_32(3266043904);
emit_32(1096851181);
emit_32(1132068864);
emit_32(3265531911);
emit_32(1095562061);
emit_32(1131812880);
emit_32(3265531911);
emit_32(1096578341);
emit_32(1132068864);
emit_32(3265019904);
emit_32(1094504258);
emit_32(1131812880);
emit_32(3265019904);
emit_32(1095833747);
emit_32(1132068864);
emit_32(3264507911);
emit_32(1094381679);
emit_32(1131812880);
emit_32(3264507911);
emit_32(1095590058);
emit_32(1132068864);
emit_32(3263995904);
emit_32(1093698952);
emit_32(1131812880);
emit_32(3263995904);
emit_32(1095093872);
emit_32(1132068864);
emit_32(3263483911);
emit_32(1094601146);
emit_32(1131812880);
emit_32(3263483911);
emit_32(1093864941);
emit_32(1132068864);
emit_32(3262775296);
emit_32(1093294516);
emit_32(1131812880);
emit_32(3262775296);
emit_32(1092542435);
emit_32(1132068864);
emit_32(3261751309);
emit_32(1091098766);
emit_32(1131812880);
emit_32(3261751309);
emit_32(1091449232);
emit_32(1132068864);
emit_32(3260727296);
emit_32(1088637685);
emit_32(1131812880);
emit_32(3260727296);
emit_32(1089462705);
emit_32(1132068864);
emit_32(3259703309);
emit_32(1088371137);
emit_32(1131812880);
emit_32(3259703309);
emit_32(1086825892);
emit_32(1132068864);
emit_32(3258679296);
emit_32(1090482591);
emit_32(1131812880);
emit_32(3258679296);
emit_32(1088189482);
emit_32(1132068864);
emit_32(3257655309);
emit_32(1091688768);
emit_32(1131812880);
emit_32(3257655309);
emit_32(1089036752);
emit_32(1132068864);
emit_32(3256631296);
emit_32(1091298897);
emit_32(1131812880);
emit_32(3256631296);
emit_32(1088194704);
emit_32(1132068864);
emit_32(3255607309);
emit_32(1089392345);
emit_32(1131812880);
emit_32(3255607309);
emit_32(1087706759);
emit_32(1132068864);
emit_32(3254386688);
emit_32(1089840108);
emit_32(1131812880);
emit_32(3254386688);
emit_32(1087906072);
emit_32(1132068864);
emit_32(3252338714);
emit_32(1088432604);
emit_32(1131812880);
emit_32(3252338714);
emit_32(1086651325);
emit_32(1132068864);
emit_32(3250290688);
emit_32(1085565840);
emit_32(1131812880);
emit_32(3250290688);
emit_32(1085752989);
emit_32(1132068864);
emit_32(3248242714);
emit_32(1084476831);
emit_32(1131812880);
emit_32(3248242714);
emit_32(1082147671);
emit_32(1132068864);
emit_32(3245998080);
emit_32(1080454304);
emit_32(1131812880);
emit_32(3245998080);
emit_32(1080053035);
emit_32(1132068864);
emit_32(3241902132);
emit_32(1078160817);
emit_32(1131812880);
emit_32(3241902132);
emit_32(1078352203);
emit_32(1132068864);
emit_32(3237609472);
emit_32(1075763269);
emit_32(1131812880);
emit_32(3237609472);
emit_32(1075673385);
emit_32(1132068864);
emit_32(3229220864);
emit_32(1071152764);
emit_32(1131812880);
emit_32(3229220864);
emit_32(1076050788);
emit_32(1132068864);
emit_32(0);
emit_32(1066573591);
emit_32(1131812880);
emit_32(0);
emit_32(1074500112);
emit_32(1132068864);
emit_32(1081737216);
emit_32(1055384530);
emit_32(1131812880);
emit_32(1081737216);
emit_32(1069740626);
emit_32(1132068864);
emit_32(3279552512);
emit_32(1084680359);
emit_32(1131556897);
emit_32(3279296528);
emit_32(1089160463);
emit_32(1131556897);
emit_32(3279040545);
emit_32(1092855687);
emit_32(1131556897);
emit_32(3278784496);
emit_32(1095505229);
emit_32(1131556897);
emit_32(3278528512);
emit_32(1097158309);
emit_32(1131556897);
emit_32(3278272528);
emit_32(1099096077);
emit_32(1131556897);
emit_32(3278016545);
emit_32(1099862691);
emit_32(1131556897);
emit_32(3277760496);
emit_32(1100235198);
emit_32(1131556897);
emit_32(3277504512);
emit_32(1100353529);
emit_32(1131556897);
emit_32(3277248528);
emit_32(1100744753);
emit_32(1131556897);
emit_32(3276992545);
emit_32(1100450208);
emit_32(1131556897);
emit_32(3276736496);
emit_32(1099944218);
emit_32(1131556897);
emit_32(3276480512);
emit_32(1099578632);
emit_32(1131556897);
emit_32(3276224528);
emit_32(1098095211);
emit_32(1131556897);
emit_32(3275968545);
emit_32(1096681416);
emit_32(1131556897);
emit_32(3275712496);
emit_32(1095628436);
emit_32(1131556897);
emit_32(3275456512);
emit_32(1094488739);
emit_32(1131556897);
emit_32(3275200528);
emit_32(1095225678);
emit_32(1131556897);
emit_32(3274944545);
emit_32(1095742416);
emit_32(1131556897);
emit_32(3274688496);
emit_32(1096313995);
emit_32(1131556897);
emit_32(3274432512);
emit_32(1096609379);
emit_32(1131556897);
emit_32(3274176528);
emit_32(1096643458);
emit_32(1131556897);
emit_32(3273920545);
emit_32(1096377644);
emit_32(1131556897);
emit_32(3273664496);
emit_32(1096630875);
emit_32(1131556897);
emit_32(3273408512);
emit_32(1096367787);
emit_32(1131556897);
emit_32(3273152528);
emit_32(1095764646);
emit_32(1131556897);
emit_32(3272896545);
emit_32(1095369648);
emit_32(1131556897);
emit_32(3272640496);
emit_32(1095202610);
emit_32(1131556897);
emit_32(3272384512);
emit_32(1095378141);
emit_32(1131556897);
emit_32(3272128528);
emit_32(1094896425);
emit_32(1131556897);
emit_32(3271872545);
emit_32(1094491570);
emit_32(1131556897);
emit_32(3271616496);
emit_32(1094140717);
emit_32(1131556897);
emit_32(3271163904);
emit_32(1093673576);
emit_32(1131556897);
emit_32(3270651937);
emit_32(1092775680);
emit_32(1131556897);
emit_32(3270139970);
emit_32(1093246176);
emit_32(1131556897);
emit_32(3269627871);
emit_32(1092835135);
emit_32(1131556897);
emit_32(3269115904);
emit_32(1093700839);
emit_32(1131556897);
emit_32(3268603937);
emit_32(1093815868);
emit_32(1131556897);
emit_32(3268091970);
emit_32(1095128475);
emit_32(1131556897);
emit_32(3267579911);
emit_32(1096138044);
emit_32(1131556897);
emit_32(3267067904);
emit_32(1097063727);
emit_32(1131556897);
emit_32(3266555911);
emit_32(1096790468);
emit_32(1131556897);
emit_32(3266043904);
emit_32(1096105433);
emit_32(1131556897);
emit_32(3265531911);
emit_32(1094675490);
emit_32(1131556897);
emit_32(3265019904);
emit_32(1094279548);
emit_32(1131556897);
emit_32(3264507911);
emit_32(1094433060);
emit_32(1131556897);
emit_32(3263995904);
emit_32(1094244316);
emit_32(1131556897);
emit_32(3263483911);
emit_32(1095101212);
emit_32(1131556897);
emit_32(3262775296);
emit_32(1093870184);
emit_32(1131556897);
emit_32(3261751309);
emit_32(1092196416);
emit_32(1131556897);
emit_32(3260727296);
emit_32(1090926800);
emit_32(1131556897);
emit_32(3259703309);
emit_32(1089315547);
emit_32(1131556897);
emit_32(3258679296);
emit_32(1090882864);
emit_32(1131556897);
emit_32(3257655309);
emit_32(1092302982);
emit_32(1131556897);
emit_32(3256631296);
emit_32(1091679478);
emit_32(1131556897);
emit_32(3255607309);
emit_32(1090777587);
emit_32(1131556897);
emit_32(3254386688);
emit_32(1090588833);
emit_32(1131556897);
emit_32(3252338714);
emit_32(1088391584);
emit_32(1131556897);
emit_32(3250290688);
emit_32(1088187762);
emit_32(1131556897);
emit_32(3248242714);
emit_32(1086074735);
emit_32(1131556897);
emit_32(3245998080);
emit_32(1083035311);
emit_32(1131556897);
emit_32(3241902132);
emit_32(1080697784);
emit_32(1131556897);
emit_32(3237609472);
emit_32(1077335797);
emit_32(1131556897);
emit_32(3229220864);
emit_32(1072342604);
emit_32(1131556897);
emit_32(0);
emit_32(1073908380);
emit_32(1131556897);
emit_32(1081737216);
emit_32(1074643096);
emit_32(1131556897);
emit_32(3279552512);
emit_32(1085160041);
emit_32(1131300848);
emit_32(3279296528);
emit_32(1090327885);
emit_32(1131300848);
emit_32(3279040545);
emit_32(1093025976);
emit_32(1131300848);
emit_32(3278784496);
emit_32(1095630848);
emit_32(1131300848);
emit_32(3278528512);
emit_32(1097676095);
emit_32(1131300848);
emit_32(3278272528);
emit_32(1099190973);
emit_32(1131300848);
emit_32(3278016545);
emit_32(1099857081);
emit_32(1131300848);
emit_32(3277760496);
emit_32(1100491260);
emit_32(1131300848);
emit_32(3277504512);
emit_32(1100352848);
emit_32(1131300848);
emit_32(3277248528);
emit_32(1100472753);
emit_32(1131300848);
emit_32(3276992545);
emit_32(1100152989);
emit_32(1131300848);
emit_32(3276736496);
emit_32(1099265684);
emit_32(1131300848);
emit_32(3276480512);
emit_32(1098708314);
emit_32(1131300848);
emit_32(3276224528);
emit_32(1096067580);
emit_32(1131300848);
emit_32(3275968545);
emit_32(1096230633);
emit_32(1131300848);
emit_32(3275712496);
emit_32(1096388025);
emit_32(1131300848);
emit_32(3275456512);
emit_32(1094867799);
emit_32(1131300848);
emit_32(3275200528);
emit_32(1096132172);
emit_32(1131300848);
emit_32(3274944545);
emit_32(1097306682);
emit_32(1131300848);
emit_32(3274688496);
emit_32(1097887069);
emit_32(1131300848);
emit_32(3274432512);
emit_32(1097633838);
emit_32(1131300848);
emit_32(3274176528);
emit_32(1098457389);
emit_32(1131300848);
emit_32(3273920545);
emit_32(1097090466);
emit_32(1131300848);
emit_32(3273664496);
emit_32(1096891446);
emit_32(1131300848);
emit_32(3273408512);
emit_32(1095233962);
emit_32(1131300848);
emit_32(3273152528);
emit_32(1094867799);
emit_32(1131300848);
emit_32(3272896545);
emit_32(1094576295);
emit_32(1131300848);
emit_32(3272640496);
emit_32(1093957845);
emit_32(1131300848);
emit_32(3272384512);
emit_32(1093473193);
emit_32(1131300848);
emit_32(3272128528);
emit_32(1093446664);
emit_32(1131300848);
emit_32(3271872545);
emit_32(1093505489);
emit_32(1131300848);
emit_32(3271616496);
emit_32(1092573494);
emit_32(1131300848);
emit_32(3271163904);
emit_32(1092718533);
emit_32(1131300848);
emit_32(3270651937);
emit_32(1091299642);
emit_32(1131300848);
emit_32(3270139970);
emit_32(1091752270);
emit_32(1131300848);
emit_32(3269627871);
emit_32(1092863027);
emit_32(1131300848);
emit_32(3269115904);
emit_32(1093352607);
emit_32(1131300848);
emit_32(3268603937);
emit_32(1094334389);
emit_32(1131300848);
emit_32(3268091970);
emit_32(1095530080);
emit_32(1131300848);
emit_32(3267579911);
emit_32(1096764359);
emit_32(1131300848);
emit_32(3267067904);
emit_32(1096925944);
emit_32(1131300848);
emit_32(3266555911);
emit_32(1096040107);
emit_32(1131300848);
emit_32(3266043904);
emit_32(1094881536);
emit_32(1131300848);
emit_32(3265531911);
emit_32(1094389753);
emit_32(1131300848);
emit_32(3265019904);
emit_32(1094053370);
emit_32(1131300848);
emit_32(3264507911);
emit_32(1094865283);
emit_32(1131300848);
emit_32(3263995904);
emit_32(1095186461);
emit_32(1131300848);
emit_32(3263483911);
emit_32(1095388208);
emit_32(1131300848);
emit_32(3262775296);
emit_32(1094366475);
emit_32(1131300848);
emit_32(3261751309);
emit_32(1093486930);
emit_32(1131300848);
emit_32(3260727296);
emit_32(1091443444);
emit_32(1131300848);
emit_32(3259703309);
emit_32(1090412169);
emit_32(1131300848);
emit_32(3258679296);
emit_32(1091017376);
emit_32(1131300848);
emit_32(3257655309);
emit_32(1091659503);
emit_32(1131300848);
emit_32(3256631296);
emit_32(1091788813);
emit_32(1131300848);
emit_32(3255607309);
emit_32(1091703155);
emit_32(1131300848);
emit_32(3254386688);
emit_32(1091097539);
emit_32(1131300848);
emit_32(3252338714);
emit_32(1090228501);
emit_32(1131300848);
emit_32(3250290688);
emit_32(1089127831);
emit_32(1131300848);
emit_32(3248242714);
emit_32(1087112238);
emit_32(1131300848);
emit_32(3245998080);
emit_32(1085471698);
emit_32(1131300848);
emit_32(3241902132);
emit_32(1083846552);
emit_32(1131300848);
emit_32(3237609472);
emit_32(1082879010);
emit_32(1131300848);
emit_32(3229220864);
emit_32(1080627152);
emit_32(1131300848);
emit_32(0);
emit_32(1080885311);
emit_32(1131300848);
emit_32(1081737216);
emit_32(1078120510);
emit_32(1131300848);
emit_32(3279552512);
emit_32(1086174748);
emit_32(1131044864);
emit_32(3279296528);
emit_32(1090628574);
emit_32(1131044864);
emit_32(3279040545);
emit_32(1092984871);
emit_32(1131044864);
emit_32(3278784496);
emit_32(1095235954);
emit_32(1131044864);
emit_32(3278528512);
emit_32(1097962986);
emit_32(1131044864);
emit_32(3278272528);
emit_32(1098907753);
emit_32(1131044864);
emit_32(3278016545);
emit_32(1099567464);
emit_32(1131044864);
emit_32(3277760496);
emit_32(1100053322);
emit_32(1131044864);
emit_32(3277504512);
emit_32(1100365745);
emit_32(1131044864);
emit_32(3277248528);
emit_32(1100199389);
emit_32(1131044864);
emit_32(3276992545);
emit_32(1100122476);
emit_32(1131044864);
emit_32(3276736496);
emit_32(1098964533);
emit_32(1131044864);
emit_32(3276480512);
emit_32(1098061028);
emit_32(1131044864);
emit_32(3276224528);
emit_32(1096998401);
emit_32(1131044864);
emit_32(3275968545);
emit_32(1096347969);
emit_32(1131044864);
emit_32(3275712496);
emit_32(1096743597);
emit_32(1131044864);
emit_32(3275456512);
emit_32(1096079639);
emit_32(1131044864);
emit_32(3275200528);
emit_32(1096454190);
emit_32(1131044864);
emit_32(3274944545);
emit_32(1097972947);
emit_32(1131044864);
emit_32(3274688496);
emit_32(1098482241);
emit_32(1131044864);
emit_32(3274432512);
emit_32(1098243165);
emit_32(1131044864);
emit_32(3274176528);
emit_32(1097818073);
emit_32(1131044864);
emit_32(3273920545);
emit_32(1097259811);
emit_32(1131044864);
emit_32(3273664496);
emit_32(1096971138);
emit_32(1131044864);
emit_32(3273408512);
emit_32(1095776495);
emit_32(1131044864);
emit_32(3273152528);
emit_32(1094346657);
emit_32(1131044864);
emit_32(3272896545);
emit_32(1094305658);
emit_32(1131044864);
emit_32(3272640496);
emit_32(1093779797);
emit_32(1131044864);
emit_32(3272384512);
emit_32(1093535059);
emit_32(1131044864);
emit_32(3272128528);
emit_32(1092859566);
emit_32(1131044864);
emit_32(3271872545);
emit_32(1092315471);
emit_32(1131044864);
emit_32(3271616496);
emit_32(1091613628);
emit_32(1131044864);
emit_32(3271163904);
emit_32(1092129045);
emit_32(1131044864);
emit_32(3270651937);
emit_32(1090623961);
emit_32(1131044864);
emit_32(3270139970);
emit_32(1091745329);
emit_32(1131044864);
emit_32(3269627871);
emit_32(1092278802);
emit_32(1131044864);
emit_32(3269115904);
emit_32(1092897106);
emit_32(1131044864);
emit_32(3268603937);
emit_32(1093630060);
emit_32(1131044864);
emit_32(3268091970);
emit_32(1095021835);
emit_32(1131044864);
emit_32(3267579911);
emit_32(1096071460);
emit_32(1131044864);
emit_32(3267067904);
emit_32(1095859647);
emit_32(1131044864);
emit_32(3266555911);
emit_32(1095186671);
emit_32(1131044864);
emit_32(3266043904);
emit_32(1094964478);
emit_32(1131044864);
emit_32(3265531911);
emit_32(1094463993);
emit_32(1131044864);
emit_32(3265019904);
emit_32(1094678322);
emit_32(1131044864);
emit_32(3264507911);
emit_32(1094959340);
emit_32(1131044864);
emit_32(3263995904);
emit_32(1095934725);
emit_32(1131044864);
emit_32(3263483911);
emit_32(1096292499);
emit_32(1131044864);
emit_32(3262775296);
emit_32(1095947833);
emit_32(1131044864);
emit_32(3261751309);
emit_32(1094626102);
emit_32(1131044864);
emit_32(3260727296);
emit_32(1092638002);
emit_32(1131044864);
emit_32(3259703309);
emit_32(1091654302);
emit_32(1131044864);
emit_32(3258679296);
emit_32(1090981043);
emit_32(1131044864);
emit_32(3257655309);
emit_32(1091856132);
emit_32(1131044864);
emit_32(3256631296);
emit_32(1092849815);
emit_32(1131044864);
emit_32(3255607309);
emit_32(1092381563);
emit_32(1131044864);
emit_32(3254386688);
emit_32(1091755762);
emit_32(1131044864);
emit_32(3252338714);
emit_32(1091392210);
emit_32(1131044864);
emit_32(3250290688);
emit_32(1090522762);
emit_32(1131044864);
emit_32(3248242714);
emit_32(1089201336);
emit_32(1131044864);
emit_32(3245998080);
emit_32(1088158150);
emit_32(1131044864);
emit_32(3241902132);
emit_32(1086827927);
emit_32(1131044864);
emit_32(3237609472);
emit_32(1085289603);
emit_32(1131044864);
emit_32(3229220864);
emit_32(1084371008);
emit_32(1131044864);
emit_32(0);
emit_32(1084371155);
emit_32(1131044864);
emit_32(1081737216);
emit_32(1084629524);
emit_32(1131044864);
emit_32(3279552512);
emit_32(1084191198);
emit_32(1130788880);
emit_32(3279296528);
emit_32(1090263187);
emit_32(1130788880);
emit_32(3279040545);
emit_32(1093579624);
emit_32(1130788880);
emit_32(3278784496);
emit_32(1095609772);
emit_32(1130788880);
emit_32(3278528512);
emit_32(1097395392);
emit_32(1130788880);
emit_32(3278272528);
emit_32(1098942775);
emit_32(1130788880);
emit_32(3278016545);
emit_32(1099952973);
emit_32(1130788880);
emit_32(3277760496);
emit_32(1100137051);
emit_32(1130788880);
emit_32(3277504512);
emit_32(1100188117);
emit_32(1130788880);
emit_32(3277248528);
emit_32(1100449631);
emit_32(1130788880);
emit_32(3276992545);
emit_32(1099596091);
emit_32(1130788880);
emit_32(3276736496);
emit_32(1098204263);
emit_32(1130788880);
emit_32(3276480512);
emit_32(1098412510);
emit_32(1130788880);
emit_32(3276224528);
emit_32(1097801505);
emit_32(1130788880);
emit_32(3275968545);
emit_32(1096603507);
emit_32(1130788880);
emit_32(3275712496);
emit_32(1095928224);
emit_32(1130788880);
emit_32(3275456512);
emit_32(1096222035);
emit_32(1130788880);
emit_32(3275200528);
emit_32(1097042546);
emit_32(1130788880);
emit_32(3274944545);
emit_32(1097761554);
emit_32(1130788880);
emit_32(3274688496);
emit_32(1098099720);
emit_32(1130788880);
emit_32(3274432512);
emit_32(1097722862);
emit_32(1130788880);
emit_32(3274176528);
emit_32(1096956563);
emit_32(1130788880);
emit_32(3273920545);
emit_32(1096582850);
emit_32(1130788880);
emit_32(3273664496);
emit_32(1095826303);
emit_32(1130788880);
emit_32(3273408512);
emit_32(1095071538);
emit_32(1130788880);
emit_32(3273152528);
emit_32(1094227434);
emit_32(1130788880);
emit_32(3272896545);
emit_32(1094210132);
emit_32(1130788880);
emit_32(3272640496);
emit_32(1093761027);
emit_32(1130788880);
emit_32(3272384512);
emit_32(1093810520);
emit_32(1130788880);
emit_32(3272128528);
emit_32(1092656772);
emit_32(1130788880);
emit_32(3271872545);
emit_32(1091138738);
emit_32(1130788880);
emit_32(3271616496);
emit_32(1089927035);
emit_32(1130788880);
emit_32(3271163904);
emit_32(1089350360);
emit_32(1130788880);
emit_32(3270651937);
emit_32(1090698210);
emit_32(1130788880);
emit_32(3270139970);
emit_32(1090875577);
emit_32(1130788880);
emit_32(3269627871);
emit_32(1091800075);
emit_32(1130788880);
emit_32(3269115904);
emit_32(1092846354);
emit_32(1130788880);
emit_32(3268603937);
emit_32(1094213173);
emit_32(1130788880);
emit_32(3268091970);
emit_32(1095490444);
emit_32(1130788880);
emit_32(3267579911);
emit_32(1095492331);
emit_32(1130788880);
emit_32(3267067904);
emit_32(1095128475);
emit_32(1130788880);
emit_32(3266555911);
emit_32(1094457387);
emit_32(1130788880);
emit_32(3266043904);
emit_32(1093000915);
emit_32(1130788880);
emit_32(3265531911);
emit_32(1092702700);
emit_32(1130788880);
emit_32(3265019904);
emit_32(1094131489);
emit_32(1130788880);
emit_32(3264507911);
emit_32(1094959759);
emit_32(1130788880);
emit_32(3263995904);
emit_32(1096392743);
emit_32(1130788880);
emit_32(3263483911);
emit_32(1097205809);
emit_32(1130788880);
emit_32(3262775296);
emit_32(1096775893);
emit_32(1130788880);
emit_32(3261751309);
emit_32(1095617217);
emit_32(1130788880);
emit_32(3260727296);
emit_32(1094159591);
emit_32(1130788880);
emit_32(3259703309);
emit_32(1092609701);
emit_32(1130788880);
emit_32(3258679296);
emit_32(1091241058);
emit_32(1130788880);
emit_32(3257655309);
emit_32(1092023201);
emit_32(1130788880);
emit_32(3256631296);
emit_32(1093109862);
emit_32(1130788880);
emit_32(3255607309);
emit_32(1093719399);
emit_32(1130788880);
emit_32(3254386688);
emit_32(1093231077);
emit_32(1130788880);
emit_32(3252338714);
emit_32(1093489761);
emit_32(1130788880);
emit_32(3250290688);
emit_32(1092575423);
emit_32(1130788880);
emit_32(3248242714);
emit_32(1091158975);
emit_32(1130788880);
emit_32(3245998080);
emit_32(1089311227);
emit_32(1130788880);
emit_32(3241902132);
emit_32(1087230748);
emit_32(1130788880);
emit_32(3237609472);
emit_32(1087094936);
emit_32(1130788880);
emit_32(3229220864);
emit_32(1087427439);
emit_32(1130788880);
emit_32(0);
emit_32(1086716610);
emit_32(1130788880);
emit_32(1081737216);
emit_32(1086083564);
emit_32(1130788880);
emit_32(3279552512);
emit_32(1084064572);
emit_32(1130532897);
emit_32(3279296528);
emit_32(1091219604);
emit_32(1130532897);
emit_32(3279040545);
emit_32(1094461581);
emit_32(1130532897);
emit_32(3278784496);
emit_32(1096451988);
emit_32(1130532897);
emit_32(3278528512);
emit_32(1098531104);
emit_32(1130532897);
emit_32(3278272528);
emit_32(1099322203);
emit_32(1130532897);
emit_32(3278016545);
emit_32(1099673423);
emit_32(1130532897);
emit_32(3277760496);
emit_32(1100210032);
emit_32(1130532897);
emit_32(3277504512);
emit_32(1100192468);
emit_32(1130532897);
emit_32(3277248528);
emit_32(1099743153);
emit_32(1130532897);
emit_32(3276992545);
emit_32(1099219128);
emit_32(1130532897);
emit_32(3276736496);
emit_32(1097733767);
emit_32(1130532897);
emit_32(3276480512);
emit_32(1098251554);
emit_32(1130532897);
emit_32(3276224528);
emit_32(1098330197);
emit_32(1130532897);
emit_32(3275968545);
emit_32(1097354078);
emit_32(1130532897);
emit_32(3275712496);
emit_32(1095686947);
emit_32(1130532897);
emit_32(3275456512);
emit_32(1096170655);
emit_32(1130532897);
emit_32(3275200528);
emit_32(1096848035);
emit_32(1130532897);
emit_32(3274944545);
emit_32(1098161481);
emit_32(1130532897);
emit_32(3274688496);
emit_32(1097829712);
emit_32(1130532897);
emit_32(3274432512);
emit_32(1097057436);
emit_32(1130532897);
emit_32(3274176528);
emit_32(1096473484);
emit_32(1130532897);
emit_32(3273920545);
emit_32(1095842765);
emit_32(1130532897);
emit_32(3273664496);
emit_32(1095539517);
emit_32(1130532897);
emit_32(3273408512);
emit_32(1095213200);
emit_32(1130532897);
emit_32(3273152528);
emit_32(1094205414);
emit_32(1130532897);
emit_32(3272896545);
emit_32(1093845647);
emit_32(1130532897);
emit_32(3272640496);
emit_32(1093546174);
emit_32(1130532897);
emit_32(3272384512);
emit_32(1092377452);
emit_32(1130532897);
emit_32(3272128528);
emit_32(1091313106);
emit_32(1130532897);
emit_32(3271872545);
emit_32(1087954328);
emit_32(1130532897);
emit_32(3271616496);
emit_32(1087060480);
emit_32(1130532897);
emit_32(3271163904);
emit_32(1087580678);
emit_32(1130532897);
emit_32(3270651937);
emit_32(1090126768);
emit_32(1130532897);
emit_32(3270139970);
emit_32(1090624715);
emit_32(1130532897);
emit_32(3269627871);
emit_32(1091647664);
emit_32(1130532897);
emit_32(3269115904);
emit_32(1092856211);
emit_32(1130532897);
emit_32(3268603937);
emit_32(1094224917);
emit_32(1130532897);
emit_32(3268091970);
emit_32(1095671952);
emit_32(1130532897);
emit_32(3267579911);
emit_32(1095628646);
emit_32(1130532897);
emit_32(3267067904);
emit_32(1095567829);
emit_32(1130532897);
emit_32(3266555911);
emit_32(1093630270);
emit_32(1130532897);
emit_32(3266043904);
emit_32(1092684245);
emit_32(1130532897);
emit_32(3265531911);
emit_32(1091861343);
emit_32(1130532897);
emit_32(3265019904);
emit_32(1092755023);
emit_32(1130532897);
emit_32(3264507911);
emit_32(1094570528);
emit_32(1130532897);
emit_32(3263995904);
emit_32(1095357275);
emit_32(1130532897);
emit_32(3263483911);
emit_32(1096480299);
emit_32(1130532897);
emit_32(3262775296);
emit_32(1096746428);
emit_32(1130532897);
emit_32(3261751309);
emit_32(1096329514);
emit_32(1130532897);
emit_32(3260727296);
emit_32(1095223896);
emit_32(1130532897);
emit_32(3259703309);
emit_32(1093955643);
emit_32(1130532897);
emit_32(3258679296);
emit_32(1093246281);
emit_32(1130532897);
emit_32(3257655309);
emit_32(1094172174);
emit_32(1130532897);
emit_32(3256631296);
emit_32(1095280414);
emit_32(1130532897);
emit_32(3255607309);
emit_32(1095624976);
emit_32(1130532897);
emit_32(3254386688);
emit_32(1095264161);
emit_32(1130532897);
emit_32(3252338714);
emit_32(1094911210);
emit_32(1130532897);
emit_32(3250290688);
emit_32(1094226385);
emit_32(1130532897);
emit_32(3248242714);
emit_32(1092124945);
emit_32(1130532897);
emit_32(3245998080);
emit_32(1090831631);
emit_32(1130532897);
emit_32(3241902132);
emit_32(1089226670);
emit_32(1130532897);
emit_32(3237609472);
emit_32(1089629994);
emit_32(1130532897);
emit_32(3229220864);
emit_32(1089284992);
emit_32(1130532897);
emit_32(0);
emit_32(1088387495);
emit_32(1130532897);
emit_32(1081737216);
emit_32(1088205504);
emit_32(1130532897);
emit_32(3279552512);
emit_32(1083530931);
emit_32(1130276848);
emit_32(3279296528);
emit_32(1090306850);
emit_32(1130276848);
emit_32(3279040545);
emit_32(1093521008);
emit_32(1130276848);
emit_32(3278784496);
emit_32(1096939995);
emit_32(1130276848);
emit_32(3278528512);
emit_32(1098488322);
emit_32(1130276848);
emit_32(3278272528);
emit_32(1099450129);
emit_32(1130276848);
emit_32(3278016545);
emit_32(1099687369);
emit_32(1130276848);
emit_32(3277760496);
emit_32(1099754740);
emit_32(1130276848);
emit_32(3277504512);
emit_32(1099338246);
emit_32(1130276848);
emit_32(3277248528);
emit_32(1099121348);
emit_32(1130276848);
emit_32(3276992545);
emit_32(1097937191);
emit_32(1130276848);
emit_32(3276736496);
emit_32(1097116051);
emit_32(1130276848);
emit_32(3276480512);
emit_32(1097449498);
emit_32(1130276848);
emit_32(3276224528);
emit_32(1097296721);
emit_32(1130276848);
emit_32(3275968545);
emit_32(1096895116);
emit_32(1130276848);
emit_32(3275712496);
emit_32(1095191390);
emit_32(1130276848);
emit_32(3275456512);
emit_32(1095800403);
emit_32(1130276848);
emit_32(3275200528);
emit_32(1096784282);
emit_32(1130276848);
emit_32(3274944545);
emit_32(1097651454);
emit_32(1130276848);
emit_32(3274688496);
emit_32(1097454846);
emit_32(1130276848);
emit_32(3274432512);
emit_32(1096258211);
emit_32(1130276848);
emit_32(3274176528);
emit_32(1096116863);
emit_32(1130276848);
emit_32(3273920545);
emit_32(1096517943);
emit_32(1130276848);
emit_32(3273664496);
emit_32(1095318897);
emit_32(1130276848);
emit_32(3273408512);
emit_32(1094673498);
emit_32(1130276848);
emit_32(3273152528);
emit_32(1093918733);
emit_32(1130276848);
emit_32(3272896545);
emit_32(1093483364);
emit_32(1130276848);
emit_32(3272640496);
emit_32(1092914826);
emit_32(1130276848);
emit_32(3272384512);
emit_32(1091000567);
emit_32(1130276848);
emit_32(3272128528);
emit_32(1089935654);
emit_32(1130276848);
emit_32(3271872545);
emit_32(1086818510);
emit_32(1130276848);
emit_32(3271616496);
emit_32(1085690389);
emit_32(1130276848);
emit_32(3271163904);
emit_32(1086952309);
emit_32(1130276848);
emit_32(3270651937);
emit_32(1088839431);
emit_32(1130276848);
emit_32(3270139970);
emit_32(1089612819);
emit_32(1130276848);
emit_32(3269627871);
emit_32(1091440686);
emit_32(1130276848);
emit_32(3269115904);
emit_32(1092535473);
emit_32(1130276848);
emit_32(3268603937);
emit_32(1092891758);
emit_32(1130276848);
emit_32(3268091970);
emit_32(1094112510);
emit_32(1130276848);
emit_32(3267579911);
emit_32(1095020472);
emit_32(1130276848);
emit_32(3267067904);
emit_32(1094302617);
emit_32(1130276848);
emit_32(3266555911);
emit_32(1094287622);
emit_32(1130276848);
emit_32(3266043904);
emit_32(1092792667);
emit_32(1130276848);
emit_32(3265531911);
emit_32(1093051561);
emit_32(1130276848);
emit_32(3265019904);
emit_32(1093418353);
emit_32(1130276848);
emit_32(3264507911);
emit_32(1094221667);
emit_32(1130276848);
emit_32(3263995904);
emit_32(1095632001);
emit_32(1130276848);
emit_32(3263483911);
emit_32(1097732614);
emit_32(1130276848);
emit_32(3262775296);
emit_32(1098628832);
emit_32(1130276848);
emit_32(3261751309);
emit_32(1097948306);
emit_32(1130276848);
emit_32(3260727296);
emit_32(1097305319);
emit_32(1130276848);
emit_32(3259703309);
emit_32(1096485333);
emit_32(1130276848);
emit_32(3258679296);
emit_32(1095850210);
emit_32(1130276848);
emit_32(3257655309);
emit_32(1095872964);
emit_32(1130276848);
emit_32(3256631296);
emit_32(1096804414);
emit_32(1130276848);
emit_32(3255607309);
emit_32(1096692741);
emit_32(1130276848);
emit_32(3254386688);
emit_32(1096946077);
emit_32(1130276848);
emit_32(3252338714);
emit_32(1096420006);
emit_32(1130276848);
emit_32(3250290688);
emit_32(1094944660);
emit_32(1130276848);
emit_32(3248242714);
emit_32(1093505489);
emit_32(1130276848);
emit_32(3245998080);
emit_32(1092313867);
emit_32(1130276848);
emit_32(3241902132);
emit_32(1091062559);
emit_32(1130276848);
emit_32(3237609472);
emit_32(1091612432);
emit_32(1130276848);
emit_32(3229220864);
emit_32(1091011671);
emit_32(1130276848);
emit_32(0);
emit_32(1090792142);
emit_32(1130276848);
emit_32(1081737216);
emit_32(1088030748);
emit_32(1130276848);
emit_32(3279552512);
emit_32(1084583764);
emit_32(1130020864);
emit_32(3279296528);
emit_32(1087682243);
emit_32(1130020864);
emit_32(3279040545);
emit_32(1092094075);
emit_32(1130020864);
emit_32(3278784496);
emit_32(1095249691);
emit_32(1130020864);
emit_32(3278528512);
emit_32(1098698877);
emit_32(1130020864);
emit_32(3278272528);
emit_32(1099753796);
emit_32(1130020864);
emit_32(3278016545);
emit_32(1100023333);
emit_32(1130020864);
emit_32(3277760496);
emit_32(1099595042);
emit_32(1130020864);
emit_32(3277504512);
emit_32(1099115371);
emit_32(1130020864);
emit_32(3277248528);
emit_32(1098920493);
emit_32(1130020864);
emit_32(3276992545);
emit_32(1097370855);
emit_32(1130020864);
emit_32(3276736496);
emit_32(1096229480);
emit_32(1130020864);
emit_32(3276480512);
emit_32(1096179987);
emit_32(1130020864);
emit_32(3276224528);
emit_32(1096332765);
emit_32(1130020864);
emit_32(3275968545);
emit_32(1094920228);
emit_32(1130020864);
emit_32(3275712496);
emit_32(1094538966);
emit_32(1130020864);
emit_32(3275456512);
emit_32(1096079324);
emit_32(1130020864);
emit_32(3275200528);
emit_32(1096062022);
emit_32(1130020864);
emit_32(3274944545);
emit_32(1097415524);
emit_32(1130020864);
emit_32(3274688496);
emit_32(1097262642);
emit_32(1130020864);
emit_32(3274432512);
emit_32(1096083309);
emit_32(1130020864);
emit_32(3274176528);
emit_32(1097096338);
emit_32(1130020864);
emit_32(3273920545);
emit_32(1097389520);
emit_32(1130020864);
emit_32(3273664496);
emit_32(1096628987);
emit_32(1130020864);
emit_32(3273408512);
emit_32(1095157311);
emit_32(1130020864);
emit_32(3273152528);
emit_32(1093144150);
emit_32(1130020864);
emit_32(3272896545);
emit_32(1092252305);
emit_32(1130020864);
emit_32(3272640496);
emit_32(1090906174);
emit_32(1130020864);
emit_32(3272384512);
emit_32(1089256785);
emit_32(1130020864);
emit_32(3272128528);
emit_32(1086933413);
emit_32(1130020864);
emit_32(3271872545);
emit_32(1085005690);
emit_32(1130020864);
emit_32(3271616496);
emit_32(1084837205);
emit_32(1130020864);
emit_32(3271163904);
emit_32(1085479500);
emit_32(1130020864);
emit_32(3270651937);
emit_32(1086647781);
emit_32(1130020864);
emit_32(3270139970);
emit_32(1088754391);
emit_32(1130020864);
emit_32(3269627871);
emit_32(1090605474);
emit_32(1130020864);
emit_32(3269115904);
emit_32(1091545984);
emit_32(1130020864);
emit_32(3268603937);
emit_32(1092272018);
emit_32(1130020864);
emit_32(3268091970);
emit_32(1093427580);
emit_32(1130020864);
emit_32(3267579911);
emit_32(1094111042);
emit_32(1130020864);
emit_32(3267067904);
emit_32(1094388915);
emit_32(1130020864);
emit_32(3266555911);
emit_32(1094139458);
emit_32(1130020864);
emit_32(3266043904);
emit_32(1094235718);
emit_32(1130020864);
emit_32(3265531911);
emit_32(1094648752);
emit_32(1130020864);
emit_32(3265019904);
emit_32(1095187300);
emit_32(1130020864);
emit_32(3264507911);
emit_32(1096097674);
emit_32(1130020864);
emit_32(3263995904);
emit_32(1097057016);
emit_32(1130020864);
emit_32(3263483911);
emit_32(1097881092);
emit_32(1130020864);
emit_32(3262775296);
emit_32(1098962856);
emit_32(1130020864);
emit_32(3261751309);
emit_32(1098940835);
emit_32(1130020864);
emit_32(3260727296);
emit_32(1098504366);
emit_32(1130020864);
emit_32(3259703309);
emit_32(1098210030);
emit_32(1130020864);
emit_32(3258679296);
emit_32(1097752537);
emit_32(1130020864);
emit_32(3257655309);
emit_32(1096972082);
emit_32(1130020864);
emit_32(3256631296);
emit_32(1097685323);
emit_32(1130020864);
emit_32(3255607309);
emit_32(1097690566);
emit_32(1130020864);
emit_32(3254386688);
emit_32(1097717514);
emit_32(1130020864);
emit_32(3252338714);
emit_32(1096801373);
emit_32(1130020864);
emit_32(3250290688);
emit_32(1096574462);
emit_32(1130020864);
emit_32(3248242714);
emit_32(1095368389);
emit_32(1130020864);
emit_32(3245998080);
emit_32(1094028204);
emit_32(1130020864);
emit_32(3241902132);
emit_32(1093145513);
emit_32(1130020864);
emit_32(3237609472);
emit_32(1092561058);
emit_32(1130020864);
emit_32(3229220864);
emit_32(1091353465);
emit_32(1130020864);
emit_32(0);
emit_32(1090850872);
emit_32(1130020864);
emit_32(1081737216);
emit_32(1090545737);
emit_32(1130020864);
emit_32(3279552512);
emit_32(1083020778);
emit_32(1129764880);
emit_32(3279296528);
emit_32(1086653695);
emit_32(1129764880);
emit_32(3279040545);
emit_32(1091034835);
emit_32(1129764880);
emit_32(3278784496);
emit_32(1094988805);
emit_32(1129764880);
emit_32(3278528512);
emit_32(1098825335);
emit_32(1129764880);
emit_32(3278272528);
emit_32(1099793485);
emit_32(1129764880);
emit_32(3278016545);
emit_32(1100052431);
emit_32(1129764880);
emit_32(3277760496);
emit_32(1099921673);
emit_32(1129764880);
emit_32(3277504512);
emit_32(1099421608);
emit_32(1129764880);
emit_32(3277248528);
emit_32(1098552915);
emit_32(1129764880);
emit_32(3276992545);
emit_32(1097228773);
emit_32(1129764880);
emit_32(3276736496);
emit_32(1095528822);
emit_32(1129764880);
emit_32(3276480512);
emit_32(1095513932);
emit_32(1129764880);
emit_32(3276224528);
emit_32(1095608094);
emit_32(1129764880);
emit_32(3275968545);
emit_32(1094888666);
emit_32(1129764880);
emit_32(3275712496);
emit_32(1094960493);
emit_32(1129764880);
emit_32(3275456512);
emit_32(1095322147);
emit_32(1129764880);
emit_32(3275200528);
emit_32(1095300232);
emit_32(1129764880);
emit_32(3274944545);
emit_32(1096422103);
emit_32(1129764880);
emit_32(3274688496);
emit_32(1096640836);
emit_32(1129764880);
emit_32(3274432512);
emit_32(1097230031);
emit_32(1129764880);
emit_32(3274176528);
emit_32(1097125279);
emit_32(1129764880);
emit_32(3273920545);
emit_32(1097162084);
emit_32(1129764880);
emit_32(3273664496);
emit_32(1096846777);
emit_32(1129764880);
emit_32(3273408512);
emit_32(1095743360);
emit_32(1129764880);
emit_32(3273152528);
emit_32(1093469838);
emit_32(1129764880);
emit_32(3272896545);
emit_32(1092165598);
emit_32(1129764880);
emit_32(3272640496);
emit_32(1090712261);
emit_32(1129764880);
emit_32(3272384512);
emit_32(1088210873);
emit_32(1129764880);
emit_32(3272128528);
emit_32(1085889095);
emit_32(1129764880);
emit_32(3271872545);
emit_32(1083392330);
emit_32(1129764880);
emit_32(3271616496);
emit_32(1083388073);
emit_32(1129764880);
emit_32(3271163904);
emit_32(1084653180);
emit_32(1129764880);
emit_32(3270651937);
emit_32(1086692618);
emit_32(1129764880);
emit_32(3270139970);
emit_32(1088701795);
emit_32(1129764880);
emit_32(3269627871);
emit_32(1090628616);
emit_32(1129764880);
emit_32(3269115904);
emit_32(1091284553);
emit_32(1129764880);
emit_32(3268603937);
emit_32(1092579376);
emit_32(1129764880);
emit_32(3268091970);
emit_32(1093773715);
emit_32(1129764880);
emit_32(3267579911);
emit_32(1094376856);
emit_32(1129764880);
emit_32(3267067904);
emit_32(1094634281);
emit_32(1129764880);
emit_32(3266555911);
emit_32(1094720789);
emit_32(1129764880);
emit_32(3266043904);
emit_32(1095562586);
emit_32(1129764880);
emit_32(3265531911);
emit_32(1096146957);
emit_32(1129764880);
emit_32(3265019904);
emit_32(1096371248);
emit_32(1129764880);
emit_32(3264507911);
emit_32(1097603115);
emit_32(1129764880);
emit_32(3263995904);
emit_32(1098307233);
emit_32(1129764880);
emit_32(3263483911);
emit_32(1098369729);
emit_32(1129764880);
emit_32(3262775296);
emit_32(1099083075);
emit_32(1129764880);
emit_32(3261751309);
emit_32(1099129946);
emit_32(1129764880);
emit_32(3260727296);
emit_32(1099485099);
emit_32(1129764880);
emit_32(3259703309);
emit_32(1099764335);
emit_32(1129764880);
emit_32(3258679296);
emit_32(1099176713);
emit_32(1129764880);
emit_32(3257655309);
emit_32(1098040266);
emit_32(1129764880);
emit_32(3256631296);
emit_32(1098351798);
emit_32(1129764880);
emit_32(3255607309);
emit_32(1098988388);
emit_32(1129764880);
emit_32(3254386688);
emit_32(1098753193);
emit_32(1129764880);
emit_32(3252338714);
emit_32(1098284479);
emit_32(1129764880);
emit_32(3250290688);
emit_32(1097489554);
emit_32(1129764880);
emit_32(3248242714);
emit_32(1095940702);
emit_32(1129764880);
emit_32(3245998080);
emit_32(1094687549);
emit_32(1129764880);
emit_32(3241902132);
emit_32(1094446272);
emit_32(1129764880);
emit_32(3237609472);
emit_32(1093495318);
emit_32(1129764880);
emit_32(3229220864);
emit_32(1092748208);
emit_32(1129764880);
emit_32(0);
emit_32(1092091118);
emit_32(1129764880);
emit_32(1081737216);
emit_32(1091835139);
emit_32(1129764880);
emit_32(3279552512);
emit_32(1080463993);
emit_32(1129508897);
emit_32(3279296528);
emit_32(1085016910);
emit_32(1129508897);
emit_32(3279040545);
emit_32(1089825176);
emit_32(1129508897);
emit_32(3278784496);
emit_32(1094698979);
emit_32(1129508897);
emit_32(3278528512);
emit_32(1097809265);
emit_32(1129508897);
emit_32(3278272528);
emit_32(1099171575);
emit_32(1129508897);
emit_32(3278016545);
emit_32(1099886127);
emit_32(1129508897);
emit_32(3277760496);
emit_32(1099484470);
emit_32(1129508897);
emit_32(3277504512);
emit_32(1098929301);
emit_32(1129508897);
emit_32(3277248528);
emit_32(1097703463);
emit_32(1129508897);
emit_32(3276992545);
emit_32(1096695572);
emit_32(1129508897);
emit_32(3276736496);
emit_32(1094705899);
emit_32(1129508897);
emit_32(3276480512);
emit_32(1094521559);
emit_32(1129508897);
emit_32(3276224528);
emit_32(1094382938);
emit_32(1129508897);
emit_32(3275968545);
emit_32(1093723488);
emit_32(1129508897);
emit_32(3275712496);
emit_32(1094327258);
emit_32(1129508897);
emit_32(3275456512);
emit_32(1094643404);
emit_32(1129508897);
emit_32(3275200528);
emit_32(1095341441);
emit_32(1129508897);
emit_32(3274944545);
emit_32(1096856319);
emit_32(1129508897);
emit_32(3274688496);
emit_32(1097642751);
emit_32(1129508897);
emit_32(3274432512);
emit_32(1097737857);
emit_32(1129508897);
emit_32(3274176528);
emit_32(1097157784);
emit_32(1129508897);
emit_32(3273920545);
emit_32(1096063805);
emit_32(1129508897);
emit_32(3273664496);
emit_32(1095072272);
emit_32(1129508897);
emit_32(3273408512);
emit_32(1094164729);
emit_32(1129508897);
emit_32(3273152528);
emit_32(1092558321);
emit_32(1129508897);
emit_32(3272896545);
emit_32(1090029460);
emit_32(1129508897);
emit_32(3272640496);
emit_32(1087566627);
emit_32(1129508897);
emit_32(3272384512);
emit_32(1087370124);
emit_32(1129508897);
emit_32(3272128528);
emit_32(1084743064);
emit_32(1129508897);
emit_32(3271872545);
emit_32(1082700102);
emit_32(1129508897);
emit_32(3271616496);
emit_32(1083566646);
emit_32(1129508897);
emit_32(3271163904);
emit_32(1084803462);
emit_32(1129508897);
emit_32(3270651937);
emit_32(1086593633);
emit_32(1129508897);
emit_32(3270139970);
emit_32(1090542266);
emit_32(1129508897);
emit_32(3269627871);
emit_32(1091515565);
emit_32(1129508897);
emit_32(3269115904);
emit_32(1092537947);
emit_32(1129508897);
emit_32(3268603937);
emit_32(1093041704);
emit_32(1129508897);
emit_32(3268091970);
emit_32(1093964870);
emit_32(1129508897);
emit_32(3267579911);
emit_32(1094427502);
emit_32(1129508897);
emit_32(3267067904);
emit_32(1095046267);
emit_32(1129508897);
emit_32(3266555911);
emit_32(1095386844);
emit_32(1129508897);
emit_32(3266043904);
emit_32(1095993865);
emit_32(1129508897);
emit_32(3265531911);
emit_32(1096745379);
emit_32(1129508897);
emit_32(3265019904);
emit_32(1098208458);
emit_32(1129508897);
emit_32(3264507911);
emit_32(1099059325);
emit_32(1129508897);
emit_32(3263995904);
emit_32(1098961755);
emit_32(1129508897);
emit_32(3263483911);
emit_32(1099315859);
emit_32(1129508897);
emit_32(3262775296);
emit_32(1099329071);
emit_32(1129508897);
emit_32(3261751309);
emit_32(1098988231);
emit_32(1129508897);
emit_32(3260727296);
emit_32(1099657694);
emit_32(1129508897);
emit_32(3259703309);
emit_32(1099596038);
emit_32(1129508897);
emit_32(3258679296);
emit_32(1099042285);
emit_32(1129508897);
emit_32(3257655309);
emit_32(1098921594);
emit_32(1129508897);
emit_32(3256631296);
emit_32(1099409339);
emit_32(1129508897);
emit_32(3255607309);
emit_32(1099994654);
emit_32(1129508897);
emit_32(3254386688);
emit_32(1099682493);
emit_32(1129508897);
emit_32(3252338714);
emit_32(1099586024);
emit_32(1129508897);
emit_32(3250290688);
emit_32(1098985085);
emit_32(1129508897);
emit_32(3248242714);
emit_32(1098287940);
emit_32(1129508897);
emit_32(3245998080);
emit_32(1096812488);
emit_32(1129508897);
emit_32(3241902132);
emit_32(1096132172);
emit_32(1129508897);
emit_32(3237609472);
emit_32(1095219072);
emit_32(1129508897);
emit_32(3229220864);
emit_32(1094487061);
emit_32(1129508897);
emit_32(0);
emit_32(1093746137);
emit_32(1129508897);
emit_32(1081737216);
emit_32(1093216816);
emit_32(1129508897);
emit_32(3279552512);
emit_32(1080029128);
emit_32(1129252848);
emit_32(3279296528);
emit_32(1082132361);
emit_32(1129252848);
emit_32(3279040545);
emit_32(1088551786);
emit_32(1129252848);
emit_32(3278784496);
emit_32(1092773688);
emit_32(1129252848);
emit_32(3278528512);
emit_32(1095789393);
emit_32(1129252848);
emit_32(3278272528);
emit_32(1098426352);
emit_32(1129252848);
emit_32(3278016545);
emit_32(1099118884);
emit_32(1129252848);
emit_32(3277760496);
emit_32(1098946498);
emit_32(1129252848);
emit_32(3277504512);
emit_32(1098247674);
emit_32(1129252848);
emit_32(3277248528);
emit_32(1097180538);
emit_32(1129252848);
emit_32(3276992545);
emit_32(1095903583);
emit_32(1129252848);
emit_32(3276736496);
emit_32(1093972944);
emit_32(1129252848);
emit_32(3276480512);
emit_32(1094119535);
emit_32(1129252848);
emit_32(3276224528);
emit_32(1094115656);
emit_32(1129252848);
emit_32(3275968545);
emit_32(1093250371);
emit_32(1129252848);
emit_32(3275712496);
emit_32(1093516919);
emit_32(1129252848);
emit_32(3275456512);
emit_32(1094550500);
emit_32(1129252848);
emit_32(3275200528);
emit_32(1095584186);
emit_32(1129252848);
emit_32(3274944545);
emit_32(1097766378);
emit_32(1129252848);
emit_32(3274688496);
emit_32(1097882665);
emit_32(1129252848);
emit_32(3274432512);
emit_32(1097698640);
emit_32(1129252848);
emit_32(3274176528);
emit_32(1096544577);
emit_32(1129252848);
emit_32(3273920545);
emit_32(1095417568);
emit_32(1129252848);
emit_32(3273664496);
emit_32(1093038558);
emit_32(1129252848);
emit_32(3273408512);
emit_32(1092208883);
emit_32(1129252848);
emit_32(3273152528);
emit_32(1091657217);
emit_32(1129252848);
emit_32(3272896545);
emit_32(1088339847);
emit_32(1129252848);
emit_32(3272640496);
emit_32(1087749541);
emit_32(1129252848);
emit_32(3272384512);
emit_32(1086492760);
emit_32(1129252848);
emit_32(3272128528);
emit_32(1084289744);
emit_32(1129252848);
emit_32(3271872545);
emit_32(1084101671);
emit_32(1129252848);
emit_32(3271616496);
emit_32(1084133212);
emit_32(1129252848);
emit_32(3271163904);
emit_32(1084719282);
emit_32(1129252848);
emit_32(3270651937);
emit_32(1088718929);
emit_32(1129252848);
emit_32(3270139970);
emit_32(1091794685);
emit_32(1129252848);
emit_32(3269627871);
emit_32(1093539149);
emit_32(1129252848);
emit_32(3269115904);
emit_32(1093719084);
emit_32(1129252848);
emit_32(3268603937);
emit_32(1094263190);
emit_32(1129252848);
emit_32(3268091970);
emit_32(1095010510);
emit_32(1129252848);
emit_32(3267579911);
emit_32(1095499566);
emit_32(1129252848);
emit_32(3267067904);
emit_32(1095406243);
emit_32(1129252848);
emit_32(3266555911);
emit_32(1095095969);
emit_32(1129252848);
emit_32(3266043904);
emit_32(1095937871);
emit_32(1129252848);
emit_32(3265531911);
emit_32(1096329200);
emit_32(1129252848);
emit_32(3265019904);
emit_32(1097172045);
emit_32(1129252848);
emit_32(3264507911);
emit_32(1098488847);
emit_32(1129252848);
emit_32(3263995904);
emit_32(1099439328);
emit_32(1129252848);
emit_32(3263483911);
emit_32(1099647261);
emit_32(1129252848);
emit_32(3262775296);
emit_32(1099958583);
emit_32(1129252848);
emit_32(3261751309);
emit_32(1099777022);
emit_32(1129252848);
emit_32(3260727296);
emit_32(1099447507);
emit_32(1129252848);
emit_32(3259703309);
emit_32(1099254674);
emit_32(1129252848);
emit_32(3258679296);
emit_32(1099498363);
emit_32(1129252848);
emit_32(3257655309);
emit_32(1099988625);
emit_32(1129252848);
emit_32(3256631296);
emit_32(1100359821);
emit_32(1129252848);
emit_32(3255607309);
emit_32(1100639581);
emit_32(1129252848);
emit_32(3254386688);
emit_32(1100562616);
emit_32(1129252848);
emit_32(3252338714);
emit_32(1100538551);
emit_32(1129252848);
emit_32(3250290688);
emit_32(1099604846);
emit_32(1129252848);
emit_32(3248242714);
emit_32(1098614466);
emit_32(1129252848);
emit_32(3245998080);
emit_32(1097631216);
emit_32(1129252848);
emit_32(3241902132);
emit_32(1097023042);
emit_32(1129252848);
emit_32(3237609472);
emit_32(1096365690);
emit_32(1129252848);
emit_32(3229220864);
emit_32(1095964819);
emit_32(1129252848);
emit_32(0);
emit_32(1094558784);
emit_32(1129252848);
emit_32(1081737216);
emit_32(1093092141);
emit_32(1129252848);
emit_32(3279552512);
emit_32(1081540755);
emit_32(1128996864);
emit_32(3279296528);
emit_32(1081307971);
emit_32(1128996864);
emit_32(3279040545);
emit_32(1088074180);
emit_32(1128996864);
emit_32(3278784496);
emit_32(1092649012);
emit_32(1128996864);
emit_32(3278528512);
emit_32(1095750805);
emit_32(1128996864);
emit_32(3278272528);
emit_32(1098025586);
emit_32(1128996864);
emit_32(3278016545);
emit_32(1098512754);
emit_32(1128996864);
emit_32(3277760496);
emit_32(1097976513);
emit_32(1128996864);
emit_32(3277504512);
emit_32(1097395287);
emit_32(1128996864);
emit_32(3277248528);
emit_32(1096884211);
emit_32(1128996864);
emit_32(3276992545);
emit_32(1096131333);
emit_32(1128996864);
emit_32(3276736496);
emit_32(1094845884);
emit_32(1128996864);
emit_32(3276480512);
emit_32(1093703565);
emit_32(1128996864);
emit_32(3276224528);
emit_32(1092970506);
emit_32(1128996864);
emit_32(3275968545);
emit_32(1093979341);
emit_32(1128996864);
emit_32(3275712496);
emit_32(1093333942);
emit_32(1128996864);
emit_32(3275456512);
emit_32(1094401183);
emit_32(1128996864);
emit_32(3275200528);
emit_32(1095977612);
emit_32(1128996864);
emit_32(3274944545);
emit_32(1096785330);
emit_32(1128996864);
emit_32(3274688496);
emit_32(1097852781);
emit_32(1128996864);
emit_32(3274432512);
emit_32(1097488400);
emit_32(1128996864);
emit_32(3274176528);
emit_32(1096273520);
emit_32(1128996864);
emit_32(3273920545);
emit_32(1094778041);
emit_32(1128996864);
emit_32(3273664496);
emit_32(1093292943);
emit_32(1128996864);
emit_32(3273408512);
emit_32(1092898574);
emit_32(1128996864);
emit_32(3273152528);
emit_32(1090867996);
emit_32(1128996864);
emit_32(3272896545);
emit_32(1089691860);
emit_32(1128996864);
emit_32(3272640496);
emit_32(1086739427);
emit_32(1128996864);
emit_32(3272384512);
emit_32(1085853087);
emit_32(1128996864);
emit_32(3272128528);
emit_32(1084833724);
emit_32(1128996864);
emit_32(3271872545);
emit_32(1084451895);
emit_32(1128996864);
emit_32(3271616496);
emit_32(1085526644);
emit_32(1128996864);
emit_32(3271163904);
emit_32(1089112459);
emit_32(1128996864);
emit_32(3270651937);
emit_32(1091663645);
emit_32(1128996864);
emit_32(3270139970);
emit_32(1093345162);
emit_32(1128996864);
emit_32(3269627871);
emit_32(1094246728);
emit_32(1128996864);
emit_32(3269115904);
emit_32(1095325398);
emit_32(1128996864);
emit_32(3268603937);
emit_32(1096227907);
emit_32(1128996864);
emit_32(3268091970);
emit_32(1097145097);
emit_32(1128996864);
emit_32(3267579911);
emit_32(1097392036);
emit_32(1128996864);
emit_32(3267067904);
emit_32(1096728288);
emit_32(1128996864);
emit_32(3266555911);
emit_32(1095835320);
emit_32(1128996864);
emit_32(3266043904);
emit_32(1095814034);
emit_32(1128996864);
emit_32(3265531911);
emit_32(1096693475);
emit_32(1128996864);
emit_32(3265019904);
emit_32(1097025244);
emit_32(1128996864);
emit_32(3264507911);
emit_32(1099054920);
emit_32(1128996864);
emit_32(3263995904);
emit_32(1099511523);
emit_32(1128996864);
emit_32(3263483911);
emit_32(1100212234);
emit_32(1128996864);
emit_32(3262775296);
emit_32(1100597481);
emit_32(1128996864);
emit_32(3261751309);
emit_32(1100490945);
emit_32(1128996864);
emit_32(3260727296);
emit_32(1100197711);
emit_32(1128996864);
emit_32(3259703309);
emit_32(1099593207);
emit_32(1128996864);
emit_32(3258679296);
emit_32(1099432565);
emit_32(1128996864);
emit_32(3257655309);
emit_32(1100182245);
emit_32(1128996864);
emit_32(3256631296);
emit_32(1100992112);
emit_32(1128996864);
emit_32(3255607309);
emit_32(1101070441);
emit_32(1128996864);
emit_32(3254386688);
emit_32(1101070860);
emit_32(1128996864);
emit_32(3252338714);
emit_32(1100442554);
emit_32(1128996864);
emit_32(3250290688);
emit_32(1100162689);
emit_32(1128996864);
emit_32(3248242714);
emit_32(1099264741);
emit_32(1128996864);
emit_32(3245998080);
emit_32(1098634809);
emit_32(1128996864);
emit_32(3241902132);
emit_32(1097542192);
emit_32(1128996864);
emit_32(3237609472);
emit_32(1097603953);
emit_32(1128996864);
emit_32(3229220864);
emit_32(1097205809);
emit_32(1128996864);
emit_32(0);
emit_32(1095764961);
emit_32(1128996864);
emit_32(1081737216);
emit_32(1094158228);
emit_32(1128996864);
emit_32(3279552512);
emit_32(1083563940);
emit_32(1128740880);
emit_32(3279296528);
emit_32(1083505514);
emit_32(1128740880);
emit_32(3279040545);
emit_32(1087057166);
emit_32(1128740880);
emit_32(3278784496);
emit_32(1091606046);
emit_32(1128740880);
emit_32(3278528512);
emit_32(1094145750);
emit_32(1128740880);
emit_32(3278272528);
emit_32(1096803366);
emit_32(1128740880);
emit_32(3278016545);
emit_32(1097677459);
emit_32(1128740880);
emit_32(3277760496);
emit_32(1096868377);
emit_32(1128740880);
emit_32(3277504512);
emit_32(1097277637);
emit_32(1128740880);
emit_32(3277248528);
emit_32(1097130626);
emit_32(1128740880);
emit_32(3276992545);
emit_32(1095319526);
emit_32(1128740880);
emit_32(3276736496);
emit_32(1094270635);
emit_32(1128740880);
emit_32(3276480512);
emit_32(1092528657);
emit_32(1128740880);
emit_32(3276224528);
emit_32(1091786055);
emit_32(1128740880);
emit_32(3275968545);
emit_32(1092729228);
emit_32(1128740880);
emit_32(3275712496);
emit_32(1093207379);
emit_32(1128740880);
emit_32(3275456512);
emit_32(1094361966);
emit_32(1128740880);
emit_32(3275200528);
emit_32(1096155975);
emit_32(1128740880);
emit_32(3274944545);
emit_32(1098072457);
emit_32(1128740880);
emit_32(3274688496);
emit_32(1097534957);
emit_32(1128740880);
emit_32(3274432512);
emit_32(1096843212);
emit_32(1128740880);
emit_32(3274176528);
emit_32(1095427215);
emit_32(1128740880);
emit_32(3273920545);
emit_32(1095393870);
emit_32(1128740880);
emit_32(3273664496);
emit_32(1094328831);
emit_32(1128740880);
emit_32(3273408512);
emit_32(1093549005);
emit_32(1128740880);
emit_32(3273152528);
emit_32(1091282907);
emit_32(1128740880);
emit_32(3272896545);
emit_32(1089591113);
emit_32(1128740880);
emit_32(3272640496);
emit_32(1087793476);
emit_32(1128740880);
emit_32(3272384512);
emit_32(1084819170);
emit_32(1128740880);
emit_32(3272128528);
emit_32(1085220523);
emit_32(1128740880);
emit_32(3271872545);
emit_32(1088960395);
emit_32(1128740880);
emit_32(3271616496);
emit_32(1091632869);
emit_32(1128740880);
emit_32(3271163904);
emit_32(1092528154);
emit_32(1128740880);
emit_32(3270651937);
emit_32(1093541036);
emit_32(1128740880);
emit_32(3270139970);
emit_32(1094536554);
emit_32(1128740880);
emit_32(3269627871);
emit_32(1095733504);
emit_32(1128740880);
emit_32(3269115904);
emit_32(1096930453);
emit_32(1128740880);
emit_32(3268603937);
emit_32(1097898289);
emit_32(1128740880);
emit_32(3268091970);
emit_32(1098312162);
emit_32(1128740880);
emit_32(3267579911);
emit_32(1098889088);
emit_32(1128740880);
emit_32(3267067904);
emit_32(1098348023);
emit_32(1128740880);
emit_32(3266555911);
emit_32(1097239783);
emit_32(1128740880);
emit_32(3266043904);
emit_32(1096978163);
emit_32(1128740880);
emit_32(3265531911);
emit_32(1097254987);
emit_32(1128740880);
emit_32(3265019904);
emit_32(1097619682);
emit_32(1128740880);
emit_32(3264507911);
emit_32(1098276300);
emit_32(1128740880);
emit_32(3263995904);
emit_32(1099118097);
emit_32(1128740880);
emit_32(3263483911);
emit_32(1099929276);
emit_32(1128740880);
emit_32(3262775296);
emit_32(1100678011);
emit_32(1128740880);
emit_32(3261751309);
emit_32(1100864396);
emit_32(1128740880);
emit_32(3260727296);
emit_32(1100514486);
emit_32(1128740880);
emit_32(3259703309);
emit_32(1100086300);
emit_32(1128740880);
emit_32(3258679296);
emit_32(1099510946);
emit_32(1128740880);
emit_32(3257655309);
emit_32(1100286840);
emit_32(1128740880);
emit_32(3256631296);
emit_32(1100610850);
emit_32(1128740880);
emit_32(3255607309);
emit_32(1101170370);
emit_32(1128740880);
emit_32(3254386688);
emit_32(1100818206);
emit_32(1128740880);
emit_32(3252338714);
emit_32(1100338640);
emit_32(1128740880);
emit_32(3250290688);
emit_32(1099906469);
emit_32(1128740880);
emit_32(3248242714);
emit_32(1099577688);
emit_32(1128740880);
emit_32(3245998080);
emit_32(1099007892);
emit_32(1128740880);
emit_32(3241902132);
emit_32(1098245472);
emit_32(1128740880);
emit_32(3237609472);
emit_32(1097688783);
emit_32(1128740880);
emit_32(3229220864);
emit_32(1096704380);
emit_32(1128740880);
emit_32(0);
emit_32(1095305265);
emit_32(1128740880);
emit_32(1081737216);
emit_32(1094837495);
emit_32(1128740880);
emit_32(3279552512);
emit_32(1085717569);
emit_32(1128484897);
emit_32(3279296528);
emit_32(1083562745);
emit_32(1128484897);
emit_32(3279040545);
emit_32(1084856981);
emit_32(1128484897);
emit_32(3278784496);
emit_32(1089938108);
emit_32(1128484897);
emit_32(3278528512);
emit_32(1093643482);
emit_32(1128484897);
emit_32(3278272528);
emit_32(1095378456);
emit_32(1128484897);
emit_32(3278016545);
emit_32(1096701654);
emit_32(1128484897);
emit_32(3277760496);
emit_32(1095991453);
emit_32(1128484897);
emit_32(3277504512);
emit_32(1096837130);
emit_32(1128484897);
emit_32(3277248528);
emit_32(1097429470);
emit_32(1128484897);
emit_32(3276992545);
emit_32(1095425747);
emit_32(1128484897);
emit_32(3276736496);
emit_32(1092456704);
emit_32(1128484897);
emit_32(3276480512);
emit_32(1090579469);
emit_32(1128484897);
emit_32(3276224528);
emit_32(1089853278);
emit_32(1128484897);
emit_32(3275968545);
emit_32(1091601590);
emit_32(1128484897);
emit_32(3275712496);
emit_32(1093452222);
emit_32(1128484897);
emit_32(3275456512);
emit_32(1094872308);
emit_32(1128484897);
emit_32(3275200528);
emit_32(1095959891);
emit_32(1128484897);
emit_32(3274944545);
emit_32(1097078827);
emit_32(1128484897);
emit_32(3274688496);
emit_32(1096858206);
emit_32(1128484897);
emit_32(3274432512);
emit_32(1096053948);
emit_32(1128484897);
emit_32(3274176528);
emit_32(1095523264);
emit_32(1128484897);
emit_32(3273920545);
emit_32(1095300547);
emit_32(1128484897);
emit_32(3273664496);
emit_32(1094152041);
emit_32(1128484897);
emit_32(3273408512);
emit_32(1093293887);
emit_32(1128484897);
emit_32(3273152528);
emit_32(1091954824);
emit_32(1128484897);
emit_32(3272896545);
emit_32(1090264488);
emit_32(1128484897);
emit_32(3272640496);
emit_32(1087964038);
emit_32(1128484897);
emit_32(3272384512);
emit_32(1084913101);
emit_32(1128484897);
emit_32(3272128528);
emit_32(1087644432);
emit_32(1128484897);
emit_32(3271872545);
emit_32(1091545292);
emit_32(1128484897);
emit_32(3271616496);
emit_32(1092949010);
emit_32(1128484897);
emit_32(3271163904);
emit_32(1093888744);
emit_32(1128484897);
emit_32(3270651937);
emit_32(1095009252);
emit_32(1128484897);
emit_32(3270139970);
emit_32(1096532728);
emit_32(1128484897);
emit_32(3269627871);
emit_32(1096831048);
emit_32(1128484897);
emit_32(3269115904);
emit_32(1098431280);
emit_32(1128484897);
emit_32(3268603937);
emit_32(1098981153);
emit_32(1128484897);
emit_32(3268091970);
emit_32(1099259917);
emit_32(1128484897);
emit_32(3267579911);
emit_32(1099047004);
emit_32(1128484897);
emit_32(3267067904);
emit_32(1099189663);
emit_32(1128484897);
emit_32(3266555911);
emit_32(1097994233);
emit_32(1128484897);
emit_32(3266043904);
emit_32(1097616536);
emit_32(1128484897);
emit_32(3265531911);
emit_32(1098345402);
emit_32(1128484897);
emit_32(3265019904);
emit_32(1098214644);
emit_32(1128484897);
emit_32(3264507911);
emit_32(1097712481);
emit_32(1128484897);
emit_32(3263995904);
emit_32(1099049258);
emit_32(1128484897);
emit_32(3263483911);
emit_32(1099930586);
emit_32(1128484897);
emit_32(3262775296);
emit_32(1100537135);
emit_32(1128484897);
emit_32(3261751309);
emit_32(1100755920);
emit_32(1128484897);
emit_32(3260727296);
emit_32(1100566915);
emit_32(1128484897);
emit_32(3259703309);
emit_32(1099988940);
emit_32(1128484897);
emit_32(3258679296);
emit_32(1099547332);
emit_32(1128484897);
emit_32(3257655309);
emit_32(1100698878);
emit_32(1128484897);
emit_32(3256631296);
emit_32(1101203033);
emit_32(1128484897);
emit_32(3255607309);
emit_32(1100897845);
emit_32(1128484897);
emit_32(3254386688);
emit_32(1100472176);
emit_32(1128484897);
emit_32(3252338714);
emit_32(1100121008);
emit_32(1128484897);
emit_32(3250290688);
emit_32(1100059666);
emit_32(1128484897);
emit_32(3248242714);
emit_32(1099700424);
emit_32(1128484897);
emit_32(3245998080);
emit_32(1099220596);
emit_32(1128484897);
emit_32(3241902132);
emit_32(1098230163);
emit_32(1128484897);
emit_32(3237609472);
emit_32(1097298503);
emit_32(1128484897);
emit_32(3229220864);
emit_32(1096617663);
emit_32(1128484897);
emit_32(0);
emit_32(1095209006);
emit_32(1128484897);
emit_32(1081737216);
emit_32(1096602144);
emit_32(1128484897);
emit_32(3279552512);
emit_32(1086488964);
emit_32(1128228848);
emit_32(3279296528);
emit_32(1085207394);
emit_32(1128228848);
emit_32(3279040545);
emit_32(1083144426);
emit_32(1128228848);
emit_32(3278784496);
emit_32(1087877279);
emit_32(1128228848);
emit_32(3278528512);
emit_32(1092360979);
emit_32(1128228848);
emit_32(3278272528);
emit_32(1094229112);
emit_32(1128228848);
emit_32(3278016545);
emit_32(1095715678);
emit_32(1128228848);
emit_32(3277760496);
emit_32(1095363042);
emit_32(1128228848);
emit_32(3277504512);
emit_32(1095186881);
emit_32(1128228848);
emit_32(3277248528);
emit_32(1096363593);
emit_32(1128228848);
emit_32(3276992545);
emit_32(1094958082);
emit_32(1128228848);
emit_32(3276736496);
emit_32(1091948081);
emit_32(1128228848);
emit_32(3276480512);
emit_32(1089598789);
emit_32(1128228848);
emit_32(3276224528);
emit_32(1090830991);
emit_32(1128228848);
emit_32(3275968545);
emit_32(1092661490);
emit_32(1128228848);
emit_32(3275712496);
emit_32(1094218416);
emit_32(1128228848);
emit_32(3275456512);
emit_32(1095692504);
emit_32(1128228848);
emit_32(3275200528);
emit_32(1096747267);
emit_32(1128228848);
emit_32(3274944545);
emit_32(1096959708);
emit_32(1128228848);
emit_32(3274688496);
emit_32(1096562717);
emit_32(1128228848);
emit_32(3274432512);
emit_32(1095550422);
emit_32(1128228848);
emit_32(3274176528);
emit_32(1095356331);
emit_32(1128228848);
emit_32(3273920545);
emit_32(1094786744);
emit_32(1128228848);
emit_32(3273664496);
emit_32(1094402651);
emit_32(1128228848);
emit_32(3273408512);
emit_32(1093003326);
emit_32(1128228848);
emit_32(3273152528);
emit_32(1091879924);
emit_32(1128228848);
emit_32(3272896545);
emit_32(1090340950);
emit_32(1128228848);
emit_32(3272640496);
emit_32(1088120653);
emit_32(1128228848);
emit_32(3272384512);
emit_32(1090582175);
emit_32(1128228848);
emit_32(3272128528);
emit_32(1091421633);
emit_32(1128228848);
emit_32(3271872545);
emit_32(1093724013);
emit_32(1128228848);
emit_32(3271616496);
emit_32(1095136025);
emit_32(1128228848);
emit_32(3271163904);
emit_32(1096213647);
emit_32(1128228848);
emit_32(3270651937);
emit_32(1096677537);
emit_32(1128228848);
emit_32(3270139970);
emit_32(1097917268);
emit_32(1128228848);
emit_32(3269627871);
emit_32(1098919130);
emit_32(1128228848);
emit_32(3269115904);
emit_32(1099360947);
emit_32(1128228848);
emit_32(3268603937);
emit_32(1099387686);
emit_32(1128228848);
emit_32(3268091970);
emit_32(1099422027);
emit_32(1128228848);
emit_32(3267579911);
emit_32(1099524892);
emit_32(1128228848);
emit_32(3267067904);
emit_32(1099391723);
emit_32(1128228848);
emit_32(3266555911);
emit_32(1098232680);
emit_32(1128228848);
emit_32(3266043904);
emit_32(1097328073);
emit_32(1128228848);
emit_32(3265531911);
emit_32(1098499542);
emit_32(1128228848);
emit_32(3265019904);
emit_32(1098867278);
emit_32(1128228848);
emit_32(3264507911);
emit_32(1097477915);
emit_32(1128228848);
emit_32(3263995904);
emit_32(1098419431);
emit_32(1128228848);
emit_32(3263483911);
emit_32(1099657118);
emit_32(1128228848);
emit_32(3262775296);
emit_32(1100094951);
emit_32(1128228848);
emit_32(3261751309);
emit_32(1100491260);
emit_32(1128228848);
emit_32(3260727296);
emit_32(1100506884);
emit_32(1128228848);
emit_32(3259703309);
emit_32(1099794324);
emit_32(1128228848);
emit_32(3258679296);
emit_32(1099789291);
emit_32(1128228848);
emit_32(3257655309);
emit_32(1100379115);
emit_32(1128228848);
emit_32(3256631296);
emit_32(1100923221);
emit_32(1128228848);
emit_32(3255607309);
emit_32(1100371932);
emit_32(1128228848);
emit_32(3254386688);
emit_32(1100316148);
emit_32(1128228848);
emit_32(3252338714);
emit_32(1100515692);
emit_32(1128228848);
emit_32(3250290688);
emit_32(1100307916);
emit_32(1128228848);
emit_32(3248242714);
emit_32(1099810210);
emit_32(1128228848);
emit_32(3245998080);
emit_32(1099154640);
emit_32(1128228848);
emit_32(3241902132);
emit_32(1098355573);
emit_32(1128228848);
emit_32(3237609472);
emit_32(1097472777);
emit_32(1128228848);
emit_32(3229220864);
emit_32(1096682465);
emit_32(1128228848);
emit_32(0);
emit_32(1096577398);
emit_32(1128228848);
emit_32(1081737216);
emit_32(1097223216);
emit_32(1128228848);
emit_32(3279552512);
emit_32(1086853617);
emit_32(1127972864);
emit_32(3279296528);
emit_32(1086298564);
emit_32(1127972864);
emit_32(3279040545);
emit_32(1085278425);
emit_32(1127972864);
emit_32(3278784496);
emit_32(1085319131);
emit_32(1127972864);
emit_32(3278528512);
emit_32(1090251360);
emit_32(1127972864);
emit_32(3278272528);
emit_32(1092641777);
emit_32(1127972864);
emit_32(3278016545);
emit_32(1093620623);
emit_32(1127972864);
emit_32(3277760496);
emit_32(1094102653);
emit_32(1127972864);
emit_32(3277504512);
emit_32(1093830758);
emit_32(1127972864);
emit_32(3277248528);
emit_32(1094796916);
emit_32(1127972864);
emit_32(3276992545);
emit_32(1093478751);
emit_32(1127972864);
emit_32(3276736496);
emit_32(1091477050);
emit_32(1127972864);
emit_32(3276480512);
emit_32(1089930831);
emit_32(1127972864);
emit_32(3276224528);
emit_32(1091537375);
emit_32(1127972864);
emit_32(3275968545);
emit_32(1093540302);
emit_32(1127972864);
emit_32(3275712496);
emit_32(1095329278);
emit_32(1127972864);
emit_32(3275456512);
emit_32(1096120323);
emit_32(1127972864);
emit_32(3275200528);
emit_32(1096433743);
emit_32(1127972864);
emit_32(3274944545);
emit_32(1096683304);
emit_32(1127972864);
emit_32(3274688496);
emit_32(1096592182);
emit_32(1127972864);
emit_32(3274432512);
emit_32(1095725220);
emit_32(1127972864);
emit_32(3274176528);
emit_32(1094999815);
emit_32(1127972864);
emit_32(3273920545);
emit_32(1094300520);
emit_32(1127972864);
emit_32(3273664496);
emit_32(1093576583);
emit_32(1127972864);
emit_32(3273408512);
emit_32(1092872779);
emit_32(1127972864);
emit_32(3273152528);
emit_32(1091911098);
emit_32(1127972864);
emit_32(3272896545);
emit_32(1091753434);
emit_32(1127972864);
emit_32(3272640496);
emit_32(1092133438);
emit_32(1127972864);
emit_32(3272384512);
emit_32(1093071169);
emit_32(1127972864);
emit_32(3272128528);
emit_32(1094518728);
emit_32(1127972864);
emit_32(3271872545);
emit_32(1096084986);
emit_32(1127972864);
emit_32(3271616496);
emit_32(1096360657);
emit_32(1127972864);
emit_32(3271163904);
emit_32(1096731014);
emit_32(1127972864);
emit_32(3270651937);
emit_32(1098285738);
emit_32(1127972864);
emit_32(3270139970);
emit_32(1099415631);
emit_32(1127972864);
emit_32(3269627871);
emit_32(1099949408);
emit_32(1127972864);
emit_32(3269115904);
emit_32(1100367161);
emit_32(1127972864);
emit_32(3268603937);
emit_32(1100361866);
emit_32(1127972864);
emit_32(3268091970);
emit_32(1100305714);
emit_32(1127972864);
emit_32(3267579911);
emit_32(1100208354);
emit_32(1127972864);
emit_32(3267067904);
emit_32(1100142975);
emit_32(1127972864);
emit_32(3266555911);
emit_32(1099102421);
emit_32(1127972864);
emit_32(3266043904);
emit_32(1097385430);
emit_32(1127972864);
emit_32(3265531911);
emit_32(1097822162);
emit_32(1127972864);
emit_32(3265019904);
emit_32(1098963275);
emit_32(1127972864);
emit_32(3264507911);
emit_32(1097304900);
emit_32(1127972864);
emit_32(3263995904);
emit_32(1097683121);
emit_32(1127972864);
emit_32(3263483911);
emit_32(1099069810);
emit_32(1127972864);
emit_32(3262775296);
emit_32(1099605213);
emit_32(1127972864);
emit_32(3261751309);
emit_32(1100129868);
emit_32(1127972864);
emit_32(3260727296);
emit_32(1100106433);
emit_32(1127972864);
emit_32(3259703309);
emit_32(1099661207);
emit_32(1127972864);
emit_32(3258679296);
emit_32(1099945896);
emit_32(1127972864);
emit_32(3257655309);
emit_32(1100312216);
emit_32(1127972864);
emit_32(3256631296);
emit_32(1100604401);
emit_32(1127972864);
emit_32(3255607309);
emit_32(1101000920);
emit_32(1127972864);
emit_32(3254386688);
emit_32(1100943301);
emit_32(1127972864);
emit_32(3252338714);
emit_32(1100628886);
emit_32(1127972864);
emit_32(3250290688);
emit_32(1100484759);
emit_32(1127972864);
emit_32(3248242714);
emit_32(1099700843);
emit_32(1127972864);
emit_32(3245998080);
emit_32(1099261752);
emit_32(1127972864);
emit_32(3241902132);
emit_32(1098560045);
emit_32(1127972864);
emit_32(3237609472);
emit_32(1097453588);
emit_32(1127972864);
emit_32(3229220864);
emit_32(1096754712);
emit_32(1127972864);
emit_32(0);
emit_32(1097041812);
emit_32(1127972864);
emit_32(1081737216);
emit_32(1096992739);
emit_32(1127972864);
emit_32(3279552512);
emit_32(1088632086);
emit_32(1127716880);
emit_32(3279296528);
emit_32(1087150511);
emit_32(1127716880);
emit_32(3279040545);
emit_32(1085863719);
emit_32(1127716880);
emit_32(3278784496);
emit_32(1084379313);
emit_32(1127716880);
emit_32(3278528512);
emit_32(1086294621);
emit_32(1127716880);
emit_32(3278272528);
emit_32(1089793845);
emit_32(1127716880);
emit_32(3278016545);
emit_32(1091311124);
emit_32(1127716880);
emit_32(3277760496);
emit_32(1092520195);
emit_32(1127716880);
emit_32(3277504512);
emit_32(1092832933);
emit_32(1127716880);
emit_32(3277248528);
emit_32(1092827899);
emit_32(1127716880);
emit_32(3276992545);
emit_32(1091811620);
emit_32(1127716880);
emit_32(3276736496);
emit_32(1089828825);
emit_32(1127716880);
emit_32(3276480512);
emit_32(1090682052);
emit_32(1127716880);
emit_32(3276224528);
emit_32(1092010839);
emit_32(1127716880);
emit_32(3275968545);
emit_32(1093459876);
emit_32(1127716880);
emit_32(3275712496);
emit_32(1096080897);
emit_32(1127716880);
emit_32(3275456512);
emit_32(1096807455);
emit_32(1127716880);
emit_32(3275200528);
emit_32(1096413086);
emit_32(1127716880);
emit_32(3274944545);
emit_32(1096350381);
emit_32(1127716880);
emit_32(3274688496);
emit_32(1096323642);
emit_32(1127716880);
emit_32(3274432512);
emit_32(1095633784);
emit_32(1127716880);
emit_32(3274176528);
emit_32(1094753714);
emit_32(1127716880);
emit_32(3273920545);
emit_32(1094125198);
emit_32(1127716880);
emit_32(3273664496);
emit_32(1093062361);
emit_32(1127716880);
emit_32(3273408512);
emit_32(1093213041);
emit_32(1127716880);
emit_32(3273152528);
emit_32(1093187876);
emit_32(1127716880);
emit_32(3272896545);
emit_32(1094195347);
emit_32(1127716880);
emit_32(3272640496);
emit_32(1094880172);
emit_32(1127716880);
emit_32(3272384512);
emit_32(1095364719);
emit_32(1127716880);
emit_32(3272128528);
emit_32(1096288829);
emit_32(1127716880);
emit_32(3271872545);
emit_32(1097163132);
emit_32(1127716880);
emit_32(3271616496);
emit_32(1097356385);
emit_32(1127716880);
emit_32(3271163904);
emit_32(1098373084);
emit_32(1127716880);
emit_32(3270651937);
emit_32(1099643172);
emit_32(1127716880);
emit_32(3270139970);
emit_32(1099931949);
emit_32(1127716880);
emit_32(3269627871);
emit_32(1100246260);
emit_32(1127716880);
emit_32(3269115904);
emit_32(1100634600);
emit_32(1127716880);
emit_32(3268603937);
emit_32(1100611741);
emit_32(1127716880);
emit_32(3268091970);
emit_32(1100940417);
emit_32(1127716880);
emit_32(3267579911);
emit_32(1100834564);
emit_32(1127716880);
emit_32(3267067904);
emit_32(1100309804);
emit_32(1127716880);
emit_32(3266555911);
emit_32(1099846386);
emit_32(1127716880);
emit_32(3266043904);
emit_32(1098992216);
emit_32(1127716880);
emit_32(3265531911);
emit_32(1098681051);
emit_32(1127716880);
emit_32(3265019904);
emit_32(1098547986);
emit_32(1127716880);
emit_32(3264507911);
emit_32(1097247857);
emit_32(1127716880);
emit_32(3263995904);
emit_32(1097448345);
emit_32(1127716880);
emit_32(3263483911);
emit_32(1098445645);
emit_32(1127716880);
emit_32(3262775296);
emit_32(1098977798);
emit_32(1127716880);
emit_32(3261751309);
emit_32(1099491390);
emit_32(1127716880);
emit_32(3260727296);
emit_32(1099337145);
emit_32(1127716880);
emit_32(3259703309);
emit_32(1099792908);
emit_32(1127716880);
emit_32(3258679296);
emit_32(1100235722);
emit_32(1127716880);
emit_32(3257655309);
emit_32(1100866336);
emit_32(1127716880);
emit_32(3256631296);
emit_32(1101422448);
emit_32(1127716880);
emit_32(3255607309);
emit_32(1101221855);
emit_32(1127716880);
emit_32(3254386688);
emit_32(1101088005);
emit_32(1127716880);
emit_32(3252338714);
emit_32(1100972556);
emit_32(1127716880);
emit_32(3250290688);
emit_32(1100202325);
emit_32(1127716880);
emit_32(3248242714);
emit_32(1099418409);
emit_32(1127716880);
emit_32(3245998080);
emit_32(1098944243);
emit_32(1127716880);
emit_32(3241902132);
emit_32(1098327366);
emit_32(1127716880);
emit_32(3237609472);
emit_32(1097923455);
emit_32(1127716880);
emit_32(3229220864);
emit_32(1098086089);
emit_32(1127716880);
emit_32(0);
emit_32(1097086481);
emit_32(1127716880);
emit_32(1081737216);
emit_32(1096797703);
emit_32(1127716880);
emit_32(3279552512);
emit_32(1090697067);
emit_32(1127460897);
emit_32(3279296528);
emit_32(1088464754);
emit_32(1127460897);
emit_32(3279040545);
emit_32(1087359387);
emit_32(1127460897);
emit_32(3278784496);
emit_32(1086695387);
emit_32(1127460897);
emit_32(3278528512);
emit_32(1083514070);
emit_32(1127460897);
emit_32(3278272528);
emit_32(1084835276);
emit_32(1127460897);
emit_32(3278016545);
emit_32(1088646514);
emit_32(1127460897);
emit_32(3277760496);
emit_32(1090551147);
emit_32(1127460897);
emit_32(3277504512);
emit_32(1091910700);
emit_32(1127460897);
emit_32(3277248528);
emit_32(1091808013);
emit_32(1127460897);
emit_32(3276992545);
emit_32(1091196294);
emit_32(1127460897);
emit_32(3276736496);
emit_32(1090026922);
emit_32(1127460897);
emit_32(3276480512);
emit_32(1090912801);
emit_32(1127460897);
emit_32(3276224528);
emit_32(1091162887);
emit_32(1127460897);
emit_32(3275968545);
emit_32(1093409649);
emit_32(1127460897);
emit_32(3275712496);
emit_32(1094918970);
emit_32(1127460897);
emit_32(3275456512);
emit_32(1096294177);
emit_32(1127460897);
emit_32(3275200528);
emit_32(1096363698);
emit_32(1127460897);
emit_32(3274944545);
emit_32(1096394421);
emit_32(1127460897);
emit_32(3274688496);
emit_32(1096326893);
emit_32(1127460897);
emit_32(3274432512);
emit_32(1095806484);
emit_32(1127460897);
emit_32(3274176528);
emit_32(1096379007);
emit_32(1127460897);
emit_32(3273920545);
emit_32(1096041470);
emit_32(1127460897);
emit_32(3273664496);
emit_32(1094485488);
emit_32(1127460897);
emit_32(3273408512);
emit_32(1095082128);
emit_32(1127460897);
emit_32(3273152528);
emit_32(1095898969);
emit_32(1127460897);
emit_32(3272896545);
emit_32(1096463208);
emit_32(1127460897);
emit_32(3272640496);
emit_32(1096556741);
emit_32(1127460897);
emit_32(3272384512);
emit_32(1096834613);
emit_32(1127460897);
emit_32(3272128528);
emit_32(1098017826);
emit_32(1127460897);
emit_32(3271872545);
emit_32(1098909745);
emit_32(1127460897);
emit_32(3271616496);
emit_32(1099379035);
emit_32(1127460897);
emit_32(3271163904);
emit_32(1099621519);
emit_32(1127460897);
emit_32(3270651937);
emit_32(1100273890);
emit_32(1127460897);
emit_32(3270139970);
emit_32(1100651587);
emit_32(1127460897);
emit_32(3269627871);
emit_32(1100583063);
emit_32(1127460897);
emit_32(3269115904);
emit_32(1100899471);
emit_32(1127460897);
emit_32(3268603937);
emit_32(1101366926);
emit_32(1127460897);
emit_32(3268091970);
emit_32(1101899183);
emit_32(1127460897);
emit_32(3267579911);
emit_32(1101822427);
emit_32(1127460897);
emit_32(3267067904);
emit_32(1101218290);
emit_32(1127460897);
emit_32(3266555911);
emit_32(1100574150);
emit_32(1127460897);
emit_32(3266043904);
emit_32(1100108005);
emit_32(1127460897);
emit_32(3265531911);
emit_32(1099514144);
emit_32(1127460897);
emit_32(3265019904);
emit_32(1098172701);
emit_32(1127460897);
emit_32(3264507911);
emit_32(1096910216);
emit_32(1127460897);
emit_32(3263995904);
emit_32(1097118253);
emit_32(1127460897);
emit_32(3263483911);
emit_32(1097919785);
emit_32(1127460897);
emit_32(3262775296);
emit_32(1098225759);
emit_32(1127460897);
emit_32(3261751309);
emit_32(1098294021);
emit_32(1127460897);
emit_32(3260727296);
emit_32(1099564476);
emit_32(1127460897);
emit_32(3259703309);
emit_32(1100155453);
emit_32(1127460897);
emit_32(3258679296);
emit_32(1100660343);
emit_32(1127460897);
emit_32(3257655309);
emit_32(1101117574);
emit_32(1127460897);
emit_32(3256631296);
emit_32(1101606787);
emit_32(1127460897);
emit_32(3255607309);
emit_32(1101430155);
emit_32(1127460897);
emit_32(3254386688);
emit_32(1100673712);
emit_32(1127460897);
emit_32(3252338714);
emit_32(1100216585);
emit_32(1127460897);
emit_32(3250290688);
emit_32(1099492858);
emit_32(1127460897);
emit_32(3248242714);
emit_32(1098998822);
emit_32(1127460897);
emit_32(3245998080);
emit_32(1097972423);
emit_32(1127460897);
emit_32(3241902132);
emit_32(1098463681);
emit_32(1127460897);
emit_32(3237609472);
emit_32(1099098961);
emit_32(1127460897);
emit_32(3229220864);
emit_32(1099075315);
emit_32(1127460897);
emit_32(0);
emit_32(1098576717);
emit_32(1127460897);
emit_32(1081737216);
emit_32(1097521955);
emit_32(1127460897);
emit_32(3279552512);
emit_32(1091907942);
emit_32(1127204848);
emit_32(3279296528);
emit_32(1090913000);
emit_32(1127204848);
emit_32(3279040545);
emit_32(1089627792);
emit_32(1127204848);
emit_32(3278784496);
emit_32(1088453282);
emit_32(1127204848);
emit_32(3278528512);
emit_32(1085638149);
emit_32(1127204848);
emit_32(3278272528);
emit_32(1082820290);
emit_32(1127204848);
emit_32(3278016545);
emit_32(1084647581);
emit_32(1127204848);
emit_32(3277760496);
emit_32(1086976132);
emit_32(1127204848);
emit_32(3277504512);
emit_32(1089606024);
emit_32(1127204848);
emit_32(3277248528);
emit_32(1090895206);
emit_32(1127204848);
emit_32(3276992545);
emit_32(1090776528);
emit_32(1127204848);
emit_32(3276736496);
emit_32(1089657215);
emit_32(1127204848);
emit_32(3276480512);
emit_32(1090767154);
emit_32(1127204848);
emit_32(3276224528);
emit_32(1091192603);
emit_32(1127204848);
emit_32(3275968545);
emit_32(1093123912);
emit_32(1127204848);
emit_32(3275712496);
emit_32(1094534667);
emit_32(1127204848);
emit_32(3275456512);
emit_32(1096318399);
emit_32(1127204848);
emit_32(3275200528);
emit_32(1097169319);
emit_32(1127204848);
emit_32(3274944545);
emit_32(1096886518);
emit_32(1127204848);
emit_32(3274688496);
emit_32(1097439642);
emit_32(1127204848);
emit_32(3274432512);
emit_32(1096797599);
emit_32(1127204848);
emit_32(3274176528);
emit_32(1096554224);
emit_32(1127204848);
emit_32(3273920545);
emit_32(1096240490);
emit_32(1127204848);
emit_32(3273664496);
emit_32(1096477363);
emit_32(1127204848);
emit_32(3273408512);
emit_32(1097087635);
emit_32(1127204848);
emit_32(3273152528);
emit_32(1097338349);
emit_32(1127204848);
emit_32(3272896545);
emit_32(1097759457);
emit_32(1127204848);
emit_32(3272640496);
emit_32(1097880778);
emit_32(1127204848);
emit_32(3272384512);
emit_32(1098146906);
emit_32(1127204848);
emit_32(3272128528);
emit_32(1099303643);
emit_32(1127204848);
emit_32(3271872545);
emit_32(1099944532);
emit_32(1127204848);
emit_32(3271616496);
emit_32(1100242905);
emit_32(1127204848);
emit_32(3271163904);
emit_32(1100588882);
emit_32(1127204848);
emit_32(3270651937);
emit_32(1100605502);
emit_32(1127204848);
emit_32(3270139970);
emit_32(1100742289);
emit_32(1127204848);
emit_32(3269627871);
emit_32(1101124128);
emit_32(1127204848);
emit_32(3269115904);
emit_32(1101735972);
emit_32(1127204848);
emit_32(3268603937);
emit_32(1102084728);
emit_32(1127204848);
emit_32(3268091970);
emit_32(1102719903);
emit_32(1127204848);
emit_32(3267579911);
emit_32(1102404177);
emit_32(1127204848);
emit_32(3267067904);
emit_32(1101692613);
emit_32(1127204848);
emit_32(3266555911);
emit_32(1101323724);
emit_32(1127204848);
emit_32(3266043904);
emit_32(1100739353);
emit_32(1127204848);
emit_32(3265531911);
emit_32(1100060977);
emit_32(1127204848);
emit_32(3265019904);
emit_32(1098668153);
emit_32(1127204848);
emit_32(3264507911);
emit_32(1097066139);
emit_32(1127204848);
emit_32(3263995904);
emit_32(1097240936);
emit_32(1127204848);
emit_32(3263483911);
emit_32(1098056099);
emit_32(1127204848);
emit_32(3262775296);
emit_32(1098692270);
emit_32(1127204848);
emit_32(3261751309);
emit_32(1099028339);
emit_32(1127204848);
emit_32(3260727296);
emit_32(1099487406);
emit_32(1127204848);
emit_32(3259703309);
emit_32(1100464154);
emit_32(1127204848);
emit_32(3258679296);
emit_32(1100643146);
emit_32(1127204848);
emit_32(3257655309);
emit_32(1100685089);
emit_32(1127204848);
emit_32(3256631296);
emit_32(1100823658);
emit_32(1127204848);
emit_32(3255607309);
emit_32(1100633027);
emit_32(1127204848);
emit_32(3254386688);
emit_32(1100238553);
emit_32(1127204848);
emit_32(3252338714);
emit_32(1099137706);
emit_32(1127204848);
emit_32(3250290688);
emit_32(1098443758);
emit_32(1127204848);
emit_32(3248242714);
emit_32(1098669202);
emit_32(1127204848);
emit_32(3245998080);
emit_32(1099104571);
emit_32(1127204848);
emit_32(3241902132);
emit_32(1099412328);
emit_32(1127204848);
emit_32(3237609472);
emit_32(1099546755);
emit_32(1127204848);
emit_32(3229220864);
emit_32(1099464966);
emit_32(1127204848);
emit_32(0);
emit_32(1099096864);
emit_32(1127204848);
emit_32(1081737216);
emit_32(1098169765);
emit_32(1127204848);
emit_32(3279552512);
emit_32(1092650690);
emit_32(1126948864);
emit_32(3279296528);
emit_32(1091119434);
emit_32(1126948864);
emit_32(3279040545);
emit_32(1090136415);
emit_32(1126948864);
emit_32(3278784496);
emit_32(1088411612);
emit_32(1126948864);
emit_32(3278528512);
emit_32(1085469077);
emit_32(1126948864);
emit_32(3278272528);
emit_32(1083833424);
emit_32(1126948864);
emit_32(3278016545);
emit_32(1083689035);
emit_32(1126948864);
emit_32(3277760496);
emit_32(1085122711);
emit_32(1126948864);
emit_32(3277504512);
emit_32(1086667243);
emit_32(1126948864);
emit_32(3277248528);
emit_32(1087657958);
emit_32(1126948864);
emit_32(3276992545);
emit_32(1088371095);
emit_32(1126948864);
emit_32(3276736496);
emit_32(1089466354);
emit_32(1126948864);
emit_32(3276480512);
emit_32(1091055439);
emit_32(1126948864);
emit_32(3276224528);
emit_32(1090400677);
emit_32(1126948864);
emit_32(3275968545);
emit_32(1092101142);
emit_32(1126948864);
emit_32(3275712496);
emit_32(1093636037);
emit_32(1126948864);
emit_32(3275456512);
emit_32(1095931999);
emit_32(1126948864);
emit_32(3275200528);
emit_32(1096626890);
emit_32(1126948864);
emit_32(3274944545);
emit_32(1098060923);
emit_32(1126948864);
emit_32(3274688496);
emit_32(1097783994);
emit_32(1126948864);
emit_32(3274432512);
emit_32(1096721367);
emit_32(1126948864);
emit_32(3274176528);
emit_32(1097047264);
emit_32(1126948864);
emit_32(3273920545);
emit_32(1096218051);
emit_32(1126948864);
emit_32(3273664496);
emit_32(1096743282);
emit_32(1126948864);
emit_32(3273408512);
emit_32(1097750335);
emit_32(1126948864);
emit_32(3273152528);
emit_32(1098166619);
emit_32(1126948864);
emit_32(3272896545);
emit_32(1097872074);
emit_32(1126948864);
emit_32(3272640496);
emit_32(1097941595);
emit_32(1126948864);
emit_32(3272384512);
emit_32(1098064383);
emit_32(1126948864);
emit_32(3272128528);
emit_32(1099511103);
emit_32(1126948864);
emit_32(3271872545);
emit_32(1100417545);
emit_32(1126948864);
emit_32(3271616496);
emit_32(1100756969);
emit_32(1126948864);
emit_32(3271163904);
emit_32(1100841956);
emit_32(1126948864);
emit_32(3270651937);
emit_32(1100819517);
emit_32(1126948864);
emit_32(3270139970);
emit_32(1101316280);
emit_32(1126948864);
emit_32(3269627871);
emit_32(1101803658);
emit_32(1126948864);
emit_32(3269115904);
emit_32(1102338327);
emit_32(1126948864);
emit_32(3268603937);
emit_32(1102614679);
emit_32(1126948864);
emit_32(3268091970);
emit_32(1102899577);
emit_32(1126948864);
emit_32(3267579911);
emit_32(1102273472);
emit_32(1126948864);
emit_32(3267067904);
emit_32(1102032300);
emit_32(1126948864);
emit_32(3266555911);
emit_32(1102213336);
emit_32(1126948864);
emit_32(3266043904);
emit_32(1101920154);
emit_32(1126948864);
emit_32(3265531911);
emit_32(1101073377);
emit_32(1126948864);
emit_32(3265019904);
emit_32(1099747453);
emit_32(1126948864);
emit_32(3264507911);
emit_32(1097970221);
emit_32(1126948864);
emit_32(3263995904);
emit_32(1098951583);
emit_32(1126948864);
emit_32(3263483911);
emit_32(1099125385);
emit_32(1126948864);
emit_32(3262775296);
emit_32(1099384383);
emit_32(1126948864);
emit_32(3261751309);
emit_32(1099297666);
emit_32(1126948864);
emit_32(3260727296);
emit_32(1099151914);
emit_32(1126948864);
emit_32(3259703309);
emit_32(1100003043);
emit_32(1126948864);
emit_32(3258679296);
emit_32(1100391278);
emit_32(1126948864);
emit_32(3257655309);
emit_32(1100196872);
emit_32(1126948864);
emit_32(3256631296);
emit_32(1100006189);
emit_32(1126948864);
emit_32(3255607309);
emit_32(1100085251);
emit_32(1126948864);
emit_32(3254386688);
emit_32(1099464704);
emit_32(1126948864);
emit_32(3252338714);
emit_32(1098192624);
emit_32(1126948864);
emit_32(3250290688);
emit_32(1098051695);
emit_32(1126948864);
emit_32(3248242714);
emit_32(1099538104);
emit_32(1126948864);
emit_32(3245998080);
emit_32(1100121060);
emit_32(1126948864);
emit_32(3241902132);
emit_32(1100174380);
emit_32(1126948864);
emit_32(3237609472);
emit_32(1100128138);
emit_32(1126948864);
emit_32(3229220864);
emit_32(1099728526);
emit_32(1126948864);
emit_32(0);
emit_32(1099015494);
emit_32(1126948864);
emit_32(1081737216);
emit_32(1098949119);
emit_32(1126948864);
emit_32(3279552512);
emit_32(1092053820);
emit_32(1126692880);
emit_32(3279296528);
emit_32(1091482168);
emit_32(1126692880);
emit_32(3279040545);
emit_32(1090170556);
emit_32(1126692880);
emit_32(3278784496);
emit_32(1089291577);
emit_32(1126692880);
emit_32(3278528512);
emit_32(1087031308);
emit_32(1126692880);
emit_32(3278272528);
emit_32(1085157335);
emit_32(1126692880);
emit_32(3278016545);
emit_32(1082956060);
emit_32(1126692880);
emit_32(3277760496);
emit_32(1079787745);
emit_32(1126692880);
emit_32(3277504512);
emit_32(1083066831);
emit_32(1126692880);
emit_32(3277248528);
emit_32(1084997260);
emit_32(1126692880);
emit_32(3276992545);
emit_32(1086936056);
emit_32(1126692880);
emit_32(3276736496);
emit_32(1087077194);
emit_32(1126692880);
emit_32(3276480512);
emit_32(1089181120);
emit_32(1126692880);
emit_32(3276224528);
emit_32(1090090592);
emit_32(1126692880);
emit_32(3275968545);
emit_32(1091979287);
emit_32(1126692880);
emit_32(3275712496);
emit_32(1093947779);
emit_32(1126692880);
emit_32(3275456512);
emit_32(1095104148);
emit_32(1126692880);
emit_32(3275200528);
emit_32(1097546806);
emit_32(1126692880);
emit_32(3274944545);
emit_32(1098312476);
emit_32(1126692880);
emit_32(3274688496);
emit_32(1098096050);
emit_32(1126692880);
emit_32(3274432512);
emit_32(1096460062);
emit_32(1126692880);
emit_32(3274176528);
emit_32(1096848350);
emit_32(1126692880);
emit_32(3273920545);
emit_32(1096377539);
emit_32(1126692880);
emit_32(3273664496);
emit_32(1097570714);
emit_32(1126692880);
emit_32(3273408512);
emit_32(1098430756);
emit_32(1126692880);
emit_32(3273152528);
emit_32(1099100848);
emit_32(1126692880);
emit_32(3272896545);
emit_32(1099443103);
emit_32(1126692880);
emit_32(3272640496);
emit_32(1099024459);
emit_32(1126692880);
emit_32(3272384512);
emit_32(1097976827);
emit_32(1126692880);
emit_32(3272128528);
emit_32(1099397281);
emit_32(1126692880);
emit_32(3271872545);
emit_32(1100167250);
emit_32(1126692880);
emit_32(3271616496);
emit_32(1101001916);
emit_32(1126692880);
emit_32(3271163904);
emit_32(1101218133);
emit_32(1126692880);
emit_32(3270651937);
emit_32(1101763445);
emit_32(1126692880);
emit_32(3270139970);
emit_32(1102254703);
emit_32(1126692880);
emit_32(3269627871);
emit_32(1102306188);
emit_32(1126692880);
emit_32(3269115904);
emit_32(1102526179);
emit_32(1126692880);
emit_32(3268603937);
emit_32(1102836453);
emit_32(1126692880);
emit_32(3268091970);
emit_32(1102582120);
emit_32(1126692880);
emit_32(3267579911);
emit_32(1102493673);
emit_32(1126692880);
emit_32(3267067904);
emit_32(1102731752);
emit_32(1126692880);
emit_32(3266555911);
emit_32(1102752566);
emit_32(1126692880);
emit_32(3266043904);
emit_32(1102414243);
emit_32(1126692880);
emit_32(3265531911);
emit_32(1101987945);
emit_32(1126692880);
emit_32(3265019904);
emit_32(1100347133);
emit_32(1126692880);
emit_32(3264507911);
emit_32(1099205706);
emit_32(1126692880);
emit_32(3263995904);
emit_32(1099525784);
emit_32(1126692880);
emit_32(3263483911);
emit_32(1100012533);
emit_32(1126692880);
emit_32(3262775296);
emit_32(1100473434);
emit_32(1126692880);
emit_32(3261751309);
emit_32(1099686268);
emit_32(1126692880);
emit_32(3260727296);
emit_32(1099578474);
emit_32(1126692880);
emit_32(3259703309);
emit_32(1099386952);
emit_32(1126692880);
emit_32(3258679296);
emit_32(1099512257);
emit_32(1126692880);
emit_32(3257655309);
emit_32(1099849269);
emit_32(1126692880);
emit_32(3256631296);
emit_32(1099792017);
emit_32(1126692880);
emit_32(3255607309);
emit_32(1099326974);
emit_32(1126692880);
emit_32(3254386688);
emit_32(1098936798);
emit_32(1126692880);
emit_32(3252338714);
emit_32(1097635096);
emit_32(1126692880);
emit_32(3250290688);
emit_32(1099347316);
emit_32(1126692880);
emit_32(3248242714);
emit_32(1099939237);
emit_32(1126692880);
emit_32(3245998080);
emit_32(1100173489);
emit_32(1126692880);
emit_32(3241902132);
emit_32(1100441086);
emit_32(1126692880);
emit_32(3237609472);
emit_32(1100198130);
emit_32(1126692880);
emit_32(3229220864);
emit_32(1099547122);
emit_32(1126692880);
emit_32(0);
emit_32(1099279735);
emit_32(1126692880);
emit_32(1081737216);
emit_32(1099508220);
emit_32(1126692880);
emit_32(3279552512);
emit_32(1091859760);
emit_32(1126436897);
emit_32(3279296528);
emit_32(1091230761);
emit_32(1126436897);
emit_32(3279040545);
emit_32(1090930805);
emit_32(1126436897);
emit_32(3278784496);
emit_32(1089555210);
emit_32(1126436897);
emit_32(3278528512);
emit_32(1087108253);
emit_32(1126436897);
emit_32(3278272528);
emit_32(1084241425);
emit_32(1126436897);
emit_32(3278016545);
emit_32(1080584495);
emit_32(1126436897);
emit_32(3277760496);
emit_32(1077009103);
emit_32(1126436897);
emit_32(3277504512);
emit_32(1077476097);
emit_32(1126436897);
emit_32(3277248528);
emit_32(1082163798);
emit_32(1126436897);
emit_32(3276992545);
emit_32(1083224118);
emit_32(1126436897);
emit_32(3276736496);
emit_32(1083925510);
emit_32(1126436897);
emit_32(3276480512);
emit_32(1086781055);
emit_32(1126436897);
emit_32(3276224528);
emit_32(1090787203);
emit_32(1126436897);
emit_32(3275968545);
emit_32(1093020523);
emit_32(1126436897);
emit_32(3275712496);
emit_32(1094356094);
emit_32(1126436897);
emit_32(3275456512);
emit_32(1095272654);
emit_32(1126436897);
emit_32(3275200528);
emit_32(1096919967);
emit_32(1126436897);
emit_32(3274944545);
emit_32(1097664981);
emit_32(1126436897);
emit_32(3274688496);
emit_32(1097850264);
emit_32(1126436897);
emit_32(3274432512);
emit_32(1097462501);
emit_32(1126436897);
emit_32(3274176528);
emit_32(1097374001);
emit_32(1126436897);
emit_32(3273920545);
emit_32(1096574357);
emit_32(1126436897);
emit_32(3273664496);
emit_32(1097971165);
emit_32(1126436897);
emit_32(3273408512);
emit_32(1099181588);
emit_32(1126436897);
emit_32(3273152528);
emit_32(1099865208);
emit_32(1126436897);
emit_32(3272896545);
emit_32(1100222353);
emit_32(1126436897);
emit_32(3272640496);
emit_32(1099751699);
emit_32(1126436897);
emit_32(3272384512);
emit_32(1099151756);
emit_32(1126436897);
emit_32(3272128528);
emit_32(1099314548);
emit_32(1126436897);
emit_32(3271872545);
emit_32(1100567124);
emit_32(1126436897);
emit_32(3271616496);
emit_32(1101301023);
emit_32(1126436897);
emit_32(3271163904);
emit_32(1101937036);
emit_32(1126436897);
emit_32(3270651937);
emit_32(1102452516);
emit_32(1126436897);
emit_32(3270139970);
emit_32(1102878763);
emit_32(1126436897);
emit_32(3269627871);
emit_32(1102764678);
emit_32(1126436897);
emit_32(3269115904);
emit_32(1103315599);
emit_32(1126436897);
emit_32(3268603937);
emit_32(1103337986);
emit_32(1126436897);
emit_32(3268091970);
emit_32(1103125021);
emit_32(1126436897);
emit_32(3267579911);
emit_32(1103452701);
emit_32(1126436897);
emit_32(3267067904);
emit_32(1103518551);
emit_32(1126436897);
emit_32(3266555911);
emit_32(1103087377);
emit_32(1126436897);
emit_32(3266043904);
emit_32(1102707740);
emit_32(1126436897);
emit_32(3265531911);
emit_32(1102273682);
emit_32(1126436897);
emit_32(3265019904);
emit_32(1100733009);
emit_32(1126436897);
emit_32(3264507911);
emit_32(1100143447);
emit_32(1126436897);
emit_32(3263995904);
emit_32(1100648022);
emit_32(1126436897);
emit_32(3263483911);
emit_32(1100809555);
emit_32(1126436897);
emit_32(3262775296);
emit_32(1100886835);
emit_32(1126436897);
emit_32(3261751309);
emit_32(1100168508);
emit_32(1126436897);
emit_32(3260727296);
emit_32(1099798833);
emit_32(1126436897);
emit_32(3259703309);
emit_32(1099326502);
emit_32(1126436897);
emit_32(3258679296);
emit_32(1099188195);
emit_32(1126436897);
emit_32(3257655309);
emit_32(1098951478);
emit_32(1126436897);
emit_32(3256631296);
emit_32(1099140746);
emit_32(1126436897);
emit_32(3255607309);
emit_32(1097892836);
emit_32(1126436897);
emit_32(3254386688);
emit_32(1096986552);
emit_32(1126436897);
emit_32(3252338714);
emit_32(1098931818);
emit_32(1126436897);
emit_32(3250290688);
emit_32(1099424072);
emit_32(1126436897);
emit_32(3248242714);
emit_32(1099604217);
emit_32(1126436897);
emit_32(3245998080);
emit_32(1100206309);
emit_32(1126436897);
emit_32(3241902132);
emit_32(1099889954);
emit_32(1126436897);
emit_32(3237609472);
emit_32(1099854460);
emit_32(1126436897);
emit_32(3229220864);
emit_32(1099540935);
emit_32(1126436897);
emit_32(0);
emit_32(1099312713);
emit_32(1126436897);
emit_32(1081737216);
emit_32(1099149921);
emit_32(1126436897);
emit_32(3279552512);
emit_32(1091110007);
emit_32(1126180848);
emit_32(3279296528);
emit_32(1090566603);
emit_32(1126180848);
emit_32(3279040545);
emit_32(1089927538);
emit_32(1126180848);
emit_32(3278784496);
emit_32(1088849057);
emit_32(1126180848);
emit_32(3278528512);
emit_32(1085306191);
emit_32(1126180848);
emit_32(3278272528);
emit_32(1084238930);
emit_32(1126180848);
emit_32(3278016545);
emit_32(1082904260);
emit_32(1126180848);
emit_32(3277760496);
emit_32(1078098238);
emit_32(1126180848);
emit_32(3277504512);
emit_32(1077638962);
emit_32(1126180848);
emit_32(3277248528);
emit_32(1076413302);
emit_32(1126180848);
emit_32(3276992545);
emit_32(1076646547);
emit_32(1126180848);
emit_32(3276736496);
emit_32(1080275711);
emit_32(1126180848);
emit_32(3276480512);
emit_32(1085520143);
emit_32(1126180848);
emit_32(3276224528);
emit_32(1089702514);
emit_32(1126180848);
emit_32(3275968545);
emit_32(1092246705);
emit_32(1126180848);
emit_32(3275712496);
emit_32(1093963402);
emit_32(1126180848);
emit_32(3275456512);
emit_32(1095512778);
emit_32(1126180848);
emit_32(3275200528);
emit_32(1096063386);
emit_32(1126180848);
emit_32(3274944545);
emit_32(1098150157);
emit_32(1126180848);
emit_32(3274688496);
emit_32(1098201747);
emit_32(1126180848);
emit_32(3274432512);
emit_32(1098080322);
emit_32(1126180848);
emit_32(3274176528);
emit_32(1097170158);
emit_32(1126180848);
emit_32(3273920545);
emit_32(1097720975);
emit_32(1126180848);
emit_32(3273664496);
emit_32(1098994627);
emit_32(1126180848);
emit_32(3273408512);
emit_32(1099145570);
emit_32(1126180848);
emit_32(3273152528);
emit_32(1100249878);
emit_32(1126180848);
emit_32(3272896545);
emit_32(1100617613);
emit_32(1126180848);
emit_32(3272640496);
emit_32(1100383781);
emit_32(1126180848);
emit_32(3272384512);
emit_32(1099661417);
emit_32(1126180848);
emit_32(3272128528);
emit_32(1099771570);
emit_32(1126180848);
emit_32(3271872545);
emit_32(1100856322);
emit_32(1126180848);
emit_32(3271616496);
emit_32(1101777863);
emit_32(1126180848);
emit_32(3271163904);
emit_32(1102608912);
emit_32(1126180848);
emit_32(3270651937);
emit_32(1103420142);
emit_32(1126180848);
emit_32(3270139970);
emit_32(1104133541);
emit_32(1126180848);
emit_32(3269627871);
emit_32(1104300737);
emit_32(1126180848);
emit_32(3269115904);
emit_32(1104750366);
emit_32(1126180848);
emit_32(3268603937);
emit_32(1104692327);
emit_32(1126180848);
emit_32(3268091970);
emit_32(1104180255);
emit_32(1126180848);
emit_32(3267579911);
emit_32(1104286004);
emit_32(1126180848);
emit_32(3267067904);
emit_32(1104294760);
emit_32(1126180848);
emit_32(3266555911);
emit_32(1103989519);
emit_32(1126180848);
emit_32(3266043904);
emit_32(1103116370);
emit_32(1126180848);
emit_32(3265531911);
emit_32(1102176374);
emit_32(1126180848);
emit_32(3265019904);
emit_32(1101252683);
emit_32(1126180848);
emit_32(3264507911);
emit_32(1100807091);
emit_32(1126180848);
emit_32(3263995904);
emit_32(1101057072);
emit_32(1126180848);
emit_32(3263483911);
emit_32(1101590954);
emit_32(1126180848);
emit_32(3262775296);
emit_32(1101241516);
emit_32(1126180848);
emit_32(3261751309);
emit_32(1100721632);
emit_32(1126180848);
emit_32(3260727296);
emit_32(1100065328);
emit_32(1126180848);
emit_32(3259703309);
emit_32(1099340867);
emit_32(1126180848);
emit_32(3258679296);
emit_32(1099102631);
emit_32(1126180848);
emit_32(3257655309);
emit_32(1098007550);
emit_32(1126180848);
emit_32(3256631296);
emit_32(1097436391);
emit_32(1126180848);
emit_32(3255607309);
emit_32(1097548589);
emit_32(1126180848);
emit_32(3254386688);
emit_32(1097682282);
emit_32(1126180848);
emit_32(3252338714);
emit_32(1099124127);
emit_32(1126180848);
emit_32(3250290688);
emit_32(1098983145);
emit_32(1126180848);
emit_32(3248242714);
emit_32(1099734136);
emit_32(1126180848);
emit_32(3245998080);
emit_32(1099916745);
emit_32(1126180848);
emit_32(3241902132);
emit_32(1099462450);
emit_32(1126180848);
emit_32(3237609472);
emit_32(1099513410);
emit_32(1126180848);
emit_32(3229220864);
emit_32(1099346425);
emit_32(1126180848);
emit_32(0);
emit_32(1099133931);
emit_32(1126180848);
emit_32(1081737216);
emit_32(1099236901);
emit_32(1126180848);
emit_32(3279552512);
emit_32(1089511002);
emit_32(1125924864);
emit_32(3279296528);
emit_32(1089751084);
emit_32(1125924864);
emit_32(3279040545);
emit_32(1089625192);
emit_32(1125924864);
emit_32(3278784496);
emit_32(1088308768);
emit_32(1125924864);
emit_32(3278528512);
emit_32(1083791334);
emit_32(1125924864);
emit_32(3278272528);
emit_32(1083037702);
emit_32(1125924864);
emit_32(3278016545);
emit_32(1082409647);
emit_32(1125924864);
emit_32(3277760496);
emit_32(1076909237);
emit_32(1125924864);
emit_32(3277504512);
emit_32(1076578474);
emit_32(1125924864);
emit_32(3277248528);
emit_32(1079282500);
emit_32(1125924864);
emit_32(3276992545);
emit_32(1079322891);
emit_32(1125924864);
emit_32(3276736496);
emit_32(1080482867);
emit_32(1125924864);
emit_32(3276480512);
emit_32(1083066517);
emit_32(1125924864);
emit_32(3276224528);
emit_32(1086368944);
emit_32(1125924864);
emit_32(3275968545);
emit_32(1090788545);
emit_32(1125924864);
emit_32(3275712496);
emit_32(1093220381);
emit_32(1125924864);
emit_32(3275456512);
emit_32(1094138095);
emit_32(1125924864);
emit_32(3275200528);
emit_32(1095485201);
emit_32(1125924864);
emit_32(3274944545);
emit_32(1098300103);
emit_32(1125924864);
emit_32(3274688496);
emit_32(1099012348);
emit_32(1125924864);
emit_32(3274432512);
emit_32(1097753795);
emit_32(1125924864);
emit_32(3274176528);
emit_32(1096927727);
emit_32(1125924864);
emit_32(3273920545);
emit_32(1098937847);
emit_32(1125924864);
emit_32(3273664496);
emit_32(1099750598);
emit_32(1125924864);
emit_32(3273408512);
emit_32(1099826096);
emit_32(1125924864);
emit_32(3273152528);
emit_32(1100180514);
emit_32(1125924864);
emit_32(3272896545);
emit_32(1100786015);
emit_32(1125924864);
emit_32(3272640496);
emit_32(1100625006);
emit_32(1125924864);
emit_32(3272384512);
emit_32(1100107638);
emit_32(1125924864);
emit_32(3272128528);
emit_32(1100331457);
emit_32(1125924864);
emit_32(3271872545);
emit_32(1101249590);
emit_32(1125924864);
emit_32(3271616496);
emit_32(1102354737);
emit_32(1125924864);
emit_32(3271163904);
emit_32(1103441691);
emit_32(1125924864);
emit_32(3270651937);
emit_32(1104738936);
emit_32(1125924864);
emit_32(3270139970);
emit_32(1105236276);
emit_32(1125924864);
emit_32(3269627871);
emit_32(1105460304);
emit_32(1125924864);
emit_32(3269115904);
emit_32(1105771993);
emit_32(1125924864);
emit_32(3268603937);
emit_32(1105867833);
emit_32(1125924864);
emit_32(3268091970);
emit_32(1105681868);
emit_32(1125924864);
emit_32(3267579911);
emit_32(1105399854);
emit_32(1125924864);
emit_32(3267067904);
emit_32(1104596592);
emit_32(1125924864);
emit_32(3266555911);
emit_32(1104130657);
emit_32(1125924864);
emit_32(3266043904);
emit_32(1103243877);
emit_32(1125924864);
emit_32(3265531911);
emit_32(1102380270);
emit_32(1125924864);
emit_32(3265019904);
emit_32(1102020241);
emit_32(1125924864);
emit_32(3264507911);
emit_32(1101572656);
emit_32(1125924864);
emit_32(3263995904);
emit_32(1101722026);
emit_32(1125924864);
emit_32(3263483911);
emit_32(1101703833);
emit_32(1125924864);
emit_32(3262775296);
emit_32(1101282463);
emit_32(1125924864);
emit_32(3261751309);
emit_32(1100994314);
emit_32(1125924864);
emit_32(3260727296);
emit_32(1100261255);
emit_32(1125924864);
emit_32(3259703309);
emit_32(1099538104);
emit_32(1125924864);
emit_32(3258679296);
emit_32(1099005113);
emit_32(1125924864);
emit_32(3257655309);
emit_32(1097288542);
emit_32(1125924864);
emit_32(3256631296);
emit_32(1096558523);
emit_32(1125924864);
emit_32(3255607309);
emit_32(1097476761);
emit_32(1125924864);
emit_32(3254386688);
emit_32(1098510552);
emit_32(1125924864);
emit_32(3252338714);
emit_32(1098575249);
emit_32(1125924864);
emit_32(3250290688);
emit_32(1099187146);
emit_32(1125924864);
emit_32(3248242714);
emit_32(1099341339);
emit_32(1125924864);
emit_32(3245998080);
emit_32(1099196531);
emit_32(1125924864);
emit_32(3241902132);
emit_32(1099085906);
emit_32(1125924864);
emit_32(3237609472);
emit_32(1099120876);
emit_32(1125924864);
emit_32(3229220864);
emit_32(1098773955);
emit_32(1125924864);
emit_32(0);
emit_32(1099088580);
emit_32(1125924864);
emit_32(1081737216);
emit_32(1099397648);
emit_32(1125924864);
emit_32(3279552512);
emit_32(1087350222);
emit_32(1125668880);
emit_32(3279296528);
emit_32(1087173453);
emit_32(1125668880);
emit_32(3279040545);
emit_32(1087524370);
emit_32(1125668880);
emit_32(3278784496);
emit_32(1085198146);
emit_32(1125668880);
emit_32(3278528512);
emit_32(1082565654);
emit_32(1125668880);
emit_32(3278272528);
emit_32(1077145753);
emit_32(1125668880);
emit_32(3278016545);
emit_32(1072746264);
emit_32(1125668880);
emit_32(3277760496);
emit_32(1070147557);
emit_32(1125668880);
emit_32(3277504512);
emit_32(1075759536);
emit_32(1125668880);
emit_32(3277248528);
emit_32(1077469889);
emit_32(1125668880);
emit_32(3276992545);
emit_32(1076408479);
emit_32(1125668880);
emit_32(3276736496);
emit_32(1077817429);
emit_32(1125668880);
emit_32(3276480512);
emit_32(1080487943);
emit_32(1125668880);
emit_32(3276224528);
emit_32(1082089831);
emit_32(1125668880);
emit_32(3275968545);
emit_32(1089194856);
emit_32(1125668880);
emit_32(3275712496);
emit_32(1092143819);
emit_32(1125668880);
emit_32(3275456512);
emit_32(1093271971);
emit_32(1125668880);
emit_32(3275200528);
emit_32(1095061157);
emit_32(1125668880);
emit_32(3274944545);
emit_32(1096826225);
emit_32(1125668880);
emit_32(3274688496);
emit_32(1097739220);
emit_32(1125668880);
emit_32(3274432512);
emit_32(1097853200);
emit_32(1125668880);
emit_32(3274176528);
emit_32(1097601856);
emit_32(1125668880);
emit_32(3273920545);
emit_32(1099313866);
emit_32(1125668880);
emit_32(3273664496);
emit_32(1100242538);
emit_32(1125668880);
emit_32(3273408512);
emit_32(1100791520);
emit_32(1125668880);
emit_32(3273152528);
emit_32(1100534671);
emit_32(1125668880);
emit_32(3272896545);
emit_32(1100486803);
emit_32(1125668880);
emit_32(3272640496);
emit_32(1100712667);
emit_32(1125668880);
emit_32(3272384512);
emit_32(1100661549);
emit_32(1125668880);
emit_32(3272128528);
emit_32(1101351407);
emit_32(1125668880);
emit_32(3271872545);
emit_32(1102206154);
emit_32(1125668880);
emit_32(3271616496);
emit_32(1103301286);
emit_32(1125668880);
emit_32(3271163904);
emit_32(1104362760);
emit_32(1125668880);
emit_32(3270651937);
emit_32(1105383916);
emit_32(1125668880);
emit_32(3270139970);
emit_32(1106277093);
emit_32(1125668880);
emit_32(3269627871);
emit_32(1106308235);
emit_32(1125668880);
emit_32(3269115904);
emit_32(1106719801);
emit_32(1125668880);
emit_32(3268603937);
emit_32(1106707323);
emit_32(1125668880);
emit_32(3268091970);
emit_32(1106722475);
emit_32(1125668880);
emit_32(3267579911);
emit_32(1106438259);
emit_32(1125668880);
emit_32(3267067904);
emit_32(1105408609);
emit_32(1125668880);
emit_32(3266555911);
emit_32(1104049917);
emit_32(1125668880);
emit_32(3266043904);
emit_32(1103297564);
emit_32(1125668880);
emit_32(3265531911);
emit_32(1102461429);
emit_32(1125668880);
emit_32(3265019904);
emit_32(1102366533);
emit_32(1125668880);
emit_32(3264507911);
emit_32(1101967340);
emit_32(1125668880);
emit_32(3263995904);
emit_32(1101786146);
emit_32(1125668880);
emit_32(3263483911);
emit_32(1101553258);
emit_32(1125668880);
emit_32(3262775296);
emit_32(1101001340);
emit_32(1125668880);
emit_32(3261751309);
emit_32(1100728448);
emit_32(1125668880);
emit_32(3260727296);
emit_32(1100022546);
emit_32(1125668880);
emit_32(3259703309);
emit_32(1099153224);
emit_32(1125668880);
emit_32(3258679296);
emit_32(1097869977);
emit_32(1125668880);
emit_32(3257655309);
emit_32(1096668099);
emit_32(1125668880);
emit_32(3256631296);
emit_32(1097741107);
emit_32(1125668880);
emit_32(3255607309);
emit_32(1097981755);
emit_32(1125668880);
emit_32(3254386688);
emit_32(1097933206);
emit_32(1125668880);
emit_32(3252338714);
emit_32(1098260572);
emit_32(1125668880);
emit_32(3250290688);
emit_32(1098406219);
emit_32(1125668880);
emit_32(3248242714);
emit_32(1098084516);
emit_32(1125668880);
emit_32(3245998080);
emit_32(1098079168);
emit_32(1125668880);
emit_32(3241902132);
emit_32(1098423520);
emit_32(1125668880);
emit_32(3237609472);
emit_32(1098536662);
emit_32(1125668880);
emit_32(3229220864);
emit_32(1098183711);
emit_32(1125668880);
emit_32(0);
emit_32(1099109709);
emit_32(1125668880);
emit_32(1081737216);
emit_32(1099796421);
emit_32(1125668880);
emit_32(3279552512);
emit_32(1084599032);
emit_32(1125412897);
emit_32(3279296528);
emit_32(1083540012);
emit_32(1125412897);
emit_32(3279040545);
emit_32(1082794369);
emit_32(1125412897);
emit_32(3278784496);
emit_32(1078855100);
emit_32(1125412897);
emit_32(3278528512);
emit_32(1074302393);
emit_32(1125412897);
emit_32(3278272528);
emit_32(1066993608);
emit_32(1125412897);
emit_32(3278016545);
emit_32(1038259757);
emit_32(1125412897);
emit_32(3277760496);
emit_32(1064430889);
emit_32(1125412897);
emit_32(3277504512);
emit_32(1068992026);
emit_32(1125412897);
emit_32(3277248528);
emit_32(1074031860);
emit_32(1125412897);
emit_32(3276992545);
emit_32(1074904275);
emit_32(1125412897);
emit_32(3276736496);
emit_32(1074708653);
emit_32(1125412897);
emit_32(3276480512);
emit_32(1076428066);
emit_32(1125412897);
emit_32(3276224528);
emit_32(1077918302);
emit_32(1125412897);
emit_32(3275968545);
emit_32(1085074875);
emit_32(1125412897);
emit_32(3275712496);
emit_32(1090557240);
emit_32(1125412897);
emit_32(3275456512);
emit_32(1092638422);
emit_32(1125412897);
emit_32(3275200528);
emit_32(1094944555);
emit_32(1125412897);
emit_32(3274944545);
emit_32(1097008048);
emit_32(1125412897);
emit_32(3274688496);
emit_32(1097387737);
emit_32(1125412897);
emit_32(3274432512);
emit_32(1098056204);
emit_32(1125412897);
emit_32(3274176528);
emit_32(1098092066);
emit_32(1125412897);
emit_32(3273920545);
emit_32(1099683122);
emit_32(1125412897);
emit_32(3273664496);
emit_32(1100803369);
emit_32(1125412897);
emit_32(3273408512);
emit_32(1101115267);
emit_32(1125412897);
emit_32(3273152528);
emit_32(1101294207);
emit_32(1125412897);
emit_32(3272896545);
emit_32(1101133932);
emit_32(1125412897);
emit_32(3272640496);
emit_32(1101242093);
emit_32(1125412897);
emit_32(3272384512);
emit_32(1101498994);
emit_32(1125412897);
emit_32(3272128528);
emit_32(1102385303);
emit_32(1125412897);
emit_32(3271872545);
emit_32(1103696757);
emit_32(1125412897);
emit_32(3271616496);
emit_32(1104690492);
emit_32(1125412897);
emit_32(3271163904);
emit_32(1105923146);
emit_32(1125412897);
emit_32(3270651937);
emit_32(1106797868);
emit_32(1125412897);
emit_32(3270139970);
emit_32(1107151867);
emit_32(1125412897);
emit_32(3269627871);
emit_32(1107261181);
emit_32(1125412897);
emit_32(3269115904);
emit_32(1107270933);
emit_32(1125412897);
emit_32(3268603937);
emit_32(1107353141);
emit_32(1125412897);
emit_32(3268091970);
emit_32(1107243880);
emit_32(1125412897);
emit_32(3267579911);
emit_32(1106494620);
emit_32(1125412897);
emit_32(3267067904);
emit_32(1105521174);
emit_32(1125412897);
emit_32(3266555911);
emit_32(1104449162);
emit_32(1125412897);
emit_32(3266043904);
emit_32(1103510110);
emit_32(1125412897);
emit_32(3265531911);
emit_32(1102747953);
emit_32(1125412897);
emit_32(3265019904);
emit_32(1102196874);
emit_32(1125412897);
emit_32(3264507911);
emit_32(1102074085);
emit_32(1125412897);
emit_32(3263995904);
emit_32(1101784888);
emit_32(1125412897);
emit_32(3263483911);
emit_32(1101295203);
emit_32(1125412897);
emit_32(3262775296);
emit_32(1100689231);
emit_32(1125412897);
emit_32(3261751309);
emit_32(1100003515);
emit_32(1125412897);
emit_32(3260727296);
emit_32(1099230295);
emit_32(1125412897);
emit_32(3259703309);
emit_32(1098733375);
emit_32(1125412897);
emit_32(3258679296);
emit_32(1096895326);
emit_32(1125412897);
emit_32(3257655309);
emit_32(1095571918);
emit_32(1125412897);
emit_32(3256631296);
emit_32(1096896374);
emit_32(1125412897);
emit_32(3255607309);
emit_32(1097195638);
emit_32(1125412897);
emit_32(3254386688);
emit_32(1097122238);
emit_32(1125412897);
emit_32(3252338714);
emit_32(1098028522);
emit_32(1125412897);
emit_32(3250290688);
emit_32(1096753663);
emit_32(1125412897);
emit_32(3248242714);
emit_32(1097797416);
emit_32(1125412897);
emit_32(3245998080);
emit_32(1098329673);
emit_32(1125412897);
emit_32(3241902132);
emit_32(1098215273);
emit_32(1125412897);
emit_32(3237609472);
emit_32(1097896401);
emit_32(1125412897);
emit_32(3229220864);
emit_32(1098533411);
emit_32(1125412897);
emit_32(0);
emit_32(1099233650);
emit_32(1125412897);
emit_32(1081737216);
emit_32(1100171654);
emit_32(1125412897);
emit_32(3279552512);
emit_32(1085043754);
emit_32(1125156848);
emit_32(3279296528);
emit_32(1082745359);
emit_32(1125156848);
emit_32(3279040545);
emit_32(1077929543);
emit_32(1125156848);
emit_32(3278784496);
emit_32(1077120797);
emit_32(1125156848);
emit_32(3278528512);
emit_32(1070829467);
emit_32(1125156848);
emit_32(3278272528);
emit_32(3196693122);
emit_32(1125156848);
emit_32(3278016545);
emit_32(3203591578);
emit_32(1125156848);
emit_32(3277760496);
emit_32(3178809932);
emit_32(1125156848);
emit_32(3277504512);
emit_32(1062996554);
emit_32(1125156848);
emit_32(3277248528);
emit_32(1067740194);
emit_32(1125156848);
emit_32(3276992545);
emit_32(1071204690);
emit_32(1125156848);
emit_32(3276736496);
emit_32(1074277437);
emit_32(1125156848);
emit_32(3276480512);
emit_32(1077601171);
emit_32(1125156848);
emit_32(3276224528);
emit_32(1081521125);
emit_32(1125156848);
emit_32(3275968545);
emit_32(1082948300);
emit_32(1125156848);
emit_32(3275712496);
emit_32(1087836804);
emit_32(1125156848);
emit_32(3275456512);
emit_32(1091823815);
emit_32(1125156848);
emit_32(3275200528);
emit_32(1094296745);
emit_32(1125156848);
emit_32(3274944545);
emit_32(1095976039);
emit_32(1125156848);
emit_32(3274688496);
emit_32(1097507484);
emit_32(1125156848);
emit_32(3274432512);
emit_32(1097570923);
emit_32(1125156848);
emit_32(3274176528);
emit_32(1098982359);
emit_32(1125156848);
emit_32(3273920545);
emit_32(1100051802);
emit_32(1125156848);
emit_32(3273664496);
emit_32(1100994419);
emit_32(1125156848);
emit_32(3273408512);
emit_32(1102158705);
emit_32(1125156848);
emit_32(3273152528);
emit_32(1102017357);
emit_32(1125156848);
emit_32(3272896545);
emit_32(1102232735);
emit_32(1125156848);
emit_32(3272640496);
emit_32(1101864265);
emit_32(1125156848);
emit_32(3272384512);
emit_32(1102610222);
emit_32(1125156848);
emit_32(3272128528);
emit_32(1103466332);
emit_32(1125156848);
emit_32(3271872545);
emit_32(1104473437);
emit_32(1125156848);
emit_32(3271616496);
emit_32(1106243066);
emit_32(1125156848);
emit_32(3271163904);
emit_32(1107111235);
emit_32(1125156848);
emit_32(3270651937);
emit_32(1107425205);
emit_32(1125156848);
emit_32(3270139970);
emit_32(1107552502);
emit_32(1125156848);
emit_32(3269627871);
emit_32(1107600002);
emit_32(1125156848);
emit_32(3269115904);
emit_32(1107564875);
emit_32(1125156848);
emit_32(3268603937);
emit_32(1107418258);
emit_32(1125156848);
emit_32(3268091970);
emit_32(1107034584);
emit_32(1125156848);
emit_32(3267579911);
emit_32(1106363600);
emit_32(1125156848);
emit_32(3267067904);
emit_32(1105390731);
emit_32(1125156848);
emit_32(3266555911);
emit_32(1104501591);
emit_32(1125156848);
emit_32(3266043904);
emit_32(1103946108);
emit_32(1125156848);
emit_32(3265531911);
emit_32(1102869325);
emit_32(1125156848);
emit_32(3265019904);
emit_32(1101989360);
emit_32(1125156848);
emit_32(3264507911);
emit_32(1101780170);
emit_32(1125156848);
emit_32(3263995904);
emit_32(1101640971);
emit_32(1125156848);
emit_32(3263483911);
emit_32(1101030700);
emit_32(1125156848);
emit_32(3262775296);
emit_32(1100725564);
emit_32(1125156848);
emit_32(3261751309);
emit_32(1099604322);
emit_32(1125156848);
emit_32(3260727296);
emit_32(1099292318);
emit_32(1125156848);
emit_32(3259703309);
emit_32(1098829949);
emit_32(1125156848);
emit_32(3258679296);
emit_32(1097125803);
emit_32(1125156848);
emit_32(3257655309);
emit_32(1096142658);
emit_32(1125156848);
emit_32(3256631296);
emit_32(1095542138);
emit_32(1125156848);
emit_32(3255607309);
emit_32(1096456811);
emit_32(1125156848);
emit_32(3254386688);
emit_32(1096482501);
emit_32(1125156848);
emit_32(3252338714);
emit_32(1096896270);
emit_32(1125156848);
emit_32(3250290688);
emit_32(1096761213);
emit_32(1125156848);
emit_32(3248242714);
emit_32(1096850971);
emit_32(1125156848);
emit_32(3245998080);
emit_32(1096941463);
emit_32(1125156848);
emit_32(3241902132);
emit_32(1096922589);
emit_32(1125156848);
emit_32(3237609472);
emit_32(1097331429);
emit_32(1125156848);
emit_32(3229220864);
emit_32(1098308177);
emit_32(1125156848);
emit_32(0);
emit_32(1099200882);
emit_32(1125156848);
emit_32(1081737216);
emit_32(1099891107);
emit_32(1125156848);
emit_32(3279552512);
emit_32(1084907963);
emit_32(1124900864);
emit_32(3279296528);
emit_32(1083246159);
emit_32(1124900864);
emit_32(3279040545);
emit_32(1077321704);
emit_32(1124900864);
emit_32(3278784496);
emit_32(1069416909);
emit_32(1124900864);
emit_32(3278528512);
emit_32(1044789651);
emit_32(1124900864);
emit_32(3278272528);
emit_32(3167012033);
emit_32(1124900864);
emit_32(3278016545);
emit_32(3192403624);
emit_32(1124900864);
emit_32(3277760496);
emit_32(3204872485);
emit_32(1124900864);
emit_32(3277504512);
emit_32(1048751859);
emit_32(1124900864);
emit_32(3277248528);
emit_32(1057065154);
emit_32(1124900864);
emit_32(3276992545);
emit_32(1067451207);
emit_32(1124900864);
emit_32(3276736496);
emit_32(1076983266);
emit_32(1124900864);
emit_32(3276480512);
emit_32(1078929255);
emit_32(1124900864);
emit_32(3276224528);
emit_32(1081361406);
emit_32(1124900864);
emit_32(3275968545);
emit_32(1083089858);
emit_32(1124900864);
emit_32(3275712496);
emit_32(1087525083);
emit_32(1124900864);
emit_32(3275456512);
emit_32(1091337443);
emit_32(1124900864);
emit_32(3275200528);
emit_32(1093300912);
emit_32(1124900864);
emit_32(3274944545);
emit_32(1094898103);
emit_32(1124900864);
emit_32(3274688496);
emit_32(1096638530);
emit_32(1124900864);
emit_32(3274432512);
emit_32(1097274071);
emit_32(1124900864);
emit_32(3274176528);
emit_32(1099026766);
emit_32(1124900864);
emit_32(3273920545);
emit_32(1099861538);
emit_32(1124900864);
emit_32(3273664496);
emit_32(1101176137);
emit_32(1124900864);
emit_32(3273408512);
emit_32(1101893049);
emit_32(1124900864);
emit_32(3273152528);
emit_32(1101975047);
emit_32(1124900864);
emit_32(3272896545);
emit_32(1102502691);
emit_32(1124900864);
emit_32(3272640496);
emit_32(1102587573);
emit_32(1124900864);
emit_32(3272384512);
emit_32(1103471103);
emit_32(1124900864);
emit_32(3272128528);
emit_32(1104395895);
emit_32(1124900864);
emit_32(3271872545);
emit_32(1105537742);
emit_32(1124900864);
emit_32(3271616496);
emit_32(1106756659);
emit_32(1124900864);
emit_32(3271163904);
emit_32(1107634867);
emit_32(1124900864);
emit_32(3270651937);
emit_32(1108079516);
emit_32(1124900864);
emit_32(3270139970);
emit_32(1107976153);
emit_32(1124900864);
emit_32(3269627871);
emit_32(1107884271);
emit_32(1124900864);
emit_32(3269115904);
emit_32(1107747642);
emit_32(1124900864);
emit_32(3268603937);
emit_32(1107549985);
emit_32(1124900864);
emit_32(3268091970);
emit_32(1106944773);
emit_32(1124900864);
emit_32(3267579911);
emit_32(1106247732);
emit_32(1124900864);
emit_32(3267067904);
emit_32(1105208646);
emit_32(1124900864);
emit_32(3266555911);
emit_32(1104283802);
emit_32(1124900864);
emit_32(3266043904);
emit_32(1103606946);
emit_32(1124900864);
emit_32(3265531911);
emit_32(1102871160);
emit_32(1124900864);
emit_32(3265019904);
emit_32(1101718513);
emit_32(1124900864);
emit_32(3264507911);
emit_32(1101446513);
emit_32(1124900864);
emit_32(3263995904);
emit_32(1101370543);
emit_32(1124900864);
emit_32(3263483911);
emit_32(1100714292);
emit_32(1124900864);
emit_32(3262775296);
emit_32(1099954599);
emit_32(1124900864);
emit_32(3261751309);
emit_32(1099576325);
emit_32(1124900864);
emit_32(3260727296);
emit_32(1099307680);
emit_32(1124900864);
emit_32(3259703309);
emit_32(1098767978);
emit_32(1124900864);
emit_32(3258679296);
emit_32(1098097938);
emit_32(1124900864);
emit_32(3257655309);
emit_32(1096914095);
emit_32(1124900864);
emit_32(3256631296);
emit_32(1096195192);
emit_32(1124900864);
emit_32(3255607309);
emit_32(1095657482);
emit_32(1124900864);
emit_32(3254386688);
emit_32(1095370487);
emit_32(1124900864);
emit_32(3252338714);
emit_32(1095450703);
emit_32(1124900864);
emit_32(3250290688);
emit_32(1094766612);
emit_32(1124900864);
emit_32(3248242714);
emit_32(1095587018);
emit_32(1124900864);
emit_32(3245998080);
emit_32(1094951266);
emit_32(1124900864);
emit_32(3241902132);
emit_32(1094949903);
emit_32(1124900864);
emit_32(3237609472);
emit_32(1096714656);
emit_32(1124900864);
emit_32(3229220864);
emit_32(1098445226);
emit_32(1124900864);
emit_32(0);
emit_32(1099331587);
emit_32(1124900864);
emit_32(1081737216);
emit_32(1100260206);
emit_32(1124900864);
emit_32(3279552512);
emit_32(1083591665);
emit_32(1124644880);
emit_32(3279296528);
emit_32(1079852212);
emit_32(1124644880);
emit_32(3279040545);
emit_32(1072228855);
emit_32(1124644880);
emit_32(3278784496);
emit_32(1066448684);
emit_32(1124644880);
emit_32(3278528512);
emit_32(1057555518);
emit_32(1124644880);
emit_32(3278272528);
emit_32(1063153790);
emit_32(1124644880);
emit_32(3278016545);
emit_32(1058210333);
emit_32(1124644880);
emit_32(3277760496);
emit_32(1049561427);
emit_32(1124644880);
emit_32(3277504512);
emit_32(3214410567);
emit_32(1124644880);
emit_32(3277248528);
emit_32(3207614251);
emit_32(1124644880);
emit_32(3276992545);
emit_32(1055980993);
emit_32(1124644880);
emit_32(3276736496);
emit_32(1073762292);
emit_32(1124644880);
emit_32(3276480512);
emit_32(1079724747);
emit_32(1124644880);
emit_32(3276224528);
emit_32(1082560411);
emit_32(1124644880);
emit_32(3275968545);
emit_32(1084722260);
emit_32(1124644880);
emit_32(3275712496);
emit_32(1086375571);
emit_32(1124644880);
emit_32(3275456512);
emit_32(1090446500);
emit_32(1124644880);
emit_32(3275200528);
emit_32(1093171832);
emit_32(1124644880);
emit_32(3274944545);
emit_32(1094812015);
emit_32(1124644880);
emit_32(3274688496);
emit_32(1096292290);
emit_32(1124644880);
emit_32(3274432512);
emit_32(1097734921);
emit_32(1124644880);
emit_32(3274176528);
emit_32(1099196531);
emit_32(1124644880);
emit_32(3273920545);
emit_32(1099805229);
emit_32(1124644880);
emit_32(3273664496);
emit_32(1100823187);
emit_32(1124644880);
emit_32(3273408512);
emit_32(1101755685);
emit_32(1124644880);
emit_32(3273152528);
emit_32(1102405698);
emit_32(1124644880);
emit_32(3272896545);
emit_32(1102759225);
emit_32(1124644880);
emit_32(3272640496);
emit_32(1103381607);
emit_32(1124644880);
emit_32(3272384512);
emit_32(1104182510);
emit_32(1124644880);
emit_32(3272128528);
emit_32(1105063995);
emit_32(1124644880);
emit_32(3271872545);
emit_32(1106336390);
emit_32(1124644880);
emit_32(3271616496);
emit_32(1107656416);
emit_32(1124644880);
emit_32(3271163904);
emit_32(1108075925);
emit_32(1124644880);
emit_32(3270651937);
emit_32(1108328763);
emit_32(1124644880);
emit_32(3270139970);
emit_32(1108369080);
emit_32(1124644880);
emit_32(3269627871);
emit_32(1108254366);
emit_32(1124644880);
emit_32(3269115904);
emit_32(1107968551);
emit_32(1124644880);
emit_32(3268603937);
emit_32(1107979456);
emit_32(1124644880);
emit_32(3268091970);
emit_32(1107515802);
emit_32(1124644880);
emit_32(3267579911);
emit_32(1106388084);
emit_32(1124644880);
emit_32(3267067904);
emit_32(1104790841);
emit_32(1124644880);
emit_32(3266555911);
emit_32(1104209563);
emit_32(1124644880);
emit_32(3266043904);
emit_32(1103624405);
emit_32(1124644880);
emit_32(3265531911);
emit_32(1102359613);
emit_32(1124644880);
emit_32(3265019904);
emit_32(1101907257);
emit_32(1124644880);
emit_32(3264507911);
emit_32(1101809058);
emit_32(1124644880);
emit_32(3263995904);
emit_32(1101301128);
emit_32(1124644880);
emit_32(3263483911);
emit_32(1100497289);
emit_32(1124644880);
emit_32(3262775296);
emit_32(1099654863);
emit_32(1124644880);
emit_32(3261751309);
emit_32(1099315701);
emit_32(1124644880);
emit_32(3260727296);
emit_32(1098867697);
emit_32(1124644880);
emit_32(3259703309);
emit_32(1097723491);
emit_32(1124644880);
emit_32(3258679296);
emit_32(1097140063);
emit_32(1124644880);
emit_32(3257655309);
emit_32(1096683933);
emit_32(1124644880);
emit_32(3256631296);
emit_32(1095379399);
emit_32(1124644880);
emit_32(3255607309);
emit_32(1094758747);
emit_32(1124644880);
emit_32(3254386688);
emit_32(1094561405);
emit_32(1124644880);
emit_32(3252338714);
emit_32(1094733582);
emit_32(1124644880);
emit_32(3250290688);
emit_32(1093957845);
emit_32(1124644880);
emit_32(3248242714);
emit_32(1094294123);
emit_32(1124644880);
emit_32(3245998080);
emit_32(1093574905);
emit_32(1124644880);
emit_32(3241902132);
emit_32(1094867799);
emit_32(1124644880);
emit_32(3237609472);
emit_32(1097134821);
emit_32(1124644880);
emit_32(3229220864);
emit_32(1099036099);
emit_32(1124644880);
emit_32(0);
emit_32(1099596615);
emit_32(1124644880);
emit_32(1081737216);
emit_32(1100859258);
emit_32(1124644880);
emit_32(3279552512);
emit_32(1081904485);
emit_32(1124388897);
emit_32(3279296528);
emit_32(1075136304);
emit_32(1124388897);
emit_32(3279040545);
emit_32(1073454011);
emit_32(1124388897);
emit_32(3278784496);
emit_32(1066813673);
emit_32(1124388897);
emit_32(3278528512);
emit_32(1058745375);
emit_32(1124388897);
emit_32(3278272528);
emit_32(1007923565);
emit_32(1124388897);
emit_32(3278016545);
emit_32(1041418101);
emit_32(1124388897);
emit_32(3277760496);
emit_32(3199617458);
emit_32(1124388897);
emit_32(3277504512);
emit_32(3217487424);
emit_32(1124388897);
emit_32(3277248528);
emit_32(3214749551);
emit_32(1124388897);
emit_32(3276992545);
emit_32(3200772133);
emit_32(1124388897);
emit_32(3276736496);
emit_32(1066640783);
emit_32(1124388897);
emit_32(3276480512);
emit_32(1076373750);
emit_32(1124388897);
emit_32(3276224528);
emit_32(1080280534);
emit_32(1124388897);
emit_32(3275968545);
emit_32(1084212505);
emit_32(1124388897);
emit_32(3275712496);
emit_32(1084220726);
emit_32(1124388897);
emit_32(3275456512);
emit_32(1088347817);
emit_32(1124388897);
emit_32(3275200528);
emit_32(1092688649);
emit_32(1124388897);
emit_32(3274944545);
emit_32(1095110020);
emit_32(1124388897);
emit_32(3274688496);
emit_32(1096019765);
emit_32(1124388897);
emit_32(3274432512);
emit_32(1097191863);
emit_32(1124388897);
emit_32(3274176528);
emit_32(1099076574);
emit_32(1124388897);
emit_32(3273920545);
emit_32(1099798099);
emit_32(1124388897);
emit_32(3273664496);
emit_32(1100653265);
emit_32(1124388897);
emit_32(3273408512);
emit_32(1101516925);
emit_32(1124388897);
emit_32(3273152528);
emit_32(1102653791);
emit_32(1124388897);
emit_32(3272896545);
emit_32(1103041659);
emit_32(1124388897);
emit_32(3272640496);
emit_32(1103477814);
emit_32(1124388897);
emit_32(3272384512);
emit_32(1104761586);
emit_32(1124388897);
emit_32(3272128528);
emit_32(1105735555);
emit_32(1124388897);
emit_32(3271872545);
emit_32(1106382579);
emit_32(1124388897);
emit_32(3271616496);
emit_32(1107704231);
emit_32(1124388897);
emit_32(3271163904);
emit_32(1108131394);
emit_32(1124388897);
emit_32(3270651937);
emit_32(1108458393);
emit_32(1124388897);
emit_32(3270139970);
emit_32(1108511529);
emit_32(1124388897);
emit_32(3269627871);
emit_32(1108351464);
emit_32(1124388897);
emit_32(3269115904);
emit_32(1108007374);
emit_32(1124388897);
emit_32(3268603937);
emit_32(1107999667);
emit_32(1124388897);
emit_32(3268091970);
emit_32(1107747353);
emit_32(1124388897);
emit_32(3267579911);
emit_32(1106761954);
emit_32(1124388897);
emit_32(3267067904);
emit_32(1105151446);
emit_32(1124388897);
emit_32(3266555911);
emit_32(1103997960);
emit_32(1124388897);
emit_32(3266043904);
emit_32(1103338930);
emit_32(1124388897);
emit_32(3265531911);
emit_32(1102310120);
emit_32(1124388897);
emit_32(3265019904);
emit_32(1102078804);
emit_32(1124388897);
emit_32(3264507911);
emit_32(1102132910);
emit_32(1124388897);
emit_32(3263995904);
emit_32(1101260338);
emit_32(1124388897);
emit_32(3263483911);
emit_32(1100505783);
emit_32(1124388897);
emit_32(3262775296);
emit_32(1099485361);
emit_32(1124388897);
emit_32(3261751309);
emit_32(1099317379);
emit_32(1124388897);
emit_32(3260727296);
emit_32(1097990459);
emit_32(1124388897);
emit_32(3259703309);
emit_32(1097342543);
emit_32(1124388897);
emit_32(3258679296);
emit_32(1095513512);
emit_32(1124388897);
emit_32(3257655309);
emit_32(1095404880);
emit_32(1124388897);
emit_32(3256631296);
emit_32(1094651059);
emit_32(1124388897);
emit_32(3255607309);
emit_32(1094446901);
emit_32(1124388897);
emit_32(3254386688);
emit_32(1093497625);
emit_32(1124388897);
emit_32(3252338714);
emit_32(1093705977);
emit_32(1124388897);
emit_32(3250290688);
emit_32(1093119299);
emit_32(1124388897);
emit_32(3248242714);
emit_32(1093472354);
emit_32(1124388897);
emit_32(3245998080);
emit_32(1095171362);
emit_32(1124388897);
emit_32(3241902132);
emit_32(1096014103);
emit_32(1124388897);
emit_32(3237609472);
emit_32(1097783784);
emit_32(1124388897);
emit_32(3229220864);
emit_32(1099140904);
emit_32(1124388897);
emit_32(0);
emit_32(1099863844);
emit_32(1124388897);
emit_32(1081737216);
emit_32(1100982465);
emit_32(1124388897);
emit_32(3279552512);
emit_32(1076151032);
emit_32(1124132848);
emit_32(3279296528);
emit_32(1074265021);
emit_32(1124132848);
emit_32(3279040545);
emit_32(1059897651);
emit_32(1124132848);
emit_32(3278784496);
emit_32(3197909672);
emit_32(1124132848);
emit_32(3278528512);
emit_32(3211975304);
emit_32(1124132848);
emit_32(3278272528);
emit_32(3212548900);
emit_32(1124132848);
emit_32(3278016545);
emit_32(3214293881);
emit_32(1124132848);
emit_32(3277760496);
emit_32(3216921864);
emit_32(1124132848);
emit_32(3277504512);
emit_32(3222195908);
emit_32(1124132848);
emit_32(3277248528);
emit_32(3221805335);
emit_32(1124132848);
emit_32(3276992545);
emit_32(3213409470);
emit_32(1124132848);
emit_32(3276736496);
emit_32(1032354486);
emit_32(1124132848);
emit_32(3276480512);
emit_32(1066671654);
emit_32(1124132848);
emit_32(3276224528);
emit_32(1078555291);
emit_32(1124132848);
emit_32(3275968545);
emit_32(1082316198);
emit_32(1124132848);
emit_32(3275712496);
emit_32(1084389652);
emit_32(1124132848);
emit_32(3275456512);
emit_32(1090589284);
emit_32(1124132848);
emit_32(3275200528);
emit_32(1093399793);
emit_32(1124132848);
emit_32(3274944545);
emit_32(1094797335);
emit_32(1124132848);
emit_32(3274688496);
emit_32(1095931475);
emit_32(1124132848);
emit_32(3274432512);
emit_32(1097364459);
emit_32(1124132848);
emit_32(3274176528);
emit_32(1098713452);
emit_32(1124132848);
emit_32(3273920545);
emit_32(1099383020);
emit_32(1124132848);
emit_32(3273664496);
emit_32(1100286158);
emit_32(1124132848);
emit_32(3273408512);
emit_32(1101469791);
emit_32(1124132848);
emit_32(3273152528);
emit_32(1102376757);
emit_32(1124132848);
emit_32(3272896545);
emit_32(1103068345);
emit_32(1124132848);
emit_32(3272640496);
emit_32(1104423682);
emit_32(1124132848);
emit_32(3272384512);
emit_32(1104904507);
emit_32(1124132848);
emit_32(3272128528);
emit_32(1106022131);
emit_32(1124132848);
emit_32(3271872545);
emit_32(1106604720);
emit_32(1124132848);
emit_32(3271616496);
emit_32(1107631800);
emit_32(1124132848);
emit_32(3271163904);
emit_32(1108172682);
emit_32(1124132848);
emit_32(3270651937);
emit_32(1108436818);
emit_32(1124132848);
emit_32(3270139970);
emit_32(1108399830);
emit_32(1124132848);
emit_32(3269627871);
emit_32(1108123845);
emit_32(1124132848);
emit_32(3269115904);
emit_32(1108184505);
emit_32(1124132848);
emit_32(3268603937);
emit_32(1108270331);
emit_32(1124132848);
emit_32(3268091970);
emit_32(1107910957);
emit_32(1124132848);
emit_32(3267579911);
emit_32(1107432518);
emit_32(1124132848);
emit_32(3267067904);
emit_32(1105755426);
emit_32(1124132848);
emit_32(3266555911);
emit_32(1104147644);
emit_32(1124132848);
emit_32(3266043904);
emit_32(1103239525);
emit_32(1124132848);
emit_32(3265531911);
emit_32(1102590666);
emit_32(1124132848);
emit_32(3265019904);
emit_32(1101844290);
emit_32(1124132848);
emit_32(3264507911);
emit_32(1101550007);
emit_32(1124132848);
emit_32(3263995904);
emit_32(1101094925);
emit_32(1124132848);
emit_32(3263483911);
emit_32(1100315990);
emit_32(1124132848);
emit_32(3262775296);
emit_32(1099604269);
emit_32(1124132848);
emit_32(3261751309);
emit_32(1098955673);
emit_32(1124132848);
emit_32(3260727296);
emit_32(1096931397);
emit_32(1124132848);
emit_32(3259703309);
emit_32(1095373108);
emit_32(1124132848);
emit_32(3258679296);
emit_32(1094758538);
emit_32(1124132848);
emit_32(3257655309);
emit_32(1094166512);
emit_32(1124132848);
emit_32(3256631296);
emit_32(1094620021);
emit_32(1124132848);
emit_32(3255607309);
emit_32(1094357772);
emit_32(1124132848);
emit_32(3254386688);
emit_32(1093070435);
emit_32(1124132848);
emit_32(3252338714);
emit_32(1092280920);
emit_32(1124132848);
emit_32(3250290688);
emit_32(1092453726);
emit_32(1124132848);
emit_32(3248242714);
emit_32(1094304085);
emit_32(1124132848);
emit_32(3245998080);
emit_32(1096070621);
emit_32(1124132848);
emit_32(3241902132);
emit_32(1096864812);
emit_32(1124132848);
emit_32(3237609472);
emit_32(1098173435);
emit_32(1124132848);
emit_32(3229220864);
emit_32(1099365404);
emit_32(1124132848);
emit_32(0);
emit_32(1099987367);
emit_32(1124132848);
emit_32(1081737216);
emit_32(1101050728);
emit_32(1124132848);
emit_32(3279552512);
emit_32(1075745946);
emit_32(1123680256);
emit_32(3279296528);
emit_32(1067640202);
emit_32(1123680256);
emit_32(3279040545);
emit_32(3205049803);
emit_32(1123680256);
emit_32(3278784496);
emit_32(3215612571);
emit_32(1123680256);
emit_32(3278528512);
emit_32(3218144588);
emit_32(1123680256);
emit_32(3278272528);
emit_32(3222509223);
emit_32(1123680256);
emit_32(3278016545);
emit_32(3221797869);
emit_32(1123680256);
emit_32(3277760496);
emit_32(3225243909);
emit_32(1123680256);
emit_32(3277504512);
emit_32(3225089810);
emit_32(1123680256);
emit_32(3277248528);
emit_32(3226837912);
emit_32(1123680256);
emit_32(3276992545);
emit_32(3222475668);
emit_32(1123680256);
emit_32(3276736496);
emit_32(3210500905);
emit_32(1123680256);
emit_32(3276480512);
emit_32(1057082501);
emit_32(1123680256);
emit_32(3276224528);
emit_32(1069886755);
emit_32(1123680256);
emit_32(3275968545);
emit_32(1079284135);
emit_32(1123680256);
emit_32(3275712496);
emit_32(1085833856);
emit_32(1123680256);
emit_32(3275456512);
emit_32(1090703044);
emit_32(1123680256);
emit_32(3275200528);
emit_32(1093163863);
emit_32(1123680256);
emit_32(3274944545);
emit_32(1094161898);
emit_32(1123680256);
emit_32(3274688496);
emit_32(1095085064);
emit_32(1123680256);
emit_32(3274432512);
emit_32(1096343041);
emit_32(1123680256);
emit_32(3274176528);
emit_32(1097267465);
emit_32(1123680256);
emit_32(3273920545);
emit_32(1099232549);
emit_32(1123680256);
emit_32(3273664496);
emit_32(1100352638);
emit_32(1123680256);
emit_32(3273408512);
emit_32(1101666347);
emit_32(1123680256);
emit_32(3273152528);
emit_32(1102553599);
emit_32(1123680256);
emit_32(3272896545);
emit_32(1103499048);
emit_32(1123680256);
emit_32(3272640496);
emit_32(1104589619);
emit_32(1123680256);
emit_32(3272384512);
emit_32(1105372486);
emit_32(1123680256);
emit_32(3272128528);
emit_32(1105859602);
emit_32(1123680256);
emit_32(3271872545);
emit_32(1106894337);
emit_32(1123680256);
emit_32(3271616496);
emit_32(1107538372);
emit_32(1123680256);
emit_32(3271163904);
emit_32(1107947762);
emit_32(1123680256);
emit_32(3270651937);
emit_32(1108124343);
emit_32(1123680256);
emit_32(3270139970);
emit_32(1107942572);
emit_32(1123680256);
emit_32(3269627871);
emit_32(1108284329);
emit_32(1123680256);
emit_32(3269115904);
emit_32(1108344439);
emit_32(1123680256);
emit_32(3268603937);
emit_32(1108291722);
emit_32(1123680256);
emit_32(3268091970);
emit_32(1107980426);
emit_32(1123680256);
emit_32(3267579911);
emit_32(1107402844);
emit_32(1123680256);
emit_32(3267067904);
emit_32(1105639401);
emit_32(1123680256);
emit_32(3266555911);
emit_32(1104157868);
emit_32(1123680256);
emit_32(3266043904);
emit_32(1103642965);
emit_32(1123680256);
emit_32(3265531911);
emit_32(1102980579);
emit_32(1123680256);
emit_32(3265019904);
emit_32(1102268282);
emit_32(1123680256);
emit_32(3264507911);
emit_32(1101485362);
emit_32(1123680256);
emit_32(3263995904);
emit_32(1100559260);
emit_32(1123680256);
emit_32(3263483911);
emit_32(1099869979);
emit_32(1123680256);
emit_32(3262775296);
emit_32(1099177447);
emit_32(1123680256);
emit_32(3261751309);
emit_32(1097774032);
emit_32(1123680256);
emit_32(3260727296);
emit_32(1096015990);
emit_32(1123680256);
emit_32(3259703309);
emit_32(1094982618);
emit_32(1123680256);
emit_32(3258679296);
emit_32(1094173642);
emit_32(1123680256);
emit_32(3257655309);
emit_32(1093433557);
emit_32(1123680256);
emit_32(3256631296);
emit_32(1092957084);
emit_32(1123680256);
emit_32(3255607309);
emit_32(1093043696);
emit_32(1123680256);
emit_32(3254386688);
emit_32(1092576367);
emit_32(1123680256);
emit_32(3252338714);
emit_32(1092381919);
emit_32(1123680256);
emit_32(3250290688);
emit_32(1093319052);
emit_32(1123680256);
emit_32(3248242714);
emit_32(1094929141);
emit_32(1123680256);
emit_32(3245998080);
emit_32(1096641151);
emit_32(1123680256);
emit_32(3241902132);
emit_32(1098022230);
emit_32(1123680256);
emit_32(3237609472);
emit_32(1098658716);
emit_32(1123680256);
emit_32(3229220864);
emit_32(1099385274);
emit_32(1123680256);
emit_32(0);
emit_32(1099998324);
emit_32(1123680256);
emit_32(1081737216);
emit_32(1100462372);
emit_32(1123680256);
emit_32(3279552512);
emit_32(1073527831);
emit_32(1123168289);
emit_32(3279296528);
emit_32(1067716203);
emit_32(1123168289);
emit_32(3279040545);
emit_32(1032802545);
emit_32(1123168289);
emit_32(3278784496);
emit_32(3215483554);
emit_32(1123168289);
emit_32(3278528512);
emit_32(3222614416);
emit_32(1123168289);
emit_32(3278272528);
emit_32(3226235358);
emit_32(1123168289);
emit_32(3278016545);
emit_32(3229265659);
emit_32(1123168289);
emit_32(3277760496);
emit_32(3229676575);
emit_32(1123168289);
emit_32(3277504512);
emit_32(3230314529);
emit_32(1123168289);
emit_32(3277248528);
emit_32(3227686797);
emit_32(1123168289);
emit_32(3276992545);
emit_32(3224163288);
emit_32(1123168289);
emit_32(3276736496);
emit_32(3224837816);
emit_32(1123168289);
emit_32(3276480512);
emit_32(3214911115);
emit_32(1123168289);
emit_32(3276224528);
emit_32(1045755414);
emit_32(1123168289);
emit_32(3275968545);
emit_32(1075946895);
emit_32(1123168289);
emit_32(3275712496);
emit_32(1083922239);
emit_32(1123168289);
emit_32(3275456512);
emit_32(1089208404);
emit_32(1123168289);
emit_32(3275200528);
emit_32(1091995729);
emit_32(1123168289);
emit_32(3274944545);
emit_32(1093743097);
emit_32(1123168289);
emit_32(3274688496);
emit_32(1094702019);
emit_32(1123168289);
emit_32(3274432512);
emit_32(1095065456);
emit_32(1123168289);
emit_32(3274176528);
emit_32(1095980443);
emit_32(1123168289);
emit_32(3273920545);
emit_32(1098763574);
emit_32(1123168289);
emit_32(3273664496);
emit_32(1100013791);
emit_32(1123168289);
emit_32(3273408512);
emit_32(1101157106);
emit_32(1123168289);
emit_32(3273152528);
emit_32(1102482401);
emit_32(1123168289);
emit_32(3272896545);
emit_32(1103806543);
emit_32(1123168289);
emit_32(3272640496);
emit_32(1104565135);
emit_32(1123168289);
emit_32(3272384512);
emit_32(1105773671);
emit_32(1123168289);
emit_32(3272128528);
emit_32(1106220312);
emit_32(1123168289);
emit_32(3271872545);
emit_32(1106669942);
emit_32(1123168289);
emit_32(3271616496);
emit_32(1107272401);
emit_32(1123168289);
emit_32(3271163904);
emit_32(1107768771);
emit_32(1123168289);
emit_32(3270651937);
emit_32(1108156770);
emit_32(1123168289);
emit_32(3270139970);
emit_32(1108407039);
emit_32(1123168289);
emit_32(3269627871);
emit_32(1108550903);
emit_32(1123168289);
emit_32(3269115904);
emit_32(1108478263);
emit_32(1123168289);
emit_32(3268603937);
emit_32(1108278274);
emit_32(1123168289);
emit_32(3268091970);
emit_32(1107762925);
emit_32(1123168289);
emit_32(3267579911);
emit_32(1106660819);
emit_32(1123168289);
emit_32(3267067904);
emit_32(1105273658);
emit_32(1123168289);
emit_32(3266555911);
emit_32(1104481668);
emit_32(1123168289);
emit_32(3266043904);
emit_32(1104168826);
emit_32(1123168289);
emit_32(3265531911);
emit_32(1103522536);
emit_32(1123168289);
emit_32(3265019904);
emit_32(1102851185);
emit_32(1123168289);
emit_32(3264507911);
emit_32(1101917061);
emit_32(1123168289);
emit_32(3263995904);
emit_32(1101010095);
emit_32(1123168289);
emit_32(3263483911);
emit_32(1099888329);
emit_32(1123168289);
emit_32(3262775296);
emit_32(1098570531);
emit_32(1123168289);
emit_32(3261751309);
emit_32(1096537866);
emit_32(1123168289);
emit_32(3260727296);
emit_32(1095068497);
emit_32(1123168289);
emit_32(3259703309);
emit_32(1094656406);
emit_32(1123168289);
emit_32(3258679296);
emit_32(1094724039);
emit_32(1123168289);
emit_32(3257655309);
emit_32(1093671584);
emit_32(1123168289);
emit_32(3256631296);
emit_32(1092454407);
emit_32(1123168289);
emit_32(3255607309);
emit_32(1092709935);
emit_32(1123168289);
emit_32(3254386688);
emit_32(1093178858);
emit_32(1123168289);
emit_32(3252338714);
emit_32(1092563312);
emit_32(1123168289);
emit_32(3250290688);
emit_32(1093668753);
emit_32(1123168289);
emit_32(3248242714);
emit_32(1095561013);
emit_32(1123168289);
emit_32(3245998080);
emit_32(1096702388);
emit_32(1123168289);
emit_32(3241902132);
emit_32(1097769524);
emit_32(1123168289);
emit_32(3237609472);
emit_32(1098298111);
emit_32(1123168289);
emit_32(3229220864);
emit_32(1098956931);
emit_32(1123168289);
emit_32(0);
emit_32(1099464022);
emit_32(1123168289);
emit_32(1081737216);
emit_32(1100235512);
emit_32(1123168289);
emit_32(3279552512);
emit_32(1074513450);
emit_32(1122656322);
emit_32(3279296528);
emit_32(1069684087);
emit_32(1122656322);
emit_32(3279040545);
emit_32(1059117578);
emit_32(1122656322);
emit_32(3278784496);
emit_32(3205587983);
emit_32(1122656322);
emit_32(3278528512);
emit_32(3221291239);
emit_32(1122656322);
emit_32(3278272528);
emit_32(3227143174);
emit_32(1122656322);
emit_32(3278016545);
emit_32(3228890898);
emit_32(1122656322);
emit_32(3277760496);
emit_32(3231744493);
emit_32(1122656322);
emit_32(3277504512);
emit_32(3231183211);
emit_32(1122656322);
emit_32(3277248528);
emit_32(3226713845);
emit_32(1122656322);
emit_32(3276992545);
emit_32(3222588579);
emit_32(1122656322);
emit_32(3276736496);
emit_32(3218835474);
emit_32(1122656322);
emit_32(3276480512);
emit_32(3214447728);
emit_32(1122656322);
emit_32(3276224528);
emit_32(1046529045);
emit_32(1122656322);
emit_32(3275968545);
emit_32(1070915199);
emit_32(1122656322);
emit_32(3275712496);
emit_32(1082866637);
emit_32(1122656322);
emit_32(3275456512);
emit_32(1087021578);
emit_32(1122656322);
emit_32(3275200528);
emit_32(1090529232);
emit_32(1122656322);
emit_32(3274944545);
emit_32(1092317201);
emit_32(1122656322);
emit_32(3274688496);
emit_32(1093426427);
emit_32(1122656322);
emit_32(3274432512);
emit_32(1094040158);
emit_32(1122656322);
emit_32(3274176528);
emit_32(1095262693);
emit_32(1122656322);
emit_32(3273920545);
emit_32(1097468792);
emit_32(1122656322);
emit_32(3273664496);
emit_32(1099540411);
emit_32(1122656322);
emit_32(3273408512);
emit_32(1100993213);
emit_32(1122656322);
emit_32(3273152528);
emit_32(1102819203);
emit_32(1122656322);
emit_32(3272896545);
emit_32(1104470763);
emit_32(1122656322);
emit_32(3272640496);
emit_32(1105442111);
emit_32(1122656322);
emit_32(3272384512);
emit_32(1106127356);
emit_32(1122656322);
emit_32(3272128528);
emit_32(1106807829);
emit_32(1122656322);
emit_32(3271872545);
emit_32(1107212108);
emit_32(1122656322);
emit_32(3271616496);
emit_32(1107339719);
emit_32(1122656322);
emit_32(3271163904);
emit_32(1108016575);
emit_32(1122656322);
emit_32(3270651937);
emit_32(1108361190);
emit_32(1122656322);
emit_32(3270139970);
emit_32(1108677807);
emit_32(1122656322);
emit_32(3269627871);
emit_32(1108698045);
emit_32(1122656322);
emit_32(3269115904);
emit_32(1108670415);
emit_32(1122656322);
emit_32(3268603937);
emit_32(1108385307);
emit_32(1122656322);
emit_32(3268091970);
emit_32(1107664044);
emit_32(1122656322);
emit_32(3267579911);
emit_32(1106926109);
emit_32(1122656322);
emit_32(3267067904);
emit_32(1105983491);
emit_32(1122656322);
emit_32(3266555911);
emit_32(1105752542);
emit_32(1122656322);
emit_32(3266043904);
emit_32(1105343650);
emit_32(1122656322);
emit_32(3265531911);
emit_32(1104481983);
emit_32(1122656322);
emit_32(3265019904);
emit_32(1103536377);
emit_32(1122656322);
emit_32(3264507911);
emit_32(1102421374);
emit_32(1122656322);
emit_32(3263995904);
emit_32(1101252526);
emit_32(1122656322);
emit_32(3263483911);
emit_32(1099947835);
emit_32(1122656322);
emit_32(3262775296);
emit_32(1099066665);
emit_32(1122656322);
emit_32(3261751309);
emit_32(1097029334);
emit_32(1122656322);
emit_32(3260727296);
emit_32(1095561223);
emit_32(1122656322);
emit_32(3259703309);
emit_32(1095286181);
emit_32(1122656322);
emit_32(3258679296);
emit_32(1094900095);
emit_32(1122656322);
emit_32(3257655309);
emit_32(1093810625);
emit_32(1122656322);
emit_32(3256631296);
emit_32(1093100949);
emit_32(1122656322);
emit_32(3255607309);
emit_32(1093720133);
emit_32(1122656322);
emit_32(3254386688);
emit_32(1094140822);
emit_32(1122656322);
emit_32(3252338714);
emit_32(1093200983);
emit_32(1122656322);
emit_32(3250290688);
emit_32(1093279731);
emit_32(1122656322);
emit_32(3248242714);
emit_32(1095297296);
emit_32(1122656322);
emit_32(3245998080);
emit_32(1096326998);
emit_32(1122656322);
emit_32(3241902132);
emit_32(1097208116);
emit_32(1122656322);
emit_32(3237609472);
emit_32(1098363332);
emit_32(1122656322);
emit_32(3229220864);
emit_32(1098960496);
emit_32(1122656322);
emit_32(0);
emit_32(1099624612);
emit_32(1122656322);
emit_32(1081737216);
emit_32(1100438045);
emit_32(1122656322);
emit_start(Landscape07Vtx)
emit_32(1081737216);
emit_32(1111930149);
emit_32(3270651937);
emit_32(1081737216);
emit_32(1111592455);
emit_32(3270139970);
emit_32(1090125824);
emit_32(1111718284);
emit_32(3270651937);
emit_32(1090125824);
emit_32(1111491609);
emit_32(3270139970);
emit_32(1094418484);
emit_32(1111318934);
emit_32(3270651937);
emit_32(1094418484);
emit_32(1111194940);
emit_32(3270139970);
emit_32(1098514432);
emit_32(1110681374);
emit_32(3270651937);
emit_32(1098514432);
emit_32(1110835331);
emit_32(3270139970);
emit_32(1100759066);
emit_32(1110219843);
emit_32(3270651937);
emit_32(1100759066);
emit_32(1110275365);
emit_32(3270139970);
emit_32(1102807040);
emit_32(1109758994);
emit_32(3270651937);
emit_32(1102807040);
emit_32(1110005567);
emit_32(3270139970);
emit_32(1104855066);
emit_32(1109428771);
emit_32(3270651937);
emit_32(1104855066);
emit_32(1109696499);
emit_32(3270139970);
emit_32(1106903040);
emit_32(1109202908);
emit_32(3270651937);
emit_32(1106903040);
emit_32(1109176772);
emit_32(3270139970);
emit_32(1108123661);
emit_32(1108966585);
emit_32(3270651937);
emit_32(1108123661);
emit_32(1108885556);
emit_32(3270139970);
emit_32(1109147648);
emit_32(1108648919);
emit_32(3270651937);
emit_32(1109147648);
emit_32(1108468774);
emit_32(3270139970);
emit_32(1110171661);
emit_32(1108152890);
emit_32(3270651937);
emit_32(1110171661);
emit_32(1108030285);
emit_32(3270139970);
emit_32(1111195648);
emit_32(1107519839);
emit_32(3270651937);
emit_32(1111195648);
emit_32(1107430028);
emit_32(3270139970);
emit_32(1112219661);
emit_32(1107320478);
emit_32(3270651937);
emit_32(1112219661);
emit_32(1107103737);
emit_32(3270139970);
emit_32(1113243648);
emit_32(1107611170);
emit_32(3270651937);
emit_32(1113243648);
emit_32(1107092098);
emit_32(3270139970);
emit_32(1114267661);
emit_32(1107859839);
emit_32(3270651937);
emit_32(1114267661);
emit_32(1107375004);
emit_32(3270139970);
emit_32(1115291648);
emit_32(1107759596);
emit_32(3270651937);
emit_32(1115291648);
emit_32(1107478708);
emit_32(3270139970);
emit_32(1116000263);
emit_32(1107948785);
emit_32(3270651937);
emit_32(1116000263);
emit_32(1107657884);
emit_32(3270139970);
emit_32(1116512256);
emit_32(1108015605);
emit_32(3270651937);
emit_32(1116512256);
emit_32(1107812575);
emit_32(3270139970);
emit_32(1117024263);
emit_32(1108198949);
emit_32(3270651937);
emit_32(1117024263);
emit_32(1108062005);
emit_32(3270139970);
emit_32(1117536256);
emit_32(1108525082);
emit_32(3270651937);
emit_32(1117536256);
emit_32(1108546316);
emit_32(3270139970);
emit_32(1118048263);
emit_32(1108838475);
emit_32(3270651937);
emit_32(1118048263);
emit_32(1108808198);
emit_32(3270139970);
emit_32(1118560256);
emit_32(1108830663);
emit_32(3270651937);
emit_32(1118560256);
emit_32(1108821253);
emit_32(3270139970);
emit_32(1119072263);
emit_32(1108933791);
emit_32(3270651937);
emit_32(1119072263);
emit_32(1108944565);
emit_32(3270139970);
emit_32(1119584256);
emit_32(1109285510);
emit_32(3270651937);
emit_32(1119584256);
emit_32(1109292509);
emit_32(3270139970);
emit_32(1120096263);
emit_32(1109319064);
emit_32(3270651937);
emit_32(1120096263);
emit_32(1109325827);
emit_32(3270139970);
emit_32(1120608322);
emit_32(1109471003);
emit_32(3270651937);
emit_32(1120608322);
emit_32(1109645355);
emit_32(3270139970);
emit_32(1121120289);
emit_32(1109582728);
emit_32(3270651937);
emit_32(1121120289);
emit_32(1109627555);
emit_32(3270139970);
emit_32(1121632256);
emit_32(1109427592);
emit_32(3270651937);
emit_32(1121632256);
emit_32(1109566502);
emit_32(3270139970);
emit_32(1122144223);
emit_32(1109250959);
emit_32(3270651937);
emit_32(1122144223);
emit_32(1109470347);
emit_32(3270139970);
emit_32(1122656322);
emit_32(1109132050);
emit_32(3270651937);
emit_32(1122656322);
emit_32(1109358831);
emit_32(3270139970);
emit_32(1123168289);
emit_32(1108892975);
emit_32(3270651937);
emit_32(1123168289);
emit_32(1109156561);
emit_32(3270139970);
emit_32(1123680256);
emit_32(1108663599);
emit_32(3270651937);
emit_32(1123680256);
emit_32(1108641920);
emit_32(3270139970);
emit_32(1124132848);
emit_32(1108204087);
emit_32(3270651937);
emit_32(1124132848);
emit_32(1108219580);
emit_32(3270139970);
emit_32(1124388897);
emit_32(1107681555);
emit_32(3270651937);
emit_32(1124388897);
emit_32(1107796112);
emit_32(3270139970);
emit_32(1124644880);
emit_32(1107061165);
emit_32(3270651937);
emit_32(1124644880);
emit_32(1107364885);
emit_32(3270139970);
emit_32(1124900864);
emit_32(1105549119);
emit_32(3270651937);
emit_32(1124900864);
emit_32(1106177268);
emit_32(3270139970);
emit_32(1125156848);
emit_32(1104447065);
emit_32(3270651937);
emit_32(1125156848);
emit_32(1105288443);
emit_32(3270139970);
emit_32(1125412897);
emit_32(1103204817);
emit_32(3270651937);
emit_32(1125412897);
emit_32(1104753197);
emit_32(3270139970);
emit_32(1125668880);
emit_32(1102168352);
emit_32(3270651937);
emit_32(1125668880);
emit_32(1103375473);
emit_32(3270139970);
emit_32(1125924864);
emit_32(1101100116);
emit_32(3270651937);
emit_32(1125924864);
emit_32(1102075344);
emit_32(3270139970);
emit_32(1126180848);
emit_32(1099752591);
emit_32(3270651937);
emit_32(1126180848);
emit_32(1100964849);
emit_32(3270139970);
emit_32(1126436897);
emit_32(1098425093);
emit_32(3270651937);
emit_32(1126436897);
emit_32(1099792384);
emit_32(3270139970);
emit_32(1126692880);
emit_32(1096597845);
emit_32(3270651937);
emit_32(1126692880);
emit_32(1098450049);
emit_32(3270139970);
emit_32(1126948864);
emit_32(1094429285);
emit_32(3270651937);
emit_32(1126948864);
emit_32(1096338322);
emit_32(3270139970);
emit_32(1127204848);
emit_32(1091900413);
emit_32(3270651937);
emit_32(1127204848);
emit_32(1093954280);
emit_32(3270139970);
emit_32(1127460897);
emit_32(1087591940);
emit_32(3270651937);
emit_32(1127460897);
emit_32(1091524247);
emit_32(3270139970);
emit_32(1127716880);
emit_32(1083181671);
emit_32(3270651937);
emit_32(1127716880);
emit_32(1088518839);
emit_32(3270139970);
emit_32(1127972864);
emit_32(1076995723);
emit_32(3270651937);
emit_32(1127972864);
emit_32(1083884385);
emit_32(3270139970);
emit_32(1128228848);
emit_32(1068649268);
emit_32(3270651937);
emit_32(1128228848);
emit_32(1076931424);
emit_32(3270139970);
emit_32(1128484897);
emit_32(3216283995);
emit_32(3270651937);
emit_32(1128484897);
emit_32(1044557454);
emit_32(3270139970);
emit_32(1128740880);
emit_32(3221805544);
emit_32(3270651937);
emit_32(1128740880);
emit_32(3205427693);
emit_32(3270139970);
emit_32(1128996864);
emit_32(3223037537);
emit_32(3270651937);
emit_32(1128996864);
emit_32(3213113940);
emit_32(3270139970);
emit_32(1129252848);
emit_32(3228540254);
emit_32(3270651937);
emit_32(1129252848);
emit_32(3221962118);
emit_32(3270139970);
emit_32(1129508897);
emit_32(3230275333);
emit_32(3270651937);
emit_32(1129508897);
emit_32(3220483500);
emit_32(3270139970);
emit_32(1129764880);
emit_32(3232612273);
emit_32(3270651937);
emit_32(1129764880);
emit_32(3225420531);
emit_32(3270139970);
emit_32(1130020864);
emit_32(3235277565);
emit_32(3270651937);
emit_32(1130020864);
emit_32(3230173831);
emit_32(3270139970);
emit_32(1130276848);
emit_32(3234218671);
emit_32(3270651937);
emit_32(1130276848);
emit_32(3232043735);
emit_32(3270139970);
emit_32(1130532897);
emit_32(3231045470);
emit_32(3270651937);
emit_32(1130532897);
emit_32(3227363752);
emit_32(3270139970);
emit_32(1130788880);
emit_32(3226755997);
emit_32(3270651937);
emit_32(1130788880);
emit_32(3221899790);
emit_32(3270139970);
emit_32(1131044864);
emit_32(3229128715);
emit_32(3270651937);
emit_32(1131044864);
emit_32(3216845360);
emit_32(3270139970);
emit_32(1131300848);
emit_32(3228788683);
emit_32(3270651937);
emit_32(1131300848);
emit_32(3219415546);
emit_32(3270139970);
emit_32(1131556897);
emit_32(3227247276);
emit_32(3270651937);
emit_32(1131556897);
emit_32(3212863456);
emit_32(3270139970);
emit_32(1131812880);
emit_32(3228672710);
emit_32(3270651937);
emit_32(1131812880);
emit_32(3221056106);
emit_32(3270139970);
emit_32(1132068864);
emit_32(3228908137);
emit_32(3270651937);
emit_32(1132068864);
emit_32(3222457423);
emit_32(3270139970);
emit_32(1081737216);
emit_32(1112094042);
emit_32(3271163904);
emit_32(1090125824);
emit_32(1112019724);
emit_32(3271163904);
emit_32(1094418484);
emit_32(1111438813);
emit_32(3271163904);
emit_32(1098514432);
emit_32(1110812184);
emit_32(3271163904);
emit_32(1100759066);
emit_32(1110106545);
emit_32(3271163904);
emit_32(1102807040);
emit_32(1109946348);
emit_32(3271163904);
emit_32(1104855066);
emit_32(1109673168);
emit_32(3271163904);
emit_32(1106903040);
emit_32(1109472471);
emit_32(3271163904);
emit_32(1108123661);
emit_32(1108974240);
emit_32(3271163904);
emit_32(1109147648);
emit_32(1108497164);
emit_32(3271163904);
emit_32(1110171661);
emit_32(1108102899);
emit_32(3271163904);
emit_32(1111195648);
emit_32(1107538870);
emit_32(3271163904);
emit_32(1112219661);
emit_32(1106915413);
emit_32(3271163904);
emit_32(1113243648);
emit_32(1107679563);
emit_32(3271163904);
emit_32(1114267661);
emit_32(1107902857);
emit_32(3271163904);
emit_32(1115291648);
emit_32(1107930251);
emit_32(3271163904);
emit_32(1116000263);
emit_32(1107983335);
emit_32(3271163904);
emit_32(1116512256);
emit_32(1108070420);
emit_32(3271163904);
emit_32(1117024263);
emit_32(1108274184);
emit_32(3271163904);
emit_32(1117536256);
emit_32(1108723525);
emit_32(3271163904);
emit_32(1118048263);
emit_32(1108785863);
emit_32(3271163904);
emit_32(1118560256);
emit_32(1108864795);
emit_32(3271163904);
emit_32(1119072263);
emit_32(1109018883);
emit_32(3271163904);
emit_32(1119584256);
emit_32(1109278065);
emit_32(3271163904);
emit_32(1120096263);
emit_32(1109410316);
emit_32(3271163904);
emit_32(1120608322);
emit_32(1109373406);
emit_32(3271163904);
emit_32(1121120289);
emit_32(1109364887);
emit_32(3271163904);
emit_32(1121632256);
emit_32(1109384967);
emit_32(3271163904);
emit_32(1122144223);
emit_32(1109332197);
emit_32(3271163904);
emit_32(1122656322);
emit_32(1109067825);
emit_32(3271163904);
emit_32(1123168289);
emit_32(1108783609);
emit_32(3271163904);
emit_32(1123680256);
emit_32(1108563460);
emit_32(3271163904);
emit_32(1124132848);
emit_32(1108020743);
emit_32(3271163904);
emit_32(1124388897);
emit_32(1107280056);
emit_32(3271163904);
emit_32(1124644880);
emit_32(1106630987);
emit_32(3271163904);
emit_32(1124900864);
emit_32(1105186941);
emit_32(3271163904);
emit_32(1125156848);
emit_32(1103741583);
emit_32(3271163904);
emit_32(1125412897);
emit_32(1102190530);
emit_32(3271163904);
emit_32(1125668880);
emit_32(1101340292);
emit_32(3271163904);
emit_32(1125924864);
emit_32(1100447115);
emit_32(3271163904);
emit_32(1126180848);
emit_32(1099367868);
emit_32(3271163904);
emit_32(1126436897);
emit_32(1097589064);
emit_32(3271163904);
emit_32(1126692880);
emit_32(1095164127);
emit_32(3271163904);
emit_32(1126948864);
emit_32(1092722832);
emit_32(3271163904);
emit_32(1127204848);
emit_32(1090145097);
emit_32(3271163904);
emit_32(1127460897);
emit_32(1085202802);
emit_32(3271163904);
emit_32(1127716880);
emit_32(1076722968);
emit_32(3271163904);
emit_32(1127972864);
emit_32(1066002159);
emit_32(3271163904);
emit_32(1128228848);
emit_32(3206002464);
emit_32(3271163904);
emit_32(1128484897);
emit_32(3225385089);
emit_32(3271163904);
emit_32(1128740880);
emit_32(3230254068);
emit_32(3271163904);
emit_32(1128996864);
emit_32(3231283224);
emit_32(3271163904);
emit_32(1129252848);
emit_32(3234493545);
emit_32(3271163904);
emit_32(1129508897);
emit_32(3235258355);
emit_32(3271163904);
emit_32(1129764880);
emit_32(3238361175);
emit_32(3271163904);
emit_32(1130020864);
emit_32(3238992240);
emit_32(3271163904);
emit_32(1130276848);
emit_32(3236249825);
emit_32(3271163904);
emit_32(1130532897);
emit_32(3232841681);
emit_32(3271163904);
emit_32(1130788880);
emit_32(3231925288);
emit_32(3271163904);
emit_32(1131044864);
emit_32(3233336672);
emit_32(3271163904);
emit_32(1131300848);
emit_32(3232958618);
emit_32(3271163904);
emit_32(1131556897);
emit_32(3233414623);
emit_32(3271163904);
emit_32(1131812880);
emit_32(3232723968);
emit_32(3271163904);
emit_32(1132068864);
emit_32(3232386725);
emit_32(3271163904);
emit_32(1081737216);
emit_32(1112138475);
emit_32(3271616496);
emit_32(1090125824);
emit_32(1112117661);
emit_32(3271616496);
emit_32(1094418484);
emit_32(1111516696);
emit_32(3271616496);
emit_32(1098514432);
emit_32(1110701375);
emit_32(3271616496);
emit_32(1100759066);
emit_32(1110259479);
emit_32(3271616496);
emit_32(1102807040);
emit_32(1110148252);
emit_32(3271616496);
emit_32(1104855066);
emit_32(1109941420);
emit_32(3271616496);
emit_32(1106903040);
emit_32(1109408245);
emit_32(3271616496);
emit_32(1108123661);
emit_32(1108791106);
emit_32(3271616496);
emit_32(1109147648);
emit_32(1108280161);
emit_32(3271616496);
emit_32(1110171661);
emit_32(1107557063);
emit_32(3271616496);
emit_32(1111195648);
emit_32(1107163926);
emit_32(3271616496);
emit_32(1112219661);
emit_32(1106741192);
emit_32(3271616496);
emit_32(1113243648);
emit_32(1107262911);
emit_32(3271616496);
emit_32(1114267661);
emit_32(1107611563);
emit_32(3271616496);
emit_32(1115291648);
emit_32(1107823244);
emit_32(3271616496);
emit_32(1116000263);
emit_32(1107902490);
emit_32(3271616496);
emit_32(1116512256);
emit_32(1107980347);
emit_32(3271616496);
emit_32(1117024263);
emit_32(1108314974);
emit_32(3271616496);
emit_32(1117536256);
emit_32(1108495670);
emit_32(3271616496);
emit_32(1118048263);
emit_32(1108580998);
emit_32(3271616496);
emit_32(1118560256);
emit_32(1108703707);
emit_32(3271616496);
emit_32(1119072263);
emit_32(1108940790);
emit_32(3271616496);
emit_32(1119584256);
emit_32(1109066200);
emit_32(3271616496);
emit_32(1120096263);
emit_32(1109329864);
emit_32(3271616496);
emit_32(1120608322);
emit_32(1109220734);
emit_32(3271616496);
emit_32(1121120289);
emit_32(1109504138);
emit_32(3271616496);
emit_32(1121632256);
emit_32(1109526053);
emit_32(3271616496);
emit_32(1122144223);
emit_32(1109328108);
emit_32(3271616496);
emit_32(1122656322);
emit_32(1109031859);
emit_32(3271616496);
emit_32(1123168289);
emit_32(1108646638);
emit_32(3271616496);
emit_32(1123680256);
emit_32(1108345618);
emit_32(3271616496);
emit_32(1124132848);
emit_32(1107854806);
emit_32(3271616496);
emit_32(1124388897);
emit_32(1107061532);
emit_32(3271616496);
emit_32(1124644880);
emit_32(1105828407);
emit_32(3271616496);
emit_32(1124900864);
emit_32(1104345458);
emit_32(3271616496);
emit_32(1125156848);
emit_32(1103146569);
emit_32(3271616496);
emit_32(1125412897);
emit_32(1101554883);
emit_32(3271616496);
emit_32(1125668880);
emit_32(1100465255);
emit_32(3271616496);
emit_32(1125924864);
emit_32(1099197894);
emit_32(3271616496);
emit_32(1126180848);
emit_32(1097396440);
emit_32(3271616496);
emit_32(1126436897);
emit_32(1095592680);
emit_32(3271616496);
emit_32(1126692880);
emit_32(1093988988);
emit_32(3271616496);
emit_32(1126948864);
emit_32(1091770998);
emit_32(3271616496);
emit_32(1127204848);
emit_32(1088099283);
emit_32(3271616496);
emit_32(1127460897);
emit_32(1081294172);
emit_32(3271616496);
emit_32(1127716880);
emit_32(1060903076);
emit_32(3271616496);
emit_32(1127972864);
emit_32(1039720717);
emit_32(3271616496);
emit_32(1128228848);
emit_32(3220556900);
emit_32(3271616496);
emit_32(1128484897);
emit_32(3232451338);
emit_32(3271616496);
emit_32(1128740880);
emit_32(3236043424);
emit_32(3271616496);
emit_32(1128996864);
emit_32(3238289211);
emit_32(3271616496);
emit_32(1129252848);
emit_32(3238868193);
emit_32(3271616496);
emit_32(1129508897);
emit_32(3239430691);
emit_32(3271616496);
emit_32(1129764880);
emit_32(3241001301);
emit_32(3271616496);
emit_32(1130020864);
emit_32(3240828600);
emit_32(3271616496);
emit_32(1130276848);
emit_32(3238957018);
emit_32(3271616496);
emit_32(1130532897);
emit_32(3238262997);
emit_32(3271616496);
emit_32(1130788880);
emit_32(3237575372);
emit_32(3271616496);
emit_32(1131044864);
emit_32(3235372398);
emit_32(3271616496);
emit_32(1131300848);
emit_32(3236771345);
emit_32(3271616496);
emit_32(1131556897);
emit_32(3235935337);
emit_32(3271616496);
emit_32(1131812880);
emit_32(3235730822);
emit_32(3271616496);
emit_32(1132068864);
emit_32(3234015499);
emit_32(3271616496);
emit_32(1081737216);
emit_32(1111780334);
emit_32(3271872545);
emit_32(1090125824);
emit_32(1111692673);
emit_32(3271872545);
emit_32(1094418484);
emit_32(1111222256);
emit_32(3271872545);
emit_32(1098514432);
emit_32(1110566135);
emit_32(3271872545);
emit_32(1100759066);
emit_32(1110232950);
emit_32(3271872545);
emit_32(1102807040);
emit_32(1109993665);
emit_32(3271872545);
emit_32(1104855066);
emit_32(1109851950);
emit_32(3271872545);
emit_32(1106903040);
emit_32(1109283098);
emit_32(3271872545);
emit_32(1108123661);
emit_32(1108493022);
emit_32(3271872545);
emit_32(1109147648);
emit_32(1107705515);
emit_32(3271872545);
emit_32(1110171661);
emit_32(1107275494);
emit_32(3271872545);
emit_32(1111195648);
emit_32(1106747326);
emit_32(3271872545);
emit_32(1112219661);
emit_32(1106557639);
emit_32(3271872545);
emit_32(1113243648);
emit_32(1107170427);
emit_32(3271872545);
emit_32(1114267661);
emit_32(1107580499);
emit_32(3271872545);
emit_32(1115291648);
emit_32(1107671725);
emit_32(3271872545);
emit_32(1116000263);
emit_32(1107801250);
emit_32(3271872545);
emit_32(1116512256);
emit_32(1107801355);
emit_32(3271872545);
emit_32(1117024263);
emit_32(1107771313);
emit_32(3271872545);
emit_32(1117536256);
emit_32(1108068427);
emit_32(3271872545);
emit_32(1118048263);
emit_32(1108248048);
emit_32(3271872545);
emit_32(1118560256);
emit_32(1108300713);
emit_32(3271872545);
emit_32(1119072263);
emit_32(1108561232);
emit_32(3271872545);
emit_32(1119584256);
emit_32(1108758521);
emit_32(3271872545);
emit_32(1120096263);
emit_32(1109143559);
emit_32(3271872545);
emit_32(1120608322);
emit_32(1109106360);
emit_32(3271872545);
emit_32(1121120289);
emit_32(1109227104);
emit_32(3271872545);
emit_32(1121632256);
emit_32(1109385701);
emit_32(3271872545);
emit_32(1122144223);
emit_32(1109080854);
emit_32(3271872545);
emit_32(1122656322);
emit_32(1108826600);
emit_32(3271872545);
emit_32(1123168289);
emit_32(1108564194);
emit_32(3271872545);
emit_32(1123680256);
emit_32(1108304829);
emit_32(3271872545);
emit_32(1124132848);
emit_32(1107781275);
emit_32(3271872545);
emit_32(1124388897);
emit_32(1107099700);
emit_32(3271872545);
emit_32(1124644880);
emit_32(1105344908);
emit_32(3271872545);
emit_32(1124900864);
emit_32(1103617904);
emit_32(3271872545);
emit_32(1125156848);
emit_32(1102172966);
emit_32(3271872545);
emit_32(1125412897);
emit_32(1100636435);
emit_32(3271872545);
emit_32(1125668880);
emit_32(1099511418);
emit_32(3271872545);
emit_32(1125924864);
emit_32(1097613076);
emit_32(3271872545);
emit_32(1126180848);
emit_32(1095954124);
emit_32(3271872545);
emit_32(1126436897);
emit_32(1093684062);
emit_32(3271872545);
emit_32(1126692880);
emit_32(1091734235);
emit_32(3271872545);
emit_32(1126948864);
emit_32(1088057634);
emit_32(3271872545);
emit_32(1127204848);
emit_32(1082772853);
emit_32(3271872545);
emit_32(1127460897);
emit_32(1073941095);
emit_32(3271872545);
emit_32(1127716880);
emit_32(3208567734);
emit_32(3271872545);
emit_32(1127972864);
emit_32(3214907844);
emit_32(3271872545);
emit_32(1128228848);
emit_32(3228392866);
emit_32(3271872545);
emit_32(1128484897);
emit_32(3236333837);
emit_32(3271872545);
emit_32(1128740880);
emit_32(3239712465);
emit_32(3271872545);
emit_32(1128996864);
emit_32(3240772082);
emit_32(3271872545);
emit_32(1129252848);
emit_32(3241312099);
emit_32(3271872545);
emit_32(1129508897);
emit_32(3242196782);
emit_32(3271872545);
emit_32(1129764880);
emit_32(3243389118);
emit_32(3271872545);
emit_32(1130020864);
emit_32(3242673360);
emit_32(3271872545);
emit_32(1130276848);
emit_32(3241675955);
emit_32(3271872545);
emit_32(1130532897);
emit_32(3241634116);
emit_32(3271872545);
emit_32(1130788880);
emit_32(3240687986);
emit_32(3271872545);
emit_32(1131044864);
emit_32(3240058075);
emit_32(3271872545);
emit_32(1131300848);
emit_32(3239722845);
emit_32(3271872545);
emit_32(1131556897);
emit_32(3238832237);
emit_32(3271872545);
emit_32(1131812880);
emit_32(3238354108);
emit_32(3271872545);
emit_32(1132068864);
emit_32(3234493083);
emit_32(3271872545);
emit_32(1081737216);
emit_32(1111464346);
emit_32(3272128528);
emit_32(1090125824);
emit_32(1111239505);
emit_32(3272128528);
emit_32(1094418484);
emit_32(1110994767);
emit_32(3272128528);
emit_32(1098514432);
emit_32(1110132890);
emit_32(3272128528);
emit_32(1100759066);
emit_32(1109887445);
emit_32(3272128528);
emit_32(1102807040);
emit_32(1109762271);
emit_32(3272128528);
emit_32(1104855066);
emit_32(1109309469);
emit_32(3272128528);
emit_32(1106903040);
emit_32(1108918429);
emit_32(3272128528);
emit_32(1108123661);
emit_32(1108186287);
emit_32(3272128528);
emit_32(1109147648);
emit_32(1107206970);
emit_32(3272128528);
emit_32(1110171661);
emit_32(1106779308);
emit_32(3272128528);
emit_32(1111195648);
emit_32(1105875436);
emit_32(3272128528);
emit_32(1112219661);
emit_32(1105956962);
emit_32(3272128528);
emit_32(1113243648);
emit_32(1106440618);
emit_32(3272128528);
emit_32(1114267661);
emit_32(1107100225);
emit_32(3272128528);
emit_32(1115291648);
emit_32(1107233499);
emit_32(3272128528);
emit_32(1116000263);
emit_32(1107508645);
emit_32(3272128528);
emit_32(1116512256);
emit_32(1107671935);
emit_32(3272128528);
emit_32(1117024263);
emit_32(1107608207);
emit_32(3272128528);
emit_32(1117536256);
emit_32(1107752387);
emit_32(3272128528);
emit_32(1118048263);
emit_32(1108110134);
emit_32(3272128528);
emit_32(1118560256);
emit_32(1108408690);
emit_32(3272128528);
emit_32(1119072263);
emit_32(1108474017);
emit_32(3272128528);
emit_32(1119584256);
emit_32(1108395164);
emit_32(3272128528);
emit_32(1120096263);
emit_32(1108750369);
emit_32(3272128528);
emit_32(1120608322);
emit_32(1108885688);
emit_32(3272128528);
emit_32(1121120289);
emit_32(1109040851);
emit_32(3272128528);
emit_32(1121632256);
emit_32(1108986665);
emit_32(3272128528);
emit_32(1122144223);
emit_32(1108827727);
emit_32(3272128528);
emit_32(1122656322);
emit_32(1108753462);
emit_32(3272128528);
emit_32(1123168289);
emit_32(1108679852);
emit_32(3272128528);
emit_32(1123680256);
emit_32(1108175513);
emit_32(3272128528);
emit_32(1124132848);
emit_32(1107583015);
emit_32(3272128528);
emit_32(1124388897);
emit_32(1106521358);
emit_32(3272128528);
emit_32(1124644880);
emit_32(1104987134);
emit_32(3272128528);
emit_32(1124900864);
emit_32(1103342862);
emit_32(3272128528);
emit_32(1125156848);
emit_32(1101546652);
emit_32(3272128528);
emit_32(1125412897);
emit_32(1099964770);
emit_32(3272128528);
emit_32(1125668880);
emit_32(1098242746);
emit_32(3272128528);
emit_32(1125924864);
emit_32(1096185125);
emit_32(3272128528);
emit_32(1126180848);
emit_32(1094379792);
emit_32(3272128528);
emit_32(1126436897);
emit_32(1092287841);
emit_32(3272128528);
emit_32(1126692880);
emit_32(1089612693);
emit_32(3272128528);
emit_32(1126948864);
emit_32(1083167159);
emit_32(3272128528);
emit_32(1127204848);
emit_32(1069990774);
emit_32(3272128528);
emit_32(1127460897);
emit_32(1049416773);
emit_32(3272128528);
emit_32(1127716880);
emit_32(3222071379);
emit_32(3272128528);
emit_32(1127972864);
emit_32(3226126181);
emit_32(3272128528);
emit_32(1128228848);
emit_32(3233267570);
emit_32(3272128528);
emit_32(1128484897);
emit_32(3238358344);
emit_32(3272128528);
emit_32(1128740880);
emit_32(3242189233);
emit_32(3272128528);
emit_32(1128996864);
emit_32(3244019627);
emit_32(3272128528);
emit_32(1129252848);
emit_32(3244520951);
emit_32(3272128528);
emit_32(1129508897);
emit_32(3245091062);
emit_32(3272128528);
emit_32(1129764880);
emit_32(3245124302);
emit_32(3272128528);
emit_32(1130020864);
emit_32(3245824436);
emit_32(3272128528);
emit_32(1130276848);
emit_32(3245103854);
emit_32(3272128528);
emit_32(1130532897);
emit_32(3245100184);
emit_32(3272128528);
emit_32(1130788880);
emit_32(3243298207);
emit_32(3272128528);
emit_32(1131044864);
emit_32(3242985731);
emit_32(3272128528);
emit_32(1131300848);
emit_32(3242330895);
emit_32(3272128528);
emit_32(1131556897);
emit_32(3242176545);
emit_32(3272128528);
emit_32(1131812880);
emit_32(3239330856);
emit_32(3272128528);
emit_32(1132068864);
emit_32(3234703260);
emit_32(3272128528);
emit_32(1081737216);
emit_32(1111298697);
emit_32(3272384512);
emit_32(1090125824);
emit_32(1111058363);
emit_32(3272384512);
emit_32(1094418484);
emit_32(1110735087);
emit_32(3272384512);
emit_32(1098514432);
emit_32(1110169171);
emit_32(3272384512);
emit_32(1100759066);
emit_32(1109403894);
emit_32(3272384512);
emit_32(1102807040);
emit_32(1108912557);
emit_32(3272384512);
emit_32(1104855066);
emit_32(1108673482);
emit_32(3272384512);
emit_32(1106903040);
emit_32(1108260081);
emit_32(3272384512);
emit_32(1108123661);
emit_32(1107647870);
emit_32(3272384512);
emit_32(1109147648);
emit_32(1106643832);
emit_32(3272384512);
emit_32(1110171661);
emit_32(1105736919);
emit_32(3272384512);
emit_32(1111195648);
emit_32(1105100643);
emit_32(3272384512);
emit_32(1112219661);
emit_32(1104911375);
emit_32(3272384512);
emit_32(1113243648);
emit_32(1105299348);
emit_32(3272384512);
emit_32(1114267661);
emit_32(1106150267);
emit_32(3272384512);
emit_32(1115291648);
emit_32(1106320766);
emit_32(3272384512);
emit_32(1116000263);
emit_32(1106620187);
emit_32(3272384512);
emit_32(1116512256);
emit_32(1107259294);
emit_32(3272384512);
emit_32(1117024263);
emit_32(1107471604);
emit_32(3272384512);
emit_32(1117536256);
emit_32(1107538267);
emit_32(3272384512);
emit_32(1118048263);
emit_32(1108219553);
emit_32(3272384512);
emit_32(1118560256);
emit_32(1108391625);
emit_32(3272384512);
emit_32(1119072263);
emit_32(1108309180);
emit_32(3272384512);
emit_32(1119584256);
emit_32(1108147516);
emit_32(3272384512);
emit_32(1120096263);
emit_32(1108248730);
emit_32(3272384512);
emit_32(1120608322);
emit_32(1108495801);
emit_32(3272384512);
emit_32(1121120289);
emit_32(1108672669);
emit_32(3272384512);
emit_32(1121632256);
emit_32(1108534860);
emit_32(3272384512);
emit_32(1122144223);
emit_32(1108457213);
emit_32(3272384512);
emit_32(1122656322);
emit_32(1108523588);
emit_32(3272384512);
emit_32(1123168289);
emit_32(1108457397);
emit_32(3272384512);
emit_32(1123680256);
emit_32(1108144502);
emit_32(3272384512);
emit_32(1124132848);
emit_32(1107554966);
emit_32(3272384512);
emit_32(1124388897);
emit_32(1106329469);
emit_32(3272384512);
emit_32(1124644880);
emit_32(1104699510);
emit_32(3272384512);
emit_32(1124900864);
emit_32(1103026140);
emit_32(3272384512);
emit_32(1125156848);
emit_32(1101214148);
emit_32(3272384512);
emit_32(1125412897);
emit_32(1099233965);
emit_32(3272384512);
emit_32(1125668880);
emit_32(1095822737);
emit_32(3272384512);
emit_32(1125924864);
emit_32(1093805801);
emit_32(3272384512);
emit_32(1126180848);
emit_32(1091936012);
emit_32(3272384512);
emit_32(1126436897);
emit_32(1089180931);
emit_32(3272384512);
emit_32(1126692880);
emit_32(1084894877);
emit_32(3272384512);
emit_32(1126948864);
emit_32(1077040728);
emit_32(3272384512);
emit_32(1127204848);
emit_32(1063155099);
emit_32(3272384512);
emit_32(1127460897);
emit_32(3215476340);
emit_32(3272384512);
emit_32(1127716880);
emit_32(3228112477);
emit_32(3272384512);
emit_32(1127972864);
emit_32(3232515133);
emit_32(3272384512);
emit_32(1128228848);
emit_32(3238089206);
emit_32(3272384512);
emit_32(1128484897);
emit_32(3241062852);
emit_32(3272384512);
emit_32(1128740880);
emit_32(3244581139);
emit_32(3272384512);
emit_32(1128996864);
emit_32(3246469677);
emit_32(3272384512);
emit_32(1129252848);
emit_32(3246870181);
emit_32(3272384512);
emit_32(1129508897);
emit_32(3246893302);
emit_32(3272384512);
emit_32(1129764880);
emit_32(3247231363);
emit_32(3272384512);
emit_32(1130020864);
emit_32(3247263344);
emit_32(3272384512);
emit_32(1130276848);
emit_32(3246998946);
emit_32(3272384512);
emit_32(1130532897);
emit_32(3246499404);
emit_32(3272384512);
emit_32(1130788880);
emit_32(3246148551);
emit_32(3272384512);
emit_32(1131044864);
emit_32(3245400077);
emit_32(3272384512);
emit_32(1131300848);
emit_32(3245118115);
emit_32(3272384512);
emit_32(1131556897);
emit_32(3243091847);
emit_32(3272384512);
emit_32(1131812880);
emit_32(3239267260);
emit_32(3272384512);
emit_32(1132068864);
emit_32(3232983029);
emit_32(3272384512);
emit_32(1081737216);
emit_32(1110766990);
emit_32(3272640496);
emit_32(1090125824);
emit_32(1110715348);
emit_32(3272640496);
emit_32(1094418484);
emit_32(1110472891);
emit_32(3272640496);
emit_32(1098514432);
emit_32(1110034088);
emit_32(3272640496);
emit_32(1100759066);
emit_32(1109323153);
emit_32(3272640496);
emit_32(1102807040);
emit_32(1108619533);
emit_32(3272640496);
emit_32(1104855066);
emit_32(1107915545);
emit_32(3272640496);
emit_32(1106903040);
emit_32(1107624277);
emit_32(3272640496);
emit_32(1108123661);
emit_32(1106832051);
emit_32(3272640496);
emit_32(1109147648);
emit_32(1105866313);
emit_32(3272640496);
emit_32(1110171661);
emit_32(1104840439);
emit_32(3272640496);
emit_32(1111195648);
emit_32(1104739880);
emit_32(3272640496);
emit_32(1112219661);
emit_32(1104492573);
emit_32(3272640496);
emit_32(1113243648);
emit_32(1104325483);
emit_32(3272640496);
emit_32(1114267661);
emit_32(1105104785);
emit_32(3272640496);
emit_32(1115291648);
emit_32(1105118154);
emit_32(3272640496);
emit_32(1116000263);
emit_32(1105110290);
emit_32(3272640496);
emit_32(1116512256);
emit_32(1106190585);
emit_32(3272640496);
emit_32(1117024263);
emit_32(1106806938);
emit_32(3272640496);
emit_32(1117536256);
emit_32(1107447723);
emit_32(3272640496);
emit_32(1118048263);
emit_32(1107960450);
emit_32(3272640496);
emit_32(1118560256);
emit_32(1108120882);
emit_32(3272640496);
emit_32(1119072263);
emit_32(1108021058);
emit_32(3272640496);
emit_32(1119584256);
emit_32(1107844897);
emit_32(3272640496);
emit_32(1120096263);
emit_32(1107897457);
emit_32(3272640496);
emit_32(1120608322);
emit_32(1108031465);
emit_32(3272640496);
emit_32(1121120289);
emit_32(1108410263);
emit_32(3272640496);
emit_32(1121632256);
emit_32(1108301604);
emit_32(3272640496);
emit_32(1122144223);
emit_32(1108298380);
emit_32(3272640496);
emit_32(1122656322);
emit_32(1108279165);
emit_32(3272640496);
emit_32(1123168289);
emit_32(1108038648);
emit_32(3272640496);
emit_32(1123680256);
emit_32(1107908388);
emit_32(3272640496);
emit_32(1124132848);
emit_32(1107420617);
emit_32(3272640496);
emit_32(1124388897);
emit_32(1106088663);
emit_32(3272640496);
emit_32(1124644880);
emit_32(1104288416);
emit_32(3272640496);
emit_32(1124900864);
emit_32(1102764101);
emit_32(3272640496);
emit_32(1125156848);
emit_32(1100664904);
emit_32(3272640496);
emit_32(1125412897);
emit_32(1097290744);
emit_32(3272640496);
emit_32(1125668880);
emit_32(1093918838);
emit_32(3272640496);
emit_32(1125924864);
emit_32(1092359438);
emit_32(3272640496);
emit_32(1126180848);
emit_32(1090438216);
emit_32(3272640496);
emit_32(1126436897);
emit_32(1085633179);
emit_32(3272640496);
emit_32(1126692880);
emit_32(1082298330);
emit_32(3272640496);
emit_32(1126948864);
emit_32(1071317684);
emit_32(3272640496);
emit_32(1127204848);
emit_32(3211416991);
emit_32(3272640496);
emit_32(1127460897);
emit_32(3224008099);
emit_32(3272640496);
emit_32(1127716880);
emit_32(3232930936);
emit_32(3272640496);
emit_32(1127972864);
emit_32(3237569689);
emit_32(3272640496);
emit_32(1128228848);
emit_32(3240285648);
emit_32(3272640496);
emit_32(1128484897);
emit_32(3243818405);
emit_32(3272640496);
emit_32(1128740880);
emit_32(3246427577);
emit_32(3272640496);
emit_32(1128996864);
emit_32(3247046918);
emit_32(3272640496);
emit_32(1129252848);
emit_32(3247819509);
emit_32(3272640496);
emit_32(1129508897);
emit_32(3247822340);
emit_32(3272640496);
emit_32(1129764880);
emit_32(3248121446);
emit_32(3272640496);
emit_32(1130020864);
emit_32(3248655224);
emit_32(3272640496);
emit_32(1130276848);
emit_32(3248219541);
emit_32(3272640496);
emit_32(1130532897);
emit_32(3247726395);
emit_32(3272640496);
emit_32(1130788880);
emit_32(3247190835);
emit_32(3272640496);
emit_32(1131044864);
emit_32(3246657425);
emit_32(3272640496);
emit_32(1131300848);
emit_32(3245446844);
emit_32(3272640496);
emit_32(1131556897);
emit_32(3243320646);
emit_32(3272640496);
emit_32(1131812880);
emit_32(3240090015);
emit_32(3272640496);
emit_32(1132068864);
emit_32(3233059449);
emit_32(3272640496);
emit_32(1081737216);
emit_32(1110289075);
emit_32(3272896545);
emit_32(1090125824);
emit_32(1110184899);
emit_32(3272896545);
emit_32(1094418484);
emit_32(1110081326);
emit_32(3272896545);
emit_32(1098514432);
emit_32(1109624907);
emit_32(3272896545);
emit_32(1100759066);
emit_32(1109048007);
emit_32(3272896545);
emit_32(1102807040);
emit_32(1108349472);
emit_32(3272896545);
emit_32(1104855066);
emit_32(1107549330);
emit_32(3272896545);
emit_32(1106903040);
emit_32(1106981421);
emit_32(3272896545);
emit_32(1108123661);
emit_32(1105990831);
emit_32(3272896545);
emit_32(1109147648);
emit_32(1104915359);
emit_32(3272896545);
emit_32(1110171661);
emit_32(1103693873);
emit_32(3272896545);
emit_32(1111195648);
emit_32(1103863900);
emit_32(3272896545);
emit_32(1112219661);
emit_32(1103998799);
emit_32(3272896545);
emit_32(1113243648);
emit_32(1104012640);
emit_32(3272896545);
emit_32(1114267661);
emit_32(1104234834);
emit_32(3272896545);
emit_32(1115291648);
emit_32(1104799230);
emit_32(3272896545);
emit_32(1116000263);
emit_32(1104865395);
emit_32(3272896545);
emit_32(1116512256);
emit_32(1105083079);
emit_32(3272896545);
emit_32(1117024263);
emit_32(1105770892);
emit_32(3272896545);
emit_32(1117536256);
emit_32(1106981264);
emit_32(3272896545);
emit_32(1118048263);
emit_32(1107541964);
emit_32(3272896545);
emit_32(1118560256);
emit_32(1107753173);
emit_32(3272896545);
emit_32(1119072263);
emit_32(1107932348);
emit_32(3272896545);
emit_32(1119584256);
emit_32(1107696026);
emit_32(3272896545);
emit_32(1120096263);
emit_32(1107774171);
emit_32(3272896545);
emit_32(1120608322);
emit_32(1107999483);
emit_32(3272896545);
emit_32(1121120289);
emit_32(1108089897);
emit_32(3272896545);
emit_32(1121632256);
emit_32(1107942887);
emit_32(3272896545);
emit_32(1122144223);
emit_32(1108011018);
emit_32(3272896545);
emit_32(1122656322);
emit_32(1107841201);
emit_32(3272896545);
emit_32(1123168289);
emit_32(1107624487);
emit_32(3272896545);
emit_32(1123680256);
emit_32(1107346430);
emit_32(3272896545);
emit_32(1124132848);
emit_32(1106655681);
emit_32(3272896545);
emit_32(1124388897);
emit_32(1105650778);
emit_32(3272896545);
emit_32(1124644880);
emit_32(1103819755);
emit_32(3272896545);
emit_32(1124900864);
emit_32(1101832441);
emit_32(3272896545);
emit_32(1125156848);
emit_32(1099587597);
emit_32(3272896545);
emit_32(1125412897);
emit_32(1095963771);
emit_32(3272896545);
emit_32(1125668880);
emit_32(1092682462);
emit_32(3272896545);
emit_32(1125924864);
emit_32(1090858999);
emit_32(3272896545);
emit_32(1126180848);
emit_32(1087538064);
emit_32(3272896545);
emit_32(1126436897);
emit_32(1082518866);
emit_32(3272896545);
emit_32(1126692880);
emit_32(1074794217);
emit_32(3272896545);
emit_32(1126948864);
emit_32(1055151058);
emit_32(3272896545);
emit_32(1127204848);
emit_32(3219019520);
emit_32(3272896545);
emit_32(1127460897);
emit_32(3227302431);
emit_32(3272896545);
emit_32(1127716880);
emit_32(3235425456);
emit_32(3272896545);
emit_32(1127972864);
emit_32(3239324219);
emit_32(3272896545);
emit_32(1128228848);
emit_32(3242595451);
emit_32(3272896545);
emit_32(1128484897);
emit_32(3244970790);
emit_32(3272896545);
emit_32(1128740880);
emit_32(3246227194);
emit_32(3272896545);
emit_32(1128996864);
emit_32(3247085558);
emit_32(3272896545);
emit_32(1129252848);
emit_32(3248170310);
emit_32(3272896545);
emit_32(1129508897);
emit_32(3248369697);
emit_32(3272896545);
emit_32(1129764880);
emit_32(3248556238);
emit_32(3272896545);
emit_32(1130020864);
emit_32(3248791329);
emit_32(3272896545);
emit_32(1130276848);
emit_32(3248863052);
emit_32(3272896545);
emit_32(1130532897);
emit_32(3248823992);
emit_32(3272896545);
emit_32(1130788880);
emit_32(3248329641);
emit_32(3272896545);
emit_32(1131044864);
emit_32(3247178567);
emit_32(3272896545);
emit_32(1131300848);
emit_32(3244969427);
emit_32(3272896545);
emit_32(1131556897);
emit_32(3242521421);
emit_32(3272896545);
emit_32(1131812880);
emit_32(3240271177);
emit_32(3272896545);
emit_32(1132068864);
emit_32(3235475683);
emit_32(3272896545);
emit_32(1081737216);
emit_32(1110106754);
emit_32(3273152528);
emit_32(1090125824);
emit_32(1109851190);
emit_32(3273152528);
emit_32(1094418484);
emit_32(1109531007);
emit_32(3273152528);
emit_32(1098514432);
emit_32(1109268234);
emit_32(3273152528);
emit_32(1100759066);
emit_32(1108527468);
emit_32(3273152528);
emit_32(1102807040);
emit_32(1107822510);
emit_32(3273152528);
emit_32(1104855066);
emit_32(1106879657);
emit_32(3273152528);
emit_32(1106903040);
emit_32(1105644854);
emit_32(3273152528);
emit_32(1108123661);
emit_32(1104812442);
emit_32(3273152528);
emit_32(1109147648);
emit_32(1103599816);
emit_32(3273152528);
emit_32(1110171661);
emit_32(1102886837);
emit_32(3273152528);
emit_32(1111195648);
emit_32(1102824551);
emit_32(3273152528);
emit_32(1112219661);
emit_32(1103195800);
emit_32(3273152528);
emit_32(1113243648);
emit_32(1103637250);
emit_32(3273152528);
emit_32(1114267661);
emit_32(1103975626);
emit_32(3273152528);
emit_32(1115291648);
emit_32(1103996545);
emit_32(3273152528);
emit_32(1116000263);
emit_32(1104513755);
emit_32(3273152528);
emit_32(1116512256);
emit_32(1104583642);
emit_32(3273152528);
emit_32(1117024263);
emit_32(1105332745);
emit_32(3273152528);
emit_32(1117536256);
emit_32(1106424522);
emit_32(3273152528);
emit_32(1118048263);
emit_32(1107096712);
emit_32(3273152528);
emit_32(1118560256);
emit_32(1107537140);
emit_32(3273152528);
emit_32(1119072263);
emit_32(1107484004);
emit_32(3273152528);
emit_32(1119584256);
emit_32(1107558426);
emit_32(3273152528);
emit_32(1120096263);
emit_32(1107936071);
emit_32(3273152528);
emit_32(1120608322);
emit_32(1108104000);
emit_32(3273152528);
emit_32(1121120289);
emit_32(1107929150);
emit_32(3273152528);
emit_32(1121632256);
emit_32(1107694584);
emit_32(3273152528);
emit_32(1122144223);
emit_32(1107539263);
emit_32(3273152528);
emit_32(1122656322);
emit_32(1107466886);
emit_32(3273152528);
emit_32(1123168289);
emit_32(1107473859);
emit_32(3273152528);
emit_32(1123680256);
emit_32(1106712723);
emit_32(3273152528);
emit_32(1124132848);
emit_32(1105424338);
emit_32(3273152528);
emit_32(1124388897);
emit_32(1104440931);
emit_32(3273152528);
emit_32(1124644880);
emit_32(1103144052);
emit_32(3273152528);
emit_32(1124900864);
emit_32(1101107560);
emit_32(3273152528);
emit_32(1125156848);
emit_32(1099132725);
emit_32(3273152528);
emit_32(1125412897);
emit_32(1095577685);
emit_32(3273152528);
emit_32(1125668880);
emit_32(1092369556);
emit_32(3273152528);
emit_32(1125924864);
emit_32(1088719809);
emit_32(3273152528);
emit_32(1126180848);
emit_32(1083696669);
emit_32(3273152528);
emit_32(1126436897);
emit_32(1075000451);
emit_32(3273152528);
emit_32(1126692880);
emit_32(1069530827);
emit_32(3273152528);
emit_32(1126948864);
emit_32(3206582150);
emit_32(3273152528);
emit_32(1127204848);
emit_32(3221141921);
emit_32(3273152528);
emit_32(1127460897);
emit_32(3231308055);
emit_32(3273152528);
emit_32(1127716880);
emit_32(3238013027);
emit_32(3273152528);
emit_32(1127972864);
emit_32(3241648692);
emit_32(3273152528);
emit_32(1128228848);
emit_32(3243113762);
emit_32(3273152528);
emit_32(1128484897);
emit_32(3244161289);
emit_32(3273152528);
emit_32(1128740880);
emit_32(3245421258);
emit_32(3273152528);
emit_32(1128996864);
emit_32(3246875424);
emit_32(3273152528);
emit_32(1129252848);
emit_32(3247610685);
emit_32(3273152528);
emit_32(1129508897);
emit_32(3248309299);
emit_32(3273152528);
emit_32(1129764880);
emit_32(3248981069);
emit_32(3273152528);
emit_32(1130020864);
emit_32(3249435889);
emit_32(3273152528);
emit_32(1130276848);
emit_32(3249270057);
emit_32(3273152528);
emit_32(1130532897);
emit_32(3249259047);
emit_32(3273152528);
emit_32(1130788880);
emit_32(3248161974);
emit_32(3273152528);
emit_32(1131044864);
emit_32(3246939072);
emit_32(3273152528);
emit_32(1131300848);
emit_32(3244307041);
emit_32(3273152528);
emit_32(1131556897);
emit_32(3241397138);
emit_32(3273152528);
emit_32(1131812880);
emit_32(3239169606);
emit_32(3273152528);
emit_32(1132068864);
emit_32(3235418829);
emit_32(3273152528);
emit_32(1081737216);
emit_32(1109848700);
emit_32(3273408512);
emit_32(1090125824);
emit_32(1109616073);
emit_32(3273408512);
emit_32(1094418484);
emit_32(1109191190);
emit_32(3273408512);
emit_32(1098514432);
emit_32(1108732386);
emit_32(3273408512);
emit_32(1100759066);
emit_32(1108353876);
emit_32(3273408512);
emit_32(1102807040);
emit_32(1107813099);
emit_32(3273408512);
emit_32(1104855066);
emit_32(1106931404);
emit_32(3273408512);
emit_32(1106903040);
emit_32(1105711700);
emit_32(3273408512);
emit_32(1108123661);
emit_32(1104199496);
emit_32(3273408512);
emit_32(1109147648);
emit_32(1102966738);
emit_32(3273408512);
emit_32(1110171661);
emit_32(1102284115);
emit_32(3273408512);
emit_32(1111195648);
emit_32(1102118283);
emit_32(3273408512);
emit_32(1112219661);
emit_32(1102403024);
emit_32(3273408512);
emit_32(1113243648);
emit_32(1102981471);
emit_32(3273408512);
emit_32(1114267661);
emit_32(1103432253);
emit_32(3273408512);
emit_32(1115291648);
emit_32(1103738700);
emit_32(3273408512);
emit_32(1116000263);
emit_32(1104470396);
emit_32(3273408512);
emit_32(1116512256);
emit_32(1104866915);
emit_32(3273408512);
emit_32(1117024263);
emit_32(1105262543);
emit_32(3273408512);
emit_32(1117536256);
emit_32(1106001527);
emit_32(3273408512);
emit_32(1118048263);
emit_32(1106476637);
emit_32(3273408512);
emit_32(1118560256);
emit_32(1106576409);
emit_32(3273408512);
emit_32(1119072263);
emit_32(1106461537);
emit_32(3273408512);
emit_32(1119584256);
emit_32(1107353561);
emit_32(3273408512);
emit_32(1120096263);
emit_32(1107634841);
emit_32(3273408512);
emit_32(1120608322);
emit_32(1107769845);
emit_32(3273408512);
emit_32(1121120289);
emit_32(1107434380);
emit_32(3273408512);
emit_32(1121632256);
emit_32(1107315943);
emit_32(3273408512);
emit_32(1122144223);
emit_32(1106787592);
emit_32(3273408512);
emit_32(1122656322);
emit_32(1106765100);
emit_32(3273408512);
emit_32(1123168289);
emit_32(1106762845);
emit_32(3273408512);
emit_32(1123680256);
emit_32(1105758834);
emit_32(3273408512);
emit_32(1124132848);
emit_32(1104621758);
emit_32(3273408512);
emit_32(1124388897);
emit_32(1103142375);
emit_32(3273408512);
emit_32(1124644880);
emit_32(1101953080);
emit_32(3273408512);
emit_32(1124900864);
emit_32(1100385039);
emit_32(3273408512);
emit_32(1125156848);
emit_32(1097070857);
emit_32(3273408512);
emit_32(1125412897);
emit_32(1093584657);
emit_32(3273408512);
emit_32(1125668880);
emit_32(1091629985);
emit_32(3273408512);
emit_32(1125924864);
emit_32(1088130111);
emit_32(3273408512);
emit_32(1126180848);
emit_32(1080062598);
emit_32(3273408512);
emit_32(1126436897);
emit_32(1066603370);
emit_32(3273408512);
emit_32(1126692880);
emit_32(3206794499);
emit_32(3273408512);
emit_32(1126948864);
emit_32(3224322043);
emit_32(3273408512);
emit_32(1127204848);
emit_32(3229663824);
emit_32(3273408512);
emit_32(1127460897);
emit_32(3234125914);
emit_32(3273408512);
emit_32(1127716880);
emit_32(3238854457);
emit_32(3273408512);
emit_32(1127972864);
emit_32(3240458138);
emit_32(3273408512);
emit_32(1128228848);
emit_32(3241347121);
emit_32(3273408512);
emit_32(1128484897);
emit_32(3243399080);
emit_32(3273408512);
emit_32(1128740880);
emit_32(3244860480);
emit_32(3273408512);
emit_32(1128996864);
emit_32(3246331213);
emit_32(3273408512);
emit_32(1129252848);
emit_32(3247173534);
emit_32(3273408512);
emit_32(1129508897);
emit_32(3247995565);
emit_32(3273408512);
emit_32(1129764880);
emit_32(3249070460);
emit_32(3273408512);
emit_32(1130020864);
emit_32(3249215740);
emit_32(3273408512);
emit_32(1130276848);
emit_32(3249090383);
emit_32(3273408512);
emit_32(1130532897);
emit_32(3248637136);
emit_32(3273408512);
emit_32(1130788880);
emit_32(3247527900);
emit_32(3273408512);
emit_32(1131044864);
emit_32(3246097695);
emit_32(3273408512);
emit_32(1131300848);
emit_32(3243725711);
emit_32(3273408512);
emit_32(1131556897);
emit_32(3240252198);
emit_32(3273408512);
emit_32(1131812880);
emit_32(3238101369);
emit_32(3273408512);
emit_32(1132068864);
emit_32(3232685716);
emit_32(3273408512);
emit_32(1081737216);
emit_32(1109518057);
emit_32(3273664496);
emit_32(1090125824);
emit_32(1109209645);
emit_32(3273664496);
emit_32(1094418484);
emit_32(1108711100);
emit_32(3273664496);
emit_32(1098514432);
emit_32(1108394482);
emit_32(3273664496);
emit_32(1100759066);
emit_32(1107902805);
emit_32(3273664496);
emit_32(1102807040);
emit_32(1107530351);
emit_32(3273664496);
emit_32(1104855066);
emit_32(1106484396);
emit_32(3273664496);
emit_32(1106903040);
emit_32(1105503610);
emit_32(3273664496);
emit_32(1108123661);
emit_32(1104089658);
emit_32(3273664496);
emit_32(1109147648);
emit_32(1103023571);
emit_32(3273664496);
emit_32(1110171661);
emit_32(1102213651);
emit_32(3273664496);
emit_32(1111195648);
emit_32(1101760718);
emit_32(3273664496);
emit_32(1112219661);
emit_32(1102038119);
emit_32(3273664496);
emit_32(1113243648);
emit_32(1102582016);
emit_32(3273664496);
emit_32(1114267661);
emit_32(1103573287);
emit_32(3273664496);
emit_32(1115291648);
emit_32(1103737913);
emit_32(3273664496);
emit_32(1116000263);
emit_32(1104225396);
emit_32(3273664496);
emit_32(1116512256);
emit_32(1104815063);
emit_32(3273664496);
emit_32(1117024263);
emit_32(1105243301);
emit_32(3273664496);
emit_32(1117536256);
emit_32(1105695814);
emit_32(3273664496);
emit_32(1118048263);
emit_32(1105989625);
emit_32(3273664496);
emit_32(1118560256);
emit_32(1106114930);
emit_32(3273664496);
emit_32(1119072263);
emit_32(1106699669);
emit_32(3273664496);
emit_32(1119584256);
emit_32(1107034164);
emit_32(3273664496);
emit_32(1120096263);
emit_32(1107327294);
emit_32(3273664496);
emit_32(1120608322);
emit_32(1106913106);
emit_32(3273664496);
emit_32(1121120289);
emit_32(1106509038);
emit_32(3273664496);
emit_32(1121632256);
emit_32(1105952401);
emit_32(3273664496);
emit_32(1122144223);
emit_32(1106608862);
emit_32(3273664496);
emit_32(1122656322);
emit_32(1106050443);
emit_32(3273664496);
emit_32(1123168289);
emit_32(1105539210);
emit_32(3273664496);
emit_32(1123680256);
emit_32(1104316937);
emit_32(3273664496);
emit_32(1124132848);
emit_32(1103423078);
emit_32(3273664496);
emit_32(1124388897);
emit_32(1102157867);
emit_32(3273664496);
emit_32(1124644880);
emit_32(1100686767);
emit_32(3273664496);
emit_32(1124900864);
emit_32(1099193752);
emit_32(3273664496);
emit_32(1125156848);
emit_32(1096183867);
emit_32(3273664496);
emit_32(1125412897);
emit_32(1092300434);
emit_32(3273664496);
emit_32(1125668880);
emit_32(1090658553);
emit_32(3273664496);
emit_32(1125924864);
emit_32(1087350684);
emit_32(3273664496);
emit_32(1126180848);
emit_32(1076097052);
emit_32(3273664496);
emit_32(1126436897);
emit_32(1033250201);
emit_32(3273664496);
emit_32(1126692880);
emit_32(3213794340);
emit_32(3273664496);
emit_32(1126948864);
emit_32(3225617244);
emit_32(3273664496);
emit_32(1127204848);
emit_32(3234199587);
emit_32(3273664496);
emit_32(1127460897);
emit_32(3236783823);
emit_32(3273664496);
emit_32(1127716880);
emit_32(3239231409);
emit_32(3273664496);
emit_32(1127972864);
emit_32(3239869436);
emit_32(3273664496);
emit_32(1128228848);
emit_32(3240676137);
emit_32(3273664496);
emit_32(1128484897);
emit_32(3242958153);
emit_32(3273664496);
emit_32(1128740880);
emit_32(3244196417);
emit_32(3273664496);
emit_32(1128996864);
emit_32(3245843100);
emit_32(3273664496);
emit_32(1129252848);
emit_32(3247245204);
emit_32(3273664496);
emit_32(1129508897);
emit_32(3248095337);
emit_32(3273664496);
emit_32(1129764880);
emit_32(3248269505);
emit_32(3273664496);
emit_32(1130020864);
emit_32(3248127423);
emit_32(3273664496);
emit_32(1130276848);
emit_32(3248240250);
emit_32(3273664496);
emit_32(1130532897);
emit_32(3247358398);
emit_32(3273664496);
emit_32(1130788880);
emit_32(3246549998);
emit_32(3273664496);
emit_32(1131044864);
emit_32(3244820005);
emit_32(3273664496);
emit_32(1131300848);
emit_32(3242185563);
emit_32(3273664496);
emit_32(1131556897);
emit_32(3239470873);
emit_32(3273664496);
emit_32(1131812880);
emit_32(3235146241);
emit_32(3273664496);
emit_32(1132068864);
emit_32(3228421765);
emit_32(3273664496);
emit_32(1081737216);
emit_32(1109095429);
emit_32(3273920545);
emit_32(1090125824);
emit_32(1108721848);
emit_32(3273920545);
emit_32(1094418484);
emit_32(1108271799);
emit_32(3273920545);
emit_32(1098514432);
emit_32(1107836640);
emit_32(3273920545);
emit_32(1100759066);
emit_32(1107583487);
emit_32(3273920545);
emit_32(1102807040);
emit_32(1107305929);
emit_32(3273920545);
emit_32(1104855066);
emit_32(1106095427);
emit_32(3273920545);
emit_32(1106903040);
emit_32(1104843427);
emit_32(3273920545);
emit_32(1108123661);
emit_32(1103754481);
emit_32(3273920545);
emit_32(1109147648);
emit_32(1102895959);
emit_32(3273920545);
emit_32(1110171661);
emit_32(1102181460);
emit_32(3273920545);
emit_32(1111195648);
emit_32(1101676256);
emit_32(3273920545);
emit_32(1112219661);
emit_32(1101547858);
emit_32(3273920545);
emit_32(1113243648);
emit_32(1102482086);
emit_32(3273920545);
emit_32(1114267661);
emit_32(1103334421);
emit_32(3273920545);
emit_32(1115291648);
emit_32(1103698330);
emit_32(3273920545);
emit_32(1116000263);
emit_32(1103797472);
emit_32(3273920545);
emit_32(1116512256);
emit_32(1104470449);
emit_32(3273920545);
emit_32(1117024263);
emit_32(1105019221);
emit_32(3273920545);
emit_32(1117536256);
emit_32(1105107249);
emit_32(3273920545);
emit_32(1118048263);
emit_32(1105221177);
emit_32(3273920545);
emit_32(1118560256);
emit_32(1105813517);
emit_32(3273920545);
emit_32(1119072263);
emit_32(1106222986);
emit_32(3273920545);
emit_32(1119584256);
emit_32(1106744181);
emit_32(3273920545);
emit_32(1120096263);
emit_32(1106572162);
emit_32(3273920545);
emit_32(1120608322);
emit_32(1106138261);
emit_32(3273920545);
emit_32(1121120289);
emit_32(1105034373);
emit_32(3273920545);
emit_32(1121632256);
emit_32(1104844371);
emit_32(3273920545);
emit_32(1122144223);
emit_32(1105102006);
emit_32(3273920545);
emit_32(1122656322);
emit_32(1104862039);
emit_32(3273920545);
emit_32(1123168289);
emit_32(1104232946);
emit_32(3273920545);
emit_32(1123680256);
emit_32(1103026297);
emit_32(3273920545);
emit_32(1124132848);
emit_32(1101863741);
emit_32(3273920545);
emit_32(1124388897);
emit_32(1100516216);
emit_32(3273920545);
emit_32(1124644880);
emit_32(1099293105);
emit_32(3273920545);
emit_32(1124900864);
emit_32(1097230346);
emit_32(3273920545);
emit_32(1125156848);
emit_32(1093750751);
emit_32(3273920545);
emit_32(1125412897);
emit_32(1090925405);
emit_32(3273920545);
emit_32(1125668880);
emit_32(1088433213);
emit_32(3273920545);
emit_32(1125924864);
emit_32(1084125285);
emit_32(3273920545);
emit_32(1126180848);
emit_32(1075725646);
emit_32(3273920545);
emit_32(1126436897);
emit_32(1061623490);
emit_32(3273920545);
emit_32(1126692880);
emit_32(3216532465);
emit_32(3273920545);
emit_32(1126948864);
emit_32(3227819673);
emit_32(3273920545);
emit_32(1127204848);
emit_32(3234520577);
emit_32(3273920545);
emit_32(1127460897);
emit_32(3236952791);
emit_32(3273920545);
emit_32(1127716880);
emit_32(3239234608);
emit_32(3273920545);
emit_32(1127972864);
emit_32(3240023346);
emit_32(3273920545);
emit_32(1128228848);
emit_32(3241225696);
emit_32(3273920545);
emit_32(1128484897);
emit_32(3243063535);
emit_32(3273920545);
emit_32(1128740880);
emit_32(3245269949);
emit_32(3273920545);
emit_32(1128996864);
emit_32(3246344425);
emit_32(3273920545);
emit_32(1129252848);
emit_32(3246962665);
emit_32(3273920545);
emit_32(1129508897);
emit_32(3247716853);
emit_32(3273920545);
emit_32(1129764880);
emit_32(3247725609);
emit_32(3273920545);
emit_32(1130020864);
emit_32(3247729803);
emit_32(3273920545);
emit_32(1130276848);
emit_32(3247215739);
emit_32(3273920545);
emit_32(1130532897);
emit_32(3246018422);
emit_32(3273920545);
emit_32(1130788880);
emit_32(3244886589);
emit_32(3273920545);
emit_32(1131044864);
emit_32(3242781888);
emit_32(3273920545);
emit_32(1131300848);
emit_32(3240781205);
emit_32(3273920545);
emit_32(1131556897);
emit_32(3238299267);
emit_32(3273920545);
emit_32(1131812880);
emit_32(3233550057);
emit_32(3273920545);
emit_32(1132068864);
emit_32(3223464811);
emit_32(3273920545);
emit_32(1081737216);
emit_32(1108664621);
emit_32(3274176528);
emit_32(1090125824);
emit_32(1108522618);
emit_32(3274176528);
emit_32(1094418484);
emit_32(1108407563);
emit_32(3274176528);
emit_32(1098514432);
emit_32(1107682787);
emit_32(3274176528);
emit_32(1100759066);
emit_32(1107320583);
emit_32(3274176528);
emit_32(1102807040);
emit_32(1106544532);
emit_32(3274176528);
emit_32(1104855066);
emit_32(1105511999);
emit_32(3274176528);
emit_32(1106903040);
emit_32(1104375867);
emit_32(3274176528);
emit_32(1108123661);
emit_32(1103074112);
emit_32(3274176528);
emit_32(1109147648);
emit_32(1102337278);
emit_32(3274176528);
emit_32(1110171661);
emit_32(1101962517);
emit_32(3274176528);
emit_32(1111195648);
emit_32(1101639031);
emit_32(3274176528);
emit_32(1112219661);
emit_32(1101573181);
emit_32(3274176528);
emit_32(1113243648);
emit_32(1101942070);
emit_32(3274176528);
emit_32(1114267661);
emit_32(1102543638);
emit_32(3274176528);
emit_32(1115291648);
emit_32(1103135559);
emit_32(3274176528);
emit_32(1116000263);
emit_32(1103322153);
emit_32(3274176528);
emit_32(1116512256);
emit_32(1103539995);
emit_32(3274176528);
emit_32(1117024263);
emit_32(1103767850);
emit_32(3274176528);
emit_32(1117536256);
emit_32(1104163740);
emit_32(3274176528);
emit_32(1118048263);
emit_32(1104602045);
emit_32(3274176528);
emit_32(1118560256);
emit_32(1104897953);
emit_32(3274176528);
emit_32(1119072263);
emit_32(1105720246);
emit_32(3274176528);
emit_32(1119584256);
emit_32(1105815981);
emit_32(3274176528);
emit_32(1120096263);
emit_32(1105144788);
emit_32(3274176528);
emit_32(1120608322);
emit_32(1104485233);
emit_32(3274176528);
emit_32(1121120289);
emit_32(1103618061);
emit_32(3274176528);
emit_32(1121632256);
emit_32(1103661315);
emit_32(3274176528);
emit_32(1122144223);
emit_32(1103401845);
emit_32(3274176528);
emit_32(1122656322);
emit_32(1102987500);
emit_32(3274176528);
emit_32(1123168289);
emit_32(1102162900);
emit_32(3274176528);
emit_32(1123680256);
emit_32(1100880701);
emit_32(3274176528);
emit_32(1124132848);
emit_32(1099831339);
emit_32(3274176528);
emit_32(1124388897);
emit_32(1098628622);
emit_32(3274176528);
emit_32(1124644880);
emit_32(1096283587);
emit_32(3274176528);
emit_32(1124900864);
emit_32(1094436939);
emit_32(3274176528);
emit_32(1125156848);
emit_32(1092462586);
emit_32(3274176528);
emit_32(1125412897);
emit_32(1090574426);
emit_32(3274176528);
emit_32(1125668880);
emit_32(1088368683);
emit_32(3274176528);
emit_32(1125924864);
emit_32(1084468987);
emit_32(3274176528);
emit_32(1126180848);
emit_32(1078479458);
emit_32(3274176528);
emit_32(1126436897);
emit_32(1070097393);
emit_32(3274176528);
emit_32(1126692880);
emit_32(3219330905);
emit_32(3274176528);
emit_32(1126948864);
emit_32(3229956377);
emit_32(3274176528);
emit_32(1127204848);
emit_32(3233498299);
emit_32(3274176528);
emit_32(1127460897);
emit_32(3237958480);
emit_32(3274176528);
emit_32(1127716880);
emit_32(3239973518);
emit_32(3274176528);
emit_32(1127972864);
emit_32(3240389457);
emit_32(3274176528);
emit_32(1128228848);
emit_32(3241706154);
emit_32(3274176528);
emit_32(1128484897);
emit_32(3243624314);
emit_32(3274176528);
emit_32(1128740880);
emit_32(3245731637);
emit_32(3274176528);
emit_32(1128996864);
emit_32(3246688777);
emit_32(3274176528);
emit_32(1129252848);
emit_32(3247277500);
emit_32(3274176528);
emit_32(1129508897);
emit_32(3247268744);
emit_32(3274176528);
emit_32(1129764880);
emit_32(3246821579);
emit_32(3274176528);
emit_32(1130020864);
emit_32(3246928901);
emit_32(3274176528);
emit_32(1130276848);
emit_32(3246584024);
emit_32(3274176528);
emit_32(1130532897);
emit_32(3244589423);
emit_32(3274176528);
emit_32(1130788880);
emit_32(3243611311);
emit_32(3274176528);
emit_32(1131044864);
emit_32(3242211253);
emit_32(3274176528);
emit_32(1131300848);
emit_32(3239996199);
emit_32(3274176528);
emit_32(1131556897);
emit_32(3237841102);
emit_32(3274176528);
emit_32(1131812880);
emit_32(3232583521);
emit_32(3274176528);
emit_32(1132068864);
emit_32(3220160035);
emit_32(3274176528);
emit_32(1081737216);
emit_32(1108184872);
emit_32(3274432512);
emit_32(1090125824);
emit_32(1108148932);
emit_32(3274432512);
emit_32(1094418484);
emit_32(1107903853);
emit_32(3274432512);
emit_32(1098514432);
emit_32(1107577694);
emit_32(3274432512);
emit_32(1100759066);
emit_32(1106982365);
emit_32(3274432512);
emit_32(1102807040);
emit_32(1105680086);
emit_32(3274432512);
emit_32(1104855066);
emit_32(1104468771);
emit_32(3274432512);
emit_32(1106903040);
emit_32(1103509114);
emit_32(3274432512);
emit_32(1108123661);
emit_32(1102687764);
emit_32(3274432512);
emit_32(1109147648);
emit_32(1102002520);
emit_32(3274432512);
emit_32(1110171661);
emit_32(1101411123);
emit_32(3274432512);
emit_32(1111195648);
emit_32(1101064569);
emit_32(3274432512);
emit_32(1112219661);
emit_32(1100846150);
emit_32(3274432512);
emit_32(1113243648);
emit_32(1101357436);
emit_32(3274432512);
emit_32(1114267661);
emit_32(1102179729);
emit_32(3274432512);
emit_32(1115291648);
emit_32(1102092698);
emit_32(3274432512);
emit_32(1116000263);
emit_32(1102408371);
emit_32(3274432512);
emit_32(1116512256);
emit_32(1102286999);
emit_32(3274432512);
emit_32(1117024263);
emit_32(1102506518);
emit_32(3274432512);
emit_32(1117536256);
emit_32(1103483005);
emit_32(3274432512);
emit_32(1118048263);
emit_32(1103994238);
emit_32(3274432512);
emit_32(1118560256);
emit_32(1104213233);
emit_32(3274432512);
emit_32(1119072263);
emit_32(1103948992);
emit_32(3274432512);
emit_32(1119584256);
emit_32(1103515143);
emit_32(3274432512);
emit_32(1120096263);
emit_32(1103105832);
emit_32(3274432512);
emit_32(1120608322);
emit_32(1102826124);
emit_32(3274432512);
emit_32(1121120289);
emit_32(1102767456);
emit_32(3274432512);
emit_32(1121632256);
emit_32(1102189901);
emit_32(3274432512);
emit_32(1122144223);
emit_32(1101674421);
emit_32(3274432512);
emit_32(1122656322);
emit_32(1100890243);
emit_32(3274432512);
emit_32(1123168289);
emit_32(1099939761);
emit_32(3274432512);
emit_32(1123680256);
emit_32(1099075997);
emit_32(3274432512);
emit_32(1124132848);
emit_32(1097086376);
emit_32(3274432512);
emit_32(1124388897);
emit_32(1095228614);
emit_32(3274432512);
emit_32(1124644880);
emit_32(1093029436);
emit_32(3274432512);
emit_32(1124900864);
emit_32(1091479672);
emit_32(3274432512);
emit_32(1125156848);
emit_32(1091750163);
emit_32(3274432512);
emit_32(1125412897);
emit_32(1089138149);
emit_32(3274432512);
emit_32(1125668880);
emit_32(1086598540);
emit_32(3274432512);
emit_32(1125924864);
emit_32(1083352484);
emit_32(3274432512);
emit_32(1126180848);
emit_32(1076974919);
emit_32(3274432512);
emit_32(1126436897);
emit_32(1066291146);
emit_32(3274432512);
emit_32(1126692880);
emit_32(3221226898);
emit_32(3274432512);
emit_32(1126948864);
emit_32(3228126151);
emit_32(3274432512);
emit_32(1127204848);
emit_32(3231975515);
emit_32(3274432512);
emit_32(1127460897);
emit_32(3238351340);
emit_32(3274432512);
emit_32(1127716880);
emit_32(3240184460);
emit_32(3274432512);
emit_32(1127972864);
emit_32(3241040832);
emit_32(3274432512);
emit_32(1128228848);
emit_32(3242157461);
emit_32(3274432512);
emit_32(1128484897);
emit_32(3244822731);
emit_32(3274432512);
emit_32(1128740880);
emit_32(3246247536);
emit_32(3274432512);
emit_32(1128996864);
emit_32(3247038372);
emit_32(3274432512);
emit_32(1129252848);
emit_32(3247585939);
emit_32(3274432512);
emit_32(1129508897);
emit_32(3246884389);
emit_32(3274432512);
emit_32(1129764880);
emit_32(3246474763);
emit_32(3274432512);
emit_32(1130020864);
emit_32(3246383746);
emit_32(3274432512);
emit_32(1130276848);
emit_32(3245256632);
emit_32(3274432512);
emit_32(1130532897);
emit_32(3243907010);
emit_32(3274432512);
emit_32(1130788880);
emit_32(3243058921);
emit_32(3274432512);
emit_32(1131044864);
emit_32(3241166032);
emit_32(3274432512);
emit_32(1131300848);
emit_32(3238570922);
emit_32(3274432512);
emit_32(1131556897);
emit_32(3234153659);
emit_32(3274432512);
emit_32(1131812880);
emit_32(3230360226);
emit_32(3274432512);
emit_32(1132068864);
emit_32(3219833634);
emit_32(3274432512);
emit_32(1081737216);
emit_32(1108036289);
emit_32(3274688496);
emit_32(1090125824);
emit_32(1107810609);
emit_32(3274688496);
emit_32(1094418484);
emit_32(1107747825);
emit_32(3274688496);
emit_32(1098514432);
emit_32(1107286871);
emit_32(3274688496);
emit_32(1100759066);
emit_32(1106086881);
emit_32(3274688496);
emit_32(1102807040);
emit_32(1104804315);
emit_32(3274688496);
emit_32(1104855066);
emit_32(1103699326);
emit_32(3274688496);
emit_32(1106903040);
emit_32(1102741504);
emit_32(3274688496);
emit_32(1108123661);
emit_32(1101680083);
emit_32(3274688496);
emit_32(1109147648);
emit_32(1101656595);
emit_32(3274688496);
emit_32(1110171661);
emit_32(1100849663);
emit_32(3274688496);
emit_32(1111195648);
emit_32(1100640053);
emit_32(3274688496);
emit_32(1112219661);
emit_32(1100253443);
emit_32(3274688496);
emit_32(1113243648);
emit_32(1100764047);
emit_32(3274688496);
emit_32(1114267661);
emit_32(1101163554);
emit_32(3274688496);
emit_32(1115291648);
emit_32(1101305217);
emit_32(3274688496);
emit_32(1116000263);
emit_32(1101417624);
emit_32(3274688496);
emit_32(1116512256);
emit_32(1101765385);
emit_32(3274688496);
emit_32(1117024263);
emit_32(1102533938);
emit_32(3274688496);
emit_32(1117536256);
emit_32(1102938689);
emit_32(3274688496);
emit_32(1118048263);
emit_32(1103318955);
emit_32(3274688496);
emit_32(1118560256);
emit_32(1103683754);
emit_32(3274688496);
emit_32(1119072263);
emit_32(1103175090);
emit_32(3274688496);
emit_32(1119584256);
emit_32(1102854593);
emit_32(3274688496);
emit_32(1120096263);
emit_32(1102466567);
emit_32(3274688496);
emit_32(1120608322);
emit_32(1101638507);
emit_32(3274688496);
emit_32(1121120289);
emit_32(1101343542);
emit_32(3274688496);
emit_32(1121632256);
emit_32(1100858629);
emit_32(3274688496);
emit_32(1122144223);
emit_32(1099916326);
emit_32(3274688496);
emit_32(1122656322);
emit_32(1099386952);
emit_32(3274688496);
emit_32(1123168289);
emit_32(1098990538);
emit_32(3274688496);
emit_32(1123680256);
emit_32(1097981860);
emit_32(3274688496);
emit_32(1124132848);
emit_32(1095898759);
emit_32(3274688496);
emit_32(1124388897);
emit_32(1092934435);
emit_32(3274688496);
emit_32(1124644880);
emit_32(1090423368);
emit_32(3274688496);
emit_32(1124900864);
emit_32(1089465599);
emit_32(3274688496);
emit_32(1125156848);
emit_32(1090025916);
emit_32(3274688496);
emit_32(1125412897);
emit_32(1088093013);
emit_32(3274688496);
emit_32(1125668880);
emit_32(1086367518);
emit_32(3274688496);
emit_32(1125924864);
emit_32(1083889418);
emit_32(3274688496);
emit_32(1126180848);
emit_32(1076254464);
emit_32(3274688496);
emit_32(1126436897);
emit_32(1068370850);
emit_32(3274688496);
emit_32(1126692880);
emit_32(3216221248);
emit_32(3274688496);
emit_32(1126948864);
emit_32(3228349497);
emit_32(3274688496);
emit_32(1127204848);
emit_32(3232983910);
emit_32(3274688496);
emit_32(1127460897);
emit_32(3238169558);
emit_32(3274688496);
emit_32(1127716880);
emit_32(3239092054);
emit_32(3274688496);
emit_32(1127972864);
emit_32(3241438976);
emit_32(3274688496);
emit_32(1128228848);
emit_32(3243388489);
emit_32(3274688496);
emit_32(1128484897);
emit_32(3245180191);
emit_32(3274688496);
emit_32(1128740880);
emit_32(3246270710);
emit_32(3274688496);
emit_32(1128996864);
emit_32(3247252229);
emit_32(3274688496);
emit_32(1129252848);
emit_32(3247543262);
emit_32(3274688496);
emit_32(1129508897);
emit_32(3246603737);
emit_32(3274688496);
emit_32(1129764880);
emit_32(3246628379);
emit_32(3274688496);
emit_32(1130020864);
emit_32(3246208949);
emit_32(3274688496);
emit_32(1130276848);
emit_32(3243960277);
emit_32(3274688496);
emit_32(1130532897);
emit_32(3243077167);
emit_32(3274688496);
emit_32(1130788880);
emit_32(3241817407);
emit_32(3274688496);
emit_32(1131044864);
emit_32(3238920664);
emit_32(3274688496);
emit_32(1131300848);
emit_32(3235529538);
emit_32(3274688496);
emit_32(1131556897);
emit_32(3228900545);
emit_32(3274688496);
emit_32(1131812880);
emit_32(3222674310);
emit_32(3274688496);
emit_32(1132068864);
emit_32(3208271280);
emit_32(3274688496);
emit_32(1081737216);
emit_32(1107544270);
emit_32(3274944545);
emit_32(1090125824);
emit_32(1107321186);
emit_32(3274944545);
emit_32(1094418484);
emit_32(1106832838);
emit_32(3274944545);
emit_32(1098514432);
emit_32(1105933107);
emit_32(3274944545);
emit_32(1100759066);
emit_32(1104947236);
emit_32(3274944545);
emit_32(1102807040);
emit_32(1104326217);
emit_32(3274944545);
emit_32(1104855066);
emit_32(1103138967);
emit_32(3274944545);
emit_32(1106903040);
emit_32(1102036441);
emit_32(3274944545);
emit_32(1108123661);
emit_32(1101087742);
emit_32(3274944545);
emit_32(1109147648);
emit_32(1100669465);
emit_32(3274944545);
emit_32(1110171661);
emit_32(1100266183);
emit_32(3274944545);
emit_32(1111195648);
emit_32(1100000526);
emit_32(3274944545);
emit_32(1112219661);
emit_32(1099972529);
emit_32(3274944545);
emit_32(1113243648);
emit_32(1099715681);
emit_32(3274944545);
emit_32(1114267661);
emit_32(1099811521);
emit_32(3274944545);
emit_32(1115291648);
emit_32(1100048079);
emit_32(3274944545);
emit_32(1116000263);
emit_32(1100398461);
emit_32(3274944545);
emit_32(1116512256);
emit_32(1101470735);
emit_32(3274944545);
emit_32(1117024263);
emit_32(1102010332);
emit_32(3274944545);
emit_32(1117536256);
emit_32(1102212969);
emit_32(3274944545);
emit_32(1118048263);
emit_32(1102131547);
emit_32(3274944545);
emit_32(1118560256);
emit_32(1102714503);
emit_32(3274944545);
emit_32(1119072263);
emit_32(1102278033);
emit_32(3274944545);
emit_32(1119584256);
emit_32(1101809792);
emit_32(3274944545);
emit_32(1120096263);
emit_32(1100816004);
emit_32(3274944545);
emit_32(1120608322);
emit_32(1100025011);
emit_32(3274944545);
emit_32(1121120289);
emit_32(1099466277);
emit_32(3274944545);
emit_32(1121632256);
emit_32(1098984771);
emit_32(3274944545);
emit_32(1122144223);
emit_32(1098724776);
emit_32(3274944545);
emit_32(1122656322);
emit_32(1097818073);
emit_32(3274944545);
emit_32(1123168289);
emit_32(1098331770);
emit_32(3274944545);
emit_32(1123680256);
emit_32(1097767007);
emit_32(3274944545);
emit_32(1124132848);
emit_32(1095061891);
emit_32(3274944545);
emit_32(1124388897);
emit_32(1092565693);
emit_32(3274944545);
emit_32(1124644880);
emit_32(1089087839);
emit_32(3274944545);
emit_32(1124900864);
emit_32(1088235430);
emit_32(3274944545);
emit_32(1125156848);
emit_32(1089040317);
emit_32(3274944545);
emit_32(1125412897);
emit_32(1087875957);
emit_32(3274944545);
emit_32(1125668880);
emit_32(1086441128);
emit_32(3274944545);
emit_32(1125924864);
emit_32(1085113966);
emit_32(3274944545);
emit_32(1126180848);
emit_32(1081486648);
emit_32(3274944545);
emit_32(1126436897);
emit_32(1075610470);
emit_32(3274944545);
emit_32(1126692880);
emit_32(3191896348);
emit_32(3274944545);
emit_32(1126948864);
emit_32(3225446032);
emit_32(3274944545);
emit_32(1127204848);
emit_32(3232519202);
emit_32(3274944545);
emit_32(1127460897);
emit_32(3234831920);
emit_32(3274944545);
emit_32(1127716880);
emit_32(3239305806);
emit_32(3274944545);
emit_32(1127972864);
emit_32(3241685497);
emit_32(3274944545);
emit_32(1128228848);
emit_32(3242903208);
emit_32(3274944545);
emit_32(1128484897);
emit_32(3244487397);
emit_32(3274944545);
emit_32(1128740880);
emit_32(3245844673);
emit_32(3274944545);
emit_32(1128996864);
emit_32(3246709067);
emit_32(3274944545);
emit_32(1129252848);
emit_32(3246977188);
emit_32(3274944545);
emit_32(1129508897);
emit_32(3246402830);
emit_32(3274944545);
emit_32(1129764880);
emit_32(3246323034);
emit_32(3274944545);
emit_32(1130020864);
emit_32(3244941011);
emit_32(3274944545);
emit_32(1130276848);
emit_32(3243260877);
emit_32(3274944545);
emit_32(1130532897);
emit_32(3242406707);
emit_32(3274944545);
emit_32(1130788880);
emit_32(3239902383);
emit_32(3274944545);
emit_32(1131044864);
emit_32(3235323031);
emit_32(3274944545);
emit_32(1131300848);
emit_32(3229858692);
emit_32(3274944545);
emit_32(1131556897);
emit_32(3221983215);
emit_32(3274944545);
emit_32(1131812880);
emit_32(3204619249);
emit_32(3274944545);
emit_32(1132068864);
emit_32(1069430331);
emit_32(3274944545);
emit_32(1081737216);
emit_32(1106249096);
emit_32(3275200528);
emit_32(1090125824);
emit_32(1106043942);
emit_32(3275200528);
emit_32(1094418484);
emit_32(1105378410);
emit_32(3275200528);
emit_32(1098514432);
emit_32(1104642467);
emit_32(3275200528);
emit_32(1100759066);
emit_32(1104162010);
emit_32(3275200528);
emit_32(1102807040);
emit_32(1103635153);
emit_32(3275200528);
emit_32(1104855066);
emit_32(1102464995);
emit_32(3275200528);
emit_32(1106903040);
emit_32(1101344958);
emit_32(3275200528);
emit_32(1108123661);
emit_32(1100328835);
emit_32(3275200528);
emit_32(1109147648);
emit_32(1099478755);
emit_32(3275200528);
emit_32(1110171661);
emit_32(1099658219);
emit_32(3275200528);
emit_32(1111195648);
emit_32(1099600285);
emit_32(3275200528);
emit_32(1112219661);
emit_32(1099186464);
emit_32(3275200528);
emit_32(1113243648);
emit_32(1099013135);
emit_32(3275200528);
emit_32(1114267661);
emit_32(1099476763);
emit_32(3275200528);
emit_32(1115291648);
emit_32(1099561540);
emit_32(3275200528);
emit_32(1116000263);
emit_32(1099962673);
emit_32(3275200528);
emit_32(1116512256);
emit_32(1100314837);
emit_32(3275200528);
emit_32(1117024263);
emit_32(1100808192);
emit_32(3275200528);
emit_32(1117536256);
emit_32(1100975545);
emit_32(3275200528);
emit_32(1118048263);
emit_32(1100964744);
emit_32(3275200528);
emit_32(1118560256);
emit_32(1100600364);
emit_32(3275200528);
emit_32(1119072263);
emit_32(1100761426);
emit_32(3275200528);
emit_32(1119584256);
emit_32(1100181144);
emit_32(3275200528);
emit_32(1120096263);
emit_32(1098976749);
emit_32(3275200528);
emit_32(1120608322);
emit_32(1097199518);
emit_32(3275200528);
emit_32(1121120289);
emit_32(1096699347);
emit_32(3275200528);
emit_32(1121632256);
emit_32(1096334128);
emit_32(3275200528);
emit_32(1122144223);
emit_32(1096532414);
emit_32(3275200528);
emit_32(1122656322);
emit_32(1096818675);
emit_32(3275200528);
emit_32(1123168289);
emit_32(1097088578);
emit_32(3275200528);
emit_32(1123680256);
emit_32(1096387291);
emit_32(3275200528);
emit_32(1124132848);
emit_32(1094034810);
emit_32(3275200528);
emit_32(1124388897);
emit_32(1090976691);
emit_32(3275200528);
emit_32(1124644880);
emit_32(1088321497);
emit_32(3275200528);
emit_32(1124900864);
emit_32(1088758712);
emit_32(3275200528);
emit_32(1125156848);
emit_32(1087833868);
emit_32(3275200528);
emit_32(1125412897);
emit_32(1084974107);
emit_32(3275200528);
emit_32(1125668880);
emit_32(1084703805);
emit_32(3275200528);
emit_32(1125924864);
emit_32(1084375328);
emit_32(3275200528);
emit_32(1126180848);
emit_32(1079810898);
emit_32(3275200528);
emit_32(1126436897);
emit_32(1075134836);
emit_32(3275200528);
emit_32(1126692880);
emit_32(1055694338);
emit_32(3275200528);
emit_32(1126948864);
emit_32(3222544916);
emit_32(3275200528);
emit_32(1127204848);
emit_32(3231495477);
emit_32(3275200528);
emit_32(1127460897);
emit_32(3235209219);
emit_32(3275200528);
emit_32(1127716880);
emit_32(3239322940);
emit_32(3275200528);
emit_32(1127972864);
emit_32(3240031389);
emit_32(3275200528);
emit_32(1128228848);
emit_32(3242234426);
emit_32(3275200528);
emit_32(1128484897);
emit_32(3243694988);
emit_32(3275200528);
emit_32(1128740880);
emit_32(3244783934);
emit_32(3275200528);
emit_32(1128996864);
emit_32(3245353415);
emit_32(3275200528);
emit_32(1129252848);
emit_32(3245143910);
emit_32(3275200528);
emit_32(1129508897);
emit_32(3243741859);
emit_32(3275200528);
emit_32(1129764880);
emit_32(3244369117);
emit_32(3275200528);
emit_32(1130020864);
emit_32(3244547480);
emit_32(3275200528);
emit_32(1130276848);
emit_32(3242487867);
emit_32(3275200528);
emit_32(1130532897);
emit_32(3241258307);
emit_32(3275200528);
emit_32(1130788880);
emit_32(3238763409);
emit_32(3275200528);
emit_32(1131044864);
emit_32(3232771615);
emit_32(3275200528);
emit_32(1131300848);
emit_32(3224658636);
emit_32(3275200528);
emit_32(1131556897);
emit_32(3205375013);
emit_32(3275200528);
emit_32(1131812880);
emit_32(1065955266);
emit_32(3275200528);
emit_32(1132068864);
emit_32(1078364786);
emit_32(3275200528);
emit_32(1081737216);
emit_32(1105010622);
emit_32(3275456512);
emit_32(1090125824);
emit_32(1104741191);
emit_32(3275456512);
emit_32(1094418484);
emit_32(1104199864);
emit_32(3275456512);
emit_32(1098514432);
emit_32(1103701895);
emit_32(3275456512);
emit_32(1100759066);
emit_32(1103428898);
emit_32(3275456512);
emit_32(1102807040);
emit_32(1102959031);
emit_32(3275456512);
emit_32(1104855066);
emit_32(1102357044);
emit_32(3275456512);
emit_32(1106903040);
emit_32(1100872784);
emit_32(3275456512);
emit_32(1108123661);
emit_32(1099789972);
emit_32(3275456512);
emit_32(1109147648);
emit_32(1099200043);
emit_32(3275456512);
emit_32(1110171661);
emit_32(1098764622);
emit_32(3275456512);
emit_32(1111195648);
emit_32(1098958399);
emit_32(3275456512);
emit_32(1112219661);
emit_32(1098447743);
emit_32(3275456512);
emit_32(1113243648);
emit_32(1098347184);
emit_32(3275456512);
emit_32(1114267661);
emit_32(1099067032);
emit_32(3275456512);
emit_32(1115291648);
emit_32(1099311664);
emit_32(3275456512);
emit_32(1116000263);
emit_32(1099114584);
emit_32(3275456512);
emit_32(1116512256);
emit_32(1099262119);
emit_32(3275456512);
emit_32(1117024263);
emit_32(1099307522);
emit_32(3275456512);
emit_32(1117536256);
emit_32(1099567150);
emit_32(3275456512);
emit_32(1118048263);
emit_32(1099285555);
emit_32(3275456512);
emit_32(1118560256);
emit_32(1099184367);
emit_32(3275456512);
emit_32(1119072263);
emit_32(1099025665);
emit_32(3275456512);
emit_32(1119584256);
emit_32(1097936771);
emit_32(3275456512);
emit_32(1120096263);
emit_32(1097086062);
emit_32(3275456512);
emit_32(1120608322);
emit_32(1095166329);
emit_32(3275456512);
emit_32(1121120289);
emit_32(1093547013);
emit_32(3275456512);
emit_32(1121632256);
emit_32(1094611632);
emit_32(3275456512);
emit_32(1122144223);
emit_32(1095301176);
emit_32(3275456512);
emit_32(1122656322);
emit_32(1096040002);
emit_32(3275456512);
emit_32(1123168289);
emit_32(1096486905);
emit_32(3275456512);
emit_32(1123680256);
emit_32(1095536371);
emit_32(3275456512);
emit_32(1124132848);
emit_32(1093119718);
emit_32(3275456512);
emit_32(1124388897);
emit_32(1091308366);
emit_32(3275456512);
emit_32(1124644880);
emit_32(1088220394);
emit_32(3275456512);
emit_32(1124900864);
emit_32(1088246482);
emit_32(3275456512);
emit_32(1125156848);
emit_32(1087966198);
emit_32(3275456512);
emit_32(1125412897);
emit_32(1084761016);
emit_32(3275456512);
emit_32(1125668880);
emit_32(1082433638);
emit_32(3275456512);
emit_32(1125924864);
emit_32(1080387489);
emit_32(3275456512);
emit_32(1126180848);
emit_32(1080768877);
emit_32(3275456512);
emit_32(1126436897);
emit_32(1072749536);
emit_32(3275456512);
emit_32(1126692880);
emit_32(1066725424);
emit_32(3275456512);
emit_32(1126948864);
emit_32(3211315758);
emit_32(3275456512);
emit_32(1127204848);
emit_32(3229615254);
emit_32(3275456512);
emit_32(1127460897);
emit_32(3234924069);
emit_32(3275456512);
emit_32(1127716880);
emit_32(3238308600);
emit_32(3275456512);
emit_32(1127972864);
emit_32(3239071816);
emit_32(3275456512);
emit_32(1128228848);
emit_32(3240224516);
emit_32(3275456512);
emit_32(1128484897);
emit_32(3241289869);
emit_32(3275456512);
emit_32(1128740880);
emit_32(3242705866);
emit_32(3275456512);
emit_32(1128996864);
emit_32(3242964969);
emit_32(3275456512);
emit_32(1129252848);
emit_32(3243192091);
emit_32(3275456512);
emit_32(1129508897);
emit_32(3242061516);
emit_32(3275456512);
emit_32(1129764880);
emit_32(3242460709);
emit_32(3275456512);
emit_32(1130020864);
emit_32(3243083563);
emit_32(3275456512);
emit_32(1130276848);
emit_32(3240930627);
emit_32(3275456512);
emit_32(1130532897);
emit_32(3238871108);
emit_32(3275456512);
emit_32(1130788880);
emit_32(3236675631);
emit_32(3275456512);
emit_32(1131044864);
emit_32(3232208551);
emit_32(3275456512);
emit_32(1131300848);
emit_32(3223881892);
emit_32(3275456512);
emit_32(1131556897);
emit_32(1056471794);
emit_32(3275456512);
emit_32(1131812880);
emit_32(1077025041);
emit_32(3275456512);
emit_32(1132068864);
emit_32(1081975788);
emit_32(3275456512);
emit_32(1081737216);
emit_32(1103817710);
emit_32(3275712496);
emit_32(1090125824);
emit_32(1103479177);
emit_32(3275712496);
emit_32(1094418484);
emit_32(1103628337);
emit_32(3275712496);
emit_32(1098514432);
emit_32(1103194908);
emit_32(3275712496);
emit_32(1100759066);
emit_32(1102441087);
emit_32(3275712496);
emit_32(1102807040);
emit_32(1101777548);
emit_32(3275712496);
emit_32(1104855066);
emit_32(1101550322);
emit_32(3275712496);
emit_32(1106903040);
emit_32(1100130340);
emit_32(3275712496);
emit_32(1108123661);
emit_32(1099405250);
emit_32(3275712496);
emit_32(1109147648);
emit_32(1098058092);
emit_32(3275712496);
emit_32(1110171661);
emit_32(1097423074);
emit_32(3275712496);
emit_32(1111195648);
emit_32(1097055863);
emit_32(3275712496);
emit_32(1112219661);
emit_32(1096882743);
emit_32(3275712496);
emit_32(1113243648);
emit_32(1098289303);
emit_32(3275712496);
emit_32(1114267661);
emit_32(1097937610);
emit_32(3275712496);
emit_32(1115291648);
emit_32(1097533279);
emit_32(3275712496);
emit_32(1116000263);
emit_32(1097752851);
emit_32(3275712496);
emit_32(1116512256);
emit_32(1097273547);
emit_32(3275712496);
emit_32(1117024263);
emit_32(1097170787);
emit_32(3275712496);
emit_32(1117536256);
emit_32(1096374708);
emit_32(3275712496);
emit_32(1118048263);
emit_32(1096180197);
emit_32(3275712496);
emit_32(1118560256);
emit_32(1097218602);
emit_32(3275712496);
emit_32(1119072263);
emit_32(1096138883);
emit_32(3275712496);
emit_32(1119584256);
emit_32(1096076912);
emit_32(3275712496);
emit_32(1120096263);
emit_32(1094562034);
emit_32(3275712496);
emit_32(1120608322);
emit_32(1092095962);
emit_32(3275712496);
emit_32(1121120289);
emit_32(1091662502);
emit_32(3275712496);
emit_32(1121632256);
emit_32(1092889556);
emit_32(3275712496);
emit_32(1122144223);
emit_32(1094008177);
emit_32(3275712496);
emit_32(1122656322);
emit_32(1094597791);
emit_32(3275712496);
emit_32(1123168289);
emit_32(1094669828);
emit_32(3275712496);
emit_32(1123680256);
emit_32(1093668333);
emit_32(3275712496);
emit_32(1124132848);
emit_32(1092690012);
emit_32(3275712496);
emit_32(1124388897);
emit_32(1091404793);
emit_32(3275712496);
emit_32(1124644880);
emit_32(1089616677);
emit_32(3275712496);
emit_32(1124900864);
emit_32(1087718650);
emit_32(3275712496);
emit_32(1125156848);
emit_32(1085433635);
emit_32(3275712496);
emit_32(1125412897);
emit_32(1083051984);
emit_32(3275712496);
emit_32(1125668880);
emit_32(1080094894);
emit_32(3275712496);
emit_32(1125924864);
emit_32(1077582632);
emit_32(3275712496);
emit_32(1126180848);
emit_32(1079746432);
emit_32(3275712496);
emit_32(1126436897);
emit_32(1073545866);
emit_32(3275712496);
emit_32(1126692880);
emit_32(1068480405);
emit_32(3275712496);
emit_32(1126948864);
emit_32(3205219354);
emit_32(3275712496);
emit_32(1127204848);
emit_32(3228713018);
emit_32(3275712496);
emit_32(1127460897);
emit_32(3234007257);
emit_32(3275712496);
emit_32(1127716880);
emit_32(3234765252);
emit_32(3275712496);
emit_32(1127972864);
emit_32(3236479652);
emit_32(3275712496);
emit_32(1128228848);
emit_32(3239043033);
emit_32(3275712496);
emit_32(1128484897);
emit_32(3239994091);
emit_32(3275712496);
emit_32(1128740880);
emit_32(3241107312);
emit_32(3275712496);
emit_32(1128996864);
emit_32(3240979281);
emit_32(3275712496);
emit_32(1129252848);
emit_32(3240651496);
emit_32(3275712496);
emit_32(1129508897);
emit_32(3240242971);
emit_32(3275712496);
emit_32(1129764880);
emit_32(3240761491);
emit_32(3275712496);
emit_32(1130020864);
emit_32(3240982007);
emit_32(3275712496);
emit_32(1130276848);
emit_32(3239091351);
emit_32(3275712496);
emit_32(1130532897);
emit_32(3236735400);
emit_32(3275712496);
emit_32(1130788880);
emit_32(3231377575);
emit_32(3275712496);
emit_32(1131044864);
emit_32(3227422808);
emit_32(3275712496);
emit_32(1131300848);
emit_32(3218146098);
emit_32(3275712496);
emit_32(1131556897);
emit_32(1069112487);
emit_32(3275712496);
emit_32(1131812880);
emit_32(1077648441);
emit_32(3275712496);
emit_32(1132068864);
emit_32(1082214129);
emit_32(3275712496);
emit_32(1081737216);
emit_32(1102629726);
emit_32(3275968545);
emit_32(1090125824);
emit_32(1102698722);
emit_32(3275968545);
emit_32(1094418484);
emit_32(1102802741);
emit_32(3275968545);
emit_32(1098514432);
emit_32(1102285373);
emit_32(3275968545);
emit_32(1100759066);
emit_32(1101786251);
emit_32(3275968545);
emit_32(1102807040);
emit_32(1100824812);
emit_32(3275968545);
emit_32(1104855066);
emit_32(1100025640);
emit_32(3275968545);
emit_32(1106903040);
emit_32(1099634940);
emit_32(3275968545);
emit_32(1108123661);
emit_32(1099046584);
emit_32(3275968545);
emit_32(1109147648);
emit_32(1096636223);
emit_32(3275968545);
emit_32(1110171661);
emit_32(1095513303);
emit_32(3275968545);
emit_32(1111195648);
emit_32(1095867407);
emit_32(3275968545);
emit_32(1112219661);
emit_32(1096126929);
emit_32(3275968545);
emit_32(1113243648);
emit_32(1096604870);
emit_32(3275968545);
emit_32(1114267661);
emit_32(1095827037);
emit_32(3275968545);
emit_32(1115291648);
emit_32(1095170838);
emit_32(3275968545);
emit_32(1116000263);
emit_32(1095497679);
emit_32(3275968545);
emit_32(1116512256);
emit_32(1095025715);
emit_32(3275968545);
emit_32(1117024263);
emit_32(1094083884);
emit_32(3275968545);
emit_32(1117536256);
emit_32(1094884996);
emit_32(3275968545);
emit_32(1118048263);
emit_32(1094938054);
emit_32(3275968545);
emit_32(1118560256);
emit_32(1094814322);
emit_32(3275968545);
emit_32(1119072263);
emit_32(1094028414);
emit_32(3275968545);
emit_32(1119584256);
emit_32(1093868087);
emit_32(3275968545);
emit_32(1120096263);
emit_32(1091898725);
emit_32(3275968545);
emit_32(1120608322);
emit_32(1091588902);
emit_32(3275968545);
emit_32(1121120289);
emit_32(1090929599);
emit_32(3275968545);
emit_32(1121632256);
emit_32(1091279268);
emit_32(3275968545);
emit_32(1122144223);
emit_32(1091962195);
emit_32(3275968545);
emit_32(1122656322);
emit_32(1092164916);
emit_32(3275968545);
emit_32(1123168289);
emit_32(1092135976);
emit_32(3275968545);
emit_32(1123680256);
emit_32(1091891196);
emit_32(3275968545);
emit_32(1124132848);
emit_32(1091591995);
emit_32(3275968545);
emit_32(1124388897);
emit_32(1091090063);
emit_32(3275968545);
emit_32(1124644880);
emit_32(1090340509);
emit_32(3275968545);
emit_32(1124900864);
emit_32(1086101389);
emit_32(3275968545);
emit_32(1125156848);
emit_32(1083757927);
emit_32(3275968545);
emit_32(1125412897);
emit_32(1078075547);
emit_32(3275968545);
emit_32(1125668880);
emit_32(1076426137);
emit_32(3275968545);
emit_32(1125924864);
emit_32(1072504840);
emit_32(3275968545);
emit_32(1126180848);
emit_32(1076195660);
emit_32(3275968545);
emit_32(1126436897);
emit_32(1072621609);
emit_32(3275968545);
emit_32(1126692880);
emit_32(1056034915);
emit_32(3275968545);
emit_32(1126948864);
emit_32(3209808342);
emit_32(3275968545);
emit_32(1127204848);
emit_32(3226594391);
emit_32(3275968545);
emit_32(1127460897);
emit_32(3229765557);
emit_32(3275968545);
emit_32(1127716880);
emit_32(3232195653);
emit_32(3275968545);
emit_32(1127972864);
emit_32(3233670937);
emit_32(3275968545);
emit_32(1128228848);
emit_32(3236746137);
emit_32(3275968545);
emit_32(1128484897);
emit_32(3239602763);
emit_32(3275968545);
emit_32(1128740880);
emit_32(3239120397);
emit_32(3275968545);
emit_32(1128996864);
emit_32(3238680404);
emit_32(3275968545);
emit_32(1129252848);
emit_32(3238748498);
emit_32(3275968545);
emit_32(1129508897);
emit_32(3237309495);
emit_32(3275968545);
emit_32(1129764880);
emit_32(3238233637);
emit_32(3275968545);
emit_32(1130020864);
emit_32(3238814642);
emit_32(3275968545);
emit_32(1130276848);
emit_32(3237583887);
emit_32(3275968545);
emit_32(1130532897);
emit_32(3232326054);
emit_32(3275968545);
emit_32(1130788880);
emit_32(3225982694);
emit_32(3275968545);
emit_32(1131044864);
emit_32(3216861550);
emit_32(3275968545);
emit_32(1131300848);
emit_32(1026734803);
emit_32(3275968545);
emit_32(1131556897);
emit_32(1070114842);
emit_32(3275968545);
emit_32(1131812880);
emit_32(1079071526);
emit_32(3275968545);
emit_32(1132068864);
emit_32(1085031464);
emit_32(3275968545);
emit_32(1081737216);
emit_32(1101834591);
emit_32(3276224528);
emit_32(1090125824);
emit_32(1101837579);
emit_32(3276224528);
emit_32(1094418484);
emit_32(1102082264);
emit_32(3276224528);
emit_32(1098514432);
emit_32(1101628441);
emit_32(3276224528);
emit_32(1100759066);
emit_32(1100985349);
emit_32(3276224528);
emit_32(1102807040);
emit_32(1100055367);
emit_32(3276224528);
emit_32(1104855066);
emit_32(1099637142);
emit_32(3276224528);
emit_32(1106903040);
emit_32(1098680317);
emit_32(3276224528);
emit_32(1108123661);
emit_32(1096761947);
emit_32(3276224528);
emit_32(1109147648);
emit_32(1094480980);
emit_32(3276224528);
emit_32(1110171661);
emit_32(1095392087);
emit_32(3276224528);
emit_32(1111195648);
emit_32(1094890029);
emit_32(3276224528);
emit_32(1112219661);
emit_32(1094984506);
emit_32(3276224528);
emit_32(1113243648);
emit_32(1094746898);
emit_32(3276224528);
emit_32(1114267661);
emit_32(1095240253);
emit_32(3276224528);
emit_32(1115291648);
emit_32(1094944765);
emit_32(3276224528);
emit_32(1116000263);
emit_32(1093070435);
emit_32(3276224528);
emit_32(1116512256);
emit_32(1092835659);
emit_32(3276224528);
emit_32(1117024263);
emit_32(1092160439);
emit_32(3276224528);
emit_32(1117536256);
emit_32(1093144779);
emit_32(3276224528);
emit_32(1118048263);
emit_32(1093574171);
emit_32(3276224528);
emit_32(1118560256);
emit_32(1093277109);
emit_32(3276224528);
emit_32(1119072263);
emit_32(1093819957);
emit_32(3276224528);
emit_32(1119584256);
emit_32(1092843628);
emit_32(3276224528);
emit_32(1120096263);
emit_32(1091116372);
emit_32(3276224528);
emit_32(1120608322);
emit_32(1091376859);
emit_32(3276224528);
emit_32(1121120289);
emit_32(1090364648);
emit_32(3276224528);
emit_32(1121632256);
emit_32(1090493874);
emit_32(3276224528);
emit_32(1122144223);
emit_32(1090596026);
emit_32(3276224528);
emit_32(1122656322);
emit_32(1090953811);
emit_32(3276224528);
emit_32(1123168289);
emit_32(1090983737);
emit_32(3276224528);
emit_32(1123680256);
emit_32(1091497519);
emit_32(3276224528);
emit_32(1124132848);
emit_32(1090542549);
emit_32(3276224528);
emit_32(1124388897);
emit_32(1090078156);
emit_32(3276224528);
emit_32(1124644880);
emit_32(1088934054);
emit_32(3276224528);
emit_32(1124900864);
emit_32(1087697720);
emit_32(3276224528);
emit_32(1125156848);
emit_32(1085563428);
emit_32(3276224528);
emit_32(1125412897);
emit_32(1080952084);
emit_32(3276224528);
emit_32(1125668880);
emit_32(1073321471);
emit_32(3276224528);
emit_32(1125924864);
emit_32(1070202670);
emit_32(3276224528);
emit_32(1126180848);
emit_32(1076022141);
emit_32(3276224528);
emit_32(1126436897);
emit_32(1074767541);
emit_32(3276224528);
emit_32(1126692880);
emit_32(1043406403);
emit_32(3276224528);
emit_32(1126948864);
emit_32(3214856505);
emit_32(3276224528);
emit_32(1127204848);
emit_32(3221624644);
emit_32(3276224528);
emit_32(1127460897);
emit_32(3223744907);
emit_32(3276224528);
emit_32(1127716880);
emit_32(3226922931);
emit_32(3276224528);
emit_32(1127972864);
emit_32(3231769868);
emit_32(3276224528);
emit_32(1128228848);
emit_32(3235400940);
emit_32(3276224528);
emit_32(1128484897);
emit_32(3237712778);
emit_32(3276224528);
emit_32(1128740880);
emit_32(3237178570);
emit_32(3276224528);
emit_32(1128996864);
emit_32(3236152161);
emit_32(3276224528);
emit_32(1129252848);
emit_32(3236365358);
emit_32(3276224528);
emit_32(1129508897);
emit_32(3234550776);
emit_32(3276224528);
emit_32(1129764880);
emit_32(3234356705);
emit_32(3276224528);
emit_32(1130020864);
emit_32(3236727662);
emit_32(3276224528);
emit_32(1130276848);
emit_32(3234020867);
emit_32(3276224528);
emit_32(1130532897);
emit_32(3229942851);
emit_32(3276224528);
emit_32(1130788880);
emit_32(3218905099);
emit_32(3276224528);
emit_32(1131044864);
emit_32(1046590114);
emit_32(3276224528);
emit_32(1131300848);
emit_32(1071351155);
emit_32(3276224528);
emit_32(1131556897);
emit_32(1075089706);
emit_32(3276224528);
emit_32(1131812880);
emit_32(1081837670);
emit_32(3276224528);
emit_32(1132068864);
emit_32(1088418344);
emit_32(3276224528);
emit_32(1081737216);
emit_32(1101171471);
emit_32(3276480512);
emit_32(1090125824);
emit_32(1100482504);
emit_32(3276480512);
emit_32(1094418484);
emit_32(1100941623);
emit_32(3276480512);
emit_32(1098514432);
emit_32(1100408685);
emit_32(3276480512);
emit_32(1100759066);
emit_32(1099563690);
emit_32(3276480512);
emit_32(1102807040);
emit_32(1099315859);
emit_32(3276480512);
emit_32(1104855066);
emit_32(1099149083);
emit_32(3276480512);
emit_32(1106903040);
emit_32(1096909482);
emit_32(3276480512);
emit_32(1108123661);
emit_32(1095417463);
emit_32(3276480512);
emit_32(1109147648);
emit_32(1095014180);
emit_32(3276480512);
emit_32(1110171661);
emit_32(1094740188);
emit_32(3276480512);
emit_32(1111195648);
emit_32(1094116495);
emit_32(3276480512);
emit_32(1112219661);
emit_32(1094245994);
emit_32(3276480512);
emit_32(1113243648);
emit_32(1093480953);
emit_32(3276480512);
emit_32(1114267661);
emit_32(1095278002);
emit_32(3276480512);
emit_32(1115291648);
emit_32(1094897264);
emit_32(3276480512);
emit_32(1116000263);
emit_32(1092706055);
emit_32(3276480512);
emit_32(1116512256);
emit_32(1091291358);
emit_32(3276480512);
emit_32(1117024263);
emit_32(1090889429);
emit_32(3276480512);
emit_32(1117536256);
emit_32(1091305986);
emit_32(3276480512);
emit_32(1118048263);
emit_32(1092298620);
emit_32(3276480512);
emit_32(1118560256);
emit_32(1092551684);
emit_32(3276480512);
emit_32(1119072263);
emit_32(1092611295);
emit_32(3276480512);
emit_32(1119584256);
emit_32(1091871042);
emit_32(3276480512);
emit_32(1120096263);
emit_32(1090718773);
emit_32(3276480512);
emit_32(1120608322);
emit_32(1090155373);
emit_32(3276480512);
emit_32(1121120289);
emit_32(1087795930);
emit_32(3276480512);
emit_32(1121632256);
emit_32(1087063877);
emit_32(3276480512);
emit_32(1122144223);
emit_32(1088019466);
emit_32(3276480512);
emit_32(1122656322);
emit_32(1090277322);
emit_32(3276480512);
emit_32(1123168289);
emit_32(1091326066);
emit_32(3276480512);
emit_32(1123680256);
emit_32(1091923220);
emit_32(3276480512);
emit_32(1124132848);
emit_32(1091702285);
emit_32(3276480512);
emit_32(1124388897);
emit_32(1089725142);
emit_32(3276480512);
emit_32(1124644880);
emit_32(1087013462);
emit_32(3276480512);
emit_32(1124900864);
emit_32(1086960152);
emit_32(3276480512);
emit_32(1125156848);
emit_32(1085873156);
emit_32(3276480512);
emit_32(1125412897);
emit_32(1082634587);
emit_32(3276480512);
emit_32(1125668880);
emit_32(1076934109);
emit_32(3276480512);
emit_32(1125924864);
emit_32(1073398227);
emit_32(3276480512);
emit_32(1126180848);
emit_32(1074881249);
emit_32(3276480512);
emit_32(1126436897);
emit_32(1074681558);
emit_32(3276480512);
emit_32(1126692880);
emit_32(1066383253);
emit_32(3276480512);
emit_32(1126948864);
emit_32(3190627924);
emit_32(3276480512);
emit_32(1127204848);
emit_32(3210951893);
emit_32(3276480512);
emit_32(1127460897);
emit_32(3211101009);
emit_32(3276480512);
emit_32(1127716880);
emit_32(3222970470);
emit_32(3276480512);
emit_32(1127972864);
emit_32(3228079929);
emit_32(3276480512);
emit_32(1128228848);
emit_32(3233825706);
emit_32(3276480512);
emit_32(1128484897);
emit_32(3233542381);
emit_32(3276480512);
emit_32(1128740880);
emit_32(3232104805);
emit_32(3276480512);
emit_32(1128996864);
emit_32(3230112405);
emit_32(3276480512);
emit_32(1129252848);
emit_32(3231152970);
emit_32(3276480512);
emit_32(1129508897);
emit_32(3231464292);
emit_32(3276480512);
emit_32(1129764880);
emit_32(3231339491);
emit_32(3276480512);
emit_32(1130020864);
emit_32(3231844149);
emit_32(3276480512);
emit_32(1130276848);
emit_32(3231999318);
emit_32(3276480512);
emit_32(1130532897);
emit_32(3224338359);
emit_32(3276480512);
emit_32(1130788880);
emit_32(1034571239);
emit_32(3276480512);
emit_32(1131044864);
emit_32(1073783180);
emit_32(3276480512);
emit_32(1131300848);
emit_32(1077514055);
emit_32(3276480512);
emit_32(1131556897);
emit_32(1081268167);
emit_32(3276480512);
emit_32(1131812880);
emit_32(1085146577);
emit_32(3276480512);
emit_32(1132068864);
emit_32(1091014199);
emit_32(3276480512);
emit_32(1081737216);
emit_32(1100121322);
emit_32(3276736496);
emit_32(1090125824);
emit_32(1099396180);
emit_32(3276736496);
emit_32(1094418484);
emit_32(1099281098);
emit_32(3276736496);
emit_32(1098514432);
emit_32(1098942251);
emit_32(3276736496);
emit_32(1100759066);
emit_32(1098739981);
emit_32(3276736496);
emit_32(1102807040);
emit_32(1097837366);
emit_32(3276736496);
emit_32(1104855066);
emit_32(1096300469);
emit_32(3276736496);
emit_32(1106903040);
emit_32(1095044694);
emit_32(3276736496);
emit_32(1108123661);
emit_32(1095162764);
emit_32(3276736496);
emit_32(1109147648);
emit_32(1095334730);
emit_32(3276736496);
emit_32(1110171661);
emit_32(1095152697);
emit_32(3276736496);
emit_32(1111195648);
emit_32(1094407894);
emit_32(3276736496);
emit_32(1112219661);
emit_32(1093563371);
emit_32(3276736496);
emit_32(1113243648);
emit_32(1092844257);
emit_32(3276736496);
emit_32(1114267661);
emit_32(1093382386);
emit_32(3276736496);
emit_32(1115291648);
emit_32(1092541009);
emit_32(3276736496);
emit_32(1116000263);
emit_32(1091687762);
emit_32(3276736496);
emit_32(1116512256);
emit_32(1088040290);
emit_32(3276736496);
emit_32(1117024263);
emit_32(1088119038);
emit_32(3276736496);
emit_32(1117536256);
emit_32(1088383007);
emit_32(3276736496);
emit_32(1118048263);
emit_32(1090949575);
emit_32(3276736496);
emit_32(1118560256);
emit_32(1091368575);
emit_32(3276736496);
emit_32(1119072263);
emit_32(1091839008);
emit_32(3276736496);
emit_32(1119584256);
emit_32(1091040497);
emit_32(3276736496);
emit_32(1120096263);
emit_32(1088659118);
emit_32(3276736496);
emit_32(1120608322);
emit_32(1086563119);
emit_32(3276736496);
emit_32(1121120289);
emit_32(1083266480);
emit_32(3276736496);
emit_32(1121632256);
emit_32(1082063323);
emit_32(3276736496);
emit_32(1122144223);
emit_32(1086818322);
emit_32(3276736496);
emit_32(1122656322);
emit_32(1089302105);
emit_32(3276736496);
emit_32(1123168289);
emit_32(1090938523);
emit_32(3276736496);
emit_32(1123680256);
emit_32(1091787911);
emit_32(3276736496);
emit_32(1124132848);
emit_32(1091673658);
emit_32(3276736496);
emit_32(1124388897);
emit_32(1091250789);
emit_32(3276736496);
emit_32(1124644880);
emit_32(1088596245);
emit_32(3276736496);
emit_32(1124900864);
emit_32(1086620707);
emit_32(3276736496);
emit_32(1125156848);
emit_32(1083915591);
emit_32(3276736496);
emit_32(1125412897);
emit_32(1083242195);
emit_32(3276736496);
emit_32(1125668880);
emit_32(1083662443);
emit_32(3276736496);
emit_32(1125924864);
emit_32(1080051525);
emit_32(3276736496);
emit_32(1126180848);
emit_32(1078023915);
emit_32(3276736496);
emit_32(1126436897);
emit_32(1076481418);
emit_32(3276736496);
emit_32(1126692880);
emit_32(1073065367);
emit_32(3276736496);
emit_32(1126948864);
emit_32(1068007204);
emit_32(3276736496);
emit_32(1127204848);
emit_32(1059175291);
emit_32(3276736496);
emit_32(1127460897);
emit_32(3191698780);
emit_32(3276736496);
emit_32(1127716880);
emit_32(3213224166);
emit_32(3276736496);
emit_32(1127972864);
emit_32(3223725026);
emit_32(3276736496);
emit_32(1128228848);
emit_32(3228029430);
emit_32(3276736496);
emit_32(1128484897);
emit_32(3226148159);
emit_32(3276736496);
emit_32(1128740880);
emit_32(3225760353);
emit_32(3276736496);
emit_32(1128996864);
emit_32(3222121585);
emit_32(3276736496);
emit_32(1129252848);
emit_32(3225539356);
emit_32(3276736496);
emit_32(1129508897);
emit_32(3229882998);
emit_32(3276736496);
emit_32(1129764880);
emit_32(3227190108);
emit_32(3276736496);
emit_32(1130020864);
emit_32(3228912960);
emit_32(3276736496);
emit_32(1130276848);
emit_32(3228921307);
emit_32(3276736496);
emit_32(1130532897);
emit_32(3219664184);
emit_32(3276736496);
emit_32(1130788880);
emit_32(1065871800);
emit_32(3276736496);
emit_32(1131044864);
emit_32(1077962552);
emit_32(3276736496);
emit_32(1131300848);
emit_32(1082028972);
emit_32(3276736496);
emit_32(1131556897);
emit_32(1084764119);
emit_32(3276736496);
emit_32(1131812880);
emit_32(1086553745);
emit_32(3276736496);
emit_32(1132068864);
emit_32(1092505651);
emit_32(3276736496);
emit_32(1081737216);
emit_32(1099020213);
emit_32(3276992545);
emit_32(1090125824);
emit_32(1098714186);
emit_32(3276992545);
emit_32(1094418484);
emit_32(1097828034);
emit_32(3276992545);
emit_32(1098514432);
emit_32(1097529085);
emit_32(3276992545);
emit_32(1100759066);
emit_32(1097159252);
emit_32(3276992545);
emit_32(1102807040);
emit_32(1096861667);
emit_32(3276992545);
emit_32(1104855066);
emit_32(1094929036);
emit_32(3276992545);
emit_32(1106903040);
emit_32(1095502502);
emit_32(3276992545);
emit_32(1108123661);
emit_32(1095915851);
emit_32(3276992545);
emit_32(1109147648);
emit_32(1095718928);
emit_32(3276992545);
emit_32(1110171661);
emit_32(1095125539);
emit_32(3276992545);
emit_32(1111195648);
emit_32(1094669094);
emit_32(3276992545);
emit_32(1112219661);
emit_32(1093180431);
emit_32(3276992545);
emit_32(1113243648);
emit_32(1091863545);
emit_32(3276992545);
emit_32(1114267661);
emit_32(1091778558);
emit_32(3276992545);
emit_32(1115291648);
emit_32(1091298751);
emit_32(3276992545);
emit_32(1116000263);
emit_32(1089644695);
emit_32(3276992545);
emit_32(1116512256);
emit_32(1086301730);
emit_32(3276992545);
emit_32(1117024263);
emit_32(1086163570);
emit_32(3276992545);
emit_32(1117536256);
emit_32(1086958244);
emit_32(3276992545);
emit_32(1118048263);
emit_32(1089172396);
emit_32(3276992545);
emit_32(1118560256);
emit_32(1089779354);
emit_32(3276992545);
emit_32(1119072263);
emit_32(1090296616);
emit_32(3276992545);
emit_32(1119584256);
emit_32(1089775033);
emit_32(3276992545);
emit_32(1120096263);
emit_32(1085622735);
emit_32(3276992545);
emit_32(1120608322);
emit_32(1082413128);
emit_32(3276992545);
emit_32(1121120289);
emit_32(1076491106);
emit_32(3276992545);
emit_32(1121632256);
emit_32(1082562760);
emit_32(3276992545);
emit_32(1122144223);
emit_32(1085964047);
emit_32(3276992545);
emit_32(1122656322);
emit_32(1088268397);
emit_32(3276992545);
emit_32(1123168289);
emit_32(1091065421);
emit_32(3276992545);
emit_32(1123680256);
emit_32(1091881444);
emit_32(3276992545);
emit_32(1124132848);
emit_32(1092768655);
emit_32(3276992545);
emit_32(1124388897);
emit_32(1091984761);
emit_32(3276992545);
emit_32(1124644880);
emit_32(1091281397);
emit_32(3276992545);
emit_32(1124900864);
emit_32(1090331513);
emit_32(3276992545);
emit_32(1125156848);
emit_32(1084916184);
emit_32(3276992545);
emit_32(1125412897);
emit_32(1084859729);
emit_32(3276992545);
emit_32(1125668880);
emit_32(1084191807);
emit_32(3276992545);
emit_32(1125924864);
emit_32(1084800757);
emit_32(3276992545);
emit_32(1126180848);
emit_32(1082243678);
emit_32(3276992545);
emit_32(1126436897);
emit_32(1082662102);
emit_32(3276992545);
emit_32(1126692880);
emit_32(1080485887);
emit_32(3276992545);
emit_32(1126948864);
emit_32(1077722135);
emit_32(3276992545);
emit_32(1127204848);
emit_32(1073495534);
emit_32(3276992545);
emit_32(1127460897);
emit_32(1067137892);
emit_32(3276992545);
emit_32(1127716880);
emit_32(3201755546);
emit_32(3276992545);
emit_32(1127972864);
emit_32(3219314631);
emit_32(3276992545);
emit_32(1128228848);
emit_32(3220786161);
emit_32(3276992545);
emit_32(1128484897);
emit_32(3215535647);
emit_32(3276992545);
emit_32(1128740880);
emit_32(3219082434);
emit_32(3276992545);
emit_32(1128996864);
emit_32(3207719209);
emit_32(3276992545);
emit_32(1129252848);
emit_32(3219319329);
emit_32(3276992545);
emit_32(1129508897);
emit_32(3222885200);
emit_32(3276992545);
emit_32(1129764880);
emit_32(3223784878);
emit_32(3276992545);
emit_32(1130020864);
emit_32(3226090865);
emit_32(3276992545);
emit_32(1130276848);
emit_32(3223180269);
emit_32(3276992545);
emit_32(1130532897);
emit_32(3210523051);
emit_32(3276992545);
emit_32(1130788880);
emit_32(1069117184);
emit_32(3276992545);
emit_32(1131044864);
emit_32(1079791646);
emit_32(3276992545);
emit_32(1131300848);
emit_32(1085107318);
emit_32(3276992545);
emit_32(1131556897);
emit_32(1086920663);
emit_32(3276992545);
emit_32(1131812880);
emit_32(1088946029);
emit_32(3276992545);
emit_32(1132068864);
emit_32(1093373998);
emit_32(3276992545);
emit_32(1081737216);
emit_32(1097108292);
emit_32(3277248528);
emit_32(1090125824);
emit_32(1096843002);
emit_32(3277248528);
emit_32(1094418484);
emit_32(1095568248);
emit_32(3277248528);
emit_32(1098514432);
emit_32(1095018899);
emit_32(3277248528);
emit_32(1100759066);
emit_32(1094782235);
emit_32(3277248528);
emit_32(1102807040);
emit_32(1095180170);
emit_32(3277248528);
emit_32(1104855066);
emit_32(1095450493);
emit_32(3277248528);
emit_32(1106903040);
emit_32(1095069965);
emit_32(3277248528);
emit_32(1108123661);
emit_32(1095994599);
emit_32(3277248528);
emit_32(1109147648);
emit_32(1095664822);
emit_32(3277248528);
emit_32(1110171661);
emit_32(1095335569);
emit_32(3277248528);
emit_32(1111195648);
emit_32(1094159381);
emit_32(3277248528);
emit_32(1112219661);
emit_32(1093190812);
emit_32(3277248528);
emit_32(1113243648);
emit_32(1092024942);
emit_32(3277248528);
emit_32(1114267661);
emit_32(1092719162);
emit_32(3277248528);
emit_32(1115291648);
emit_32(1091950724);
emit_32(3277248528);
emit_32(1116000263);
emit_32(1090594496);
emit_32(3277248528);
emit_32(1116512256);
emit_32(1087264889);
emit_32(3277248528);
emit_32(1117024263);
emit_32(1085915770);
emit_32(3277248528);
emit_32(1117536256);
emit_32(1085498563);
emit_32(3277248528);
emit_32(1118048263);
emit_32(1087685913);
emit_32(3277248528);
emit_32(1118560256);
emit_32(1089772496);
emit_32(3277248528);
emit_32(1119072263);
emit_32(1090845682);
emit_32(3277248528);
emit_32(1119584256);
emit_32(1090463340);
emit_32(3277248528);
emit_32(1120096263);
emit_32(1085056987);
emit_32(3277248528);
emit_32(1120608322);
emit_32(1080738301);
emit_32(3277248528);
emit_32(1121120289);
emit_32(1078775408);
emit_32(3277248528);
emit_32(1121632256);
emit_32(1086143815);
emit_32(3277248528);
emit_32(1122144223);
emit_32(1089267858);
emit_32(3277248528);
emit_32(1122656322);
emit_32(1090842075);
emit_32(3277248528);
emit_32(1123168289);
emit_32(1092362164);
emit_32(3277248528);
emit_32(1123680256);
emit_32(1092866068);
emit_32(3277248528);
emit_32(1124132848);
emit_32(1092973547);
emit_32(3277248528);
emit_32(1124388897);
emit_32(1093272810);
emit_32(3277248528);
emit_32(1124644880);
emit_32(1093540826);
emit_32(3277248528);
emit_32(1124900864);
emit_32(1091662900);
emit_32(3277248528);
emit_32(1125156848);
emit_32(1087337472);
emit_32(3277248528);
emit_32(1125412897);
emit_32(1084271960);
emit_32(3277248528);
emit_32(1125668880);
emit_32(1086273209);
emit_32(3277248528);
emit_32(1125924864);
emit_32(1087017908);
emit_32(3277248528);
emit_32(1126180848);
emit_32(1086137020);
emit_32(3277248528);
emit_32(1126436897);
emit_32(1084291023);
emit_32(3277248528);
emit_32(1126692880);
emit_32(1084252771);
emit_32(3277248528);
emit_32(1126948864);
emit_32(1082890062);
emit_32(3277248528);
emit_32(1127204848);
emit_32(1080838922);
emit_32(3277248528);
emit_32(1127460897);
emit_32(1077790963);
emit_32(3277248528);
emit_32(1127716880);
emit_32(1069026504);
emit_32(3277248528);
emit_32(1127972864);
emit_32(3200230497);
emit_32(3277248528);
emit_32(1128228848);
emit_32(3212093549);
emit_32(3277248528);
emit_32(1128484897);
emit_32(3187505818);
emit_32(3277248528);
emit_32(1128740880);
emit_32(3186118946);
emit_32(3277248528);
emit_32(1128996864);
emit_32(3163350412);
emit_32(3277248528);
emit_32(1129252848);
emit_32(3213662303);
emit_32(3277248528);
emit_32(1129508897);
emit_32(3213755333);
emit_32(3277248528);
emit_32(1129764880);
emit_32(3220593894);
emit_32(3277248528);
emit_32(1130020864);
emit_32(3222323667);
emit_32(3277248528);
emit_32(1130276848);
emit_32(3215526587);
emit_32(3277248528);
emit_32(1130532897);
emit_32(1045835140);
emit_32(3277248528);
emit_32(1130788880);
emit_32(1075469835);
emit_32(3277248528);
emit_32(1131044864);
emit_32(1083532819);
emit_32(3277248528);
emit_32(1131300848);
emit_32(1086949121);
emit_32(3277248528);
emit_32(1131556897);
emit_32(1088845177);
emit_32(3277248528);
emit_32(1131812880);
emit_32(1090603115);
emit_32(3277248528);
emit_32(1132068864);
emit_32(1092936742);
emit_32(3277248528);
emit_32(1081737216);
emit_32(1096047133);
emit_32(3277504512);
emit_32(1090125824);
emit_32(1095575064);
emit_32(3277504512);
emit_32(1094418484);
emit_32(1094514324);
emit_32(3277504512);
emit_32(1098514432);
emit_32(1094409781);
emit_32(3277504512);
emit_32(1100759066);
emit_32(1094209084);
emit_32(3277504512);
emit_32(1102807040);
emit_32(1094844731);
emit_32(3277504512);
emit_32(1104855066);
emit_32(1094741236);
emit_32(3277504512);
emit_32(1106903040);
emit_32(1095085484);
emit_32(3277504512);
emit_32(1108123661);
emit_32(1095114110);
emit_32(3277504512);
emit_32(1109147648);
emit_32(1094994362);
emit_32(3277504512);
emit_32(1110171661);
emit_32(1095239939);
emit_32(3277504512);
emit_32(1111195648);
emit_32(1093966548);
emit_32(3277504512);
emit_32(1112219661);
emit_32(1092807347);
emit_32(3277504512);
emit_32(1113243648);
emit_32(1093061208);
emit_32(3277504512);
emit_32(1114267661);
emit_32(1092621120);
emit_32(3277504512);
emit_32(1115291648);
emit_32(1092574889);
emit_32(3277504512);
emit_32(1116000263);
emit_32(1091199283);
emit_32(3277504512);
emit_32(1116512256);
emit_32(1087281792);
emit_32(3277504512);
emit_32(1117024263);
emit_32(1084862056);
emit_32(3277504512);
emit_32(1117536256);
emit_32(1084838904);
emit_32(3277504512);
emit_32(1118048263);
emit_32(1088961905);
emit_32(3277504512);
emit_32(1118560256);
emit_32(1090683457);
emit_32(3277504512);
emit_32(1119072263);
emit_32(1091541548);
emit_32(3277504512);
emit_32(1119584256);
emit_32(1089950880);
emit_32(3277504512);
emit_32(1120096263);
emit_32(1085097923);
emit_32(3277504512);
emit_32(1120608322);
emit_32(1082634273);
emit_32(3277504512);
emit_32(1121120289);
emit_32(1085048283);
emit_32(3277504512);
emit_32(1121632256);
emit_32(1089879786);
emit_32(3277504512);
emit_32(1122144223);
emit_32(1091437760);
emit_32(3277504512);
emit_32(1122656322);
emit_32(1092036938);
emit_32(3277504512);
emit_32(1123168289);
emit_32(1091792777);
emit_32(3277504512);
emit_32(1123680256);
emit_32(1092759427);
emit_32(3277504512);
emit_32(1124132848);
emit_32(1094303141);
emit_32(3277504512);
emit_32(1124388897);
emit_32(1094722047);
emit_32(3277504512);
emit_32(1124644880);
emit_32(1095047211);
emit_32(3277504512);
emit_32(1124900864);
emit_32(1093500980);
emit_32(3277504512);
emit_32(1125156848);
emit_32(1089802590);
emit_32(3277504512);
emit_32(1125412897);
emit_32(1086478164);
emit_32(3277504512);
emit_32(1125668880);
emit_32(1087292152);
emit_32(3277504512);
emit_32(1125924864);
emit_32(1088463244);
emit_32(3277504512);
emit_32(1126180848);
emit_32(1088955697);
emit_32(3277504512);
emit_32(1126436897);
emit_32(1086983577);
emit_32(3277504512);
emit_32(1126692880);
emit_32(1087333382);
emit_32(3277504512);
emit_32(1126948864);
emit_32(1086099795);
emit_32(3277504512);
emit_32(1127204848);
emit_32(1085722623);
emit_32(3277504512);
emit_32(1127460897);
emit_32(1082769224);
emit_32(3277504512);
emit_32(1127716880);
emit_32(1075827190);
emit_32(3277504512);
emit_32(1127972864);
emit_32(1066775588);
emit_32(3277504512);
emit_32(1128228848);
emit_32(1067171279);
emit_32(3277504512);
emit_32(1128484897);
emit_32(1067001745);
emit_32(3277504512);
emit_32(1128740880);
emit_32(1067686843);
emit_32(3277504512);
emit_32(1128996864);
emit_32(1065883795);
emit_32(3277504512);
emit_32(1129252848);
emit_32(1040732182);
emit_32(3277504512);
emit_32(1129508897);
emit_32(3197189593);
emit_32(3277504512);
emit_32(1129764880);
emit_32(3203486016);
emit_32(3277504512);
emit_32(1130020864);
emit_32(3211855951);
emit_32(3277504512);
emit_32(1130276848);
emit_32(3212062612);
emit_32(3277504512);
emit_32(1130532897);
emit_32(1061179313);
emit_32(3277504512);
emit_32(1130788880);
emit_32(1076017024);
emit_32(3277504512);
emit_32(1131044864);
emit_32(1084602198);
emit_32(3277504512);
emit_32(1131300848);
emit_32(1088897291);
emit_32(3277504512);
emit_32(1131556897);
emit_32(1090987995);
emit_32(3277504512);
emit_32(1131812880);
emit_32(1091140101);
emit_32(3277504512);
emit_32(1132068864);
emit_32(1093070540);
emit_32(3277504512);
emit_32(1081737216);
emit_32(1095782787);
emit_32(3277760496);
emit_32(1090125824);
emit_32(1095949510);
emit_32(3277760496);
emit_32(1094418484);
emit_32(1095197157);
emit_32(3277760496);
emit_32(1098514432);
emit_32(1093509684);
emit_32(3277760496);
emit_32(1100759066);
emit_32(1093932365);
emit_32(3277760496);
emit_32(1102807040);
emit_32(1094883004);
emit_32(3277760496);
emit_32(1104855066);
emit_32(1095364195);
emit_32(3277760496);
emit_32(1106903040);
emit_32(1095467794);
emit_32(3277760496);
emit_32(1108123661);
emit_32(1095382231);
emit_32(3277760496);
emit_32(1109147648);
emit_32(1095263532);
emit_32(3277760496);
emit_32(1110171661);
emit_32(1094240751);
emit_32(3277760496);
emit_32(1111195648);
emit_32(1093792485);
emit_32(3277760496);
emit_32(1112219661);
emit_32(1093773400);
emit_32(3277760496);
emit_32(1113243648);
emit_32(1093969799);
emit_32(3277760496);
emit_32(1114267661);
emit_32(1092613235);
emit_32(3277760496);
emit_32(1115291648);
emit_32(1091641803);
emit_32(3277760496);
emit_32(1116000263);
emit_32(1090223425);
emit_32(3277760496);
emit_32(1116512256);
emit_32(1086325449);
emit_32(3277760496);
emit_32(1117024263);
emit_32(1086748822);
emit_32(3277760496);
emit_32(1117536256);
emit_32(1088214081);
emit_32(3277760496);
emit_32(1118048263);
emit_32(1090683918);
emit_32(3277760496);
emit_32(1118560256);
emit_32(1091490273);
emit_32(3277760496);
emit_32(1119072263);
emit_32(1092135263);
emit_32(3277760496);
emit_32(1119584256);
emit_32(1090576429);
emit_32(3277760496);
emit_32(1120096263);
emit_32(1085919021);
emit_32(3277760496);
emit_32(1120608322);
emit_32(1084273260);
emit_32(3277760496);
emit_32(1121120289);
emit_32(1088748708);
emit_32(3277760496);
emit_32(1121632256);
emit_32(1091512618);
emit_32(3277760496);
emit_32(1122144223);
emit_32(1092476008);
emit_32(3277760496);
emit_32(1122656322);
emit_32(1093289483);
emit_32(3277760496);
emit_32(1123168289);
emit_32(1093443623);
emit_32(3277760496);
emit_32(1123680256);
emit_32(1093739846);
emit_32(3277760496);
emit_32(1124132848);
emit_32(1095381916);
emit_32(3277760496);
emit_32(1124388897);
emit_32(1095171886);
emit_32(3277760496);
emit_32(1124644880);
emit_32(1094833196);
emit_32(3277760496);
emit_32(1124900864);
emit_32(1094087134);
emit_32(3277760496);
emit_32(1125156848);
emit_32(1091517725);
emit_32(3277760496);
emit_32(1125412897);
emit_32(1088065624);
emit_32(3277760496);
emit_32(1125668880);
emit_32(1089789588);
emit_32(3277760496);
emit_32(1125924864);
emit_32(1090797741);
emit_32(3277760496);
emit_32(1126180848);
emit_32(1090448785);
emit_32(3277760496);
emit_32(1126436897);
emit_32(1089515972);
emit_32(3277760496);
emit_32(1126692880);
emit_32(1088794300);
emit_32(3277760496);
emit_32(1126948864);
emit_32(1086317606);
emit_32(3277760496);
emit_32(1127204848);
emit_32(1085853170);
emit_32(3277760496);
emit_32(1127460897);
emit_32(1083759395);
emit_32(3277760496);
emit_32(1127716880);
emit_32(1079594766);
emit_32(3277760496);
emit_32(1127972864);
emit_32(1077764623);
emit_32(3277760496);
emit_32(1128228848);
emit_32(1072514403);
emit_32(3277760496);
emit_32(1128484897);
emit_32(1067984303);
emit_32(3277760496);
emit_32(1128740880);
emit_32(1066412026);
emit_32(3277760496);
emit_32(1128996864);
emit_32(1069352569);
emit_32(3277760496);
emit_32(1129252848);
emit_32(1072856490);
emit_32(3277760496);
emit_32(1129508897);
emit_32(1059155041);
emit_32(3277760496);
emit_32(1129764880);
emit_32(1050172017);
emit_32(3277760496);
emit_32(1130020864);
emit_32(3157538945);
emit_32(3277760496);
emit_32(1130276848);
emit_32(3194387429);
emit_32(3277760496);
emit_32(1130532897);
emit_32(1059188931);
emit_32(3277760496);
emit_32(1130788880);
emit_32(1077509609);
emit_32(3277760496);
emit_32(1131044864);
emit_32(1085587356);
emit_32(3277760496);
emit_32(1131300848);
emit_32(1088891944);
emit_32(3277760496);
emit_32(1131556897);
emit_32(1090308297);
emit_32(3277760496);
emit_32(1131812880);
emit_32(1091359484);
emit_32(3277760496);
emit_32(1132068864);
emit_32(1093623035);
emit_32(3277760496);
emit_32(1081737216);
emit_32(1094685347);
emit_32(3278016545);
emit_32(1090125824);
emit_32(1095642592);
emit_32(3278016545);
emit_32(1094418484);
emit_32(1094847876);
emit_32(3278016545);
emit_32(1098514432);
emit_32(1093374732);
emit_32(3278016545);
emit_32(1100759066);
emit_32(1094384720);
emit_32(3278016545);
emit_32(1102807040);
emit_32(1095400371);
emit_32(3278016545);
emit_32(1104855066);
emit_32(1095484362);
emit_32(3278016545);
emit_32(1106903040);
emit_32(1094502790);
emit_32(3278016545);
emit_32(1108123661);
emit_32(1093875112);
emit_32(3278016545);
emit_32(1109147648);
emit_32(1093633206);
emit_32(3278016545);
emit_32(1110171661);
emit_32(1093418667);
emit_32(3278016545);
emit_32(1111195648);
emit_32(1093659211);
emit_32(3278016545);
emit_32(1112219661);
emit_32(1093957426);
emit_32(3278016545);
emit_32(1113243648);
emit_32(1093739846);
emit_32(3278016545);
emit_32(1114267661);
emit_32(1093359842);
emit_32(3278016545);
emit_32(1115291648);
emit_32(1091739111);
emit_32(3278016545);
emit_32(1116000263);
emit_32(1089668246);
emit_32(3278016545);
emit_32(1116512256);
emit_32(1087761327);
emit_32(3278016545);
emit_32(1117024263);
emit_32(1088382734);
emit_32(3278016545);
emit_32(1117536256);
emit_32(1089936850);
emit_32(3278016545);
emit_32(1118048263);
emit_32(1091570688);
emit_32(3278016545);
emit_32(1118560256);
emit_32(1092069527);
emit_32(3278016545);
emit_32(1119072263);
emit_32(1091509504);
emit_32(3278016545);
emit_32(1119584256);
emit_32(1090092228);
emit_32(3278016545);
emit_32(1120096263);
emit_32(1086488041);
emit_32(3278016545);
emit_32(1120608322);
emit_32(1087594478);
emit_32(3278016545);
emit_32(1121120289);
emit_32(1091111695);
emit_32(3278016545);
emit_32(1121632256);
emit_32(1092917028);
emit_32(3278016545);
emit_32(1122144223);
emit_32(1094162946);
emit_32(3278016545);
emit_32(1122656322);
emit_32(1094317402);
emit_32(3278016545);
emit_32(1123168289);
emit_32(1094797545);
emit_32(3278016545);
emit_32(1123680256);
emit_32(1095272759);
emit_32(3278016545);
emit_32(1124132848);
emit_32(1096382467);
emit_32(3278016545);
emit_32(1124388897);
emit_32(1095677824);
emit_32(3278016545);
emit_32(1124644880);
emit_32(1094211076);
emit_32(3278016545);
emit_32(1124900864);
emit_32(1093289168);
emit_32(3278016545);
emit_32(1125156848);
emit_32(1091399110);
emit_32(3278016545);
emit_32(1125412897);
emit_32(1091357282);
emit_32(3278016545);
emit_32(1125668880);
emit_32(1092084459);
emit_32(3278016545);
emit_32(1125924864);
emit_32(1092576409);
emit_32(3278016545);
emit_32(1126180848);
emit_32(1091310967);
emit_32(3278016545);
emit_32(1126436897);
emit_32(1089767358);
emit_32(3278016545);
emit_32(1126692880);
emit_32(1088833559);
emit_32(3278016545);
emit_32(1126948864);
emit_32(1088084855);
emit_32(3278016545);
emit_32(1127204848);
emit_32(1086548397);
emit_32(3278016545);
emit_32(1127460897);
emit_32(1083608358);
emit_32(3278016545);
emit_32(1127716880);
emit_32(1083278790);
emit_32(3278016545);
emit_32(1127972864);
emit_32(1080394661);
emit_32(3278016545);
emit_32(1128228848);
emit_32(1077852158);
emit_32(3278016545);
emit_32(1128484897);
emit_32(1069478650);
emit_32(3278016545);
emit_32(1128740880);
emit_32(1072553494);
emit_32(3278016545);
emit_32(1128996864);
emit_32(1069471100);
emit_32(3278016545);
emit_32(1129252848);
emit_32(1068704381);
emit_32(3278016545);
emit_32(1129508897);
emit_32(1063054771);
emit_32(3278016545);
emit_32(1129764880);
emit_32(1066657309);
emit_32(3278016545);
emit_32(1130020864);
emit_32(1058799582);
emit_32(3278016545);
emit_32(1130276848);
emit_32(1065716610);
emit_32(3278016545);
emit_32(1130532897);
emit_32(1070221796);
emit_32(3278016545);
emit_32(1130788880);
emit_32(1082372632);
emit_32(3278016545);
emit_32(1131044864);
emit_32(1085584357);
emit_32(3278016545);
emit_32(1131300848);
emit_32(1087618406);
emit_32(3278016545);
emit_32(1131556897);
emit_32(1089074731);
emit_32(3278016545);
emit_32(1131812880);
emit_32(1091116256);
emit_32(3278016545);
emit_32(1132068864);
emit_32(1093443623);
emit_32(3278016545);
emit_32(1081737216);
emit_32(1093100529);
emit_32(3278272528);
emit_32(1090125824);
emit_32(1094102968);
emit_32(3278272528);
emit_32(1094418484);
emit_32(1093438380);
emit_32(3278272528);
emit_32(1098514432);
emit_32(1093242192);
emit_32(3278272528);
emit_32(1100759066);
emit_32(1093664663);
emit_32(3278272528);
emit_32(1102807040);
emit_32(1094290978);
emit_32(3278272528);
emit_32(1104855066);
emit_32(1094142185);
emit_32(3278272528);
emit_32(1106903040);
emit_32(1092722622);
emit_32(3278272528);
emit_32(1108123661);
emit_32(1093048205);
emit_32(3278272528);
emit_32(1109147648);
emit_32(1092329868);
emit_32(3278272528);
emit_32(1110171661);
emit_32(1092322308);
emit_32(3278272528);
emit_32(1111195648);
emit_32(1093430621);
emit_32(3278272528);
emit_32(1112219661);
emit_32(1093536317);
emit_32(3278272528);
emit_32(1113243648);
emit_32(1092950268);
emit_32(3278272528);
emit_32(1114267661);
emit_32(1093055336);
emit_32(3278272528);
emit_32(1115291648);
emit_32(1091513918);
emit_32(3278272528);
emit_32(1116000263);
emit_32(1090353428);
emit_32(3278272528);
emit_32(1116512256);
emit_32(1091025450);
emit_32(3278272528);
emit_32(1117024263);
emit_32(1091303186);
emit_32(3278272528);
emit_32(1117536256);
emit_32(1091441535);
emit_32(3278272528);
emit_32(1118048263);
emit_32(1092287275);
emit_32(3278272528);
emit_32(1118560256);
emit_32(1092144259);
emit_32(3278272528);
emit_32(1119072263);
emit_32(1091616102);
emit_32(3278272528);
emit_32(1119584256);
emit_32(1091037110);
emit_32(3278272528);
emit_32(1120096263);
emit_32(1090309493);
emit_32(3278272528);
emit_32(1120608322);
emit_32(1091784220);
emit_32(3278272528);
emit_32(1121120289);
emit_32(1093152434);
emit_32(3278272528);
emit_32(1121632256);
emit_32(1094218836);
emit_32(3278272528);
emit_32(1122144223);
emit_32(1094752980);
emit_32(3278272528);
emit_32(1122656322);
emit_32(1095698796);
emit_32(3278272528);
emit_32(1123168289);
emit_32(1095918053);
emit_32(3278272528);
emit_32(1123680256);
emit_32(1096702912);
emit_32(3278272528);
emit_32(1124132848);
emit_32(1097339817);
emit_32(3278272528);
emit_32(1124388897);
emit_32(1095953075);
emit_32(3278272528);
emit_32(1124644880);
emit_32(1094317611);
emit_32(3278272528);
emit_32(1124900864);
emit_32(1093780950);
emit_32(3278272528);
emit_32(1125156848);
emit_32(1092660022);
emit_32(3278272528);
emit_32(1125412897);
emit_32(1092828633);
emit_32(3278272528);
emit_32(1125668880);
emit_32(1093621252);
emit_32(3278272528);
emit_32(1125924864);
emit_32(1093691821);
emit_32(3278272528);
emit_32(1126180848);
emit_32(1092496151);
emit_32(3278272528);
emit_32(1126436897);
emit_32(1091489371);
emit_32(3278272528);
emit_32(1126692880);
emit_32(1090315742);
emit_32(3278272528);
emit_32(1126948864);
emit_32(1088919605);
emit_32(3278272528);
emit_32(1127204848);
emit_32(1086524028);
emit_32(3278272528);
emit_32(1127460897);
emit_32(1084543520);
emit_32(3278272528);
emit_32(1127716880);
emit_32(1083661479);
emit_32(3278272528);
emit_32(1127972864);
emit_32(1082237198);
emit_32(3278272528);
emit_32(1128228848);
emit_32(1078013052);
emit_32(3278272528);
emit_32(1128484897);
emit_32(1072342353);
emit_32(3278272528);
emit_32(1128740880);
emit_32(1077011074);
emit_32(3278272528);
emit_32(1128996864);
emit_32(1078172393);
emit_32(3278272528);
emit_32(1129252848);
emit_32(1074035719);
emit_32(3278272528);
emit_32(1129508897);
emit_32(1073825416);
emit_32(3278272528);
emit_32(1129764880);
emit_32(1074307678);
emit_32(3278272528);
emit_32(1130020864);
emit_32(1070873927);
emit_32(3278272528);
emit_32(1130276848);
emit_32(1072403002);
emit_32(3278272528);
emit_32(1130532897);
emit_32(1077025838);
emit_32(3278272528);
emit_32(1130788880);
emit_32(1081902304);
emit_32(3278272528);
emit_32(1131044864);
emit_32(1085968619);
emit_32(3278272528);
emit_32(1131300848);
emit_32(1088231676);
emit_32(3278272528);
emit_32(1131556897);
emit_32(1090439956);
emit_32(3278272528);
emit_32(1131812880);
emit_32(1089744184);
emit_32(3278272528);
emit_32(1132068864);
emit_32(1092872988);
emit_32(3278272528);
emit_32(1081737216);
emit_32(1091412678);
emit_32(3278528512);
emit_32(1090125824);
emit_32(1091988504);
emit_32(3278528512);
emit_32(1094418484);
emit_32(1092226269);
emit_32(3278528512);
emit_32(1098514432);
emit_32(1092585521);
emit_32(3278528512);
emit_32(1100759066);
emit_32(1092575014);
emit_32(3278528512);
emit_32(1102807040);
emit_32(1092307292);
emit_32(3278528512);
emit_32(1104855066);
emit_32(1092661805);
emit_32(3278528512);
emit_32(1106903040);
emit_32(1092468123);
emit_32(3278528512);
emit_32(1108123661);
emit_32(1092120016);
emit_32(3278528512);
emit_32(1109147648);
emit_32(1091309048);
emit_32(3278528512);
emit_32(1110171661);
emit_32(1091564323);
emit_32(3278528512);
emit_32(1111195648);
emit_32(1092158059);
emit_32(3278528512);
emit_32(1112219661);
emit_32(1092138943);
emit_32(3278528512);
emit_32(1113243648);
emit_32(1092639785);
emit_32(3278528512);
emit_32(1114267661);
emit_32(1092158950);
emit_32(3278528512);
emit_32(1115291648);
emit_32(1091761330);
emit_32(3278528512);
emit_32(1116000263);
emit_32(1091873884);
emit_32(3278528512);
emit_32(1116512256);
emit_32(1093128002);
emit_32(3278528512);
emit_32(1117024263);
emit_32(1093545755);
emit_32(3278528512);
emit_32(1117536256);
emit_32(1093685844);
emit_32(3278528512);
emit_32(1118048263);
emit_32(1094474478);
emit_32(3278528512);
emit_32(1118560256);
emit_32(1093835057);
emit_32(3278528512);
emit_32(1119072263);
emit_32(1093247435);
emit_32(3278528512);
emit_32(1119584256);
emit_32(1092545770);
emit_32(3278528512);
emit_32(1120096263);
emit_32(1092881691);
emit_32(3278528512);
emit_32(1120608322);
emit_32(1093753687);
emit_32(3278528512);
emit_32(1121120289);
emit_32(1095402888);
emit_32(3278528512);
emit_32(1121632256);
emit_32(1096263454);
emit_32(3278528512);
emit_32(1122144223);
emit_32(1097648518);
emit_32(3278528512);
emit_32(1122656322);
emit_32(1098257845);
emit_32(3278528512);
emit_32(1123168289);
emit_32(1098906075);
emit_32(3278528512);
emit_32(1123680256);
emit_32(1097757884);
emit_32(3278528512);
emit_32(1124132848);
emit_32(1097095184);
emit_32(3278528512);
emit_32(1124388897);
emit_32(1096820772);
emit_32(3278528512);
emit_32(1124644880);
emit_32(1095881563);
emit_32(3278528512);
emit_32(1124900864);
emit_32(1095322462);
emit_32(3278528512);
emit_32(1125156848);
emit_32(1094560881);
emit_32(3278528512);
emit_32(1125412897);
emit_32(1094212020);
emit_32(3278528512);
emit_32(1125668880);
emit_32(1094591919);
emit_32(3278528512);
emit_32(1125924864);
emit_32(1094354836);
emit_32(3278528512);
emit_32(1126180848);
emit_32(1093487244);
emit_32(3278528512);
emit_32(1126436897);
emit_32(1092900566);
emit_32(3278528512);
emit_32(1126692880);
emit_32(1091131859);
emit_32(3278528512);
emit_32(1126948864);
emit_32(1088434303);
emit_32(3278528512);
emit_32(1127204848);
emit_32(1085602330);
emit_32(3278528512);
emit_32(1127460897);
emit_32(1084383381);
emit_32(3278528512);
emit_32(1127716880);
emit_32(1082990348);
emit_32(3278528512);
emit_32(1127972864);
emit_32(1081942359);
emit_32(3278528512);
emit_32(1128228848);
emit_32(1079707928);
emit_32(3278528512);
emit_32(1128484897);
emit_32(1076020757);
emit_32(3278528512);
emit_32(1128740880);
emit_32(1081959766);
emit_32(3278528512);
emit_32(1128996864);
emit_32(1081769302);
emit_32(3278528512);
emit_32(1129252848);
emit_32(1077543709);
emit_32(3278528512);
emit_32(1129508897);
emit_32(1078419522);
emit_32(3278528512);
emit_32(1129764880);
emit_32(1079325911);
emit_32(3278528512);
emit_32(1130020864);
emit_32(1076435784);
emit_32(3278528512);
emit_32(1130276848);
emit_32(1076442830);
emit_32(3278528512);
emit_32(1130532897);
emit_32(1078716269);
emit_32(3278528512);
emit_32(1130788880);
emit_32(1083099337);
emit_32(3278528512);
emit_32(1131044864);
emit_32(1086173385);
emit_32(3278528512);
emit_32(1131300848);
emit_32(1088001787);
emit_32(3278528512);
emit_32(1131556897);
emit_32(1091260069);
emit_32(3278528512);
emit_32(1131812880);
emit_32(1091015247);
emit_32(3278528512);
emit_32(1132068864);
emit_32(1093018740);
emit_32(3278528512);
emit_32(1081737216);
emit_32(1090509120);
emit_32(3278784496);
emit_32(1090125824);
emit_32(1091171244);
emit_32(3278784496);
emit_32(1094418484);
emit_32(1091637818);
emit_32(3278784496);
emit_32(1098514432);
emit_32(1091699621);
emit_32(3278784496);
emit_32(1100759066);
emit_32(1091545869);
emit_32(3278784496);
emit_32(1102807040);
emit_32(1092355642);
emit_32(3278784496);
emit_32(1104855066);
emit_32(1092176189);
emit_32(3278784496);
emit_32(1106903040);
emit_32(1091883961);
emit_32(3278784496);
emit_32(1108123661);
emit_32(1091185924);
emit_32(3278784496);
emit_32(1109147648);
emit_32(1091284217);
emit_32(3278784496);
emit_32(1110171661);
emit_32(1091038221);
emit_32(3278784496);
emit_32(1111195648);
emit_32(1091340725);
emit_32(3278784496);
emit_32(1112219661);
emit_32(1091305944);
emit_32(3278784496);
emit_32(1113243648);
emit_32(1091527623);
emit_32(3278784496);
emit_32(1114267661);
emit_32(1092680260);
emit_32(3278784496);
emit_32(1115291648);
emit_32(1093798461);
emit_32(3278784496);
emit_32(1116000263);
emit_32(1093476968);
emit_32(3278784496);
emit_32(1116512256);
emit_32(1094724669);
emit_32(3278784496);
emit_32(1117024263);
emit_32(1095984847);
emit_32(3278784496);
emit_32(1117536256);
emit_32(1096949223);
emit_32(3278784496);
emit_32(1118048263);
emit_32(1097185362);
emit_32(3278784496);
emit_32(1118560256);
emit_32(1096053529);
emit_32(3278784496);
emit_32(1119072263);
emit_32(1095554721);
emit_32(3278784496);
emit_32(1119584256);
emit_32(1094764095);
emit_32(3278784496);
emit_32(1120096263);
emit_32(1095516239);
emit_32(3278784496);
emit_32(1120608322);
emit_32(1096842687);
emit_32(3278784496);
emit_32(1121120289);
emit_32(1098862245);
emit_32(3278784496);
emit_32(1121632256);
emit_32(1099841038);
emit_32(3278784496);
emit_32(1122144223);
emit_32(1100521249);
emit_32(3278784496);
emit_32(1122656322);
emit_32(1100352324);
emit_32(3278784496);
emit_32(1123168289);
emit_32(1100382418);
emit_32(3278784496);
emit_32(1123680256);
emit_32(1099683961);
emit_32(3278784496);
emit_32(1124132848);
emit_32(1099118517);
emit_32(3278784496);
emit_32(1124388897);
emit_32(1098912891);
emit_32(3278784496);
emit_32(1124644880);
emit_32(1098053268);
emit_32(3278784496);
emit_32(1124900864);
emit_32(1096737201);
emit_32(3278784496);
emit_32(1125156848);
emit_32(1095640390);
emit_32(3278784496);
emit_32(1125412897);
emit_32(1094410096);
emit_32(3278784496);
emit_32(1125668880);
emit_32(1094098878);
emit_32(3278784496);
emit_32(1125924864);
emit_32(1093723488);
emit_32(3278784496);
emit_32(1126180848);
emit_32(1093527195);
emit_32(3278784496);
emit_32(1126436897);
emit_32(1093210944);
emit_32(3278784496);
emit_32(1126692880);
emit_32(1092714548);
emit_32(3278784496);
emit_32(1126948864);
emit_32(1089965455);
emit_32(3278784496);
emit_32(1127204848);
emit_32(1086218431);
emit_32(3278784496);
emit_32(1127460897);
emit_32(1085307869);
emit_32(3278784496);
emit_32(1127716880);
emit_32(1084803231);
emit_32(3278784496);
emit_32(1127972864);
emit_32(1084117756);
emit_32(3278784496);
emit_32(1128228848);
emit_32(1082406438);
emit_32(3278784496);
emit_32(1128484897);
emit_32(1080428635);
emit_32(3278784496);
emit_32(1128740880);
emit_32(1082196765);
emit_32(3278784496);
emit_32(1128996864);
emit_32(1082931292);
emit_32(3278784496);
emit_32(1129252848);
emit_32(1078353839);
emit_32(3278784496);
emit_32(1129508897);
emit_32(1078676842);
emit_32(3278784496);
emit_32(1129764880);
emit_32(1078175832);
emit_32(3278784496);
emit_32(1130020864);
emit_32(1078788788);
emit_32(3278784496);
emit_32(1130276848);
emit_32(1075988503);
emit_32(3278784496);
emit_32(1130532897);
emit_32(1078470902);
emit_32(3278784496);
emit_32(1130788880);
emit_32(1083278329);
emit_32(3278784496);
emit_32(1131044864);
emit_32(1086190728);
emit_32(3278784496);
emit_32(1131300848);
emit_32(1088421406);
emit_32(3278784496);
emit_32(1131556897);
emit_32(1090737280);
emit_32(3278784496);
emit_32(1131812880);
emit_32(1092161257);
emit_32(3278784496);
emit_32(1132068864);
emit_32(1094162946);
emit_32(3278784496);
emit_32(1081737216);
emit_32(1087170664);
emit_32(3279040545);
emit_32(1090125824);
emit_32(1090282922);
emit_32(3279040545);
emit_32(1094418484);
emit_32(1091155117);
emit_32(3279040545);
emit_32(1098514432);
emit_32(1091115921);
emit_32(3279040545);
emit_32(1100759066);
emit_32(1091154351);
emit_32(3279040545);
emit_32(1102807040);
emit_32(1091182076);
emit_32(3279040545);
emit_32(1104855066);
emit_32(1090880379);
emit_32(3279040545);
emit_32(1106903040);
emit_32(1089488437);
emit_32(3279040545);
emit_32(1108123661);
emit_32(1089764611);
emit_32(3279040545);
emit_32(1109147648);
emit_32(1090012599);
emit_32(3279040545);
emit_32(1110171661);
emit_32(1089610386);
emit_32(3279040545);
emit_32(1111195648);
emit_32(1090497943);
emit_32(3279040545);
emit_32(1112219661);
emit_32(1092221833);
emit_32(3279040545);
emit_32(1113243648);
emit_32(1091868673);
emit_32(3279040545);
emit_32(1114267661);
emit_32(1093013812);
emit_32(3279040545);
emit_32(1115291648);
emit_32(1093957635);
emit_32(3279040545);
emit_32(1116000263);
emit_32(1095032950);
emit_32(3279040545);
emit_32(1116512256);
emit_32(1096314729);
emit_32(3279040545);
emit_32(1117024263);
emit_32(1097345375);
emit_32(3279040545);
emit_32(1117536256);
emit_32(1098078329);
emit_32(3279040545);
emit_32(1118048263);
emit_32(1098803524);
emit_32(3279040545);
emit_32(1118560256);
emit_32(1098341522);
emit_32(3279040545);
emit_32(1119072263);
emit_32(1097352715);
emit_32(3279040545);
emit_32(1119584256);
emit_32(1097048103);
emit_32(3279040545);
emit_32(1120096263);
emit_32(1096764149);
emit_32(3279040545);
emit_32(1120608322);
emit_32(1098722469);
emit_32(3279040545);
emit_32(1121120289);
emit_32(1100309647);
emit_32(3279040545);
emit_32(1121632256);
emit_32(1101387321);
emit_32(3279040545);
emit_32(1122144223);
emit_32(1101809739);
emit_32(3279040545);
emit_32(1122656322);
emit_32(1101519703);
emit_32(3279040545);
emit_32(1123168289);
emit_32(1101121821);
emit_32(3279040545);
emit_32(1123680256);
emit_32(1100240545);
emit_32(3279040545);
emit_32(1124132848);
emit_32(1099882352);
emit_32(3279040545);
emit_32(1124388897);
emit_32(1099784048);
emit_32(3279040545);
emit_32(1124644880);
emit_32(1099378563);
emit_32(3279040545);
emit_32(1124900864);
emit_32(1097709545);
emit_32(3279040545);
emit_32(1125156848);
emit_32(1095839095);
emit_32(3279040545);
emit_32(1125412897);
emit_32(1095221589);
emit_32(3279040545);
emit_32(1125668880);
emit_32(1094514219);
emit_32(3279040545);
emit_32(1125924864);
emit_32(1094489263);
emit_32(3279040545);
emit_32(1126180848);
emit_32(1094114397);
emit_32(3279040545);
emit_32(1126436897);
emit_32(1093523525);
emit_32(3279040545);
emit_32(1126692880);
emit_32(1092364020);
emit_32(3279040545);
emit_32(1126948864);
emit_32(1090657578);
emit_32(3279040545);
emit_32(1127204848);
emit_32(1088250991);
emit_32(3279040545);
emit_32(1127460897);
emit_32(1086186701);
emit_32(3279040545);
emit_32(1127716880);
emit_32(1085899685);
emit_32(3279040545);
emit_32(1127972864);
emit_32(1085922502);
emit_32(3279040545);
emit_32(1128228848);
emit_32(1083915444);
emit_32(3279040545);
emit_32(1128484897);
emit_32(1082705891);
emit_32(3279040545);
emit_32(1128740880);
emit_32(1082612966);
emit_32(3279040545);
emit_32(1128996864);
emit_32(1082123763);
emit_32(3279040545);
emit_32(1129252848);
emit_32(1079957992);
emit_32(3279040545);
emit_32(1129508897);
emit_32(1080918362);
emit_32(3279040545);
emit_32(1129764880);
emit_32(1080150846);
emit_32(3279040545);
emit_32(1130020864);
emit_32(1079666824);
emit_32(3279040545);
emit_32(1130276848);
emit_32(1075451758);
emit_32(3279040545);
emit_32(1130532897);
emit_32(1079618505);
emit_32(3279040545);
emit_32(1130788880);
emit_32(1083212437);
emit_32(3279040545);
emit_32(1131044864);
emit_32(1086243597);
emit_32(3279040545);
emit_32(1131300848);
emit_32(1089861499);
emit_32(3279040545);
emit_32(1131556897);
emit_32(1091090891);
emit_32(3279040545);
emit_32(1131812880);
emit_32(1092085392);
emit_32(3279040545);
emit_32(1132068864);
emit_32(1094769128);
emit_32(3279040545);
emit_32(1081737216);
emit_32(1086522393);
emit_32(3279296528);
emit_32(1090125824);
emit_32(1089733279);
emit_32(3279296528);
emit_32(1094418484);
emit_32(1090866549);
emit_32(3279296528);
emit_32(1098514432);
emit_32(1091166221);
emit_32(3279296528);
emit_32(1100759066);
emit_32(1091316692);
emit_32(3279296528);
emit_32(1102807040);
emit_32(1090303012);
emit_32(3279296528);
emit_32(1104855066);
emit_32(1090054898);
emit_32(3279296528);
emit_32(1106903040);
emit_32(1089282496);
emit_32(3279296528);
emit_32(1108123661);
emit_32(1087524370);
emit_32(3279296528);
emit_32(1109147648);
emit_32(1086986471);
emit_32(3279296528);
emit_32(1110171661);
emit_32(1089941925);
emit_32(3279296528);
emit_32(1111195648);
emit_32(1091445195);
emit_32(3279296528);
emit_32(1112219661);
emit_32(1092661595);
emit_32(3279296528);
emit_32(1113243648);
emit_32(1093449286);
emit_32(3279296528);
emit_32(1114267661);
emit_32(1094451829);
emit_32(3279296528);
emit_32(1115291648);
emit_32(1095908406);
emit_32(3279296528);
emit_32(1116000263);
emit_32(1095897606);
emit_32(3279296528);
emit_32(1116512256);
emit_32(1097742156);
emit_32(3279296528);
emit_32(1117024263);
emit_32(1098429917);
emit_32(3279296528);
emit_32(1117536256);
emit_32(1099162819);
emit_32(3279296528);
emit_32(1118048263);
emit_32(1099463446);
emit_32(3279296528);
emit_32(1118560256);
emit_32(1099555196);
emit_32(3279296528);
emit_32(1119072263);
emit_32(1099132672);
emit_32(3279296528);
emit_32(1119584256);
emit_32(1099075420);
emit_32(3279296528);
emit_32(1120096263);
emit_32(1099448871);
emit_32(3279296528);
emit_32(1120608322);
emit_32(1099721553);
emit_32(3279296528);
emit_32(1121120289);
emit_32(1101033321);
emit_32(3279296528);
emit_32(1121632256);
emit_32(1101927337);
emit_32(3279296528);
emit_32(1122144223);
emit_32(1102231686);
emit_32(3279296528);
emit_32(1122656322);
emit_32(1102467092);
emit_32(3279296528);
emit_32(1123168289);
emit_32(1101898711);
emit_32(3279296528);
emit_32(1123680256);
emit_32(1101260390);
emit_32(3279296528);
emit_32(1124132848);
emit_32(1100638480);
emit_32(3279296528);
emit_32(1124388897);
emit_32(1100231685);
emit_32(3279296528);
emit_32(1124644880);
emit_32(1099651036);
emit_32(3279296528);
emit_32(1124900864);
emit_32(1097614020);
emit_32(3279296528);
emit_32(1125156848);
emit_32(1096696726);
emit_32(3279296528);
emit_32(1125412897);
emit_32(1094775629);
emit_32(3279296528);
emit_32(1125668880);
emit_32(1094539595);
emit_32(3279296528);
emit_32(1125924864);
emit_32(1095046372);
emit_32(3279296528);
emit_32(1126180848);
emit_32(1095477441);
emit_32(3279296528);
emit_32(1126436897);
emit_32(1093641594);
emit_32(3279296528);
emit_32(1126692880);
emit_32(1092818357);
emit_32(3279296528);
emit_32(1126948864);
emit_32(1090737490);
emit_32(3279296528);
emit_32(1127204848);
emit_32(1089918898);
emit_32(3279296528);
emit_32(1127460897);
emit_32(1089673426);
emit_32(3279296528);
emit_32(1127716880);
emit_32(1088381686);
emit_32(3279296528);
emit_32(1127972864);
emit_32(1088024583);
emit_32(3279296528);
emit_32(1128228848);
emit_32(1086615842);
emit_32(3279296528);
emit_32(1128484897);
emit_32(1083021134);
emit_32(3279296528);
emit_32(1128740880);
emit_32(1082006448);
emit_32(3279296528);
emit_32(1128996864);
emit_32(1082259554);
emit_32(3279296528);
emit_32(1129252848);
emit_32(1081019948);
emit_32(3279296528);
emit_32(1129508897);
emit_32(1083076688);
emit_32(3279296528);
emit_32(1129764880);
emit_32(1079712290);
emit_32(3279296528);
emit_32(1130020864);
emit_32(1076696460);
emit_32(3279296528);
emit_32(1130276848);
emit_32(1081628248);
emit_32(3279296528);
emit_32(1130532897);
emit_32(1083251486);
emit_32(3279296528);
emit_32(1130788880);
emit_32(1085680051);
emit_32(3279296528);
emit_32(1131044864);
emit_32(1086814757);
emit_32(3279296528);
emit_32(1131300848);
emit_32(1089239043);
emit_32(3279296528);
emit_32(1131556897);
emit_32(1091530717);
emit_32(3279296528);
emit_32(1131812880);
emit_32(1093644321);
emit_32(3279296528);
emit_32(1132068864);
emit_32(1095779536);
emit_32(3279296528);
emit_32(1081737216);
emit_32(1086994839);
emit_32(3279552512);
emit_32(1090125824);
emit_32(1088197052);
emit_32(3279552512);
emit_32(1094418484);
emit_32(1091183439);
emit_32(3279552512);
emit_32(1098514432);
emit_32(1091864132);
emit_32(3279552512);
emit_32(1100759066);
emit_32(1091623966);
emit_32(3279552512);
emit_32(1102807040);
emit_32(1091056907);
emit_32(3279552512);
emit_32(1104855066);
emit_32(1090799639);
emit_32(3279552512);
emit_32(1106903040);
emit_32(1090240475);
emit_32(3279552512);
emit_32(1108123661);
emit_32(1087500672);
emit_32(3279552512);
emit_32(1109147648);
emit_32(1087952231);
emit_32(3279552512);
emit_32(1110171661);
emit_32(1091227636);
emit_32(3279552512);
emit_32(1111195648);
emit_32(1092866173);
emit_32(3279552512);
emit_32(1112219661);
emit_32(1094198074);
emit_32(3279552512);
emit_32(1113243648);
emit_32(1095474505);
emit_32(3279552512);
emit_32(1114267661);
emit_32(1097295462);
emit_32(3279552512);
emit_32(1115291648);
emit_32(1098629985);
emit_32(3279552512);
emit_32(1116000263);
emit_32(1098063859);
emit_32(3279552512);
emit_32(1116512256);
emit_32(1098990748);
emit_32(3279552512);
emit_32(1117024263);
emit_32(1099487406);
emit_32(3279552512);
emit_32(1117536256);
emit_32(1099589956);
emit_32(3279552512);
emit_32(1118048263);
emit_32(1100319660);
emit_32(3279552512);
emit_32(1118560256);
emit_32(1100278032);
emit_32(3279552512);
emit_32(1119072263);
emit_32(1099978821);
emit_32(3279552512);
emit_32(1119584256);
emit_32(1100109840);
emit_32(3279552512);
emit_32(1120096263);
emit_32(1100236089);
emit_32(3279552512);
emit_32(1120608322);
emit_32(1100377385);
emit_32(3279552512);
emit_32(1121120289);
emit_32(1102160173);
emit_32(3279552512);
emit_32(1121632256);
emit_32(1103122924);
emit_32(3279552512);
emit_32(1122144223);
emit_32(1103474721);
emit_32(3279552512);
emit_32(1122656322);
emit_32(1103248805);
emit_32(3279552512);
emit_32(1123168289);
emit_32(1102632819);
emit_32(3279552512);
emit_32(1123680256);
emit_32(1102047399);
emit_32(3279552512);
emit_32(1124132848);
emit_32(1101668391);
emit_32(3279552512);
emit_32(1124388897);
emit_32(1100761740);
emit_32(3279552512);
emit_32(1124644880);
emit_32(1100232943);
emit_32(3279552512);
emit_32(1124900864);
emit_32(1098887306);
emit_32(3279552512);
emit_32(1125156848);
emit_32(1097709860);
emit_32(3279552512);
emit_32(1125412897);
emit_32(1096144126);
emit_32(3279552512);
emit_32(1125668880);
emit_32(1095560803);
emit_32(3279552512);
emit_32(1125924864);
emit_32(1096148740);
emit_32(3279552512);
emit_32(1126180848);
emit_32(1095494428);
emit_32(3279552512);
emit_32(1126436897);
emit_32(1093780950);
emit_32(3279552512);
emit_32(1126692880);
emit_32(1092196667);
emit_32(3279552512);
emit_32(1126948864);
emit_32(1091446736);
emit_32(3279552512);
emit_32(1127204848);
emit_32(1090928352);
emit_32(3279552512);
emit_32(1127460897);
emit_32(1090343508);
emit_32(3279552512);
emit_32(1127716880);
emit_32(1089285495);
emit_32(3279552512);
emit_32(1127972864);
emit_32(1088381665);
emit_32(3279552512);
emit_32(1128228848);
emit_32(1088857949);
emit_32(3279552512);
emit_32(1128484897);
emit_32(1086741545);
emit_32(3279552512);
emit_32(1128740880);
emit_32(1082250913);
emit_32(3279552512);
emit_32(1128996864);
emit_32(1083512120);
emit_32(3279552512);
emit_32(1129252848);
emit_32(1081116417);
emit_32(3279552512);
emit_32(1129508897);
emit_32(1082497517);
emit_32(3279552512);
emit_32(1129764880);
emit_32(1082917200);
emit_32(3279552512);
emit_32(1130020864);
emit_32(1083584702);
emit_32(3279552512);
emit_32(1130276848);
emit_32(1086066325);
emit_32(3279552512);
emit_32(1130532897);
emit_32(1086918125);
emit_32(3279552512);
emit_32(1130788880);
emit_32(1088867533);
emit_32(3279552512);
emit_32(1131044864);
emit_32(1089594720);
emit_32(3279552512);
emit_32(1131300848);
emit_32(1090391575);
emit_32(3279552512);
emit_32(1131556897);
emit_32(1092483358);
emit_32(3279552512);
emit_32(1131812880);
emit_32(1094289405);
emit_32(3279552512);
emit_32(1132068864);
emit_32(1096120323);
emit_32(3279552512);
emit_start(Landscape08Vtx)
emit_32(3279552512);
emit_32(1106761482);
emit_32(3271616496);
emit_32(3279552512);
emit_32(1106982994);
emit_32(3271163904);
emit_32(3279296528);
emit_32(1107171947);
emit_32(3271616496);
emit_32(3279296528);
emit_32(1106990334);
emit_32(3271163904);
emit_32(3279040545);
emit_32(1107445390);
emit_32(3271616496);
emit_32(3279040545);
emit_32(1107378569);
emit_32(3271163904);
emit_32(3278784496);
emit_32(1107535462);
emit_32(3271616496);
emit_32(3278784496);
emit_32(1107553734);
emit_32(3271163904);
emit_32(3278528512);
emit_32(1107451314);
emit_32(3271616496);
emit_32(3278528512);
emit_32(1107478761);
emit_32(3271163904);
emit_32(3278272528);
emit_32(1106913945);
emit_32(3271616496);
emit_32(3278272528);
emit_32(1106962389);
emit_32(3271163904);
emit_32(3278016545);
emit_32(1106520939);
emit_32(3271616496);
emit_32(3278016545);
emit_32(1105953607);
emit_32(3271163904);
emit_32(3277760496);
emit_32(1106354163);
emit_32(3271616496);
emit_32(3277760496);
emit_32(1105995497);
emit_32(3271163904);
emit_32(3277504512);
emit_32(1106487909);
emit_32(3271616496);
emit_32(3277504512);
emit_32(1105958325);
emit_32(3271163904);
emit_32(3277248528);
emit_32(1106611588);
emit_32(3271616496);
emit_32(3277248528);
emit_32(1106168041);
emit_32(3271163904);
emit_32(3276992545);
emit_32(1106511659);
emit_32(3271616496);
emit_32(3276992545);
emit_32(1106461590);
emit_32(3271163904);
emit_32(3276736496);
emit_32(1106390601);
emit_32(3271616496);
emit_32(3276736496);
emit_32(1106400248);
emit_32(3271163904);
emit_32(3276480512);
emit_32(1105922621);
emit_32(3271616496);
emit_32(3276480512);
emit_32(1105590904);
emit_32(3271163904);
emit_32(3276224528);
emit_32(1105564690);
emit_32(3271616496);
emit_32(3276224528);
emit_32(1105294315);
emit_32(3271163904);
emit_32(3275968545);
emit_32(1105186941);
emit_32(3271616496);
emit_32(3275968545);
emit_32(1104823661);
emit_32(3271163904);
emit_32(3275712496);
emit_32(1104211817);
emit_32(3271616496);
emit_32(3275712496);
emit_32(1103994185);
emit_32(3271163904);
emit_32(3275456512);
emit_32(1103031068);
emit_32(3271616496);
emit_32(3275456512);
emit_32(1102728764);
emit_32(3271163904);
emit_32(3275200528);
emit_32(1102027162);
emit_32(3271616496);
emit_32(3275200528);
emit_32(1102137996);
emit_32(3271163904);
emit_32(3274944545);
emit_32(1100836923);
emit_32(3271616496);
emit_32(3274944545);
emit_32(1101349782);
emit_32(3271163904);
emit_32(3274688496);
emit_32(1099615804);
emit_32(3271616496);
emit_32(3274688496);
emit_32(1100398356);
emit_32(3271163904);
emit_32(3274432512);
emit_32(1098688915);
emit_32(3271616496);
emit_32(3274432512);
emit_32(1099098489);
emit_32(3271163904);
emit_32(3274176528);
emit_32(1097203188);
emit_32(3271616496);
emit_32(3274176528);
emit_32(1097575747);
emit_32(3271163904);
emit_32(3273920545);
emit_32(1095228300);
emit_32(3271616496);
emit_32(3273920545);
emit_32(1095747135);
emit_32(3271163904);
emit_32(3273664496);
emit_32(1093720657);
emit_32(3271616496);
emit_32(3273664496);
emit_32(1094011427);
emit_32(3271163904);
emit_32(3273408512);
emit_32(1091725553);
emit_32(3271616496);
emit_32(3273408512);
emit_32(1092817099);
emit_32(3271163904);
emit_32(3273152528);
emit_32(1087752037);
emit_32(3271616496);
emit_32(3273152528);
emit_32(1090935010);
emit_32(3271163904);
emit_32(3272896545);
emit_32(1085425309);
emit_32(3271616496);
emit_32(3272896545);
emit_32(1086813205);
emit_32(3271163904);
emit_32(3272640496);
emit_32(1084703847);
emit_32(3271616496);
emit_32(3272640496);
emit_32(1085254874);
emit_32(3271163904);
emit_32(3272384512);
emit_32(1086064186);
emit_32(3271616496);
emit_32(3272384512);
emit_32(1084610859);
emit_32(3271163904);
emit_32(3272128528);
emit_32(1088120192);
emit_32(3271616496);
emit_32(3272128528);
emit_32(1085403226);
emit_32(3271163904);
emit_32(3271872545);
emit_32(1088130111);
emit_32(3271616496);
emit_32(3271872545);
emit_32(1085803741);
emit_32(3271163904);
emit_32(3271616496);
emit_32(1088638754);
emit_32(3271616496);
emit_32(3271616496);
emit_32(1084901902);
emit_32(3271163904);
emit_32(3271163904);
emit_32(1089569596);
emit_32(3271616496);
emit_32(3271163904);
emit_32(1086653402);
emit_32(3271163904);
emit_32(3270651937);
emit_32(1090542371);
emit_32(3271616496);
emit_32(3270651937);
emit_32(1089541201);
emit_32(3271163904);
emit_32(3270139970);
emit_32(1091253725);
emit_32(3271616496);
emit_32(3270139970);
emit_32(1090924587);
emit_32(3271163904);
emit_32(3269627871);
emit_32(1091983785);
emit_32(3271616496);
emit_32(3269627871);
emit_32(1091193002);
emit_32(3271163904);
emit_32(3269115904);
emit_32(1091362609);
emit_32(3271616496);
emit_32(3269115904);
emit_32(1091042709);
emit_32(3271163904);
emit_32(3268603937);
emit_32(1092022341);
emit_32(3271616496);
emit_32(3268603937);
emit_32(1091824318);
emit_32(3271163904);
emit_32(3268091970);
emit_32(1093526356);
emit_32(3271616496);
emit_32(3268091970);
emit_32(1094207721);
emit_32(3271163904);
emit_32(3267579911);
emit_32(1095594567);
emit_32(3271616496);
emit_32(3267579911);
emit_32(1096193199);
emit_32(3271163904);
emit_32(3267067904);
emit_32(1097671796);
emit_32(3271616496);
emit_32(3267067904);
emit_32(1098383045);
emit_32(3271163904);
emit_32(3266555911);
emit_32(1099231658);
emit_32(3271616496);
emit_32(3266555911);
emit_32(1099615542);
emit_32(3271163904);
emit_32(3266043904);
emit_32(1101135662);
emit_32(3271616496);
emit_32(3266043904);
emit_32(1101433038);
emit_32(3271163904);
emit_32(3265531911);
emit_32(1102943093);
emit_32(3271616496);
emit_32(3265531911);
emit_32(1103595045);
emit_32(3271163904);
emit_32(3265019904);
emit_32(1104383889);
emit_32(3271616496);
emit_32(3265019904);
emit_32(1105129950);
emit_32(3271163904);
emit_32(3264507911);
emit_32(1105613344);
emit_32(3271616496);
emit_32(3264507911);
emit_32(1106326061);
emit_32(3271163904);
emit_32(3263995904);
emit_32(1106984409);
emit_32(3271616496);
emit_32(3263995904);
emit_32(1107411652);
emit_32(3271163904);
emit_32(3263483911);
emit_32(1107639822);
emit_32(3271616496);
emit_32(3263483911);
emit_32(1107887050);
emit_32(3271163904);
emit_32(3262775296);
emit_32(1108306507);
emit_32(3271616496);
emit_32(3262775296);
emit_32(1108492236);
emit_32(3271163904);
emit_32(3261751309);
emit_32(1108863825);
emit_32(3271616496);
emit_32(3261751309);
emit_32(1109105757);
emit_32(3271163904);
emit_32(3260727296);
emit_32(1109236279);
emit_32(3271616496);
emit_32(3260727296);
emit_32(1109424656);
emit_32(3271163904);
emit_32(3259703309);
emit_32(1109566004);
emit_32(3271616496);
emit_32(3259703309);
emit_32(1109901784);
emit_32(3271163904);
emit_32(3258679296);
emit_32(1109626611);
emit_32(3271616496);
emit_32(3258679296);
emit_32(1109885321);
emit_32(3271163904);
emit_32(3257655309);
emit_32(1109381454);
emit_32(3271616496);
emit_32(3257655309);
emit_32(1109822564);
emit_32(3271163904);
emit_32(3256631296);
emit_32(1109416817);
emit_32(3271616496);
emit_32(3256631296);
emit_32(1109824163);
emit_32(3271163904);
emit_32(3255607309);
emit_32(1109214704);
emit_32(3271616496);
emit_32(3255607309);
emit_32(1109730315);
emit_32(3271163904);
emit_32(3254386688);
emit_32(1109356052);
emit_32(3271616496);
emit_32(3254386688);
emit_32(1109803113);
emit_32(3271163904);
emit_32(3252338714);
emit_32(1109796533);
emit_32(3271616496);
emit_32(3252338714);
emit_32(1109995186);
emit_32(3271163904);
emit_32(3250290688);
emit_32(1110456690);
emit_32(3271616496);
emit_32(3250290688);
emit_32(1110434618);
emit_32(3271163904);
emit_32(3248242714);
emit_32(1110816797);
emit_32(3271616496);
emit_32(3248242714);
emit_32(1111024783);
emit_32(3271163904);
emit_32(3245998080);
emit_32(1111345699);
emit_32(3271616496);
emit_32(3245998080);
emit_32(1111309785);
emit_32(3271163904);
emit_32(3241902132);
emit_32(1111491032);
emit_32(3271616496);
emit_32(3241902132);
emit_32(1111384208);
emit_32(3271163904);
emit_32(3237609472);
emit_32(1111509356);
emit_32(3271616496);
emit_32(3237609472);
emit_32(1111783952);
emit_32(3271163904);
emit_32(3229220864);
emit_32(1111680693);
emit_32(3271616496);
emit_32(3229220864);
emit_32(1111918930);
emit_32(3271163904);
emit_32(0);
emit_32(1111962419);
emit_32(3271616496);
emit_32(0);
emit_32(1112106100);
emit_32(3271163904);
emit_32(1081737216);
emit_32(1112138475);
emit_32(3271616496);
emit_32(1081737216);
emit_32(1112094042);
emit_32(3271163904);
emit_32(3279552512);
emit_32(1106831999);
emit_32(3271872545);
emit_32(3279296528);
emit_32(1107221283);
emit_32(3271872545);
emit_32(3279040545);
emit_32(1107491448);
emit_32(3271872545);
emit_32(3278784496);
emit_32(1107603856);
emit_32(3271872545);
emit_32(3278528512);
emit_32(1107347427);
emit_32(3271872545);
emit_32(3278272528);
emit_32(1107241678);
emit_32(3271872545);
emit_32(3278016545);
emit_32(1107331016);
emit_32(3271872545);
emit_32(3277760496);
emit_32(1107339012);
emit_32(3271872545);
emit_32(3277504512);
emit_32(1106970935);
emit_32(3271872545);
emit_32(3277248528);
emit_32(1106766096);
emit_32(3271872545);
emit_32(3276992545);
emit_32(1106540075);
emit_32(3271872545);
emit_32(3276736496);
emit_32(1106320661);
emit_32(3271872545);
emit_32(3276480512);
emit_32(1106168093);
emit_32(3271872545);
emit_32(3276224528);
emit_32(1105508591);
emit_32(3271872545);
emit_32(3275968545);
emit_32(1104919711);
emit_32(3271872545);
emit_32(3275712496);
emit_32(1103890062);
emit_32(3271872545);
emit_32(3275456512);
emit_32(1102724412);
emit_32(3271872545);
emit_32(3275200528);
emit_32(1101678300);
emit_32(3271872545);
emit_32(3274944545);
emit_32(1100687815);
emit_32(3271872545);
emit_32(3274688496);
emit_32(1100014525);
emit_32(3271872545);
emit_32(3274432512);
emit_32(1099108503);
emit_32(3271872545);
emit_32(3274176528);
emit_32(1097338769);
emit_32(3271872545);
emit_32(3273920545);
emit_32(1095563634);
emit_32(3271872545);
emit_32(3273664496);
emit_32(1093020942);
emit_32(3271872545);
emit_32(3273408512);
emit_32(1090382432);
emit_32(3271872545);
emit_32(3273152528);
emit_32(1088955592);
emit_32(3271872545);
emit_32(3272896545);
emit_32(1086743621);
emit_32(3271872545);
emit_32(3272640496);
emit_32(1086106171);
emit_32(3271872545);
emit_32(3272384512);
emit_32(1087622538);
emit_32(3271872545);
emit_32(3272128528);
emit_32(1089541390);
emit_32(3271872545);
emit_32(3271872545);
emit_32(1090739493);
emit_32(3271872545);
emit_32(3271616496);
emit_32(1091296192);
emit_32(3271872545);
emit_32(3271163904);
emit_32(1091536652);
emit_32(3271872545);
emit_32(3270651937);
emit_32(1092000751);
emit_32(3271872545);
emit_32(3270139970);
emit_32(1092665265);
emit_32(3271872545);
emit_32(3269627871);
emit_32(1092064683);
emit_32(3271872545);
emit_32(3269115904);
emit_32(1092005921);
emit_32(3271872545);
emit_32(3268603937);
emit_32(1092949220);
emit_32(3271872545);
emit_32(3268091970);
emit_32(1093979446);
emit_32(3271872545);
emit_32(3267579911);
emit_32(1095270977);
emit_32(3271872545);
emit_32(3267067904);
emit_32(1097543031);
emit_32(3271872545);
emit_32(3266555911);
emit_32(1099248173);
emit_32(3271872545);
emit_32(3266043904);
emit_32(1100580441);
emit_32(3271872545);
emit_32(3265531911);
emit_32(1102805677);
emit_32(3271872545);
emit_32(3265019904);
emit_32(1104235935);
emit_32(3271872545);
emit_32(3264507911);
emit_32(1105586553);
emit_32(3271872545);
emit_32(3263995904);
emit_32(1106838605);
emit_32(3271872545);
emit_32(3263483911);
emit_32(1107360534);
emit_32(3271872545);
emit_32(3262775296);
emit_32(1107828487);
emit_32(3271872545);
emit_32(3261751309);
emit_32(1108377181);
emit_32(3271872545);
emit_32(3260727296);
emit_32(1108949179);
emit_32(3271872545);
emit_32(3259703309);
emit_32(1109077157);
emit_32(3271872545);
emit_32(3258679296);
emit_32(1109165841);
emit_32(3271872545);
emit_32(3257655309);
emit_32(1109169589);
emit_32(3271872545);
emit_32(3256631296);
emit_32(1108993167);
emit_32(3271872545);
emit_32(3255607309);
emit_32(1108949362);
emit_32(3271872545);
emit_32(3254386688);
emit_32(1109262310);
emit_32(3271872545);
emit_32(3252338714);
emit_32(1109890250);
emit_32(3271872545);
emit_32(3250290688);
emit_32(1110249177);
emit_32(3271872545);
emit_32(3248242714);
emit_32(1110644779);
emit_32(3271872545);
emit_32(3245998080);
emit_32(1111031572);
emit_32(3271872545);
emit_32(3241902132);
emit_32(1111347089);
emit_32(3271872545);
emit_32(3237609472);
emit_32(1111265300);
emit_32(3271872545);
emit_32(3229220864);
emit_32(1111507023);
emit_32(3271872545);
emit_32(0);
emit_32(1111638698);
emit_32(3271872545);
emit_32(1081737216);
emit_32(1111780334);
emit_32(3271872545);
emit_32(3279552512);
emit_32(1106638851);
emit_32(3272128528);
emit_32(3279296528);
emit_32(1106692434);
emit_32(3272128528);
emit_32(3279040545);
emit_32(1107345539);
emit_32(3272128528);
emit_32(3278784496);
emit_32(1107597459);
emit_32(3272128528);
emit_32(3278528512);
emit_32(1107379225);
emit_32(3272128528);
emit_32(3278272528);
emit_32(1107456950);
emit_32(3272128528);
emit_32(3278016545);
emit_32(1107643492);
emit_32(3272128528);
emit_32(3277760496);
emit_32(1107464788);
emit_32(3272128528);
emit_32(3277504512);
emit_32(1107237641);
emit_32(3272128528);
emit_32(3277248528);
emit_32(1107040666);
emit_32(3272128528);
emit_32(3276992545);
emit_32(1106355945);
emit_32(3272128528);
emit_32(3276736496);
emit_32(1106248938);
emit_32(3272128528);
emit_32(3276480512);
emit_32(1106022184);
emit_32(3272128528);
emit_32(3276224528);
emit_32(1105264378);
emit_32(3272128528);
emit_32(3275968545);
emit_32(1104551084);
emit_32(3272128528);
emit_32(3275712496);
emit_32(1103522693);
emit_32(3272128528);
emit_32(3275456512);
emit_32(1102465624);
emit_32(3272128528);
emit_32(3275200528);
emit_32(1101580416);
emit_32(3272128528);
emit_32(3274944545);
emit_32(1100781558);
emit_32(3272128528);
emit_32(3274688496);
emit_32(1099917584);
emit_32(3272128528);
emit_32(3274432512);
emit_32(1098955253);
emit_32(3272128528);
emit_32(3274176528);
emit_32(1097496474);
emit_32(3272128528);
emit_32(3273920545);
emit_32(1095188768);
emit_32(3272128528);
emit_32(3273664496);
emit_32(1092550792);
emit_32(3272128528);
emit_32(3273408512);
emit_32(1090256602);
emit_32(3272128528);
emit_32(3273152528);
emit_32(1088560866);
emit_32(3272128528);
emit_32(3272896545);
emit_32(1086795610);
emit_32(3272128528);
emit_32(3272640496);
emit_32(1087160745);
emit_32(3272128528);
emit_32(3272384512);
emit_32(1088465991);
emit_32(3272128528);
emit_32(3272128528);
emit_32(1090214701);
emit_32(3272128528);
emit_32(3271872545);
emit_32(1091916110);
emit_32(3272128528);
emit_32(3271616496);
emit_32(1093188714);
emit_32(3272128528);
emit_32(3271163904);
emit_32(1092821503);
emit_32(3272128528);
emit_32(3270651937);
emit_32(1092462943);
emit_32(3272128528);
emit_32(3270139970);
emit_32(1092871730);
emit_32(3272128528);
emit_32(3269627871);
emit_32(1092567339);
emit_32(3272128528);
emit_32(3269115904);
emit_32(1091624103);
emit_32(3272128528);
emit_32(3268603937);
emit_32(1092971030);
emit_32(3272128528);
emit_32(3268091970);
emit_32(1093964556);
emit_32(3272128528);
emit_32(3267579911);
emit_32(1095084959);
emit_32(3272128528);
emit_32(3267067904);
emit_32(1096871523);
emit_32(3272128528);
emit_32(3266555911);
emit_32(1098883740);
emit_32(3272128528);
emit_32(3266043904);
emit_32(1100410939);
emit_32(3272128528);
emit_32(3265531911);
emit_32(1102172809);
emit_32(3272128528);
emit_32(3265019904);
emit_32(1103650777);
emit_32(3272128528);
emit_32(3264507911);
emit_32(1105013087);
emit_32(3272128528);
emit_32(3263995904);
emit_32(1105804657);
emit_32(3272128528);
emit_32(3263483911);
emit_32(1106638642);
emit_32(3272128528);
emit_32(3262775296);
emit_32(1107472469);
emit_32(3272128528);
emit_32(3261751309);
emit_32(1107957436);
emit_32(3272128528);
emit_32(3260727296);
emit_32(1108447173);
emit_32(3272128528);
emit_32(3259703309);
emit_32(1108395845);
emit_32(3272128528);
emit_32(3258679296);
emit_32(1108480990);
emit_32(3272128528);
emit_32(3257655309);
emit_32(1108416004);
emit_32(3272128528);
emit_32(3256631296);
emit_32(1108454539);
emit_32(3272128528);
emit_32(3255607309);
emit_32(1108650702);
emit_32(3272128528);
emit_32(3254386688);
emit_32(1108972221);
emit_32(3272128528);
emit_32(3252338714);
emit_32(1109614028);
emit_32(3272128528);
emit_32(3250290688);
emit_32(1110107567);
emit_32(3272128528);
emit_32(3248242714);
emit_32(1110378204);
emit_32(3272128528);
emit_32(3245998080);
emit_32(1110643966);
emit_32(3272128528);
emit_32(3241902132);
emit_32(1110789770);
emit_32(3272128528);
emit_32(3237609472);
emit_32(1111079780);
emit_32(3272128528);
emit_32(3229220864);
emit_32(1111310572);
emit_32(3272128528);
emit_32(0);
emit_32(1111599245);
emit_32(3272128528);
emit_32(1081737216);
emit_32(1111464346);
emit_32(3272128528);
emit_32(3279552512);
emit_32(1105805967);
emit_32(3272384512);
emit_32(3279296528);
emit_32(1106518894);
emit_32(3272384512);
emit_32(3279040545);
emit_32(1107073958);
emit_32(3272384512);
emit_32(3278784496);
emit_32(1107138550);
emit_32(3272384512);
emit_32(3278528512);
emit_32(1107533837);
emit_32(3272384512);
emit_32(3278272528);
emit_32(1107630542);
emit_32(3272384512);
emit_32(3278016545);
emit_32(1107506050);
emit_32(3272384512);
emit_32(3277760496);
emit_32(1107593265);
emit_32(3272384512);
emit_32(3277504512);
emit_32(1107310490);
emit_32(3272384512);
emit_32(3277248528);
emit_32(1106912058);
emit_32(3272384512);
emit_32(3276992545);
emit_32(1106372356);
emit_32(3272384512);
emit_32(3276736496);
emit_32(1106038489);
emit_32(3272384512);
emit_32(3276480512);
emit_32(1105442531);
emit_32(3272384512);
emit_32(3276224528);
emit_32(1104607235);
emit_32(3272384512);
emit_32(3275968545);
emit_32(1103592686);
emit_32(3272384512);
emit_32(3275712496);
emit_32(1102531265);
emit_32(3272384512);
emit_32(3275456512);
emit_32(1101975100);
emit_32(3272384512);
emit_32(3275200528);
emit_32(1101237322);
emit_32(3272384512);
emit_32(3274944545);
emit_32(1100189794);
emit_32(3272384512);
emit_32(3274688496);
emit_32(1099519335);
emit_32(3272384512);
emit_32(3274432512);
emit_32(1098076861);
emit_32(3272384512);
emit_32(3274176528);
emit_32(1096265132);
emit_32(3272384512);
emit_32(3273920545);
emit_32(1094474583);
emit_32(3272384512);
emit_32(3273664496);
emit_32(1091850260);
emit_32(3272384512);
emit_32(3273408512);
emit_32(1089607366);
emit_32(3272384512);
emit_32(3273152528);
emit_32(1087214767);
emit_32(3272384512);
emit_32(3272896545);
emit_32(1087594331);
emit_32(3272384512);
emit_32(3272640496);
emit_32(1087250901);
emit_32(3272384512);
emit_32(3272384512);
emit_32(1087478526);
emit_32(3272384512);
emit_32(3272128528);
emit_32(1089739004);
emit_32(3272384512);
emit_32(3271872545);
emit_32(1091784944);
emit_32(3272384512);
emit_32(3271616496);
emit_32(1093147086);
emit_32(3272384512);
emit_32(3271163904);
emit_32(1093336249);
emit_32(3272384512);
emit_32(3270651937);
emit_32(1091955799);
emit_32(3272384512);
emit_32(3270139970);
emit_32(1092128436);
emit_32(3272384512);
emit_32(3269627871);
emit_32(1091415572);
emit_32(3272384512);
emit_32(3269115904);
emit_32(1091890787);
emit_32(3272384512);
emit_32(3268603937);
emit_32(1092277691);
emit_32(3272384512);
emit_32(3268091970);
emit_32(1093164912);
emit_32(3272384512);
emit_32(3267579911);
emit_32(1094506355);
emit_32(3272384512);
emit_32(3267067904);
emit_32(1095937556);
emit_32(3272384512);
emit_32(3266555911);
emit_32(1098124362);
emit_32(3272384512);
emit_32(3266043904);
emit_32(1100012533);
emit_32(3272384512);
emit_32(3265531911);
emit_32(1101424440);
emit_32(3272384512);
emit_32(3265019904);
emit_32(1102978797);
emit_32(3272384512);
emit_32(3264507911);
emit_32(1103996754);
emit_32(3272384512);
emit_32(3263995904);
emit_32(1104943566);
emit_32(3272384512);
emit_32(3263483911);
emit_32(1106152836);
emit_32(3272384512);
emit_32(3262775296);
emit_32(1107158211);
emit_32(3272384512);
emit_32(3261751309);
emit_32(1107529328);
emit_32(3272384512);
emit_32(3260727296);
emit_32(1107846470);
emit_32(3272384512);
emit_32(3259703309);
emit_32(1107994739);
emit_32(3272384512);
emit_32(3258679296);
emit_32(1107829064);
emit_32(3272384512);
emit_32(3257655309);
emit_32(1107762165);
emit_32(3272384512);
emit_32(3256631296);
emit_32(1107865711);
emit_32(3272384512);
emit_32(3255607309);
emit_32(1108367403);
emit_32(3272384512);
emit_32(3254386688);
emit_32(1109093568);
emit_32(3272384512);
emit_32(3252338714);
emit_32(1109542411);
emit_32(3272384512);
emit_32(3250290688);
emit_32(1110096793);
emit_32(3272384512);
emit_32(3248242714);
emit_32(1110312223);
emit_32(3272384512);
emit_32(3245998080);
emit_32(1110368505);
emit_32(3272384512);
emit_32(3241902132);
emit_32(1110406752);
emit_32(3272384512);
emit_32(3237609472);
emit_32(1110868545);
emit_32(3272384512);
emit_32(3229220864);
emit_32(1111168464);
emit_32(3272384512);
emit_32(0);
emit_32(1111261315);
emit_32(3272384512);
emit_32(1081737216);
emit_32(1111298697);
emit_32(3272384512);
emit_32(3279552512);
emit_32(1105376733);
emit_32(3272640496);
emit_32(3279296528);
emit_32(1106021659);
emit_32(3272640496);
emit_32(3279040545);
emit_32(1106269805);
emit_32(3272640496);
emit_32(3278784496);
emit_32(1106578978);
emit_32(3272640496);
emit_32(3278528512);
emit_32(1107451288);
emit_32(3272640496);
emit_32(3278272528);
emit_32(1107638616);
emit_32(3272640496);
emit_32(3278016545);
emit_32(1107539132);
emit_32(3272640496);
emit_32(3277760496);
emit_32(1107436844);
emit_32(3272640496);
emit_32(3277504512);
emit_32(1107235701);
emit_32(3272640496);
emit_32(3277248528);
emit_32(1107161462);
emit_32(3272640496);
emit_32(3276992545);
emit_32(1106065280);
emit_32(3272640496);
emit_32(3276736496);
emit_32(1105372171);
emit_32(3272640496);
emit_32(3276480512);
emit_32(1104578662);
emit_32(3272640496);
emit_32(3276224528);
emit_32(1103665876);
emit_32(3272640496);
emit_32(3275968545);
emit_32(1102629464);
emit_32(3272640496);
emit_32(3275712496);
emit_32(1101635885);
emit_32(3272640496);
emit_32(3275456512);
emit_32(1101146882);
emit_32(3272640496);
emit_32(3275200528);
emit_32(1100175848);
emit_32(3272640496);
emit_32(3274944545);
emit_32(1099030961);
emit_32(3272640496);
emit_32(3274688496);
emit_32(1097580151);
emit_32(3272640496);
emit_32(3274432512);
emit_32(1096760374);
emit_32(3272640496);
emit_32(3274176528);
emit_32(1095282721);
emit_32(3272640496);
emit_32(3273920545);
emit_32(1093280465);
emit_32(3272640496);
emit_32(3273664496);
emit_32(1091084065);
emit_32(3272640496);
emit_32(3273408512);
emit_32(1089099247);
emit_32(3272640496);
emit_32(3273152528);
emit_32(1087789576);
emit_32(3272640496);
emit_32(3272896545);
emit_32(1085020140);
emit_32(3272640496);
emit_32(3272640496);
emit_32(1085329784);
emit_32(3272640496);
emit_32(3272384512);
emit_32(1086214027);
emit_32(3272640496);
emit_32(3272128528);
emit_32(1088756363);
emit_32(3272640496);
emit_32(3271872545);
emit_32(1091099217);
emit_32(3272640496);
emit_32(3271616496);
emit_32(1092281151);
emit_32(3272640496);
emit_32(3271163904);
emit_32(1092410891);
emit_32(3272640496);
emit_32(3270651937);
emit_32(1092270707);
emit_32(3272640496);
emit_32(3270139970);
emit_32(1092436770);
emit_32(3272640496);
emit_32(3269627871);
emit_32(1091996431);
emit_32(3272640496);
emit_32(3269115904);
emit_32(1092130995);
emit_32(3272640496);
emit_32(3268603937);
emit_32(1092506794);
emit_32(3272640496);
emit_32(3268091970);
emit_32(1093085115);
emit_32(3272640496);
emit_32(3267579911);
emit_32(1094064590);
emit_32(3272640496);
emit_32(3267067904);
emit_32(1096463103);
emit_32(3272640496);
emit_32(3266555911);
emit_32(1098582275);
emit_32(3272640496);
emit_32(3266043904);
emit_32(1099782894);
emit_32(3272640496);
emit_32(3265531911);
emit_32(1101033216);
emit_32(3272640496);
emit_32(3265019904);
emit_32(1102204423);
emit_32(3272640496);
emit_32(3264507911);
emit_32(1103112962);
emit_32(3272640496);
emit_32(3263995904);
emit_32(1104476688);
emit_32(3272640496);
emit_32(3263483911);
emit_32(1105600027);
emit_32(3272640496);
emit_32(3262775296);
emit_32(1106773279);
emit_32(3272640496);
emit_32(3261751309);
emit_32(1107254942);
emit_32(3272640496);
emit_32(3260727296);
emit_32(1107325721);
emit_32(3272640496);
emit_32(3259703309);
emit_32(1107680454);
emit_32(3272640496);
emit_32(3258679296);
emit_32(1107700272);
emit_32(3272640496);
emit_32(3257655309);
emit_32(1107704204);
emit_32(3272640496);
emit_32(3256631296);
emit_32(1107913946);
emit_32(3272640496);
emit_32(3255607309);
emit_32(1108409896);
emit_32(3272640496);
emit_32(3254386688);
emit_32(1108866499);
emit_32(3272640496);
emit_32(3252338714);
emit_32(1109485866);
emit_32(3272640496);
emit_32(3250290688);
emit_32(1110027901);
emit_32(3272640496);
emit_32(3248242714);
emit_32(1110441984);
emit_32(3272640496);
emit_32(3245998080);
emit_32(1110489956);
emit_32(3272640496);
emit_32(3241902132);
emit_32(1110446834);
emit_32(3272640496);
emit_32(3237609472);
emit_32(1110725100);
emit_32(3272640496);
emit_32(3229220864);
emit_32(1110855752);
emit_32(3272640496);
emit_32(0);
emit_32(1110654897);
emit_32(3272640496);
emit_32(1081737216);
emit_32(1110766990);
emit_32(3272640496);
emit_32(3279552512);
emit_32(1104945611);
emit_32(3272896545);
emit_32(3279296528);
emit_32(1105445886);
emit_32(3272896545);
emit_32(3279040545);
emit_32(1105654868);
emit_32(3272896545);
emit_32(3278784496);
emit_32(1106191896);
emit_32(3272896545);
emit_32(3278528512);
emit_32(1106771024);
emit_32(3272896545);
emit_32(3278272528);
emit_32(1107252111);
emit_32(3272896545);
emit_32(3278016545);
emit_32(1107581652);
emit_32(3272896545);
emit_32(3277760496);
emit_32(1107333218);
emit_32(3272896545);
emit_32(3277504512);
emit_32(1106792310);
emit_32(3272896545);
emit_32(3277248528);
emit_32(1106541229);
emit_32(3272896545);
emit_32(3276992545);
emit_32(1105789924);
emit_32(3272896545);
emit_32(3276736496);
emit_32(1104474486);
emit_32(3272896545);
emit_32(3276480512);
emit_32(1103776134);
emit_32(3272896545);
emit_32(3276224528);
emit_32(1102639635);
emit_32(3272896545);
emit_32(3275968545);
emit_32(1101601964);
emit_32(3272896545);
emit_32(3275712496);
emit_32(1100849820);
emit_32(3272896545);
emit_32(3275456512);
emit_32(1100186229);
emit_32(3272896545);
emit_32(3275200528);
emit_32(1099765540);
emit_32(3272896545);
emit_32(3274944545);
emit_32(1098773850);
emit_32(3272896545);
emit_32(3274688496);
emit_32(1097286550);
emit_32(3272896545);
emit_32(3274432512);
emit_32(1095977088);
emit_32(3272896545);
emit_32(3274176528);
emit_32(1094472381);
emit_32(3272896545);
emit_32(3273920545);
emit_32(1093136810);
emit_32(3272896545);
emit_32(3273664496);
emit_32(1090824857);
emit_32(3272896545);
emit_32(3273408512);
emit_32(1088942045);
emit_32(3272896545);
emit_32(3273152528);
emit_32(1087994509);
emit_32(3272896545);
emit_32(3272896545);
emit_32(1085242018);
emit_32(3272896545);
emit_32(3272640496);
emit_32(1082368710);
emit_32(3272896545);
emit_32(3272384512);
emit_32(1083511616);
emit_32(3272896545);
emit_32(3272128528);
emit_32(1086745865);
emit_32(3272896545);
emit_32(3271872545);
emit_32(1089841387);
emit_32(3272896545);
emit_32(3271616496);
emit_32(1091645420);
emit_32(3272896545);
emit_32(3271163904);
emit_32(1091360837);
emit_32(3272896545);
emit_32(3270651937);
emit_32(1091891626);
emit_32(3272896545);
emit_32(3270139970);
emit_32(1091846705);
emit_32(3272896545);
emit_32(3269627871);
emit_32(1092497818);
emit_32(3272896545);
emit_32(3269115904);
emit_32(1091767087);
emit_32(3272896545);
emit_32(3268603937);
emit_32(1092058643);
emit_32(3272896545);
emit_32(3268091970);
emit_32(1092782286);
emit_32(3272896545);
emit_32(3267579911);
emit_32(1093942536);
emit_32(3272896545);
emit_32(3267067904);
emit_32(1096261042);
emit_32(3272896545);
emit_32(3266555911);
emit_32(1098731278);
emit_32(3272896545);
emit_32(3266043904);
emit_32(1099753639);
emit_32(3272896545);
emit_32(3265531911);
emit_32(1100349178);
emit_32(3272896545);
emit_32(3265019904);
emit_32(1101287129);
emit_32(3272896545);
emit_32(3264507911);
emit_32(1102874726);
emit_32(3272896545);
emit_32(3263995904);
emit_32(1104299216);
emit_32(3272896545);
emit_32(3263483911);
emit_32(1105581310);
emit_32(3272896545);
emit_32(3262775296);
emit_32(1106449741);
emit_32(3272896545);
emit_32(3261751309);
emit_32(1106767197);
emit_32(3272896545);
emit_32(3260727296);
emit_32(1106996783);
emit_32(3272896545);
emit_32(3259703309);
emit_32(1107252216);
emit_32(3272896545);
emit_32(3258679296);
emit_32(1107420643);
emit_32(3272896545);
emit_32(3257655309);
emit_32(1107319351);
emit_32(3272896545);
emit_32(3256631296);
emit_32(1107826600);
emit_32(3272896545);
emit_32(3255607309);
emit_32(1108251299);
emit_32(3272896545);
emit_32(3254386688);
emit_32(1108771550);
emit_32(3272896545);
emit_32(3252338714);
emit_32(1109302182);
emit_32(3272896545);
emit_32(3250290688);
emit_32(1110005147);
emit_32(3272896545);
emit_32(3248242714);
emit_32(1110267291);
emit_32(3272896545);
emit_32(3245998080);
emit_32(1110424394);
emit_32(3272896545);
emit_32(3241902132);
emit_32(1110409006);
emit_32(3272896545);
emit_32(3237609472);
emit_32(1110530064);
emit_32(3272896545);
emit_32(3229220864);
emit_32(1110513759);
emit_32(3272896545);
emit_32(0);
emit_32(1110086228);
emit_32(3272896545);
emit_32(1081737216);
emit_32(1110289075);
emit_32(3272896545);
emit_32(3279552512);
emit_32(1105076106);
emit_32(3273152528);
emit_32(3279296528);
emit_32(1105334790);
emit_32(3273152528);
emit_32(3279040545);
emit_32(1105218241);
emit_32(3273152528);
emit_32(3278784496);
emit_32(1105960947);
emit_32(3273152528);
emit_32(3278528512);
emit_32(1107217980);
emit_32(3273152528);
emit_32(3278272528);
emit_32(1107295574);
emit_32(3273152528);
emit_32(3278016545);
emit_32(1107365331);
emit_32(3273152528);
emit_32(3277760496);
emit_32(1107416134);
emit_32(3273152528);
emit_32(3277504512);
emit_32(1106446438);
emit_32(3273152528);
emit_32(3277248528);
emit_32(1105782794);
emit_32(3273152528);
emit_32(3276992545);
emit_32(1105013821);
emit_32(3273152528);
emit_32(3276736496);
emit_32(1103915857);
emit_32(3273152528);
emit_32(3276480512);
emit_32(1103026979);
emit_32(3273152528);
emit_32(3276224528);
emit_32(1101908673);
emit_32(3273152528);
emit_32(3275968545);
emit_32(1100983409);
emit_32(3273152528);
emit_32(3275712496);
emit_32(1100304771);
emit_32(3273152528);
emit_32(3275456512);
emit_32(1099637090);
emit_32(3273152528);
emit_32(3275200528);
emit_32(1099595147);
emit_32(3273152528);
emit_32(3274944545);
emit_32(1098779302);
emit_32(3273152528);
emit_32(3274688496);
emit_32(1096597425);
emit_32(3273152528);
emit_32(3274432512);
emit_32(1094709255);
emit_32(3273152528);
emit_32(3274176528);
emit_32(1093592941);
emit_32(3273152528);
emit_32(3273920545);
emit_32(1091822808);
emit_32(3273152528);
emit_32(3273664496);
emit_32(1090429890);
emit_32(3273152528);
emit_32(3273408512);
emit_32(1088328040);
emit_32(3273152528);
emit_32(3273152528);
emit_32(1087421546);
emit_32(3273152528);
emit_32(3272896545);
emit_32(1085534382);
emit_32(3273152528);
emit_32(3272640496);
emit_32(1082800241);
emit_32(3273152528);
emit_32(3272384512);
emit_32(1078440703);
emit_32(3273152528);
emit_32(3272128528);
emit_32(1084200594);
emit_32(3273152528);
emit_32(3271872545);
emit_32(1087678322);
emit_32(3273152528);
emit_32(3271616496);
emit_32(1089442320);
emit_32(3273152528);
emit_32(3271163904);
emit_32(1090607372);
emit_32(3273152528);
emit_32(3270651937);
emit_32(1091531566);
emit_32(3273152528);
emit_32(3270139970);
emit_32(1091674141);
emit_32(3273152528);
emit_32(3269627871);
emit_32(1091966117);
emit_32(3273152528);
emit_32(3269115904);
emit_32(1091542251);
emit_32(3273152528);
emit_32(3268603937);
emit_32(1091342288);
emit_32(3273152528);
emit_32(3268091970);
emit_32(1092373405);
emit_32(3273152528);
emit_32(3267579911);
emit_32(1093066975);
emit_32(3273152528);
emit_32(3267067904);
emit_32(1096397252);
emit_32(3273152528);
emit_32(3266555911);
emit_32(1099075053);
emit_32(3273152528);
emit_32(3266043904);
emit_32(1099796788);
emit_32(3273152528);
emit_32(3265531911);
emit_32(1100246942);
emit_32(3273152528);
emit_32(3265019904);
emit_32(1101066614);
emit_32(3273152528);
emit_32(3264507911);
emit_32(1102540440);
emit_32(3273152528);
emit_32(3263995904);
emit_32(1104067323);
emit_32(3273152528);
emit_32(3263483911);
emit_32(1105420039);
emit_32(3273152528);
emit_32(3262775296);
emit_32(1106257484);
emit_32(3273152528);
emit_32(3261751309);
emit_32(1106472337);
emit_32(3273152528);
emit_32(3260727296);
emit_32(1106731912);
emit_32(3273152528);
emit_32(3259703309);
emit_32(1106956465);
emit_32(3273152528);
emit_32(3258679296);
emit_32(1106821199);
emit_32(3273152528);
emit_32(3257655309);
emit_32(1106379643);
emit_32(3273152528);
emit_32(3256631296);
emit_32(1107530954);
emit_32(3273152528);
emit_32(3255607309);
emit_32(1108003992);
emit_32(3273152528);
emit_32(3254386688);
emit_32(1108557352);
emit_32(3273152528);
emit_32(3252338714);
emit_32(1109091706);
emit_32(3273152528);
emit_32(3250290688);
emit_32(1109753830);
emit_32(3273152528);
emit_32(3248242714);
emit_32(1109939664);
emit_32(3273152528);
emit_32(3245998080);
emit_32(1109999118);
emit_32(3273152528);
emit_32(3241902132);
emit_32(1110432914);
emit_32(3273152528);
emit_32(3237609472);
emit_32(1110537457);
emit_32(3273152528);
emit_32(3229220864);
emit_32(1110226685);
emit_32(3273152528);
emit_32(0);
emit_32(1109884928);
emit_32(3273152528);
emit_32(1081737216);
emit_32(1110106754);
emit_32(3273152528);
emit_32(3279552512);
emit_32(1104836087);
emit_32(3273408512);
emit_32(3279296528);
emit_32(1105132991);
emit_32(3273408512);
emit_32(3279040545);
emit_32(1105059486);
emit_32(3273408512);
emit_32(3278784496);
emit_32(1105434981);
emit_32(3273408512);
emit_32(3278528512);
emit_32(1106513389);
emit_32(3273408512);
emit_32(3278272528);
emit_32(1106841489);
emit_32(3273408512);
emit_32(3278016545);
emit_32(1107378805);
emit_32(3273408512);
emit_32(3277760496);
emit_32(1106914784);
emit_32(3273408512);
emit_32(3277504512);
emit_32(1106011069);
emit_32(3273408512);
emit_32(3277248528);
emit_32(1104591349);
emit_32(3273408512);
emit_32(3276992545);
emit_32(1103757469);
emit_32(3273408512);
emit_32(3276736496);
emit_32(1103249329);
emit_32(3273408512);
emit_32(3276480512);
emit_32(1103030387);
emit_32(3273408512);
emit_32(3276224528);
emit_32(1102188275);
emit_32(3273408512);
emit_32(3275968545);
emit_32(1101338667);
emit_32(3273408512);
emit_32(3275712496);
emit_32(1100738567);
emit_32(3273408512);
emit_32(3275456512);
emit_32(1099970956);
emit_32(3273408512);
emit_32(3275200528);
emit_32(1098288778);
emit_32(3273408512);
emit_32(3274944545);
emit_32(1096724093);
emit_32(3273408512);
emit_32(3274688496);
emit_32(1094523761);
emit_32(3273408512);
emit_32(3274432512);
emit_32(1091893849);
emit_32(3273408512);
emit_32(3274176528);
emit_32(1091370138);
emit_32(3273408512);
emit_32(3273920545);
emit_32(1090570504);
emit_32(3273408512);
emit_32(3273664496);
emit_32(1087323819);
emit_32(3273408512);
emit_32(3273408512);
emit_32(1085981977);
emit_32(3273408512);
emit_32(3273152528);
emit_32(1085699218);
emit_32(3273408512);
emit_32(3272896545);
emit_32(1086443980);
emit_32(3273408512);
emit_32(3272640496);
emit_32(1082061813);
emit_32(3273408512);
emit_32(3272384512);
emit_32(1077123943);
emit_32(3273408512);
emit_32(3272128528);
emit_32(1080172783);
emit_32(3273408512);
emit_32(3271872545);
emit_32(1084168381);
emit_32(3273408512);
emit_32(3271616496);
emit_32(1087820404);
emit_32(3273408512);
emit_32(3271163904);
emit_32(1090796682);
emit_32(3273408512);
emit_32(3270651937);
emit_32(1091577148);
emit_32(3273408512);
emit_32(3270139970);
emit_32(1091446925);
emit_32(3273408512);
emit_32(3269627871);
emit_32(1092098762);
emit_32(3273408512);
emit_32(3269115904);
emit_32(1091744595);
emit_32(3273408512);
emit_32(3268603937);
emit_32(1091408191);
emit_32(3273408512);
emit_32(3268091970);
emit_32(1092385663);
emit_32(3273408512);
emit_32(3267579911);
emit_32(1093825829);
emit_32(3273408512);
emit_32(3267067904);
emit_32(1096198128);
emit_32(3273408512);
emit_32(3266555911);
emit_32(1098768607);
emit_32(3273408512);
emit_32(3266043904);
emit_32(1099579471);
emit_32(3273408512);
emit_32(3265531911);
emit_32(1100058880);
emit_32(3273408512);
emit_32(3265019904);
emit_32(1100744596);
emit_32(3273408512);
emit_32(3264507911);
emit_32(1102061083);
emit_32(3273408512);
emit_32(3263995904);
emit_32(1103274338);
emit_32(3273408512);
emit_32(3263483911);
emit_32(1104422791);
emit_32(3273408512);
emit_32(3262775296);
emit_32(1105176612);
emit_32(3273408512);
emit_32(3261751309);
emit_32(1105646007);
emit_32(3273408512);
emit_32(3260727296);
emit_32(1106575308);
emit_32(3273408512);
emit_32(3259703309);
emit_32(1106762741);
emit_32(3273408512);
emit_32(3258679296);
emit_32(1106791472);
emit_32(3273408512);
emit_32(3257655309);
emit_32(1106362447);
emit_32(3273408512);
emit_32(3256631296);
emit_32(1107312824);
emit_32(3273408512);
emit_32(3255607309);
emit_32(1107822143);
emit_32(3273408512);
emit_32(3254386688);
emit_32(1108186890);
emit_32(3273408512);
emit_32(3252338714);
emit_32(1108816848);
emit_32(3273408512);
emit_32(3250290688);
emit_32(1109429689);
emit_32(3273408512);
emit_32(3248242714);
emit_32(1109536408);
emit_32(3273408512);
emit_32(3245998080);
emit_32(1109813992);
emit_32(3273408512);
emit_32(3241902132);
emit_32(1110208099);
emit_32(3273408512);
emit_32(3237609472);
emit_32(1110335213);
emit_32(3273408512);
emit_32(3229220864);
emit_32(1110186263);
emit_32(3273408512);
emit_32(0);
emit_32(1109755796);
emit_32(3273408512);
emit_32(1081737216);
emit_32(1109848700);
emit_32(3273408512);
emit_32(3279552512);
emit_32(1104733956);
emit_32(3273664496);
emit_32(3279296528);
emit_32(1104666690);
emit_32(3273664496);
emit_32(3279040545);
emit_32(1104540231);
emit_32(3273664496);
emit_32(3278784496);
emit_32(1104872840);
emit_32(3273664496);
emit_32(3278528512);
emit_32(1105814775);
emit_32(3273664496);
emit_32(3278272528);
emit_32(1106809297);
emit_32(3273664496);
emit_32(3278016545);
emit_32(1106966322);
emit_32(3273664496);
emit_32(3277760496);
emit_32(1106369682);
emit_32(3273664496);
emit_32(3277504512);
emit_32(1105145102);
emit_32(3273664496);
emit_32(3277248528);
emit_32(1104371673);
emit_32(3273664496);
emit_32(3276992545);
emit_32(1103102319);
emit_32(3273664496);
emit_32(3276736496);
emit_32(1102915568);
emit_32(3273664496);
emit_32(3276480512);
emit_32(1102916721);
emit_32(3273664496);
emit_32(3276224528);
emit_32(1102503005);
emit_32(3273664496);
emit_32(3275968545);
emit_32(1101360162);
emit_32(3273664496);
emit_32(3275712496);
emit_32(1100655152);
emit_32(3273664496);
emit_32(3275456512);
emit_32(1099898185);
emit_32(3273664496);
emit_32(3275200528);
emit_32(1097164495);
emit_32(3273664496);
emit_32(3274944545);
emit_32(1094617294);
emit_32(3273664496);
emit_32(3274688496);
emit_32(1092199750);
emit_32(3273664496);
emit_32(3274432512);
emit_32(1090062511);
emit_32(3273664496);
emit_32(3274176528);
emit_32(1090680196);
emit_32(3273664496);
emit_32(3273920545);
emit_32(1089407214);
emit_32(3273664496);
emit_32(3273664496);
emit_32(1087342316);
emit_32(3273664496);
emit_32(3273408512);
emit_32(1084811578);
emit_32(3273664496);
emit_32(3273152528);
emit_32(1083587386);
emit_32(3273664496);
emit_32(3272896545);
emit_32(1084521563);
emit_32(3273664496);
emit_32(3272640496);
emit_32(1079059237);
emit_32(3273664496);
emit_32(3272384512);
emit_32(1079341513);
emit_32(3273664496);
emit_32(3272128528);
emit_32(1075719690);
emit_32(3273664496);
emit_32(3271872545);
emit_32(1082462285);
emit_32(3273664496);
emit_32(3271616496);
emit_32(1087277514);
emit_32(3273664496);
emit_32(3271163904);
emit_32(1090505891);
emit_32(3273664496);
emit_32(3270651937);
emit_32(1090927198);
emit_32(3273664496);
emit_32(3270139970);
emit_32(1091146109);
emit_32(3273664496);
emit_32(3269627871);
emit_32(1092080475);
emit_32(3273664496);
emit_32(3269115904);
emit_32(1091780718);
emit_32(3273664496);
emit_32(3268603937);
emit_32(1090802554);
emit_32(3273664496);
emit_32(3268091970);
emit_32(1092320997);
emit_32(3273664496);
emit_32(3267579911);
emit_32(1094564132);
emit_32(3273664496);
emit_32(3267067904);
emit_32(1097435447);
emit_32(3273664496);
emit_32(3266555911);
emit_32(1098963118);
emit_32(3273664496);
emit_32(3266043904);
emit_32(1099774348);
emit_32(3273664496);
emit_32(3265531911);
emit_32(1100067530);
emit_32(3273664496);
emit_32(3265019904);
emit_32(1100332401);
emit_32(3273664496);
emit_32(3264507911);
emit_32(1101386639);
emit_32(3273664496);
emit_32(3263995904);
emit_32(1102851185);
emit_32(3273664496);
emit_32(3263483911);
emit_32(1104372774);
emit_32(3273664496);
emit_32(3262775296);
emit_32(1105071702);
emit_32(3273664496);
emit_32(3261751309);
emit_32(1105296726);
emit_32(3273664496);
emit_32(3260727296);
emit_32(1105674895);
emit_32(3273664496);
emit_32(3259703309);
emit_32(1106000583);
emit_32(3273664496);
emit_32(3258679296);
emit_32(1105931639);
emit_32(3273664496);
emit_32(3257655309);
emit_32(1106021188);
emit_32(3273664496);
emit_32(3256631296);
emit_32(1106564874);
emit_32(3273664496);
emit_32(3255607309);
emit_32(1107568073);
emit_32(3273664496);
emit_32(3254386688);
emit_32(1108016890);
emit_32(3273664496);
emit_32(3252338714);
emit_32(1108734483);
emit_32(3273664496);
emit_32(3250290688);
emit_32(1109191321);
emit_32(3273664496);
emit_32(3248242714);
emit_32(1109295759);
emit_32(3273664496);
emit_32(3245998080);
emit_32(1109358019);
emit_32(3273664496);
emit_32(3241902132);
emit_32(1109703603);
emit_32(3273664496);
emit_32(3237609472);
emit_32(1109859736);
emit_32(3273664496);
emit_32(3229220864);
emit_32(1109838319);
emit_32(3273664496);
emit_32(0);
emit_32(1109492761);
emit_32(3273664496);
emit_32(1081737216);
emit_32(1109518057);
emit_32(3273664496);
emit_32(3279552512);
emit_32(1104359299);
emit_32(3273920545);
emit_32(3279296528);
emit_32(1104339586);
emit_32(3273920545);
emit_32(3279040545);
emit_32(1104491735);
emit_32(3273920545);
emit_32(3278784496);
emit_32(1104791627);
emit_32(3273920545);
emit_32(3278528512);
emit_32(1105811577);
emit_32(3273920545);
emit_32(3278272528);
emit_32(1106308497);
emit_32(3273920545);
emit_32(3278016545);
emit_32(1106435952);
emit_32(3273920545);
emit_32(3277760496);
emit_32(1105655916);
emit_32(3273920545);
emit_32(3277504512);
emit_32(1104594023);
emit_32(3273920545);
emit_32(3277248528);
emit_32(1103614234);
emit_32(3273920545);
emit_32(3276992545);
emit_32(1103342128);
emit_32(3273920545);
emit_32(3276736496);
emit_32(1102922855);
emit_32(3273920545);
emit_32(3276480512);
emit_32(1102436945);
emit_32(3273920545);
emit_32(3276224528);
emit_32(1101625347);
emit_32(3273920545);
emit_32(3275968545);
emit_32(1100801953);
emit_32(3273920545);
emit_32(3275712496);
emit_32(1100227910);
emit_32(3273920545);
emit_32(3275456512);
emit_32(1099339661);
emit_32(3273920545);
emit_32(3275200528);
emit_32(1096681731);
emit_32(3273920545);
emit_32(3274944545);
emit_32(1093027548);
emit_32(3273920545);
emit_32(3274688496);
emit_32(1089483949);
emit_32(3273920545);
emit_32(3274432512);
emit_32(1087550857);
emit_32(3273920545);
emit_32(3274176528);
emit_32(1088032090);
emit_32(3273920545);
emit_32(3273920545);
emit_32(1088175452);
emit_32(3273920545);
emit_32(3273664496);
emit_32(1087974251);
emit_32(3273920545);
emit_32(3273408512);
emit_32(1084612369);
emit_32(3273920545);
emit_32(3273152528);
emit_32(1083056807);
emit_32(3273920545);
emit_32(3272896545);
emit_32(1083313058);
emit_32(3273920545);
emit_32(3272640496);
emit_32(1077966411);
emit_32(3273920545);
emit_32(3272384512);
emit_32(1077466701);
emit_32(3273920545);
emit_32(3272128528);
emit_32(1076194527);
emit_32(3273920545);
emit_32(3271872545);
emit_32(1078813199);
emit_32(3273920545);
emit_32(3271616496);
emit_32(1084920546);
emit_32(3273920545);
emit_32(3271163904);
emit_32(1087870295);
emit_32(3273920545);
emit_32(3270651937);
emit_32(1089931229);
emit_32(3273920545);
emit_32(3270139970);
emit_32(1090987638);
emit_32(3273920545);
emit_32(3269627871);
emit_32(1091623883);
emit_32(3273920545);
emit_32(3269115904);
emit_32(1091369550);
emit_32(3273920545);
emit_32(3268603937);
emit_32(1090009558);
emit_32(3273920545);
emit_32(3268091970);
emit_32(1093783362);
emit_32(3273920545);
emit_32(3267579911);
emit_32(1095581880);
emit_32(3273920545);
emit_32(3267067904);
emit_32(1097625344);
emit_32(3273920545);
emit_32(3266555911);
emit_32(1099002544);
emit_32(3273920545);
emit_32(3266043904);
emit_32(1099653605);
emit_32(3273920545);
emit_32(3265531911);
emit_32(1100228067);
emit_32(3273920545);
emit_32(3265019904);
emit_32(1100644195);
emit_32(3273920545);
emit_32(3264507911);
emit_32(1101087218);
emit_32(3273920545);
emit_32(3263995904);
emit_32(1102441873);
emit_32(3273920545);
emit_32(3263483911);
emit_32(1103411859);
emit_32(3273920545);
emit_32(3262775296);
emit_32(1104352169);
emit_32(3273920545);
emit_32(3261751309);
emit_32(1104534045);
emit_32(3273920545);
emit_32(3260727296);
emit_32(1104718961);
emit_32(3273920545);
emit_32(3259703309);
emit_32(1105600394);
emit_32(3273920545);
emit_32(3258679296);
emit_32(1105578322);
emit_32(3273920545);
emit_32(3257655309);
emit_32(1105873968);
emit_32(3273920545);
emit_32(3256631296);
emit_32(1105977043);
emit_32(3273920545);
emit_32(3255607309);
emit_32(1107501987);
emit_32(3273920545);
emit_32(3254386688);
emit_32(1108022657);
emit_32(3273920545);
emit_32(3252338714);
emit_32(1108493730);
emit_32(3273920545);
emit_32(3250290688);
emit_32(1108751627);
emit_32(3273920545);
emit_32(3248242714);
emit_32(1108976756);
emit_32(3273920545);
emit_32(3245998080);
emit_32(1109209357);
emit_32(3273920545);
emit_32(3241902132);
emit_32(1109224928);
emit_32(3273920545);
emit_32(3237609472);
emit_32(1109394299);
emit_32(3273920545);
emit_32(3229220864);
emit_32(1109287790);
emit_32(3273920545);
emit_32(0);
emit_32(1109096556);
emit_32(3273920545);
emit_32(1081737216);
emit_32(1109095429);
emit_32(3273920545);
emit_32(3279552512);
emit_32(1103777917);
emit_32(3274176528);
emit_32(3279296528);
emit_32(1103682863);
emit_32(3274176528);
emit_32(3279040545);
emit_32(1103889852);
emit_32(3274176528);
emit_32(3278784496);
emit_32(1104470082);
emit_32(3274176528);
emit_32(3278528512);
emit_32(1105367977);
emit_32(3274176528);
emit_32(3278272528);
emit_32(1105484998);
emit_32(3274176528);
emit_32(3278016545);
emit_32(1105335157);
emit_32(3274176528);
emit_32(3277760496);
emit_32(1104592136);
emit_32(3274176528);
emit_32(3277504512);
emit_32(1103631063);
emit_32(3274176528);
emit_32(3277248528);
emit_32(1103255306);
emit_32(3274176528);
emit_32(3276992545);
emit_32(1103018276);
emit_32(3274176528);
emit_32(3276736496);
emit_32(1102447378);
emit_32(3274176528);
emit_32(3276480512);
emit_32(1102332926);
emit_32(3274176528);
emit_32(3276224528);
emit_32(1101176976);
emit_32(3274176528);
emit_32(3275968545);
emit_32(1100388132);
emit_32(3274176528);
emit_32(3275712496);
emit_32(1099436969);
emit_32(3274176528);
emit_32(3275456512);
emit_32(1097622199);
emit_32(3274176528);
emit_32(3275200528);
emit_32(1095157206);
emit_32(3274176528);
emit_32(3274944545);
emit_32(1091943761);
emit_32(3274176528);
emit_32(3274688496);
emit_32(1087145897);
emit_32(3274176528);
emit_32(3274432512);
emit_32(1084175847);
emit_32(3274176528);
emit_32(3274176528);
emit_32(1083923161);
emit_32(3274176528);
emit_32(3273920545);
emit_32(1085375292);
emit_32(3274176528);
emit_32(3273664496);
emit_32(1084407834);
emit_32(3274176528);
emit_32(3273408512);
emit_32(1081391354);
emit_32(3274176528);
emit_32(3273152528);
emit_32(1081952216);
emit_32(3274176528);
emit_32(3272896545);
emit_32(1083406885);
emit_32(3274176528);
emit_32(3272640496);
emit_32(1079981732);
emit_32(3274176528);
emit_32(3272384512);
emit_32(1079058020);
emit_32(3274176528);
emit_32(3272128528);
emit_32(1072707676);
emit_32(3274176528);
emit_32(3271872545);
emit_32(1076687568);
emit_32(3274176528);
emit_32(3271616496);
emit_32(1083207089);
emit_32(3274176528);
emit_32(3271163904);
emit_32(1086389538);
emit_32(3274176528);
emit_32(3270651937);
emit_32(1089283314);
emit_32(3274176528);
emit_32(3270139970);
emit_32(1089347172);
emit_32(3274176528);
emit_32(3269627871);
emit_32(1089486696);
emit_32(3274176528);
emit_32(3269115904);
emit_32(1088193739);
emit_32(3274176528);
emit_32(3268603937);
emit_32(1090655722);
emit_32(3274176528);
emit_32(3268091970);
emit_32(1094451515);
emit_32(3274176528);
emit_32(3267579911);
emit_32(1096952893);
emit_32(3274176528);
emit_32(3267067904);
emit_32(1098336489);
emit_32(3274176528);
emit_32(3266555911);
emit_32(1099234437);
emit_32(3274176528);
emit_32(3266043904);
emit_32(1099379612);
emit_32(3274176528);
emit_32(3265531911);
emit_32(1100215799);
emit_32(3274176528);
emit_32(3265019904);
emit_32(1100530162);
emit_32(3274176528);
emit_32(3264507911);
emit_32(1101031329);
emit_32(3274176528);
emit_32(3263995904);
emit_32(1101498994);
emit_32(3274176528);
emit_32(3263483911);
emit_32(1102563928);
emit_32(3274176528);
emit_32(3262775296);
emit_32(1103428531);
emit_32(3274176528);
emit_32(3261751309);
emit_32(1104384360);
emit_32(3274176528);
emit_32(3260727296);
emit_32(1104488589);
emit_32(3274176528);
emit_32(3259703309);
emit_32(1104535827);
emit_32(3274176528);
emit_32(3258679296);
emit_32(1105265479);
emit_32(3274176528);
emit_32(3257655309);
emit_32(1106039747);
emit_32(3274176528);
emit_32(3256631296);
emit_32(1106434956);
emit_32(3274176528);
emit_32(3255607309);
emit_32(1107058596);
emit_32(3274176528);
emit_32(3254386688);
emit_32(1107738703);
emit_32(3274176528);
emit_32(3252338714);
emit_32(1108236567);
emit_32(3274176528);
emit_32(3250290688);
emit_32(1108369447);
emit_32(3274176528);
emit_32(3248242714);
emit_32(1108738258);
emit_32(3274176528);
emit_32(3245998080);
emit_32(1108925140);
emit_32(3274176528);
emit_32(3241902132);
emit_32(1108891219);
emit_32(3274176528);
emit_32(3237609472);
emit_32(1109019224);
emit_32(3274176528);
emit_32(3229220864);
emit_32(1108962574);
emit_32(3274176528);
emit_32(0);
emit_32(1108838921);
emit_32(3274176528);
emit_32(1081737216);
emit_32(1108664621);
emit_32(3274176528);
emit_32(3279552512);
emit_32(1103175247);
emit_32(3274432512);
emit_32(3279296528);
emit_32(1103008996);
emit_32(3274432512);
emit_32(3279040545);
emit_32(1103511840);
emit_32(3274432512);
emit_32(3278784496);
emit_32(1104205736);
emit_32(3274432512);
emit_32(3278528512);
emit_32(1104650804);
emit_32(3274432512);
emit_32(3278272528);
emit_32(1104410365);
emit_32(3274432512);
emit_32(3278016545);
emit_32(1103881359);
emit_32(3274432512);
emit_32(3277760496);
emit_32(1103489768);
emit_32(3274432512);
emit_32(3277504512);
emit_32(1102805048);
emit_32(3274432512);
emit_32(3277248528);
emit_32(1102700452);
emit_32(3274432512);
emit_32(3276992545);
emit_32(1102108688);
emit_32(3274432512);
emit_32(3276736496);
emit_32(1101386429);
emit_32(3274432512);
emit_32(3276480512);
emit_32(1101386115);
emit_32(3274432512);
emit_32(3276224528);
emit_32(1100548774);
emit_32(3274432512);
emit_32(3275968545);
emit_32(1099100534);
emit_32(3274432512);
emit_32(3275712496);
emit_32(1097287388);
emit_32(3274432512);
emit_32(3275456512);
emit_32(1095246545);
emit_32(3274432512);
emit_32(3275200528);
emit_32(1092624685);
emit_32(3274432512);
emit_32(3274944545);
emit_32(1090219567);
emit_32(3274432512);
emit_32(3274688496);
emit_32(1082930516);
emit_32(3274432512);
emit_32(3274432512);
emit_32(1078918434);
emit_32(3274432512);
emit_32(3274176528);
emit_32(1079511215);
emit_32(3274432512);
emit_32(3273920545);
emit_32(1081732351);
emit_32(3274432512);
emit_32(3273664496);
emit_32(1079040698);
emit_32(3274432512);
emit_32(3273408512);
emit_32(1077451183);
emit_32(3274432512);
emit_32(3273152528);
emit_32(1082592749);
emit_32(3274432512);
emit_32(3272896545);
emit_32(1081429857);
emit_32(3274432512);
emit_32(3272640496);
emit_32(1077879421);
emit_32(3274432512);
emit_32(3272384512);
emit_32(1077261516);
emit_32(3274432512);
emit_32(3272128528);
emit_32(1073521036);
emit_32(3274432512);
emit_32(3271872545);
emit_32(1072559785);
emit_32(3274432512);
emit_32(3271616496);
emit_32(1078796380);
emit_32(3274432512);
emit_32(3271163904);
emit_32(1084493587);
emit_32(3274432512);
emit_32(3270651937);
emit_32(1086050198);
emit_32(3274432512);
emit_32(3270139970);
emit_32(1087277451);
emit_32(3274432512);
emit_32(3269627871);
emit_32(1086930582);
emit_32(3274432512);
emit_32(3269115904);
emit_32(1089544619);
emit_32(3274432512);
emit_32(3268603937);
emit_32(1092037839);
emit_32(3274432512);
emit_32(3268091970);
emit_32(1094101185);
emit_32(3274432512);
emit_32(3267579911);
emit_32(1096539125);
emit_32(3274432512);
emit_32(3267067904);
emit_32(1097682387);
emit_32(3274432512);
emit_32(3266555911);
emit_32(1098380005);
emit_32(3274432512);
emit_32(3266043904);
emit_32(1099089471);
emit_32(3274432512);
emit_32(3265531911);
emit_32(1100092801);
emit_32(3274432512);
emit_32(3265019904);
emit_32(1099999687);
emit_32(3274432512);
emit_32(3264507911);
emit_32(1100034290);
emit_32(3274432512);
emit_32(3263995904);
emit_32(1101354920);
emit_32(3274432512);
emit_32(3263483911);
emit_32(1102642361);
emit_32(3274432512);
emit_32(3262775296);
emit_32(1103324617);
emit_32(3274432512);
emit_32(3261751309);
emit_32(1104424364);
emit_32(3274432512);
emit_32(3260727296);
emit_32(1104375238);
emit_32(3274432512);
emit_32(3259703309);
emit_32(1104526075);
emit_32(3274432512);
emit_32(3258679296);
emit_32(1105221963);
emit_32(3274432512);
emit_32(3257655309);
emit_32(1106081009);
emit_32(3274432512);
emit_32(3256631296);
emit_32(1106625692);
emit_32(3274432512);
emit_32(3255607309);
emit_32(1106869957);
emit_32(3274432512);
emit_32(3254386688);
emit_32(1107361976);
emit_32(3274432512);
emit_32(3252338714);
emit_32(1107660584);
emit_32(3274432512);
emit_32(3250290688);
emit_32(1107794539);
emit_32(3274432512);
emit_32(3248242714);
emit_32(1108030993);
emit_32(3274432512);
emit_32(3245998080);
emit_32(1108270855);
emit_32(3274432512);
emit_32(3241902132);
emit_32(1108287055);
emit_32(3274432512);
emit_32(3237609472);
emit_32(1108250041);
emit_32(3274432512);
emit_32(3229220864);
emit_32(1108216958);
emit_32(3274432512);
emit_32(0);
emit_32(1108239267);
emit_32(3274432512);
emit_32(1081737216);
emit_32(1108184872);
emit_32(3274432512);
emit_32(3279552512);
emit_32(1102812126);
emit_32(3274688496);
emit_32(3279296528);
emit_32(1103117418);
emit_32(3274688496);
emit_32(3279040545);
emit_32(1103649885);
emit_32(3274688496);
emit_32(3278784496);
emit_32(1104097313);
emit_32(3274688496);
emit_32(3278528512);
emit_32(1104444654);
emit_32(3274688496);
emit_32(3278272528);
emit_32(1104063601);
emit_32(3274688496);
emit_32(3278016545);
emit_32(1103545814);
emit_32(3274688496);
emit_32(3277760496);
emit_32(1103584507);
emit_32(3274688496);
emit_32(3277504512);
emit_32(1102679009);
emit_32(3274688496);
emit_32(3277248528);
emit_32(1102258687);
emit_32(3274688496);
emit_32(3276992545);
emit_32(1101507854);
emit_32(3274688496);
emit_32(3276736496);
emit_32(1100690909);
emit_32(3274688496);
emit_32(3276480512);
emit_32(1100132332);
emit_32(3274688496);
emit_32(3276224528);
emit_32(1099019583);
emit_32(3274688496);
emit_32(3275968545);
emit_32(1097127376);
emit_32(3274688496);
emit_32(3275712496);
emit_32(1095215822);
emit_32(3274688496);
emit_32(3275456512);
emit_32(1092786166);
emit_32(3274688496);
emit_32(3275200528);
emit_32(1090176785);
emit_32(3274688496);
emit_32(3274944545);
emit_32(1085473439);
emit_32(3274688496);
emit_32(3274688496);
emit_32(1079921376);
emit_32(3274688496);
emit_32(3274432512);
emit_32(1075489590);
emit_32(3274688496);
emit_32(3274176528);
emit_32(1074320386);
emit_32(3274688496);
emit_32(3273920545);
emit_32(1075278281);
emit_32(3274688496);
emit_32(3273664496);
emit_32(1075627373);
emit_32(3274688496);
emit_32(3273408512);
emit_32(1075421307);
emit_32(3274688496);
emit_32(3273152528);
emit_32(1077995687);
emit_32(3274688496);
emit_32(3272896545);
emit_32(1076187271);
emit_32(3274688496);
emit_32(3272640496);
emit_32(1078197056);
emit_32(3274688496);
emit_32(3272384512);
emit_32(1077490273);
emit_32(3274688496);
emit_32(3272128528);
emit_32(1076221287);
emit_32(3274688496);
emit_32(3271872545);
emit_32(1074908092);
emit_32(3274688496);
emit_32(3271616496);
emit_32(1080775462);
emit_32(3274688496);
emit_32(3271163904);
emit_32(1084715256);
emit_32(3274688496);
emit_32(3270651937);
emit_32(1086583504);
emit_32(3274688496);
emit_32(3270139970);
emit_32(1086842502);
emit_32(3274688496);
emit_32(3269627871);
emit_32(1087987400);
emit_32(3274688496);
emit_32(3269115904);
emit_32(1090173891);
emit_32(3274688496);
emit_32(3268603937);
emit_32(1091923838);
emit_32(3274688496);
emit_32(3268091970);
emit_32(1093947988);
emit_32(3274688496);
emit_32(3267579911);
emit_32(1095834167);
emit_32(3274688496);
emit_32(3267067904);
emit_32(1096733950);
emit_32(3274688496);
emit_32(3266555911);
emit_32(1097836842);
emit_32(3274688496);
emit_32(3266043904);
emit_32(1098556060);
emit_32(3274688496);
emit_32(3265531911);
emit_32(1099108608);
emit_32(3274688496);
emit_32(3265019904);
emit_32(1098963275);
emit_32(3274688496);
emit_32(3264507911);
emit_32(1099819542);
emit_32(3274688496);
emit_32(3263995904);
emit_32(1100942305);
emit_32(3274688496);
emit_32(3263483911);
emit_32(1102197608);
emit_32(3274688496);
emit_32(3262775296);
emit_32(1103022837);
emit_32(3274688496);
emit_32(3261751309);
emit_32(1103801562);
emit_32(3274688496);
emit_32(3260727296);
emit_32(1104507988);
emit_32(3274688496);
emit_32(3259703309);
emit_32(1105154592);
emit_32(3274688496);
emit_32(3258679296);
emit_32(1105464079);
emit_32(3274688496);
emit_32(3257655309);
emit_32(1106093382);
emit_32(3274688496);
emit_32(3256631296);
emit_32(1106574311);
emit_32(3274688496);
emit_32(3255607309);
emit_32(1107051990);
emit_32(3274688496);
emit_32(3254386688);
emit_32(1107119571);
emit_32(3274688496);
emit_32(3252338714);
emit_32(1106870849);
emit_32(3274688496);
emit_32(3250290688);
emit_32(1107053878);
emit_32(3274688496);
emit_32(3248242714);
emit_32(1107270461);
emit_32(3274688496);
emit_32(3245998080);
emit_32(1107546577);
emit_32(3274688496);
emit_32(3241902132);
emit_32(1107761064);
emit_32(3274688496);
emit_32(3237609472);
emit_32(1107768718);
emit_32(3274688496);
emit_32(3229220864);
emit_32(1107959035);
emit_32(3274688496);
emit_32(0);
emit_32(1108028398);
emit_32(3274688496);
emit_32(1081737216);
emit_32(1108036289);
emit_32(3274688496);
emit_32(3279552512);
emit_32(1102194829);
emit_32(3274944545);
emit_32(3279296528);
emit_32(1102979740);
emit_32(3274944545);
emit_32(3279040545);
emit_32(1103411282);
emit_32(3274944545);
emit_32(3278784496);
emit_32(1104236354);
emit_32(3274944545);
emit_32(3278528512);
emit_32(1103902330);
emit_32(3274944545);
emit_32(3278272528);
emit_32(1103359430);
emit_32(3274944545);
emit_32(3278016545);
emit_32(1103570665);
emit_32(3274944545);
emit_32(3277760496);
emit_32(1102969255);
emit_32(3274944545);
emit_32(3277504512);
emit_32(1102559995);
emit_32(3274944545);
emit_32(3277248528);
emit_32(1101349467);
emit_32(3274944545);
emit_32(3276992545);
emit_32(1100611689);
emit_32(3274944545);
emit_32(3276736496);
emit_32(1099639921);
emit_32(3274944545);
emit_32(3276480512);
emit_32(1098874513);
emit_32(3274944545);
emit_32(3276224528);
emit_32(1096071040);
emit_32(3274944545);
emit_32(3275968545);
emit_32(1094641831);
emit_32(3274944545);
emit_32(3275712496);
emit_32(1092240938);
emit_32(3274944545);
emit_32(3275456512);
emit_32(1090400551);
emit_32(3274944545);
emit_32(3275200528);
emit_32(1086726760);
emit_32(3274944545);
emit_32(3274944545);
emit_32(1082213060);
emit_32(3274944545);
emit_32(3274688496);
emit_32(1073126939);
emit_32(3274944545);
emit_32(3274432512);
emit_32(1071516914);
emit_32(3274944545);
emit_32(3274176528);
emit_32(1065259968);
emit_32(3274944545);
emit_32(3273920545);
emit_32(1065288959);
emit_32(3274944545);
emit_32(3273664496);
emit_32(1065357243);
emit_32(3274944545);
emit_32(3273408512);
emit_32(1069920478);
emit_32(3274944545);
emit_32(3273152528);
emit_32(1062828597);
emit_32(3274944545);
emit_32(3272896545);
emit_32(1067908386);
emit_32(3274944545);
emit_32(3272640496);
emit_32(1068584424);
emit_32(3274944545);
emit_32(3272384512);
emit_32(1063954466);
emit_32(3274944545);
emit_32(3272128528);
emit_32(1068682235);
emit_32(3274944545);
emit_32(3271872545);
emit_32(1074494492);
emit_32(3274944545);
emit_32(3271616496);
emit_32(1082171809);
emit_32(3274944545);
emit_32(3271163904);
emit_32(1085758274);
emit_32(3274944545);
emit_32(3270651937);
emit_32(1088930825);
emit_32(3274944545);
emit_32(3270139970);
emit_32(1088551890);
emit_32(3274944545);
emit_32(3269627871);
emit_32(1090336420);
emit_32(3274944545);
emit_32(3269115904);
emit_32(1090128550);
emit_32(3274944545);
emit_32(3268603937);
emit_32(1092723147);
emit_32(3274944545);
emit_32(3268091970);
emit_32(1094514744);
emit_32(3274944545);
emit_32(3267579911);
emit_32(1095724381);
emit_32(3274944545);
emit_32(3267067904);
emit_32(1096378378);
emit_32(3274944545);
emit_32(3266555911);
emit_32(1096239232);
emit_32(3274944545);
emit_32(3266043904);
emit_32(1097003853);
emit_32(3274944545);
emit_32(3265531911);
emit_32(1097209165);
emit_32(3274944545);
emit_32(3265019904);
emit_32(1098262459);
emit_32(3274944545);
emit_32(3264507911);
emit_32(1099551893);
emit_32(3274944545);
emit_32(3263995904);
emit_32(1100443025);
emit_32(3274944545);
emit_32(3263483911);
emit_32(1101006635);
emit_32(3274944545);
emit_32(3262775296);
emit_32(1102193466);
emit_32(3274944545);
emit_32(3261751309);
emit_32(1103692405);
emit_32(3274944545);
emit_32(3260727296);
emit_32(1104818733);
emit_32(3274944545);
emit_32(3259703309);
emit_32(1105337935);
emit_32(3274944545);
emit_32(3258679296);
emit_32(1105923932);
emit_32(3274944545);
emit_32(3257655309);
emit_32(1106359720);
emit_32(3274944545);
emit_32(3256631296);
emit_32(1106972561);
emit_32(3274944545);
emit_32(3255607309);
emit_32(1106903040);
emit_32(3274944545);
emit_32(3254386688);
emit_32(1106792520);
emit_32(3274944545);
emit_32(3252338714);
emit_32(1106424313);
emit_32(3274944545);
emit_32(3250290688);
emit_32(1106536196);
emit_32(3274944545);
emit_32(3248242714);
emit_32(1106757026);
emit_32(3274944545);
emit_32(3245998080);
emit_32(1107206445);
emit_32(3274944545);
emit_32(3241902132);
emit_32(1107332773);
emit_32(3274944545);
emit_32(3237609472);
emit_32(1107315261);
emit_32(3274944545);
emit_32(3229220864);
emit_32(1107468589);
emit_32(3274944545);
emit_32(0);
emit_32(1107529276);
emit_32(3274944545);
emit_32(1081737216);
emit_32(1107544270);
emit_32(3274944545);
emit_32(3279552512);
emit_32(1102256485);
emit_32(3275200528);
emit_32(3279296528);
emit_32(1102476581);
emit_32(3275200528);
emit_32(3279040545);
emit_32(1102648600);
emit_32(3275200528);
emit_32(3278784496);
emit_32(1103151707);
emit_32(3275200528);
emit_32(3278528512);
emit_32(1103103315);
emit_32(3275200528);
emit_32(3278272528);
emit_32(1102817788);
emit_32(3275200528);
emit_32(3278016545);
emit_32(1103034843);
emit_32(3275200528);
emit_32(3277760496);
emit_32(1102561411);
emit_32(3275200528);
emit_32(3277504512);
emit_32(1101968179);
emit_32(3275200528);
emit_32(3277248528);
emit_32(1100968939);
emit_32(3275200528);
emit_32(3276992545);
emit_32(1099333370);
emit_32(3275200528);
emit_32(3276736496);
emit_32(1098046662);
emit_32(3275200528);
emit_32(3276480512);
emit_32(1096587778);
emit_32(3275200528);
emit_32(3276224528);
emit_32(1094379687);
emit_32(3275200528);
emit_32(3275968545);
emit_32(1092357099);
emit_32(3275200528);
emit_32(3275712496);
emit_32(1088608073);
emit_32(3275200528);
emit_32(3275456512);
emit_32(1087226532);
emit_32(3275200528);
emit_32(3275200528);
emit_32(1084547148);
emit_32(3275200528);
emit_32(3274944545);
emit_32(1081193131);
emit_32(3275200528);
emit_32(3274688496);
emit_32(1078008983);
emit_32(3275200528);
emit_32(3274432512);
emit_32(1069241755);
emit_32(3275200528);
emit_32(3274176528);
emit_32(1061457513);
emit_32(3275200528);
emit_32(3273920545);
emit_32(1073613814);
emit_32(3275200528);
emit_32(3273664496);
emit_32(1066147869);
emit_32(3275200528);
emit_32(3273408512);
emit_32(1067857803);
emit_32(3275200528);
emit_32(3273152528);
emit_32(3192938482);
emit_32(3275200528);
emit_32(3272896545);
emit_32(3204552258);
emit_32(3275200528);
emit_32(3272640496);
emit_32(3207444717);
emit_32(3275200528);
emit_32(3272384512);
emit_32(1042926373);
emit_32(3275200528);
emit_32(3272128528);
emit_32(1069107873);
emit_32(3275200528);
emit_32(3271872545);
emit_32(1068988587);
emit_32(3275200528);
emit_32(3271616496);
emit_32(1078926571);
emit_32(3275200528);
emit_32(3271163904);
emit_32(1083921610);
emit_32(3275200528);
emit_32(3270651937);
emit_32(1087667710);
emit_32(3275200528);
emit_32(3270139970);
emit_32(1090444214);
emit_32(3275200528);
emit_32(3269627871);
emit_32(1091070528);
emit_32(3275200528);
emit_32(3269115904);
emit_32(1090066034);
emit_32(3275200528);
emit_32(3268603937);
emit_32(1092043900);
emit_32(3275200528);
emit_32(3268091970);
emit_32(1094000103);
emit_32(3275200528);
emit_32(3267579911);
emit_32(1094961752);
emit_32(3275200528);
emit_32(3267067904);
emit_32(1095524208);
emit_32(3275200528);
emit_32(3266555911);
emit_32(1095676356);
emit_32(3275200528);
emit_32(3266043904);
emit_32(1095717880);
emit_32(3275200528);
emit_32(3265531911);
emit_32(1096110676);
emit_32(3275200528);
emit_32(3265019904);
emit_32(1097228249);
emit_32(3275200528);
emit_32(3264507911);
emit_32(1099051146);
emit_32(3275200528);
emit_32(3263995904);
emit_32(1099955228);
emit_32(3275200528);
emit_32(3263483911);
emit_32(1100759119);
emit_32(3275200528);
emit_32(3262775296);
emit_32(1101740848);
emit_32(3275200528);
emit_32(3261751309);
emit_32(1103570928);
emit_32(3275200528);
emit_32(3260727296);
emit_32(1104669783);
emit_32(3275200528);
emit_32(3259703309);
emit_32(1105525316);
emit_32(3275200528);
emit_32(3258679296);
emit_32(1106359248);
emit_32(3275200528);
emit_32(3257655309);
emit_32(1106517269);
emit_32(3275200528);
emit_32(3256631296);
emit_32(1106616045);
emit_32(3275200528);
emit_32(3255607309);
emit_32(1106583906);
emit_32(3275200528);
emit_32(3254386688);
emit_32(1106124944);
emit_32(3275200528);
emit_32(3252338714);
emit_32(1106384676);
emit_32(3275200528);
emit_32(3250290688);
emit_32(1106808354);
emit_32(3275200528);
emit_32(3248242714);
emit_32(1106794879);
emit_32(3275200528);
emit_32(3245998080);
emit_32(1106762741);
emit_32(3275200528);
emit_32(3241902132);
emit_32(1106491369);
emit_32(3275200528);
emit_32(3237609472);
emit_32(1106295705);
emit_32(3275200528);
emit_32(3229220864);
emit_32(1106289675);
emit_32(3275200528);
emit_32(0);
emit_32(1106247261);
emit_32(3275200528);
emit_32(1081737216);
emit_32(1106249096);
emit_32(3275200528);
emit_32(3279552512);
emit_32(1102201697);
emit_32(3275456512);
emit_32(3279296528);
emit_32(1102659820);
emit_32(3275456512);
emit_32(3279040545);
emit_32(1102694528);
emit_32(3275456512);
emit_32(3278784496);
emit_32(1102926001);
emit_32(3275456512);
emit_32(3278528512);
emit_32(1102847567);
emit_32(3275456512);
emit_32(3278272528);
emit_32(1102512443);
emit_32(3275456512);
emit_32(3278016545);
emit_32(1102182928);
emit_32(3275456512);
emit_32(3277760496);
emit_32(1101754112);
emit_32(3275456512);
emit_32(3277504512);
emit_32(1101220178);
emit_32(3275456512);
emit_32(3277248528);
emit_32(1100092591);
emit_32(3275456512);
emit_32(3276992545);
emit_32(1099095081);
emit_32(3275456512);
emit_32(3276736496);
emit_32(1095841821);
emit_32(3275456512);
emit_32(3276480512);
emit_32(1094285106);
emit_32(3275456512);
emit_32(3276224528);
emit_32(1092426242);
emit_32(3275456512);
emit_32(3275968545);
emit_32(1091118752);
emit_32(3275456512);
emit_32(3275712496);
emit_32(1086196076);
emit_32(3275456512);
emit_32(3275456512);
emit_32(1084558955);
emit_32(3275456512);
emit_32(3275200528);
emit_32(1081694099);
emit_32(3275456512);
emit_32(3274944545);
emit_32(1083225900);
emit_32(3275456512);
emit_32(3274688496);
emit_32(1082574231);
emit_32(3275456512);
emit_32(3274432512);
emit_32(1076364145);
emit_32(3275456512);
emit_32(3274176528);
emit_32(1072545021);
emit_32(3275456512);
emit_32(3273920545);
emit_32(1074334018);
emit_32(3275456512);
emit_32(3273664496);
emit_32(1076300014);
emit_32(3275456512);
emit_32(3273408512);
emit_32(1073720181);
emit_32(3275456512);
emit_32(3273152528);
emit_32(1062607037);
emit_32(3275456512);
emit_32(3272896545);
emit_32(3187287312);
emit_32(3275456512);
emit_32(3272640496);
emit_32(3214601911);
emit_32(3275456512);
emit_32(3272384512);
emit_32(1058984736);
emit_32(3275456512);
emit_32(3272128528);
emit_32(1074596288);
emit_32(3275456512);
emit_32(3271872545);
emit_32(1076067859);
emit_32(3275456512);
emit_32(3271616496);
emit_32(1078353210);
emit_32(3275456512);
emit_32(3271163904);
emit_32(1083728860);
emit_32(3275456512);
emit_32(3270651937);
emit_32(1087570235);
emit_32(3275456512);
emit_32(3270139970);
emit_32(1089274527);
emit_32(3275456512);
emit_32(3269627871);
emit_32(1090698305);
emit_32(3275456512);
emit_32(3269115904);
emit_32(1091459088);
emit_32(3275456512);
emit_32(3268603937);
emit_32(1092135063);
emit_32(3275456512);
emit_32(3268091970);
emit_32(1093474242);
emit_32(3275456512);
emit_32(3267579911);
emit_32(1094959235);
emit_32(3275456512);
emit_32(3267067904);
emit_32(1094655672);
emit_32(3275456512);
emit_32(3266555911);
emit_32(1095034523);
emit_32(3275456512);
emit_32(3266043904);
emit_32(1095524522);
emit_32(3275456512);
emit_32(3265531911);
emit_32(1096032557);
emit_32(3275456512);
emit_32(3265019904);
emit_32(1097045482);
emit_32(3275456512);
emit_32(3264507911);
emit_32(1098064278);
emit_32(3275456512);
emit_32(3263995904);
emit_32(1099811573);
emit_32(3275456512);
emit_32(3263483911);
emit_32(1101577899);
emit_32(3275456512);
emit_32(3262775296);
emit_32(1102983515);
emit_32(3275456512);
emit_32(3261751309);
emit_32(1103562015);
emit_32(3275456512);
emit_32(3260727296);
emit_32(1104461116);
emit_32(3275456512);
emit_32(3259703309);
emit_32(1105235752);
emit_32(3275456512);
emit_32(3258679296);
emit_32(1106329049);
emit_32(3275456512);
emit_32(3257655309);
emit_32(1106693744);
emit_32(3275456512);
emit_32(3256631296);
emit_32(1106663703);
emit_32(3275456512);
emit_32(3255607309);
emit_32(1106416710);
emit_32(3275456512);
emit_32(3254386688);
emit_32(1105642390);
emit_32(3275456512);
emit_32(3252338714);
emit_32(1106355631);
emit_32(3275456512);
emit_32(3250290688);
emit_32(1107058020);
emit_32(3275456512);
emit_32(3248242714);
emit_32(1106806414);
emit_32(3275456512);
emit_32(3245998080);
emit_32(1106545790);
emit_32(3275456512);
emit_32(3241902132);
emit_32(1106234783);
emit_32(3275456512);
emit_32(3237609472);
emit_32(1105605637);
emit_32(3275456512);
emit_32(3229220864);
emit_32(1105327922);
emit_32(3275456512);
emit_32(0);
emit_32(1104886890);
emit_32(3275456512);
emit_32(1081737216);
emit_32(1105010622);
emit_32(3275456512);
emit_32(3279552512);
emit_32(1101796265);
emit_32(3275712496);
emit_32(3279296528);
emit_32(1102154616);
emit_32(3275712496);
emit_32(3279040545);
emit_32(1102271480);
emit_32(3275712496);
emit_32(3278784496);
emit_32(1102377910);
emit_32(3275712496);
emit_32(3278528512);
emit_32(1102537923);
emit_32(3275712496);
emit_32(3278272528);
emit_32(1102370151);
emit_32(3275712496);
emit_32(3278016545);
emit_32(1101809268);
emit_32(3275712496);
emit_32(3277760496);
emit_32(1101123289);
emit_32(3275712496);
emit_32(3277504512);
emit_32(1100805466);
emit_32(3275712496);
emit_32(3277248528);
emit_32(1100000736);
emit_32(3275712496);
emit_32(3276992545);
emit_32(1098896743);
emit_32(3275712496);
emit_32(3276736496);
emit_32(1095489500);
emit_32(3275712496);
emit_32(3276480512);
emit_32(1092604647);
emit_32(3275712496);
emit_32(3276224528);
emit_32(1089231431);
emit_32(3275712496);
emit_32(3275968545);
emit_32(1086808717);
emit_32(3275712496);
emit_32(3275712496);
emit_32(1083957890);
emit_32(3275712496);
emit_32(3275456512);
emit_32(1083971564);
emit_32(3275712496);
emit_32(3275200528);
emit_32(1083249913);
emit_32(3275712496);
emit_32(3274944545);
emit_32(1084720771);
emit_32(3275712496);
emit_32(3274688496);
emit_32(1082599125);
emit_32(3275712496);
emit_32(3274432512);
emit_32(1079874484);
emit_32(3275712496);
emit_32(3274176528);
emit_32(1080545069);
emit_32(3275712496);
emit_32(3273920545);
emit_32(1078235685);
emit_32(3275712496);
emit_32(3273664496);
emit_32(1080867653);
emit_32(3275712496);
emit_32(3273408512);
emit_32(1082567206);
emit_32(3275712496);
emit_32(3273152528);
emit_32(1074733945);
emit_32(3275712496);
emit_32(3272896545);
emit_32(1058342370);
emit_32(3275712496);
emit_32(3272640496);
emit_32(1055267089);
emit_32(3275712496);
emit_32(3272384512);
emit_32(1075522138);
emit_32(3275712496);
emit_32(3272128528);
emit_32(1080234900);
emit_32(3275712496);
emit_32(3271872545);
emit_32(1080374822);
emit_32(3275712496);
emit_32(3271616496);
emit_32(1083014633);
emit_32(3275712496);
emit_32(3271163904);
emit_32(1084734109);
emit_32(3275712496);
emit_32(3270651937);
emit_32(1087494779);
emit_32(3275712496);
emit_32(3270139970);
emit_32(1088284965);
emit_32(3275712496);
emit_32(3269627871);
emit_32(1089959289);
emit_32(3275712496);
emit_32(3269115904);
emit_32(1090565890);
emit_32(3275712496);
emit_32(3268603937);
emit_32(1091730439);
emit_32(3275712496);
emit_32(3268091970);
emit_32(1093621042);
emit_32(3275712496);
emit_32(3267579911);
emit_32(1094912259);
emit_32(3275712496);
emit_32(3267067904);
emit_32(1094344350);
emit_32(3275712496);
emit_32(3266555911);
emit_32(1094347810);
emit_32(3275712496);
emit_32(3266043904);
emit_32(1095166958);
emit_32(3275712496);
emit_32(3265531911);
emit_32(1096161218);
emit_32(3275712496);
emit_32(3265019904);
emit_32(1097215246);
emit_32(3275712496);
emit_32(3264507911);
emit_32(1099003068);
emit_32(3275712496);
emit_32(3263995904);
emit_32(1100476894);
emit_32(3275712496);
emit_32(3263483911);
emit_32(1102488954);
emit_32(3275712496);
emit_32(3262775296);
emit_32(1103829035);
emit_32(3275712496);
emit_32(3261751309);
emit_32(1104228332);
emit_32(3275712496);
emit_32(3260727296);
emit_32(1103954339);
emit_32(3275712496);
emit_32(3259703309);
emit_32(1104646714);
emit_32(3275712496);
emit_32(3258679296);
emit_32(1105727324);
emit_32(3275712496);
emit_32(3257655309);
emit_32(1106170243);
emit_32(3275712496);
emit_32(3256631296);
emit_32(1106312482);
emit_32(3275712496);
emit_32(3255607309);
emit_32(1106119596);
emit_32(3275712496);
emit_32(3254386688);
emit_32(1105456687);
emit_32(3275712496);
emit_32(3252338714);
emit_32(1106005931);
emit_32(3275712496);
emit_32(3250290688);
emit_32(1106493309);
emit_32(3275712496);
emit_32(3248242714);
emit_32(1106443921);
emit_32(3275712496);
emit_32(3245998080);
emit_32(1106444917);
emit_32(3275712496);
emit_32(3241902132);
emit_32(1105728582);
emit_32(3275712496);
emit_32(3237609472);
emit_32(1105301445);
emit_32(3275712496);
emit_32(3229220864);
emit_32(1104221307);
emit_32(3275712496);
emit_32(0);
emit_32(1103753013);
emit_32(3275712496);
emit_32(1081737216);
emit_32(1103817710);
emit_32(3275712496);
emit_32(3279552512);
emit_32(1101413745);
emit_32(3275968545);
emit_32(3279296528);
emit_32(1101438858);
emit_32(3275968545);
emit_32(3279040545);
emit_32(1101644379);
emit_32(3275968545);
emit_32(3278784496);
emit_32(1102087560);
emit_32(3275968545);
emit_32(3278528512);
emit_32(1102163214);
emit_32(3275968545);
emit_32(3278272528);
emit_32(1102125308);
emit_32(3275968545);
emit_32(3278016545);
emit_32(1101537739);
emit_32(3275968545);
emit_32(3277760496);
emit_32(1100699350);
emit_32(3275968545);
emit_32(3277504512);
emit_32(1099847539);
emit_32(3275968545);
emit_32(3277248528);
emit_32(1099231239);
emit_32(3275968545);
emit_32(3276992545);
emit_32(1097551315);
emit_32(3275968545);
emit_32(3276736496);
emit_32(1094513590);
emit_32(3275968545);
emit_32(3276480512);
emit_32(1092236859);
emit_32(3275968545);
emit_32(3276224528);
emit_32(1087371425);
emit_32(3275968545);
emit_32(3275968545);
emit_32(1086821908);
emit_32(3275968545);
emit_32(3275712496);
emit_32(1087590871);
emit_32(3275968545);
emit_32(3275456512);
emit_32(1086797791);
emit_32(3275968545);
emit_32(3275200528);
emit_32(1085233189);
emit_32(3275968545);
emit_32(3274944545);
emit_32(1084580975);
emit_32(3275968545);
emit_32(3274688496);
emit_32(1083882351);
emit_32(3275968545);
emit_32(3274432512);
emit_32(1082486780);
emit_32(3275968545);
emit_32(3274176528);
emit_32(1085077623);
emit_32(3275968545);
emit_32(3273920545);
emit_32(1084260342);
emit_32(3275968545);
emit_32(3273664496);
emit_32(1083367290);
emit_32(3275968545);
emit_32(3273408512);
emit_32(1083666638);
emit_32(3275968545);
emit_32(3273152528);
emit_32(1078547909);
emit_32(3275968545);
emit_32(3272896545);
emit_32(1066770387);
emit_32(3275968545);
emit_32(3272640496);
emit_32(1075803744);
emit_32(3275968545);
emit_32(3272384512);
emit_32(1082085679);
emit_32(3275968545);
emit_32(3272128528);
emit_32(1084581185);
emit_32(3275968545);
emit_32(3271872545);
emit_32(1085673172);
emit_32(3275968545);
emit_32(3271616496);
emit_32(1085188394);
emit_32(3275968545);
emit_32(3271163904);
emit_32(1084552768);
emit_32(3275968545);
emit_32(3270651937);
emit_32(1087292635);
emit_32(3275968545);
emit_32(3270139970);
emit_32(1089188963);
emit_32(3275968545);
emit_32(3269627871);
emit_32(1090660503);
emit_32(3275968545);
emit_32(3269115904);
emit_32(1089489254);
emit_32(3275968545);
emit_32(3268603937);
emit_32(1091501157);
emit_32(3275968545);
emit_32(3268091970);
emit_32(1093299130);
emit_32(3275968545);
emit_32(3267579911);
emit_32(1093272076);
emit_32(3275968545);
emit_32(3267067904);
emit_32(1093175293);
emit_32(3275968545);
emit_32(3266555911);
emit_32(1094268538);
emit_32(3275968545);
emit_32(3266043904);
emit_32(1094260359);
emit_32(3275968545);
emit_32(3265531911);
emit_32(1097064147);
emit_32(3275968545);
emit_32(3265019904);
emit_32(1098974337);
emit_32(3275968545);
emit_32(3264507911);
emit_32(1099484050);
emit_32(3275968545);
emit_32(3263995904);
emit_32(1101248646);
emit_32(3275968545);
emit_32(3263483911);
emit_32(1102857634);
emit_32(3275968545);
emit_32(3262775296);
emit_32(1103688158);
emit_32(3275968545);
emit_32(3261751309);
emit_32(1104120486);
emit_32(3275968545);
emit_32(3260727296);
emit_32(1103897087);
emit_32(3275968545);
emit_32(3259703309);
emit_32(1103680084);
emit_32(3275968545);
emit_32(3258679296);
emit_32(1104794406);
emit_32(3275968545);
emit_32(3257655309);
emit_32(1105582830);
emit_32(3275968545);
emit_32(3256631296);
emit_32(1105670124);
emit_32(3275968545);
emit_32(3255607309);
emit_32(1105372486);
emit_32(3275968545);
emit_32(3254386688);
emit_32(1104924063);
emit_32(3275968545);
emit_32(3252338714);
emit_32(1105134250);
emit_32(3275968545);
emit_32(3250290688);
emit_32(1105252739);
emit_32(3275968545);
emit_32(3248242714);
emit_32(1105713693);
emit_32(3275968545);
emit_32(3245998080);
emit_32(1105505760);
emit_32(3275968545);
emit_32(3241902132);
emit_32(1104815692);
emit_32(3275968545);
emit_32(3237609472);
emit_32(1104575830);
emit_32(3275968545);
emit_32(3229220864);
emit_32(1103816871);
emit_32(3275968545);
emit_32(0);
emit_32(1102689547);
emit_32(3275968545);
emit_32(1081737216);
emit_32(1102629726);
emit_32(3275968545);
emit_32(3279552512);
emit_32(1101111021);
emit_32(3276224528);
emit_32(3279296528);
emit_32(1100789580);
emit_32(3276224528);
emit_32(3279040545);
emit_32(1101187724);
emit_32(3276224528);
emit_32(3278784496);
emit_32(1101544450);
emit_32(3276224528);
emit_32(3278528512);
emit_32(1101809215);
emit_32(3276224528);
emit_32(3278272528);
emit_32(1101364409);
emit_32(3276224528);
emit_32(3278016545);
emit_32(1100966999);
emit_32(3276224528);
emit_32(3277760496);
emit_32(1100334603);
emit_32(3276224528);
emit_32(3277504512);
emit_32(1099684538);
emit_32(3276224528);
emit_32(3277248528);
emit_32(1097905000);
emit_32(3276224528);
emit_32(3276992545);
emit_32(1096189949);
emit_32(3276224528);
emit_32(3276736496);
emit_32(1093369908);
emit_32(3276224528);
emit_32(3276480512);
emit_32(1090856430);
emit_32(3276224528);
emit_32(3276224528);
emit_32(1089059569);
emit_32(3276224528);
emit_32(3275968545);
emit_32(1088475764);
emit_32(3276224528);
emit_32(3275712496);
emit_32(1089236128);
emit_32(3276224528);
emit_32(3275456512);
emit_32(1088316066);
emit_32(3276224528);
emit_32(3275200528);
emit_32(1087626375);
emit_32(3276224528);
emit_32(3274944545);
emit_32(1087484629);
emit_32(3276224528);
emit_32(3274688496);
emit_32(1087038397);
emit_32(3276224528);
emit_32(3274432512);
emit_32(1084227794);
emit_32(3276224528);
emit_32(3274176528);
emit_32(1087406111);
emit_32(3276224528);
emit_32(3273920545);
emit_32(1087788003);
emit_32(3276224528);
emit_32(3273664496);
emit_32(1085636639);
emit_32(3276224528);
emit_32(3273408512);
emit_32(1084012206);
emit_32(3276224528);
emit_32(3273152528);
emit_32(1079773149);
emit_32(3276224528);
emit_32(3272896545);
emit_32(1074099640);
emit_32(3276224528);
emit_32(3272640496);
emit_32(1081570199);
emit_32(3276224528);
emit_32(3272384512);
emit_32(1086505511);
emit_32(3276224528);
emit_32(3272128528);
emit_32(1088421783);
emit_32(3276224528);
emit_32(3271872545);
emit_32(1090863057);
emit_32(3276224528);
emit_32(3271616496);
emit_32(1091104240);
emit_32(3276224528);
emit_32(3271163904);
emit_32(1090801149);
emit_32(3276224528);
emit_32(3270651937);
emit_32(1091187329);
emit_32(3276224528);
emit_32(3270139970);
emit_32(1091684071);
emit_32(3276224528);
emit_32(3269627871);
emit_32(1092334691);
emit_32(3276224528);
emit_32(3269115904);
emit_32(1091715549);
emit_32(3276224528);
emit_32(3268603937);
emit_32(1091937239);
emit_32(3276224528);
emit_32(3268091970);
emit_32(1092157765);
emit_32(3276224528);
emit_32(3267579911);
emit_32(1092352643);
emit_32(3276224528);
emit_32(3267067904);
emit_32(1093649249);
emit_32(3276224528);
emit_32(3266555911);
emit_32(1095125015);
emit_32(3276224528);
emit_32(3266043904);
emit_32(1096433743);
emit_32(3276224528);
emit_32(3265531911);
emit_32(1098895694);
emit_32(3276224528);
emit_32(3265019904);
emit_32(1099846805);
emit_32(3276224528);
emit_32(3264507911);
emit_32(1100394109);
emit_32(3276224528);
emit_32(3263995904);
emit_32(1101147301);
emit_32(3276224528);
emit_32(3263483911);
emit_32(1102840332);
emit_32(3276224528);
emit_32(3262775296);
emit_32(1103420352);
emit_32(3276224528);
emit_32(3261751309);
emit_32(1103784994);
emit_32(3276224528);
emit_32(3260727296);
emit_32(1103743890);
emit_32(3276224528);
emit_32(3259703309);
emit_32(1103097863);
emit_32(3276224528);
emit_32(3258679296);
emit_32(1103438807);
emit_32(3276224528);
emit_32(3257655309);
emit_32(1104475534);
emit_32(3276224528);
emit_32(3256631296);
emit_32(1104961811);
emit_32(3276224528);
emit_32(3255607309);
emit_32(1104919763);
emit_32(3276224528);
emit_32(3254386688);
emit_32(1104827174);
emit_32(3276224528);
emit_32(3252338714);
emit_32(1104406905);
emit_32(3276224528);
emit_32(3250290688);
emit_32(1104336860);
emit_32(3276224528);
emit_32(3248242714);
emit_32(1104244218);
emit_32(3276224528);
emit_32(3245998080);
emit_32(1104283592);
emit_32(3276224528);
emit_32(3241902132);
emit_32(1104029627);
emit_32(3276224528);
emit_32(3237609472);
emit_32(1103767326);
emit_32(3276224528);
emit_32(3229220864);
emit_32(1102780406);
emit_32(3276224528);
emit_32(0);
emit_32(1102353111);
emit_32(3276224528);
emit_32(1081737216);
emit_32(1101834591);
emit_32(3276224528);
emit_32(3279552512);
emit_32(1100665376);
emit_32(3276480512);
emit_32(3279296528);
emit_32(1100635911);
emit_32(3276480512);
emit_32(3279040545);
emit_32(1100599001);
emit_32(3276480512);
emit_32(3278784496);
emit_32(1100704593);
emit_32(3276480512);
emit_32(3278528512);
emit_32(1100706847);
emit_32(3276480512);
emit_32(3278272528);
emit_32(1100641940);
emit_32(3276480512);
emit_32(3278016545);
emit_32(1100067373);
emit_32(3276480512);
emit_32(3277760496);
emit_32(1099870817);
emit_32(3276480512);
emit_32(3277504512);
emit_32(1099360738);
emit_32(3276480512);
emit_32(3277248528);
emit_32(1097705875);
emit_32(3276480512);
emit_32(3276992545);
emit_32(1095158989);
emit_32(3276480512);
emit_32(3276736496);
emit_32(1092654884);
emit_32(3276480512);
emit_32(3276480512);
emit_32(1091569199);
emit_32(3276480512);
emit_32(3276224528);
emit_32(1091162174);
emit_32(3276480512);
emit_32(3275968545);
emit_32(1090619556);
emit_32(3276480512);
emit_32(3275712496);
emit_32(1090709283);
emit_32(3276480512);
emit_32(3275456512);
emit_32(1090001987);
emit_32(3276480512);
emit_32(3275200528);
emit_32(1089948027);
emit_32(3276480512);
emit_32(3274944545);
emit_32(1089924476);
emit_32(3276480512);
emit_32(3274688496);
emit_32(1089951446);
emit_32(3276480512);
emit_32(3274432512);
emit_32(1087795175);
emit_32(3276480512);
emit_32(3274176528);
emit_32(1087558449);
emit_32(3276480512);
emit_32(3273920545);
emit_32(1087330845);
emit_32(3276480512);
emit_32(3273664496);
emit_32(1086250308);
emit_32(3276480512);
emit_32(3273408512);
emit_32(1086015469);
emit_32(3276480512);
emit_32(3273152528);
emit_32(1084541779);
emit_32(3276480512);
emit_32(3272896545);
emit_32(1083402271);
emit_32(3276480512);
emit_32(3272640496);
emit_32(1087092084);
emit_32(3276480512);
emit_32(3272384512);
emit_32(1089818319);
emit_32(3276480512);
emit_32(3272128528);
emit_32(1091233068);
emit_32(3276480512);
emit_32(3271872545);
emit_32(1092479059);
emit_32(3276480512);
emit_32(3271616496);
emit_32(1092547835);
emit_32(3276480512);
emit_32(3271163904);
emit_32(1093621252);
emit_32(3276480512);
emit_32(3270651937);
emit_32(1093588327);
emit_32(3276480512);
emit_32(3270139970);
emit_32(1094120689);
emit_32(3276480512);
emit_32(3269627871);
emit_32(1093722230);
emit_32(3276480512);
emit_32(3269115904);
emit_32(1093927017);
emit_32(3276480512);
emit_32(3268603937);
emit_32(1094469340);
emit_32(3276480512);
emit_32(3268091970);
emit_32(1093549320);
emit_32(3276480512);
emit_32(3267579911);
emit_32(1094062283);
emit_32(3276480512);
emit_32(3267067904);
emit_32(1094889505);
emit_32(3276480512);
emit_32(3266555911);
emit_32(1095517287);
emit_32(3276480512);
emit_32(3266043904);
emit_32(1098112303);
emit_32(3276480512);
emit_32(3265531911);
emit_32(1099944847);
emit_32(3276480512);
emit_32(3265019904);
emit_32(1100805204);
emit_32(3276480512);
emit_32(3264507911);
emit_32(1100813068);
emit_32(3276480512);
emit_32(3263995904);
emit_32(1100890191);
emit_32(3276480512);
emit_32(3263483911);
emit_32(1101765018);
emit_32(3276480512);
emit_32(3262775296);
emit_32(1103166125);
emit_32(3276480512);
emit_32(3261751309);
emit_32(1103581413);
emit_32(3276480512);
emit_32(3260727296);
emit_32(1103239001);
emit_32(3276480512);
emit_32(3259703309);
emit_32(1103115059);
emit_32(3276480512);
emit_32(3258679296);
emit_32(1102634916);
emit_32(3276480512);
emit_32(3257655309);
emit_32(1103117366);
emit_32(3276480512);
emit_32(3256631296);
emit_32(1103874962);
emit_32(3276480512);
emit_32(3255607309);
emit_32(1104123108);
emit_32(3276480512);
emit_32(3254386688);
emit_32(1103935308);
emit_32(3276480512);
emit_32(3252338714);
emit_32(1103665666);
emit_32(3276480512);
emit_32(3250290688);
emit_32(1103444679);
emit_32(3276480512);
emit_32(3248242714);
emit_32(1103627551);
emit_32(3276480512);
emit_32(3245998080);
emit_32(1103736865);
emit_32(3276480512);
emit_32(3241902132);
emit_32(1103212210);
emit_32(3276480512);
emit_32(3237609472);
emit_32(1102649124);
emit_32(3276480512);
emit_32(3229220864);
emit_32(1101755266);
emit_32(3276480512);
emit_32(0);
emit_32(1101465335);
emit_32(3276480512);
emit_32(1081737216);
emit_32(1101171471);
emit_32(3276480512);
emit_32(3279552512);
emit_32(1100210871);
emit_32(3276736496);
emit_32(3279296528);
emit_32(1100433483);
emit_32(3276736496);
emit_32(3279040545);
emit_32(1099833855);
emit_32(3276736496);
emit_32(3278784496);
emit_32(1100155611);
emit_32(3276736496);
emit_32(3278528512);
emit_32(1099838049);
emit_32(3276736496);
emit_32(3278272528);
emit_32(1100058775);
emit_32(3276736496);
emit_32(3278016545);
emit_32(1099672899);
emit_32(3276736496);
emit_32(3277760496);
emit_32(1099187932);
emit_32(3276736496);
emit_32(3277504512);
emit_32(1098271477);
emit_32(3276736496);
emit_32(3277248528);
emit_32(1096846357);
emit_32(3276736496);
emit_32(3276992545);
emit_32(1094240646);
emit_32(3276736496);
emit_32(3276736496);
emit_32(1093510208);
emit_32(3276736496);
emit_32(3276480512);
emit_32(1093157677);
emit_32(3276736496);
emit_32(3276224528);
emit_32(1093135971);
emit_32(3276736496);
emit_32(3275968545);
emit_32(1092174626);
emit_32(3276736496);
emit_32(3275712496);
emit_32(1092008343);
emit_32(3276736496);
emit_32(3275456512);
emit_32(1091657206);
emit_32(3276736496);
emit_32(3275200528);
emit_32(1090624757);
emit_32(3276736496);
emit_32(3274944545);
emit_32(1091109598);
emit_32(3276736496);
emit_32(3274688496);
emit_32(1091299097);
emit_32(3276736496);
emit_32(3274432512);
emit_32(1091108078);
emit_32(3276736496);
emit_32(3274176528);
emit_32(1088708464);
emit_32(3276736496);
emit_32(3273920545);
emit_32(1088400979);
emit_32(3276736496);
emit_32(3273664496);
emit_32(1088671869);
emit_32(3276736496);
emit_32(3273408512);
emit_32(1086687543);
emit_32(3276736496);
emit_32(3273152528);
emit_32(1087251530);
emit_32(3276736496);
emit_32(3272896545);
emit_32(1088748687);
emit_32(3276736496);
emit_32(3272640496);
emit_32(1089984811);
emit_32(3276736496);
emit_32(3272384512);
emit_32(1091974946);
emit_32(3276736496);
emit_32(3272128528);
emit_32(1092819930);
emit_32(3276736496);
emit_32(3271872545);
emit_32(1093160927);
emit_32(3276736496);
emit_32(3271616496);
emit_32(1094132118);
emit_32(3276736496);
emit_32(3271163904);
emit_32(1095157206);
emit_32(3276736496);
emit_32(3270651937);
emit_32(1095618580);
emit_32(3276736496);
emit_32(3270139970);
emit_32(1096186069);
emit_32(3276736496);
emit_32(3269627871);
emit_32(1095671113);
emit_32(3276736496);
emit_32(3269115904);
emit_32(1095678348);
emit_32(3276736496);
emit_32(3268603937);
emit_32(1095989776);
emit_32(3276736496);
emit_32(3268091970);
emit_32(1095663878);
emit_32(3276736496);
emit_32(3267579911);
emit_32(1095691351);
emit_32(3276736496);
emit_32(3267067904);
emit_32(1096383306);
emit_32(3276736496);
emit_32(3266555911);
emit_32(1097384277);
emit_32(3276736496);
emit_32(3266043904);
emit_32(1099122606);
emit_32(3276736496);
emit_32(3265531911);
emit_32(1100558316);
emit_32(3276736496);
emit_32(3265019904);
emit_32(1101303015);
emit_32(3276736496);
emit_32(3264507911);
emit_32(1101081556);
emit_32(3276736496);
emit_32(3263995904);
emit_32(1100970826);
emit_32(3276736496);
emit_32(3263483911);
emit_32(1101242984);
emit_32(3276736496);
emit_32(3262775296);
emit_32(1102057728);
emit_32(3276736496);
emit_32(3261751309);
emit_32(1102727925);
emit_32(3276736496);
emit_32(3260727296);
emit_32(1102747638);
emit_32(3276736496);
emit_32(3259703309);
emit_32(1102584322);
emit_32(3276736496);
emit_32(3258679296);
emit_32(1102811234);
emit_32(3276736496);
emit_32(3257655309);
emit_32(1102829742);
emit_32(3276736496);
emit_32(3256631296);
emit_32(1103344278);
emit_32(3276736496);
emit_32(3255607309);
emit_32(1103685065);
emit_32(3276736496);
emit_32(3254386688);
emit_32(1103826413);
emit_32(3276736496);
emit_32(3252338714);
emit_32(1103104626);
emit_32(3276736496);
emit_32(3250290688);
emit_32(1102261571);
emit_32(3276736496);
emit_32(3248242714);
emit_32(1102829899);
emit_32(3276736496);
emit_32(3245998080);
emit_32(1103020530);
emit_32(3276736496);
emit_32(3241902132);
emit_32(1102258477);
emit_32(3276736496);
emit_32(3237609472);
emit_32(1101911084);
emit_32(3276736496);
emit_32(3229220864);
emit_32(1101090364);
emit_32(3276736496);
emit_32(0);
emit_32(1100301573);
emit_32(3276736496);
emit_32(1081737216);
emit_32(1100121322);
emit_32(3276736496);
emit_32(3279552512);
emit_32(1099773614);
emit_32(3276992545);
emit_32(3279296528);
emit_32(1099858287);
emit_32(3276992545);
emit_32(3279040545);
emit_32(1099688523);
emit_32(3276992545);
emit_32(3278784496);
emit_32(1099279211);
emit_32(3276992545);
emit_32(3278528512);
emit_32(1098814430);
emit_32(3276992545);
emit_32(3278272528);
emit_32(1099260651);
emit_32(3276992545);
emit_32(3278016545);
emit_32(1099269983);
emit_32(3276992545);
emit_32(3277760496);
emit_32(1097458201);
emit_32(3276992545);
emit_32(3277504512);
emit_32(1096491624);
emit_32(3276992545);
emit_32(3277248528);
emit_32(1094951371);
emit_32(3276992545);
emit_32(3276992545);
emit_32(1094228482);
emit_32(3276992545);
emit_32(3276736496);
emit_32(1094425929);
emit_32(3276992545);
emit_32(3276480512);
emit_32(1094168504);
emit_32(3276992545);
emit_32(3276224528);
emit_32(1094579965);
emit_32(3276992545);
emit_32(3275968545);
emit_32(1094436205);
emit_32(3276992545);
emit_32(3275712496);
emit_32(1093278787);
emit_32(3276992545);
emit_32(3275456512);
emit_32(1093351873);
emit_32(3276992545);
emit_32(3275200528);
emit_32(1092131865);
emit_32(3276992545);
emit_32(3274944545);
emit_32(1092250753);
emit_32(3276992545);
emit_32(3274688496);
emit_32(1092049888);
emit_32(3276992545);
emit_32(3274432512);
emit_32(1092031821);
emit_32(3276992545);
emit_32(3274176528);
emit_32(1090545517);
emit_32(3276992545);
emit_32(3273920545);
emit_32(1087815580);
emit_32(3276992545);
emit_32(3273664496);
emit_32(1088895152);
emit_32(3276992545);
emit_32(3273408512);
emit_32(1089520607);
emit_32(3276992545);
emit_32(3273152528);
emit_32(1091009407);
emit_32(3276992545);
emit_32(3272896545);
emit_32(1091156585);
emit_32(3276992545);
emit_32(3272640496);
emit_32(1092501331);
emit_32(3276992545);
emit_32(3272384512);
emit_32(1093577002);
emit_32(3276992545);
emit_32(3272128528);
emit_32(1094131384);
emit_32(3276992545);
emit_32(3271872545);
emit_32(1095441999);
emit_32(3276992545);
emit_32(3271616496);
emit_32(1096144126);
emit_32(3276992545);
emit_32(3271163904);
emit_32(1097375574);
emit_32(3276992545);
emit_32(3270651937);
emit_32(1097616746);
emit_32(3276992545);
emit_32(3270139970);
emit_32(1098727817);
emit_32(3276992545);
emit_32(3269627871);
emit_32(1098389442);
emit_32(3276992545);
emit_32(3269115904);
emit_32(1097181902);
emit_32(3276992545);
emit_32(3268603937);
emit_32(1097851522);
emit_32(3276992545);
emit_32(3268091970);
emit_32(1097817234);
emit_32(3276992545);
emit_32(3267579911);
emit_32(1098027054);
emit_32(3276992545);
emit_32(3267067904);
emit_32(1098025691);
emit_32(3276992545);
emit_32(3266555911);
emit_32(1099190816);
emit_32(3276992545);
emit_32(3266043904);
emit_32(1100082420);
emit_32(3276992545);
emit_32(3265531911);
emit_32(1100900257);
emit_32(3276992545);
emit_32(3265019904);
emit_32(1101488351);
emit_32(3276992545);
emit_32(3264507911);
emit_32(1101299188);
emit_32(3276992545);
emit_32(3263995904);
emit_32(1101555565);
emit_32(3276992545);
emit_32(3263483911);
emit_32(1101541671);
emit_32(3276992545);
emit_32(3262775296);
emit_32(1101907414);
emit_32(3276992545);
emit_32(3261751309);
emit_32(1102511446);
emit_32(3276992545);
emit_32(3260727296);
emit_32(1102908490);
emit_32(3276992545);
emit_32(3259703309);
emit_32(1102906130);
emit_32(3276992545);
emit_32(3258679296);
emit_32(1102873153);
emit_32(3276992545);
emit_32(3257655309);
emit_32(1103170057);
emit_32(3276992545);
emit_32(3256631296);
emit_32(1103437234);
emit_32(3276992545);
emit_32(3255607309);
emit_32(1103795952);
emit_32(3276992545);
emit_32(3254386688);
emit_32(1103493018);
emit_32(3276992545);
emit_32(3252338714);
emit_32(1102175378);
emit_32(3276992545);
emit_32(3250290688);
emit_32(1101859861);
emit_32(3276992545);
emit_32(3248242714);
emit_32(1102213756);
emit_32(3276992545);
emit_32(3245998080);
emit_32(1102152676);
emit_32(3276992545);
emit_32(3241902132);
emit_32(1101638559);
emit_32(3276992545);
emit_32(3237609472);
emit_32(1101182167);
emit_32(3276992545);
emit_32(3229220864);
emit_32(1100207830);
emit_32(3276992545);
emit_32(0);
emit_32(1099526308);
emit_32(3276992545);
emit_32(1081737216);
emit_32(1099020213);
emit_32(3276992545);
emit_32(3279552512);
emit_32(1099775187);
emit_32(3277248528);
emit_32(3279296528);
emit_32(1099528667);
emit_32(3277248528);
emit_32(3279040545);
emit_32(1099794376);
emit_32(3277248528);
emit_32(3278784496);
emit_32(1099371223);
emit_32(3277248528);
emit_32(3278528512);
emit_32(1097562220);
emit_32(3277248528);
emit_32(3278272528);
emit_32(1098308597);
emit_32(3277248528);
emit_32(3278016545);
emit_32(1097403885);
emit_32(3277248528);
emit_32(3277760496);
emit_32(1095946050);
emit_32(3277248528);
emit_32(3277504512);
emit_32(1094735364);
emit_32(3277248528);
emit_32(3277248528);
emit_32(1094678007);
emit_32(3277248528);
emit_32(3276992545);
emit_32(1095274332);
emit_32(3277248528);
emit_32(3276736496);
emit_32(1095321728);
emit_32(3277248528);
emit_32(3276480512);
emit_32(1095493170);
emit_32(3277248528);
emit_32(3276224528);
emit_32(1095747135);
emit_32(3277248528);
emit_32(3275968545);
emit_32(1095522216);
emit_32(3277248528);
emit_32(3275712496);
emit_32(1094690590);
emit_32(3277248528);
emit_32(3275456512);
emit_32(1094638056);
emit_32(3277248528);
emit_32(3275200528);
emit_32(1093416570);
emit_32(3277248528);
emit_32(3274944545);
emit_32(1092979314);
emit_32(3277248528);
emit_32(3274688496);
emit_32(1092811961);
emit_32(3277248528);
emit_32(3274432512);
emit_32(1093012554);
emit_32(3277248528);
emit_32(3274176528);
emit_32(1091374384);
emit_32(3277248528);
emit_32(3273920545);
emit_32(1089032851);
emit_32(3277248528);
emit_32(3273664496);
emit_32(1090993437);
emit_32(3277248528);
emit_32(3273408512);
emit_32(1092377368);
emit_32(3277248528);
emit_32(3273152528);
emit_32(1093095077);
emit_32(3277248528);
emit_32(3272896545);
emit_32(1093715519);
emit_32(3277248528);
emit_32(3272640496);
emit_32(1094921486);
emit_32(3277248528);
emit_32(3272384512);
emit_32(1096565129);
emit_32(3277248528);
emit_32(3272128528);
emit_32(1097767112);
emit_32(3277248528);
emit_32(3271872545);
emit_32(1098339005);
emit_32(3277248528);
emit_32(3271616496);
emit_32(1099085958);
emit_32(3277248528);
emit_32(3271163904);
emit_32(1099220281);
emit_32(3277248528);
emit_32(3270651937);
emit_32(1099411227);
emit_32(3277248528);
emit_32(3270139970);
emit_32(1099194958);
emit_32(3277248528);
emit_32(3269627871);
emit_32(1099275174);
emit_32(3277248528);
emit_32(3269115904);
emit_32(1099273968);
emit_32(3277248528);
emit_32(3268603937);
emit_32(1098980681);
emit_32(3277248528);
emit_32(3268091970);
emit_32(1098318243);
emit_32(3277248528);
emit_32(3267579911);
emit_32(1098900413);
emit_32(3277248528);
emit_32(3267067904);
emit_32(1099325086);
emit_32(3277248528);
emit_32(3266555911);
emit_32(1100242695);
emit_32(3277248528);
emit_32(3266043904);
emit_32(1101153383);
emit_32(3277248528);
emit_32(3265531911);
emit_32(1101448505);
emit_32(3277248528);
emit_32(3265019904);
emit_32(1101666976);
emit_32(3277248528);
emit_32(3264507911);
emit_32(1102125203);
emit_32(3277248528);
emit_32(3263995904);
emit_32(1102137996);
emit_32(3277248528);
emit_32(3263483911);
emit_32(1101933104);
emit_32(3277248528);
emit_32(3262775296);
emit_32(1102603669);
emit_32(3277248528);
emit_32(3261751309);
emit_32(1102617615);
emit_32(3277248528);
emit_32(3260727296);
emit_32(1103215355);
emit_32(3277248528);
emit_32(3259703309);
emit_32(1103071281);
emit_32(3277248528);
emit_32(3258679296);
emit_32(1102637957);
emit_32(3277248528);
emit_32(3257655309);
emit_32(1103331118);
emit_32(3277248528);
emit_32(3256631296);
emit_32(1104015943);
emit_32(3277248528);
emit_32(3255607309);
emit_32(1103436710);
emit_32(3277248528);
emit_32(3254386688);
emit_32(1102725618);
emit_32(3277248528);
emit_32(3252338714);
emit_32(1101979084);
emit_32(3277248528);
emit_32(3250290688);
emit_32(1101652401);
emit_32(3277248528);
emit_32(3248242714);
emit_32(1101690778);
emit_32(3277248528);
emit_32(3245998080);
emit_32(1101385643);
emit_32(3277248528);
emit_32(3241902132);
emit_32(1100831785);
emit_32(3277248528);
emit_32(3237609472);
emit_32(1100385721);
emit_32(3277248528);
emit_32(3229220864);
emit_32(1099248645);
emit_32(3277248528);
emit_32(0);
emit_32(1097731041);
emit_32(3277248528);
emit_32(1081737216);
emit_32(1097108292);
emit_32(3277248528);
emit_32(3279552512);
emit_32(1099513148);
emit_32(3277504512);
emit_32(3279296528);
emit_32(1099237687);
emit_32(3277504512);
emit_32(3279040545);
emit_32(1099823002);
emit_32(3277504512);
emit_32(3278784496);
emit_32(1099636094);
emit_32(3277504512);
emit_32(3278528512);
emit_32(1098146172);
emit_32(3277504512);
emit_32(3278272528);
emit_32(1096179673);
emit_32(3277504512);
emit_32(3278016545);
emit_32(1095619209);
emit_32(3277504512);
emit_32(3277760496);
emit_32(1095051510);
emit_32(3277504512);
emit_32(3277504512);
emit_32(1094914041);
emit_32(3277504512);
emit_32(3277248528);
emit_32(1095143680);
emit_32(3277504512);
emit_32(3276992545);
emit_32(1095686213);
emit_32(3277504512);
emit_32(3276736496);
emit_32(1096167719);
emit_32(3277504512);
emit_32(3276480512);
emit_32(1096217212);
emit_32(3277504512);
emit_32(3276224528);
emit_32(1095494009);
emit_32(3277504512);
emit_32(3275968545);
emit_32(1095282721);
emit_32(3277504512);
emit_32(3275712496);
emit_32(1094864024);
emit_32(3277504512);
emit_32(3275456512);
emit_32(1095079402);
emit_32(3277504512);
emit_32(3275200528);
emit_32(1093909506);
emit_32(3277504512);
emit_32(3274944545);
emit_32(1094085876);
emit_32(3277504512);
emit_32(3274688496);
emit_32(1093922193);
emit_32(3277504512);
emit_32(3274432512);
emit_32(1093002173);
emit_32(3277504512);
emit_32(3274176528);
emit_32(1091809376);
emit_32(3277504512);
emit_32(3273920545);
emit_32(1090895154);
emit_32(3277504512);
emit_32(3273664496);
emit_32(1092994938);
emit_32(3277504512);
emit_32(3273408512);
emit_32(1094548613);
emit_32(3277504512);
emit_32(3273152528);
emit_32(1095987783);
emit_32(3277504512);
emit_32(3272896545);
emit_32(1096416022);
emit_32(3277504512);
emit_32(3272640496);
emit_32(1097685323);
emit_32(3277504512);
emit_32(3272384512);
emit_32(1098440927);
emit_32(3277504512);
emit_32(3272128528);
emit_32(1099405512);
emit_32(3277504512);
emit_32(3271872545);
emit_32(1099913599);
emit_32(3277504512);
emit_32(3271616496);
emit_32(1099823422);
emit_32(3277504512);
emit_32(3271163904);
emit_32(1099863373);
emit_32(3277504512);
emit_32(3270651937);
emit_32(1099663042);
emit_32(3277504512);
emit_32(3270139970);
emit_32(1099637929);
emit_32(3277504512);
emit_32(3269627871);
emit_32(1099948936);
emit_32(3277504512);
emit_32(3269115904);
emit_32(1099967024);
emit_32(3277504512);
emit_32(3268603937);
emit_32(1099787770);
emit_32(3277504512);
emit_32(3268091970);
emit_32(1099629540);
emit_32(3277504512);
emit_32(3267579911);
emit_32(1099729889);
emit_32(3277504512);
emit_32(3267067904);
emit_32(1099959737);
emit_32(3277504512);
emit_32(3266555911);
emit_32(1100461585);
emit_32(3277504512);
emit_32(3266043904);
emit_32(1101443996);
emit_32(3277504512);
emit_32(3265531911);
emit_32(1102161904);
emit_32(3277504512);
emit_32(3265019904);
emit_32(1102642623);
emit_32(3277504512);
emit_32(3264507911);
emit_32(1102254703);
emit_32(3277504512);
emit_32(3263995904);
emit_32(1102207464);
emit_32(3277504512);
emit_32(3263483911);
emit_32(1101959424);
emit_32(3277504512);
emit_32(3262775296);
emit_32(1102549248);
emit_32(3277504512);
emit_32(3261751309);
emit_32(1103235488);
emit_32(3277504512);
emit_32(3260727296);
emit_32(1103408923);
emit_32(3277504512);
emit_32(3259703309);
emit_32(1103077258);
emit_32(3277504512);
emit_32(3258679296);
emit_32(1102537084);
emit_32(3277504512);
emit_32(3257655309);
emit_32(1103679455);
emit_32(3277504512);
emit_32(3256631296);
emit_32(1103709654);
emit_32(3277504512);
emit_32(3255607309);
emit_32(1102899891);
emit_32(3277504512);
emit_32(3254386688);
emit_32(1101944534);
emit_32(3277504512);
emit_32(3252338714);
emit_32(1101169793);
emit_32(3277504512);
emit_32(3250290688);
emit_32(1100964273);
emit_32(3277504512);
emit_32(3248242714);
emit_32(1101176085);
emit_32(3277504512);
emit_32(3245998080);
emit_32(1100580284);
emit_32(3277504512);
emit_32(3241902132);
emit_32(1099596143);
emit_32(3277504512);
emit_32(3237609472);
emit_32(1099177394);
emit_32(3277504512);
emit_32(3229220864);
emit_32(1098487274);
emit_32(3277504512);
emit_32(0);
emit_32(1096586625);
emit_32(3277504512);
emit_32(1081737216);
emit_32(1096047133);
emit_32(3277504512);
emit_32(3279552512);
emit_32(1099302751);
emit_32(3277760496);
emit_32(3279296528);
emit_32(1099310930);
emit_32(3277760496);
emit_32(3279040545);
emit_32(1099757833);
emit_32(3277760496);
emit_32(3278784496);
emit_32(1099826410);
emit_32(3277760496);
emit_32(3278528512);
emit_32(1098603771);
emit_32(3277760496);
emit_32(3278272528);
emit_32(1096803575);
emit_32(3277760496);
emit_32(3278016545);
emit_32(1095899388);
emit_32(3277760496);
emit_32(3277760496);
emit_32(1096413925);
emit_32(3277760496);
emit_32(3277504512);
emit_32(1096685925);
emit_32(3277760496);
emit_32(3277248528);
emit_32(1096488373);
emit_32(3277760496);
emit_32(3276992545);
emit_32(1096023854);
emit_32(3277760496);
emit_32(3276736496);
emit_32(1096726505);
emit_32(3277760496);
emit_32(3276480512);
emit_32(1097672845);
emit_32(3277760496);
emit_32(3276224528);
emit_32(1097630587);
emit_32(3277760496);
emit_32(3275968545);
emit_32(1097242300);
emit_32(3277760496);
emit_32(3275712496);
emit_32(1096015780);
emit_32(3277760496);
emit_32(3275456512);
emit_32(1095966707);
emit_32(3277760496);
emit_32(3275200528);
emit_32(1094654729);
emit_32(3277760496);
emit_32(3274944545);
emit_32(1094504258);
emit_32(3277760496);
emit_32(3274688496);
emit_32(1093927856);
emit_32(3277760496);
emit_32(3274432512);
emit_32(1092392111);
emit_32(3277760496);
emit_32(3274176528);
emit_32(1091411231);
emit_32(3277760496);
emit_32(3273920545);
emit_32(1093339290);
emit_32(3277760496);
emit_32(3273664496);
emit_32(1095670904);
emit_32(3277760496);
emit_32(3273408512);
emit_32(1096393163);
emit_32(3277760496);
emit_32(3273152528);
emit_32(1098248199);
emit_32(3277760496);
emit_32(3272896545);
emit_32(1099000342);
emit_32(3277760496);
emit_32(3272640496);
emit_32(1099390150);
emit_32(3277760496);
emit_32(3272384512);
emit_32(1099453117);
emit_32(3277760496);
emit_32(3272128528);
emit_32(1100216690);
emit_32(3277760496);
emit_32(3271872545);
emit_32(1100387294);
emit_32(3277760496);
emit_32(3271616496);
emit_32(1100623957);
emit_32(3277760496);
emit_32(3271163904);
emit_32(1100583063);
emit_32(3277760496);
emit_32(3270651937);
emit_32(1100270692);
emit_32(3277760496);
emit_32(3270139970);
emit_32(1100221199);
emit_32(3277760496);
emit_32(3269627871);
emit_32(1100837028);
emit_32(3277760496);
emit_32(3269115904);
emit_32(1100744648);
emit_32(3277760496);
emit_32(3268603937);
emit_32(1100729496);
emit_32(3277760496);
emit_32(3268091970);
emit_32(1100349650);
emit_32(3277760496);
emit_32(3267579911);
emit_32(1100277141);
emit_32(3277760496);
emit_32(3267067904);
emit_32(1100539180);
emit_32(3277760496);
emit_32(3266555911);
emit_32(1101285137);
emit_32(3277760496);
emit_32(3266043904);
emit_32(1101760404);
emit_32(3277760496);
emit_32(3265531911);
emit_32(1102151418);
emit_32(3277760496);
emit_32(3265019904);
emit_32(1102545368);
emit_32(3277760496);
emit_32(3264507911);
emit_32(1102327369);
emit_32(3277760496);
emit_32(3263995904);
emit_32(1102437312);
emit_32(3277760496);
emit_32(3263483911);
emit_32(1102836190);
emit_32(3277760496);
emit_32(3262775296);
emit_32(1103463449);
emit_32(3277760496);
emit_32(3261751309);
emit_32(1103612871);
emit_32(3277760496);
emit_32(3260727296);
emit_32(1103521907);
emit_32(3277760496);
emit_32(3259703309);
emit_32(1102694842);
emit_32(3277760496);
emit_32(3258679296);
emit_32(1102314104);
emit_32(3277760496);
emit_32(3257655309);
emit_32(1103092829);
emit_32(3277760496);
emit_32(3256631296);
emit_32(1102811392);
emit_32(3277760496);
emit_32(3255607309);
emit_32(1102399406);
emit_32(3277760496);
emit_32(3254386688);
emit_32(1101424807);
emit_32(3277760496);
emit_32(3252338714);
emit_32(1100416025);
emit_32(3277760496);
emit_32(3250290688);
emit_32(1099956172);
emit_32(3277760496);
emit_32(3248242714);
emit_32(1100071882);
emit_32(3277760496);
emit_32(3245998080);
emit_32(1099877633);
emit_32(3277760496);
emit_32(3241902132);
emit_32(1099019059);
emit_32(3277760496);
emit_32(3237609472);
emit_32(1098372560);
emit_32(3277760496);
emit_32(3229220864);
emit_32(1097025244);
emit_32(3277760496);
emit_32(0);
emit_32(1095913230);
emit_32(3277760496);
emit_32(1081737216);
emit_32(1095782787);
emit_32(3277760496);
emit_32(3279552512);
emit_32(1098903349);
emit_32(3278016545);
emit_32(3279296528);
emit_32(1099112225);
emit_32(3278016545);
emit_32(3279040545);
emit_32(1099559495);
emit_32(3278016545);
emit_32(3278784496);
emit_32(1099374422);
emit_32(3278016545);
emit_32(3278528512);
emit_32(1099044802);
emit_32(3278016545);
emit_32(3278272528);
emit_32(1099082498);
emit_32(3278016545);
emit_32(3278016545);
emit_32(1098243061);
emit_32(3278016545);
emit_32(3277760496);
emit_32(1097484626);
emit_32(3278016545);
emit_32(3277504512);
emit_32(1098172282);
emit_32(3278016545);
emit_32(3277248528);
emit_32(1097990039);
emit_32(3278016545);
emit_32(3276992545);
emit_32(1097473301);
emit_32(3278016545);
emit_32(3276736496);
emit_32(1098280600);
emit_32(3278016545);
emit_32(3276480512);
emit_32(1098467561);
emit_32(3278016545);
emit_32(3276224528);
emit_32(1098700449);
emit_32(3278016545);
emit_32(3275968545);
emit_32(1097813354);
emit_32(3278016545);
emit_32(3275712496);
emit_32(1097573020);
emit_32(3278016545);
emit_32(3275456512);
emit_32(1096889034);
emit_32(3278016545);
emit_32(3275200528);
emit_32(1095010930);
emit_32(3278016545);
emit_32(3274944545);
emit_32(1094741446);
emit_32(3278016545);
emit_32(3274688496);
emit_32(1093564105);
emit_32(3278016545);
emit_32(3274432512);
emit_32(1092621330);
emit_32(3278016545);
emit_32(3274176528);
emit_32(1092464757);
emit_32(3278016545);
emit_32(3273920545);
emit_32(1094580175);
emit_32(3278016545);
emit_32(3273664496);
emit_32(1096882219);
emit_32(3278016545);
emit_32(3273408512);
emit_32(1098358718);
emit_32(3278016545);
emit_32(3273152528);
emit_32(1099298662);
emit_32(3278016545);
emit_32(3272896545);
emit_32(1099922617);
emit_32(3278016545);
emit_32(3272640496);
emit_32(1100192521);
emit_32(3278016545);
emit_32(3272384512);
emit_32(1100137470);
emit_32(3278016545);
emit_32(3272128528);
emit_32(1101007893);
emit_32(3278016545);
emit_32(3271872545);
emit_32(1101168640);
emit_32(3278016545);
emit_32(3271616496);
emit_32(1100874252);
emit_32(3278016545);
emit_32(3271163904);
emit_32(1100904346);
emit_32(3278016545);
emit_32(3270651937);
emit_32(1100957142);
emit_32(3278016545);
emit_32(3270139970);
emit_32(1101183110);
emit_32(3278016545);
emit_32(3269627871);
emit_32(1101430574);
emit_32(3278016545);
emit_32(3269115904);
emit_32(1101303906);
emit_32(3278016545);
emit_32(3268603937);
emit_32(1101524317);
emit_32(3278016545);
emit_32(3268091970);
emit_32(1101223481);
emit_32(3278016545);
emit_32(3267579911);
emit_32(1100917768);
emit_32(3278016545);
emit_32(3267067904);
emit_32(1100967523);
emit_32(3278016545);
emit_32(3266555911);
emit_32(1101230506);
emit_32(3278016545);
emit_32(3266043904);
emit_32(1101743889);
emit_32(3278016545);
emit_32(3265531911);
emit_32(1102035865);
emit_32(3278016545);
emit_32(3265019904);
emit_32(1102327683);
emit_32(3278016545);
emit_32(3264507911);
emit_32(1102160803);
emit_32(3278016545);
emit_32(3263995904);
emit_32(1102422737);
emit_32(3278016545);
emit_32(3263483911);
emit_32(1102993582);
emit_32(3278016545);
emit_32(3262775296);
emit_32(1103413274);
emit_32(3278016545);
emit_32(3261751309);
emit_32(1103424966);
emit_32(3278016545);
emit_32(3260727296);
emit_32(1102892656);
emit_32(3278016545);
emit_32(3259703309);
emit_32(1102022495);
emit_32(3278016545);
emit_32(3258679296);
emit_32(1101852259);
emit_32(3278016545);
emit_32(3257655309);
emit_32(1102344408);
emit_32(3278016545);
emit_32(3256631296);
emit_32(1102317198);
emit_32(3278016545);
emit_32(3255607309);
emit_32(1101799883);
emit_32(3278016545);
emit_32(3254386688);
emit_32(1100918922);
emit_32(3278016545);
emit_32(3252338714);
emit_32(1099744779);
emit_32(3278016545);
emit_32(3250290688);
emit_32(1098585945);
emit_32(3278016545);
emit_32(3248242714);
emit_32(1098674235);
emit_32(3278016545);
emit_32(3245998080);
emit_32(1098530685);
emit_32(3278016545);
emit_32(3241902132);
emit_32(1097602066);
emit_32(3278016545);
emit_32(3237609472);
emit_32(1097146565);
emit_32(3278016545);
emit_32(3229220864);
emit_32(1096070935);
emit_32(3278016545);
emit_32(0);
emit_32(1094636379);
emit_32(3278016545);
emit_32(1081737216);
emit_32(1094685347);
emit_32(3278016545);
emit_32(3279552512);
emit_32(1098113142);
emit_32(3278272528);
emit_32(3279296528);
emit_32(1099020003);
emit_32(3278272528);
emit_32(3279040545);
emit_32(1099561016);
emit_32(3278272528);
emit_32(3278784496);
emit_32(1099848273);
emit_32(3278272528);
emit_32(3278528512);
emit_32(1100167460);
emit_32(3278272528);
emit_32(3278272528);
emit_32(1100256431);
emit_32(3278272528);
emit_32(3278016545);
emit_32(1099679872);
emit_32(3278272528);
emit_32(3277760496);
emit_32(1098851759);
emit_32(3278272528);
emit_32(3277504512);
emit_32(1098385562);
emit_32(3278272528);
emit_32(3277248528);
emit_32(1098603142);
emit_32(3278272528);
emit_32(3276992545);
emit_32(1098517158);
emit_32(3278272528);
emit_32(3276736496);
emit_32(1098595697);
emit_32(3278272528);
emit_32(3276480512);
emit_32(1097738591);
emit_32(3278272528);
emit_32(3276224528);
emit_32(1097722757);
emit_32(3278272528);
emit_32(3275968545);
emit_32(1097226886);
emit_32(3278272528);
emit_32(3275712496);
emit_32(1097415629);
emit_32(3278272528);
emit_32(3275456512);
emit_32(1096617873);
emit_32(3278272528);
emit_32(3275200528);
emit_32(1095510786);
emit_32(3278272528);
emit_32(3274944545);
emit_32(1095328858);
emit_32(3278272528);
emit_32(3274688496);
emit_32(1093740999);
emit_32(3278272528);
emit_32(3274432512);
emit_32(1092633598);
emit_32(3278272528);
emit_32(3274176528);
emit_32(1095320155);
emit_32(3278272528);
emit_32(3273920545);
emit_32(1096140771);
emit_32(3278272528);
emit_32(3273664496);
emit_32(1097600808);
emit_32(3278272528);
emit_32(3273408512);
emit_32(1098894960);
emit_32(3278272528);
emit_32(3273152528);
emit_32(1099788032);
emit_32(3278272528);
emit_32(3272896545);
emit_32(1100230112);
emit_32(3278272528);
emit_32(3272640496);
emit_32(1100219731);
emit_32(3278272528);
emit_32(3272384512);
emit_32(1100734897);
emit_32(3278272528);
emit_32(3272128528);
emit_32(1101173726);
emit_32(3278272528);
emit_32(3271872545);
emit_32(1101152072);
emit_32(3278272528);
emit_32(3271616496);
emit_32(1101550479);
emit_32(3278272528);
emit_32(3271163904);
emit_32(1101252736);
emit_32(3278272528);
emit_32(3270651937);
emit_32(1101467694);
emit_32(3278272528);
emit_32(3270139970);
emit_32(1101808009);
emit_32(3278272528);
emit_32(3269627871);
emit_32(1101705930);
emit_32(3278272528);
emit_32(3269115904);
emit_32(1102054110);
emit_32(3278272528);
emit_32(3268603937);
emit_32(1102131180);
emit_32(3278272528);
emit_32(3268091970);
emit_32(1101898868);
emit_32(3278272528);
emit_32(3267579911);
emit_32(1101280313);
emit_32(3278272528);
emit_32(3267067904);
emit_32(1100809188);
emit_32(3278272528);
emit_32(3266555911);
emit_32(1101005429);
emit_32(3278272528);
emit_32(3266043904);
emit_32(1101565631);
emit_32(3278272528);
emit_32(3265531911);
emit_32(1101958585);
emit_32(3278272528);
emit_32(3265019904);
emit_32(1102447903);
emit_32(3278272528);
emit_32(3264507911);
emit_32(1102259526);
emit_32(3278272528);
emit_32(3263995904);
emit_32(1102073456);
emit_32(3278272528);
emit_32(3263483911);
emit_32(1102367372);
emit_32(3278272528);
emit_32(3262775296);
emit_32(1102600104);
emit_32(3278272528);
emit_32(3261751309);
emit_32(1102289935);
emit_32(3278272528);
emit_32(3260727296);
emit_32(1101835692);
emit_32(3278272528);
emit_32(3259703309);
emit_32(1101049364);
emit_32(3278272528);
emit_32(3258679296);
emit_32(1100957929);
emit_32(3278272528);
emit_32(3257655309);
emit_32(1101280366);
emit_32(3278272528);
emit_32(3256631296);
emit_32(1101113432);
emit_32(3278272528);
emit_32(3255607309);
emit_32(1100449789);
emit_32(3278272528);
emit_32(3254386688);
emit_32(1099921726);
emit_32(3278272528);
emit_32(3252338714);
emit_32(1098223138);
emit_32(3278272528);
emit_32(3250290688);
emit_32(1095989776);
emit_32(3278272528);
emit_32(3248242714);
emit_32(1095913754);
emit_32(3278272528);
emit_32(3245998080);
emit_32(1096548981);
emit_32(3278272528);
emit_32(3241902132);
emit_32(1095493380);
emit_32(3278272528);
emit_32(3237609472);
emit_32(1095273074);
emit_32(3278272528);
emit_32(3229220864);
emit_32(1094758957);
emit_32(3278272528);
emit_32(0);
emit_32(1093715414);
emit_32(3278272528);
emit_32(1081737216);
emit_32(1093100529);
emit_32(3278272528);
emit_32(3279552512);
emit_32(1098580387);
emit_32(3278528512);
emit_32(3279296528);
emit_32(1099781479);
emit_32(3278528512);
emit_32(3279040545);
emit_32(1100398041);
emit_32(3278528512);
emit_32(3278784496);
emit_32(1100822715);
emit_32(3278528512);
emit_32(3278528512);
emit_32(1100898841);
emit_32(3278528512);
emit_32(3278272528);
emit_32(1100936538);
emit_32(3278528512);
emit_32(3278016545);
emit_32(1100571528);
emit_32(3278528512);
emit_32(3277760496);
emit_32(1099431674);
emit_32(3278528512);
emit_32(3277504512);
emit_32(1098338586);
emit_32(3278528512);
emit_32(3277248528);
emit_32(1098519046);
emit_32(3278528512);
emit_32(3276992545);
emit_32(1098311533);
emit_32(3278528512);
emit_32(3276736496);
emit_32(1097988991);
emit_32(3278528512);
emit_32(3276480512);
emit_32(1097511993);
emit_32(3278528512);
emit_32(3276224528);
emit_32(1097291373);
emit_32(3278528512);
emit_32(3275968545);
emit_32(1096949852);
emit_32(3278528512);
emit_32(3275712496);
emit_32(1096869007);
emit_32(3278528512);
emit_32(3275456512);
emit_32(1096154717);
emit_32(3278528512);
emit_32(3275200528);
emit_32(1096008126);
emit_32(3278528512);
emit_32(3274944545);
emit_32(1096113612);
emit_32(3278528512);
emit_32(3274688496);
emit_32(1094873986);
emit_32(3278528512);
emit_32(3274432512);
emit_32(1094166512);
emit_32(3278528512);
emit_32(3274176528);
emit_32(1095465592);
emit_32(3278528512);
emit_32(3273920545);
emit_32(1096875193);
emit_32(3278528512);
emit_32(3273664496);
emit_32(1098212128);
emit_32(3278528512);
emit_32(3273408512);
emit_32(1099232497);
emit_32(3278528512);
emit_32(3273152528);
emit_32(1099782003);
emit_32(3278528512);
emit_32(3272896545);
emit_32(1100205261);
emit_32(3278528512);
emit_32(3272640496);
emit_32(1100910690);
emit_32(3278528512);
emit_32(3272384512);
emit_32(1100846098);
emit_32(3278528512);
emit_32(3272128528);
emit_32(1101316856);
emit_32(3278528512);
emit_32(3271872545);
emit_32(1101188668);
emit_32(3278528512);
emit_32(3271616496);
emit_32(1101462451);
emit_32(3278528512);
emit_32(3271163904);
emit_32(1102020713);
emit_32(3278528512);
emit_32(3270651937);
emit_32(1101996543);
emit_32(3278528512);
emit_32(3270139970);
emit_32(1102033138);
emit_32(3278528512);
emit_32(3269627871);
emit_32(1102145231);
emit_32(3278528512);
emit_32(3269115904);
emit_32(1102204423);
emit_32(3278528512);
emit_32(3268603937);
emit_32(1102633396);
emit_32(3278528512);
emit_32(3268091970);
emit_32(1102830685);
emit_32(3278528512);
emit_32(3267579911);
emit_32(1102366271);
emit_32(3278528512);
emit_32(3267067904);
emit_32(1101693819);
emit_32(3278528512);
emit_32(3266555911);
emit_32(1100984300);
emit_32(3278528512);
emit_32(3266043904);
emit_32(1101757311);
emit_32(3278528512);
emit_32(3265531911);
emit_32(1102038486);
emit_32(3278528512);
emit_32(3265019904);
emit_32(1102416078);
emit_32(3278528512);
emit_32(3264507911);
emit_32(1102030360);
emit_32(3278528512);
emit_32(3263995904);
emit_32(1101690831);
emit_32(3278528512);
emit_32(3263483911);
emit_32(1101744256);
emit_32(3278528512);
emit_32(3262775296);
emit_32(1101786199);
emit_32(3278528512);
emit_32(3261751309);
emit_32(1101134142);
emit_32(3278528512);
emit_32(3260727296);
emit_32(1100560990);
emit_32(3278528512);
emit_32(3259703309);
emit_32(1099935148);
emit_32(3278528512);
emit_32(3258679296);
emit_32(1099979765);
emit_32(3278528512);
emit_32(3257655309);
emit_32(1100145597);
emit_32(3278528512);
emit_32(3256631296);
emit_32(1099694499);
emit_32(3278528512);
emit_32(3255607309);
emit_32(1099317589);
emit_32(3278528512);
emit_32(3254386688);
emit_32(1098312896);
emit_32(3278528512);
emit_32(3252338714);
emit_32(1096783967);
emit_32(3278528512);
emit_32(3250290688);
emit_32(1094909218);
emit_32(3278528512);
emit_32(3248242714);
emit_32(1094802158);
emit_32(3278528512);
emit_32(3245998080);
emit_32(1094635749);
emit_32(3278528512);
emit_32(3241902132);
emit_32(1093985423);
emit_32(3278528512);
emit_32(3237609472);
emit_32(1093684376);
emit_32(3278528512);
emit_32(3229220864);
emit_32(1092749885);
emit_32(3278528512);
emit_32(0);
emit_32(1092334471);
emit_32(3278528512);
emit_32(1081737216);
emit_32(1091412678);
emit_32(3278528512);
emit_32(3279552512);
emit_32(1099246495);
emit_32(3278784496);
emit_32(3279296528);
emit_32(1100406168);
emit_32(3278784496);
emit_32(3279040545);
emit_32(1100809188);
emit_32(3278784496);
emit_32(3278784496);
emit_32(1101173726);
emit_32(3278784496);
emit_32(3278528512);
emit_32(1101440798);
emit_32(3278784496);
emit_32(3278272528);
emit_32(1101323148);
emit_32(3278784496);
emit_32(3278016545);
emit_32(1100602724);
emit_32(3278784496);
emit_32(3277760496);
emit_32(1099957325);
emit_32(3278784496);
emit_32(3277504512);
emit_32(1099164077);
emit_32(3278784496);
emit_32(3277248528);
emit_32(1098681680);
emit_32(3278784496);
emit_32(3276992545);
emit_32(1098343724);
emit_32(3278784496);
emit_32(3276736496);
emit_32(1097173198);
emit_32(3278784496);
emit_32(3276480512);
emit_32(1097496684);
emit_32(3278784496);
emit_32(3276224528);
emit_32(1096577607);
emit_32(3278784496);
emit_32(3275968545);
emit_32(1096202217);
emit_32(3278784496);
emit_32(3275712496);
emit_32(1095980968);
emit_32(3278784496);
emit_32(3275456512);
emit_32(1095241407);
emit_32(3278784496);
emit_32(3275200528);
emit_32(1095384223);
emit_32(3278784496);
emit_32(3274944545);
emit_32(1095777649);
emit_32(3278784496);
emit_32(3274688496);
emit_32(1095404356);
emit_32(3278784496);
emit_32(3274432512);
emit_32(1096055626);
emit_32(3278784496);
emit_32(3274176528);
emit_32(1096762996);
emit_32(3278784496);
emit_32(3273920545);
emit_32(1097732404);
emit_32(3278784496);
emit_32(3273664496);
emit_32(1099124913);
emit_32(3278784496);
emit_32(3273408512);
emit_32(1099487615);
emit_32(3278784496);
emit_32(3273152528);
emit_32(1099905263);
emit_32(3278784496);
emit_32(3272896545);
emit_32(1100576090);
emit_32(3278784496);
emit_32(3272640496);
emit_32(1101366716);
emit_32(3278784496);
emit_32(3272384512);
emit_32(1100955150);
emit_32(3278784496);
emit_32(3272128528);
emit_32(1101465911);
emit_32(3278784496);
emit_32(3271872545);
emit_32(1101897872);
emit_32(3278784496);
emit_32(3271616496);
emit_32(1101968074);
emit_32(3278784496);
emit_32(3271163904);
emit_32(1102322545);
emit_32(3278784496);
emit_32(3270651937);
emit_32(1102468507);
emit_32(3278784496);
emit_32(3270139970);
emit_32(1102636699);
emit_32(3278784496);
emit_32(3269627871);
emit_32(1102593812);
emit_32(3278784496);
emit_32(3269115904);
emit_32(1102955781);
emit_32(3278784496);
emit_32(3268603937);
emit_32(1103423183);
emit_32(3278784496);
emit_32(3268091970);
emit_32(1103413484);
emit_32(3278784496);
emit_32(3267579911);
emit_32(1103118467);
emit_32(3278784496);
emit_32(3267067904);
emit_32(1102692536);
emit_32(3278784496);
emit_32(3266555911);
emit_32(1101705878);
emit_32(3278784496);
emit_32(3266043904);
emit_32(1101340082);
emit_32(3278784496);
emit_32(3265531911);
emit_32(1102200596);
emit_32(3278784496);
emit_32(3265019904);
emit_32(1102209457);
emit_32(3278784496);
emit_32(3264507911);
emit_32(1101833280);
emit_32(3278784496);
emit_32(3263995904);
emit_32(1101273812);
emit_32(3278784496);
emit_32(3263483911);
emit_32(1101051042);
emit_32(3278784496);
emit_32(3262775296);
emit_32(1100997722);
emit_32(3278784496);
emit_32(3261751309);
emit_32(1100555118);
emit_32(3278784496);
emit_32(3260727296);
emit_32(1099388420);
emit_32(3278784496);
emit_32(3259703309);
emit_32(1098921070);
emit_32(3278784496);
emit_32(3258679296);
emit_32(1098291295);
emit_32(3278784496);
emit_32(3257655309);
emit_32(1097914751);
emit_32(3278784496);
emit_32(3256631296);
emit_32(1098783811);
emit_32(3278784496);
emit_32(3255607309);
emit_32(1097200986);
emit_32(3278784496);
emit_32(3254386688);
emit_32(1095754580);
emit_32(3278784496);
emit_32(3252338714);
emit_32(1094603034);
emit_32(3278784496);
emit_32(3250290688);
emit_32(1092756596);
emit_32(3278784496);
emit_32(3248242714);
emit_32(1093057118);
emit_32(3278784496);
emit_32(3245998080);
emit_32(1093385742);
emit_32(3278784496);
emit_32(3241902132);
emit_32(1092478325);
emit_32(3278784496);
emit_32(3237609472);
emit_32(1091460850);
emit_32(3278784496);
emit_32(3229220864);
emit_32(1090737647);
emit_32(3278784496);
emit_32(0);
emit_32(1090290346);
emit_32(3278784496);
emit_32(1081737216);
emit_32(1090509120);
emit_32(3278784496);
emit_32(3279552512);
emit_32(1099149345);
emit_32(3279040545);
emit_32(3279296528);
emit_32(1100408318);
emit_32(3279040545);
emit_32(3279040545);
emit_32(1100800170);
emit_32(3279040545);
emit_32(3278784496);
emit_32(1101432986);
emit_32(3279040545);
emit_32(3278528512);
emit_32(1101564058);
emit_32(3279040545);
emit_32(3278272528);
emit_32(1101179755);
emit_32(3279040545);
emit_32(3278016545);
emit_32(1100480145);
emit_32(3279040545);
emit_32(3277760496);
emit_32(1099858759);
emit_32(3279040545);
emit_32(3277504512);
emit_32(1099623354);
emit_32(3279040545);
emit_32(3277248528);
emit_32(1098996934);
emit_32(3279040545);
emit_32(3276992545);
emit_32(1098237818);
emit_32(3279040545);
emit_32(3276736496);
emit_32(1097341285);
emit_32(3279040545);
emit_32(3276480512);
emit_32(1096845414);
emit_32(3279040545);
emit_32(3276224528);
emit_32(1095838571);
emit_32(3279040545);
emit_32(3275968545);
emit_32(1095836998);
emit_32(3279040545);
emit_32(3275712496);
emit_32(1095004114);
emit_32(3279040545);
emit_32(3275456512);
emit_32(1094881011);
emit_32(3279040545);
emit_32(3275200528);
emit_32(1094801529);
emit_32(3279040545);
emit_32(3274944545);
emit_32(1093872281);
emit_32(3279040545);
emit_32(3274688496);
emit_32(1094479197);
emit_32(3279040545);
emit_32(3274432512);
emit_32(1096306341);
emit_32(3279040545);
emit_32(3274176528);
emit_32(1096403334);
emit_32(3279040545);
emit_32(3273920545);
emit_32(1097374315);
emit_32(3279040545);
emit_32(3273664496);
emit_32(1098966788);
emit_32(3279040545);
emit_32(3273408512);
emit_32(1099462921);
emit_32(3279040545);
emit_32(3273152528);
emit_32(1099984903);
emit_32(3279040545);
emit_32(3272896545);
emit_32(1101000973);
emit_32(3279040545);
emit_32(3272640496);
emit_32(1101297982);
emit_32(3279040545);
emit_32(3272384512);
emit_32(1101298506);
emit_32(3279040545);
emit_32(3272128528);
emit_32(1101350044);
emit_32(3279040545);
emit_32(3271872545);
emit_32(1102416393);
emit_32(3279040545);
emit_32(3271616496);
emit_32(1102828588);
emit_32(3279040545);
emit_32(3271163904);
emit_32(1103097810);
emit_32(3279040545);
emit_32(3270651937);
emit_32(1103270825);
emit_32(3279040545);
emit_32(3270139970);
emit_32(1103513256);
emit_32(3279040545);
emit_32(3269627871);
emit_32(1103154119);
emit_32(3279040545);
emit_32(3269115904);
emit_32(1103932214);
emit_32(3279040545);
emit_32(3268603937);
emit_32(1103727532);
emit_32(3279040545);
emit_32(3268091970);
emit_32(1103627393);
emit_32(3279040545);
emit_32(3267579911);
emit_32(1103400272);
emit_32(3279040545);
emit_32(3267067904);
emit_32(1103403365);
emit_32(3279040545);
emit_32(3266555911);
emit_32(1102403496);
emit_32(3279040545);
emit_32(3266043904);
emit_32(1101353556);
emit_32(3279040545);
emit_32(3265531911);
emit_32(1101619213);
emit_32(3279040545);
emit_32(3265019904);
emit_32(1102006295);
emit_32(3279040545);
emit_32(3264507911);
emit_32(1101503503);
emit_32(3279040545);
emit_32(3263995904);
emit_32(1100538131);
emit_32(3279040545);
emit_32(3263483911);
emit_32(1100080271);
emit_32(3279040545);
emit_32(3262775296);
emit_32(1099418881);
emit_32(3279040545);
emit_32(3261751309);
emit_32(1099399430);
emit_32(3279040545);
emit_32(3260727296);
emit_32(1099101215);
emit_32(3279040545);
emit_32(3259703309);
emit_32(1097408394);
emit_32(3279040545);
emit_32(3258679296);
emit_32(1096341468);
emit_32(3279040545);
emit_32(3257655309);
emit_32(1095779641);
emit_32(3279040545);
emit_32(3256631296);
emit_32(1094671296);
emit_32(3279040545);
emit_32(3255607309);
emit_32(1094154977);
emit_32(3279040545);
emit_32(3254386688);
emit_32(1092748732);
emit_32(3279040545);
emit_32(3252338714);
emit_32(1091621345);
emit_32(3279040545);
emit_32(3250290688);
emit_32(1090704869);
emit_32(3279040545);
emit_32(3248242714);
emit_32(1090960134);
emit_32(3279040545);
emit_32(3245998080);
emit_32(1090657442);
emit_32(3279040545);
emit_32(3241902132);
emit_32(1089905497);
emit_32(3279040545);
emit_32(3237609472);
emit_32(1088557112);
emit_32(3279040545);
emit_32(3229220864);
emit_32(1086833925);
emit_32(3279040545);
emit_32(0);
emit_32(1087077467);
emit_32(3279040545);
emit_32(1081737216);
emit_32(1087170664);
emit_32(3279040545);
emit_32(3279552512);
emit_32(1099250847);
emit_32(3279296528);
emit_32(3279296528);
emit_32(1099782632);
emit_32(3279296528);
emit_32(3279040545);
emit_32(1100353372);
emit_32(3279296528);
emit_32(3278784496);
emit_32(1101212785);
emit_32(3279296528);
emit_32(3278528512);
emit_32(1101165494);
emit_32(3279296528);
emit_32(3278272528);
emit_32(1101113957);
emit_32(3279296528);
emit_32(3278016545);
emit_32(1100762736);
emit_32(3279296528);
emit_32(3277760496);
emit_32(1099820381);
emit_32(3279296528);
emit_32(3277504512);
emit_32(1099259340);
emit_32(3279296528);
emit_32(3277248528);
emit_32(1098864027);
emit_32(3279296528);
emit_32(3276992545);
emit_32(1097692558);
emit_32(3279296528);
emit_32(3276736496);
emit_32(1097396755);
emit_32(3279296528);
emit_32(3276480512);
emit_32(1096710776);
emit_32(3279296528);
emit_32(3276224528);
emit_32(1095208586);
emit_32(3279296528);
emit_32(3275968545);
emit_32(1094436625);
emit_32(3279296528);
emit_32(3275712496);
emit_32(1094237605);
emit_32(3279296528);
emit_32(3275456512);
emit_32(1093631948);
emit_32(3279296528);
emit_32(3275200528);
emit_32(1093328699);
emit_32(3279296528);
emit_32(3274944545);
emit_32(1093335096);
emit_32(3279296528);
emit_32(3274688496);
emit_32(1093281199);
emit_32(3279296528);
emit_32(3274432512);
emit_32(1094777307);
emit_32(3279296528);
emit_32(3274176528);
emit_32(1095041653);
emit_32(3279296528);
emit_32(3273920545);
emit_32(1096648281);
emit_32(3279296528);
emit_32(3273664496);
emit_32(1098228380);
emit_32(3279296528);
emit_32(3273408512);
emit_32(1099209114);
emit_32(3279296528);
emit_32(3273152528);
emit_32(1099931582);
emit_32(3279296528);
emit_32(3272896545);
emit_32(1100442291);
emit_32(3279296528);
emit_32(3272640496);
emit_32(1100819359);
emit_32(3279296528);
emit_32(3272384512);
emit_32(1101023045);
emit_32(3279296528);
emit_32(3272128528);
emit_32(1101474877);
emit_32(3279296528);
emit_32(3271872545);
emit_32(1102424624);
emit_32(3279296528);
emit_32(3271616496);
emit_32(1103221962);
emit_32(3279296528);
emit_32(3271163904);
emit_32(1103274757);
emit_32(3279296528);
emit_32(3270651937);
emit_32(1103895200);
emit_32(3279296528);
emit_32(3270139970);
emit_32(1104182824);
emit_32(3279296528);
emit_32(3269627871);
emit_32(1104099462);
emit_32(3279296528);
emit_32(3269115904);
emit_32(1103825102);
emit_32(3279296528);
emit_32(3268603937);
emit_32(1104155037);
emit_32(3279296528);
emit_32(3268091970);
emit_32(1104133122);
emit_32(3279296528);
emit_32(3267579911);
emit_32(1103855721);
emit_32(3279296528);
emit_32(3267067904);
emit_32(1103437391);
emit_32(3279296528);
emit_32(3266555911);
emit_32(1102382472);
emit_32(3279296528);
emit_32(3266043904);
emit_32(1101496425);
emit_32(3279296528);
emit_32(3265531911);
emit_32(1101309673);
emit_32(3279296528);
emit_32(3265019904);
emit_32(1101136973);
emit_32(3279296528);
emit_32(3264507911);
emit_32(1100555957);
emit_32(3279296528);
emit_32(3263995904);
emit_32(1099877161);
emit_32(3279296528);
emit_32(3263483911);
emit_32(1099240414);
emit_32(3279296528);
emit_32(3262775296);
emit_32(1098818938);
emit_32(3279296528);
emit_32(3261751309);
emit_32(1097030487);
emit_32(3279296528);
emit_32(3260727296);
emit_32(1096386557);
emit_32(3279296528);
emit_32(3259703309);
emit_32(1095308516);
emit_32(3279296528);
emit_32(3258679296);
emit_32(1093918733);
emit_32(3279296528);
emit_32(3257655309);
emit_32(1093062885);
emit_32(3279296528);
emit_32(3256631296);
emit_32(1092790780);
emit_32(3279296528);
emit_32(3255607309);
emit_32(1091773189);
emit_32(3279296528);
emit_32(3254386688);
emit_32(1089177744);
emit_32(3279296528);
emit_32(3252338714);
emit_32(1085799588);
emit_32(3279296528);
emit_32(3250290688);
emit_32(1085098154);
emit_32(3279296528);
emit_32(3248242714);
emit_32(1086394194);
emit_32(3279296528);
emit_32(3245998080);
emit_32(1086183912);
emit_32(3279296528);
emit_32(3241902132);
emit_32(1084926145);
emit_32(3279296528);
emit_32(3237609472);
emit_32(1085235454);
emit_32(3279296528);
emit_32(3229220864);
emit_32(1084071682);
emit_32(3279296528);
emit_32(0);
emit_32(1084345968);
emit_32(3279296528);
emit_32(1081737216);
emit_32(1086522393);
emit_32(3279296528);
emit_32(3279552512);
emit_32(1099558709);
emit_32(3279552512);
emit_32(3279296528);
emit_32(1099939394);
emit_32(3279552512);
emit_32(3279040545);
emit_32(1100668731);
emit_32(3279552512);
emit_32(3278784496);
emit_32(1100652321);
emit_32(3279552512);
emit_32(3278528512);
emit_32(1101087375);
emit_32(3279552512);
emit_32(3278272528);
emit_32(1100952319);
emit_32(3279552512);
emit_32(3278016545);
emit_32(1100463787);
emit_32(3279552512);
emit_32(3277760496);
emit_32(1099835428);
emit_32(3279552512);
emit_32(3277504512);
emit_32(1098509084);
emit_32(3279552512);
emit_32(3277248528);
emit_32(1097497838);
emit_32(3279552512);
emit_32(3276992545);
emit_32(1095815817);
emit_32(3279552512);
emit_32(3276736496);
emit_32(1096394106);
emit_32(3279552512);
emit_32(3276480512);
emit_32(1095914488);
emit_32(3279552512);
emit_32(3276224528);
emit_32(1094719216);
emit_32(3279552512);
emit_32(3275968545);
emit_32(1093850681);
emit_32(3279552512);
emit_32(3275712496);
emit_32(1093377773);
emit_32(3279552512);
emit_32(3275456512);
emit_32(1092882845);
emit_32(3279552512);
emit_32(3275200528);
emit_32(1092368613);
emit_32(3279552512);
emit_32(3274944545);
emit_32(1091574149);
emit_32(3279552512);
emit_32(3274688496);
emit_32(1092064893);
emit_32(3279552512);
emit_32(3274432512);
emit_32(1093456206);
emit_32(3279552512);
emit_32(3274176528);
emit_32(1095174193);
emit_32(3279552512);
emit_32(3273920545);
emit_32(1096573098);
emit_32(3279552512);
emit_32(3273664496);
emit_32(1096908852);
emit_32(3279552512);
emit_32(3273408512);
emit_32(1098744804);
emit_32(3279552512);
emit_32(3273152528);
emit_32(1099535483);
emit_32(3279552512);
emit_32(3272896545);
emit_32(1099936825);
emit_32(3279552512);
emit_32(3272640496);
emit_32(1100672506);
emit_32(3279552512);
emit_32(3272384512);
emit_32(1101166805);
emit_32(3279552512);
emit_32(3272128528);
emit_32(1102004250);
emit_32(3279552512);
emit_32(3271872545);
emit_32(1102491838);
emit_32(3279552512);
emit_32(3271616496);
emit_32(1103105779);
emit_32(3279552512);
emit_32(3271163904);
emit_32(1103782950);
emit_32(3279552512);
emit_32(3270651937);
emit_32(1104304878);
emit_32(3279552512);
emit_32(3270139970);
emit_32(1104909802);
emit_32(3279552512);
emit_32(3269627871);
emit_32(1104927680);
emit_32(3279552512);
emit_32(3269115904);
emit_32(1104823452);
emit_32(3279552512);
emit_32(3268603937);
emit_32(1104924063);
emit_32(3279552512);
emit_32(3268091970);
emit_32(1105080143);
emit_32(3279552512);
emit_32(3267579911);
emit_32(1104516533);
emit_32(3279552512);
emit_32(3267067904);
emit_32(1103348315);
emit_32(3279552512);
emit_32(3266555911);
emit_32(1102478049);
emit_32(3279552512);
emit_32(3266043904);
emit_32(1101882406);
emit_32(3279552512);
emit_32(3265531911);
emit_32(1100937324);
emit_32(3279552512);
emit_32(3265019904);
emit_32(1100262828);
emit_32(3279552512);
emit_32(3264507911);
emit_32(1099805963);
emit_32(3279552512);
emit_32(3263995904);
emit_32(1098412301);
emit_32(3279552512);
emit_32(3263483911);
emit_32(1097524052);
emit_32(3279552512);
emit_32(3262775296);
emit_32(1096845309);
emit_32(3279552512);
emit_32(3261751309);
emit_32(1094863186);
emit_32(3279552512);
emit_32(3260727296);
emit_32(1092933596);
emit_32(3279552512);
emit_32(3259703309);
emit_32(1092280658);
emit_32(3279552512);
emit_32(3258679296);
emit_32(1090650752);
emit_32(3279552512);
emit_32(3257655309);
emit_32(1090797762);
emit_32(3279552512);
emit_32(3256631296);
emit_32(1090478271);
emit_32(3279552512);
emit_32(3255607309);
emit_32(1089328172);
emit_32(3279552512);
emit_32(3254386688);
emit_32(1087017593);
emit_32(3279552512);
emit_32(3252338714);
emit_32(1083442180);
emit_32(3279552512);
emit_32(3250290688);
emit_32(1081443237);
emit_32(3279552512);
emit_32(3248242714);
emit_32(1082646268);
emit_32(3279552512);
emit_32(3245998080);
emit_32(1081291445);
emit_32(3279552512);
emit_32(3241902132);
emit_32(1081059249);
emit_32(3279552512);
emit_32(3237609472);
emit_32(1081285406);
emit_32(3279552512);
emit_32(3229220864);
emit_32(1081938249);
emit_32(3279552512);
emit_32(0);
emit_32(1085708656);
emit_32(3279552512);
emit_32(1081737216);
emit_32(1086994839);
emit_32(3279552512);
emit_start(LandscapeVtxCount)
emit_32(2048);
emit_32(1980);
emit_32(2048);
emit_32(2112);
emit_32(2244);
emit_32(2310);
emit_32(2240);
emit_32(2178);
emit_start(LandscapeIdx)
emit_32(Landscape01Idx);
emit_32(Landscape02Idx);
emit_32(Landscape03Idx);
emit_32(Landscape04Idx);
emit_32(Landscape05Idx);
emit_32(Landscape06Idx);
emit_32(Landscape07Idx);
emit_32(Landscape08Idx);
emit_start(Landscape01Idx)
emit_16(0);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(2);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(4);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(6);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(8);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(10);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(12);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(14);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(16);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(18);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(20);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(22);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(24);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(26);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(28);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(30);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(32);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(34);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(36);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(38);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(40);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(42);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(44);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(46);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(48);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(50);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(52);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(54);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(56);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(58);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(60);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(62);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(64);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(66);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(68);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(70);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(72);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(74);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(76);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(78);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(80);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(82);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(84);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(86);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(88);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(90);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(92);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(94);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(96);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(98);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(100);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(102);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(104);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(106);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(108);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(110);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(112);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(114);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(116);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(118);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(120);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(122);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(124);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(126);
emit_16(125);
emit_16(128);
emit_16(0);
emit_16(129);
emit_16(2);
emit_16(129);
emit_16(0);
emit_16(129);
emit_16(2);
emit_16(130);
emit_16(4);
emit_16(130);
emit_16(2);
emit_16(130);
emit_16(4);
emit_16(131);
emit_16(6);
emit_16(131);
emit_16(4);
emit_16(131);
emit_16(6);
emit_16(132);
emit_16(8);
emit_16(132);
emit_16(6);
emit_16(132);
emit_16(8);
emit_16(133);
emit_16(10);
emit_16(133);
emit_16(8);
emit_16(133);
emit_16(10);
emit_16(134);
emit_16(12);
emit_16(134);
emit_16(10);
emit_16(134);
emit_16(12);
emit_16(135);
emit_16(14);
emit_16(135);
emit_16(12);
emit_16(135);
emit_16(14);
emit_16(136);
emit_16(16);
emit_16(136);
emit_16(14);
emit_16(136);
emit_16(16);
emit_16(137);
emit_16(18);
emit_16(137);
emit_16(16);
emit_16(137);
emit_16(18);
emit_16(138);
emit_16(20);
emit_16(138);
emit_16(18);
emit_16(138);
emit_16(20);
emit_16(139);
emit_16(22);
emit_16(139);
emit_16(20);
emit_16(139);
emit_16(22);
emit_16(140);
emit_16(24);
emit_16(140);
emit_16(22);
emit_16(140);
emit_16(24);
emit_16(141);
emit_16(26);
emit_16(141);
emit_16(24);
emit_16(141);
emit_16(26);
emit_16(142);
emit_16(28);
emit_16(142);
emit_16(26);
emit_16(142);
emit_16(28);
emit_16(143);
emit_16(30);
emit_16(143);
emit_16(28);
emit_16(143);
emit_16(30);
emit_16(144);
emit_16(32);
emit_16(144);
emit_16(30);
emit_16(144);
emit_16(32);
emit_16(145);
emit_16(34);
emit_16(145);
emit_16(32);
emit_16(145);
emit_16(34);
emit_16(146);
emit_16(36);
emit_16(146);
emit_16(34);
emit_16(146);
emit_16(36);
emit_16(147);
emit_16(38);
emit_16(147);
emit_16(36);
emit_16(147);
emit_16(38);
emit_16(148);
emit_16(40);
emit_16(148);
emit_16(38);
emit_16(148);
emit_16(40);
emit_16(149);
emit_16(42);
emit_16(149);
emit_16(40);
emit_16(149);
emit_16(42);
emit_16(150);
emit_16(44);
emit_16(150);
emit_16(42);
emit_16(150);
emit_16(44);
emit_16(151);
emit_16(46);
emit_16(151);
emit_16(44);
emit_16(151);
emit_16(46);
emit_16(152);
emit_16(48);
emit_16(152);
emit_16(46);
emit_16(152);
emit_16(48);
emit_16(153);
emit_16(50);
emit_16(153);
emit_16(48);
emit_16(153);
emit_16(50);
emit_16(154);
emit_16(52);
emit_16(154);
emit_16(50);
emit_16(154);
emit_16(52);
emit_16(155);
emit_16(54);
emit_16(155);
emit_16(52);
emit_16(155);
emit_16(54);
emit_16(156);
emit_16(56);
emit_16(156);
emit_16(54);
emit_16(156);
emit_16(56);
emit_16(157);
emit_16(58);
emit_16(157);
emit_16(56);
emit_16(157);
emit_16(58);
emit_16(158);
emit_16(60);
emit_16(158);
emit_16(58);
emit_16(158);
emit_16(60);
emit_16(159);
emit_16(62);
emit_16(159);
emit_16(60);
emit_16(159);
emit_16(62);
emit_16(160);
emit_16(64);
emit_16(160);
emit_16(62);
emit_16(160);
emit_16(64);
emit_16(161);
emit_16(66);
emit_16(161);
emit_16(64);
emit_16(161);
emit_16(66);
emit_16(162);
emit_16(68);
emit_16(162);
emit_16(66);
emit_16(162);
emit_16(68);
emit_16(163);
emit_16(70);
emit_16(163);
emit_16(68);
emit_16(163);
emit_16(70);
emit_16(164);
emit_16(72);
emit_16(164);
emit_16(70);
emit_16(164);
emit_16(72);
emit_16(165);
emit_16(74);
emit_16(165);
emit_16(72);
emit_16(165);
emit_16(74);
emit_16(166);
emit_16(76);
emit_16(166);
emit_16(74);
emit_16(166);
emit_16(76);
emit_16(167);
emit_16(78);
emit_16(167);
emit_16(76);
emit_16(167);
emit_16(78);
emit_16(168);
emit_16(80);
emit_16(168);
emit_16(78);
emit_16(168);
emit_16(80);
emit_16(169);
emit_16(82);
emit_16(169);
emit_16(80);
emit_16(169);
emit_16(82);
emit_16(170);
emit_16(84);
emit_16(170);
emit_16(82);
emit_16(170);
emit_16(84);
emit_16(171);
emit_16(86);
emit_16(171);
emit_16(84);
emit_16(171);
emit_16(86);
emit_16(172);
emit_16(88);
emit_16(172);
emit_16(86);
emit_16(172);
emit_16(88);
emit_16(173);
emit_16(90);
emit_16(173);
emit_16(88);
emit_16(173);
emit_16(90);
emit_16(174);
emit_16(92);
emit_16(174);
emit_16(90);
emit_16(174);
emit_16(92);
emit_16(175);
emit_16(94);
emit_16(175);
emit_16(92);
emit_16(175);
emit_16(94);
emit_16(176);
emit_16(96);
emit_16(176);
emit_16(94);
emit_16(176);
emit_16(96);
emit_16(177);
emit_16(98);
emit_16(177);
emit_16(96);
emit_16(177);
emit_16(98);
emit_16(178);
emit_16(100);
emit_16(178);
emit_16(98);
emit_16(178);
emit_16(100);
emit_16(179);
emit_16(102);
emit_16(179);
emit_16(100);
emit_16(179);
emit_16(102);
emit_16(180);
emit_16(104);
emit_16(180);
emit_16(102);
emit_16(180);
emit_16(104);
emit_16(181);
emit_16(106);
emit_16(181);
emit_16(104);
emit_16(181);
emit_16(106);
emit_16(182);
emit_16(108);
emit_16(182);
emit_16(106);
emit_16(182);
emit_16(108);
emit_16(183);
emit_16(110);
emit_16(183);
emit_16(108);
emit_16(183);
emit_16(110);
emit_16(184);
emit_16(112);
emit_16(184);
emit_16(110);
emit_16(184);
emit_16(112);
emit_16(185);
emit_16(114);
emit_16(185);
emit_16(112);
emit_16(185);
emit_16(114);
emit_16(186);
emit_16(116);
emit_16(186);
emit_16(114);
emit_16(186);
emit_16(116);
emit_16(187);
emit_16(118);
emit_16(187);
emit_16(116);
emit_16(187);
emit_16(118);
emit_16(188);
emit_16(120);
emit_16(188);
emit_16(118);
emit_16(188);
emit_16(120);
emit_16(189);
emit_16(122);
emit_16(189);
emit_16(120);
emit_16(189);
emit_16(122);
emit_16(190);
emit_16(124);
emit_16(190);
emit_16(122);
emit_16(190);
emit_16(124);
emit_16(191);
emit_16(126);
emit_16(191);
emit_16(124);
emit_16(192);
emit_16(128);
emit_16(193);
emit_16(129);
emit_16(193);
emit_16(128);
emit_16(193);
emit_16(129);
emit_16(194);
emit_16(130);
emit_16(194);
emit_16(129);
emit_16(194);
emit_16(130);
emit_16(195);
emit_16(131);
emit_16(195);
emit_16(130);
emit_16(195);
emit_16(131);
emit_16(196);
emit_16(132);
emit_16(196);
emit_16(131);
emit_16(196);
emit_16(132);
emit_16(197);
emit_16(133);
emit_16(197);
emit_16(132);
emit_16(197);
emit_16(133);
emit_16(198);
emit_16(134);
emit_16(198);
emit_16(133);
emit_16(198);
emit_16(134);
emit_16(199);
emit_16(135);
emit_16(199);
emit_16(134);
emit_16(199);
emit_16(135);
emit_16(200);
emit_16(136);
emit_16(200);
emit_16(135);
emit_16(200);
emit_16(136);
emit_16(201);
emit_16(137);
emit_16(201);
emit_16(136);
emit_16(201);
emit_16(137);
emit_16(202);
emit_16(138);
emit_16(202);
emit_16(137);
emit_16(202);
emit_16(138);
emit_16(203);
emit_16(139);
emit_16(203);
emit_16(138);
emit_16(203);
emit_16(139);
emit_16(204);
emit_16(140);
emit_16(204);
emit_16(139);
emit_16(204);
emit_16(140);
emit_16(205);
emit_16(141);
emit_16(205);
emit_16(140);
emit_16(205);
emit_16(141);
emit_16(206);
emit_16(142);
emit_16(206);
emit_16(141);
emit_16(206);
emit_16(142);
emit_16(207);
emit_16(143);
emit_16(207);
emit_16(142);
emit_16(207);
emit_16(143);
emit_16(208);
emit_16(144);
emit_16(208);
emit_16(143);
emit_16(208);
emit_16(144);
emit_16(209);
emit_16(145);
emit_16(209);
emit_16(144);
emit_16(209);
emit_16(145);
emit_16(210);
emit_16(146);
emit_16(210);
emit_16(145);
emit_16(210);
emit_16(146);
emit_16(211);
emit_16(147);
emit_16(211);
emit_16(146);
emit_16(211);
emit_16(147);
emit_16(212);
emit_16(148);
emit_16(212);
emit_16(147);
emit_16(212);
emit_16(148);
emit_16(213);
emit_16(149);
emit_16(213);
emit_16(148);
emit_16(213);
emit_16(149);
emit_16(214);
emit_16(150);
emit_16(214);
emit_16(149);
emit_16(214);
emit_16(150);
emit_16(215);
emit_16(151);
emit_16(215);
emit_16(150);
emit_16(215);
emit_16(151);
emit_16(216);
emit_16(152);
emit_16(216);
emit_16(151);
emit_16(216);
emit_16(152);
emit_16(217);
emit_16(153);
emit_16(217);
emit_16(152);
emit_16(217);
emit_16(153);
emit_16(218);
emit_16(154);
emit_16(218);
emit_16(153);
emit_16(218);
emit_16(154);
emit_16(219);
emit_16(155);
emit_16(219);
emit_16(154);
emit_16(219);
emit_16(155);
emit_16(220);
emit_16(156);
emit_16(220);
emit_16(155);
emit_16(220);
emit_16(156);
emit_16(221);
emit_16(157);
emit_16(221);
emit_16(156);
emit_16(221);
emit_16(157);
emit_16(222);
emit_16(158);
emit_16(222);
emit_16(157);
emit_16(222);
emit_16(158);
emit_16(223);
emit_16(159);
emit_16(223);
emit_16(158);
emit_16(223);
emit_16(159);
emit_16(224);
emit_16(160);
emit_16(224);
emit_16(159);
emit_16(224);
emit_16(160);
emit_16(225);
emit_16(161);
emit_16(225);
emit_16(160);
emit_16(225);
emit_16(161);
emit_16(226);
emit_16(162);
emit_16(226);
emit_16(161);
emit_16(226);
emit_16(162);
emit_16(227);
emit_16(163);
emit_16(227);
emit_16(162);
emit_16(227);
emit_16(163);
emit_16(228);
emit_16(164);
emit_16(228);
emit_16(163);
emit_16(228);
emit_16(164);
emit_16(229);
emit_16(165);
emit_16(229);
emit_16(164);
emit_16(229);
emit_16(165);
emit_16(230);
emit_16(166);
emit_16(230);
emit_16(165);
emit_16(230);
emit_16(166);
emit_16(231);
emit_16(167);
emit_16(231);
emit_16(166);
emit_16(231);
emit_16(167);
emit_16(232);
emit_16(168);
emit_16(232);
emit_16(167);
emit_16(232);
emit_16(168);
emit_16(233);
emit_16(169);
emit_16(233);
emit_16(168);
emit_16(233);
emit_16(169);
emit_16(234);
emit_16(170);
emit_16(234);
emit_16(169);
emit_16(234);
emit_16(170);
emit_16(235);
emit_16(171);
emit_16(235);
emit_16(170);
emit_16(235);
emit_16(171);
emit_16(236);
emit_16(172);
emit_16(236);
emit_16(171);
emit_16(236);
emit_16(172);
emit_16(237);
emit_16(173);
emit_16(237);
emit_16(172);
emit_16(237);
emit_16(173);
emit_16(238);
emit_16(174);
emit_16(238);
emit_16(173);
emit_16(238);
emit_16(174);
emit_16(239);
emit_16(175);
emit_16(239);
emit_16(174);
emit_16(239);
emit_16(175);
emit_16(240);
emit_16(176);
emit_16(240);
emit_16(175);
emit_16(240);
emit_16(176);
emit_16(241);
emit_16(177);
emit_16(241);
emit_16(176);
emit_16(241);
emit_16(177);
emit_16(242);
emit_16(178);
emit_16(242);
emit_16(177);
emit_16(242);
emit_16(178);
emit_16(243);
emit_16(179);
emit_16(243);
emit_16(178);
emit_16(243);
emit_16(179);
emit_16(244);
emit_16(180);
emit_16(244);
emit_16(179);
emit_16(244);
emit_16(180);
emit_16(245);
emit_16(181);
emit_16(245);
emit_16(180);
emit_16(245);
emit_16(181);
emit_16(246);
emit_16(182);
emit_16(246);
emit_16(181);
emit_16(246);
emit_16(182);
emit_16(247);
emit_16(183);
emit_16(247);
emit_16(182);
emit_16(247);
emit_16(183);
emit_16(248);
emit_16(184);
emit_16(248);
emit_16(183);
emit_16(248);
emit_16(184);
emit_16(249);
emit_16(185);
emit_16(249);
emit_16(184);
emit_16(249);
emit_16(185);
emit_16(250);
emit_16(186);
emit_16(250);
emit_16(185);
emit_16(250);
emit_16(186);
emit_16(251);
emit_16(187);
emit_16(251);
emit_16(186);
emit_16(251);
emit_16(187);
emit_16(252);
emit_16(188);
emit_16(252);
emit_16(187);
emit_16(252);
emit_16(188);
emit_16(253);
emit_16(189);
emit_16(253);
emit_16(188);
emit_16(253);
emit_16(189);
emit_16(254);
emit_16(190);
emit_16(254);
emit_16(189);
emit_16(254);
emit_16(190);
emit_16(255);
emit_16(191);
emit_16(255);
emit_16(190);
emit_16(256);
emit_16(192);
emit_16(257);
emit_16(193);
emit_16(257);
emit_16(192);
emit_16(257);
emit_16(193);
emit_16(258);
emit_16(194);
emit_16(258);
emit_16(193);
emit_16(258);
emit_16(194);
emit_16(259);
emit_16(195);
emit_16(259);
emit_16(194);
emit_16(259);
emit_16(195);
emit_16(260);
emit_16(196);
emit_16(260);
emit_16(195);
emit_16(260);
emit_16(196);
emit_16(261);
emit_16(197);
emit_16(261);
emit_16(196);
emit_16(261);
emit_16(197);
emit_16(262);
emit_16(198);
emit_16(262);
emit_16(197);
emit_16(262);
emit_16(198);
emit_16(263);
emit_16(199);
emit_16(263);
emit_16(198);
emit_16(263);
emit_16(199);
emit_16(264);
emit_16(200);
emit_16(264);
emit_16(199);
emit_16(264);
emit_16(200);
emit_16(265);
emit_16(201);
emit_16(265);
emit_16(200);
emit_16(265);
emit_16(201);
emit_16(266);
emit_16(202);
emit_16(266);
emit_16(201);
emit_16(266);
emit_16(202);
emit_16(267);
emit_16(203);
emit_16(267);
emit_16(202);
emit_16(267);
emit_16(203);
emit_16(268);
emit_16(204);
emit_16(268);
emit_16(203);
emit_16(268);
emit_16(204);
emit_16(269);
emit_16(205);
emit_16(269);
emit_16(204);
emit_16(269);
emit_16(205);
emit_16(270);
emit_16(206);
emit_16(270);
emit_16(205);
emit_16(270);
emit_16(206);
emit_16(271);
emit_16(207);
emit_16(271);
emit_16(206);
emit_16(271);
emit_16(207);
emit_16(272);
emit_16(208);
emit_16(272);
emit_16(207);
emit_16(272);
emit_16(208);
emit_16(273);
emit_16(209);
emit_16(273);
emit_16(208);
emit_16(273);
emit_16(209);
emit_16(274);
emit_16(210);
emit_16(274);
emit_16(209);
emit_16(274);
emit_16(210);
emit_16(275);
emit_16(211);
emit_16(275);
emit_16(210);
emit_16(275);
emit_16(211);
emit_16(276);
emit_16(212);
emit_16(276);
emit_16(211);
emit_16(276);
emit_16(212);
emit_16(277);
emit_16(213);
emit_16(277);
emit_16(212);
emit_16(277);
emit_16(213);
emit_16(278);
emit_16(214);
emit_16(278);
emit_16(213);
emit_16(278);
emit_16(214);
emit_16(279);
emit_16(215);
emit_16(279);
emit_16(214);
emit_16(279);
emit_16(215);
emit_16(280);
emit_16(216);
emit_16(280);
emit_16(215);
emit_16(280);
emit_16(216);
emit_16(281);
emit_16(217);
emit_16(281);
emit_16(216);
emit_16(281);
emit_16(217);
emit_16(282);
emit_16(218);
emit_16(282);
emit_16(217);
emit_16(282);
emit_16(218);
emit_16(283);
emit_16(219);
emit_16(283);
emit_16(218);
emit_16(283);
emit_16(219);
emit_16(284);
emit_16(220);
emit_16(284);
emit_16(219);
emit_16(284);
emit_16(220);
emit_16(285);
emit_16(221);
emit_16(285);
emit_16(220);
emit_16(285);
emit_16(221);
emit_16(286);
emit_16(222);
emit_16(286);
emit_16(221);
emit_16(286);
emit_16(222);
emit_16(287);
emit_16(223);
emit_16(287);
emit_16(222);
emit_16(287);
emit_16(223);
emit_16(288);
emit_16(224);
emit_16(288);
emit_16(223);
emit_16(288);
emit_16(224);
emit_16(289);
emit_16(225);
emit_16(289);
emit_16(224);
emit_16(289);
emit_16(225);
emit_16(290);
emit_16(226);
emit_16(290);
emit_16(225);
emit_16(290);
emit_16(226);
emit_16(291);
emit_16(227);
emit_16(291);
emit_16(226);
emit_16(291);
emit_16(227);
emit_16(292);
emit_16(228);
emit_16(292);
emit_16(227);
emit_16(292);
emit_16(228);
emit_16(293);
emit_16(229);
emit_16(293);
emit_16(228);
emit_16(293);
emit_16(229);
emit_16(294);
emit_16(230);
emit_16(294);
emit_16(229);
emit_16(294);
emit_16(230);
emit_16(295);
emit_16(231);
emit_16(295);
emit_16(230);
emit_16(295);
emit_16(231);
emit_16(296);
emit_16(232);
emit_16(296);
emit_16(231);
emit_16(296);
emit_16(232);
emit_16(297);
emit_16(233);
emit_16(297);
emit_16(232);
emit_16(297);
emit_16(233);
emit_16(298);
emit_16(234);
emit_16(298);
emit_16(233);
emit_16(298);
emit_16(234);
emit_16(299);
emit_16(235);
emit_16(299);
emit_16(234);
emit_16(299);
emit_16(235);
emit_16(300);
emit_16(236);
emit_16(300);
emit_16(235);
emit_16(300);
emit_16(236);
emit_16(301);
emit_16(237);
emit_16(301);
emit_16(236);
emit_16(301);
emit_16(237);
emit_16(302);
emit_16(238);
emit_16(302);
emit_16(237);
emit_16(302);
emit_16(238);
emit_16(303);
emit_16(239);
emit_16(303);
emit_16(238);
emit_16(303);
emit_16(239);
emit_16(304);
emit_16(240);
emit_16(304);
emit_16(239);
emit_16(304);
emit_16(240);
emit_16(305);
emit_16(241);
emit_16(305);
emit_16(240);
emit_16(305);
emit_16(241);
emit_16(306);
emit_16(242);
emit_16(306);
emit_16(241);
emit_16(306);
emit_16(242);
emit_16(307);
emit_16(243);
emit_16(307);
emit_16(242);
emit_16(307);
emit_16(243);
emit_16(308);
emit_16(244);
emit_16(308);
emit_16(243);
emit_16(308);
emit_16(244);
emit_16(309);
emit_16(245);
emit_16(309);
emit_16(244);
emit_16(309);
emit_16(245);
emit_16(310);
emit_16(246);
emit_16(310);
emit_16(245);
emit_16(310);
emit_16(246);
emit_16(311);
emit_16(247);
emit_16(311);
emit_16(246);
emit_16(311);
emit_16(247);
emit_16(312);
emit_16(248);
emit_16(312);
emit_16(247);
emit_16(312);
emit_16(248);
emit_16(313);
emit_16(249);
emit_16(313);
emit_16(248);
emit_16(313);
emit_16(249);
emit_16(314);
emit_16(250);
emit_16(314);
emit_16(249);
emit_16(314);
emit_16(250);
emit_16(315);
emit_16(251);
emit_16(315);
emit_16(250);
emit_16(315);
emit_16(251);
emit_16(316);
emit_16(252);
emit_16(316);
emit_16(251);
emit_16(316);
emit_16(252);
emit_16(317);
emit_16(253);
emit_16(317);
emit_16(252);
emit_16(317);
emit_16(253);
emit_16(318);
emit_16(254);
emit_16(318);
emit_16(253);
emit_16(318);
emit_16(254);
emit_16(319);
emit_16(255);
emit_16(319);
emit_16(254);
emit_16(320);
emit_16(256);
emit_16(321);
emit_16(257);
emit_16(321);
emit_16(256);
emit_16(321);
emit_16(257);
emit_16(322);
emit_16(258);
emit_16(322);
emit_16(257);
emit_16(322);
emit_16(258);
emit_16(323);
emit_16(259);
emit_16(323);
emit_16(258);
emit_16(323);
emit_16(259);
emit_16(324);
emit_16(260);
emit_16(324);
emit_16(259);
emit_16(324);
emit_16(260);
emit_16(325);
emit_16(261);
emit_16(325);
emit_16(260);
emit_16(325);
emit_16(261);
emit_16(326);
emit_16(262);
emit_16(326);
emit_16(261);
emit_16(326);
emit_16(262);
emit_16(327);
emit_16(263);
emit_16(327);
emit_16(262);
emit_16(327);
emit_16(263);
emit_16(328);
emit_16(264);
emit_16(328);
emit_16(263);
emit_16(328);
emit_16(264);
emit_16(329);
emit_16(265);
emit_16(329);
emit_16(264);
emit_16(329);
emit_16(265);
emit_16(330);
emit_16(266);
emit_16(330);
emit_16(265);
emit_16(330);
emit_16(266);
emit_16(331);
emit_16(267);
emit_16(331);
emit_16(266);
emit_16(331);
emit_16(267);
emit_16(332);
emit_16(268);
emit_16(332);
emit_16(267);
emit_16(332);
emit_16(268);
emit_16(333);
emit_16(269);
emit_16(333);
emit_16(268);
emit_16(333);
emit_16(269);
emit_16(334);
emit_16(270);
emit_16(334);
emit_16(269);
emit_16(334);
emit_16(270);
emit_16(335);
emit_16(271);
emit_16(335);
emit_16(270);
emit_16(335);
emit_16(271);
emit_16(336);
emit_16(272);
emit_16(336);
emit_16(271);
emit_16(336);
emit_16(272);
emit_16(337);
emit_16(273);
emit_16(337);
emit_16(272);
emit_16(337);
emit_16(273);
emit_16(338);
emit_16(274);
emit_16(338);
emit_16(273);
emit_16(338);
emit_16(274);
emit_16(339);
emit_16(275);
emit_16(339);
emit_16(274);
emit_16(339);
emit_16(275);
emit_16(340);
emit_16(276);
emit_16(340);
emit_16(275);
emit_16(340);
emit_16(276);
emit_16(341);
emit_16(277);
emit_16(341);
emit_16(276);
emit_16(341);
emit_16(277);
emit_16(342);
emit_16(278);
emit_16(342);
emit_16(277);
emit_16(342);
emit_16(278);
emit_16(343);
emit_16(279);
emit_16(343);
emit_16(278);
emit_16(343);
emit_16(279);
emit_16(344);
emit_16(280);
emit_16(344);
emit_16(279);
emit_16(344);
emit_16(280);
emit_16(345);
emit_16(281);
emit_16(345);
emit_16(280);
emit_16(345);
emit_16(281);
emit_16(346);
emit_16(282);
emit_16(346);
emit_16(281);
emit_16(346);
emit_16(282);
emit_16(347);
emit_16(283);
emit_16(347);
emit_16(282);
emit_16(347);
emit_16(283);
emit_16(348);
emit_16(284);
emit_16(348);
emit_16(283);
emit_16(348);
emit_16(284);
emit_16(349);
emit_16(285);
emit_16(349);
emit_16(284);
emit_16(349);
emit_16(285);
emit_16(350);
emit_16(286);
emit_16(350);
emit_16(285);
emit_16(350);
emit_16(286);
emit_16(351);
emit_16(287);
emit_16(351);
emit_16(286);
emit_16(351);
emit_16(287);
emit_16(352);
emit_16(288);
emit_16(352);
emit_16(287);
emit_16(352);
emit_16(288);
emit_16(353);
emit_16(289);
emit_16(353);
emit_16(288);
emit_16(353);
emit_16(289);
emit_16(354);
emit_16(290);
emit_16(354);
emit_16(289);
emit_16(354);
emit_16(290);
emit_16(355);
emit_16(291);
emit_16(355);
emit_16(290);
emit_16(355);
emit_16(291);
emit_16(356);
emit_16(292);
emit_16(356);
emit_16(291);
emit_16(356);
emit_16(292);
emit_16(357);
emit_16(293);
emit_16(357);
emit_16(292);
emit_16(357);
emit_16(293);
emit_16(358);
emit_16(294);
emit_16(358);
emit_16(293);
emit_16(358);
emit_16(294);
emit_16(359);
emit_16(295);
emit_16(359);
emit_16(294);
emit_16(359);
emit_16(295);
emit_16(360);
emit_16(296);
emit_16(360);
emit_16(295);
emit_16(360);
emit_16(296);
emit_16(361);
emit_16(297);
emit_16(361);
emit_16(296);
emit_16(361);
emit_16(297);
emit_16(362);
emit_16(298);
emit_16(362);
emit_16(297);
emit_16(362);
emit_16(298);
emit_16(363);
emit_16(299);
emit_16(363);
emit_16(298);
emit_16(363);
emit_16(299);
emit_16(364);
emit_16(300);
emit_16(364);
emit_16(299);
emit_16(364);
emit_16(300);
emit_16(365);
emit_16(301);
emit_16(365);
emit_16(300);
emit_16(365);
emit_16(301);
emit_16(366);
emit_16(302);
emit_16(366);
emit_16(301);
emit_16(366);
emit_16(302);
emit_16(367);
emit_16(303);
emit_16(367);
emit_16(302);
emit_16(367);
emit_16(303);
emit_16(368);
emit_16(304);
emit_16(368);
emit_16(303);
emit_16(368);
emit_16(304);
emit_16(369);
emit_16(305);
emit_16(369);
emit_16(304);
emit_16(369);
emit_16(305);
emit_16(370);
emit_16(306);
emit_16(370);
emit_16(305);
emit_16(370);
emit_16(306);
emit_16(371);
emit_16(307);
emit_16(371);
emit_16(306);
emit_16(371);
emit_16(307);
emit_16(372);
emit_16(308);
emit_16(372);
emit_16(307);
emit_16(372);
emit_16(308);
emit_16(373);
emit_16(309);
emit_16(373);
emit_16(308);
emit_16(373);
emit_16(309);
emit_16(374);
emit_16(310);
emit_16(374);
emit_16(309);
emit_16(374);
emit_16(310);
emit_16(375);
emit_16(311);
emit_16(375);
emit_16(310);
emit_16(375);
emit_16(311);
emit_16(376);
emit_16(312);
emit_16(376);
emit_16(311);
emit_16(376);
emit_16(312);
emit_16(377);
emit_16(313);
emit_16(377);
emit_16(312);
emit_16(377);
emit_16(313);
emit_16(378);
emit_16(314);
emit_16(378);
emit_16(313);
emit_16(378);
emit_16(314);
emit_16(379);
emit_16(315);
emit_16(379);
emit_16(314);
emit_16(379);
emit_16(315);
emit_16(380);
emit_16(316);
emit_16(380);
emit_16(315);
emit_16(380);
emit_16(316);
emit_16(381);
emit_16(317);
emit_16(381);
emit_16(316);
emit_16(381);
emit_16(317);
emit_16(382);
emit_16(318);
emit_16(382);
emit_16(317);
emit_16(382);
emit_16(318);
emit_16(383);
emit_16(319);
emit_16(383);
emit_16(318);
emit_16(384);
emit_16(320);
emit_16(385);
emit_16(321);
emit_16(385);
emit_16(320);
emit_16(385);
emit_16(321);
emit_16(386);
emit_16(322);
emit_16(386);
emit_16(321);
emit_16(386);
emit_16(322);
emit_16(387);
emit_16(323);
emit_16(387);
emit_16(322);
emit_16(387);
emit_16(323);
emit_16(388);
emit_16(324);
emit_16(388);
emit_16(323);
emit_16(388);
emit_16(324);
emit_16(389);
emit_16(325);
emit_16(389);
emit_16(324);
emit_16(389);
emit_16(325);
emit_16(390);
emit_16(326);
emit_16(390);
emit_16(325);
emit_16(390);
emit_16(326);
emit_16(391);
emit_16(327);
emit_16(391);
emit_16(326);
emit_16(391);
emit_16(327);
emit_16(392);
emit_16(328);
emit_16(392);
emit_16(327);
emit_16(392);
emit_16(328);
emit_16(393);
emit_16(329);
emit_16(393);
emit_16(328);
emit_16(393);
emit_16(329);
emit_16(394);
emit_16(330);
emit_16(394);
emit_16(329);
emit_16(394);
emit_16(330);
emit_16(395);
emit_16(331);
emit_16(395);
emit_16(330);
emit_16(395);
emit_16(331);
emit_16(396);
emit_16(332);
emit_16(396);
emit_16(331);
emit_16(396);
emit_16(332);
emit_16(397);
emit_16(333);
emit_16(397);
emit_16(332);
emit_16(397);
emit_16(333);
emit_16(398);
emit_16(334);
emit_16(398);
emit_16(333);
emit_16(398);
emit_16(334);
emit_16(399);
emit_16(335);
emit_16(399);
emit_16(334);
emit_16(399);
emit_16(335);
emit_16(400);
emit_16(336);
emit_16(400);
emit_16(335);
emit_16(400);
emit_16(336);
emit_16(401);
emit_16(337);
emit_16(401);
emit_16(336);
emit_16(401);
emit_16(337);
emit_16(402);
emit_16(338);
emit_16(402);
emit_16(337);
emit_16(402);
emit_16(338);
emit_16(403);
emit_16(339);
emit_16(403);
emit_16(338);
emit_16(403);
emit_16(339);
emit_16(404);
emit_16(340);
emit_16(404);
emit_16(339);
emit_16(404);
emit_16(340);
emit_16(405);
emit_16(341);
emit_16(405);
emit_16(340);
emit_16(405);
emit_16(341);
emit_16(406);
emit_16(342);
emit_16(406);
emit_16(341);
emit_16(406);
emit_16(342);
emit_16(407);
emit_16(343);
emit_16(407);
emit_16(342);
emit_16(407);
emit_16(343);
emit_16(408);
emit_16(344);
emit_16(408);
emit_16(343);
emit_16(408);
emit_16(344);
emit_16(409);
emit_16(345);
emit_16(409);
emit_16(344);
emit_16(409);
emit_16(345);
emit_16(410);
emit_16(346);
emit_16(410);
emit_16(345);
emit_16(410);
emit_16(346);
emit_16(411);
emit_16(347);
emit_16(411);
emit_16(346);
emit_16(411);
emit_16(347);
emit_16(412);
emit_16(348);
emit_16(412);
emit_16(347);
emit_16(412);
emit_16(348);
emit_16(413);
emit_16(349);
emit_16(413);
emit_16(348);
emit_16(413);
emit_16(349);
emit_16(414);
emit_16(350);
emit_16(414);
emit_16(349);
emit_16(414);
emit_16(350);
emit_16(415);
emit_16(351);
emit_16(415);
emit_16(350);
emit_16(415);
emit_16(351);
emit_16(416);
emit_16(352);
emit_16(416);
emit_16(351);
emit_16(416);
emit_16(352);
emit_16(417);
emit_16(353);
emit_16(417);
emit_16(352);
emit_16(417);
emit_16(353);
emit_16(418);
emit_16(354);
emit_16(418);
emit_16(353);
emit_16(418);
emit_16(354);
emit_16(419);
emit_16(355);
emit_16(419);
emit_16(354);
emit_16(419);
emit_16(355);
emit_16(420);
emit_16(356);
emit_16(420);
emit_16(355);
emit_16(420);
emit_16(356);
emit_16(421);
emit_16(357);
emit_16(421);
emit_16(356);
emit_16(421);
emit_16(357);
emit_16(422);
emit_16(358);
emit_16(422);
emit_16(357);
emit_16(422);
emit_16(358);
emit_16(423);
emit_16(359);
emit_16(423);
emit_16(358);
emit_16(423);
emit_16(359);
emit_16(424);
emit_16(360);
emit_16(424);
emit_16(359);
emit_16(424);
emit_16(360);
emit_16(425);
emit_16(361);
emit_16(425);
emit_16(360);
emit_16(425);
emit_16(361);
emit_16(426);
emit_16(362);
emit_16(426);
emit_16(361);
emit_16(426);
emit_16(362);
emit_16(427);
emit_16(363);
emit_16(427);
emit_16(362);
emit_16(427);
emit_16(363);
emit_16(428);
emit_16(364);
emit_16(428);
emit_16(363);
emit_16(428);
emit_16(364);
emit_16(429);
emit_16(365);
emit_16(429);
emit_16(364);
emit_16(429);
emit_16(365);
emit_16(430);
emit_16(366);
emit_16(430);
emit_16(365);
emit_16(430);
emit_16(366);
emit_16(431);
emit_16(367);
emit_16(431);
emit_16(366);
emit_16(431);
emit_16(367);
emit_16(432);
emit_16(368);
emit_16(432);
emit_16(367);
emit_16(432);
emit_16(368);
emit_16(433);
emit_16(369);
emit_16(433);
emit_16(368);
emit_16(433);
emit_16(369);
emit_16(434);
emit_16(370);
emit_16(434);
emit_16(369);
emit_16(434);
emit_16(370);
emit_16(435);
emit_16(371);
emit_16(435);
emit_16(370);
emit_16(435);
emit_16(371);
emit_16(436);
emit_16(372);
emit_16(436);
emit_16(371);
emit_16(436);
emit_16(372);
emit_16(437);
emit_16(373);
emit_16(437);
emit_16(372);
emit_16(437);
emit_16(373);
emit_16(438);
emit_16(374);
emit_16(438);
emit_16(373);
emit_16(438);
emit_16(374);
emit_16(439);
emit_16(375);
emit_16(439);
emit_16(374);
emit_16(439);
emit_16(375);
emit_16(440);
emit_16(376);
emit_16(440);
emit_16(375);
emit_16(440);
emit_16(376);
emit_16(441);
emit_16(377);
emit_16(441);
emit_16(376);
emit_16(441);
emit_16(377);
emit_16(442);
emit_16(378);
emit_16(442);
emit_16(377);
emit_16(442);
emit_16(378);
emit_16(443);
emit_16(379);
emit_16(443);
emit_16(378);
emit_16(443);
emit_16(379);
emit_16(444);
emit_16(380);
emit_16(444);
emit_16(379);
emit_16(444);
emit_16(380);
emit_16(445);
emit_16(381);
emit_16(445);
emit_16(380);
emit_16(445);
emit_16(381);
emit_16(446);
emit_16(382);
emit_16(446);
emit_16(381);
emit_16(446);
emit_16(382);
emit_16(447);
emit_16(383);
emit_16(447);
emit_16(382);
emit_16(448);
emit_16(384);
emit_16(449);
emit_16(385);
emit_16(449);
emit_16(384);
emit_16(449);
emit_16(385);
emit_16(450);
emit_16(386);
emit_16(450);
emit_16(385);
emit_16(450);
emit_16(386);
emit_16(451);
emit_16(387);
emit_16(451);
emit_16(386);
emit_16(451);
emit_16(387);
emit_16(452);
emit_16(388);
emit_16(452);
emit_16(387);
emit_16(452);
emit_16(388);
emit_16(453);
emit_16(389);
emit_16(453);
emit_16(388);
emit_16(453);
emit_16(389);
emit_16(454);
emit_16(390);
emit_16(454);
emit_16(389);
emit_16(454);
emit_16(390);
emit_16(455);
emit_16(391);
emit_16(455);
emit_16(390);
emit_16(455);
emit_16(391);
emit_16(456);
emit_16(392);
emit_16(456);
emit_16(391);
emit_16(456);
emit_16(392);
emit_16(457);
emit_16(393);
emit_16(457);
emit_16(392);
emit_16(457);
emit_16(393);
emit_16(458);
emit_16(394);
emit_16(458);
emit_16(393);
emit_16(458);
emit_16(394);
emit_16(459);
emit_16(395);
emit_16(459);
emit_16(394);
emit_16(459);
emit_16(395);
emit_16(460);
emit_16(396);
emit_16(460);
emit_16(395);
emit_16(460);
emit_16(396);
emit_16(461);
emit_16(397);
emit_16(461);
emit_16(396);
emit_16(461);
emit_16(397);
emit_16(462);
emit_16(398);
emit_16(462);
emit_16(397);
emit_16(462);
emit_16(398);
emit_16(463);
emit_16(399);
emit_16(463);
emit_16(398);
emit_16(463);
emit_16(399);
emit_16(464);
emit_16(400);
emit_16(464);
emit_16(399);
emit_16(464);
emit_16(400);
emit_16(465);
emit_16(401);
emit_16(465);
emit_16(400);
emit_16(465);
emit_16(401);
emit_16(466);
emit_16(402);
emit_16(466);
emit_16(401);
emit_16(466);
emit_16(402);
emit_16(467);
emit_16(403);
emit_16(467);
emit_16(402);
emit_16(467);
emit_16(403);
emit_16(468);
emit_16(404);
emit_16(468);
emit_16(403);
emit_16(468);
emit_16(404);
emit_16(469);
emit_16(405);
emit_16(469);
emit_16(404);
emit_16(469);
emit_16(405);
emit_16(470);
emit_16(406);
emit_16(470);
emit_16(405);
emit_16(470);
emit_16(406);
emit_16(471);
emit_16(407);
emit_16(471);
emit_16(406);
emit_16(471);
emit_16(407);
emit_16(472);
emit_16(408);
emit_16(472);
emit_16(407);
emit_16(472);
emit_16(408);
emit_16(473);
emit_16(409);
emit_16(473);
emit_16(408);
emit_16(473);
emit_16(409);
emit_16(474);
emit_16(410);
emit_16(474);
emit_16(409);
emit_16(474);
emit_16(410);
emit_16(475);
emit_16(411);
emit_16(475);
emit_16(410);
emit_16(475);
emit_16(411);
emit_16(476);
emit_16(412);
emit_16(476);
emit_16(411);
emit_16(476);
emit_16(412);
emit_16(477);
emit_16(413);
emit_16(477);
emit_16(412);
emit_16(477);
emit_16(413);
emit_16(478);
emit_16(414);
emit_16(478);
emit_16(413);
emit_16(478);
emit_16(414);
emit_16(479);
emit_16(415);
emit_16(479);
emit_16(414);
emit_16(479);
emit_16(415);
emit_16(480);
emit_16(416);
emit_16(480);
emit_16(415);
emit_16(480);
emit_16(416);
emit_16(481);
emit_16(417);
emit_16(481);
emit_16(416);
emit_16(481);
emit_16(417);
emit_16(482);
emit_16(418);
emit_16(482);
emit_16(417);
emit_16(482);
emit_16(418);
emit_16(483);
emit_16(419);
emit_16(483);
emit_16(418);
emit_16(483);
emit_16(419);
emit_16(484);
emit_16(420);
emit_16(484);
emit_16(419);
emit_16(484);
emit_16(420);
emit_16(485);
emit_16(421);
emit_16(485);
emit_16(420);
emit_16(485);
emit_16(421);
emit_16(486);
emit_16(422);
emit_16(486);
emit_16(421);
emit_16(486);
emit_16(422);
emit_16(487);
emit_16(423);
emit_16(487);
emit_16(422);
emit_16(487);
emit_16(423);
emit_16(488);
emit_16(424);
emit_16(488);
emit_16(423);
emit_16(488);
emit_16(424);
emit_16(489);
emit_16(425);
emit_16(489);
emit_16(424);
emit_16(489);
emit_16(425);
emit_16(490);
emit_16(426);
emit_16(490);
emit_16(425);
emit_16(490);
emit_16(426);
emit_16(491);
emit_16(427);
emit_16(491);
emit_16(426);
emit_16(491);
emit_16(427);
emit_16(492);
emit_16(428);
emit_16(492);
emit_16(427);
emit_16(492);
emit_16(428);
emit_16(493);
emit_16(429);
emit_16(493);
emit_16(428);
emit_16(493);
emit_16(429);
emit_16(494);
emit_16(430);
emit_16(494);
emit_16(429);
emit_16(494);
emit_16(430);
emit_16(495);
emit_16(431);
emit_16(495);
emit_16(430);
emit_16(495);
emit_16(431);
emit_16(496);
emit_16(432);
emit_16(496);
emit_16(431);
emit_16(496);
emit_16(432);
emit_16(497);
emit_16(433);
emit_16(497);
emit_16(432);
emit_16(497);
emit_16(433);
emit_16(498);
emit_16(434);
emit_16(498);
emit_16(433);
emit_16(498);
emit_16(434);
emit_16(499);
emit_16(435);
emit_16(499);
emit_16(434);
emit_16(499);
emit_16(435);
emit_16(500);
emit_16(436);
emit_16(500);
emit_16(435);
emit_16(500);
emit_16(436);
emit_16(501);
emit_16(437);
emit_16(501);
emit_16(436);
emit_16(501);
emit_16(437);
emit_16(502);
emit_16(438);
emit_16(502);
emit_16(437);
emit_16(502);
emit_16(438);
emit_16(503);
emit_16(439);
emit_16(503);
emit_16(438);
emit_16(503);
emit_16(439);
emit_16(504);
emit_16(440);
emit_16(504);
emit_16(439);
emit_16(504);
emit_16(440);
emit_16(505);
emit_16(441);
emit_16(505);
emit_16(440);
emit_16(505);
emit_16(441);
emit_16(506);
emit_16(442);
emit_16(506);
emit_16(441);
emit_16(506);
emit_16(442);
emit_16(507);
emit_16(443);
emit_16(507);
emit_16(442);
emit_16(507);
emit_16(443);
emit_16(508);
emit_16(444);
emit_16(508);
emit_16(443);
emit_16(508);
emit_16(444);
emit_16(509);
emit_16(445);
emit_16(509);
emit_16(444);
emit_16(509);
emit_16(445);
emit_16(510);
emit_16(446);
emit_16(510);
emit_16(445);
emit_16(510);
emit_16(446);
emit_16(511);
emit_16(447);
emit_16(511);
emit_16(446);
emit_16(512);
emit_16(448);
emit_16(513);
emit_16(449);
emit_16(513);
emit_16(448);
emit_16(513);
emit_16(449);
emit_16(514);
emit_16(450);
emit_16(514);
emit_16(449);
emit_16(514);
emit_16(450);
emit_16(515);
emit_16(451);
emit_16(515);
emit_16(450);
emit_16(515);
emit_16(451);
emit_16(516);
emit_16(452);
emit_16(516);
emit_16(451);
emit_16(516);
emit_16(452);
emit_16(517);
emit_16(453);
emit_16(517);
emit_16(452);
emit_16(517);
emit_16(453);
emit_16(518);
emit_16(454);
emit_16(518);
emit_16(453);
emit_16(518);
emit_16(454);
emit_16(519);
emit_16(455);
emit_16(519);
emit_16(454);
emit_16(519);
emit_16(455);
emit_16(520);
emit_16(456);
emit_16(520);
emit_16(455);
emit_16(520);
emit_16(456);
emit_16(521);
emit_16(457);
emit_16(521);
emit_16(456);
emit_16(521);
emit_16(457);
emit_16(522);
emit_16(458);
emit_16(522);
emit_16(457);
emit_16(522);
emit_16(458);
emit_16(523);
emit_16(459);
emit_16(523);
emit_16(458);
emit_16(523);
emit_16(459);
emit_16(524);
emit_16(460);
emit_16(524);
emit_16(459);
emit_16(524);
emit_16(460);
emit_16(525);
emit_16(461);
emit_16(525);
emit_16(460);
emit_16(525);
emit_16(461);
emit_16(526);
emit_16(462);
emit_16(526);
emit_16(461);
emit_16(526);
emit_16(462);
emit_16(527);
emit_16(463);
emit_16(527);
emit_16(462);
emit_16(527);
emit_16(463);
emit_16(528);
emit_16(464);
emit_16(528);
emit_16(463);
emit_16(528);
emit_16(464);
emit_16(529);
emit_16(465);
emit_16(529);
emit_16(464);
emit_16(529);
emit_16(465);
emit_16(530);
emit_16(466);
emit_16(530);
emit_16(465);
emit_16(530);
emit_16(466);
emit_16(531);
emit_16(467);
emit_16(531);
emit_16(466);
emit_16(531);
emit_16(467);
emit_16(532);
emit_16(468);
emit_16(532);
emit_16(467);
emit_16(532);
emit_16(468);
emit_16(533);
emit_16(469);
emit_16(533);
emit_16(468);
emit_16(533);
emit_16(469);
emit_16(534);
emit_16(470);
emit_16(534);
emit_16(469);
emit_16(534);
emit_16(470);
emit_16(535);
emit_16(471);
emit_16(535);
emit_16(470);
emit_16(535);
emit_16(471);
emit_16(536);
emit_16(472);
emit_16(536);
emit_16(471);
emit_16(536);
emit_16(472);
emit_16(537);
emit_16(473);
emit_16(537);
emit_16(472);
emit_16(537);
emit_16(473);
emit_16(538);
emit_16(474);
emit_16(538);
emit_16(473);
emit_16(538);
emit_16(474);
emit_16(539);
emit_16(475);
emit_16(539);
emit_16(474);
emit_16(539);
emit_16(475);
emit_16(540);
emit_16(476);
emit_16(540);
emit_16(475);
emit_16(540);
emit_16(476);
emit_16(541);
emit_16(477);
emit_16(541);
emit_16(476);
emit_16(541);
emit_16(477);
emit_16(542);
emit_16(478);
emit_16(542);
emit_16(477);
emit_16(542);
emit_16(478);
emit_16(543);
emit_16(479);
emit_16(543);
emit_16(478);
emit_16(543);
emit_16(479);
emit_16(544);
emit_16(480);
emit_16(544);
emit_16(479);
emit_16(544);
emit_16(480);
emit_16(545);
emit_16(481);
emit_16(545);
emit_16(480);
emit_16(545);
emit_16(481);
emit_16(546);
emit_16(482);
emit_16(546);
emit_16(481);
emit_16(546);
emit_16(482);
emit_16(547);
emit_16(483);
emit_16(547);
emit_16(482);
emit_16(547);
emit_16(483);
emit_16(548);
emit_16(484);
emit_16(548);
emit_16(483);
emit_16(548);
emit_16(484);
emit_16(549);
emit_16(485);
emit_16(549);
emit_16(484);
emit_16(549);
emit_16(485);
emit_16(550);
emit_16(486);
emit_16(550);
emit_16(485);
emit_16(550);
emit_16(486);
emit_16(551);
emit_16(487);
emit_16(551);
emit_16(486);
emit_16(551);
emit_16(487);
emit_16(552);
emit_16(488);
emit_16(552);
emit_16(487);
emit_16(552);
emit_16(488);
emit_16(553);
emit_16(489);
emit_16(553);
emit_16(488);
emit_16(553);
emit_16(489);
emit_16(554);
emit_16(490);
emit_16(554);
emit_16(489);
emit_16(554);
emit_16(490);
emit_16(555);
emit_16(491);
emit_16(555);
emit_16(490);
emit_16(555);
emit_16(491);
emit_16(556);
emit_16(492);
emit_16(556);
emit_16(491);
emit_16(556);
emit_16(492);
emit_16(557);
emit_16(493);
emit_16(557);
emit_16(492);
emit_16(557);
emit_16(493);
emit_16(558);
emit_16(494);
emit_16(558);
emit_16(493);
emit_16(558);
emit_16(494);
emit_16(559);
emit_16(495);
emit_16(559);
emit_16(494);
emit_16(559);
emit_16(495);
emit_16(560);
emit_16(496);
emit_16(560);
emit_16(495);
emit_16(560);
emit_16(496);
emit_16(561);
emit_16(497);
emit_16(561);
emit_16(496);
emit_16(561);
emit_16(497);
emit_16(562);
emit_16(498);
emit_16(562);
emit_16(497);
emit_16(562);
emit_16(498);
emit_16(563);
emit_16(499);
emit_16(563);
emit_16(498);
emit_16(563);
emit_16(499);
emit_16(564);
emit_16(500);
emit_16(564);
emit_16(499);
emit_16(564);
emit_16(500);
emit_16(565);
emit_16(501);
emit_16(565);
emit_16(500);
emit_16(565);
emit_16(501);
emit_16(566);
emit_16(502);
emit_16(566);
emit_16(501);
emit_16(566);
emit_16(502);
emit_16(567);
emit_16(503);
emit_16(567);
emit_16(502);
emit_16(567);
emit_16(503);
emit_16(568);
emit_16(504);
emit_16(568);
emit_16(503);
emit_16(568);
emit_16(504);
emit_16(569);
emit_16(505);
emit_16(569);
emit_16(504);
emit_16(569);
emit_16(505);
emit_16(570);
emit_16(506);
emit_16(570);
emit_16(505);
emit_16(570);
emit_16(506);
emit_16(571);
emit_16(507);
emit_16(571);
emit_16(506);
emit_16(571);
emit_16(507);
emit_16(572);
emit_16(508);
emit_16(572);
emit_16(507);
emit_16(572);
emit_16(508);
emit_16(573);
emit_16(509);
emit_16(573);
emit_16(508);
emit_16(573);
emit_16(509);
emit_16(574);
emit_16(510);
emit_16(574);
emit_16(509);
emit_16(574);
emit_16(510);
emit_16(575);
emit_16(511);
emit_16(575);
emit_16(510);
emit_16(576);
emit_16(512);
emit_16(577);
emit_16(513);
emit_16(577);
emit_16(512);
emit_16(577);
emit_16(513);
emit_16(578);
emit_16(514);
emit_16(578);
emit_16(513);
emit_16(578);
emit_16(514);
emit_16(579);
emit_16(515);
emit_16(579);
emit_16(514);
emit_16(579);
emit_16(515);
emit_16(580);
emit_16(516);
emit_16(580);
emit_16(515);
emit_16(580);
emit_16(516);
emit_16(581);
emit_16(517);
emit_16(581);
emit_16(516);
emit_16(581);
emit_16(517);
emit_16(582);
emit_16(518);
emit_16(582);
emit_16(517);
emit_16(582);
emit_16(518);
emit_16(583);
emit_16(519);
emit_16(583);
emit_16(518);
emit_16(583);
emit_16(519);
emit_16(584);
emit_16(520);
emit_16(584);
emit_16(519);
emit_16(584);
emit_16(520);
emit_16(585);
emit_16(521);
emit_16(585);
emit_16(520);
emit_16(585);
emit_16(521);
emit_16(586);
emit_16(522);
emit_16(586);
emit_16(521);
emit_16(586);
emit_16(522);
emit_16(587);
emit_16(523);
emit_16(587);
emit_16(522);
emit_16(587);
emit_16(523);
emit_16(588);
emit_16(524);
emit_16(588);
emit_16(523);
emit_16(588);
emit_16(524);
emit_16(589);
emit_16(525);
emit_16(589);
emit_16(524);
emit_16(589);
emit_16(525);
emit_16(590);
emit_16(526);
emit_16(590);
emit_16(525);
emit_16(590);
emit_16(526);
emit_16(591);
emit_16(527);
emit_16(591);
emit_16(526);
emit_16(591);
emit_16(527);
emit_16(592);
emit_16(528);
emit_16(592);
emit_16(527);
emit_16(592);
emit_16(528);
emit_16(593);
emit_16(529);
emit_16(593);
emit_16(528);
emit_16(593);
emit_16(529);
emit_16(594);
emit_16(530);
emit_16(594);
emit_16(529);
emit_16(594);
emit_16(530);
emit_16(595);
emit_16(531);
emit_16(595);
emit_16(530);
emit_16(595);
emit_16(531);
emit_16(596);
emit_16(532);
emit_16(596);
emit_16(531);
emit_16(596);
emit_16(532);
emit_16(597);
emit_16(533);
emit_16(597);
emit_16(532);
emit_16(597);
emit_16(533);
emit_16(598);
emit_16(534);
emit_16(598);
emit_16(533);
emit_16(598);
emit_16(534);
emit_16(599);
emit_16(535);
emit_16(599);
emit_16(534);
emit_16(599);
emit_16(535);
emit_16(600);
emit_16(536);
emit_16(600);
emit_16(535);
emit_16(600);
emit_16(536);
emit_16(601);
emit_16(537);
emit_16(601);
emit_16(536);
emit_16(601);
emit_16(537);
emit_16(602);
emit_16(538);
emit_16(602);
emit_16(537);
emit_16(602);
emit_16(538);
emit_16(603);
emit_16(539);
emit_16(603);
emit_16(538);
emit_16(603);
emit_16(539);
emit_16(604);
emit_16(540);
emit_16(604);
emit_16(539);
emit_16(604);
emit_16(540);
emit_16(605);
emit_16(541);
emit_16(605);
emit_16(540);
emit_16(605);
emit_16(541);
emit_16(606);
emit_16(542);
emit_16(606);
emit_16(541);
emit_16(606);
emit_16(542);
emit_16(607);
emit_16(543);
emit_16(607);
emit_16(542);
emit_16(607);
emit_16(543);
emit_16(608);
emit_16(544);
emit_16(608);
emit_16(543);
emit_16(608);
emit_16(544);
emit_16(609);
emit_16(545);
emit_16(609);
emit_16(544);
emit_16(609);
emit_16(545);
emit_16(610);
emit_16(546);
emit_16(610);
emit_16(545);
emit_16(610);
emit_16(546);
emit_16(611);
emit_16(547);
emit_16(611);
emit_16(546);
emit_16(611);
emit_16(547);
emit_16(612);
emit_16(548);
emit_16(612);
emit_16(547);
emit_16(612);
emit_16(548);
emit_16(613);
emit_16(549);
emit_16(613);
emit_16(548);
emit_16(613);
emit_16(549);
emit_16(614);
emit_16(550);
emit_16(614);
emit_16(549);
emit_16(614);
emit_16(550);
emit_16(615);
emit_16(551);
emit_16(615);
emit_16(550);
emit_16(615);
emit_16(551);
emit_16(616);
emit_16(552);
emit_16(616);
emit_16(551);
emit_16(616);
emit_16(552);
emit_16(617);
emit_16(553);
emit_16(617);
emit_16(552);
emit_16(617);
emit_16(553);
emit_16(618);
emit_16(554);
emit_16(618);
emit_16(553);
emit_16(618);
emit_16(554);
emit_16(619);
emit_16(555);
emit_16(619);
emit_16(554);
emit_16(619);
emit_16(555);
emit_16(620);
emit_16(556);
emit_16(620);
emit_16(555);
emit_16(620);
emit_16(556);
emit_16(621);
emit_16(557);
emit_16(621);
emit_16(556);
emit_16(621);
emit_16(557);
emit_16(622);
emit_16(558);
emit_16(622);
emit_16(557);
emit_16(622);
emit_16(558);
emit_16(623);
emit_16(559);
emit_16(623);
emit_16(558);
emit_16(623);
emit_16(559);
emit_16(624);
emit_16(560);
emit_16(624);
emit_16(559);
emit_16(624);
emit_16(560);
emit_16(625);
emit_16(561);
emit_16(625);
emit_16(560);
emit_16(625);
emit_16(561);
emit_16(626);
emit_16(562);
emit_16(626);
emit_16(561);
emit_16(626);
emit_16(562);
emit_16(627);
emit_16(563);
emit_16(627);
emit_16(562);
emit_16(627);
emit_16(563);
emit_16(628);
emit_16(564);
emit_16(628);
emit_16(563);
emit_16(628);
emit_16(564);
emit_16(629);
emit_16(565);
emit_16(629);
emit_16(564);
emit_16(629);
emit_16(565);
emit_16(630);
emit_16(566);
emit_16(630);
emit_16(565);
emit_16(630);
emit_16(566);
emit_16(631);
emit_16(567);
emit_16(631);
emit_16(566);
emit_16(631);
emit_16(567);
emit_16(632);
emit_16(568);
emit_16(632);
emit_16(567);
emit_16(632);
emit_16(568);
emit_16(633);
emit_16(569);
emit_16(633);
emit_16(568);
emit_16(633);
emit_16(569);
emit_16(634);
emit_16(570);
emit_16(634);
emit_16(569);
emit_16(634);
emit_16(570);
emit_16(635);
emit_16(571);
emit_16(635);
emit_16(570);
emit_16(635);
emit_16(571);
emit_16(636);
emit_16(572);
emit_16(636);
emit_16(571);
emit_16(636);
emit_16(572);
emit_16(637);
emit_16(573);
emit_16(637);
emit_16(572);
emit_16(637);
emit_16(573);
emit_16(638);
emit_16(574);
emit_16(638);
emit_16(573);
emit_16(638);
emit_16(574);
emit_16(639);
emit_16(575);
emit_16(639);
emit_16(574);
emit_16(640);
emit_16(576);
emit_16(641);
emit_16(577);
emit_16(641);
emit_16(576);
emit_16(641);
emit_16(577);
emit_16(642);
emit_16(578);
emit_16(642);
emit_16(577);
emit_16(642);
emit_16(578);
emit_16(643);
emit_16(579);
emit_16(643);
emit_16(578);
emit_16(643);
emit_16(579);
emit_16(644);
emit_16(580);
emit_16(644);
emit_16(579);
emit_16(644);
emit_16(580);
emit_16(645);
emit_16(581);
emit_16(645);
emit_16(580);
emit_16(645);
emit_16(581);
emit_16(646);
emit_16(582);
emit_16(646);
emit_16(581);
emit_16(646);
emit_16(582);
emit_16(647);
emit_16(583);
emit_16(647);
emit_16(582);
emit_16(647);
emit_16(583);
emit_16(648);
emit_16(584);
emit_16(648);
emit_16(583);
emit_16(648);
emit_16(584);
emit_16(649);
emit_16(585);
emit_16(649);
emit_16(584);
emit_16(649);
emit_16(585);
emit_16(650);
emit_16(586);
emit_16(650);
emit_16(585);
emit_16(650);
emit_16(586);
emit_16(651);
emit_16(587);
emit_16(651);
emit_16(586);
emit_16(651);
emit_16(587);
emit_16(652);
emit_16(588);
emit_16(652);
emit_16(587);
emit_16(652);
emit_16(588);
emit_16(653);
emit_16(589);
emit_16(653);
emit_16(588);
emit_16(653);
emit_16(589);
emit_16(654);
emit_16(590);
emit_16(654);
emit_16(589);
emit_16(654);
emit_16(590);
emit_16(655);
emit_16(591);
emit_16(655);
emit_16(590);
emit_16(655);
emit_16(591);
emit_16(656);
emit_16(592);
emit_16(656);
emit_16(591);
emit_16(656);
emit_16(592);
emit_16(657);
emit_16(593);
emit_16(657);
emit_16(592);
emit_16(657);
emit_16(593);
emit_16(658);
emit_16(594);
emit_16(658);
emit_16(593);
emit_16(658);
emit_16(594);
emit_16(659);
emit_16(595);
emit_16(659);
emit_16(594);
emit_16(659);
emit_16(595);
emit_16(660);
emit_16(596);
emit_16(660);
emit_16(595);
emit_16(660);
emit_16(596);
emit_16(661);
emit_16(597);
emit_16(661);
emit_16(596);
emit_16(661);
emit_16(597);
emit_16(662);
emit_16(598);
emit_16(662);
emit_16(597);
emit_16(662);
emit_16(598);
emit_16(663);
emit_16(599);
emit_16(663);
emit_16(598);
emit_16(663);
emit_16(599);
emit_16(664);
emit_16(600);
emit_16(664);
emit_16(599);
emit_16(664);
emit_16(600);
emit_16(665);
emit_16(601);
emit_16(665);
emit_16(600);
emit_16(665);
emit_16(601);
emit_16(666);
emit_16(602);
emit_16(666);
emit_16(601);
emit_16(666);
emit_16(602);
emit_16(667);
emit_16(603);
emit_16(667);
emit_16(602);
emit_16(667);
emit_16(603);
emit_16(668);
emit_16(604);
emit_16(668);
emit_16(603);
emit_16(668);
emit_16(604);
emit_16(669);
emit_16(605);
emit_16(669);
emit_16(604);
emit_16(669);
emit_16(605);
emit_16(670);
emit_16(606);
emit_16(670);
emit_16(605);
emit_16(670);
emit_16(606);
emit_16(671);
emit_16(607);
emit_16(671);
emit_16(606);
emit_16(671);
emit_16(607);
emit_16(672);
emit_16(608);
emit_16(672);
emit_16(607);
emit_16(672);
emit_16(608);
emit_16(673);
emit_16(609);
emit_16(673);
emit_16(608);
emit_16(673);
emit_16(609);
emit_16(674);
emit_16(610);
emit_16(674);
emit_16(609);
emit_16(674);
emit_16(610);
emit_16(675);
emit_16(611);
emit_16(675);
emit_16(610);
emit_16(675);
emit_16(611);
emit_16(676);
emit_16(612);
emit_16(676);
emit_16(611);
emit_16(676);
emit_16(612);
emit_16(677);
emit_16(613);
emit_16(677);
emit_16(612);
emit_16(677);
emit_16(613);
emit_16(678);
emit_16(614);
emit_16(678);
emit_16(613);
emit_16(678);
emit_16(614);
emit_16(679);
emit_16(615);
emit_16(679);
emit_16(614);
emit_16(679);
emit_16(615);
emit_16(680);
emit_16(616);
emit_16(680);
emit_16(615);
emit_16(680);
emit_16(616);
emit_16(681);
emit_16(617);
emit_16(681);
emit_16(616);
emit_16(681);
emit_16(617);
emit_16(682);
emit_16(618);
emit_16(682);
emit_16(617);
emit_16(682);
emit_16(618);
emit_16(683);
emit_16(619);
emit_16(683);
emit_16(618);
emit_16(683);
emit_16(619);
emit_16(684);
emit_16(620);
emit_16(684);
emit_16(619);
emit_16(684);
emit_16(620);
emit_16(685);
emit_16(621);
emit_16(685);
emit_16(620);
emit_16(685);
emit_16(621);
emit_16(686);
emit_16(622);
emit_16(686);
emit_16(621);
emit_16(686);
emit_16(622);
emit_16(687);
emit_16(623);
emit_16(687);
emit_16(622);
emit_16(687);
emit_16(623);
emit_16(688);
emit_16(624);
emit_16(688);
emit_16(623);
emit_16(688);
emit_16(624);
emit_16(689);
emit_16(625);
emit_16(689);
emit_16(624);
emit_16(689);
emit_16(625);
emit_16(690);
emit_16(626);
emit_16(690);
emit_16(625);
emit_16(690);
emit_16(626);
emit_16(691);
emit_16(627);
emit_16(691);
emit_16(626);
emit_16(691);
emit_16(627);
emit_16(692);
emit_16(628);
emit_16(692);
emit_16(627);
emit_16(692);
emit_16(628);
emit_16(693);
emit_16(629);
emit_16(693);
emit_16(628);
emit_16(693);
emit_16(629);
emit_16(694);
emit_16(630);
emit_16(694);
emit_16(629);
emit_16(694);
emit_16(630);
emit_16(695);
emit_16(631);
emit_16(695);
emit_16(630);
emit_16(695);
emit_16(631);
emit_16(696);
emit_16(632);
emit_16(696);
emit_16(631);
emit_16(696);
emit_16(632);
emit_16(697);
emit_16(633);
emit_16(697);
emit_16(632);
emit_16(697);
emit_16(633);
emit_16(698);
emit_16(634);
emit_16(698);
emit_16(633);
emit_16(698);
emit_16(634);
emit_16(699);
emit_16(635);
emit_16(699);
emit_16(634);
emit_16(699);
emit_16(635);
emit_16(700);
emit_16(636);
emit_16(700);
emit_16(635);
emit_16(700);
emit_16(636);
emit_16(701);
emit_16(637);
emit_16(701);
emit_16(636);
emit_16(701);
emit_16(637);
emit_16(702);
emit_16(638);
emit_16(702);
emit_16(637);
emit_16(702);
emit_16(638);
emit_16(703);
emit_16(639);
emit_16(703);
emit_16(638);
emit_16(704);
emit_16(640);
emit_16(705);
emit_16(641);
emit_16(705);
emit_16(640);
emit_16(705);
emit_16(641);
emit_16(706);
emit_16(642);
emit_16(706);
emit_16(641);
emit_16(706);
emit_16(642);
emit_16(707);
emit_16(643);
emit_16(707);
emit_16(642);
emit_16(707);
emit_16(643);
emit_16(708);
emit_16(644);
emit_16(708);
emit_16(643);
emit_16(708);
emit_16(644);
emit_16(709);
emit_16(645);
emit_16(709);
emit_16(644);
emit_16(709);
emit_16(645);
emit_16(710);
emit_16(646);
emit_16(710);
emit_16(645);
emit_16(710);
emit_16(646);
emit_16(711);
emit_16(647);
emit_16(711);
emit_16(646);
emit_16(711);
emit_16(647);
emit_16(712);
emit_16(648);
emit_16(712);
emit_16(647);
emit_16(712);
emit_16(648);
emit_16(713);
emit_16(649);
emit_16(713);
emit_16(648);
emit_16(713);
emit_16(649);
emit_16(714);
emit_16(650);
emit_16(714);
emit_16(649);
emit_16(714);
emit_16(650);
emit_16(715);
emit_16(651);
emit_16(715);
emit_16(650);
emit_16(715);
emit_16(651);
emit_16(716);
emit_16(652);
emit_16(716);
emit_16(651);
emit_16(716);
emit_16(652);
emit_16(717);
emit_16(653);
emit_16(717);
emit_16(652);
emit_16(717);
emit_16(653);
emit_16(718);
emit_16(654);
emit_16(718);
emit_16(653);
emit_16(718);
emit_16(654);
emit_16(719);
emit_16(655);
emit_16(719);
emit_16(654);
emit_16(719);
emit_16(655);
emit_16(720);
emit_16(656);
emit_16(720);
emit_16(655);
emit_16(720);
emit_16(656);
emit_16(721);
emit_16(657);
emit_16(721);
emit_16(656);
emit_16(721);
emit_16(657);
emit_16(722);
emit_16(658);
emit_16(722);
emit_16(657);
emit_16(722);
emit_16(658);
emit_16(723);
emit_16(659);
emit_16(723);
emit_16(658);
emit_16(723);
emit_16(659);
emit_16(724);
emit_16(660);
emit_16(724);
emit_16(659);
emit_16(724);
emit_16(660);
emit_16(725);
emit_16(661);
emit_16(725);
emit_16(660);
emit_16(725);
emit_16(661);
emit_16(726);
emit_16(662);
emit_16(726);
emit_16(661);
emit_16(726);
emit_16(662);
emit_16(727);
emit_16(663);
emit_16(727);
emit_16(662);
emit_16(727);
emit_16(663);
emit_16(728);
emit_16(664);
emit_16(728);
emit_16(663);
emit_16(728);
emit_16(664);
emit_16(729);
emit_16(665);
emit_16(729);
emit_16(664);
emit_16(729);
emit_16(665);
emit_16(730);
emit_16(666);
emit_16(730);
emit_16(665);
emit_16(730);
emit_16(666);
emit_16(731);
emit_16(667);
emit_16(731);
emit_16(666);
emit_16(731);
emit_16(667);
emit_16(732);
emit_16(668);
emit_16(732);
emit_16(667);
emit_16(732);
emit_16(668);
emit_16(733);
emit_16(669);
emit_16(733);
emit_16(668);
emit_16(733);
emit_16(669);
emit_16(734);
emit_16(670);
emit_16(734);
emit_16(669);
emit_16(734);
emit_16(670);
emit_16(735);
emit_16(671);
emit_16(735);
emit_16(670);
emit_16(735);
emit_16(671);
emit_16(736);
emit_16(672);
emit_16(736);
emit_16(671);
emit_16(736);
emit_16(672);
emit_16(737);
emit_16(673);
emit_16(737);
emit_16(672);
emit_16(737);
emit_16(673);
emit_16(738);
emit_16(674);
emit_16(738);
emit_16(673);
emit_16(738);
emit_16(674);
emit_16(739);
emit_16(675);
emit_16(739);
emit_16(674);
emit_16(739);
emit_16(675);
emit_16(740);
emit_16(676);
emit_16(740);
emit_16(675);
emit_16(740);
emit_16(676);
emit_16(741);
emit_16(677);
emit_16(741);
emit_16(676);
emit_16(741);
emit_16(677);
emit_16(742);
emit_16(678);
emit_16(742);
emit_16(677);
emit_16(742);
emit_16(678);
emit_16(743);
emit_16(679);
emit_16(743);
emit_16(678);
emit_16(743);
emit_16(679);
emit_16(744);
emit_16(680);
emit_16(744);
emit_16(679);
emit_16(744);
emit_16(680);
emit_16(745);
emit_16(681);
emit_16(745);
emit_16(680);
emit_16(745);
emit_16(681);
emit_16(746);
emit_16(682);
emit_16(746);
emit_16(681);
emit_16(746);
emit_16(682);
emit_16(747);
emit_16(683);
emit_16(747);
emit_16(682);
emit_16(747);
emit_16(683);
emit_16(748);
emit_16(684);
emit_16(748);
emit_16(683);
emit_16(748);
emit_16(684);
emit_16(749);
emit_16(685);
emit_16(749);
emit_16(684);
emit_16(749);
emit_16(685);
emit_16(750);
emit_16(686);
emit_16(750);
emit_16(685);
emit_16(750);
emit_16(686);
emit_16(751);
emit_16(687);
emit_16(751);
emit_16(686);
emit_16(751);
emit_16(687);
emit_16(752);
emit_16(688);
emit_16(752);
emit_16(687);
emit_16(752);
emit_16(688);
emit_16(753);
emit_16(689);
emit_16(753);
emit_16(688);
emit_16(753);
emit_16(689);
emit_16(754);
emit_16(690);
emit_16(754);
emit_16(689);
emit_16(754);
emit_16(690);
emit_16(755);
emit_16(691);
emit_16(755);
emit_16(690);
emit_16(755);
emit_16(691);
emit_16(756);
emit_16(692);
emit_16(756);
emit_16(691);
emit_16(756);
emit_16(692);
emit_16(757);
emit_16(693);
emit_16(757);
emit_16(692);
emit_16(757);
emit_16(693);
emit_16(758);
emit_16(694);
emit_16(758);
emit_16(693);
emit_16(758);
emit_16(694);
emit_16(759);
emit_16(695);
emit_16(759);
emit_16(694);
emit_16(759);
emit_16(695);
emit_16(760);
emit_16(696);
emit_16(760);
emit_16(695);
emit_16(760);
emit_16(696);
emit_16(761);
emit_16(697);
emit_16(761);
emit_16(696);
emit_16(761);
emit_16(697);
emit_16(762);
emit_16(698);
emit_16(762);
emit_16(697);
emit_16(762);
emit_16(698);
emit_16(763);
emit_16(699);
emit_16(763);
emit_16(698);
emit_16(763);
emit_16(699);
emit_16(764);
emit_16(700);
emit_16(764);
emit_16(699);
emit_16(764);
emit_16(700);
emit_16(765);
emit_16(701);
emit_16(765);
emit_16(700);
emit_16(765);
emit_16(701);
emit_16(766);
emit_16(702);
emit_16(766);
emit_16(701);
emit_16(766);
emit_16(702);
emit_16(767);
emit_16(703);
emit_16(767);
emit_16(702);
emit_16(768);
emit_16(704);
emit_16(769);
emit_16(705);
emit_16(769);
emit_16(704);
emit_16(769);
emit_16(705);
emit_16(770);
emit_16(706);
emit_16(770);
emit_16(705);
emit_16(770);
emit_16(706);
emit_16(771);
emit_16(707);
emit_16(771);
emit_16(706);
emit_16(771);
emit_16(707);
emit_16(772);
emit_16(708);
emit_16(772);
emit_16(707);
emit_16(772);
emit_16(708);
emit_16(773);
emit_16(709);
emit_16(773);
emit_16(708);
emit_16(773);
emit_16(709);
emit_16(774);
emit_16(710);
emit_16(774);
emit_16(709);
emit_16(774);
emit_16(710);
emit_16(775);
emit_16(711);
emit_16(775);
emit_16(710);
emit_16(775);
emit_16(711);
emit_16(776);
emit_16(712);
emit_16(776);
emit_16(711);
emit_16(776);
emit_16(712);
emit_16(777);
emit_16(713);
emit_16(777);
emit_16(712);
emit_16(777);
emit_16(713);
emit_16(778);
emit_16(714);
emit_16(778);
emit_16(713);
emit_16(778);
emit_16(714);
emit_16(779);
emit_16(715);
emit_16(779);
emit_16(714);
emit_16(779);
emit_16(715);
emit_16(780);
emit_16(716);
emit_16(780);
emit_16(715);
emit_16(780);
emit_16(716);
emit_16(781);
emit_16(717);
emit_16(781);
emit_16(716);
emit_16(781);
emit_16(717);
emit_16(782);
emit_16(718);
emit_16(782);
emit_16(717);
emit_16(782);
emit_16(718);
emit_16(783);
emit_16(719);
emit_16(783);
emit_16(718);
emit_16(783);
emit_16(719);
emit_16(784);
emit_16(720);
emit_16(784);
emit_16(719);
emit_16(784);
emit_16(720);
emit_16(785);
emit_16(721);
emit_16(785);
emit_16(720);
emit_16(785);
emit_16(721);
emit_16(786);
emit_16(722);
emit_16(786);
emit_16(721);
emit_16(786);
emit_16(722);
emit_16(787);
emit_16(723);
emit_16(787);
emit_16(722);
emit_16(787);
emit_16(723);
emit_16(788);
emit_16(724);
emit_16(788);
emit_16(723);
emit_16(788);
emit_16(724);
emit_16(789);
emit_16(725);
emit_16(789);
emit_16(724);
emit_16(789);
emit_16(725);
emit_16(790);
emit_16(726);
emit_16(790);
emit_16(725);
emit_16(790);
emit_16(726);
emit_16(791);
emit_16(727);
emit_16(791);
emit_16(726);
emit_16(791);
emit_16(727);
emit_16(792);
emit_16(728);
emit_16(792);
emit_16(727);
emit_16(792);
emit_16(728);
emit_16(793);
emit_16(729);
emit_16(793);
emit_16(728);
emit_16(793);
emit_16(729);
emit_16(794);
emit_16(730);
emit_16(794);
emit_16(729);
emit_16(794);
emit_16(730);
emit_16(795);
emit_16(731);
emit_16(795);
emit_16(730);
emit_16(795);
emit_16(731);
emit_16(796);
emit_16(732);
emit_16(796);
emit_16(731);
emit_16(796);
emit_16(732);
emit_16(797);
emit_16(733);
emit_16(797);
emit_16(732);
emit_16(797);
emit_16(733);
emit_16(798);
emit_16(734);
emit_16(798);
emit_16(733);
emit_16(798);
emit_16(734);
emit_16(799);
emit_16(735);
emit_16(799);
emit_16(734);
emit_16(799);
emit_16(735);
emit_16(800);
emit_16(736);
emit_16(800);
emit_16(735);
emit_16(800);
emit_16(736);
emit_16(801);
emit_16(737);
emit_16(801);
emit_16(736);
emit_16(801);
emit_16(737);
emit_16(802);
emit_16(738);
emit_16(802);
emit_16(737);
emit_16(802);
emit_16(738);
emit_16(803);
emit_16(739);
emit_16(803);
emit_16(738);
emit_16(803);
emit_16(739);
emit_16(804);
emit_16(740);
emit_16(804);
emit_16(739);
emit_16(804);
emit_16(740);
emit_16(805);
emit_16(741);
emit_16(805);
emit_16(740);
emit_16(805);
emit_16(741);
emit_16(806);
emit_16(742);
emit_16(806);
emit_16(741);
emit_16(806);
emit_16(742);
emit_16(807);
emit_16(743);
emit_16(807);
emit_16(742);
emit_16(807);
emit_16(743);
emit_16(808);
emit_16(744);
emit_16(808);
emit_16(743);
emit_16(808);
emit_16(744);
emit_16(809);
emit_16(745);
emit_16(809);
emit_16(744);
emit_16(809);
emit_16(745);
emit_16(810);
emit_16(746);
emit_16(810);
emit_16(745);
emit_16(810);
emit_16(746);
emit_16(811);
emit_16(747);
emit_16(811);
emit_16(746);
emit_16(811);
emit_16(747);
emit_16(812);
emit_16(748);
emit_16(812);
emit_16(747);
emit_16(812);
emit_16(748);
emit_16(813);
emit_16(749);
emit_16(813);
emit_16(748);
emit_16(813);
emit_16(749);
emit_16(814);
emit_16(750);
emit_16(814);
emit_16(749);
emit_16(814);
emit_16(750);
emit_16(815);
emit_16(751);
emit_16(815);
emit_16(750);
emit_16(815);
emit_16(751);
emit_16(816);
emit_16(752);
emit_16(816);
emit_16(751);
emit_16(816);
emit_16(752);
emit_16(817);
emit_16(753);
emit_16(817);
emit_16(752);
emit_16(817);
emit_16(753);
emit_16(818);
emit_16(754);
emit_16(818);
emit_16(753);
emit_16(818);
emit_16(754);
emit_16(819);
emit_16(755);
emit_16(819);
emit_16(754);
emit_16(819);
emit_16(755);
emit_16(820);
emit_16(756);
emit_16(820);
emit_16(755);
emit_16(820);
emit_16(756);
emit_16(821);
emit_16(757);
emit_16(821);
emit_16(756);
emit_16(821);
emit_16(757);
emit_16(822);
emit_16(758);
emit_16(822);
emit_16(757);
emit_16(822);
emit_16(758);
emit_16(823);
emit_16(759);
emit_16(823);
emit_16(758);
emit_16(823);
emit_16(759);
emit_16(824);
emit_16(760);
emit_16(824);
emit_16(759);
emit_16(824);
emit_16(760);
emit_16(825);
emit_16(761);
emit_16(825);
emit_16(760);
emit_16(825);
emit_16(761);
emit_16(826);
emit_16(762);
emit_16(826);
emit_16(761);
emit_16(826);
emit_16(762);
emit_16(827);
emit_16(763);
emit_16(827);
emit_16(762);
emit_16(827);
emit_16(763);
emit_16(828);
emit_16(764);
emit_16(828);
emit_16(763);
emit_16(828);
emit_16(764);
emit_16(829);
emit_16(765);
emit_16(829);
emit_16(764);
emit_16(829);
emit_16(765);
emit_16(830);
emit_16(766);
emit_16(830);
emit_16(765);
emit_16(830);
emit_16(766);
emit_16(831);
emit_16(767);
emit_16(831);
emit_16(766);
emit_16(832);
emit_16(768);
emit_16(833);
emit_16(769);
emit_16(833);
emit_16(768);
emit_16(833);
emit_16(769);
emit_16(834);
emit_16(770);
emit_16(834);
emit_16(769);
emit_16(834);
emit_16(770);
emit_16(835);
emit_16(771);
emit_16(835);
emit_16(770);
emit_16(835);
emit_16(771);
emit_16(836);
emit_16(772);
emit_16(836);
emit_16(771);
emit_16(836);
emit_16(772);
emit_16(837);
emit_16(773);
emit_16(837);
emit_16(772);
emit_16(837);
emit_16(773);
emit_16(838);
emit_16(774);
emit_16(838);
emit_16(773);
emit_16(838);
emit_16(774);
emit_16(839);
emit_16(775);
emit_16(839);
emit_16(774);
emit_16(839);
emit_16(775);
emit_16(840);
emit_16(776);
emit_16(840);
emit_16(775);
emit_16(840);
emit_16(776);
emit_16(841);
emit_16(777);
emit_16(841);
emit_16(776);
emit_16(841);
emit_16(777);
emit_16(842);
emit_16(778);
emit_16(842);
emit_16(777);
emit_16(842);
emit_16(778);
emit_16(843);
emit_16(779);
emit_16(843);
emit_16(778);
emit_16(843);
emit_16(779);
emit_16(844);
emit_16(780);
emit_16(844);
emit_16(779);
emit_16(844);
emit_16(780);
emit_16(845);
emit_16(781);
emit_16(845);
emit_16(780);
emit_16(845);
emit_16(781);
emit_16(846);
emit_16(782);
emit_16(846);
emit_16(781);
emit_16(846);
emit_16(782);
emit_16(847);
emit_16(783);
emit_16(847);
emit_16(782);
emit_16(847);
emit_16(783);
emit_16(848);
emit_16(784);
emit_16(848);
emit_16(783);
emit_16(848);
emit_16(784);
emit_16(849);
emit_16(785);
emit_16(849);
emit_16(784);
emit_16(849);
emit_16(785);
emit_16(850);
emit_16(786);
emit_16(850);
emit_16(785);
emit_16(850);
emit_16(786);
emit_16(851);
emit_16(787);
emit_16(851);
emit_16(786);
emit_16(851);
emit_16(787);
emit_16(852);
emit_16(788);
emit_16(852);
emit_16(787);
emit_16(852);
emit_16(788);
emit_16(853);
emit_16(789);
emit_16(853);
emit_16(788);
emit_16(853);
emit_16(789);
emit_16(854);
emit_16(790);
emit_16(854);
emit_16(789);
emit_16(854);
emit_16(790);
emit_16(855);
emit_16(791);
emit_16(855);
emit_16(790);
emit_16(855);
emit_16(791);
emit_16(856);
emit_16(792);
emit_16(856);
emit_16(791);
emit_16(856);
emit_16(792);
emit_16(857);
emit_16(793);
emit_16(857);
emit_16(792);
emit_16(857);
emit_16(793);
emit_16(858);
emit_16(794);
emit_16(858);
emit_16(793);
emit_16(858);
emit_16(794);
emit_16(859);
emit_16(795);
emit_16(859);
emit_16(794);
emit_16(859);
emit_16(795);
emit_16(860);
emit_16(796);
emit_16(860);
emit_16(795);
emit_16(860);
emit_16(796);
emit_16(861);
emit_16(797);
emit_16(861);
emit_16(796);
emit_16(861);
emit_16(797);
emit_16(862);
emit_16(798);
emit_16(862);
emit_16(797);
emit_16(862);
emit_16(798);
emit_16(863);
emit_16(799);
emit_16(863);
emit_16(798);
emit_16(863);
emit_16(799);
emit_16(864);
emit_16(800);
emit_16(864);
emit_16(799);
emit_16(864);
emit_16(800);
emit_16(865);
emit_16(801);
emit_16(865);
emit_16(800);
emit_16(865);
emit_16(801);
emit_16(866);
emit_16(802);
emit_16(866);
emit_16(801);
emit_16(866);
emit_16(802);
emit_16(867);
emit_16(803);
emit_16(867);
emit_16(802);
emit_16(867);
emit_16(803);
emit_16(868);
emit_16(804);
emit_16(868);
emit_16(803);
emit_16(868);
emit_16(804);
emit_16(869);
emit_16(805);
emit_16(869);
emit_16(804);
emit_16(869);
emit_16(805);
emit_16(870);
emit_16(806);
emit_16(870);
emit_16(805);
emit_16(870);
emit_16(806);
emit_16(871);
emit_16(807);
emit_16(871);
emit_16(806);
emit_16(871);
emit_16(807);
emit_16(872);
emit_16(808);
emit_16(872);
emit_16(807);
emit_16(872);
emit_16(808);
emit_16(873);
emit_16(809);
emit_16(873);
emit_16(808);
emit_16(873);
emit_16(809);
emit_16(874);
emit_16(810);
emit_16(874);
emit_16(809);
emit_16(874);
emit_16(810);
emit_16(875);
emit_16(811);
emit_16(875);
emit_16(810);
emit_16(875);
emit_16(811);
emit_16(876);
emit_16(812);
emit_16(876);
emit_16(811);
emit_16(876);
emit_16(812);
emit_16(877);
emit_16(813);
emit_16(877);
emit_16(812);
emit_16(877);
emit_16(813);
emit_16(878);
emit_16(814);
emit_16(878);
emit_16(813);
emit_16(878);
emit_16(814);
emit_16(879);
emit_16(815);
emit_16(879);
emit_16(814);
emit_16(879);
emit_16(815);
emit_16(880);
emit_16(816);
emit_16(880);
emit_16(815);
emit_16(880);
emit_16(816);
emit_16(881);
emit_16(817);
emit_16(881);
emit_16(816);
emit_16(881);
emit_16(817);
emit_16(882);
emit_16(818);
emit_16(882);
emit_16(817);
emit_16(882);
emit_16(818);
emit_16(883);
emit_16(819);
emit_16(883);
emit_16(818);
emit_16(883);
emit_16(819);
emit_16(884);
emit_16(820);
emit_16(884);
emit_16(819);
emit_16(884);
emit_16(820);
emit_16(885);
emit_16(821);
emit_16(885);
emit_16(820);
emit_16(885);
emit_16(821);
emit_16(886);
emit_16(822);
emit_16(886);
emit_16(821);
emit_16(886);
emit_16(822);
emit_16(887);
emit_16(823);
emit_16(887);
emit_16(822);
emit_16(887);
emit_16(823);
emit_16(888);
emit_16(824);
emit_16(888);
emit_16(823);
emit_16(888);
emit_16(824);
emit_16(889);
emit_16(825);
emit_16(889);
emit_16(824);
emit_16(889);
emit_16(825);
emit_16(890);
emit_16(826);
emit_16(890);
emit_16(825);
emit_16(890);
emit_16(826);
emit_16(891);
emit_16(827);
emit_16(891);
emit_16(826);
emit_16(891);
emit_16(827);
emit_16(892);
emit_16(828);
emit_16(892);
emit_16(827);
emit_16(892);
emit_16(828);
emit_16(893);
emit_16(829);
emit_16(893);
emit_16(828);
emit_16(893);
emit_16(829);
emit_16(894);
emit_16(830);
emit_16(894);
emit_16(829);
emit_16(894);
emit_16(830);
emit_16(895);
emit_16(831);
emit_16(895);
emit_16(830);
emit_16(896);
emit_16(832);
emit_16(897);
emit_16(833);
emit_16(897);
emit_16(832);
emit_16(897);
emit_16(833);
emit_16(898);
emit_16(834);
emit_16(898);
emit_16(833);
emit_16(898);
emit_16(834);
emit_16(899);
emit_16(835);
emit_16(899);
emit_16(834);
emit_16(899);
emit_16(835);
emit_16(900);
emit_16(836);
emit_16(900);
emit_16(835);
emit_16(900);
emit_16(836);
emit_16(901);
emit_16(837);
emit_16(901);
emit_16(836);
emit_16(901);
emit_16(837);
emit_16(902);
emit_16(838);
emit_16(902);
emit_16(837);
emit_16(902);
emit_16(838);
emit_16(903);
emit_16(839);
emit_16(903);
emit_16(838);
emit_16(903);
emit_16(839);
emit_16(904);
emit_16(840);
emit_16(904);
emit_16(839);
emit_16(904);
emit_16(840);
emit_16(905);
emit_16(841);
emit_16(905);
emit_16(840);
emit_16(905);
emit_16(841);
emit_16(906);
emit_16(842);
emit_16(906);
emit_16(841);
emit_16(906);
emit_16(842);
emit_16(907);
emit_16(843);
emit_16(907);
emit_16(842);
emit_16(907);
emit_16(843);
emit_16(908);
emit_16(844);
emit_16(908);
emit_16(843);
emit_16(908);
emit_16(844);
emit_16(909);
emit_16(845);
emit_16(909);
emit_16(844);
emit_16(909);
emit_16(845);
emit_16(910);
emit_16(846);
emit_16(910);
emit_16(845);
emit_16(910);
emit_16(846);
emit_16(911);
emit_16(847);
emit_16(911);
emit_16(846);
emit_16(911);
emit_16(847);
emit_16(912);
emit_16(848);
emit_16(912);
emit_16(847);
emit_16(912);
emit_16(848);
emit_16(913);
emit_16(849);
emit_16(913);
emit_16(848);
emit_16(913);
emit_16(849);
emit_16(914);
emit_16(850);
emit_16(914);
emit_16(849);
emit_16(914);
emit_16(850);
emit_16(915);
emit_16(851);
emit_16(915);
emit_16(850);
emit_16(915);
emit_16(851);
emit_16(916);
emit_16(852);
emit_16(916);
emit_16(851);
emit_16(916);
emit_16(852);
emit_16(917);
emit_16(853);
emit_16(917);
emit_16(852);
emit_16(917);
emit_16(853);
emit_16(918);
emit_16(854);
emit_16(918);
emit_16(853);
emit_16(918);
emit_16(854);
emit_16(919);
emit_16(855);
emit_16(919);
emit_16(854);
emit_16(919);
emit_16(855);
emit_16(920);
emit_16(856);
emit_16(920);
emit_16(855);
emit_16(920);
emit_16(856);
emit_16(921);
emit_16(857);
emit_16(921);
emit_16(856);
emit_16(921);
emit_16(857);
emit_16(922);
emit_16(858);
emit_16(922);
emit_16(857);
emit_16(922);
emit_16(858);
emit_16(923);
emit_16(859);
emit_16(923);
emit_16(858);
emit_16(923);
emit_16(859);
emit_16(924);
emit_16(860);
emit_16(924);
emit_16(859);
emit_16(924);
emit_16(860);
emit_16(925);
emit_16(861);
emit_16(925);
emit_16(860);
emit_16(925);
emit_16(861);
emit_16(926);
emit_16(862);
emit_16(926);
emit_16(861);
emit_16(926);
emit_16(862);
emit_16(927);
emit_16(863);
emit_16(927);
emit_16(862);
emit_16(927);
emit_16(863);
emit_16(928);
emit_16(864);
emit_16(928);
emit_16(863);
emit_16(928);
emit_16(864);
emit_16(929);
emit_16(865);
emit_16(929);
emit_16(864);
emit_16(929);
emit_16(865);
emit_16(930);
emit_16(866);
emit_16(930);
emit_16(865);
emit_16(930);
emit_16(866);
emit_16(931);
emit_16(867);
emit_16(931);
emit_16(866);
emit_16(931);
emit_16(867);
emit_16(932);
emit_16(868);
emit_16(932);
emit_16(867);
emit_16(932);
emit_16(868);
emit_16(933);
emit_16(869);
emit_16(933);
emit_16(868);
emit_16(933);
emit_16(869);
emit_16(934);
emit_16(870);
emit_16(934);
emit_16(869);
emit_16(934);
emit_16(870);
emit_16(935);
emit_16(871);
emit_16(935);
emit_16(870);
emit_16(935);
emit_16(871);
emit_16(936);
emit_16(872);
emit_16(936);
emit_16(871);
emit_16(936);
emit_16(872);
emit_16(937);
emit_16(873);
emit_16(937);
emit_16(872);
emit_16(937);
emit_16(873);
emit_16(938);
emit_16(874);
emit_16(938);
emit_16(873);
emit_16(938);
emit_16(874);
emit_16(939);
emit_16(875);
emit_16(939);
emit_16(874);
emit_16(939);
emit_16(875);
emit_16(940);
emit_16(876);
emit_16(940);
emit_16(875);
emit_16(940);
emit_16(876);
emit_16(941);
emit_16(877);
emit_16(941);
emit_16(876);
emit_16(941);
emit_16(877);
emit_16(942);
emit_16(878);
emit_16(942);
emit_16(877);
emit_16(942);
emit_16(878);
emit_16(943);
emit_16(879);
emit_16(943);
emit_16(878);
emit_16(943);
emit_16(879);
emit_16(944);
emit_16(880);
emit_16(944);
emit_16(879);
emit_16(944);
emit_16(880);
emit_16(945);
emit_16(881);
emit_16(945);
emit_16(880);
emit_16(945);
emit_16(881);
emit_16(946);
emit_16(882);
emit_16(946);
emit_16(881);
emit_16(946);
emit_16(882);
emit_16(947);
emit_16(883);
emit_16(947);
emit_16(882);
emit_16(947);
emit_16(883);
emit_16(948);
emit_16(884);
emit_16(948);
emit_16(883);
emit_16(948);
emit_16(884);
emit_16(949);
emit_16(885);
emit_16(949);
emit_16(884);
emit_16(949);
emit_16(885);
emit_16(950);
emit_16(886);
emit_16(950);
emit_16(885);
emit_16(950);
emit_16(886);
emit_16(951);
emit_16(887);
emit_16(951);
emit_16(886);
emit_16(951);
emit_16(887);
emit_16(952);
emit_16(888);
emit_16(952);
emit_16(887);
emit_16(952);
emit_16(888);
emit_16(953);
emit_16(889);
emit_16(953);
emit_16(888);
emit_16(953);
emit_16(889);
emit_16(954);
emit_16(890);
emit_16(954);
emit_16(889);
emit_16(954);
emit_16(890);
emit_16(955);
emit_16(891);
emit_16(955);
emit_16(890);
emit_16(955);
emit_16(891);
emit_16(956);
emit_16(892);
emit_16(956);
emit_16(891);
emit_16(956);
emit_16(892);
emit_16(957);
emit_16(893);
emit_16(957);
emit_16(892);
emit_16(957);
emit_16(893);
emit_16(958);
emit_16(894);
emit_16(958);
emit_16(893);
emit_16(958);
emit_16(894);
emit_16(959);
emit_16(895);
emit_16(959);
emit_16(894);
emit_16(960);
emit_16(896);
emit_16(961);
emit_16(897);
emit_16(961);
emit_16(896);
emit_16(961);
emit_16(897);
emit_16(962);
emit_16(898);
emit_16(962);
emit_16(897);
emit_16(962);
emit_16(898);
emit_16(963);
emit_16(899);
emit_16(963);
emit_16(898);
emit_16(963);
emit_16(899);
emit_16(964);
emit_16(900);
emit_16(964);
emit_16(899);
emit_16(964);
emit_16(900);
emit_16(965);
emit_16(901);
emit_16(965);
emit_16(900);
emit_16(965);
emit_16(901);
emit_16(966);
emit_16(902);
emit_16(966);
emit_16(901);
emit_16(966);
emit_16(902);
emit_16(967);
emit_16(903);
emit_16(967);
emit_16(902);
emit_16(967);
emit_16(903);
emit_16(968);
emit_16(904);
emit_16(968);
emit_16(903);
emit_16(968);
emit_16(904);
emit_16(969);
emit_16(905);
emit_16(969);
emit_16(904);
emit_16(969);
emit_16(905);
emit_16(970);
emit_16(906);
emit_16(970);
emit_16(905);
emit_16(970);
emit_16(906);
emit_16(971);
emit_16(907);
emit_16(971);
emit_16(906);
emit_16(971);
emit_16(907);
emit_16(972);
emit_16(908);
emit_16(972);
emit_16(907);
emit_16(972);
emit_16(908);
emit_16(973);
emit_16(909);
emit_16(973);
emit_16(908);
emit_16(973);
emit_16(909);
emit_16(974);
emit_16(910);
emit_16(974);
emit_16(909);
emit_16(974);
emit_16(910);
emit_16(975);
emit_16(911);
emit_16(975);
emit_16(910);
emit_16(975);
emit_16(911);
emit_16(976);
emit_16(912);
emit_16(976);
emit_16(911);
emit_16(976);
emit_16(912);
emit_16(977);
emit_16(913);
emit_16(977);
emit_16(912);
emit_16(977);
emit_16(913);
emit_16(978);
emit_16(914);
emit_16(978);
emit_16(913);
emit_16(978);
emit_16(914);
emit_16(979);
emit_16(915);
emit_16(979);
emit_16(914);
emit_16(979);
emit_16(915);
emit_16(980);
emit_16(916);
emit_16(980);
emit_16(915);
emit_16(980);
emit_16(916);
emit_16(981);
emit_16(917);
emit_16(981);
emit_16(916);
emit_16(981);
emit_16(917);
emit_16(982);
emit_16(918);
emit_16(982);
emit_16(917);
emit_16(982);
emit_16(918);
emit_16(983);
emit_16(919);
emit_16(983);
emit_16(918);
emit_16(983);
emit_16(919);
emit_16(984);
emit_16(920);
emit_16(984);
emit_16(919);
emit_16(984);
emit_16(920);
emit_16(985);
emit_16(921);
emit_16(985);
emit_16(920);
emit_16(985);
emit_16(921);
emit_16(986);
emit_16(922);
emit_16(986);
emit_16(921);
emit_16(986);
emit_16(922);
emit_16(987);
emit_16(923);
emit_16(987);
emit_16(922);
emit_16(987);
emit_16(923);
emit_16(988);
emit_16(924);
emit_16(988);
emit_16(923);
emit_16(988);
emit_16(924);
emit_16(989);
emit_16(925);
emit_16(989);
emit_16(924);
emit_16(989);
emit_16(925);
emit_16(990);
emit_16(926);
emit_16(990);
emit_16(925);
emit_16(990);
emit_16(926);
emit_16(991);
emit_16(927);
emit_16(991);
emit_16(926);
emit_16(991);
emit_16(927);
emit_16(992);
emit_16(928);
emit_16(992);
emit_16(927);
emit_16(992);
emit_16(928);
emit_16(993);
emit_16(929);
emit_16(993);
emit_16(928);
emit_16(993);
emit_16(929);
emit_16(994);
emit_16(930);
emit_16(994);
emit_16(929);
emit_16(994);
emit_16(930);
emit_16(995);
emit_16(931);
emit_16(995);
emit_16(930);
emit_16(995);
emit_16(931);
emit_16(996);
emit_16(932);
emit_16(996);
emit_16(931);
emit_16(996);
emit_16(932);
emit_16(997);
emit_16(933);
emit_16(997);
emit_16(932);
emit_16(997);
emit_16(933);
emit_16(998);
emit_16(934);
emit_16(998);
emit_16(933);
emit_16(998);
emit_16(934);
emit_16(999);
emit_16(935);
emit_16(999);
emit_16(934);
emit_16(999);
emit_16(935);
emit_16(1000);
emit_16(936);
emit_16(1000);
emit_16(935);
emit_16(1000);
emit_16(936);
emit_16(1001);
emit_16(937);
emit_16(1001);
emit_16(936);
emit_16(1001);
emit_16(937);
emit_16(1002);
emit_16(938);
emit_16(1002);
emit_16(937);
emit_16(1002);
emit_16(938);
emit_16(1003);
emit_16(939);
emit_16(1003);
emit_16(938);
emit_16(1003);
emit_16(939);
emit_16(1004);
emit_16(940);
emit_16(1004);
emit_16(939);
emit_16(1004);
emit_16(940);
emit_16(1005);
emit_16(941);
emit_16(1005);
emit_16(940);
emit_16(1005);
emit_16(941);
emit_16(1006);
emit_16(942);
emit_16(1006);
emit_16(941);
emit_16(1006);
emit_16(942);
emit_16(1007);
emit_16(943);
emit_16(1007);
emit_16(942);
emit_16(1007);
emit_16(943);
emit_16(1008);
emit_16(944);
emit_16(1008);
emit_16(943);
emit_16(1008);
emit_16(944);
emit_16(1009);
emit_16(945);
emit_16(1009);
emit_16(944);
emit_16(1009);
emit_16(945);
emit_16(1010);
emit_16(946);
emit_16(1010);
emit_16(945);
emit_16(1010);
emit_16(946);
emit_16(1011);
emit_16(947);
emit_16(1011);
emit_16(946);
emit_16(1011);
emit_16(947);
emit_16(1012);
emit_16(948);
emit_16(1012);
emit_16(947);
emit_16(1012);
emit_16(948);
emit_16(1013);
emit_16(949);
emit_16(1013);
emit_16(948);
emit_16(1013);
emit_16(949);
emit_16(1014);
emit_16(950);
emit_16(1014);
emit_16(949);
emit_16(1014);
emit_16(950);
emit_16(1015);
emit_16(951);
emit_16(1015);
emit_16(950);
emit_16(1015);
emit_16(951);
emit_16(1016);
emit_16(952);
emit_16(1016);
emit_16(951);
emit_16(1016);
emit_16(952);
emit_16(1017);
emit_16(953);
emit_16(1017);
emit_16(952);
emit_16(1017);
emit_16(953);
emit_16(1018);
emit_16(954);
emit_16(1018);
emit_16(953);
emit_16(1018);
emit_16(954);
emit_16(1019);
emit_16(955);
emit_16(1019);
emit_16(954);
emit_16(1019);
emit_16(955);
emit_16(1020);
emit_16(956);
emit_16(1020);
emit_16(955);
emit_16(1020);
emit_16(956);
emit_16(1021);
emit_16(957);
emit_16(1021);
emit_16(956);
emit_16(1021);
emit_16(957);
emit_16(1022);
emit_16(958);
emit_16(1022);
emit_16(957);
emit_16(1022);
emit_16(958);
emit_16(1023);
emit_16(959);
emit_16(1023);
emit_16(958);
emit_16(1024);
emit_16(960);
emit_16(1025);
emit_16(961);
emit_16(1025);
emit_16(960);
emit_16(1025);
emit_16(961);
emit_16(1026);
emit_16(962);
emit_16(1026);
emit_16(961);
emit_16(1026);
emit_16(962);
emit_16(1027);
emit_16(963);
emit_16(1027);
emit_16(962);
emit_16(1027);
emit_16(963);
emit_16(1028);
emit_16(964);
emit_16(1028);
emit_16(963);
emit_16(1028);
emit_16(964);
emit_16(1029);
emit_16(965);
emit_16(1029);
emit_16(964);
emit_16(1029);
emit_16(965);
emit_16(1030);
emit_16(966);
emit_16(1030);
emit_16(965);
emit_16(1030);
emit_16(966);
emit_16(1031);
emit_16(967);
emit_16(1031);
emit_16(966);
emit_16(1031);
emit_16(967);
emit_16(1032);
emit_16(968);
emit_16(1032);
emit_16(967);
emit_16(1032);
emit_16(968);
emit_16(1033);
emit_16(969);
emit_16(1033);
emit_16(968);
emit_16(1033);
emit_16(969);
emit_16(1034);
emit_16(970);
emit_16(1034);
emit_16(969);
emit_16(1034);
emit_16(970);
emit_16(1035);
emit_16(971);
emit_16(1035);
emit_16(970);
emit_16(1035);
emit_16(971);
emit_16(1036);
emit_16(972);
emit_16(1036);
emit_16(971);
emit_16(1036);
emit_16(972);
emit_16(1037);
emit_16(973);
emit_16(1037);
emit_16(972);
emit_16(1037);
emit_16(973);
emit_16(1038);
emit_16(974);
emit_16(1038);
emit_16(973);
emit_16(1038);
emit_16(974);
emit_16(1039);
emit_16(975);
emit_16(1039);
emit_16(974);
emit_16(1039);
emit_16(975);
emit_16(1040);
emit_16(976);
emit_16(1040);
emit_16(975);
emit_16(1040);
emit_16(976);
emit_16(1041);
emit_16(977);
emit_16(1041);
emit_16(976);
emit_16(1041);
emit_16(977);
emit_16(1042);
emit_16(978);
emit_16(1042);
emit_16(977);
emit_16(1042);
emit_16(978);
emit_16(1043);
emit_16(979);
emit_16(1043);
emit_16(978);
emit_16(1043);
emit_16(979);
emit_16(1044);
emit_16(980);
emit_16(1044);
emit_16(979);
emit_16(1044);
emit_16(980);
emit_16(1045);
emit_16(981);
emit_16(1045);
emit_16(980);
emit_16(1045);
emit_16(981);
emit_16(1046);
emit_16(982);
emit_16(1046);
emit_16(981);
emit_16(1046);
emit_16(982);
emit_16(1047);
emit_16(983);
emit_16(1047);
emit_16(982);
emit_16(1047);
emit_16(983);
emit_16(1048);
emit_16(984);
emit_16(1048);
emit_16(983);
emit_16(1048);
emit_16(984);
emit_16(1049);
emit_16(985);
emit_16(1049);
emit_16(984);
emit_16(1049);
emit_16(985);
emit_16(1050);
emit_16(986);
emit_16(1050);
emit_16(985);
emit_16(1050);
emit_16(986);
emit_16(1051);
emit_16(987);
emit_16(1051);
emit_16(986);
emit_16(1051);
emit_16(987);
emit_16(1052);
emit_16(988);
emit_16(1052);
emit_16(987);
emit_16(1052);
emit_16(988);
emit_16(1053);
emit_16(989);
emit_16(1053);
emit_16(988);
emit_16(1053);
emit_16(989);
emit_16(1054);
emit_16(990);
emit_16(1054);
emit_16(989);
emit_16(1054);
emit_16(990);
emit_16(1055);
emit_16(991);
emit_16(1055);
emit_16(990);
emit_16(1055);
emit_16(991);
emit_16(1056);
emit_16(992);
emit_16(1056);
emit_16(991);
emit_16(1056);
emit_16(992);
emit_16(1057);
emit_16(993);
emit_16(1057);
emit_16(992);
emit_16(1057);
emit_16(993);
emit_16(1058);
emit_16(994);
emit_16(1058);
emit_16(993);
emit_16(1058);
emit_16(994);
emit_16(1059);
emit_16(995);
emit_16(1059);
emit_16(994);
emit_16(1059);
emit_16(995);
emit_16(1060);
emit_16(996);
emit_16(1060);
emit_16(995);
emit_16(1060);
emit_16(996);
emit_16(1061);
emit_16(997);
emit_16(1061);
emit_16(996);
emit_16(1061);
emit_16(997);
emit_16(1062);
emit_16(998);
emit_16(1062);
emit_16(997);
emit_16(1062);
emit_16(998);
emit_16(1063);
emit_16(999);
emit_16(1063);
emit_16(998);
emit_16(1063);
emit_16(999);
emit_16(1064);
emit_16(1000);
emit_16(1064);
emit_16(999);
emit_16(1064);
emit_16(1000);
emit_16(1065);
emit_16(1001);
emit_16(1065);
emit_16(1000);
emit_16(1065);
emit_16(1001);
emit_16(1066);
emit_16(1002);
emit_16(1066);
emit_16(1001);
emit_16(1066);
emit_16(1002);
emit_16(1067);
emit_16(1003);
emit_16(1067);
emit_16(1002);
emit_16(1067);
emit_16(1003);
emit_16(1068);
emit_16(1004);
emit_16(1068);
emit_16(1003);
emit_16(1068);
emit_16(1004);
emit_16(1069);
emit_16(1005);
emit_16(1069);
emit_16(1004);
emit_16(1069);
emit_16(1005);
emit_16(1070);
emit_16(1006);
emit_16(1070);
emit_16(1005);
emit_16(1070);
emit_16(1006);
emit_16(1071);
emit_16(1007);
emit_16(1071);
emit_16(1006);
emit_16(1071);
emit_16(1007);
emit_16(1072);
emit_16(1008);
emit_16(1072);
emit_16(1007);
emit_16(1072);
emit_16(1008);
emit_16(1073);
emit_16(1009);
emit_16(1073);
emit_16(1008);
emit_16(1073);
emit_16(1009);
emit_16(1074);
emit_16(1010);
emit_16(1074);
emit_16(1009);
emit_16(1074);
emit_16(1010);
emit_16(1075);
emit_16(1011);
emit_16(1075);
emit_16(1010);
emit_16(1075);
emit_16(1011);
emit_16(1076);
emit_16(1012);
emit_16(1076);
emit_16(1011);
emit_16(1076);
emit_16(1012);
emit_16(1077);
emit_16(1013);
emit_16(1077);
emit_16(1012);
emit_16(1077);
emit_16(1013);
emit_16(1078);
emit_16(1014);
emit_16(1078);
emit_16(1013);
emit_16(1078);
emit_16(1014);
emit_16(1079);
emit_16(1015);
emit_16(1079);
emit_16(1014);
emit_16(1079);
emit_16(1015);
emit_16(1080);
emit_16(1016);
emit_16(1080);
emit_16(1015);
emit_16(1080);
emit_16(1016);
emit_16(1081);
emit_16(1017);
emit_16(1081);
emit_16(1016);
emit_16(1081);
emit_16(1017);
emit_16(1082);
emit_16(1018);
emit_16(1082);
emit_16(1017);
emit_16(1082);
emit_16(1018);
emit_16(1083);
emit_16(1019);
emit_16(1083);
emit_16(1018);
emit_16(1083);
emit_16(1019);
emit_16(1084);
emit_16(1020);
emit_16(1084);
emit_16(1019);
emit_16(1084);
emit_16(1020);
emit_16(1085);
emit_16(1021);
emit_16(1085);
emit_16(1020);
emit_16(1085);
emit_16(1021);
emit_16(1086);
emit_16(1022);
emit_16(1086);
emit_16(1021);
emit_16(1086);
emit_16(1022);
emit_16(1087);
emit_16(1023);
emit_16(1087);
emit_16(1022);
emit_16(1088);
emit_16(1024);
emit_16(1089);
emit_16(1025);
emit_16(1089);
emit_16(1024);
emit_16(1089);
emit_16(1025);
emit_16(1090);
emit_16(1026);
emit_16(1090);
emit_16(1025);
emit_16(1090);
emit_16(1026);
emit_16(1091);
emit_16(1027);
emit_16(1091);
emit_16(1026);
emit_16(1091);
emit_16(1027);
emit_16(1092);
emit_16(1028);
emit_16(1092);
emit_16(1027);
emit_16(1092);
emit_16(1028);
emit_16(1093);
emit_16(1029);
emit_16(1093);
emit_16(1028);
emit_16(1093);
emit_16(1029);
emit_16(1094);
emit_16(1030);
emit_16(1094);
emit_16(1029);
emit_16(1094);
emit_16(1030);
emit_16(1095);
emit_16(1031);
emit_16(1095);
emit_16(1030);
emit_16(1095);
emit_16(1031);
emit_16(1096);
emit_16(1032);
emit_16(1096);
emit_16(1031);
emit_16(1096);
emit_16(1032);
emit_16(1097);
emit_16(1033);
emit_16(1097);
emit_16(1032);
emit_16(1097);
emit_16(1033);
emit_16(1098);
emit_16(1034);
emit_16(1098);
emit_16(1033);
emit_16(1098);
emit_16(1034);
emit_16(1099);
emit_16(1035);
emit_16(1099);
emit_16(1034);
emit_16(1099);
emit_16(1035);
emit_16(1100);
emit_16(1036);
emit_16(1100);
emit_16(1035);
emit_16(1100);
emit_16(1036);
emit_16(1101);
emit_16(1037);
emit_16(1101);
emit_16(1036);
emit_16(1101);
emit_16(1037);
emit_16(1102);
emit_16(1038);
emit_16(1102);
emit_16(1037);
emit_16(1102);
emit_16(1038);
emit_16(1103);
emit_16(1039);
emit_16(1103);
emit_16(1038);
emit_16(1103);
emit_16(1039);
emit_16(1104);
emit_16(1040);
emit_16(1104);
emit_16(1039);
emit_16(1104);
emit_16(1040);
emit_16(1105);
emit_16(1041);
emit_16(1105);
emit_16(1040);
emit_16(1105);
emit_16(1041);
emit_16(1106);
emit_16(1042);
emit_16(1106);
emit_16(1041);
emit_16(1106);
emit_16(1042);
emit_16(1107);
emit_16(1043);
emit_16(1107);
emit_16(1042);
emit_16(1107);
emit_16(1043);
emit_16(1108);
emit_16(1044);
emit_16(1108);
emit_16(1043);
emit_16(1108);
emit_16(1044);
emit_16(1109);
emit_16(1045);
emit_16(1109);
emit_16(1044);
emit_16(1109);
emit_16(1045);
emit_16(1110);
emit_16(1046);
emit_16(1110);
emit_16(1045);
emit_16(1110);
emit_16(1046);
emit_16(1111);
emit_16(1047);
emit_16(1111);
emit_16(1046);
emit_16(1111);
emit_16(1047);
emit_16(1112);
emit_16(1048);
emit_16(1112);
emit_16(1047);
emit_16(1112);
emit_16(1048);
emit_16(1113);
emit_16(1049);
emit_16(1113);
emit_16(1048);
emit_16(1113);
emit_16(1049);
emit_16(1114);
emit_16(1050);
emit_16(1114);
emit_16(1049);
emit_16(1114);
emit_16(1050);
emit_16(1115);
emit_16(1051);
emit_16(1115);
emit_16(1050);
emit_16(1115);
emit_16(1051);
emit_16(1116);
emit_16(1052);
emit_16(1116);
emit_16(1051);
emit_16(1116);
emit_16(1052);
emit_16(1117);
emit_16(1053);
emit_16(1117);
emit_16(1052);
emit_16(1117);
emit_16(1053);
emit_16(1118);
emit_16(1054);
emit_16(1118);
emit_16(1053);
emit_16(1118);
emit_16(1054);
emit_16(1119);
emit_16(1055);
emit_16(1119);
emit_16(1054);
emit_16(1119);
emit_16(1055);
emit_16(1120);
emit_16(1056);
emit_16(1120);
emit_16(1055);
emit_16(1120);
emit_16(1056);
emit_16(1121);
emit_16(1057);
emit_16(1121);
emit_16(1056);
emit_16(1121);
emit_16(1057);
emit_16(1122);
emit_16(1058);
emit_16(1122);
emit_16(1057);
emit_16(1122);
emit_16(1058);
emit_16(1123);
emit_16(1059);
emit_16(1123);
emit_16(1058);
emit_16(1123);
emit_16(1059);
emit_16(1124);
emit_16(1060);
emit_16(1124);
emit_16(1059);
emit_16(1124);
emit_16(1060);
emit_16(1125);
emit_16(1061);
emit_16(1125);
emit_16(1060);
emit_16(1125);
emit_16(1061);
emit_16(1126);
emit_16(1062);
emit_16(1126);
emit_16(1061);
emit_16(1126);
emit_16(1062);
emit_16(1127);
emit_16(1063);
emit_16(1127);
emit_16(1062);
emit_16(1127);
emit_16(1063);
emit_16(1128);
emit_16(1064);
emit_16(1128);
emit_16(1063);
emit_16(1128);
emit_16(1064);
emit_16(1129);
emit_16(1065);
emit_16(1129);
emit_16(1064);
emit_16(1129);
emit_16(1065);
emit_16(1130);
emit_16(1066);
emit_16(1130);
emit_16(1065);
emit_16(1130);
emit_16(1066);
emit_16(1131);
emit_16(1067);
emit_16(1131);
emit_16(1066);
emit_16(1131);
emit_16(1067);
emit_16(1132);
emit_16(1068);
emit_16(1132);
emit_16(1067);
emit_16(1132);
emit_16(1068);
emit_16(1133);
emit_16(1069);
emit_16(1133);
emit_16(1068);
emit_16(1133);
emit_16(1069);
emit_16(1134);
emit_16(1070);
emit_16(1134);
emit_16(1069);
emit_16(1134);
emit_16(1070);
emit_16(1135);
emit_16(1071);
emit_16(1135);
emit_16(1070);
emit_16(1135);
emit_16(1071);
emit_16(1136);
emit_16(1072);
emit_16(1136);
emit_16(1071);
emit_16(1136);
emit_16(1072);
emit_16(1137);
emit_16(1073);
emit_16(1137);
emit_16(1072);
emit_16(1137);
emit_16(1073);
emit_16(1138);
emit_16(1074);
emit_16(1138);
emit_16(1073);
emit_16(1138);
emit_16(1074);
emit_16(1139);
emit_16(1075);
emit_16(1139);
emit_16(1074);
emit_16(1139);
emit_16(1075);
emit_16(1140);
emit_16(1076);
emit_16(1140);
emit_16(1075);
emit_16(1140);
emit_16(1076);
emit_16(1141);
emit_16(1077);
emit_16(1141);
emit_16(1076);
emit_16(1141);
emit_16(1077);
emit_16(1142);
emit_16(1078);
emit_16(1142);
emit_16(1077);
emit_16(1142);
emit_16(1078);
emit_16(1143);
emit_16(1079);
emit_16(1143);
emit_16(1078);
emit_16(1143);
emit_16(1079);
emit_16(1144);
emit_16(1080);
emit_16(1144);
emit_16(1079);
emit_16(1144);
emit_16(1080);
emit_16(1145);
emit_16(1081);
emit_16(1145);
emit_16(1080);
emit_16(1145);
emit_16(1081);
emit_16(1146);
emit_16(1082);
emit_16(1146);
emit_16(1081);
emit_16(1146);
emit_16(1082);
emit_16(1147);
emit_16(1083);
emit_16(1147);
emit_16(1082);
emit_16(1147);
emit_16(1083);
emit_16(1148);
emit_16(1084);
emit_16(1148);
emit_16(1083);
emit_16(1148);
emit_16(1084);
emit_16(1149);
emit_16(1085);
emit_16(1149);
emit_16(1084);
emit_16(1149);
emit_16(1085);
emit_16(1150);
emit_16(1086);
emit_16(1150);
emit_16(1085);
emit_16(1150);
emit_16(1086);
emit_16(1151);
emit_16(1087);
emit_16(1151);
emit_16(1086);
emit_16(1152);
emit_16(1088);
emit_16(1153);
emit_16(1089);
emit_16(1153);
emit_16(1088);
emit_16(1153);
emit_16(1089);
emit_16(1154);
emit_16(1090);
emit_16(1154);
emit_16(1089);
emit_16(1154);
emit_16(1090);
emit_16(1155);
emit_16(1091);
emit_16(1155);
emit_16(1090);
emit_16(1155);
emit_16(1091);
emit_16(1156);
emit_16(1092);
emit_16(1156);
emit_16(1091);
emit_16(1156);
emit_16(1092);
emit_16(1157);
emit_16(1093);
emit_16(1157);
emit_16(1092);
emit_16(1157);
emit_16(1093);
emit_16(1158);
emit_16(1094);
emit_16(1158);
emit_16(1093);
emit_16(1158);
emit_16(1094);
emit_16(1159);
emit_16(1095);
emit_16(1159);
emit_16(1094);
emit_16(1159);
emit_16(1095);
emit_16(1160);
emit_16(1096);
emit_16(1160);
emit_16(1095);
emit_16(1160);
emit_16(1096);
emit_16(1161);
emit_16(1097);
emit_16(1161);
emit_16(1096);
emit_16(1161);
emit_16(1097);
emit_16(1162);
emit_16(1098);
emit_16(1162);
emit_16(1097);
emit_16(1162);
emit_16(1098);
emit_16(1163);
emit_16(1099);
emit_16(1163);
emit_16(1098);
emit_16(1163);
emit_16(1099);
emit_16(1164);
emit_16(1100);
emit_16(1164);
emit_16(1099);
emit_16(1164);
emit_16(1100);
emit_16(1165);
emit_16(1101);
emit_16(1165);
emit_16(1100);
emit_16(1165);
emit_16(1101);
emit_16(1166);
emit_16(1102);
emit_16(1166);
emit_16(1101);
emit_16(1166);
emit_16(1102);
emit_16(1167);
emit_16(1103);
emit_16(1167);
emit_16(1102);
emit_16(1167);
emit_16(1103);
emit_16(1168);
emit_16(1104);
emit_16(1168);
emit_16(1103);
emit_16(1168);
emit_16(1104);
emit_16(1169);
emit_16(1105);
emit_16(1169);
emit_16(1104);
emit_16(1169);
emit_16(1105);
emit_16(1170);
emit_16(1106);
emit_16(1170);
emit_16(1105);
emit_16(1170);
emit_16(1106);
emit_16(1171);
emit_16(1107);
emit_16(1171);
emit_16(1106);
emit_16(1171);
emit_16(1107);
emit_16(1172);
emit_16(1108);
emit_16(1172);
emit_16(1107);
emit_16(1172);
emit_16(1108);
emit_16(1173);
emit_16(1109);
emit_16(1173);
emit_16(1108);
emit_16(1173);
emit_16(1109);
emit_16(1174);
emit_16(1110);
emit_16(1174);
emit_16(1109);
emit_16(1174);
emit_16(1110);
emit_16(1175);
emit_16(1111);
emit_16(1175);
emit_16(1110);
emit_16(1175);
emit_16(1111);
emit_16(1176);
emit_16(1112);
emit_16(1176);
emit_16(1111);
emit_16(1176);
emit_16(1112);
emit_16(1177);
emit_16(1113);
emit_16(1177);
emit_16(1112);
emit_16(1177);
emit_16(1113);
emit_16(1178);
emit_16(1114);
emit_16(1178);
emit_16(1113);
emit_16(1178);
emit_16(1114);
emit_16(1179);
emit_16(1115);
emit_16(1179);
emit_16(1114);
emit_16(1179);
emit_16(1115);
emit_16(1180);
emit_16(1116);
emit_16(1180);
emit_16(1115);
emit_16(1180);
emit_16(1116);
emit_16(1181);
emit_16(1117);
emit_16(1181);
emit_16(1116);
emit_16(1181);
emit_16(1117);
emit_16(1182);
emit_16(1118);
emit_16(1182);
emit_16(1117);
emit_16(1182);
emit_16(1118);
emit_16(1183);
emit_16(1119);
emit_16(1183);
emit_16(1118);
emit_16(1183);
emit_16(1119);
emit_16(1184);
emit_16(1120);
emit_16(1184);
emit_16(1119);
emit_16(1184);
emit_16(1120);
emit_16(1185);
emit_16(1121);
emit_16(1185);
emit_16(1120);
emit_16(1185);
emit_16(1121);
emit_16(1186);
emit_16(1122);
emit_16(1186);
emit_16(1121);
emit_16(1186);
emit_16(1122);
emit_16(1187);
emit_16(1123);
emit_16(1187);
emit_16(1122);
emit_16(1187);
emit_16(1123);
emit_16(1188);
emit_16(1124);
emit_16(1188);
emit_16(1123);
emit_16(1188);
emit_16(1124);
emit_16(1189);
emit_16(1125);
emit_16(1189);
emit_16(1124);
emit_16(1189);
emit_16(1125);
emit_16(1190);
emit_16(1126);
emit_16(1190);
emit_16(1125);
emit_16(1190);
emit_16(1126);
emit_16(1191);
emit_16(1127);
emit_16(1191);
emit_16(1126);
emit_16(1191);
emit_16(1127);
emit_16(1192);
emit_16(1128);
emit_16(1192);
emit_16(1127);
emit_16(1192);
emit_16(1128);
emit_16(1193);
emit_16(1129);
emit_16(1193);
emit_16(1128);
emit_16(1193);
emit_16(1129);
emit_16(1194);
emit_16(1130);
emit_16(1194);
emit_16(1129);
emit_16(1194);
emit_16(1130);
emit_16(1195);
emit_16(1131);
emit_16(1195);
emit_16(1130);
emit_16(1195);
emit_16(1131);
emit_16(1196);
emit_16(1132);
emit_16(1196);
emit_16(1131);
emit_16(1196);
emit_16(1132);
emit_16(1197);
emit_16(1133);
emit_16(1197);
emit_16(1132);
emit_16(1197);
emit_16(1133);
emit_16(1198);
emit_16(1134);
emit_16(1198);
emit_16(1133);
emit_16(1198);
emit_16(1134);
emit_16(1199);
emit_16(1135);
emit_16(1199);
emit_16(1134);
emit_16(1199);
emit_16(1135);
emit_16(1200);
emit_16(1136);
emit_16(1200);
emit_16(1135);
emit_16(1200);
emit_16(1136);
emit_16(1201);
emit_16(1137);
emit_16(1201);
emit_16(1136);
emit_16(1201);
emit_16(1137);
emit_16(1202);
emit_16(1138);
emit_16(1202);
emit_16(1137);
emit_16(1202);
emit_16(1138);
emit_16(1203);
emit_16(1139);
emit_16(1203);
emit_16(1138);
emit_16(1203);
emit_16(1139);
emit_16(1204);
emit_16(1140);
emit_16(1204);
emit_16(1139);
emit_16(1204);
emit_16(1140);
emit_16(1205);
emit_16(1141);
emit_16(1205);
emit_16(1140);
emit_16(1205);
emit_16(1141);
emit_16(1206);
emit_16(1142);
emit_16(1206);
emit_16(1141);
emit_16(1206);
emit_16(1142);
emit_16(1207);
emit_16(1143);
emit_16(1207);
emit_16(1142);
emit_16(1207);
emit_16(1143);
emit_16(1208);
emit_16(1144);
emit_16(1208);
emit_16(1143);
emit_16(1208);
emit_16(1144);
emit_16(1209);
emit_16(1145);
emit_16(1209);
emit_16(1144);
emit_16(1209);
emit_16(1145);
emit_16(1210);
emit_16(1146);
emit_16(1210);
emit_16(1145);
emit_16(1210);
emit_16(1146);
emit_16(1211);
emit_16(1147);
emit_16(1211);
emit_16(1146);
emit_16(1211);
emit_16(1147);
emit_16(1212);
emit_16(1148);
emit_16(1212);
emit_16(1147);
emit_16(1212);
emit_16(1148);
emit_16(1213);
emit_16(1149);
emit_16(1213);
emit_16(1148);
emit_16(1213);
emit_16(1149);
emit_16(1214);
emit_16(1150);
emit_16(1214);
emit_16(1149);
emit_16(1214);
emit_16(1150);
emit_16(1215);
emit_16(1151);
emit_16(1215);
emit_16(1150);
emit_16(1216);
emit_16(1152);
emit_16(1217);
emit_16(1153);
emit_16(1217);
emit_16(1152);
emit_16(1217);
emit_16(1153);
emit_16(1218);
emit_16(1154);
emit_16(1218);
emit_16(1153);
emit_16(1218);
emit_16(1154);
emit_16(1219);
emit_16(1155);
emit_16(1219);
emit_16(1154);
emit_16(1219);
emit_16(1155);
emit_16(1220);
emit_16(1156);
emit_16(1220);
emit_16(1155);
emit_16(1220);
emit_16(1156);
emit_16(1221);
emit_16(1157);
emit_16(1221);
emit_16(1156);
emit_16(1221);
emit_16(1157);
emit_16(1222);
emit_16(1158);
emit_16(1222);
emit_16(1157);
emit_16(1222);
emit_16(1158);
emit_16(1223);
emit_16(1159);
emit_16(1223);
emit_16(1158);
emit_16(1223);
emit_16(1159);
emit_16(1224);
emit_16(1160);
emit_16(1224);
emit_16(1159);
emit_16(1224);
emit_16(1160);
emit_16(1225);
emit_16(1161);
emit_16(1225);
emit_16(1160);
emit_16(1225);
emit_16(1161);
emit_16(1226);
emit_16(1162);
emit_16(1226);
emit_16(1161);
emit_16(1226);
emit_16(1162);
emit_16(1227);
emit_16(1163);
emit_16(1227);
emit_16(1162);
emit_16(1227);
emit_16(1163);
emit_16(1228);
emit_16(1164);
emit_16(1228);
emit_16(1163);
emit_16(1228);
emit_16(1164);
emit_16(1229);
emit_16(1165);
emit_16(1229);
emit_16(1164);
emit_16(1229);
emit_16(1165);
emit_16(1230);
emit_16(1166);
emit_16(1230);
emit_16(1165);
emit_16(1230);
emit_16(1166);
emit_16(1231);
emit_16(1167);
emit_16(1231);
emit_16(1166);
emit_16(1231);
emit_16(1167);
emit_16(1232);
emit_16(1168);
emit_16(1232);
emit_16(1167);
emit_16(1232);
emit_16(1168);
emit_16(1233);
emit_16(1169);
emit_16(1233);
emit_16(1168);
emit_16(1233);
emit_16(1169);
emit_16(1234);
emit_16(1170);
emit_16(1234);
emit_16(1169);
emit_16(1234);
emit_16(1170);
emit_16(1235);
emit_16(1171);
emit_16(1235);
emit_16(1170);
emit_16(1235);
emit_16(1171);
emit_16(1236);
emit_16(1172);
emit_16(1236);
emit_16(1171);
emit_16(1236);
emit_16(1172);
emit_16(1237);
emit_16(1173);
emit_16(1237);
emit_16(1172);
emit_16(1237);
emit_16(1173);
emit_16(1238);
emit_16(1174);
emit_16(1238);
emit_16(1173);
emit_16(1238);
emit_16(1174);
emit_16(1239);
emit_16(1175);
emit_16(1239);
emit_16(1174);
emit_16(1239);
emit_16(1175);
emit_16(1240);
emit_16(1176);
emit_16(1240);
emit_16(1175);
emit_16(1240);
emit_16(1176);
emit_16(1241);
emit_16(1177);
emit_16(1241);
emit_16(1176);
emit_16(1241);
emit_16(1177);
emit_16(1242);
emit_16(1178);
emit_16(1242);
emit_16(1177);
emit_16(1242);
emit_16(1178);
emit_16(1243);
emit_16(1179);
emit_16(1243);
emit_16(1178);
emit_16(1243);
emit_16(1179);
emit_16(1244);
emit_16(1180);
emit_16(1244);
emit_16(1179);
emit_16(1244);
emit_16(1180);
emit_16(1245);
emit_16(1181);
emit_16(1245);
emit_16(1180);
emit_16(1245);
emit_16(1181);
emit_16(1246);
emit_16(1182);
emit_16(1246);
emit_16(1181);
emit_16(1246);
emit_16(1182);
emit_16(1247);
emit_16(1183);
emit_16(1247);
emit_16(1182);
emit_16(1247);
emit_16(1183);
emit_16(1248);
emit_16(1184);
emit_16(1248);
emit_16(1183);
emit_16(1248);
emit_16(1184);
emit_16(1249);
emit_16(1185);
emit_16(1249);
emit_16(1184);
emit_16(1249);
emit_16(1185);
emit_16(1250);
emit_16(1186);
emit_16(1250);
emit_16(1185);
emit_16(1250);
emit_16(1186);
emit_16(1251);
emit_16(1187);
emit_16(1251);
emit_16(1186);
emit_16(1251);
emit_16(1187);
emit_16(1252);
emit_16(1188);
emit_16(1252);
emit_16(1187);
emit_16(1252);
emit_16(1188);
emit_16(1253);
emit_16(1189);
emit_16(1253);
emit_16(1188);
emit_16(1253);
emit_16(1189);
emit_16(1254);
emit_16(1190);
emit_16(1254);
emit_16(1189);
emit_16(1254);
emit_16(1190);
emit_16(1255);
emit_16(1191);
emit_16(1255);
emit_16(1190);
emit_16(1255);
emit_16(1191);
emit_16(1256);
emit_16(1192);
emit_16(1256);
emit_16(1191);
emit_16(1256);
emit_16(1192);
emit_16(1257);
emit_16(1193);
emit_16(1257);
emit_16(1192);
emit_16(1257);
emit_16(1193);
emit_16(1258);
emit_16(1194);
emit_16(1258);
emit_16(1193);
emit_16(1258);
emit_16(1194);
emit_16(1259);
emit_16(1195);
emit_16(1259);
emit_16(1194);
emit_16(1259);
emit_16(1195);
emit_16(1260);
emit_16(1196);
emit_16(1260);
emit_16(1195);
emit_16(1260);
emit_16(1196);
emit_16(1261);
emit_16(1197);
emit_16(1261);
emit_16(1196);
emit_16(1261);
emit_16(1197);
emit_16(1262);
emit_16(1198);
emit_16(1262);
emit_16(1197);
emit_16(1262);
emit_16(1198);
emit_16(1263);
emit_16(1199);
emit_16(1263);
emit_16(1198);
emit_16(1263);
emit_16(1199);
emit_16(1264);
emit_16(1200);
emit_16(1264);
emit_16(1199);
emit_16(1264);
emit_16(1200);
emit_16(1265);
emit_16(1201);
emit_16(1265);
emit_16(1200);
emit_16(1265);
emit_16(1201);
emit_16(1266);
emit_16(1202);
emit_16(1266);
emit_16(1201);
emit_16(1266);
emit_16(1202);
emit_16(1267);
emit_16(1203);
emit_16(1267);
emit_16(1202);
emit_16(1267);
emit_16(1203);
emit_16(1268);
emit_16(1204);
emit_16(1268);
emit_16(1203);
emit_16(1268);
emit_16(1204);
emit_16(1269);
emit_16(1205);
emit_16(1269);
emit_16(1204);
emit_16(1269);
emit_16(1205);
emit_16(1270);
emit_16(1206);
emit_16(1270);
emit_16(1205);
emit_16(1270);
emit_16(1206);
emit_16(1271);
emit_16(1207);
emit_16(1271);
emit_16(1206);
emit_16(1271);
emit_16(1207);
emit_16(1272);
emit_16(1208);
emit_16(1272);
emit_16(1207);
emit_16(1272);
emit_16(1208);
emit_16(1273);
emit_16(1209);
emit_16(1273);
emit_16(1208);
emit_16(1273);
emit_16(1209);
emit_16(1274);
emit_16(1210);
emit_16(1274);
emit_16(1209);
emit_16(1274);
emit_16(1210);
emit_16(1275);
emit_16(1211);
emit_16(1275);
emit_16(1210);
emit_16(1275);
emit_16(1211);
emit_16(1276);
emit_16(1212);
emit_16(1276);
emit_16(1211);
emit_16(1276);
emit_16(1212);
emit_16(1277);
emit_16(1213);
emit_16(1277);
emit_16(1212);
emit_16(1277);
emit_16(1213);
emit_16(1278);
emit_16(1214);
emit_16(1278);
emit_16(1213);
emit_16(1278);
emit_16(1214);
emit_16(1279);
emit_16(1215);
emit_16(1279);
emit_16(1214);
emit_16(1280);
emit_16(1216);
emit_16(1281);
emit_16(1217);
emit_16(1281);
emit_16(1216);
emit_16(1281);
emit_16(1217);
emit_16(1282);
emit_16(1218);
emit_16(1282);
emit_16(1217);
emit_16(1282);
emit_16(1218);
emit_16(1283);
emit_16(1219);
emit_16(1283);
emit_16(1218);
emit_16(1283);
emit_16(1219);
emit_16(1284);
emit_16(1220);
emit_16(1284);
emit_16(1219);
emit_16(1284);
emit_16(1220);
emit_16(1285);
emit_16(1221);
emit_16(1285);
emit_16(1220);
emit_16(1285);
emit_16(1221);
emit_16(1286);
emit_16(1222);
emit_16(1286);
emit_16(1221);
emit_16(1286);
emit_16(1222);
emit_16(1287);
emit_16(1223);
emit_16(1287);
emit_16(1222);
emit_16(1287);
emit_16(1223);
emit_16(1288);
emit_16(1224);
emit_16(1288);
emit_16(1223);
emit_16(1288);
emit_16(1224);
emit_16(1289);
emit_16(1225);
emit_16(1289);
emit_16(1224);
emit_16(1289);
emit_16(1225);
emit_16(1290);
emit_16(1226);
emit_16(1290);
emit_16(1225);
emit_16(1290);
emit_16(1226);
emit_16(1291);
emit_16(1227);
emit_16(1291);
emit_16(1226);
emit_16(1291);
emit_16(1227);
emit_16(1292);
emit_16(1228);
emit_16(1292);
emit_16(1227);
emit_16(1292);
emit_16(1228);
emit_16(1293);
emit_16(1229);
emit_16(1293);
emit_16(1228);
emit_16(1293);
emit_16(1229);
emit_16(1294);
emit_16(1230);
emit_16(1294);
emit_16(1229);
emit_16(1294);
emit_16(1230);
emit_16(1295);
emit_16(1231);
emit_16(1295);
emit_16(1230);
emit_16(1295);
emit_16(1231);
emit_16(1296);
emit_16(1232);
emit_16(1296);
emit_16(1231);
emit_16(1296);
emit_16(1232);
emit_16(1297);
emit_16(1233);
emit_16(1297);
emit_16(1232);
emit_16(1297);
emit_16(1233);
emit_16(1298);
emit_16(1234);
emit_16(1298);
emit_16(1233);
emit_16(1298);
emit_16(1234);
emit_16(1299);
emit_16(1235);
emit_16(1299);
emit_16(1234);
emit_16(1299);
emit_16(1235);
emit_16(1300);
emit_16(1236);
emit_16(1300);
emit_16(1235);
emit_16(1300);
emit_16(1236);
emit_16(1301);
emit_16(1237);
emit_16(1301);
emit_16(1236);
emit_16(1301);
emit_16(1237);
emit_16(1302);
emit_16(1238);
emit_16(1302);
emit_16(1237);
emit_16(1302);
emit_16(1238);
emit_16(1303);
emit_16(1239);
emit_16(1303);
emit_16(1238);
emit_16(1303);
emit_16(1239);
emit_16(1304);
emit_16(1240);
emit_16(1304);
emit_16(1239);
emit_16(1304);
emit_16(1240);
emit_16(1305);
emit_16(1241);
emit_16(1305);
emit_16(1240);
emit_16(1305);
emit_16(1241);
emit_16(1306);
emit_16(1242);
emit_16(1306);
emit_16(1241);
emit_16(1306);
emit_16(1242);
emit_16(1307);
emit_16(1243);
emit_16(1307);
emit_16(1242);
emit_16(1307);
emit_16(1243);
emit_16(1308);
emit_16(1244);
emit_16(1308);
emit_16(1243);
emit_16(1308);
emit_16(1244);
emit_16(1309);
emit_16(1245);
emit_16(1309);
emit_16(1244);
emit_16(1309);
emit_16(1245);
emit_16(1310);
emit_16(1246);
emit_16(1310);
emit_16(1245);
emit_16(1310);
emit_16(1246);
emit_16(1311);
emit_16(1247);
emit_16(1311);
emit_16(1246);
emit_16(1311);
emit_16(1247);
emit_16(1312);
emit_16(1248);
emit_16(1312);
emit_16(1247);
emit_16(1312);
emit_16(1248);
emit_16(1313);
emit_16(1249);
emit_16(1313);
emit_16(1248);
emit_16(1313);
emit_16(1249);
emit_16(1314);
emit_16(1250);
emit_16(1314);
emit_16(1249);
emit_16(1314);
emit_16(1250);
emit_16(1315);
emit_16(1251);
emit_16(1315);
emit_16(1250);
emit_16(1315);
emit_16(1251);
emit_16(1316);
emit_16(1252);
emit_16(1316);
emit_16(1251);
emit_16(1316);
emit_16(1252);
emit_16(1317);
emit_16(1253);
emit_16(1317);
emit_16(1252);
emit_16(1317);
emit_16(1253);
emit_16(1318);
emit_16(1254);
emit_16(1318);
emit_16(1253);
emit_16(1318);
emit_16(1254);
emit_16(1319);
emit_16(1255);
emit_16(1319);
emit_16(1254);
emit_16(1319);
emit_16(1255);
emit_16(1320);
emit_16(1256);
emit_16(1320);
emit_16(1255);
emit_16(1320);
emit_16(1256);
emit_16(1321);
emit_16(1257);
emit_16(1321);
emit_16(1256);
emit_16(1321);
emit_16(1257);
emit_16(1322);
emit_16(1258);
emit_16(1322);
emit_16(1257);
emit_16(1322);
emit_16(1258);
emit_16(1323);
emit_16(1259);
emit_16(1323);
emit_16(1258);
emit_16(1323);
emit_16(1259);
emit_16(1324);
emit_16(1260);
emit_16(1324);
emit_16(1259);
emit_16(1324);
emit_16(1260);
emit_16(1325);
emit_16(1261);
emit_16(1325);
emit_16(1260);
emit_16(1325);
emit_16(1261);
emit_16(1326);
emit_16(1262);
emit_16(1326);
emit_16(1261);
emit_16(1326);
emit_16(1262);
emit_16(1327);
emit_16(1263);
emit_16(1327);
emit_16(1262);
emit_16(1327);
emit_16(1263);
emit_16(1328);
emit_16(1264);
emit_16(1328);
emit_16(1263);
emit_16(1328);
emit_16(1264);
emit_16(1329);
emit_16(1265);
emit_16(1329);
emit_16(1264);
emit_16(1329);
emit_16(1265);
emit_16(1330);
emit_16(1266);
emit_16(1330);
emit_16(1265);
emit_16(1330);
emit_16(1266);
emit_16(1331);
emit_16(1267);
emit_16(1331);
emit_16(1266);
emit_16(1331);
emit_16(1267);
emit_16(1332);
emit_16(1268);
emit_16(1332);
emit_16(1267);
emit_16(1332);
emit_16(1268);
emit_16(1333);
emit_16(1269);
emit_16(1333);
emit_16(1268);
emit_16(1333);
emit_16(1269);
emit_16(1334);
emit_16(1270);
emit_16(1334);
emit_16(1269);
emit_16(1334);
emit_16(1270);
emit_16(1335);
emit_16(1271);
emit_16(1335);
emit_16(1270);
emit_16(1335);
emit_16(1271);
emit_16(1336);
emit_16(1272);
emit_16(1336);
emit_16(1271);
emit_16(1336);
emit_16(1272);
emit_16(1337);
emit_16(1273);
emit_16(1337);
emit_16(1272);
emit_16(1337);
emit_16(1273);
emit_16(1338);
emit_16(1274);
emit_16(1338);
emit_16(1273);
emit_16(1338);
emit_16(1274);
emit_16(1339);
emit_16(1275);
emit_16(1339);
emit_16(1274);
emit_16(1339);
emit_16(1275);
emit_16(1340);
emit_16(1276);
emit_16(1340);
emit_16(1275);
emit_16(1340);
emit_16(1276);
emit_16(1341);
emit_16(1277);
emit_16(1341);
emit_16(1276);
emit_16(1341);
emit_16(1277);
emit_16(1342);
emit_16(1278);
emit_16(1342);
emit_16(1277);
emit_16(1342);
emit_16(1278);
emit_16(1343);
emit_16(1279);
emit_16(1343);
emit_16(1278);
emit_16(1344);
emit_16(1280);
emit_16(1345);
emit_16(1281);
emit_16(1345);
emit_16(1280);
emit_16(1345);
emit_16(1281);
emit_16(1346);
emit_16(1282);
emit_16(1346);
emit_16(1281);
emit_16(1346);
emit_16(1282);
emit_16(1347);
emit_16(1283);
emit_16(1347);
emit_16(1282);
emit_16(1347);
emit_16(1283);
emit_16(1348);
emit_16(1284);
emit_16(1348);
emit_16(1283);
emit_16(1348);
emit_16(1284);
emit_16(1349);
emit_16(1285);
emit_16(1349);
emit_16(1284);
emit_16(1349);
emit_16(1285);
emit_16(1350);
emit_16(1286);
emit_16(1350);
emit_16(1285);
emit_16(1350);
emit_16(1286);
emit_16(1351);
emit_16(1287);
emit_16(1351);
emit_16(1286);
emit_16(1351);
emit_16(1287);
emit_16(1352);
emit_16(1288);
emit_16(1352);
emit_16(1287);
emit_16(1352);
emit_16(1288);
emit_16(1353);
emit_16(1289);
emit_16(1353);
emit_16(1288);
emit_16(1353);
emit_16(1289);
emit_16(1354);
emit_16(1290);
emit_16(1354);
emit_16(1289);
emit_16(1354);
emit_16(1290);
emit_16(1355);
emit_16(1291);
emit_16(1355);
emit_16(1290);
emit_16(1355);
emit_16(1291);
emit_16(1356);
emit_16(1292);
emit_16(1356);
emit_16(1291);
emit_16(1356);
emit_16(1292);
emit_16(1357);
emit_16(1293);
emit_16(1357);
emit_16(1292);
emit_16(1357);
emit_16(1293);
emit_16(1358);
emit_16(1294);
emit_16(1358);
emit_16(1293);
emit_16(1358);
emit_16(1294);
emit_16(1359);
emit_16(1295);
emit_16(1359);
emit_16(1294);
emit_16(1359);
emit_16(1295);
emit_16(1360);
emit_16(1296);
emit_16(1360);
emit_16(1295);
emit_16(1360);
emit_16(1296);
emit_16(1361);
emit_16(1297);
emit_16(1361);
emit_16(1296);
emit_16(1361);
emit_16(1297);
emit_16(1362);
emit_16(1298);
emit_16(1362);
emit_16(1297);
emit_16(1362);
emit_16(1298);
emit_16(1363);
emit_16(1299);
emit_16(1363);
emit_16(1298);
emit_16(1363);
emit_16(1299);
emit_16(1364);
emit_16(1300);
emit_16(1364);
emit_16(1299);
emit_16(1364);
emit_16(1300);
emit_16(1365);
emit_16(1301);
emit_16(1365);
emit_16(1300);
emit_16(1365);
emit_16(1301);
emit_16(1366);
emit_16(1302);
emit_16(1366);
emit_16(1301);
emit_16(1366);
emit_16(1302);
emit_16(1367);
emit_16(1303);
emit_16(1367);
emit_16(1302);
emit_16(1367);
emit_16(1303);
emit_16(1368);
emit_16(1304);
emit_16(1368);
emit_16(1303);
emit_16(1368);
emit_16(1304);
emit_16(1369);
emit_16(1305);
emit_16(1369);
emit_16(1304);
emit_16(1369);
emit_16(1305);
emit_16(1370);
emit_16(1306);
emit_16(1370);
emit_16(1305);
emit_16(1370);
emit_16(1306);
emit_16(1371);
emit_16(1307);
emit_16(1371);
emit_16(1306);
emit_16(1371);
emit_16(1307);
emit_16(1372);
emit_16(1308);
emit_16(1372);
emit_16(1307);
emit_16(1372);
emit_16(1308);
emit_16(1373);
emit_16(1309);
emit_16(1373);
emit_16(1308);
emit_16(1373);
emit_16(1309);
emit_16(1374);
emit_16(1310);
emit_16(1374);
emit_16(1309);
emit_16(1374);
emit_16(1310);
emit_16(1375);
emit_16(1311);
emit_16(1375);
emit_16(1310);
emit_16(1375);
emit_16(1311);
emit_16(1376);
emit_16(1312);
emit_16(1376);
emit_16(1311);
emit_16(1376);
emit_16(1312);
emit_16(1377);
emit_16(1313);
emit_16(1377);
emit_16(1312);
emit_16(1377);
emit_16(1313);
emit_16(1378);
emit_16(1314);
emit_16(1378);
emit_16(1313);
emit_16(1378);
emit_16(1314);
emit_16(1379);
emit_16(1315);
emit_16(1379);
emit_16(1314);
emit_16(1379);
emit_16(1315);
emit_16(1380);
emit_16(1316);
emit_16(1380);
emit_16(1315);
emit_16(1380);
emit_16(1316);
emit_16(1381);
emit_16(1317);
emit_16(1381);
emit_16(1316);
emit_16(1381);
emit_16(1317);
emit_16(1382);
emit_16(1318);
emit_16(1382);
emit_16(1317);
emit_16(1382);
emit_16(1318);
emit_16(1383);
emit_16(1319);
emit_16(1383);
emit_16(1318);
emit_16(1383);
emit_16(1319);
emit_16(1384);
emit_16(1320);
emit_16(1384);
emit_16(1319);
emit_16(1384);
emit_16(1320);
emit_16(1385);
emit_16(1321);
emit_16(1385);
emit_16(1320);
emit_16(1385);
emit_16(1321);
emit_16(1386);
emit_16(1322);
emit_16(1386);
emit_16(1321);
emit_16(1386);
emit_16(1322);
emit_16(1387);
emit_16(1323);
emit_16(1387);
emit_16(1322);
emit_16(1387);
emit_16(1323);
emit_16(1388);
emit_16(1324);
emit_16(1388);
emit_16(1323);
emit_16(1388);
emit_16(1324);
emit_16(1389);
emit_16(1325);
emit_16(1389);
emit_16(1324);
emit_16(1389);
emit_16(1325);
emit_16(1390);
emit_16(1326);
emit_16(1390);
emit_16(1325);
emit_16(1390);
emit_16(1326);
emit_16(1391);
emit_16(1327);
emit_16(1391);
emit_16(1326);
emit_16(1391);
emit_16(1327);
emit_16(1392);
emit_16(1328);
emit_16(1392);
emit_16(1327);
emit_16(1392);
emit_16(1328);
emit_16(1393);
emit_16(1329);
emit_16(1393);
emit_16(1328);
emit_16(1393);
emit_16(1329);
emit_16(1394);
emit_16(1330);
emit_16(1394);
emit_16(1329);
emit_16(1394);
emit_16(1330);
emit_16(1395);
emit_16(1331);
emit_16(1395);
emit_16(1330);
emit_16(1395);
emit_16(1331);
emit_16(1396);
emit_16(1332);
emit_16(1396);
emit_16(1331);
emit_16(1396);
emit_16(1332);
emit_16(1397);
emit_16(1333);
emit_16(1397);
emit_16(1332);
emit_16(1397);
emit_16(1333);
emit_16(1398);
emit_16(1334);
emit_16(1398);
emit_16(1333);
emit_16(1398);
emit_16(1334);
emit_16(1399);
emit_16(1335);
emit_16(1399);
emit_16(1334);
emit_16(1399);
emit_16(1335);
emit_16(1400);
emit_16(1336);
emit_16(1400);
emit_16(1335);
emit_16(1400);
emit_16(1336);
emit_16(1401);
emit_16(1337);
emit_16(1401);
emit_16(1336);
emit_16(1401);
emit_16(1337);
emit_16(1402);
emit_16(1338);
emit_16(1402);
emit_16(1337);
emit_16(1402);
emit_16(1338);
emit_16(1403);
emit_16(1339);
emit_16(1403);
emit_16(1338);
emit_16(1403);
emit_16(1339);
emit_16(1404);
emit_16(1340);
emit_16(1404);
emit_16(1339);
emit_16(1404);
emit_16(1340);
emit_16(1405);
emit_16(1341);
emit_16(1405);
emit_16(1340);
emit_16(1405);
emit_16(1341);
emit_16(1406);
emit_16(1342);
emit_16(1406);
emit_16(1341);
emit_16(1406);
emit_16(1342);
emit_16(1407);
emit_16(1343);
emit_16(1407);
emit_16(1342);
emit_16(1408);
emit_16(1344);
emit_16(1409);
emit_16(1345);
emit_16(1409);
emit_16(1344);
emit_16(1409);
emit_16(1345);
emit_16(1410);
emit_16(1346);
emit_16(1410);
emit_16(1345);
emit_16(1410);
emit_16(1346);
emit_16(1411);
emit_16(1347);
emit_16(1411);
emit_16(1346);
emit_16(1411);
emit_16(1347);
emit_16(1412);
emit_16(1348);
emit_16(1412);
emit_16(1347);
emit_16(1412);
emit_16(1348);
emit_16(1413);
emit_16(1349);
emit_16(1413);
emit_16(1348);
emit_16(1413);
emit_16(1349);
emit_16(1414);
emit_16(1350);
emit_16(1414);
emit_16(1349);
emit_16(1414);
emit_16(1350);
emit_16(1415);
emit_16(1351);
emit_16(1415);
emit_16(1350);
emit_16(1415);
emit_16(1351);
emit_16(1416);
emit_16(1352);
emit_16(1416);
emit_16(1351);
emit_16(1416);
emit_16(1352);
emit_16(1417);
emit_16(1353);
emit_16(1417);
emit_16(1352);
emit_16(1417);
emit_16(1353);
emit_16(1418);
emit_16(1354);
emit_16(1418);
emit_16(1353);
emit_16(1418);
emit_16(1354);
emit_16(1419);
emit_16(1355);
emit_16(1419);
emit_16(1354);
emit_16(1419);
emit_16(1355);
emit_16(1420);
emit_16(1356);
emit_16(1420);
emit_16(1355);
emit_16(1420);
emit_16(1356);
emit_16(1421);
emit_16(1357);
emit_16(1421);
emit_16(1356);
emit_16(1421);
emit_16(1357);
emit_16(1422);
emit_16(1358);
emit_16(1422);
emit_16(1357);
emit_16(1422);
emit_16(1358);
emit_16(1423);
emit_16(1359);
emit_16(1423);
emit_16(1358);
emit_16(1423);
emit_16(1359);
emit_16(1424);
emit_16(1360);
emit_16(1424);
emit_16(1359);
emit_16(1424);
emit_16(1360);
emit_16(1425);
emit_16(1361);
emit_16(1425);
emit_16(1360);
emit_16(1425);
emit_16(1361);
emit_16(1426);
emit_16(1362);
emit_16(1426);
emit_16(1361);
emit_16(1426);
emit_16(1362);
emit_16(1427);
emit_16(1363);
emit_16(1427);
emit_16(1362);
emit_16(1427);
emit_16(1363);
emit_16(1428);
emit_16(1364);
emit_16(1428);
emit_16(1363);
emit_16(1428);
emit_16(1364);
emit_16(1429);
emit_16(1365);
emit_16(1429);
emit_16(1364);
emit_16(1429);
emit_16(1365);
emit_16(1430);
emit_16(1366);
emit_16(1430);
emit_16(1365);
emit_16(1430);
emit_16(1366);
emit_16(1431);
emit_16(1367);
emit_16(1431);
emit_16(1366);
emit_16(1431);
emit_16(1367);
emit_16(1432);
emit_16(1368);
emit_16(1432);
emit_16(1367);
emit_16(1432);
emit_16(1368);
emit_16(1433);
emit_16(1369);
emit_16(1433);
emit_16(1368);
emit_16(1433);
emit_16(1369);
emit_16(1434);
emit_16(1370);
emit_16(1434);
emit_16(1369);
emit_16(1434);
emit_16(1370);
emit_16(1435);
emit_16(1371);
emit_16(1435);
emit_16(1370);
emit_16(1435);
emit_16(1371);
emit_16(1436);
emit_16(1372);
emit_16(1436);
emit_16(1371);
emit_16(1436);
emit_16(1372);
emit_16(1437);
emit_16(1373);
emit_16(1437);
emit_16(1372);
emit_16(1437);
emit_16(1373);
emit_16(1438);
emit_16(1374);
emit_16(1438);
emit_16(1373);
emit_16(1438);
emit_16(1374);
emit_16(1439);
emit_16(1375);
emit_16(1439);
emit_16(1374);
emit_16(1439);
emit_16(1375);
emit_16(1440);
emit_16(1376);
emit_16(1440);
emit_16(1375);
emit_16(1440);
emit_16(1376);
emit_16(1441);
emit_16(1377);
emit_16(1441);
emit_16(1376);
emit_16(1441);
emit_16(1377);
emit_16(1442);
emit_16(1378);
emit_16(1442);
emit_16(1377);
emit_16(1442);
emit_16(1378);
emit_16(1443);
emit_16(1379);
emit_16(1443);
emit_16(1378);
emit_16(1443);
emit_16(1379);
emit_16(1444);
emit_16(1380);
emit_16(1444);
emit_16(1379);
emit_16(1444);
emit_16(1380);
emit_16(1445);
emit_16(1381);
emit_16(1445);
emit_16(1380);
emit_16(1445);
emit_16(1381);
emit_16(1446);
emit_16(1382);
emit_16(1446);
emit_16(1381);
emit_16(1446);
emit_16(1382);
emit_16(1447);
emit_16(1383);
emit_16(1447);
emit_16(1382);
emit_16(1447);
emit_16(1383);
emit_16(1448);
emit_16(1384);
emit_16(1448);
emit_16(1383);
emit_16(1448);
emit_16(1384);
emit_16(1449);
emit_16(1385);
emit_16(1449);
emit_16(1384);
emit_16(1449);
emit_16(1385);
emit_16(1450);
emit_16(1386);
emit_16(1450);
emit_16(1385);
emit_16(1450);
emit_16(1386);
emit_16(1451);
emit_16(1387);
emit_16(1451);
emit_16(1386);
emit_16(1451);
emit_16(1387);
emit_16(1452);
emit_16(1388);
emit_16(1452);
emit_16(1387);
emit_16(1452);
emit_16(1388);
emit_16(1453);
emit_16(1389);
emit_16(1453);
emit_16(1388);
emit_16(1453);
emit_16(1389);
emit_16(1454);
emit_16(1390);
emit_16(1454);
emit_16(1389);
emit_16(1454);
emit_16(1390);
emit_16(1455);
emit_16(1391);
emit_16(1455);
emit_16(1390);
emit_16(1455);
emit_16(1391);
emit_16(1456);
emit_16(1392);
emit_16(1456);
emit_16(1391);
emit_16(1456);
emit_16(1392);
emit_16(1457);
emit_16(1393);
emit_16(1457);
emit_16(1392);
emit_16(1457);
emit_16(1393);
emit_16(1458);
emit_16(1394);
emit_16(1458);
emit_16(1393);
emit_16(1458);
emit_16(1394);
emit_16(1459);
emit_16(1395);
emit_16(1459);
emit_16(1394);
emit_16(1459);
emit_16(1395);
emit_16(1460);
emit_16(1396);
emit_16(1460);
emit_16(1395);
emit_16(1460);
emit_16(1396);
emit_16(1461);
emit_16(1397);
emit_16(1461);
emit_16(1396);
emit_16(1461);
emit_16(1397);
emit_16(1462);
emit_16(1398);
emit_16(1462);
emit_16(1397);
emit_16(1462);
emit_16(1398);
emit_16(1463);
emit_16(1399);
emit_16(1463);
emit_16(1398);
emit_16(1463);
emit_16(1399);
emit_16(1464);
emit_16(1400);
emit_16(1464);
emit_16(1399);
emit_16(1464);
emit_16(1400);
emit_16(1465);
emit_16(1401);
emit_16(1465);
emit_16(1400);
emit_16(1465);
emit_16(1401);
emit_16(1466);
emit_16(1402);
emit_16(1466);
emit_16(1401);
emit_16(1466);
emit_16(1402);
emit_16(1467);
emit_16(1403);
emit_16(1467);
emit_16(1402);
emit_16(1467);
emit_16(1403);
emit_16(1468);
emit_16(1404);
emit_16(1468);
emit_16(1403);
emit_16(1468);
emit_16(1404);
emit_16(1469);
emit_16(1405);
emit_16(1469);
emit_16(1404);
emit_16(1469);
emit_16(1405);
emit_16(1470);
emit_16(1406);
emit_16(1470);
emit_16(1405);
emit_16(1470);
emit_16(1406);
emit_16(1471);
emit_16(1407);
emit_16(1471);
emit_16(1406);
emit_16(1472);
emit_16(1408);
emit_16(1473);
emit_16(1409);
emit_16(1473);
emit_16(1408);
emit_16(1473);
emit_16(1409);
emit_16(1474);
emit_16(1410);
emit_16(1474);
emit_16(1409);
emit_16(1474);
emit_16(1410);
emit_16(1475);
emit_16(1411);
emit_16(1475);
emit_16(1410);
emit_16(1475);
emit_16(1411);
emit_16(1476);
emit_16(1412);
emit_16(1476);
emit_16(1411);
emit_16(1476);
emit_16(1412);
emit_16(1477);
emit_16(1413);
emit_16(1477);
emit_16(1412);
emit_16(1477);
emit_16(1413);
emit_16(1478);
emit_16(1414);
emit_16(1478);
emit_16(1413);
emit_16(1478);
emit_16(1414);
emit_16(1479);
emit_16(1415);
emit_16(1479);
emit_16(1414);
emit_16(1479);
emit_16(1415);
emit_16(1480);
emit_16(1416);
emit_16(1480);
emit_16(1415);
emit_16(1480);
emit_16(1416);
emit_16(1481);
emit_16(1417);
emit_16(1481);
emit_16(1416);
emit_16(1481);
emit_16(1417);
emit_16(1482);
emit_16(1418);
emit_16(1482);
emit_16(1417);
emit_16(1482);
emit_16(1418);
emit_16(1483);
emit_16(1419);
emit_16(1483);
emit_16(1418);
emit_16(1483);
emit_16(1419);
emit_16(1484);
emit_16(1420);
emit_16(1484);
emit_16(1419);
emit_16(1484);
emit_16(1420);
emit_16(1485);
emit_16(1421);
emit_16(1485);
emit_16(1420);
emit_16(1485);
emit_16(1421);
emit_16(1486);
emit_16(1422);
emit_16(1486);
emit_16(1421);
emit_16(1486);
emit_16(1422);
emit_16(1487);
emit_16(1423);
emit_16(1487);
emit_16(1422);
emit_16(1487);
emit_16(1423);
emit_16(1488);
emit_16(1424);
emit_16(1488);
emit_16(1423);
emit_16(1488);
emit_16(1424);
emit_16(1489);
emit_16(1425);
emit_16(1489);
emit_16(1424);
emit_16(1489);
emit_16(1425);
emit_16(1490);
emit_16(1426);
emit_16(1490);
emit_16(1425);
emit_16(1490);
emit_16(1426);
emit_16(1491);
emit_16(1427);
emit_16(1491);
emit_16(1426);
emit_16(1491);
emit_16(1427);
emit_16(1492);
emit_16(1428);
emit_16(1492);
emit_16(1427);
emit_16(1492);
emit_16(1428);
emit_16(1493);
emit_16(1429);
emit_16(1493);
emit_16(1428);
emit_16(1493);
emit_16(1429);
emit_16(1494);
emit_16(1430);
emit_16(1494);
emit_16(1429);
emit_16(1494);
emit_16(1430);
emit_16(1495);
emit_16(1431);
emit_16(1495);
emit_16(1430);
emit_16(1495);
emit_16(1431);
emit_16(1496);
emit_16(1432);
emit_16(1496);
emit_16(1431);
emit_16(1496);
emit_16(1432);
emit_16(1497);
emit_16(1433);
emit_16(1497);
emit_16(1432);
emit_16(1497);
emit_16(1433);
emit_16(1498);
emit_16(1434);
emit_16(1498);
emit_16(1433);
emit_16(1498);
emit_16(1434);
emit_16(1499);
emit_16(1435);
emit_16(1499);
emit_16(1434);
emit_16(1499);
emit_16(1435);
emit_16(1500);
emit_16(1436);
emit_16(1500);
emit_16(1435);
emit_16(1500);
emit_16(1436);
emit_16(1501);
emit_16(1437);
emit_16(1501);
emit_16(1436);
emit_16(1501);
emit_16(1437);
emit_16(1502);
emit_16(1438);
emit_16(1502);
emit_16(1437);
emit_16(1502);
emit_16(1438);
emit_16(1503);
emit_16(1439);
emit_16(1503);
emit_16(1438);
emit_16(1503);
emit_16(1439);
emit_16(1504);
emit_16(1440);
emit_16(1504);
emit_16(1439);
emit_16(1504);
emit_16(1440);
emit_16(1505);
emit_16(1441);
emit_16(1505);
emit_16(1440);
emit_16(1505);
emit_16(1441);
emit_16(1506);
emit_16(1442);
emit_16(1506);
emit_16(1441);
emit_16(1506);
emit_16(1442);
emit_16(1507);
emit_16(1443);
emit_16(1507);
emit_16(1442);
emit_16(1507);
emit_16(1443);
emit_16(1508);
emit_16(1444);
emit_16(1508);
emit_16(1443);
emit_16(1508);
emit_16(1444);
emit_16(1509);
emit_16(1445);
emit_16(1509);
emit_16(1444);
emit_16(1509);
emit_16(1445);
emit_16(1510);
emit_16(1446);
emit_16(1510);
emit_16(1445);
emit_16(1510);
emit_16(1446);
emit_16(1511);
emit_16(1447);
emit_16(1511);
emit_16(1446);
emit_16(1511);
emit_16(1447);
emit_16(1512);
emit_16(1448);
emit_16(1512);
emit_16(1447);
emit_16(1512);
emit_16(1448);
emit_16(1513);
emit_16(1449);
emit_16(1513);
emit_16(1448);
emit_16(1513);
emit_16(1449);
emit_16(1514);
emit_16(1450);
emit_16(1514);
emit_16(1449);
emit_16(1514);
emit_16(1450);
emit_16(1515);
emit_16(1451);
emit_16(1515);
emit_16(1450);
emit_16(1515);
emit_16(1451);
emit_16(1516);
emit_16(1452);
emit_16(1516);
emit_16(1451);
emit_16(1516);
emit_16(1452);
emit_16(1517);
emit_16(1453);
emit_16(1517);
emit_16(1452);
emit_16(1517);
emit_16(1453);
emit_16(1518);
emit_16(1454);
emit_16(1518);
emit_16(1453);
emit_16(1518);
emit_16(1454);
emit_16(1519);
emit_16(1455);
emit_16(1519);
emit_16(1454);
emit_16(1519);
emit_16(1455);
emit_16(1520);
emit_16(1456);
emit_16(1520);
emit_16(1455);
emit_16(1520);
emit_16(1456);
emit_16(1521);
emit_16(1457);
emit_16(1521);
emit_16(1456);
emit_16(1521);
emit_16(1457);
emit_16(1522);
emit_16(1458);
emit_16(1522);
emit_16(1457);
emit_16(1522);
emit_16(1458);
emit_16(1523);
emit_16(1459);
emit_16(1523);
emit_16(1458);
emit_16(1523);
emit_16(1459);
emit_16(1524);
emit_16(1460);
emit_16(1524);
emit_16(1459);
emit_16(1524);
emit_16(1460);
emit_16(1525);
emit_16(1461);
emit_16(1525);
emit_16(1460);
emit_16(1525);
emit_16(1461);
emit_16(1526);
emit_16(1462);
emit_16(1526);
emit_16(1461);
emit_16(1526);
emit_16(1462);
emit_16(1527);
emit_16(1463);
emit_16(1527);
emit_16(1462);
emit_16(1527);
emit_16(1463);
emit_16(1528);
emit_16(1464);
emit_16(1528);
emit_16(1463);
emit_16(1528);
emit_16(1464);
emit_16(1529);
emit_16(1465);
emit_16(1529);
emit_16(1464);
emit_16(1529);
emit_16(1465);
emit_16(1530);
emit_16(1466);
emit_16(1530);
emit_16(1465);
emit_16(1530);
emit_16(1466);
emit_16(1531);
emit_16(1467);
emit_16(1531);
emit_16(1466);
emit_16(1531);
emit_16(1467);
emit_16(1532);
emit_16(1468);
emit_16(1532);
emit_16(1467);
emit_16(1532);
emit_16(1468);
emit_16(1533);
emit_16(1469);
emit_16(1533);
emit_16(1468);
emit_16(1533);
emit_16(1469);
emit_16(1534);
emit_16(1470);
emit_16(1534);
emit_16(1469);
emit_16(1534);
emit_16(1470);
emit_16(1535);
emit_16(1471);
emit_16(1535);
emit_16(1470);
emit_16(1536);
emit_16(1472);
emit_16(1537);
emit_16(1473);
emit_16(1537);
emit_16(1472);
emit_16(1537);
emit_16(1473);
emit_16(1538);
emit_16(1474);
emit_16(1538);
emit_16(1473);
emit_16(1538);
emit_16(1474);
emit_16(1539);
emit_16(1475);
emit_16(1539);
emit_16(1474);
emit_16(1539);
emit_16(1475);
emit_16(1540);
emit_16(1476);
emit_16(1540);
emit_16(1475);
emit_16(1540);
emit_16(1476);
emit_16(1541);
emit_16(1477);
emit_16(1541);
emit_16(1476);
emit_16(1541);
emit_16(1477);
emit_16(1542);
emit_16(1478);
emit_16(1542);
emit_16(1477);
emit_16(1542);
emit_16(1478);
emit_16(1543);
emit_16(1479);
emit_16(1543);
emit_16(1478);
emit_16(1543);
emit_16(1479);
emit_16(1544);
emit_16(1480);
emit_16(1544);
emit_16(1479);
emit_16(1544);
emit_16(1480);
emit_16(1545);
emit_16(1481);
emit_16(1545);
emit_16(1480);
emit_16(1545);
emit_16(1481);
emit_16(1546);
emit_16(1482);
emit_16(1546);
emit_16(1481);
emit_16(1546);
emit_16(1482);
emit_16(1547);
emit_16(1483);
emit_16(1547);
emit_16(1482);
emit_16(1547);
emit_16(1483);
emit_16(1548);
emit_16(1484);
emit_16(1548);
emit_16(1483);
emit_16(1548);
emit_16(1484);
emit_16(1549);
emit_16(1485);
emit_16(1549);
emit_16(1484);
emit_16(1549);
emit_16(1485);
emit_16(1550);
emit_16(1486);
emit_16(1550);
emit_16(1485);
emit_16(1550);
emit_16(1486);
emit_16(1551);
emit_16(1487);
emit_16(1551);
emit_16(1486);
emit_16(1551);
emit_16(1487);
emit_16(1552);
emit_16(1488);
emit_16(1552);
emit_16(1487);
emit_16(1552);
emit_16(1488);
emit_16(1553);
emit_16(1489);
emit_16(1553);
emit_16(1488);
emit_16(1553);
emit_16(1489);
emit_16(1554);
emit_16(1490);
emit_16(1554);
emit_16(1489);
emit_16(1554);
emit_16(1490);
emit_16(1555);
emit_16(1491);
emit_16(1555);
emit_16(1490);
emit_16(1555);
emit_16(1491);
emit_16(1556);
emit_16(1492);
emit_16(1556);
emit_16(1491);
emit_16(1556);
emit_16(1492);
emit_16(1557);
emit_16(1493);
emit_16(1557);
emit_16(1492);
emit_16(1557);
emit_16(1493);
emit_16(1558);
emit_16(1494);
emit_16(1558);
emit_16(1493);
emit_16(1558);
emit_16(1494);
emit_16(1559);
emit_16(1495);
emit_16(1559);
emit_16(1494);
emit_16(1559);
emit_16(1495);
emit_16(1560);
emit_16(1496);
emit_16(1560);
emit_16(1495);
emit_16(1560);
emit_16(1496);
emit_16(1561);
emit_16(1497);
emit_16(1561);
emit_16(1496);
emit_16(1561);
emit_16(1497);
emit_16(1562);
emit_16(1498);
emit_16(1562);
emit_16(1497);
emit_16(1562);
emit_16(1498);
emit_16(1563);
emit_16(1499);
emit_16(1563);
emit_16(1498);
emit_16(1563);
emit_16(1499);
emit_16(1564);
emit_16(1500);
emit_16(1564);
emit_16(1499);
emit_16(1564);
emit_16(1500);
emit_16(1565);
emit_16(1501);
emit_16(1565);
emit_16(1500);
emit_16(1565);
emit_16(1501);
emit_16(1566);
emit_16(1502);
emit_16(1566);
emit_16(1501);
emit_16(1566);
emit_16(1502);
emit_16(1567);
emit_16(1503);
emit_16(1567);
emit_16(1502);
emit_16(1567);
emit_16(1503);
emit_16(1568);
emit_16(1504);
emit_16(1568);
emit_16(1503);
emit_16(1568);
emit_16(1504);
emit_16(1569);
emit_16(1505);
emit_16(1569);
emit_16(1504);
emit_16(1569);
emit_16(1505);
emit_16(1570);
emit_16(1506);
emit_16(1570);
emit_16(1505);
emit_16(1570);
emit_16(1506);
emit_16(1571);
emit_16(1507);
emit_16(1571);
emit_16(1506);
emit_16(1571);
emit_16(1507);
emit_16(1572);
emit_16(1508);
emit_16(1572);
emit_16(1507);
emit_16(1572);
emit_16(1508);
emit_16(1573);
emit_16(1509);
emit_16(1573);
emit_16(1508);
emit_16(1573);
emit_16(1509);
emit_16(1574);
emit_16(1510);
emit_16(1574);
emit_16(1509);
emit_16(1574);
emit_16(1510);
emit_16(1575);
emit_16(1511);
emit_16(1575);
emit_16(1510);
emit_16(1575);
emit_16(1511);
emit_16(1576);
emit_16(1512);
emit_16(1576);
emit_16(1511);
emit_16(1576);
emit_16(1512);
emit_16(1577);
emit_16(1513);
emit_16(1577);
emit_16(1512);
emit_16(1577);
emit_16(1513);
emit_16(1578);
emit_16(1514);
emit_16(1578);
emit_16(1513);
emit_16(1578);
emit_16(1514);
emit_16(1579);
emit_16(1515);
emit_16(1579);
emit_16(1514);
emit_16(1579);
emit_16(1515);
emit_16(1580);
emit_16(1516);
emit_16(1580);
emit_16(1515);
emit_16(1580);
emit_16(1516);
emit_16(1581);
emit_16(1517);
emit_16(1581);
emit_16(1516);
emit_16(1581);
emit_16(1517);
emit_16(1582);
emit_16(1518);
emit_16(1582);
emit_16(1517);
emit_16(1582);
emit_16(1518);
emit_16(1583);
emit_16(1519);
emit_16(1583);
emit_16(1518);
emit_16(1583);
emit_16(1519);
emit_16(1584);
emit_16(1520);
emit_16(1584);
emit_16(1519);
emit_16(1584);
emit_16(1520);
emit_16(1585);
emit_16(1521);
emit_16(1585);
emit_16(1520);
emit_16(1585);
emit_16(1521);
emit_16(1586);
emit_16(1522);
emit_16(1586);
emit_16(1521);
emit_16(1586);
emit_16(1522);
emit_16(1587);
emit_16(1523);
emit_16(1587);
emit_16(1522);
emit_16(1587);
emit_16(1523);
emit_16(1588);
emit_16(1524);
emit_16(1588);
emit_16(1523);
emit_16(1588);
emit_16(1524);
emit_16(1589);
emit_16(1525);
emit_16(1589);
emit_16(1524);
emit_16(1589);
emit_16(1525);
emit_16(1590);
emit_16(1526);
emit_16(1590);
emit_16(1525);
emit_16(1590);
emit_16(1526);
emit_16(1591);
emit_16(1527);
emit_16(1591);
emit_16(1526);
emit_16(1591);
emit_16(1527);
emit_16(1592);
emit_16(1528);
emit_16(1592);
emit_16(1527);
emit_16(1592);
emit_16(1528);
emit_16(1593);
emit_16(1529);
emit_16(1593);
emit_16(1528);
emit_16(1593);
emit_16(1529);
emit_16(1594);
emit_16(1530);
emit_16(1594);
emit_16(1529);
emit_16(1594);
emit_16(1530);
emit_16(1595);
emit_16(1531);
emit_16(1595);
emit_16(1530);
emit_16(1595);
emit_16(1531);
emit_16(1596);
emit_16(1532);
emit_16(1596);
emit_16(1531);
emit_16(1596);
emit_16(1532);
emit_16(1597);
emit_16(1533);
emit_16(1597);
emit_16(1532);
emit_16(1597);
emit_16(1533);
emit_16(1598);
emit_16(1534);
emit_16(1598);
emit_16(1533);
emit_16(1598);
emit_16(1534);
emit_16(1599);
emit_16(1535);
emit_16(1599);
emit_16(1534);
emit_16(1600);
emit_16(1536);
emit_16(1601);
emit_16(1537);
emit_16(1601);
emit_16(1536);
emit_16(1601);
emit_16(1537);
emit_16(1602);
emit_16(1538);
emit_16(1602);
emit_16(1537);
emit_16(1602);
emit_16(1538);
emit_16(1603);
emit_16(1539);
emit_16(1603);
emit_16(1538);
emit_16(1603);
emit_16(1539);
emit_16(1604);
emit_16(1540);
emit_16(1604);
emit_16(1539);
emit_16(1604);
emit_16(1540);
emit_16(1605);
emit_16(1541);
emit_16(1605);
emit_16(1540);
emit_16(1605);
emit_16(1541);
emit_16(1606);
emit_16(1542);
emit_16(1606);
emit_16(1541);
emit_16(1606);
emit_16(1542);
emit_16(1607);
emit_16(1543);
emit_16(1607);
emit_16(1542);
emit_16(1607);
emit_16(1543);
emit_16(1608);
emit_16(1544);
emit_16(1608);
emit_16(1543);
emit_16(1608);
emit_16(1544);
emit_16(1609);
emit_16(1545);
emit_16(1609);
emit_16(1544);
emit_16(1609);
emit_16(1545);
emit_16(1610);
emit_16(1546);
emit_16(1610);
emit_16(1545);
emit_16(1610);
emit_16(1546);
emit_16(1611);
emit_16(1547);
emit_16(1611);
emit_16(1546);
emit_16(1611);
emit_16(1547);
emit_16(1612);
emit_16(1548);
emit_16(1612);
emit_16(1547);
emit_16(1612);
emit_16(1548);
emit_16(1613);
emit_16(1549);
emit_16(1613);
emit_16(1548);
emit_16(1613);
emit_16(1549);
emit_16(1614);
emit_16(1550);
emit_16(1614);
emit_16(1549);
emit_16(1614);
emit_16(1550);
emit_16(1615);
emit_16(1551);
emit_16(1615);
emit_16(1550);
emit_16(1615);
emit_16(1551);
emit_16(1616);
emit_16(1552);
emit_16(1616);
emit_16(1551);
emit_16(1616);
emit_16(1552);
emit_16(1617);
emit_16(1553);
emit_16(1617);
emit_16(1552);
emit_16(1617);
emit_16(1553);
emit_16(1618);
emit_16(1554);
emit_16(1618);
emit_16(1553);
emit_16(1618);
emit_16(1554);
emit_16(1619);
emit_16(1555);
emit_16(1619);
emit_16(1554);
emit_16(1619);
emit_16(1555);
emit_16(1620);
emit_16(1556);
emit_16(1620);
emit_16(1555);
emit_16(1620);
emit_16(1556);
emit_16(1621);
emit_16(1557);
emit_16(1621);
emit_16(1556);
emit_16(1621);
emit_16(1557);
emit_16(1622);
emit_16(1558);
emit_16(1622);
emit_16(1557);
emit_16(1622);
emit_16(1558);
emit_16(1623);
emit_16(1559);
emit_16(1623);
emit_16(1558);
emit_16(1623);
emit_16(1559);
emit_16(1624);
emit_16(1560);
emit_16(1624);
emit_16(1559);
emit_16(1624);
emit_16(1560);
emit_16(1625);
emit_16(1561);
emit_16(1625);
emit_16(1560);
emit_16(1625);
emit_16(1561);
emit_16(1626);
emit_16(1562);
emit_16(1626);
emit_16(1561);
emit_16(1626);
emit_16(1562);
emit_16(1627);
emit_16(1563);
emit_16(1627);
emit_16(1562);
emit_16(1627);
emit_16(1563);
emit_16(1628);
emit_16(1564);
emit_16(1628);
emit_16(1563);
emit_16(1628);
emit_16(1564);
emit_16(1629);
emit_16(1565);
emit_16(1629);
emit_16(1564);
emit_16(1629);
emit_16(1565);
emit_16(1630);
emit_16(1566);
emit_16(1630);
emit_16(1565);
emit_16(1630);
emit_16(1566);
emit_16(1631);
emit_16(1567);
emit_16(1631);
emit_16(1566);
emit_16(1631);
emit_16(1567);
emit_16(1632);
emit_16(1568);
emit_16(1632);
emit_16(1567);
emit_16(1632);
emit_16(1568);
emit_16(1633);
emit_16(1569);
emit_16(1633);
emit_16(1568);
emit_16(1633);
emit_16(1569);
emit_16(1634);
emit_16(1570);
emit_16(1634);
emit_16(1569);
emit_16(1634);
emit_16(1570);
emit_16(1635);
emit_16(1571);
emit_16(1635);
emit_16(1570);
emit_16(1635);
emit_16(1571);
emit_16(1636);
emit_16(1572);
emit_16(1636);
emit_16(1571);
emit_16(1636);
emit_16(1572);
emit_16(1637);
emit_16(1573);
emit_16(1637);
emit_16(1572);
emit_16(1637);
emit_16(1573);
emit_16(1638);
emit_16(1574);
emit_16(1638);
emit_16(1573);
emit_16(1638);
emit_16(1574);
emit_16(1639);
emit_16(1575);
emit_16(1639);
emit_16(1574);
emit_16(1639);
emit_16(1575);
emit_16(1640);
emit_16(1576);
emit_16(1640);
emit_16(1575);
emit_16(1640);
emit_16(1576);
emit_16(1641);
emit_16(1577);
emit_16(1641);
emit_16(1576);
emit_16(1641);
emit_16(1577);
emit_16(1642);
emit_16(1578);
emit_16(1642);
emit_16(1577);
emit_16(1642);
emit_16(1578);
emit_16(1643);
emit_16(1579);
emit_16(1643);
emit_16(1578);
emit_16(1643);
emit_16(1579);
emit_16(1644);
emit_16(1580);
emit_16(1644);
emit_16(1579);
emit_16(1644);
emit_16(1580);
emit_16(1645);
emit_16(1581);
emit_16(1645);
emit_16(1580);
emit_16(1645);
emit_16(1581);
emit_16(1646);
emit_16(1582);
emit_16(1646);
emit_16(1581);
emit_16(1646);
emit_16(1582);
emit_16(1647);
emit_16(1583);
emit_16(1647);
emit_16(1582);
emit_16(1647);
emit_16(1583);
emit_16(1648);
emit_16(1584);
emit_16(1648);
emit_16(1583);
emit_16(1648);
emit_16(1584);
emit_16(1649);
emit_16(1585);
emit_16(1649);
emit_16(1584);
emit_16(1649);
emit_16(1585);
emit_16(1650);
emit_16(1586);
emit_16(1650);
emit_16(1585);
emit_16(1650);
emit_16(1586);
emit_16(1651);
emit_16(1587);
emit_16(1651);
emit_16(1586);
emit_16(1651);
emit_16(1587);
emit_16(1652);
emit_16(1588);
emit_16(1652);
emit_16(1587);
emit_16(1652);
emit_16(1588);
emit_16(1653);
emit_16(1589);
emit_16(1653);
emit_16(1588);
emit_16(1653);
emit_16(1589);
emit_16(1654);
emit_16(1590);
emit_16(1654);
emit_16(1589);
emit_16(1654);
emit_16(1590);
emit_16(1655);
emit_16(1591);
emit_16(1655);
emit_16(1590);
emit_16(1655);
emit_16(1591);
emit_16(1656);
emit_16(1592);
emit_16(1656);
emit_16(1591);
emit_16(1656);
emit_16(1592);
emit_16(1657);
emit_16(1593);
emit_16(1657);
emit_16(1592);
emit_16(1657);
emit_16(1593);
emit_16(1658);
emit_16(1594);
emit_16(1658);
emit_16(1593);
emit_16(1658);
emit_16(1594);
emit_16(1659);
emit_16(1595);
emit_16(1659);
emit_16(1594);
emit_16(1659);
emit_16(1595);
emit_16(1660);
emit_16(1596);
emit_16(1660);
emit_16(1595);
emit_16(1660);
emit_16(1596);
emit_16(1661);
emit_16(1597);
emit_16(1661);
emit_16(1596);
emit_16(1661);
emit_16(1597);
emit_16(1662);
emit_16(1598);
emit_16(1662);
emit_16(1597);
emit_16(1662);
emit_16(1598);
emit_16(1663);
emit_16(1599);
emit_16(1663);
emit_16(1598);
emit_16(1664);
emit_16(1600);
emit_16(1665);
emit_16(1601);
emit_16(1665);
emit_16(1600);
emit_16(1665);
emit_16(1601);
emit_16(1666);
emit_16(1602);
emit_16(1666);
emit_16(1601);
emit_16(1666);
emit_16(1602);
emit_16(1667);
emit_16(1603);
emit_16(1667);
emit_16(1602);
emit_16(1667);
emit_16(1603);
emit_16(1668);
emit_16(1604);
emit_16(1668);
emit_16(1603);
emit_16(1668);
emit_16(1604);
emit_16(1669);
emit_16(1605);
emit_16(1669);
emit_16(1604);
emit_16(1669);
emit_16(1605);
emit_16(1670);
emit_16(1606);
emit_16(1670);
emit_16(1605);
emit_16(1670);
emit_16(1606);
emit_16(1671);
emit_16(1607);
emit_16(1671);
emit_16(1606);
emit_16(1671);
emit_16(1607);
emit_16(1672);
emit_16(1608);
emit_16(1672);
emit_16(1607);
emit_16(1672);
emit_16(1608);
emit_16(1673);
emit_16(1609);
emit_16(1673);
emit_16(1608);
emit_16(1673);
emit_16(1609);
emit_16(1674);
emit_16(1610);
emit_16(1674);
emit_16(1609);
emit_16(1674);
emit_16(1610);
emit_16(1675);
emit_16(1611);
emit_16(1675);
emit_16(1610);
emit_16(1675);
emit_16(1611);
emit_16(1676);
emit_16(1612);
emit_16(1676);
emit_16(1611);
emit_16(1676);
emit_16(1612);
emit_16(1677);
emit_16(1613);
emit_16(1677);
emit_16(1612);
emit_16(1677);
emit_16(1613);
emit_16(1678);
emit_16(1614);
emit_16(1678);
emit_16(1613);
emit_16(1678);
emit_16(1614);
emit_16(1679);
emit_16(1615);
emit_16(1679);
emit_16(1614);
emit_16(1679);
emit_16(1615);
emit_16(1680);
emit_16(1616);
emit_16(1680);
emit_16(1615);
emit_16(1680);
emit_16(1616);
emit_16(1681);
emit_16(1617);
emit_16(1681);
emit_16(1616);
emit_16(1681);
emit_16(1617);
emit_16(1682);
emit_16(1618);
emit_16(1682);
emit_16(1617);
emit_16(1682);
emit_16(1618);
emit_16(1683);
emit_16(1619);
emit_16(1683);
emit_16(1618);
emit_16(1683);
emit_16(1619);
emit_16(1684);
emit_16(1620);
emit_16(1684);
emit_16(1619);
emit_16(1684);
emit_16(1620);
emit_16(1685);
emit_16(1621);
emit_16(1685);
emit_16(1620);
emit_16(1685);
emit_16(1621);
emit_16(1686);
emit_16(1622);
emit_16(1686);
emit_16(1621);
emit_16(1686);
emit_16(1622);
emit_16(1687);
emit_16(1623);
emit_16(1687);
emit_16(1622);
emit_16(1687);
emit_16(1623);
emit_16(1688);
emit_16(1624);
emit_16(1688);
emit_16(1623);
emit_16(1688);
emit_16(1624);
emit_16(1689);
emit_16(1625);
emit_16(1689);
emit_16(1624);
emit_16(1689);
emit_16(1625);
emit_16(1690);
emit_16(1626);
emit_16(1690);
emit_16(1625);
emit_16(1690);
emit_16(1626);
emit_16(1691);
emit_16(1627);
emit_16(1691);
emit_16(1626);
emit_16(1691);
emit_16(1627);
emit_16(1692);
emit_16(1628);
emit_16(1692);
emit_16(1627);
emit_16(1692);
emit_16(1628);
emit_16(1693);
emit_16(1629);
emit_16(1693);
emit_16(1628);
emit_16(1693);
emit_16(1629);
emit_16(1694);
emit_16(1630);
emit_16(1694);
emit_16(1629);
emit_16(1694);
emit_16(1630);
emit_16(1695);
emit_16(1631);
emit_16(1695);
emit_16(1630);
emit_16(1695);
emit_16(1631);
emit_16(1696);
emit_16(1632);
emit_16(1696);
emit_16(1631);
emit_16(1696);
emit_16(1632);
emit_16(1697);
emit_16(1633);
emit_16(1697);
emit_16(1632);
emit_16(1697);
emit_16(1633);
emit_16(1698);
emit_16(1634);
emit_16(1698);
emit_16(1633);
emit_16(1698);
emit_16(1634);
emit_16(1699);
emit_16(1635);
emit_16(1699);
emit_16(1634);
emit_16(1699);
emit_16(1635);
emit_16(1700);
emit_16(1636);
emit_16(1700);
emit_16(1635);
emit_16(1700);
emit_16(1636);
emit_16(1701);
emit_16(1637);
emit_16(1701);
emit_16(1636);
emit_16(1701);
emit_16(1637);
emit_16(1702);
emit_16(1638);
emit_16(1702);
emit_16(1637);
emit_16(1702);
emit_16(1638);
emit_16(1703);
emit_16(1639);
emit_16(1703);
emit_16(1638);
emit_16(1703);
emit_16(1639);
emit_16(1704);
emit_16(1640);
emit_16(1704);
emit_16(1639);
emit_16(1704);
emit_16(1640);
emit_16(1705);
emit_16(1641);
emit_16(1705);
emit_16(1640);
emit_16(1705);
emit_16(1641);
emit_16(1706);
emit_16(1642);
emit_16(1706);
emit_16(1641);
emit_16(1706);
emit_16(1642);
emit_16(1707);
emit_16(1643);
emit_16(1707);
emit_16(1642);
emit_16(1707);
emit_16(1643);
emit_16(1708);
emit_16(1644);
emit_16(1708);
emit_16(1643);
emit_16(1708);
emit_16(1644);
emit_16(1709);
emit_16(1645);
emit_16(1709);
emit_16(1644);
emit_16(1709);
emit_16(1645);
emit_16(1710);
emit_16(1646);
emit_16(1710);
emit_16(1645);
emit_16(1710);
emit_16(1646);
emit_16(1711);
emit_16(1647);
emit_16(1711);
emit_16(1646);
emit_16(1711);
emit_16(1647);
emit_16(1712);
emit_16(1648);
emit_16(1712);
emit_16(1647);
emit_16(1712);
emit_16(1648);
emit_16(1713);
emit_16(1649);
emit_16(1713);
emit_16(1648);
emit_16(1713);
emit_16(1649);
emit_16(1714);
emit_16(1650);
emit_16(1714);
emit_16(1649);
emit_16(1714);
emit_16(1650);
emit_16(1715);
emit_16(1651);
emit_16(1715);
emit_16(1650);
emit_16(1715);
emit_16(1651);
emit_16(1716);
emit_16(1652);
emit_16(1716);
emit_16(1651);
emit_16(1716);
emit_16(1652);
emit_16(1717);
emit_16(1653);
emit_16(1717);
emit_16(1652);
emit_16(1717);
emit_16(1653);
emit_16(1718);
emit_16(1654);
emit_16(1718);
emit_16(1653);
emit_16(1718);
emit_16(1654);
emit_16(1719);
emit_16(1655);
emit_16(1719);
emit_16(1654);
emit_16(1719);
emit_16(1655);
emit_16(1720);
emit_16(1656);
emit_16(1720);
emit_16(1655);
emit_16(1720);
emit_16(1656);
emit_16(1721);
emit_16(1657);
emit_16(1721);
emit_16(1656);
emit_16(1721);
emit_16(1657);
emit_16(1722);
emit_16(1658);
emit_16(1722);
emit_16(1657);
emit_16(1722);
emit_16(1658);
emit_16(1723);
emit_16(1659);
emit_16(1723);
emit_16(1658);
emit_16(1723);
emit_16(1659);
emit_16(1724);
emit_16(1660);
emit_16(1724);
emit_16(1659);
emit_16(1724);
emit_16(1660);
emit_16(1725);
emit_16(1661);
emit_16(1725);
emit_16(1660);
emit_16(1725);
emit_16(1661);
emit_16(1726);
emit_16(1662);
emit_16(1726);
emit_16(1661);
emit_16(1726);
emit_16(1662);
emit_16(1727);
emit_16(1663);
emit_16(1727);
emit_16(1662);
emit_16(1728);
emit_16(1664);
emit_16(1729);
emit_16(1665);
emit_16(1729);
emit_16(1664);
emit_16(1729);
emit_16(1665);
emit_16(1730);
emit_16(1666);
emit_16(1730);
emit_16(1665);
emit_16(1730);
emit_16(1666);
emit_16(1731);
emit_16(1667);
emit_16(1731);
emit_16(1666);
emit_16(1731);
emit_16(1667);
emit_16(1732);
emit_16(1668);
emit_16(1732);
emit_16(1667);
emit_16(1732);
emit_16(1668);
emit_16(1733);
emit_16(1669);
emit_16(1733);
emit_16(1668);
emit_16(1733);
emit_16(1669);
emit_16(1734);
emit_16(1670);
emit_16(1734);
emit_16(1669);
emit_16(1734);
emit_16(1670);
emit_16(1735);
emit_16(1671);
emit_16(1735);
emit_16(1670);
emit_16(1735);
emit_16(1671);
emit_16(1736);
emit_16(1672);
emit_16(1736);
emit_16(1671);
emit_16(1736);
emit_16(1672);
emit_16(1737);
emit_16(1673);
emit_16(1737);
emit_16(1672);
emit_16(1737);
emit_16(1673);
emit_16(1738);
emit_16(1674);
emit_16(1738);
emit_16(1673);
emit_16(1738);
emit_16(1674);
emit_16(1739);
emit_16(1675);
emit_16(1739);
emit_16(1674);
emit_16(1739);
emit_16(1675);
emit_16(1740);
emit_16(1676);
emit_16(1740);
emit_16(1675);
emit_16(1740);
emit_16(1676);
emit_16(1741);
emit_16(1677);
emit_16(1741);
emit_16(1676);
emit_16(1741);
emit_16(1677);
emit_16(1742);
emit_16(1678);
emit_16(1742);
emit_16(1677);
emit_16(1742);
emit_16(1678);
emit_16(1743);
emit_16(1679);
emit_16(1743);
emit_16(1678);
emit_16(1743);
emit_16(1679);
emit_16(1744);
emit_16(1680);
emit_16(1744);
emit_16(1679);
emit_16(1744);
emit_16(1680);
emit_16(1745);
emit_16(1681);
emit_16(1745);
emit_16(1680);
emit_16(1745);
emit_16(1681);
emit_16(1746);
emit_16(1682);
emit_16(1746);
emit_16(1681);
emit_16(1746);
emit_16(1682);
emit_16(1747);
emit_16(1683);
emit_16(1747);
emit_16(1682);
emit_16(1747);
emit_16(1683);
emit_16(1748);
emit_16(1684);
emit_16(1748);
emit_16(1683);
emit_16(1748);
emit_16(1684);
emit_16(1749);
emit_16(1685);
emit_16(1749);
emit_16(1684);
emit_16(1749);
emit_16(1685);
emit_16(1750);
emit_16(1686);
emit_16(1750);
emit_16(1685);
emit_16(1750);
emit_16(1686);
emit_16(1751);
emit_16(1687);
emit_16(1751);
emit_16(1686);
emit_16(1751);
emit_16(1687);
emit_16(1752);
emit_16(1688);
emit_16(1752);
emit_16(1687);
emit_16(1752);
emit_16(1688);
emit_16(1753);
emit_16(1689);
emit_16(1753);
emit_16(1688);
emit_16(1753);
emit_16(1689);
emit_16(1754);
emit_16(1690);
emit_16(1754);
emit_16(1689);
emit_16(1754);
emit_16(1690);
emit_16(1755);
emit_16(1691);
emit_16(1755);
emit_16(1690);
emit_16(1755);
emit_16(1691);
emit_16(1756);
emit_16(1692);
emit_16(1756);
emit_16(1691);
emit_16(1756);
emit_16(1692);
emit_16(1757);
emit_16(1693);
emit_16(1757);
emit_16(1692);
emit_16(1757);
emit_16(1693);
emit_16(1758);
emit_16(1694);
emit_16(1758);
emit_16(1693);
emit_16(1758);
emit_16(1694);
emit_16(1759);
emit_16(1695);
emit_16(1759);
emit_16(1694);
emit_16(1759);
emit_16(1695);
emit_16(1760);
emit_16(1696);
emit_16(1760);
emit_16(1695);
emit_16(1760);
emit_16(1696);
emit_16(1761);
emit_16(1697);
emit_16(1761);
emit_16(1696);
emit_16(1761);
emit_16(1697);
emit_16(1762);
emit_16(1698);
emit_16(1762);
emit_16(1697);
emit_16(1762);
emit_16(1698);
emit_16(1763);
emit_16(1699);
emit_16(1763);
emit_16(1698);
emit_16(1763);
emit_16(1699);
emit_16(1764);
emit_16(1700);
emit_16(1764);
emit_16(1699);
emit_16(1764);
emit_16(1700);
emit_16(1765);
emit_16(1701);
emit_16(1765);
emit_16(1700);
emit_16(1765);
emit_16(1701);
emit_16(1766);
emit_16(1702);
emit_16(1766);
emit_16(1701);
emit_16(1766);
emit_16(1702);
emit_16(1767);
emit_16(1703);
emit_16(1767);
emit_16(1702);
emit_16(1767);
emit_16(1703);
emit_16(1768);
emit_16(1704);
emit_16(1768);
emit_16(1703);
emit_16(1768);
emit_16(1704);
emit_16(1769);
emit_16(1705);
emit_16(1769);
emit_16(1704);
emit_16(1769);
emit_16(1705);
emit_16(1770);
emit_16(1706);
emit_16(1770);
emit_16(1705);
emit_16(1770);
emit_16(1706);
emit_16(1771);
emit_16(1707);
emit_16(1771);
emit_16(1706);
emit_16(1771);
emit_16(1707);
emit_16(1772);
emit_16(1708);
emit_16(1772);
emit_16(1707);
emit_16(1772);
emit_16(1708);
emit_16(1773);
emit_16(1709);
emit_16(1773);
emit_16(1708);
emit_16(1773);
emit_16(1709);
emit_16(1774);
emit_16(1710);
emit_16(1774);
emit_16(1709);
emit_16(1774);
emit_16(1710);
emit_16(1775);
emit_16(1711);
emit_16(1775);
emit_16(1710);
emit_16(1775);
emit_16(1711);
emit_16(1776);
emit_16(1712);
emit_16(1776);
emit_16(1711);
emit_16(1776);
emit_16(1712);
emit_16(1777);
emit_16(1713);
emit_16(1777);
emit_16(1712);
emit_16(1777);
emit_16(1713);
emit_16(1778);
emit_16(1714);
emit_16(1778);
emit_16(1713);
emit_16(1778);
emit_16(1714);
emit_16(1779);
emit_16(1715);
emit_16(1779);
emit_16(1714);
emit_16(1779);
emit_16(1715);
emit_16(1780);
emit_16(1716);
emit_16(1780);
emit_16(1715);
emit_16(1780);
emit_16(1716);
emit_16(1781);
emit_16(1717);
emit_16(1781);
emit_16(1716);
emit_16(1781);
emit_16(1717);
emit_16(1782);
emit_16(1718);
emit_16(1782);
emit_16(1717);
emit_16(1782);
emit_16(1718);
emit_16(1783);
emit_16(1719);
emit_16(1783);
emit_16(1718);
emit_16(1783);
emit_16(1719);
emit_16(1784);
emit_16(1720);
emit_16(1784);
emit_16(1719);
emit_16(1784);
emit_16(1720);
emit_16(1785);
emit_16(1721);
emit_16(1785);
emit_16(1720);
emit_16(1785);
emit_16(1721);
emit_16(1786);
emit_16(1722);
emit_16(1786);
emit_16(1721);
emit_16(1786);
emit_16(1722);
emit_16(1787);
emit_16(1723);
emit_16(1787);
emit_16(1722);
emit_16(1787);
emit_16(1723);
emit_16(1788);
emit_16(1724);
emit_16(1788);
emit_16(1723);
emit_16(1788);
emit_16(1724);
emit_16(1789);
emit_16(1725);
emit_16(1789);
emit_16(1724);
emit_16(1789);
emit_16(1725);
emit_16(1790);
emit_16(1726);
emit_16(1790);
emit_16(1725);
emit_16(1790);
emit_16(1726);
emit_16(1791);
emit_16(1727);
emit_16(1791);
emit_16(1726);
emit_16(1792);
emit_16(1728);
emit_16(1793);
emit_16(1729);
emit_16(1793);
emit_16(1728);
emit_16(1793);
emit_16(1729);
emit_16(1794);
emit_16(1730);
emit_16(1794);
emit_16(1729);
emit_16(1794);
emit_16(1730);
emit_16(1795);
emit_16(1731);
emit_16(1795);
emit_16(1730);
emit_16(1795);
emit_16(1731);
emit_16(1796);
emit_16(1732);
emit_16(1796);
emit_16(1731);
emit_16(1796);
emit_16(1732);
emit_16(1797);
emit_16(1733);
emit_16(1797);
emit_16(1732);
emit_16(1797);
emit_16(1733);
emit_16(1798);
emit_16(1734);
emit_16(1798);
emit_16(1733);
emit_16(1798);
emit_16(1734);
emit_16(1799);
emit_16(1735);
emit_16(1799);
emit_16(1734);
emit_16(1799);
emit_16(1735);
emit_16(1800);
emit_16(1736);
emit_16(1800);
emit_16(1735);
emit_16(1800);
emit_16(1736);
emit_16(1801);
emit_16(1737);
emit_16(1801);
emit_16(1736);
emit_16(1801);
emit_16(1737);
emit_16(1802);
emit_16(1738);
emit_16(1802);
emit_16(1737);
emit_16(1802);
emit_16(1738);
emit_16(1803);
emit_16(1739);
emit_16(1803);
emit_16(1738);
emit_16(1803);
emit_16(1739);
emit_16(1804);
emit_16(1740);
emit_16(1804);
emit_16(1739);
emit_16(1804);
emit_16(1740);
emit_16(1805);
emit_16(1741);
emit_16(1805);
emit_16(1740);
emit_16(1805);
emit_16(1741);
emit_16(1806);
emit_16(1742);
emit_16(1806);
emit_16(1741);
emit_16(1806);
emit_16(1742);
emit_16(1807);
emit_16(1743);
emit_16(1807);
emit_16(1742);
emit_16(1807);
emit_16(1743);
emit_16(1808);
emit_16(1744);
emit_16(1808);
emit_16(1743);
emit_16(1808);
emit_16(1744);
emit_16(1809);
emit_16(1745);
emit_16(1809);
emit_16(1744);
emit_16(1809);
emit_16(1745);
emit_16(1810);
emit_16(1746);
emit_16(1810);
emit_16(1745);
emit_16(1810);
emit_16(1746);
emit_16(1811);
emit_16(1747);
emit_16(1811);
emit_16(1746);
emit_16(1811);
emit_16(1747);
emit_16(1812);
emit_16(1748);
emit_16(1812);
emit_16(1747);
emit_16(1812);
emit_16(1748);
emit_16(1813);
emit_16(1749);
emit_16(1813);
emit_16(1748);
emit_16(1813);
emit_16(1749);
emit_16(1814);
emit_16(1750);
emit_16(1814);
emit_16(1749);
emit_16(1814);
emit_16(1750);
emit_16(1815);
emit_16(1751);
emit_16(1815);
emit_16(1750);
emit_16(1815);
emit_16(1751);
emit_16(1816);
emit_16(1752);
emit_16(1816);
emit_16(1751);
emit_16(1816);
emit_16(1752);
emit_16(1817);
emit_16(1753);
emit_16(1817);
emit_16(1752);
emit_16(1817);
emit_16(1753);
emit_16(1818);
emit_16(1754);
emit_16(1818);
emit_16(1753);
emit_16(1818);
emit_16(1754);
emit_16(1819);
emit_16(1755);
emit_16(1819);
emit_16(1754);
emit_16(1819);
emit_16(1755);
emit_16(1820);
emit_16(1756);
emit_16(1820);
emit_16(1755);
emit_16(1820);
emit_16(1756);
emit_16(1821);
emit_16(1757);
emit_16(1821);
emit_16(1756);
emit_16(1821);
emit_16(1757);
emit_16(1822);
emit_16(1758);
emit_16(1822);
emit_16(1757);
emit_16(1822);
emit_16(1758);
emit_16(1823);
emit_16(1759);
emit_16(1823);
emit_16(1758);
emit_16(1823);
emit_16(1759);
emit_16(1824);
emit_16(1760);
emit_16(1824);
emit_16(1759);
emit_16(1824);
emit_16(1760);
emit_16(1825);
emit_16(1761);
emit_16(1825);
emit_16(1760);
emit_16(1825);
emit_16(1761);
emit_16(1826);
emit_16(1762);
emit_16(1826);
emit_16(1761);
emit_16(1826);
emit_16(1762);
emit_16(1827);
emit_16(1763);
emit_16(1827);
emit_16(1762);
emit_16(1827);
emit_16(1763);
emit_16(1828);
emit_16(1764);
emit_16(1828);
emit_16(1763);
emit_16(1828);
emit_16(1764);
emit_16(1829);
emit_16(1765);
emit_16(1829);
emit_16(1764);
emit_16(1829);
emit_16(1765);
emit_16(1830);
emit_16(1766);
emit_16(1830);
emit_16(1765);
emit_16(1830);
emit_16(1766);
emit_16(1831);
emit_16(1767);
emit_16(1831);
emit_16(1766);
emit_16(1831);
emit_16(1767);
emit_16(1832);
emit_16(1768);
emit_16(1832);
emit_16(1767);
emit_16(1832);
emit_16(1768);
emit_16(1833);
emit_16(1769);
emit_16(1833);
emit_16(1768);
emit_16(1833);
emit_16(1769);
emit_16(1834);
emit_16(1770);
emit_16(1834);
emit_16(1769);
emit_16(1834);
emit_16(1770);
emit_16(1835);
emit_16(1771);
emit_16(1835);
emit_16(1770);
emit_16(1835);
emit_16(1771);
emit_16(1836);
emit_16(1772);
emit_16(1836);
emit_16(1771);
emit_16(1836);
emit_16(1772);
emit_16(1837);
emit_16(1773);
emit_16(1837);
emit_16(1772);
emit_16(1837);
emit_16(1773);
emit_16(1838);
emit_16(1774);
emit_16(1838);
emit_16(1773);
emit_16(1838);
emit_16(1774);
emit_16(1839);
emit_16(1775);
emit_16(1839);
emit_16(1774);
emit_16(1839);
emit_16(1775);
emit_16(1840);
emit_16(1776);
emit_16(1840);
emit_16(1775);
emit_16(1840);
emit_16(1776);
emit_16(1841);
emit_16(1777);
emit_16(1841);
emit_16(1776);
emit_16(1841);
emit_16(1777);
emit_16(1842);
emit_16(1778);
emit_16(1842);
emit_16(1777);
emit_16(1842);
emit_16(1778);
emit_16(1843);
emit_16(1779);
emit_16(1843);
emit_16(1778);
emit_16(1843);
emit_16(1779);
emit_16(1844);
emit_16(1780);
emit_16(1844);
emit_16(1779);
emit_16(1844);
emit_16(1780);
emit_16(1845);
emit_16(1781);
emit_16(1845);
emit_16(1780);
emit_16(1845);
emit_16(1781);
emit_16(1846);
emit_16(1782);
emit_16(1846);
emit_16(1781);
emit_16(1846);
emit_16(1782);
emit_16(1847);
emit_16(1783);
emit_16(1847);
emit_16(1782);
emit_16(1847);
emit_16(1783);
emit_16(1848);
emit_16(1784);
emit_16(1848);
emit_16(1783);
emit_16(1848);
emit_16(1784);
emit_16(1849);
emit_16(1785);
emit_16(1849);
emit_16(1784);
emit_16(1849);
emit_16(1785);
emit_16(1850);
emit_16(1786);
emit_16(1850);
emit_16(1785);
emit_16(1850);
emit_16(1786);
emit_16(1851);
emit_16(1787);
emit_16(1851);
emit_16(1786);
emit_16(1851);
emit_16(1787);
emit_16(1852);
emit_16(1788);
emit_16(1852);
emit_16(1787);
emit_16(1852);
emit_16(1788);
emit_16(1853);
emit_16(1789);
emit_16(1853);
emit_16(1788);
emit_16(1853);
emit_16(1789);
emit_16(1854);
emit_16(1790);
emit_16(1854);
emit_16(1789);
emit_16(1854);
emit_16(1790);
emit_16(1855);
emit_16(1791);
emit_16(1855);
emit_16(1790);
emit_16(1856);
emit_16(1792);
emit_16(1857);
emit_16(1793);
emit_16(1857);
emit_16(1792);
emit_16(1857);
emit_16(1793);
emit_16(1858);
emit_16(1794);
emit_16(1858);
emit_16(1793);
emit_16(1858);
emit_16(1794);
emit_16(1859);
emit_16(1795);
emit_16(1859);
emit_16(1794);
emit_16(1859);
emit_16(1795);
emit_16(1860);
emit_16(1796);
emit_16(1860);
emit_16(1795);
emit_16(1860);
emit_16(1796);
emit_16(1861);
emit_16(1797);
emit_16(1861);
emit_16(1796);
emit_16(1861);
emit_16(1797);
emit_16(1862);
emit_16(1798);
emit_16(1862);
emit_16(1797);
emit_16(1862);
emit_16(1798);
emit_16(1863);
emit_16(1799);
emit_16(1863);
emit_16(1798);
emit_16(1863);
emit_16(1799);
emit_16(1864);
emit_16(1800);
emit_16(1864);
emit_16(1799);
emit_16(1864);
emit_16(1800);
emit_16(1865);
emit_16(1801);
emit_16(1865);
emit_16(1800);
emit_16(1865);
emit_16(1801);
emit_16(1866);
emit_16(1802);
emit_16(1866);
emit_16(1801);
emit_16(1866);
emit_16(1802);
emit_16(1867);
emit_16(1803);
emit_16(1867);
emit_16(1802);
emit_16(1867);
emit_16(1803);
emit_16(1868);
emit_16(1804);
emit_16(1868);
emit_16(1803);
emit_16(1868);
emit_16(1804);
emit_16(1869);
emit_16(1805);
emit_16(1869);
emit_16(1804);
emit_16(1869);
emit_16(1805);
emit_16(1870);
emit_16(1806);
emit_16(1870);
emit_16(1805);
emit_16(1870);
emit_16(1806);
emit_16(1871);
emit_16(1807);
emit_16(1871);
emit_16(1806);
emit_16(1871);
emit_16(1807);
emit_16(1872);
emit_16(1808);
emit_16(1872);
emit_16(1807);
emit_16(1872);
emit_16(1808);
emit_16(1873);
emit_16(1809);
emit_16(1873);
emit_16(1808);
emit_16(1873);
emit_16(1809);
emit_16(1874);
emit_16(1810);
emit_16(1874);
emit_16(1809);
emit_16(1874);
emit_16(1810);
emit_16(1875);
emit_16(1811);
emit_16(1875);
emit_16(1810);
emit_16(1875);
emit_16(1811);
emit_16(1876);
emit_16(1812);
emit_16(1876);
emit_16(1811);
emit_16(1876);
emit_16(1812);
emit_16(1877);
emit_16(1813);
emit_16(1877);
emit_16(1812);
emit_16(1877);
emit_16(1813);
emit_16(1878);
emit_16(1814);
emit_16(1878);
emit_16(1813);
emit_16(1878);
emit_16(1814);
emit_16(1879);
emit_16(1815);
emit_16(1879);
emit_16(1814);
emit_16(1879);
emit_16(1815);
emit_16(1880);
emit_16(1816);
emit_16(1880);
emit_16(1815);
emit_16(1880);
emit_16(1816);
emit_16(1881);
emit_16(1817);
emit_16(1881);
emit_16(1816);
emit_16(1881);
emit_16(1817);
emit_16(1882);
emit_16(1818);
emit_16(1882);
emit_16(1817);
emit_16(1882);
emit_16(1818);
emit_16(1883);
emit_16(1819);
emit_16(1883);
emit_16(1818);
emit_16(1883);
emit_16(1819);
emit_16(1884);
emit_16(1820);
emit_16(1884);
emit_16(1819);
emit_16(1884);
emit_16(1820);
emit_16(1885);
emit_16(1821);
emit_16(1885);
emit_16(1820);
emit_16(1885);
emit_16(1821);
emit_16(1886);
emit_16(1822);
emit_16(1886);
emit_16(1821);
emit_16(1886);
emit_16(1822);
emit_16(1887);
emit_16(1823);
emit_16(1887);
emit_16(1822);
emit_16(1887);
emit_16(1823);
emit_16(1888);
emit_16(1824);
emit_16(1888);
emit_16(1823);
emit_16(1888);
emit_16(1824);
emit_16(1889);
emit_16(1825);
emit_16(1889);
emit_16(1824);
emit_16(1889);
emit_16(1825);
emit_16(1890);
emit_16(1826);
emit_16(1890);
emit_16(1825);
emit_16(1890);
emit_16(1826);
emit_16(1891);
emit_16(1827);
emit_16(1891);
emit_16(1826);
emit_16(1891);
emit_16(1827);
emit_16(1892);
emit_16(1828);
emit_16(1892);
emit_16(1827);
emit_16(1892);
emit_16(1828);
emit_16(1893);
emit_16(1829);
emit_16(1893);
emit_16(1828);
emit_16(1893);
emit_16(1829);
emit_16(1894);
emit_16(1830);
emit_16(1894);
emit_16(1829);
emit_16(1894);
emit_16(1830);
emit_16(1895);
emit_16(1831);
emit_16(1895);
emit_16(1830);
emit_16(1895);
emit_16(1831);
emit_16(1896);
emit_16(1832);
emit_16(1896);
emit_16(1831);
emit_16(1896);
emit_16(1832);
emit_16(1897);
emit_16(1833);
emit_16(1897);
emit_16(1832);
emit_16(1897);
emit_16(1833);
emit_16(1898);
emit_16(1834);
emit_16(1898);
emit_16(1833);
emit_16(1898);
emit_16(1834);
emit_16(1899);
emit_16(1835);
emit_16(1899);
emit_16(1834);
emit_16(1899);
emit_16(1835);
emit_16(1900);
emit_16(1836);
emit_16(1900);
emit_16(1835);
emit_16(1900);
emit_16(1836);
emit_16(1901);
emit_16(1837);
emit_16(1901);
emit_16(1836);
emit_16(1901);
emit_16(1837);
emit_16(1902);
emit_16(1838);
emit_16(1902);
emit_16(1837);
emit_16(1902);
emit_16(1838);
emit_16(1903);
emit_16(1839);
emit_16(1903);
emit_16(1838);
emit_16(1903);
emit_16(1839);
emit_16(1904);
emit_16(1840);
emit_16(1904);
emit_16(1839);
emit_16(1904);
emit_16(1840);
emit_16(1905);
emit_16(1841);
emit_16(1905);
emit_16(1840);
emit_16(1905);
emit_16(1841);
emit_16(1906);
emit_16(1842);
emit_16(1906);
emit_16(1841);
emit_16(1906);
emit_16(1842);
emit_16(1907);
emit_16(1843);
emit_16(1907);
emit_16(1842);
emit_16(1907);
emit_16(1843);
emit_16(1908);
emit_16(1844);
emit_16(1908);
emit_16(1843);
emit_16(1908);
emit_16(1844);
emit_16(1909);
emit_16(1845);
emit_16(1909);
emit_16(1844);
emit_16(1909);
emit_16(1845);
emit_16(1910);
emit_16(1846);
emit_16(1910);
emit_16(1845);
emit_16(1910);
emit_16(1846);
emit_16(1911);
emit_16(1847);
emit_16(1911);
emit_16(1846);
emit_16(1911);
emit_16(1847);
emit_16(1912);
emit_16(1848);
emit_16(1912);
emit_16(1847);
emit_16(1912);
emit_16(1848);
emit_16(1913);
emit_16(1849);
emit_16(1913);
emit_16(1848);
emit_16(1913);
emit_16(1849);
emit_16(1914);
emit_16(1850);
emit_16(1914);
emit_16(1849);
emit_16(1914);
emit_16(1850);
emit_16(1915);
emit_16(1851);
emit_16(1915);
emit_16(1850);
emit_16(1915);
emit_16(1851);
emit_16(1916);
emit_16(1852);
emit_16(1916);
emit_16(1851);
emit_16(1916);
emit_16(1852);
emit_16(1917);
emit_16(1853);
emit_16(1917);
emit_16(1852);
emit_16(1917);
emit_16(1853);
emit_16(1918);
emit_16(1854);
emit_16(1918);
emit_16(1853);
emit_16(1918);
emit_16(1854);
emit_16(1919);
emit_16(1855);
emit_16(1919);
emit_16(1854);
emit_16(1920);
emit_16(1856);
emit_16(1921);
emit_16(1857);
emit_16(1921);
emit_16(1856);
emit_16(1921);
emit_16(1857);
emit_16(1922);
emit_16(1858);
emit_16(1922);
emit_16(1857);
emit_16(1922);
emit_16(1858);
emit_16(1923);
emit_16(1859);
emit_16(1923);
emit_16(1858);
emit_16(1923);
emit_16(1859);
emit_16(1924);
emit_16(1860);
emit_16(1924);
emit_16(1859);
emit_16(1924);
emit_16(1860);
emit_16(1925);
emit_16(1861);
emit_16(1925);
emit_16(1860);
emit_16(1925);
emit_16(1861);
emit_16(1926);
emit_16(1862);
emit_16(1926);
emit_16(1861);
emit_16(1926);
emit_16(1862);
emit_16(1927);
emit_16(1863);
emit_16(1927);
emit_16(1862);
emit_16(1927);
emit_16(1863);
emit_16(1928);
emit_16(1864);
emit_16(1928);
emit_16(1863);
emit_16(1928);
emit_16(1864);
emit_16(1929);
emit_16(1865);
emit_16(1929);
emit_16(1864);
emit_16(1929);
emit_16(1865);
emit_16(1930);
emit_16(1866);
emit_16(1930);
emit_16(1865);
emit_16(1930);
emit_16(1866);
emit_16(1931);
emit_16(1867);
emit_16(1931);
emit_16(1866);
emit_16(1931);
emit_16(1867);
emit_16(1932);
emit_16(1868);
emit_16(1932);
emit_16(1867);
emit_16(1932);
emit_16(1868);
emit_16(1933);
emit_16(1869);
emit_16(1933);
emit_16(1868);
emit_16(1933);
emit_16(1869);
emit_16(1934);
emit_16(1870);
emit_16(1934);
emit_16(1869);
emit_16(1934);
emit_16(1870);
emit_16(1935);
emit_16(1871);
emit_16(1935);
emit_16(1870);
emit_16(1935);
emit_16(1871);
emit_16(1936);
emit_16(1872);
emit_16(1936);
emit_16(1871);
emit_16(1936);
emit_16(1872);
emit_16(1937);
emit_16(1873);
emit_16(1937);
emit_16(1872);
emit_16(1937);
emit_16(1873);
emit_16(1938);
emit_16(1874);
emit_16(1938);
emit_16(1873);
emit_16(1938);
emit_16(1874);
emit_16(1939);
emit_16(1875);
emit_16(1939);
emit_16(1874);
emit_16(1939);
emit_16(1875);
emit_16(1940);
emit_16(1876);
emit_16(1940);
emit_16(1875);
emit_16(1940);
emit_16(1876);
emit_16(1941);
emit_16(1877);
emit_16(1941);
emit_16(1876);
emit_16(1941);
emit_16(1877);
emit_16(1942);
emit_16(1878);
emit_16(1942);
emit_16(1877);
emit_16(1942);
emit_16(1878);
emit_16(1943);
emit_16(1879);
emit_16(1943);
emit_16(1878);
emit_16(1943);
emit_16(1879);
emit_16(1944);
emit_16(1880);
emit_16(1944);
emit_16(1879);
emit_16(1944);
emit_16(1880);
emit_16(1945);
emit_16(1881);
emit_16(1945);
emit_16(1880);
emit_16(1945);
emit_16(1881);
emit_16(1946);
emit_16(1882);
emit_16(1946);
emit_16(1881);
emit_16(1946);
emit_16(1882);
emit_16(1947);
emit_16(1883);
emit_16(1947);
emit_16(1882);
emit_16(1947);
emit_16(1883);
emit_16(1948);
emit_16(1884);
emit_16(1948);
emit_16(1883);
emit_16(1948);
emit_16(1884);
emit_16(1949);
emit_16(1885);
emit_16(1949);
emit_16(1884);
emit_16(1949);
emit_16(1885);
emit_16(1950);
emit_16(1886);
emit_16(1950);
emit_16(1885);
emit_16(1950);
emit_16(1886);
emit_16(1951);
emit_16(1887);
emit_16(1951);
emit_16(1886);
emit_16(1951);
emit_16(1887);
emit_16(1952);
emit_16(1888);
emit_16(1952);
emit_16(1887);
emit_16(1952);
emit_16(1888);
emit_16(1953);
emit_16(1889);
emit_16(1953);
emit_16(1888);
emit_16(1953);
emit_16(1889);
emit_16(1954);
emit_16(1890);
emit_16(1954);
emit_16(1889);
emit_16(1954);
emit_16(1890);
emit_16(1955);
emit_16(1891);
emit_16(1955);
emit_16(1890);
emit_16(1955);
emit_16(1891);
emit_16(1956);
emit_16(1892);
emit_16(1956);
emit_16(1891);
emit_16(1956);
emit_16(1892);
emit_16(1957);
emit_16(1893);
emit_16(1957);
emit_16(1892);
emit_16(1957);
emit_16(1893);
emit_16(1958);
emit_16(1894);
emit_16(1958);
emit_16(1893);
emit_16(1958);
emit_16(1894);
emit_16(1959);
emit_16(1895);
emit_16(1959);
emit_16(1894);
emit_16(1959);
emit_16(1895);
emit_16(1960);
emit_16(1896);
emit_16(1960);
emit_16(1895);
emit_16(1960);
emit_16(1896);
emit_16(1961);
emit_16(1897);
emit_16(1961);
emit_16(1896);
emit_16(1961);
emit_16(1897);
emit_16(1962);
emit_16(1898);
emit_16(1962);
emit_16(1897);
emit_16(1962);
emit_16(1898);
emit_16(1963);
emit_16(1899);
emit_16(1963);
emit_16(1898);
emit_16(1963);
emit_16(1899);
emit_16(1964);
emit_16(1900);
emit_16(1964);
emit_16(1899);
emit_16(1964);
emit_16(1900);
emit_16(1965);
emit_16(1901);
emit_16(1965);
emit_16(1900);
emit_16(1965);
emit_16(1901);
emit_16(1966);
emit_16(1902);
emit_16(1966);
emit_16(1901);
emit_16(1966);
emit_16(1902);
emit_16(1967);
emit_16(1903);
emit_16(1967);
emit_16(1902);
emit_16(1967);
emit_16(1903);
emit_16(1968);
emit_16(1904);
emit_16(1968);
emit_16(1903);
emit_16(1968);
emit_16(1904);
emit_16(1969);
emit_16(1905);
emit_16(1969);
emit_16(1904);
emit_16(1969);
emit_16(1905);
emit_16(1970);
emit_16(1906);
emit_16(1970);
emit_16(1905);
emit_16(1970);
emit_16(1906);
emit_16(1971);
emit_16(1907);
emit_16(1971);
emit_16(1906);
emit_16(1971);
emit_16(1907);
emit_16(1972);
emit_16(1908);
emit_16(1972);
emit_16(1907);
emit_16(1972);
emit_16(1908);
emit_16(1973);
emit_16(1909);
emit_16(1973);
emit_16(1908);
emit_16(1973);
emit_16(1909);
emit_16(1974);
emit_16(1910);
emit_16(1974);
emit_16(1909);
emit_16(1974);
emit_16(1910);
emit_16(1975);
emit_16(1911);
emit_16(1975);
emit_16(1910);
emit_16(1975);
emit_16(1911);
emit_16(1976);
emit_16(1912);
emit_16(1976);
emit_16(1911);
emit_16(1976);
emit_16(1912);
emit_16(1977);
emit_16(1913);
emit_16(1977);
emit_16(1912);
emit_16(1977);
emit_16(1913);
emit_16(1978);
emit_16(1914);
emit_16(1978);
emit_16(1913);
emit_16(1978);
emit_16(1914);
emit_16(1979);
emit_16(1915);
emit_16(1979);
emit_16(1914);
emit_16(1979);
emit_16(1915);
emit_16(1980);
emit_16(1916);
emit_16(1980);
emit_16(1915);
emit_16(1980);
emit_16(1916);
emit_16(1981);
emit_16(1917);
emit_16(1981);
emit_16(1916);
emit_16(1981);
emit_16(1917);
emit_16(1982);
emit_16(1918);
emit_16(1982);
emit_16(1917);
emit_16(1982);
emit_16(1918);
emit_16(1983);
emit_16(1919);
emit_16(1983);
emit_16(1918);
emit_16(1984);
emit_16(1920);
emit_16(1985);
emit_16(1921);
emit_16(1985);
emit_16(1920);
emit_16(1985);
emit_16(1921);
emit_16(1986);
emit_16(1922);
emit_16(1986);
emit_16(1921);
emit_16(1986);
emit_16(1922);
emit_16(1987);
emit_16(1923);
emit_16(1987);
emit_16(1922);
emit_16(1987);
emit_16(1923);
emit_16(1988);
emit_16(1924);
emit_16(1988);
emit_16(1923);
emit_16(1988);
emit_16(1924);
emit_16(1989);
emit_16(1925);
emit_16(1989);
emit_16(1924);
emit_16(1989);
emit_16(1925);
emit_16(1990);
emit_16(1926);
emit_16(1990);
emit_16(1925);
emit_16(1990);
emit_16(1926);
emit_16(1991);
emit_16(1927);
emit_16(1991);
emit_16(1926);
emit_16(1991);
emit_16(1927);
emit_16(1992);
emit_16(1928);
emit_16(1992);
emit_16(1927);
emit_16(1992);
emit_16(1928);
emit_16(1993);
emit_16(1929);
emit_16(1993);
emit_16(1928);
emit_16(1993);
emit_16(1929);
emit_16(1994);
emit_16(1930);
emit_16(1994);
emit_16(1929);
emit_16(1994);
emit_16(1930);
emit_16(1995);
emit_16(1931);
emit_16(1995);
emit_16(1930);
emit_16(1995);
emit_16(1931);
emit_16(1996);
emit_16(1932);
emit_16(1996);
emit_16(1931);
emit_16(1996);
emit_16(1932);
emit_16(1997);
emit_16(1933);
emit_16(1997);
emit_16(1932);
emit_16(1997);
emit_16(1933);
emit_16(1998);
emit_16(1934);
emit_16(1998);
emit_16(1933);
emit_16(1998);
emit_16(1934);
emit_16(1999);
emit_16(1935);
emit_16(1999);
emit_16(1934);
emit_16(1999);
emit_16(1935);
emit_16(2000);
emit_16(1936);
emit_16(2000);
emit_16(1935);
emit_16(2000);
emit_16(1936);
emit_16(2001);
emit_16(1937);
emit_16(2001);
emit_16(1936);
emit_16(2001);
emit_16(1937);
emit_16(2002);
emit_16(1938);
emit_16(2002);
emit_16(1937);
emit_16(2002);
emit_16(1938);
emit_16(2003);
emit_16(1939);
emit_16(2003);
emit_16(1938);
emit_16(2003);
emit_16(1939);
emit_16(2004);
emit_16(1940);
emit_16(2004);
emit_16(1939);
emit_16(2004);
emit_16(1940);
emit_16(2005);
emit_16(1941);
emit_16(2005);
emit_16(1940);
emit_16(2005);
emit_16(1941);
emit_16(2006);
emit_16(1942);
emit_16(2006);
emit_16(1941);
emit_16(2006);
emit_16(1942);
emit_16(2007);
emit_16(1943);
emit_16(2007);
emit_16(1942);
emit_16(2007);
emit_16(1943);
emit_16(2008);
emit_16(1944);
emit_16(2008);
emit_16(1943);
emit_16(2008);
emit_16(1944);
emit_16(2009);
emit_16(1945);
emit_16(2009);
emit_16(1944);
emit_16(2009);
emit_16(1945);
emit_16(2010);
emit_16(1946);
emit_16(2010);
emit_16(1945);
emit_16(2010);
emit_16(1946);
emit_16(2011);
emit_16(1947);
emit_16(2011);
emit_16(1946);
emit_16(2011);
emit_16(1947);
emit_16(2012);
emit_16(1948);
emit_16(2012);
emit_16(1947);
emit_16(2012);
emit_16(1948);
emit_16(2013);
emit_16(1949);
emit_16(2013);
emit_16(1948);
emit_16(2013);
emit_16(1949);
emit_16(2014);
emit_16(1950);
emit_16(2014);
emit_16(1949);
emit_16(2014);
emit_16(1950);
emit_16(2015);
emit_16(1951);
emit_16(2015);
emit_16(1950);
emit_16(2015);
emit_16(1951);
emit_16(2016);
emit_16(1952);
emit_16(2016);
emit_16(1951);
emit_16(2016);
emit_16(1952);
emit_16(2017);
emit_16(1953);
emit_16(2017);
emit_16(1952);
emit_16(2017);
emit_16(1953);
emit_16(2018);
emit_16(1954);
emit_16(2018);
emit_16(1953);
emit_16(2018);
emit_16(1954);
emit_16(2019);
emit_16(1955);
emit_16(2019);
emit_16(1954);
emit_16(2019);
emit_16(1955);
emit_16(2020);
emit_16(1956);
emit_16(2020);
emit_16(1955);
emit_16(2020);
emit_16(1956);
emit_16(2021);
emit_16(1957);
emit_16(2021);
emit_16(1956);
emit_16(2021);
emit_16(1957);
emit_16(2022);
emit_16(1958);
emit_16(2022);
emit_16(1957);
emit_16(2022);
emit_16(1958);
emit_16(2023);
emit_16(1959);
emit_16(2023);
emit_16(1958);
emit_16(2023);
emit_16(1959);
emit_16(2024);
emit_16(1960);
emit_16(2024);
emit_16(1959);
emit_16(2024);
emit_16(1960);
emit_16(2025);
emit_16(1961);
emit_16(2025);
emit_16(1960);
emit_16(2025);
emit_16(1961);
emit_16(2026);
emit_16(1962);
emit_16(2026);
emit_16(1961);
emit_16(2026);
emit_16(1962);
emit_16(2027);
emit_16(1963);
emit_16(2027);
emit_16(1962);
emit_16(2027);
emit_16(1963);
emit_16(2028);
emit_16(1964);
emit_16(2028);
emit_16(1963);
emit_16(2028);
emit_16(1964);
emit_16(2029);
emit_16(1965);
emit_16(2029);
emit_16(1964);
emit_16(2029);
emit_16(1965);
emit_16(2030);
emit_16(1966);
emit_16(2030);
emit_16(1965);
emit_16(2030);
emit_16(1966);
emit_16(2031);
emit_16(1967);
emit_16(2031);
emit_16(1966);
emit_16(2031);
emit_16(1967);
emit_16(2032);
emit_16(1968);
emit_16(2032);
emit_16(1967);
emit_16(2032);
emit_16(1968);
emit_16(2033);
emit_16(1969);
emit_16(2033);
emit_16(1968);
emit_16(2033);
emit_16(1969);
emit_16(2034);
emit_16(1970);
emit_16(2034);
emit_16(1969);
emit_16(2034);
emit_16(1970);
emit_16(2035);
emit_16(1971);
emit_16(2035);
emit_16(1970);
emit_16(2035);
emit_16(1971);
emit_16(2036);
emit_16(1972);
emit_16(2036);
emit_16(1971);
emit_16(2036);
emit_16(1972);
emit_16(2037);
emit_16(1973);
emit_16(2037);
emit_16(1972);
emit_16(2037);
emit_16(1973);
emit_16(2038);
emit_16(1974);
emit_16(2038);
emit_16(1973);
emit_16(2038);
emit_16(1974);
emit_16(2039);
emit_16(1975);
emit_16(2039);
emit_16(1974);
emit_16(2039);
emit_16(1975);
emit_16(2040);
emit_16(1976);
emit_16(2040);
emit_16(1975);
emit_16(2040);
emit_16(1976);
emit_16(2041);
emit_16(1977);
emit_16(2041);
emit_16(1976);
emit_16(2041);
emit_16(1977);
emit_16(2042);
emit_16(1978);
emit_16(2042);
emit_16(1977);
emit_16(2042);
emit_16(1978);
emit_16(2043);
emit_16(1979);
emit_16(2043);
emit_16(1978);
emit_16(2043);
emit_16(1979);
emit_16(2044);
emit_16(1980);
emit_16(2044);
emit_16(1979);
emit_16(2044);
emit_16(1980);
emit_16(2045);
emit_16(1981);
emit_16(2045);
emit_16(1980);
emit_16(2045);
emit_16(1981);
emit_16(2046);
emit_16(1982);
emit_16(2046);
emit_16(1981);
emit_16(2046);
emit_16(1982);
emit_16(2047);
emit_16(1983);
emit_16(2047);
emit_16(1982);
emit_start(Landscape02Idx)
emit_16(0);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(2);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(4);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(6);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(8);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(10);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(12);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(14);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(16);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(18);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(20);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(22);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(24);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(26);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(28);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(30);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(32);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(34);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(36);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(38);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(40);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(42);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(44);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(46);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(48);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(50);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(52);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(54);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(56);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(58);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(60);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(62);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(64);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(66);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(68);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(70);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(72);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(74);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(76);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(78);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(80);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(82);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(84);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(86);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(88);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(90);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(92);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(94);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(96);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(98);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(100);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(102);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(104);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(106);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(108);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(110);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(112);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(114);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(116);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(118);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(120);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(122);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(124);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(126);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(128);
emit_16(129);
emit_16(128);
emit_16(127);
emit_16(128);
emit_16(129);
emit_16(130);
emit_16(131);
emit_16(130);
emit_16(129);
emit_16(132);
emit_16(0);
emit_16(133);
emit_16(2);
emit_16(133);
emit_16(0);
emit_16(133);
emit_16(2);
emit_16(134);
emit_16(4);
emit_16(134);
emit_16(2);
emit_16(134);
emit_16(4);
emit_16(135);
emit_16(6);
emit_16(135);
emit_16(4);
emit_16(135);
emit_16(6);
emit_16(136);
emit_16(8);
emit_16(136);
emit_16(6);
emit_16(136);
emit_16(8);
emit_16(137);
emit_16(10);
emit_16(137);
emit_16(8);
emit_16(137);
emit_16(10);
emit_16(138);
emit_16(12);
emit_16(138);
emit_16(10);
emit_16(138);
emit_16(12);
emit_16(139);
emit_16(14);
emit_16(139);
emit_16(12);
emit_16(139);
emit_16(14);
emit_16(140);
emit_16(16);
emit_16(140);
emit_16(14);
emit_16(140);
emit_16(16);
emit_16(141);
emit_16(18);
emit_16(141);
emit_16(16);
emit_16(141);
emit_16(18);
emit_16(142);
emit_16(20);
emit_16(142);
emit_16(18);
emit_16(142);
emit_16(20);
emit_16(143);
emit_16(22);
emit_16(143);
emit_16(20);
emit_16(143);
emit_16(22);
emit_16(144);
emit_16(24);
emit_16(144);
emit_16(22);
emit_16(144);
emit_16(24);
emit_16(145);
emit_16(26);
emit_16(145);
emit_16(24);
emit_16(145);
emit_16(26);
emit_16(146);
emit_16(28);
emit_16(146);
emit_16(26);
emit_16(146);
emit_16(28);
emit_16(147);
emit_16(30);
emit_16(147);
emit_16(28);
emit_16(147);
emit_16(30);
emit_16(148);
emit_16(32);
emit_16(148);
emit_16(30);
emit_16(148);
emit_16(32);
emit_16(149);
emit_16(34);
emit_16(149);
emit_16(32);
emit_16(149);
emit_16(34);
emit_16(150);
emit_16(36);
emit_16(150);
emit_16(34);
emit_16(150);
emit_16(36);
emit_16(151);
emit_16(38);
emit_16(151);
emit_16(36);
emit_16(151);
emit_16(38);
emit_16(152);
emit_16(40);
emit_16(152);
emit_16(38);
emit_16(152);
emit_16(40);
emit_16(153);
emit_16(42);
emit_16(153);
emit_16(40);
emit_16(153);
emit_16(42);
emit_16(154);
emit_16(44);
emit_16(154);
emit_16(42);
emit_16(154);
emit_16(44);
emit_16(155);
emit_16(46);
emit_16(155);
emit_16(44);
emit_16(155);
emit_16(46);
emit_16(156);
emit_16(48);
emit_16(156);
emit_16(46);
emit_16(156);
emit_16(48);
emit_16(157);
emit_16(50);
emit_16(157);
emit_16(48);
emit_16(157);
emit_16(50);
emit_16(158);
emit_16(52);
emit_16(158);
emit_16(50);
emit_16(158);
emit_16(52);
emit_16(159);
emit_16(54);
emit_16(159);
emit_16(52);
emit_16(159);
emit_16(54);
emit_16(160);
emit_16(56);
emit_16(160);
emit_16(54);
emit_16(160);
emit_16(56);
emit_16(161);
emit_16(58);
emit_16(161);
emit_16(56);
emit_16(161);
emit_16(58);
emit_16(162);
emit_16(60);
emit_16(162);
emit_16(58);
emit_16(162);
emit_16(60);
emit_16(163);
emit_16(62);
emit_16(163);
emit_16(60);
emit_16(163);
emit_16(62);
emit_16(164);
emit_16(64);
emit_16(164);
emit_16(62);
emit_16(164);
emit_16(64);
emit_16(165);
emit_16(66);
emit_16(165);
emit_16(64);
emit_16(165);
emit_16(66);
emit_16(166);
emit_16(68);
emit_16(166);
emit_16(66);
emit_16(166);
emit_16(68);
emit_16(167);
emit_16(70);
emit_16(167);
emit_16(68);
emit_16(167);
emit_16(70);
emit_16(168);
emit_16(72);
emit_16(168);
emit_16(70);
emit_16(168);
emit_16(72);
emit_16(169);
emit_16(74);
emit_16(169);
emit_16(72);
emit_16(169);
emit_16(74);
emit_16(170);
emit_16(76);
emit_16(170);
emit_16(74);
emit_16(170);
emit_16(76);
emit_16(171);
emit_16(78);
emit_16(171);
emit_16(76);
emit_16(171);
emit_16(78);
emit_16(172);
emit_16(80);
emit_16(172);
emit_16(78);
emit_16(172);
emit_16(80);
emit_16(173);
emit_16(82);
emit_16(173);
emit_16(80);
emit_16(173);
emit_16(82);
emit_16(174);
emit_16(84);
emit_16(174);
emit_16(82);
emit_16(174);
emit_16(84);
emit_16(175);
emit_16(86);
emit_16(175);
emit_16(84);
emit_16(175);
emit_16(86);
emit_16(176);
emit_16(88);
emit_16(176);
emit_16(86);
emit_16(176);
emit_16(88);
emit_16(177);
emit_16(90);
emit_16(177);
emit_16(88);
emit_16(177);
emit_16(90);
emit_16(178);
emit_16(92);
emit_16(178);
emit_16(90);
emit_16(178);
emit_16(92);
emit_16(179);
emit_16(94);
emit_16(179);
emit_16(92);
emit_16(179);
emit_16(94);
emit_16(180);
emit_16(96);
emit_16(180);
emit_16(94);
emit_16(180);
emit_16(96);
emit_16(181);
emit_16(98);
emit_16(181);
emit_16(96);
emit_16(181);
emit_16(98);
emit_16(182);
emit_16(100);
emit_16(182);
emit_16(98);
emit_16(182);
emit_16(100);
emit_16(183);
emit_16(102);
emit_16(183);
emit_16(100);
emit_16(183);
emit_16(102);
emit_16(184);
emit_16(104);
emit_16(184);
emit_16(102);
emit_16(184);
emit_16(104);
emit_16(185);
emit_16(106);
emit_16(185);
emit_16(104);
emit_16(185);
emit_16(106);
emit_16(186);
emit_16(108);
emit_16(186);
emit_16(106);
emit_16(186);
emit_16(108);
emit_16(187);
emit_16(110);
emit_16(187);
emit_16(108);
emit_16(187);
emit_16(110);
emit_16(188);
emit_16(112);
emit_16(188);
emit_16(110);
emit_16(188);
emit_16(112);
emit_16(189);
emit_16(114);
emit_16(189);
emit_16(112);
emit_16(189);
emit_16(114);
emit_16(190);
emit_16(116);
emit_16(190);
emit_16(114);
emit_16(190);
emit_16(116);
emit_16(191);
emit_16(118);
emit_16(191);
emit_16(116);
emit_16(191);
emit_16(118);
emit_16(192);
emit_16(120);
emit_16(192);
emit_16(118);
emit_16(192);
emit_16(120);
emit_16(193);
emit_16(122);
emit_16(193);
emit_16(120);
emit_16(193);
emit_16(122);
emit_16(194);
emit_16(124);
emit_16(194);
emit_16(122);
emit_16(194);
emit_16(124);
emit_16(195);
emit_16(126);
emit_16(195);
emit_16(124);
emit_16(195);
emit_16(126);
emit_16(196);
emit_16(128);
emit_16(196);
emit_16(126);
emit_16(196);
emit_16(128);
emit_16(197);
emit_16(130);
emit_16(197);
emit_16(128);
emit_16(198);
emit_16(132);
emit_16(199);
emit_16(133);
emit_16(199);
emit_16(132);
emit_16(199);
emit_16(133);
emit_16(200);
emit_16(134);
emit_16(200);
emit_16(133);
emit_16(200);
emit_16(134);
emit_16(201);
emit_16(135);
emit_16(201);
emit_16(134);
emit_16(201);
emit_16(135);
emit_16(202);
emit_16(136);
emit_16(202);
emit_16(135);
emit_16(202);
emit_16(136);
emit_16(203);
emit_16(137);
emit_16(203);
emit_16(136);
emit_16(203);
emit_16(137);
emit_16(204);
emit_16(138);
emit_16(204);
emit_16(137);
emit_16(204);
emit_16(138);
emit_16(205);
emit_16(139);
emit_16(205);
emit_16(138);
emit_16(205);
emit_16(139);
emit_16(206);
emit_16(140);
emit_16(206);
emit_16(139);
emit_16(206);
emit_16(140);
emit_16(207);
emit_16(141);
emit_16(207);
emit_16(140);
emit_16(207);
emit_16(141);
emit_16(208);
emit_16(142);
emit_16(208);
emit_16(141);
emit_16(208);
emit_16(142);
emit_16(209);
emit_16(143);
emit_16(209);
emit_16(142);
emit_16(209);
emit_16(143);
emit_16(210);
emit_16(144);
emit_16(210);
emit_16(143);
emit_16(210);
emit_16(144);
emit_16(211);
emit_16(145);
emit_16(211);
emit_16(144);
emit_16(211);
emit_16(145);
emit_16(212);
emit_16(146);
emit_16(212);
emit_16(145);
emit_16(212);
emit_16(146);
emit_16(213);
emit_16(147);
emit_16(213);
emit_16(146);
emit_16(213);
emit_16(147);
emit_16(214);
emit_16(148);
emit_16(214);
emit_16(147);
emit_16(214);
emit_16(148);
emit_16(215);
emit_16(149);
emit_16(215);
emit_16(148);
emit_16(215);
emit_16(149);
emit_16(216);
emit_16(150);
emit_16(216);
emit_16(149);
emit_16(216);
emit_16(150);
emit_16(217);
emit_16(151);
emit_16(217);
emit_16(150);
emit_16(217);
emit_16(151);
emit_16(218);
emit_16(152);
emit_16(218);
emit_16(151);
emit_16(218);
emit_16(152);
emit_16(219);
emit_16(153);
emit_16(219);
emit_16(152);
emit_16(219);
emit_16(153);
emit_16(220);
emit_16(154);
emit_16(220);
emit_16(153);
emit_16(220);
emit_16(154);
emit_16(221);
emit_16(155);
emit_16(221);
emit_16(154);
emit_16(221);
emit_16(155);
emit_16(222);
emit_16(156);
emit_16(222);
emit_16(155);
emit_16(222);
emit_16(156);
emit_16(223);
emit_16(157);
emit_16(223);
emit_16(156);
emit_16(223);
emit_16(157);
emit_16(224);
emit_16(158);
emit_16(224);
emit_16(157);
emit_16(224);
emit_16(158);
emit_16(225);
emit_16(159);
emit_16(225);
emit_16(158);
emit_16(225);
emit_16(159);
emit_16(226);
emit_16(160);
emit_16(226);
emit_16(159);
emit_16(226);
emit_16(160);
emit_16(227);
emit_16(161);
emit_16(227);
emit_16(160);
emit_16(227);
emit_16(161);
emit_16(228);
emit_16(162);
emit_16(228);
emit_16(161);
emit_16(228);
emit_16(162);
emit_16(229);
emit_16(163);
emit_16(229);
emit_16(162);
emit_16(229);
emit_16(163);
emit_16(230);
emit_16(164);
emit_16(230);
emit_16(163);
emit_16(230);
emit_16(164);
emit_16(231);
emit_16(165);
emit_16(231);
emit_16(164);
emit_16(231);
emit_16(165);
emit_16(232);
emit_16(166);
emit_16(232);
emit_16(165);
emit_16(232);
emit_16(166);
emit_16(233);
emit_16(167);
emit_16(233);
emit_16(166);
emit_16(233);
emit_16(167);
emit_16(234);
emit_16(168);
emit_16(234);
emit_16(167);
emit_16(234);
emit_16(168);
emit_16(235);
emit_16(169);
emit_16(235);
emit_16(168);
emit_16(235);
emit_16(169);
emit_16(236);
emit_16(170);
emit_16(236);
emit_16(169);
emit_16(236);
emit_16(170);
emit_16(237);
emit_16(171);
emit_16(237);
emit_16(170);
emit_16(237);
emit_16(171);
emit_16(238);
emit_16(172);
emit_16(238);
emit_16(171);
emit_16(238);
emit_16(172);
emit_16(239);
emit_16(173);
emit_16(239);
emit_16(172);
emit_16(239);
emit_16(173);
emit_16(240);
emit_16(174);
emit_16(240);
emit_16(173);
emit_16(240);
emit_16(174);
emit_16(241);
emit_16(175);
emit_16(241);
emit_16(174);
emit_16(241);
emit_16(175);
emit_16(242);
emit_16(176);
emit_16(242);
emit_16(175);
emit_16(242);
emit_16(176);
emit_16(243);
emit_16(177);
emit_16(243);
emit_16(176);
emit_16(243);
emit_16(177);
emit_16(244);
emit_16(178);
emit_16(244);
emit_16(177);
emit_16(244);
emit_16(178);
emit_16(245);
emit_16(179);
emit_16(245);
emit_16(178);
emit_16(245);
emit_16(179);
emit_16(246);
emit_16(180);
emit_16(246);
emit_16(179);
emit_16(246);
emit_16(180);
emit_16(247);
emit_16(181);
emit_16(247);
emit_16(180);
emit_16(247);
emit_16(181);
emit_16(248);
emit_16(182);
emit_16(248);
emit_16(181);
emit_16(248);
emit_16(182);
emit_16(249);
emit_16(183);
emit_16(249);
emit_16(182);
emit_16(249);
emit_16(183);
emit_16(250);
emit_16(184);
emit_16(250);
emit_16(183);
emit_16(250);
emit_16(184);
emit_16(251);
emit_16(185);
emit_16(251);
emit_16(184);
emit_16(251);
emit_16(185);
emit_16(252);
emit_16(186);
emit_16(252);
emit_16(185);
emit_16(252);
emit_16(186);
emit_16(253);
emit_16(187);
emit_16(253);
emit_16(186);
emit_16(253);
emit_16(187);
emit_16(254);
emit_16(188);
emit_16(254);
emit_16(187);
emit_16(254);
emit_16(188);
emit_16(255);
emit_16(189);
emit_16(255);
emit_16(188);
emit_16(255);
emit_16(189);
emit_16(256);
emit_16(190);
emit_16(256);
emit_16(189);
emit_16(256);
emit_16(190);
emit_16(257);
emit_16(191);
emit_16(257);
emit_16(190);
emit_16(257);
emit_16(191);
emit_16(258);
emit_16(192);
emit_16(258);
emit_16(191);
emit_16(258);
emit_16(192);
emit_16(259);
emit_16(193);
emit_16(259);
emit_16(192);
emit_16(259);
emit_16(193);
emit_16(260);
emit_16(194);
emit_16(260);
emit_16(193);
emit_16(260);
emit_16(194);
emit_16(261);
emit_16(195);
emit_16(261);
emit_16(194);
emit_16(261);
emit_16(195);
emit_16(262);
emit_16(196);
emit_16(262);
emit_16(195);
emit_16(262);
emit_16(196);
emit_16(263);
emit_16(197);
emit_16(263);
emit_16(196);
emit_16(264);
emit_16(198);
emit_16(265);
emit_16(199);
emit_16(265);
emit_16(198);
emit_16(265);
emit_16(199);
emit_16(266);
emit_16(200);
emit_16(266);
emit_16(199);
emit_16(266);
emit_16(200);
emit_16(267);
emit_16(201);
emit_16(267);
emit_16(200);
emit_16(267);
emit_16(201);
emit_16(268);
emit_16(202);
emit_16(268);
emit_16(201);
emit_16(268);
emit_16(202);
emit_16(269);
emit_16(203);
emit_16(269);
emit_16(202);
emit_16(269);
emit_16(203);
emit_16(270);
emit_16(204);
emit_16(270);
emit_16(203);
emit_16(270);
emit_16(204);
emit_16(271);
emit_16(205);
emit_16(271);
emit_16(204);
emit_16(271);
emit_16(205);
emit_16(272);
emit_16(206);
emit_16(272);
emit_16(205);
emit_16(272);
emit_16(206);
emit_16(273);
emit_16(207);
emit_16(273);
emit_16(206);
emit_16(273);
emit_16(207);
emit_16(274);
emit_16(208);
emit_16(274);
emit_16(207);
emit_16(274);
emit_16(208);
emit_16(275);
emit_16(209);
emit_16(275);
emit_16(208);
emit_16(275);
emit_16(209);
emit_16(276);
emit_16(210);
emit_16(276);
emit_16(209);
emit_16(276);
emit_16(210);
emit_16(277);
emit_16(211);
emit_16(277);
emit_16(210);
emit_16(277);
emit_16(211);
emit_16(278);
emit_16(212);
emit_16(278);
emit_16(211);
emit_16(278);
emit_16(212);
emit_16(279);
emit_16(213);
emit_16(279);
emit_16(212);
emit_16(279);
emit_16(213);
emit_16(280);
emit_16(214);
emit_16(280);
emit_16(213);
emit_16(280);
emit_16(214);
emit_16(281);
emit_16(215);
emit_16(281);
emit_16(214);
emit_16(281);
emit_16(215);
emit_16(282);
emit_16(216);
emit_16(282);
emit_16(215);
emit_16(282);
emit_16(216);
emit_16(283);
emit_16(217);
emit_16(283);
emit_16(216);
emit_16(283);
emit_16(217);
emit_16(284);
emit_16(218);
emit_16(284);
emit_16(217);
emit_16(284);
emit_16(218);
emit_16(285);
emit_16(219);
emit_16(285);
emit_16(218);
emit_16(285);
emit_16(219);
emit_16(286);
emit_16(220);
emit_16(286);
emit_16(219);
emit_16(286);
emit_16(220);
emit_16(287);
emit_16(221);
emit_16(287);
emit_16(220);
emit_16(287);
emit_16(221);
emit_16(288);
emit_16(222);
emit_16(288);
emit_16(221);
emit_16(288);
emit_16(222);
emit_16(289);
emit_16(223);
emit_16(289);
emit_16(222);
emit_16(289);
emit_16(223);
emit_16(290);
emit_16(224);
emit_16(290);
emit_16(223);
emit_16(290);
emit_16(224);
emit_16(291);
emit_16(225);
emit_16(291);
emit_16(224);
emit_16(291);
emit_16(225);
emit_16(292);
emit_16(226);
emit_16(292);
emit_16(225);
emit_16(292);
emit_16(226);
emit_16(293);
emit_16(227);
emit_16(293);
emit_16(226);
emit_16(293);
emit_16(227);
emit_16(294);
emit_16(228);
emit_16(294);
emit_16(227);
emit_16(294);
emit_16(228);
emit_16(295);
emit_16(229);
emit_16(295);
emit_16(228);
emit_16(295);
emit_16(229);
emit_16(296);
emit_16(230);
emit_16(296);
emit_16(229);
emit_16(296);
emit_16(230);
emit_16(297);
emit_16(231);
emit_16(297);
emit_16(230);
emit_16(297);
emit_16(231);
emit_16(298);
emit_16(232);
emit_16(298);
emit_16(231);
emit_16(298);
emit_16(232);
emit_16(299);
emit_16(233);
emit_16(299);
emit_16(232);
emit_16(299);
emit_16(233);
emit_16(300);
emit_16(234);
emit_16(300);
emit_16(233);
emit_16(300);
emit_16(234);
emit_16(301);
emit_16(235);
emit_16(301);
emit_16(234);
emit_16(301);
emit_16(235);
emit_16(302);
emit_16(236);
emit_16(302);
emit_16(235);
emit_16(302);
emit_16(236);
emit_16(303);
emit_16(237);
emit_16(303);
emit_16(236);
emit_16(303);
emit_16(237);
emit_16(304);
emit_16(238);
emit_16(304);
emit_16(237);
emit_16(304);
emit_16(238);
emit_16(305);
emit_16(239);
emit_16(305);
emit_16(238);
emit_16(305);
emit_16(239);
emit_16(306);
emit_16(240);
emit_16(306);
emit_16(239);
emit_16(306);
emit_16(240);
emit_16(307);
emit_16(241);
emit_16(307);
emit_16(240);
emit_16(307);
emit_16(241);
emit_16(308);
emit_16(242);
emit_16(308);
emit_16(241);
emit_16(308);
emit_16(242);
emit_16(309);
emit_16(243);
emit_16(309);
emit_16(242);
emit_16(309);
emit_16(243);
emit_16(310);
emit_16(244);
emit_16(310);
emit_16(243);
emit_16(310);
emit_16(244);
emit_16(311);
emit_16(245);
emit_16(311);
emit_16(244);
emit_16(311);
emit_16(245);
emit_16(312);
emit_16(246);
emit_16(312);
emit_16(245);
emit_16(312);
emit_16(246);
emit_16(313);
emit_16(247);
emit_16(313);
emit_16(246);
emit_16(313);
emit_16(247);
emit_16(314);
emit_16(248);
emit_16(314);
emit_16(247);
emit_16(314);
emit_16(248);
emit_16(315);
emit_16(249);
emit_16(315);
emit_16(248);
emit_16(315);
emit_16(249);
emit_16(316);
emit_16(250);
emit_16(316);
emit_16(249);
emit_16(316);
emit_16(250);
emit_16(317);
emit_16(251);
emit_16(317);
emit_16(250);
emit_16(317);
emit_16(251);
emit_16(318);
emit_16(252);
emit_16(318);
emit_16(251);
emit_16(318);
emit_16(252);
emit_16(319);
emit_16(253);
emit_16(319);
emit_16(252);
emit_16(319);
emit_16(253);
emit_16(320);
emit_16(254);
emit_16(320);
emit_16(253);
emit_16(320);
emit_16(254);
emit_16(321);
emit_16(255);
emit_16(321);
emit_16(254);
emit_16(321);
emit_16(255);
emit_16(322);
emit_16(256);
emit_16(322);
emit_16(255);
emit_16(322);
emit_16(256);
emit_16(323);
emit_16(257);
emit_16(323);
emit_16(256);
emit_16(323);
emit_16(257);
emit_16(324);
emit_16(258);
emit_16(324);
emit_16(257);
emit_16(324);
emit_16(258);
emit_16(325);
emit_16(259);
emit_16(325);
emit_16(258);
emit_16(325);
emit_16(259);
emit_16(326);
emit_16(260);
emit_16(326);
emit_16(259);
emit_16(326);
emit_16(260);
emit_16(327);
emit_16(261);
emit_16(327);
emit_16(260);
emit_16(327);
emit_16(261);
emit_16(328);
emit_16(262);
emit_16(328);
emit_16(261);
emit_16(328);
emit_16(262);
emit_16(329);
emit_16(263);
emit_16(329);
emit_16(262);
emit_16(330);
emit_16(264);
emit_16(331);
emit_16(265);
emit_16(331);
emit_16(264);
emit_16(331);
emit_16(265);
emit_16(332);
emit_16(266);
emit_16(332);
emit_16(265);
emit_16(332);
emit_16(266);
emit_16(333);
emit_16(267);
emit_16(333);
emit_16(266);
emit_16(333);
emit_16(267);
emit_16(334);
emit_16(268);
emit_16(334);
emit_16(267);
emit_16(334);
emit_16(268);
emit_16(335);
emit_16(269);
emit_16(335);
emit_16(268);
emit_16(335);
emit_16(269);
emit_16(336);
emit_16(270);
emit_16(336);
emit_16(269);
emit_16(336);
emit_16(270);
emit_16(337);
emit_16(271);
emit_16(337);
emit_16(270);
emit_16(337);
emit_16(271);
emit_16(338);
emit_16(272);
emit_16(338);
emit_16(271);
emit_16(338);
emit_16(272);
emit_16(339);
emit_16(273);
emit_16(339);
emit_16(272);
emit_16(339);
emit_16(273);
emit_16(340);
emit_16(274);
emit_16(340);
emit_16(273);
emit_16(340);
emit_16(274);
emit_16(341);
emit_16(275);
emit_16(341);
emit_16(274);
emit_16(341);
emit_16(275);
emit_16(342);
emit_16(276);
emit_16(342);
emit_16(275);
emit_16(342);
emit_16(276);
emit_16(343);
emit_16(277);
emit_16(343);
emit_16(276);
emit_16(343);
emit_16(277);
emit_16(344);
emit_16(278);
emit_16(344);
emit_16(277);
emit_16(344);
emit_16(278);
emit_16(345);
emit_16(279);
emit_16(345);
emit_16(278);
emit_16(345);
emit_16(279);
emit_16(346);
emit_16(280);
emit_16(346);
emit_16(279);
emit_16(346);
emit_16(280);
emit_16(347);
emit_16(281);
emit_16(347);
emit_16(280);
emit_16(347);
emit_16(281);
emit_16(348);
emit_16(282);
emit_16(348);
emit_16(281);
emit_16(348);
emit_16(282);
emit_16(349);
emit_16(283);
emit_16(349);
emit_16(282);
emit_16(349);
emit_16(283);
emit_16(350);
emit_16(284);
emit_16(350);
emit_16(283);
emit_16(350);
emit_16(284);
emit_16(351);
emit_16(285);
emit_16(351);
emit_16(284);
emit_16(351);
emit_16(285);
emit_16(352);
emit_16(286);
emit_16(352);
emit_16(285);
emit_16(352);
emit_16(286);
emit_16(353);
emit_16(287);
emit_16(353);
emit_16(286);
emit_16(353);
emit_16(287);
emit_16(354);
emit_16(288);
emit_16(354);
emit_16(287);
emit_16(354);
emit_16(288);
emit_16(355);
emit_16(289);
emit_16(355);
emit_16(288);
emit_16(355);
emit_16(289);
emit_16(356);
emit_16(290);
emit_16(356);
emit_16(289);
emit_16(356);
emit_16(290);
emit_16(357);
emit_16(291);
emit_16(357);
emit_16(290);
emit_16(357);
emit_16(291);
emit_16(358);
emit_16(292);
emit_16(358);
emit_16(291);
emit_16(358);
emit_16(292);
emit_16(359);
emit_16(293);
emit_16(359);
emit_16(292);
emit_16(359);
emit_16(293);
emit_16(360);
emit_16(294);
emit_16(360);
emit_16(293);
emit_16(360);
emit_16(294);
emit_16(361);
emit_16(295);
emit_16(361);
emit_16(294);
emit_16(361);
emit_16(295);
emit_16(362);
emit_16(296);
emit_16(362);
emit_16(295);
emit_16(362);
emit_16(296);
emit_16(363);
emit_16(297);
emit_16(363);
emit_16(296);
emit_16(363);
emit_16(297);
emit_16(364);
emit_16(298);
emit_16(364);
emit_16(297);
emit_16(364);
emit_16(298);
emit_16(365);
emit_16(299);
emit_16(365);
emit_16(298);
emit_16(365);
emit_16(299);
emit_16(366);
emit_16(300);
emit_16(366);
emit_16(299);
emit_16(366);
emit_16(300);
emit_16(367);
emit_16(301);
emit_16(367);
emit_16(300);
emit_16(367);
emit_16(301);
emit_16(368);
emit_16(302);
emit_16(368);
emit_16(301);
emit_16(368);
emit_16(302);
emit_16(369);
emit_16(303);
emit_16(369);
emit_16(302);
emit_16(369);
emit_16(303);
emit_16(370);
emit_16(304);
emit_16(370);
emit_16(303);
emit_16(370);
emit_16(304);
emit_16(371);
emit_16(305);
emit_16(371);
emit_16(304);
emit_16(371);
emit_16(305);
emit_16(372);
emit_16(306);
emit_16(372);
emit_16(305);
emit_16(372);
emit_16(306);
emit_16(373);
emit_16(307);
emit_16(373);
emit_16(306);
emit_16(373);
emit_16(307);
emit_16(374);
emit_16(308);
emit_16(374);
emit_16(307);
emit_16(374);
emit_16(308);
emit_16(375);
emit_16(309);
emit_16(375);
emit_16(308);
emit_16(375);
emit_16(309);
emit_16(376);
emit_16(310);
emit_16(376);
emit_16(309);
emit_16(376);
emit_16(310);
emit_16(377);
emit_16(311);
emit_16(377);
emit_16(310);
emit_16(377);
emit_16(311);
emit_16(378);
emit_16(312);
emit_16(378);
emit_16(311);
emit_16(378);
emit_16(312);
emit_16(379);
emit_16(313);
emit_16(379);
emit_16(312);
emit_16(379);
emit_16(313);
emit_16(380);
emit_16(314);
emit_16(380);
emit_16(313);
emit_16(380);
emit_16(314);
emit_16(381);
emit_16(315);
emit_16(381);
emit_16(314);
emit_16(381);
emit_16(315);
emit_16(382);
emit_16(316);
emit_16(382);
emit_16(315);
emit_16(382);
emit_16(316);
emit_16(383);
emit_16(317);
emit_16(383);
emit_16(316);
emit_16(383);
emit_16(317);
emit_16(384);
emit_16(318);
emit_16(384);
emit_16(317);
emit_16(384);
emit_16(318);
emit_16(385);
emit_16(319);
emit_16(385);
emit_16(318);
emit_16(385);
emit_16(319);
emit_16(386);
emit_16(320);
emit_16(386);
emit_16(319);
emit_16(386);
emit_16(320);
emit_16(387);
emit_16(321);
emit_16(387);
emit_16(320);
emit_16(387);
emit_16(321);
emit_16(388);
emit_16(322);
emit_16(388);
emit_16(321);
emit_16(388);
emit_16(322);
emit_16(389);
emit_16(323);
emit_16(389);
emit_16(322);
emit_16(389);
emit_16(323);
emit_16(390);
emit_16(324);
emit_16(390);
emit_16(323);
emit_16(390);
emit_16(324);
emit_16(391);
emit_16(325);
emit_16(391);
emit_16(324);
emit_16(391);
emit_16(325);
emit_16(392);
emit_16(326);
emit_16(392);
emit_16(325);
emit_16(392);
emit_16(326);
emit_16(393);
emit_16(327);
emit_16(393);
emit_16(326);
emit_16(393);
emit_16(327);
emit_16(394);
emit_16(328);
emit_16(394);
emit_16(327);
emit_16(394);
emit_16(328);
emit_16(395);
emit_16(329);
emit_16(395);
emit_16(328);
emit_16(396);
emit_16(330);
emit_16(397);
emit_16(331);
emit_16(397);
emit_16(330);
emit_16(397);
emit_16(331);
emit_16(398);
emit_16(332);
emit_16(398);
emit_16(331);
emit_16(398);
emit_16(332);
emit_16(399);
emit_16(333);
emit_16(399);
emit_16(332);
emit_16(399);
emit_16(333);
emit_16(400);
emit_16(334);
emit_16(400);
emit_16(333);
emit_16(400);
emit_16(334);
emit_16(401);
emit_16(335);
emit_16(401);
emit_16(334);
emit_16(401);
emit_16(335);
emit_16(402);
emit_16(336);
emit_16(402);
emit_16(335);
emit_16(402);
emit_16(336);
emit_16(403);
emit_16(337);
emit_16(403);
emit_16(336);
emit_16(403);
emit_16(337);
emit_16(404);
emit_16(338);
emit_16(404);
emit_16(337);
emit_16(404);
emit_16(338);
emit_16(405);
emit_16(339);
emit_16(405);
emit_16(338);
emit_16(405);
emit_16(339);
emit_16(406);
emit_16(340);
emit_16(406);
emit_16(339);
emit_16(406);
emit_16(340);
emit_16(407);
emit_16(341);
emit_16(407);
emit_16(340);
emit_16(407);
emit_16(341);
emit_16(408);
emit_16(342);
emit_16(408);
emit_16(341);
emit_16(408);
emit_16(342);
emit_16(409);
emit_16(343);
emit_16(409);
emit_16(342);
emit_16(409);
emit_16(343);
emit_16(410);
emit_16(344);
emit_16(410);
emit_16(343);
emit_16(410);
emit_16(344);
emit_16(411);
emit_16(345);
emit_16(411);
emit_16(344);
emit_16(411);
emit_16(345);
emit_16(412);
emit_16(346);
emit_16(412);
emit_16(345);
emit_16(412);
emit_16(346);
emit_16(413);
emit_16(347);
emit_16(413);
emit_16(346);
emit_16(413);
emit_16(347);
emit_16(414);
emit_16(348);
emit_16(414);
emit_16(347);
emit_16(414);
emit_16(348);
emit_16(415);
emit_16(349);
emit_16(415);
emit_16(348);
emit_16(415);
emit_16(349);
emit_16(416);
emit_16(350);
emit_16(416);
emit_16(349);
emit_16(416);
emit_16(350);
emit_16(417);
emit_16(351);
emit_16(417);
emit_16(350);
emit_16(417);
emit_16(351);
emit_16(418);
emit_16(352);
emit_16(418);
emit_16(351);
emit_16(418);
emit_16(352);
emit_16(419);
emit_16(353);
emit_16(419);
emit_16(352);
emit_16(419);
emit_16(353);
emit_16(420);
emit_16(354);
emit_16(420);
emit_16(353);
emit_16(420);
emit_16(354);
emit_16(421);
emit_16(355);
emit_16(421);
emit_16(354);
emit_16(421);
emit_16(355);
emit_16(422);
emit_16(356);
emit_16(422);
emit_16(355);
emit_16(422);
emit_16(356);
emit_16(423);
emit_16(357);
emit_16(423);
emit_16(356);
emit_16(423);
emit_16(357);
emit_16(424);
emit_16(358);
emit_16(424);
emit_16(357);
emit_16(424);
emit_16(358);
emit_16(425);
emit_16(359);
emit_16(425);
emit_16(358);
emit_16(425);
emit_16(359);
emit_16(426);
emit_16(360);
emit_16(426);
emit_16(359);
emit_16(426);
emit_16(360);
emit_16(427);
emit_16(361);
emit_16(427);
emit_16(360);
emit_16(427);
emit_16(361);
emit_16(428);
emit_16(362);
emit_16(428);
emit_16(361);
emit_16(428);
emit_16(362);
emit_16(429);
emit_16(363);
emit_16(429);
emit_16(362);
emit_16(429);
emit_16(363);
emit_16(430);
emit_16(364);
emit_16(430);
emit_16(363);
emit_16(430);
emit_16(364);
emit_16(431);
emit_16(365);
emit_16(431);
emit_16(364);
emit_16(431);
emit_16(365);
emit_16(432);
emit_16(366);
emit_16(432);
emit_16(365);
emit_16(432);
emit_16(366);
emit_16(433);
emit_16(367);
emit_16(433);
emit_16(366);
emit_16(433);
emit_16(367);
emit_16(434);
emit_16(368);
emit_16(434);
emit_16(367);
emit_16(434);
emit_16(368);
emit_16(435);
emit_16(369);
emit_16(435);
emit_16(368);
emit_16(435);
emit_16(369);
emit_16(436);
emit_16(370);
emit_16(436);
emit_16(369);
emit_16(436);
emit_16(370);
emit_16(437);
emit_16(371);
emit_16(437);
emit_16(370);
emit_16(437);
emit_16(371);
emit_16(438);
emit_16(372);
emit_16(438);
emit_16(371);
emit_16(438);
emit_16(372);
emit_16(439);
emit_16(373);
emit_16(439);
emit_16(372);
emit_16(439);
emit_16(373);
emit_16(440);
emit_16(374);
emit_16(440);
emit_16(373);
emit_16(440);
emit_16(374);
emit_16(441);
emit_16(375);
emit_16(441);
emit_16(374);
emit_16(441);
emit_16(375);
emit_16(442);
emit_16(376);
emit_16(442);
emit_16(375);
emit_16(442);
emit_16(376);
emit_16(443);
emit_16(377);
emit_16(443);
emit_16(376);
emit_16(443);
emit_16(377);
emit_16(444);
emit_16(378);
emit_16(444);
emit_16(377);
emit_16(444);
emit_16(378);
emit_16(445);
emit_16(379);
emit_16(445);
emit_16(378);
emit_16(445);
emit_16(379);
emit_16(446);
emit_16(380);
emit_16(446);
emit_16(379);
emit_16(446);
emit_16(380);
emit_16(447);
emit_16(381);
emit_16(447);
emit_16(380);
emit_16(447);
emit_16(381);
emit_16(448);
emit_16(382);
emit_16(448);
emit_16(381);
emit_16(448);
emit_16(382);
emit_16(449);
emit_16(383);
emit_16(449);
emit_16(382);
emit_16(449);
emit_16(383);
emit_16(450);
emit_16(384);
emit_16(450);
emit_16(383);
emit_16(450);
emit_16(384);
emit_16(451);
emit_16(385);
emit_16(451);
emit_16(384);
emit_16(451);
emit_16(385);
emit_16(452);
emit_16(386);
emit_16(452);
emit_16(385);
emit_16(452);
emit_16(386);
emit_16(453);
emit_16(387);
emit_16(453);
emit_16(386);
emit_16(453);
emit_16(387);
emit_16(454);
emit_16(388);
emit_16(454);
emit_16(387);
emit_16(454);
emit_16(388);
emit_16(455);
emit_16(389);
emit_16(455);
emit_16(388);
emit_16(455);
emit_16(389);
emit_16(456);
emit_16(390);
emit_16(456);
emit_16(389);
emit_16(456);
emit_16(390);
emit_16(457);
emit_16(391);
emit_16(457);
emit_16(390);
emit_16(457);
emit_16(391);
emit_16(458);
emit_16(392);
emit_16(458);
emit_16(391);
emit_16(458);
emit_16(392);
emit_16(459);
emit_16(393);
emit_16(459);
emit_16(392);
emit_16(459);
emit_16(393);
emit_16(460);
emit_16(394);
emit_16(460);
emit_16(393);
emit_16(460);
emit_16(394);
emit_16(461);
emit_16(395);
emit_16(461);
emit_16(394);
emit_16(462);
emit_16(396);
emit_16(463);
emit_16(397);
emit_16(463);
emit_16(396);
emit_16(463);
emit_16(397);
emit_16(464);
emit_16(398);
emit_16(464);
emit_16(397);
emit_16(464);
emit_16(398);
emit_16(465);
emit_16(399);
emit_16(465);
emit_16(398);
emit_16(465);
emit_16(399);
emit_16(466);
emit_16(400);
emit_16(466);
emit_16(399);
emit_16(466);
emit_16(400);
emit_16(467);
emit_16(401);
emit_16(467);
emit_16(400);
emit_16(467);
emit_16(401);
emit_16(468);
emit_16(402);
emit_16(468);
emit_16(401);
emit_16(468);
emit_16(402);
emit_16(469);
emit_16(403);
emit_16(469);
emit_16(402);
emit_16(469);
emit_16(403);
emit_16(470);
emit_16(404);
emit_16(470);
emit_16(403);
emit_16(470);
emit_16(404);
emit_16(471);
emit_16(405);
emit_16(471);
emit_16(404);
emit_16(471);
emit_16(405);
emit_16(472);
emit_16(406);
emit_16(472);
emit_16(405);
emit_16(472);
emit_16(406);
emit_16(473);
emit_16(407);
emit_16(473);
emit_16(406);
emit_16(473);
emit_16(407);
emit_16(474);
emit_16(408);
emit_16(474);
emit_16(407);
emit_16(474);
emit_16(408);
emit_16(475);
emit_16(409);
emit_16(475);
emit_16(408);
emit_16(475);
emit_16(409);
emit_16(476);
emit_16(410);
emit_16(476);
emit_16(409);
emit_16(476);
emit_16(410);
emit_16(477);
emit_16(411);
emit_16(477);
emit_16(410);
emit_16(477);
emit_16(411);
emit_16(478);
emit_16(412);
emit_16(478);
emit_16(411);
emit_16(478);
emit_16(412);
emit_16(479);
emit_16(413);
emit_16(479);
emit_16(412);
emit_16(479);
emit_16(413);
emit_16(480);
emit_16(414);
emit_16(480);
emit_16(413);
emit_16(480);
emit_16(414);
emit_16(481);
emit_16(415);
emit_16(481);
emit_16(414);
emit_16(481);
emit_16(415);
emit_16(482);
emit_16(416);
emit_16(482);
emit_16(415);
emit_16(482);
emit_16(416);
emit_16(483);
emit_16(417);
emit_16(483);
emit_16(416);
emit_16(483);
emit_16(417);
emit_16(484);
emit_16(418);
emit_16(484);
emit_16(417);
emit_16(484);
emit_16(418);
emit_16(485);
emit_16(419);
emit_16(485);
emit_16(418);
emit_16(485);
emit_16(419);
emit_16(486);
emit_16(420);
emit_16(486);
emit_16(419);
emit_16(486);
emit_16(420);
emit_16(487);
emit_16(421);
emit_16(487);
emit_16(420);
emit_16(487);
emit_16(421);
emit_16(488);
emit_16(422);
emit_16(488);
emit_16(421);
emit_16(488);
emit_16(422);
emit_16(489);
emit_16(423);
emit_16(489);
emit_16(422);
emit_16(489);
emit_16(423);
emit_16(490);
emit_16(424);
emit_16(490);
emit_16(423);
emit_16(490);
emit_16(424);
emit_16(491);
emit_16(425);
emit_16(491);
emit_16(424);
emit_16(491);
emit_16(425);
emit_16(492);
emit_16(426);
emit_16(492);
emit_16(425);
emit_16(492);
emit_16(426);
emit_16(493);
emit_16(427);
emit_16(493);
emit_16(426);
emit_16(493);
emit_16(427);
emit_16(494);
emit_16(428);
emit_16(494);
emit_16(427);
emit_16(494);
emit_16(428);
emit_16(495);
emit_16(429);
emit_16(495);
emit_16(428);
emit_16(495);
emit_16(429);
emit_16(496);
emit_16(430);
emit_16(496);
emit_16(429);
emit_16(496);
emit_16(430);
emit_16(497);
emit_16(431);
emit_16(497);
emit_16(430);
emit_16(497);
emit_16(431);
emit_16(498);
emit_16(432);
emit_16(498);
emit_16(431);
emit_16(498);
emit_16(432);
emit_16(499);
emit_16(433);
emit_16(499);
emit_16(432);
emit_16(499);
emit_16(433);
emit_16(500);
emit_16(434);
emit_16(500);
emit_16(433);
emit_16(500);
emit_16(434);
emit_16(501);
emit_16(435);
emit_16(501);
emit_16(434);
emit_16(501);
emit_16(435);
emit_16(502);
emit_16(436);
emit_16(502);
emit_16(435);
emit_16(502);
emit_16(436);
emit_16(503);
emit_16(437);
emit_16(503);
emit_16(436);
emit_16(503);
emit_16(437);
emit_16(504);
emit_16(438);
emit_16(504);
emit_16(437);
emit_16(504);
emit_16(438);
emit_16(505);
emit_16(439);
emit_16(505);
emit_16(438);
emit_16(505);
emit_16(439);
emit_16(506);
emit_16(440);
emit_16(506);
emit_16(439);
emit_16(506);
emit_16(440);
emit_16(507);
emit_16(441);
emit_16(507);
emit_16(440);
emit_16(507);
emit_16(441);
emit_16(508);
emit_16(442);
emit_16(508);
emit_16(441);
emit_16(508);
emit_16(442);
emit_16(509);
emit_16(443);
emit_16(509);
emit_16(442);
emit_16(509);
emit_16(443);
emit_16(510);
emit_16(444);
emit_16(510);
emit_16(443);
emit_16(510);
emit_16(444);
emit_16(511);
emit_16(445);
emit_16(511);
emit_16(444);
emit_16(511);
emit_16(445);
emit_16(512);
emit_16(446);
emit_16(512);
emit_16(445);
emit_16(512);
emit_16(446);
emit_16(513);
emit_16(447);
emit_16(513);
emit_16(446);
emit_16(513);
emit_16(447);
emit_16(514);
emit_16(448);
emit_16(514);
emit_16(447);
emit_16(514);
emit_16(448);
emit_16(515);
emit_16(449);
emit_16(515);
emit_16(448);
emit_16(515);
emit_16(449);
emit_16(516);
emit_16(450);
emit_16(516);
emit_16(449);
emit_16(516);
emit_16(450);
emit_16(517);
emit_16(451);
emit_16(517);
emit_16(450);
emit_16(517);
emit_16(451);
emit_16(518);
emit_16(452);
emit_16(518);
emit_16(451);
emit_16(518);
emit_16(452);
emit_16(519);
emit_16(453);
emit_16(519);
emit_16(452);
emit_16(519);
emit_16(453);
emit_16(520);
emit_16(454);
emit_16(520);
emit_16(453);
emit_16(520);
emit_16(454);
emit_16(521);
emit_16(455);
emit_16(521);
emit_16(454);
emit_16(521);
emit_16(455);
emit_16(522);
emit_16(456);
emit_16(522);
emit_16(455);
emit_16(522);
emit_16(456);
emit_16(523);
emit_16(457);
emit_16(523);
emit_16(456);
emit_16(523);
emit_16(457);
emit_16(524);
emit_16(458);
emit_16(524);
emit_16(457);
emit_16(524);
emit_16(458);
emit_16(525);
emit_16(459);
emit_16(525);
emit_16(458);
emit_16(525);
emit_16(459);
emit_16(526);
emit_16(460);
emit_16(526);
emit_16(459);
emit_16(526);
emit_16(460);
emit_16(527);
emit_16(461);
emit_16(527);
emit_16(460);
emit_16(528);
emit_16(462);
emit_16(529);
emit_16(463);
emit_16(529);
emit_16(462);
emit_16(529);
emit_16(463);
emit_16(530);
emit_16(464);
emit_16(530);
emit_16(463);
emit_16(530);
emit_16(464);
emit_16(531);
emit_16(465);
emit_16(531);
emit_16(464);
emit_16(531);
emit_16(465);
emit_16(532);
emit_16(466);
emit_16(532);
emit_16(465);
emit_16(532);
emit_16(466);
emit_16(533);
emit_16(467);
emit_16(533);
emit_16(466);
emit_16(533);
emit_16(467);
emit_16(534);
emit_16(468);
emit_16(534);
emit_16(467);
emit_16(534);
emit_16(468);
emit_16(535);
emit_16(469);
emit_16(535);
emit_16(468);
emit_16(535);
emit_16(469);
emit_16(536);
emit_16(470);
emit_16(536);
emit_16(469);
emit_16(536);
emit_16(470);
emit_16(537);
emit_16(471);
emit_16(537);
emit_16(470);
emit_16(537);
emit_16(471);
emit_16(538);
emit_16(472);
emit_16(538);
emit_16(471);
emit_16(538);
emit_16(472);
emit_16(539);
emit_16(473);
emit_16(539);
emit_16(472);
emit_16(539);
emit_16(473);
emit_16(540);
emit_16(474);
emit_16(540);
emit_16(473);
emit_16(540);
emit_16(474);
emit_16(541);
emit_16(475);
emit_16(541);
emit_16(474);
emit_16(541);
emit_16(475);
emit_16(542);
emit_16(476);
emit_16(542);
emit_16(475);
emit_16(542);
emit_16(476);
emit_16(543);
emit_16(477);
emit_16(543);
emit_16(476);
emit_16(543);
emit_16(477);
emit_16(544);
emit_16(478);
emit_16(544);
emit_16(477);
emit_16(544);
emit_16(478);
emit_16(545);
emit_16(479);
emit_16(545);
emit_16(478);
emit_16(545);
emit_16(479);
emit_16(546);
emit_16(480);
emit_16(546);
emit_16(479);
emit_16(546);
emit_16(480);
emit_16(547);
emit_16(481);
emit_16(547);
emit_16(480);
emit_16(547);
emit_16(481);
emit_16(548);
emit_16(482);
emit_16(548);
emit_16(481);
emit_16(548);
emit_16(482);
emit_16(549);
emit_16(483);
emit_16(549);
emit_16(482);
emit_16(549);
emit_16(483);
emit_16(550);
emit_16(484);
emit_16(550);
emit_16(483);
emit_16(550);
emit_16(484);
emit_16(551);
emit_16(485);
emit_16(551);
emit_16(484);
emit_16(551);
emit_16(485);
emit_16(552);
emit_16(486);
emit_16(552);
emit_16(485);
emit_16(552);
emit_16(486);
emit_16(553);
emit_16(487);
emit_16(553);
emit_16(486);
emit_16(553);
emit_16(487);
emit_16(554);
emit_16(488);
emit_16(554);
emit_16(487);
emit_16(554);
emit_16(488);
emit_16(555);
emit_16(489);
emit_16(555);
emit_16(488);
emit_16(555);
emit_16(489);
emit_16(556);
emit_16(490);
emit_16(556);
emit_16(489);
emit_16(556);
emit_16(490);
emit_16(557);
emit_16(491);
emit_16(557);
emit_16(490);
emit_16(557);
emit_16(491);
emit_16(558);
emit_16(492);
emit_16(558);
emit_16(491);
emit_16(558);
emit_16(492);
emit_16(559);
emit_16(493);
emit_16(559);
emit_16(492);
emit_16(559);
emit_16(493);
emit_16(560);
emit_16(494);
emit_16(560);
emit_16(493);
emit_16(560);
emit_16(494);
emit_16(561);
emit_16(495);
emit_16(561);
emit_16(494);
emit_16(561);
emit_16(495);
emit_16(562);
emit_16(496);
emit_16(562);
emit_16(495);
emit_16(562);
emit_16(496);
emit_16(563);
emit_16(497);
emit_16(563);
emit_16(496);
emit_16(563);
emit_16(497);
emit_16(564);
emit_16(498);
emit_16(564);
emit_16(497);
emit_16(564);
emit_16(498);
emit_16(565);
emit_16(499);
emit_16(565);
emit_16(498);
emit_16(565);
emit_16(499);
emit_16(566);
emit_16(500);
emit_16(566);
emit_16(499);
emit_16(566);
emit_16(500);
emit_16(567);
emit_16(501);
emit_16(567);
emit_16(500);
emit_16(567);
emit_16(501);
emit_16(568);
emit_16(502);
emit_16(568);
emit_16(501);
emit_16(568);
emit_16(502);
emit_16(569);
emit_16(503);
emit_16(569);
emit_16(502);
emit_16(569);
emit_16(503);
emit_16(570);
emit_16(504);
emit_16(570);
emit_16(503);
emit_16(570);
emit_16(504);
emit_16(571);
emit_16(505);
emit_16(571);
emit_16(504);
emit_16(571);
emit_16(505);
emit_16(572);
emit_16(506);
emit_16(572);
emit_16(505);
emit_16(572);
emit_16(506);
emit_16(573);
emit_16(507);
emit_16(573);
emit_16(506);
emit_16(573);
emit_16(507);
emit_16(574);
emit_16(508);
emit_16(574);
emit_16(507);
emit_16(574);
emit_16(508);
emit_16(575);
emit_16(509);
emit_16(575);
emit_16(508);
emit_16(575);
emit_16(509);
emit_16(576);
emit_16(510);
emit_16(576);
emit_16(509);
emit_16(576);
emit_16(510);
emit_16(577);
emit_16(511);
emit_16(577);
emit_16(510);
emit_16(577);
emit_16(511);
emit_16(578);
emit_16(512);
emit_16(578);
emit_16(511);
emit_16(578);
emit_16(512);
emit_16(579);
emit_16(513);
emit_16(579);
emit_16(512);
emit_16(579);
emit_16(513);
emit_16(580);
emit_16(514);
emit_16(580);
emit_16(513);
emit_16(580);
emit_16(514);
emit_16(581);
emit_16(515);
emit_16(581);
emit_16(514);
emit_16(581);
emit_16(515);
emit_16(582);
emit_16(516);
emit_16(582);
emit_16(515);
emit_16(582);
emit_16(516);
emit_16(583);
emit_16(517);
emit_16(583);
emit_16(516);
emit_16(583);
emit_16(517);
emit_16(584);
emit_16(518);
emit_16(584);
emit_16(517);
emit_16(584);
emit_16(518);
emit_16(585);
emit_16(519);
emit_16(585);
emit_16(518);
emit_16(585);
emit_16(519);
emit_16(586);
emit_16(520);
emit_16(586);
emit_16(519);
emit_16(586);
emit_16(520);
emit_16(587);
emit_16(521);
emit_16(587);
emit_16(520);
emit_16(587);
emit_16(521);
emit_16(588);
emit_16(522);
emit_16(588);
emit_16(521);
emit_16(588);
emit_16(522);
emit_16(589);
emit_16(523);
emit_16(589);
emit_16(522);
emit_16(589);
emit_16(523);
emit_16(590);
emit_16(524);
emit_16(590);
emit_16(523);
emit_16(590);
emit_16(524);
emit_16(591);
emit_16(525);
emit_16(591);
emit_16(524);
emit_16(591);
emit_16(525);
emit_16(592);
emit_16(526);
emit_16(592);
emit_16(525);
emit_16(592);
emit_16(526);
emit_16(593);
emit_16(527);
emit_16(593);
emit_16(526);
emit_16(594);
emit_16(528);
emit_16(595);
emit_16(529);
emit_16(595);
emit_16(528);
emit_16(595);
emit_16(529);
emit_16(596);
emit_16(530);
emit_16(596);
emit_16(529);
emit_16(596);
emit_16(530);
emit_16(597);
emit_16(531);
emit_16(597);
emit_16(530);
emit_16(597);
emit_16(531);
emit_16(598);
emit_16(532);
emit_16(598);
emit_16(531);
emit_16(598);
emit_16(532);
emit_16(599);
emit_16(533);
emit_16(599);
emit_16(532);
emit_16(599);
emit_16(533);
emit_16(600);
emit_16(534);
emit_16(600);
emit_16(533);
emit_16(600);
emit_16(534);
emit_16(601);
emit_16(535);
emit_16(601);
emit_16(534);
emit_16(601);
emit_16(535);
emit_16(602);
emit_16(536);
emit_16(602);
emit_16(535);
emit_16(602);
emit_16(536);
emit_16(603);
emit_16(537);
emit_16(603);
emit_16(536);
emit_16(603);
emit_16(537);
emit_16(604);
emit_16(538);
emit_16(604);
emit_16(537);
emit_16(604);
emit_16(538);
emit_16(605);
emit_16(539);
emit_16(605);
emit_16(538);
emit_16(605);
emit_16(539);
emit_16(606);
emit_16(540);
emit_16(606);
emit_16(539);
emit_16(606);
emit_16(540);
emit_16(607);
emit_16(541);
emit_16(607);
emit_16(540);
emit_16(607);
emit_16(541);
emit_16(608);
emit_16(542);
emit_16(608);
emit_16(541);
emit_16(608);
emit_16(542);
emit_16(609);
emit_16(543);
emit_16(609);
emit_16(542);
emit_16(609);
emit_16(543);
emit_16(610);
emit_16(544);
emit_16(610);
emit_16(543);
emit_16(610);
emit_16(544);
emit_16(611);
emit_16(545);
emit_16(611);
emit_16(544);
emit_16(611);
emit_16(545);
emit_16(612);
emit_16(546);
emit_16(612);
emit_16(545);
emit_16(612);
emit_16(546);
emit_16(613);
emit_16(547);
emit_16(613);
emit_16(546);
emit_16(613);
emit_16(547);
emit_16(614);
emit_16(548);
emit_16(614);
emit_16(547);
emit_16(614);
emit_16(548);
emit_16(615);
emit_16(549);
emit_16(615);
emit_16(548);
emit_16(615);
emit_16(549);
emit_16(616);
emit_16(550);
emit_16(616);
emit_16(549);
emit_16(616);
emit_16(550);
emit_16(617);
emit_16(551);
emit_16(617);
emit_16(550);
emit_16(617);
emit_16(551);
emit_16(618);
emit_16(552);
emit_16(618);
emit_16(551);
emit_16(618);
emit_16(552);
emit_16(619);
emit_16(553);
emit_16(619);
emit_16(552);
emit_16(619);
emit_16(553);
emit_16(620);
emit_16(554);
emit_16(620);
emit_16(553);
emit_16(620);
emit_16(554);
emit_16(621);
emit_16(555);
emit_16(621);
emit_16(554);
emit_16(621);
emit_16(555);
emit_16(622);
emit_16(556);
emit_16(622);
emit_16(555);
emit_16(622);
emit_16(556);
emit_16(623);
emit_16(557);
emit_16(623);
emit_16(556);
emit_16(623);
emit_16(557);
emit_16(624);
emit_16(558);
emit_16(624);
emit_16(557);
emit_16(624);
emit_16(558);
emit_16(625);
emit_16(559);
emit_16(625);
emit_16(558);
emit_16(625);
emit_16(559);
emit_16(626);
emit_16(560);
emit_16(626);
emit_16(559);
emit_16(626);
emit_16(560);
emit_16(627);
emit_16(561);
emit_16(627);
emit_16(560);
emit_16(627);
emit_16(561);
emit_16(628);
emit_16(562);
emit_16(628);
emit_16(561);
emit_16(628);
emit_16(562);
emit_16(629);
emit_16(563);
emit_16(629);
emit_16(562);
emit_16(629);
emit_16(563);
emit_16(630);
emit_16(564);
emit_16(630);
emit_16(563);
emit_16(630);
emit_16(564);
emit_16(631);
emit_16(565);
emit_16(631);
emit_16(564);
emit_16(631);
emit_16(565);
emit_16(632);
emit_16(566);
emit_16(632);
emit_16(565);
emit_16(632);
emit_16(566);
emit_16(633);
emit_16(567);
emit_16(633);
emit_16(566);
emit_16(633);
emit_16(567);
emit_16(634);
emit_16(568);
emit_16(634);
emit_16(567);
emit_16(634);
emit_16(568);
emit_16(635);
emit_16(569);
emit_16(635);
emit_16(568);
emit_16(635);
emit_16(569);
emit_16(636);
emit_16(570);
emit_16(636);
emit_16(569);
emit_16(636);
emit_16(570);
emit_16(637);
emit_16(571);
emit_16(637);
emit_16(570);
emit_16(637);
emit_16(571);
emit_16(638);
emit_16(572);
emit_16(638);
emit_16(571);
emit_16(638);
emit_16(572);
emit_16(639);
emit_16(573);
emit_16(639);
emit_16(572);
emit_16(639);
emit_16(573);
emit_16(640);
emit_16(574);
emit_16(640);
emit_16(573);
emit_16(640);
emit_16(574);
emit_16(641);
emit_16(575);
emit_16(641);
emit_16(574);
emit_16(641);
emit_16(575);
emit_16(642);
emit_16(576);
emit_16(642);
emit_16(575);
emit_16(642);
emit_16(576);
emit_16(643);
emit_16(577);
emit_16(643);
emit_16(576);
emit_16(643);
emit_16(577);
emit_16(644);
emit_16(578);
emit_16(644);
emit_16(577);
emit_16(644);
emit_16(578);
emit_16(645);
emit_16(579);
emit_16(645);
emit_16(578);
emit_16(645);
emit_16(579);
emit_16(646);
emit_16(580);
emit_16(646);
emit_16(579);
emit_16(646);
emit_16(580);
emit_16(647);
emit_16(581);
emit_16(647);
emit_16(580);
emit_16(647);
emit_16(581);
emit_16(648);
emit_16(582);
emit_16(648);
emit_16(581);
emit_16(648);
emit_16(582);
emit_16(649);
emit_16(583);
emit_16(649);
emit_16(582);
emit_16(649);
emit_16(583);
emit_16(650);
emit_16(584);
emit_16(650);
emit_16(583);
emit_16(650);
emit_16(584);
emit_16(651);
emit_16(585);
emit_16(651);
emit_16(584);
emit_16(651);
emit_16(585);
emit_16(652);
emit_16(586);
emit_16(652);
emit_16(585);
emit_16(652);
emit_16(586);
emit_16(653);
emit_16(587);
emit_16(653);
emit_16(586);
emit_16(653);
emit_16(587);
emit_16(654);
emit_16(588);
emit_16(654);
emit_16(587);
emit_16(654);
emit_16(588);
emit_16(655);
emit_16(589);
emit_16(655);
emit_16(588);
emit_16(655);
emit_16(589);
emit_16(656);
emit_16(590);
emit_16(656);
emit_16(589);
emit_16(656);
emit_16(590);
emit_16(657);
emit_16(591);
emit_16(657);
emit_16(590);
emit_16(657);
emit_16(591);
emit_16(658);
emit_16(592);
emit_16(658);
emit_16(591);
emit_16(658);
emit_16(592);
emit_16(659);
emit_16(593);
emit_16(659);
emit_16(592);
emit_16(660);
emit_16(594);
emit_16(661);
emit_16(595);
emit_16(661);
emit_16(594);
emit_16(661);
emit_16(595);
emit_16(662);
emit_16(596);
emit_16(662);
emit_16(595);
emit_16(662);
emit_16(596);
emit_16(663);
emit_16(597);
emit_16(663);
emit_16(596);
emit_16(663);
emit_16(597);
emit_16(664);
emit_16(598);
emit_16(664);
emit_16(597);
emit_16(664);
emit_16(598);
emit_16(665);
emit_16(599);
emit_16(665);
emit_16(598);
emit_16(665);
emit_16(599);
emit_16(666);
emit_16(600);
emit_16(666);
emit_16(599);
emit_16(666);
emit_16(600);
emit_16(667);
emit_16(601);
emit_16(667);
emit_16(600);
emit_16(667);
emit_16(601);
emit_16(668);
emit_16(602);
emit_16(668);
emit_16(601);
emit_16(668);
emit_16(602);
emit_16(669);
emit_16(603);
emit_16(669);
emit_16(602);
emit_16(669);
emit_16(603);
emit_16(670);
emit_16(604);
emit_16(670);
emit_16(603);
emit_16(670);
emit_16(604);
emit_16(671);
emit_16(605);
emit_16(671);
emit_16(604);
emit_16(671);
emit_16(605);
emit_16(672);
emit_16(606);
emit_16(672);
emit_16(605);
emit_16(672);
emit_16(606);
emit_16(673);
emit_16(607);
emit_16(673);
emit_16(606);
emit_16(673);
emit_16(607);
emit_16(674);
emit_16(608);
emit_16(674);
emit_16(607);
emit_16(674);
emit_16(608);
emit_16(675);
emit_16(609);
emit_16(675);
emit_16(608);
emit_16(675);
emit_16(609);
emit_16(676);
emit_16(610);
emit_16(676);
emit_16(609);
emit_16(676);
emit_16(610);
emit_16(677);
emit_16(611);
emit_16(677);
emit_16(610);
emit_16(677);
emit_16(611);
emit_16(678);
emit_16(612);
emit_16(678);
emit_16(611);
emit_16(678);
emit_16(612);
emit_16(679);
emit_16(613);
emit_16(679);
emit_16(612);
emit_16(679);
emit_16(613);
emit_16(680);
emit_16(614);
emit_16(680);
emit_16(613);
emit_16(680);
emit_16(614);
emit_16(681);
emit_16(615);
emit_16(681);
emit_16(614);
emit_16(681);
emit_16(615);
emit_16(682);
emit_16(616);
emit_16(682);
emit_16(615);
emit_16(682);
emit_16(616);
emit_16(683);
emit_16(617);
emit_16(683);
emit_16(616);
emit_16(683);
emit_16(617);
emit_16(684);
emit_16(618);
emit_16(684);
emit_16(617);
emit_16(684);
emit_16(618);
emit_16(685);
emit_16(619);
emit_16(685);
emit_16(618);
emit_16(685);
emit_16(619);
emit_16(686);
emit_16(620);
emit_16(686);
emit_16(619);
emit_16(686);
emit_16(620);
emit_16(687);
emit_16(621);
emit_16(687);
emit_16(620);
emit_16(687);
emit_16(621);
emit_16(688);
emit_16(622);
emit_16(688);
emit_16(621);
emit_16(688);
emit_16(622);
emit_16(689);
emit_16(623);
emit_16(689);
emit_16(622);
emit_16(689);
emit_16(623);
emit_16(690);
emit_16(624);
emit_16(690);
emit_16(623);
emit_16(690);
emit_16(624);
emit_16(691);
emit_16(625);
emit_16(691);
emit_16(624);
emit_16(691);
emit_16(625);
emit_16(692);
emit_16(626);
emit_16(692);
emit_16(625);
emit_16(692);
emit_16(626);
emit_16(693);
emit_16(627);
emit_16(693);
emit_16(626);
emit_16(693);
emit_16(627);
emit_16(694);
emit_16(628);
emit_16(694);
emit_16(627);
emit_16(694);
emit_16(628);
emit_16(695);
emit_16(629);
emit_16(695);
emit_16(628);
emit_16(695);
emit_16(629);
emit_16(696);
emit_16(630);
emit_16(696);
emit_16(629);
emit_16(696);
emit_16(630);
emit_16(697);
emit_16(631);
emit_16(697);
emit_16(630);
emit_16(697);
emit_16(631);
emit_16(698);
emit_16(632);
emit_16(698);
emit_16(631);
emit_16(698);
emit_16(632);
emit_16(699);
emit_16(633);
emit_16(699);
emit_16(632);
emit_16(699);
emit_16(633);
emit_16(700);
emit_16(634);
emit_16(700);
emit_16(633);
emit_16(700);
emit_16(634);
emit_16(701);
emit_16(635);
emit_16(701);
emit_16(634);
emit_16(701);
emit_16(635);
emit_16(702);
emit_16(636);
emit_16(702);
emit_16(635);
emit_16(702);
emit_16(636);
emit_16(703);
emit_16(637);
emit_16(703);
emit_16(636);
emit_16(703);
emit_16(637);
emit_16(704);
emit_16(638);
emit_16(704);
emit_16(637);
emit_16(704);
emit_16(638);
emit_16(705);
emit_16(639);
emit_16(705);
emit_16(638);
emit_16(705);
emit_16(639);
emit_16(706);
emit_16(640);
emit_16(706);
emit_16(639);
emit_16(706);
emit_16(640);
emit_16(707);
emit_16(641);
emit_16(707);
emit_16(640);
emit_16(707);
emit_16(641);
emit_16(708);
emit_16(642);
emit_16(708);
emit_16(641);
emit_16(708);
emit_16(642);
emit_16(709);
emit_16(643);
emit_16(709);
emit_16(642);
emit_16(709);
emit_16(643);
emit_16(710);
emit_16(644);
emit_16(710);
emit_16(643);
emit_16(710);
emit_16(644);
emit_16(711);
emit_16(645);
emit_16(711);
emit_16(644);
emit_16(711);
emit_16(645);
emit_16(712);
emit_16(646);
emit_16(712);
emit_16(645);
emit_16(712);
emit_16(646);
emit_16(713);
emit_16(647);
emit_16(713);
emit_16(646);
emit_16(713);
emit_16(647);
emit_16(714);
emit_16(648);
emit_16(714);
emit_16(647);
emit_16(714);
emit_16(648);
emit_16(715);
emit_16(649);
emit_16(715);
emit_16(648);
emit_16(715);
emit_16(649);
emit_16(716);
emit_16(650);
emit_16(716);
emit_16(649);
emit_16(716);
emit_16(650);
emit_16(717);
emit_16(651);
emit_16(717);
emit_16(650);
emit_16(717);
emit_16(651);
emit_16(718);
emit_16(652);
emit_16(718);
emit_16(651);
emit_16(718);
emit_16(652);
emit_16(719);
emit_16(653);
emit_16(719);
emit_16(652);
emit_16(719);
emit_16(653);
emit_16(720);
emit_16(654);
emit_16(720);
emit_16(653);
emit_16(720);
emit_16(654);
emit_16(721);
emit_16(655);
emit_16(721);
emit_16(654);
emit_16(721);
emit_16(655);
emit_16(722);
emit_16(656);
emit_16(722);
emit_16(655);
emit_16(722);
emit_16(656);
emit_16(723);
emit_16(657);
emit_16(723);
emit_16(656);
emit_16(723);
emit_16(657);
emit_16(724);
emit_16(658);
emit_16(724);
emit_16(657);
emit_16(724);
emit_16(658);
emit_16(725);
emit_16(659);
emit_16(725);
emit_16(658);
emit_16(726);
emit_16(660);
emit_16(727);
emit_16(661);
emit_16(727);
emit_16(660);
emit_16(727);
emit_16(661);
emit_16(728);
emit_16(662);
emit_16(728);
emit_16(661);
emit_16(728);
emit_16(662);
emit_16(729);
emit_16(663);
emit_16(729);
emit_16(662);
emit_16(729);
emit_16(663);
emit_16(730);
emit_16(664);
emit_16(730);
emit_16(663);
emit_16(730);
emit_16(664);
emit_16(731);
emit_16(665);
emit_16(731);
emit_16(664);
emit_16(731);
emit_16(665);
emit_16(732);
emit_16(666);
emit_16(732);
emit_16(665);
emit_16(732);
emit_16(666);
emit_16(733);
emit_16(667);
emit_16(733);
emit_16(666);
emit_16(733);
emit_16(667);
emit_16(734);
emit_16(668);
emit_16(734);
emit_16(667);
emit_16(734);
emit_16(668);
emit_16(735);
emit_16(669);
emit_16(735);
emit_16(668);
emit_16(735);
emit_16(669);
emit_16(736);
emit_16(670);
emit_16(736);
emit_16(669);
emit_16(736);
emit_16(670);
emit_16(737);
emit_16(671);
emit_16(737);
emit_16(670);
emit_16(737);
emit_16(671);
emit_16(738);
emit_16(672);
emit_16(738);
emit_16(671);
emit_16(738);
emit_16(672);
emit_16(739);
emit_16(673);
emit_16(739);
emit_16(672);
emit_16(739);
emit_16(673);
emit_16(740);
emit_16(674);
emit_16(740);
emit_16(673);
emit_16(740);
emit_16(674);
emit_16(741);
emit_16(675);
emit_16(741);
emit_16(674);
emit_16(741);
emit_16(675);
emit_16(742);
emit_16(676);
emit_16(742);
emit_16(675);
emit_16(742);
emit_16(676);
emit_16(743);
emit_16(677);
emit_16(743);
emit_16(676);
emit_16(743);
emit_16(677);
emit_16(744);
emit_16(678);
emit_16(744);
emit_16(677);
emit_16(744);
emit_16(678);
emit_16(745);
emit_16(679);
emit_16(745);
emit_16(678);
emit_16(745);
emit_16(679);
emit_16(746);
emit_16(680);
emit_16(746);
emit_16(679);
emit_16(746);
emit_16(680);
emit_16(747);
emit_16(681);
emit_16(747);
emit_16(680);
emit_16(747);
emit_16(681);
emit_16(748);
emit_16(682);
emit_16(748);
emit_16(681);
emit_16(748);
emit_16(682);
emit_16(749);
emit_16(683);
emit_16(749);
emit_16(682);
emit_16(749);
emit_16(683);
emit_16(750);
emit_16(684);
emit_16(750);
emit_16(683);
emit_16(750);
emit_16(684);
emit_16(751);
emit_16(685);
emit_16(751);
emit_16(684);
emit_16(751);
emit_16(685);
emit_16(752);
emit_16(686);
emit_16(752);
emit_16(685);
emit_16(752);
emit_16(686);
emit_16(753);
emit_16(687);
emit_16(753);
emit_16(686);
emit_16(753);
emit_16(687);
emit_16(754);
emit_16(688);
emit_16(754);
emit_16(687);
emit_16(754);
emit_16(688);
emit_16(755);
emit_16(689);
emit_16(755);
emit_16(688);
emit_16(755);
emit_16(689);
emit_16(756);
emit_16(690);
emit_16(756);
emit_16(689);
emit_16(756);
emit_16(690);
emit_16(757);
emit_16(691);
emit_16(757);
emit_16(690);
emit_16(757);
emit_16(691);
emit_16(758);
emit_16(692);
emit_16(758);
emit_16(691);
emit_16(758);
emit_16(692);
emit_16(759);
emit_16(693);
emit_16(759);
emit_16(692);
emit_16(759);
emit_16(693);
emit_16(760);
emit_16(694);
emit_16(760);
emit_16(693);
emit_16(760);
emit_16(694);
emit_16(761);
emit_16(695);
emit_16(761);
emit_16(694);
emit_16(761);
emit_16(695);
emit_16(762);
emit_16(696);
emit_16(762);
emit_16(695);
emit_16(762);
emit_16(696);
emit_16(763);
emit_16(697);
emit_16(763);
emit_16(696);
emit_16(763);
emit_16(697);
emit_16(764);
emit_16(698);
emit_16(764);
emit_16(697);
emit_16(764);
emit_16(698);
emit_16(765);
emit_16(699);
emit_16(765);
emit_16(698);
emit_16(765);
emit_16(699);
emit_16(766);
emit_16(700);
emit_16(766);
emit_16(699);
emit_16(766);
emit_16(700);
emit_16(767);
emit_16(701);
emit_16(767);
emit_16(700);
emit_16(767);
emit_16(701);
emit_16(768);
emit_16(702);
emit_16(768);
emit_16(701);
emit_16(768);
emit_16(702);
emit_16(769);
emit_16(703);
emit_16(769);
emit_16(702);
emit_16(769);
emit_16(703);
emit_16(770);
emit_16(704);
emit_16(770);
emit_16(703);
emit_16(770);
emit_16(704);
emit_16(771);
emit_16(705);
emit_16(771);
emit_16(704);
emit_16(771);
emit_16(705);
emit_16(772);
emit_16(706);
emit_16(772);
emit_16(705);
emit_16(772);
emit_16(706);
emit_16(773);
emit_16(707);
emit_16(773);
emit_16(706);
emit_16(773);
emit_16(707);
emit_16(774);
emit_16(708);
emit_16(774);
emit_16(707);
emit_16(774);
emit_16(708);
emit_16(775);
emit_16(709);
emit_16(775);
emit_16(708);
emit_16(775);
emit_16(709);
emit_16(776);
emit_16(710);
emit_16(776);
emit_16(709);
emit_16(776);
emit_16(710);
emit_16(777);
emit_16(711);
emit_16(777);
emit_16(710);
emit_16(777);
emit_16(711);
emit_16(778);
emit_16(712);
emit_16(778);
emit_16(711);
emit_16(778);
emit_16(712);
emit_16(779);
emit_16(713);
emit_16(779);
emit_16(712);
emit_16(779);
emit_16(713);
emit_16(780);
emit_16(714);
emit_16(780);
emit_16(713);
emit_16(780);
emit_16(714);
emit_16(781);
emit_16(715);
emit_16(781);
emit_16(714);
emit_16(781);
emit_16(715);
emit_16(782);
emit_16(716);
emit_16(782);
emit_16(715);
emit_16(782);
emit_16(716);
emit_16(783);
emit_16(717);
emit_16(783);
emit_16(716);
emit_16(783);
emit_16(717);
emit_16(784);
emit_16(718);
emit_16(784);
emit_16(717);
emit_16(784);
emit_16(718);
emit_16(785);
emit_16(719);
emit_16(785);
emit_16(718);
emit_16(785);
emit_16(719);
emit_16(786);
emit_16(720);
emit_16(786);
emit_16(719);
emit_16(786);
emit_16(720);
emit_16(787);
emit_16(721);
emit_16(787);
emit_16(720);
emit_16(787);
emit_16(721);
emit_16(788);
emit_16(722);
emit_16(788);
emit_16(721);
emit_16(788);
emit_16(722);
emit_16(789);
emit_16(723);
emit_16(789);
emit_16(722);
emit_16(789);
emit_16(723);
emit_16(790);
emit_16(724);
emit_16(790);
emit_16(723);
emit_16(790);
emit_16(724);
emit_16(791);
emit_16(725);
emit_16(791);
emit_16(724);
emit_16(792);
emit_16(726);
emit_16(793);
emit_16(727);
emit_16(793);
emit_16(726);
emit_16(793);
emit_16(727);
emit_16(794);
emit_16(728);
emit_16(794);
emit_16(727);
emit_16(794);
emit_16(728);
emit_16(795);
emit_16(729);
emit_16(795);
emit_16(728);
emit_16(795);
emit_16(729);
emit_16(796);
emit_16(730);
emit_16(796);
emit_16(729);
emit_16(796);
emit_16(730);
emit_16(797);
emit_16(731);
emit_16(797);
emit_16(730);
emit_16(797);
emit_16(731);
emit_16(798);
emit_16(732);
emit_16(798);
emit_16(731);
emit_16(798);
emit_16(732);
emit_16(799);
emit_16(733);
emit_16(799);
emit_16(732);
emit_16(799);
emit_16(733);
emit_16(800);
emit_16(734);
emit_16(800);
emit_16(733);
emit_16(800);
emit_16(734);
emit_16(801);
emit_16(735);
emit_16(801);
emit_16(734);
emit_16(801);
emit_16(735);
emit_16(802);
emit_16(736);
emit_16(802);
emit_16(735);
emit_16(802);
emit_16(736);
emit_16(803);
emit_16(737);
emit_16(803);
emit_16(736);
emit_16(803);
emit_16(737);
emit_16(804);
emit_16(738);
emit_16(804);
emit_16(737);
emit_16(804);
emit_16(738);
emit_16(805);
emit_16(739);
emit_16(805);
emit_16(738);
emit_16(805);
emit_16(739);
emit_16(806);
emit_16(740);
emit_16(806);
emit_16(739);
emit_16(806);
emit_16(740);
emit_16(807);
emit_16(741);
emit_16(807);
emit_16(740);
emit_16(807);
emit_16(741);
emit_16(808);
emit_16(742);
emit_16(808);
emit_16(741);
emit_16(808);
emit_16(742);
emit_16(809);
emit_16(743);
emit_16(809);
emit_16(742);
emit_16(809);
emit_16(743);
emit_16(810);
emit_16(744);
emit_16(810);
emit_16(743);
emit_16(810);
emit_16(744);
emit_16(811);
emit_16(745);
emit_16(811);
emit_16(744);
emit_16(811);
emit_16(745);
emit_16(812);
emit_16(746);
emit_16(812);
emit_16(745);
emit_16(812);
emit_16(746);
emit_16(813);
emit_16(747);
emit_16(813);
emit_16(746);
emit_16(813);
emit_16(747);
emit_16(814);
emit_16(748);
emit_16(814);
emit_16(747);
emit_16(814);
emit_16(748);
emit_16(815);
emit_16(749);
emit_16(815);
emit_16(748);
emit_16(815);
emit_16(749);
emit_16(816);
emit_16(750);
emit_16(816);
emit_16(749);
emit_16(816);
emit_16(750);
emit_16(817);
emit_16(751);
emit_16(817);
emit_16(750);
emit_16(817);
emit_16(751);
emit_16(818);
emit_16(752);
emit_16(818);
emit_16(751);
emit_16(818);
emit_16(752);
emit_16(819);
emit_16(753);
emit_16(819);
emit_16(752);
emit_16(819);
emit_16(753);
emit_16(820);
emit_16(754);
emit_16(820);
emit_16(753);
emit_16(820);
emit_16(754);
emit_16(821);
emit_16(755);
emit_16(821);
emit_16(754);
emit_16(821);
emit_16(755);
emit_16(822);
emit_16(756);
emit_16(822);
emit_16(755);
emit_16(822);
emit_16(756);
emit_16(823);
emit_16(757);
emit_16(823);
emit_16(756);
emit_16(823);
emit_16(757);
emit_16(824);
emit_16(758);
emit_16(824);
emit_16(757);
emit_16(824);
emit_16(758);
emit_16(825);
emit_16(759);
emit_16(825);
emit_16(758);
emit_16(825);
emit_16(759);
emit_16(826);
emit_16(760);
emit_16(826);
emit_16(759);
emit_16(826);
emit_16(760);
emit_16(827);
emit_16(761);
emit_16(827);
emit_16(760);
emit_16(827);
emit_16(761);
emit_16(828);
emit_16(762);
emit_16(828);
emit_16(761);
emit_16(828);
emit_16(762);
emit_16(829);
emit_16(763);
emit_16(829);
emit_16(762);
emit_16(829);
emit_16(763);
emit_16(830);
emit_16(764);
emit_16(830);
emit_16(763);
emit_16(830);
emit_16(764);
emit_16(831);
emit_16(765);
emit_16(831);
emit_16(764);
emit_16(831);
emit_16(765);
emit_16(832);
emit_16(766);
emit_16(832);
emit_16(765);
emit_16(832);
emit_16(766);
emit_16(833);
emit_16(767);
emit_16(833);
emit_16(766);
emit_16(833);
emit_16(767);
emit_16(834);
emit_16(768);
emit_16(834);
emit_16(767);
emit_16(834);
emit_16(768);
emit_16(835);
emit_16(769);
emit_16(835);
emit_16(768);
emit_16(835);
emit_16(769);
emit_16(836);
emit_16(770);
emit_16(836);
emit_16(769);
emit_16(836);
emit_16(770);
emit_16(837);
emit_16(771);
emit_16(837);
emit_16(770);
emit_16(837);
emit_16(771);
emit_16(838);
emit_16(772);
emit_16(838);
emit_16(771);
emit_16(838);
emit_16(772);
emit_16(839);
emit_16(773);
emit_16(839);
emit_16(772);
emit_16(839);
emit_16(773);
emit_16(840);
emit_16(774);
emit_16(840);
emit_16(773);
emit_16(840);
emit_16(774);
emit_16(841);
emit_16(775);
emit_16(841);
emit_16(774);
emit_16(841);
emit_16(775);
emit_16(842);
emit_16(776);
emit_16(842);
emit_16(775);
emit_16(842);
emit_16(776);
emit_16(843);
emit_16(777);
emit_16(843);
emit_16(776);
emit_16(843);
emit_16(777);
emit_16(844);
emit_16(778);
emit_16(844);
emit_16(777);
emit_16(844);
emit_16(778);
emit_16(845);
emit_16(779);
emit_16(845);
emit_16(778);
emit_16(845);
emit_16(779);
emit_16(846);
emit_16(780);
emit_16(846);
emit_16(779);
emit_16(846);
emit_16(780);
emit_16(847);
emit_16(781);
emit_16(847);
emit_16(780);
emit_16(847);
emit_16(781);
emit_16(848);
emit_16(782);
emit_16(848);
emit_16(781);
emit_16(848);
emit_16(782);
emit_16(849);
emit_16(783);
emit_16(849);
emit_16(782);
emit_16(849);
emit_16(783);
emit_16(850);
emit_16(784);
emit_16(850);
emit_16(783);
emit_16(850);
emit_16(784);
emit_16(851);
emit_16(785);
emit_16(851);
emit_16(784);
emit_16(851);
emit_16(785);
emit_16(852);
emit_16(786);
emit_16(852);
emit_16(785);
emit_16(852);
emit_16(786);
emit_16(853);
emit_16(787);
emit_16(853);
emit_16(786);
emit_16(853);
emit_16(787);
emit_16(854);
emit_16(788);
emit_16(854);
emit_16(787);
emit_16(854);
emit_16(788);
emit_16(855);
emit_16(789);
emit_16(855);
emit_16(788);
emit_16(855);
emit_16(789);
emit_16(856);
emit_16(790);
emit_16(856);
emit_16(789);
emit_16(856);
emit_16(790);
emit_16(857);
emit_16(791);
emit_16(857);
emit_16(790);
emit_16(858);
emit_16(792);
emit_16(859);
emit_16(793);
emit_16(859);
emit_16(792);
emit_16(859);
emit_16(793);
emit_16(860);
emit_16(794);
emit_16(860);
emit_16(793);
emit_16(860);
emit_16(794);
emit_16(861);
emit_16(795);
emit_16(861);
emit_16(794);
emit_16(861);
emit_16(795);
emit_16(862);
emit_16(796);
emit_16(862);
emit_16(795);
emit_16(862);
emit_16(796);
emit_16(863);
emit_16(797);
emit_16(863);
emit_16(796);
emit_16(863);
emit_16(797);
emit_16(864);
emit_16(798);
emit_16(864);
emit_16(797);
emit_16(864);
emit_16(798);
emit_16(865);
emit_16(799);
emit_16(865);
emit_16(798);
emit_16(865);
emit_16(799);
emit_16(866);
emit_16(800);
emit_16(866);
emit_16(799);
emit_16(866);
emit_16(800);
emit_16(867);
emit_16(801);
emit_16(867);
emit_16(800);
emit_16(867);
emit_16(801);
emit_16(868);
emit_16(802);
emit_16(868);
emit_16(801);
emit_16(868);
emit_16(802);
emit_16(869);
emit_16(803);
emit_16(869);
emit_16(802);
emit_16(869);
emit_16(803);
emit_16(870);
emit_16(804);
emit_16(870);
emit_16(803);
emit_16(870);
emit_16(804);
emit_16(871);
emit_16(805);
emit_16(871);
emit_16(804);
emit_16(871);
emit_16(805);
emit_16(872);
emit_16(806);
emit_16(872);
emit_16(805);
emit_16(872);
emit_16(806);
emit_16(873);
emit_16(807);
emit_16(873);
emit_16(806);
emit_16(873);
emit_16(807);
emit_16(874);
emit_16(808);
emit_16(874);
emit_16(807);
emit_16(874);
emit_16(808);
emit_16(875);
emit_16(809);
emit_16(875);
emit_16(808);
emit_16(875);
emit_16(809);
emit_16(876);
emit_16(810);
emit_16(876);
emit_16(809);
emit_16(876);
emit_16(810);
emit_16(877);
emit_16(811);
emit_16(877);
emit_16(810);
emit_16(877);
emit_16(811);
emit_16(878);
emit_16(812);
emit_16(878);
emit_16(811);
emit_16(878);
emit_16(812);
emit_16(879);
emit_16(813);
emit_16(879);
emit_16(812);
emit_16(879);
emit_16(813);
emit_16(880);
emit_16(814);
emit_16(880);
emit_16(813);
emit_16(880);
emit_16(814);
emit_16(881);
emit_16(815);
emit_16(881);
emit_16(814);
emit_16(881);
emit_16(815);
emit_16(882);
emit_16(816);
emit_16(882);
emit_16(815);
emit_16(882);
emit_16(816);
emit_16(883);
emit_16(817);
emit_16(883);
emit_16(816);
emit_16(883);
emit_16(817);
emit_16(884);
emit_16(818);
emit_16(884);
emit_16(817);
emit_16(884);
emit_16(818);
emit_16(885);
emit_16(819);
emit_16(885);
emit_16(818);
emit_16(885);
emit_16(819);
emit_16(886);
emit_16(820);
emit_16(886);
emit_16(819);
emit_16(886);
emit_16(820);
emit_16(887);
emit_16(821);
emit_16(887);
emit_16(820);
emit_16(887);
emit_16(821);
emit_16(888);
emit_16(822);
emit_16(888);
emit_16(821);
emit_16(888);
emit_16(822);
emit_16(889);
emit_16(823);
emit_16(889);
emit_16(822);
emit_16(889);
emit_16(823);
emit_16(890);
emit_16(824);
emit_16(890);
emit_16(823);
emit_16(890);
emit_16(824);
emit_16(891);
emit_16(825);
emit_16(891);
emit_16(824);
emit_16(891);
emit_16(825);
emit_16(892);
emit_16(826);
emit_16(892);
emit_16(825);
emit_16(892);
emit_16(826);
emit_16(893);
emit_16(827);
emit_16(893);
emit_16(826);
emit_16(893);
emit_16(827);
emit_16(894);
emit_16(828);
emit_16(894);
emit_16(827);
emit_16(894);
emit_16(828);
emit_16(895);
emit_16(829);
emit_16(895);
emit_16(828);
emit_16(895);
emit_16(829);
emit_16(896);
emit_16(830);
emit_16(896);
emit_16(829);
emit_16(896);
emit_16(830);
emit_16(897);
emit_16(831);
emit_16(897);
emit_16(830);
emit_16(897);
emit_16(831);
emit_16(898);
emit_16(832);
emit_16(898);
emit_16(831);
emit_16(898);
emit_16(832);
emit_16(899);
emit_16(833);
emit_16(899);
emit_16(832);
emit_16(899);
emit_16(833);
emit_16(900);
emit_16(834);
emit_16(900);
emit_16(833);
emit_16(900);
emit_16(834);
emit_16(901);
emit_16(835);
emit_16(901);
emit_16(834);
emit_16(901);
emit_16(835);
emit_16(902);
emit_16(836);
emit_16(902);
emit_16(835);
emit_16(902);
emit_16(836);
emit_16(903);
emit_16(837);
emit_16(903);
emit_16(836);
emit_16(903);
emit_16(837);
emit_16(904);
emit_16(838);
emit_16(904);
emit_16(837);
emit_16(904);
emit_16(838);
emit_16(905);
emit_16(839);
emit_16(905);
emit_16(838);
emit_16(905);
emit_16(839);
emit_16(906);
emit_16(840);
emit_16(906);
emit_16(839);
emit_16(906);
emit_16(840);
emit_16(907);
emit_16(841);
emit_16(907);
emit_16(840);
emit_16(907);
emit_16(841);
emit_16(908);
emit_16(842);
emit_16(908);
emit_16(841);
emit_16(908);
emit_16(842);
emit_16(909);
emit_16(843);
emit_16(909);
emit_16(842);
emit_16(909);
emit_16(843);
emit_16(910);
emit_16(844);
emit_16(910);
emit_16(843);
emit_16(910);
emit_16(844);
emit_16(911);
emit_16(845);
emit_16(911);
emit_16(844);
emit_16(911);
emit_16(845);
emit_16(912);
emit_16(846);
emit_16(912);
emit_16(845);
emit_16(912);
emit_16(846);
emit_16(913);
emit_16(847);
emit_16(913);
emit_16(846);
emit_16(913);
emit_16(847);
emit_16(914);
emit_16(848);
emit_16(914);
emit_16(847);
emit_16(914);
emit_16(848);
emit_16(915);
emit_16(849);
emit_16(915);
emit_16(848);
emit_16(915);
emit_16(849);
emit_16(916);
emit_16(850);
emit_16(916);
emit_16(849);
emit_16(916);
emit_16(850);
emit_16(917);
emit_16(851);
emit_16(917);
emit_16(850);
emit_16(917);
emit_16(851);
emit_16(918);
emit_16(852);
emit_16(918);
emit_16(851);
emit_16(918);
emit_16(852);
emit_16(919);
emit_16(853);
emit_16(919);
emit_16(852);
emit_16(919);
emit_16(853);
emit_16(920);
emit_16(854);
emit_16(920);
emit_16(853);
emit_16(920);
emit_16(854);
emit_16(921);
emit_16(855);
emit_16(921);
emit_16(854);
emit_16(921);
emit_16(855);
emit_16(922);
emit_16(856);
emit_16(922);
emit_16(855);
emit_16(922);
emit_16(856);
emit_16(923);
emit_16(857);
emit_16(923);
emit_16(856);
emit_16(924);
emit_16(858);
emit_16(925);
emit_16(859);
emit_16(925);
emit_16(858);
emit_16(925);
emit_16(859);
emit_16(926);
emit_16(860);
emit_16(926);
emit_16(859);
emit_16(926);
emit_16(860);
emit_16(927);
emit_16(861);
emit_16(927);
emit_16(860);
emit_16(927);
emit_16(861);
emit_16(928);
emit_16(862);
emit_16(928);
emit_16(861);
emit_16(928);
emit_16(862);
emit_16(929);
emit_16(863);
emit_16(929);
emit_16(862);
emit_16(929);
emit_16(863);
emit_16(930);
emit_16(864);
emit_16(930);
emit_16(863);
emit_16(930);
emit_16(864);
emit_16(931);
emit_16(865);
emit_16(931);
emit_16(864);
emit_16(931);
emit_16(865);
emit_16(932);
emit_16(866);
emit_16(932);
emit_16(865);
emit_16(932);
emit_16(866);
emit_16(933);
emit_16(867);
emit_16(933);
emit_16(866);
emit_16(933);
emit_16(867);
emit_16(934);
emit_16(868);
emit_16(934);
emit_16(867);
emit_16(934);
emit_16(868);
emit_16(935);
emit_16(869);
emit_16(935);
emit_16(868);
emit_16(935);
emit_16(869);
emit_16(936);
emit_16(870);
emit_16(936);
emit_16(869);
emit_16(936);
emit_16(870);
emit_16(937);
emit_16(871);
emit_16(937);
emit_16(870);
emit_16(937);
emit_16(871);
emit_16(938);
emit_16(872);
emit_16(938);
emit_16(871);
emit_16(938);
emit_16(872);
emit_16(939);
emit_16(873);
emit_16(939);
emit_16(872);
emit_16(939);
emit_16(873);
emit_16(940);
emit_16(874);
emit_16(940);
emit_16(873);
emit_16(940);
emit_16(874);
emit_16(941);
emit_16(875);
emit_16(941);
emit_16(874);
emit_16(941);
emit_16(875);
emit_16(942);
emit_16(876);
emit_16(942);
emit_16(875);
emit_16(942);
emit_16(876);
emit_16(943);
emit_16(877);
emit_16(943);
emit_16(876);
emit_16(943);
emit_16(877);
emit_16(944);
emit_16(878);
emit_16(944);
emit_16(877);
emit_16(944);
emit_16(878);
emit_16(945);
emit_16(879);
emit_16(945);
emit_16(878);
emit_16(945);
emit_16(879);
emit_16(946);
emit_16(880);
emit_16(946);
emit_16(879);
emit_16(946);
emit_16(880);
emit_16(947);
emit_16(881);
emit_16(947);
emit_16(880);
emit_16(947);
emit_16(881);
emit_16(948);
emit_16(882);
emit_16(948);
emit_16(881);
emit_16(948);
emit_16(882);
emit_16(949);
emit_16(883);
emit_16(949);
emit_16(882);
emit_16(949);
emit_16(883);
emit_16(950);
emit_16(884);
emit_16(950);
emit_16(883);
emit_16(950);
emit_16(884);
emit_16(951);
emit_16(885);
emit_16(951);
emit_16(884);
emit_16(951);
emit_16(885);
emit_16(952);
emit_16(886);
emit_16(952);
emit_16(885);
emit_16(952);
emit_16(886);
emit_16(953);
emit_16(887);
emit_16(953);
emit_16(886);
emit_16(953);
emit_16(887);
emit_16(954);
emit_16(888);
emit_16(954);
emit_16(887);
emit_16(954);
emit_16(888);
emit_16(955);
emit_16(889);
emit_16(955);
emit_16(888);
emit_16(955);
emit_16(889);
emit_16(956);
emit_16(890);
emit_16(956);
emit_16(889);
emit_16(956);
emit_16(890);
emit_16(957);
emit_16(891);
emit_16(957);
emit_16(890);
emit_16(957);
emit_16(891);
emit_16(958);
emit_16(892);
emit_16(958);
emit_16(891);
emit_16(958);
emit_16(892);
emit_16(959);
emit_16(893);
emit_16(959);
emit_16(892);
emit_16(959);
emit_16(893);
emit_16(960);
emit_16(894);
emit_16(960);
emit_16(893);
emit_16(960);
emit_16(894);
emit_16(961);
emit_16(895);
emit_16(961);
emit_16(894);
emit_16(961);
emit_16(895);
emit_16(962);
emit_16(896);
emit_16(962);
emit_16(895);
emit_16(962);
emit_16(896);
emit_16(963);
emit_16(897);
emit_16(963);
emit_16(896);
emit_16(963);
emit_16(897);
emit_16(964);
emit_16(898);
emit_16(964);
emit_16(897);
emit_16(964);
emit_16(898);
emit_16(965);
emit_16(899);
emit_16(965);
emit_16(898);
emit_16(965);
emit_16(899);
emit_16(966);
emit_16(900);
emit_16(966);
emit_16(899);
emit_16(966);
emit_16(900);
emit_16(967);
emit_16(901);
emit_16(967);
emit_16(900);
emit_16(967);
emit_16(901);
emit_16(968);
emit_16(902);
emit_16(968);
emit_16(901);
emit_16(968);
emit_16(902);
emit_16(969);
emit_16(903);
emit_16(969);
emit_16(902);
emit_16(969);
emit_16(903);
emit_16(970);
emit_16(904);
emit_16(970);
emit_16(903);
emit_16(970);
emit_16(904);
emit_16(971);
emit_16(905);
emit_16(971);
emit_16(904);
emit_16(971);
emit_16(905);
emit_16(972);
emit_16(906);
emit_16(972);
emit_16(905);
emit_16(972);
emit_16(906);
emit_16(973);
emit_16(907);
emit_16(973);
emit_16(906);
emit_16(973);
emit_16(907);
emit_16(974);
emit_16(908);
emit_16(974);
emit_16(907);
emit_16(974);
emit_16(908);
emit_16(975);
emit_16(909);
emit_16(975);
emit_16(908);
emit_16(975);
emit_16(909);
emit_16(976);
emit_16(910);
emit_16(976);
emit_16(909);
emit_16(976);
emit_16(910);
emit_16(977);
emit_16(911);
emit_16(977);
emit_16(910);
emit_16(977);
emit_16(911);
emit_16(978);
emit_16(912);
emit_16(978);
emit_16(911);
emit_16(978);
emit_16(912);
emit_16(979);
emit_16(913);
emit_16(979);
emit_16(912);
emit_16(979);
emit_16(913);
emit_16(980);
emit_16(914);
emit_16(980);
emit_16(913);
emit_16(980);
emit_16(914);
emit_16(981);
emit_16(915);
emit_16(981);
emit_16(914);
emit_16(981);
emit_16(915);
emit_16(982);
emit_16(916);
emit_16(982);
emit_16(915);
emit_16(982);
emit_16(916);
emit_16(983);
emit_16(917);
emit_16(983);
emit_16(916);
emit_16(983);
emit_16(917);
emit_16(984);
emit_16(918);
emit_16(984);
emit_16(917);
emit_16(984);
emit_16(918);
emit_16(985);
emit_16(919);
emit_16(985);
emit_16(918);
emit_16(985);
emit_16(919);
emit_16(986);
emit_16(920);
emit_16(986);
emit_16(919);
emit_16(986);
emit_16(920);
emit_16(987);
emit_16(921);
emit_16(987);
emit_16(920);
emit_16(987);
emit_16(921);
emit_16(988);
emit_16(922);
emit_16(988);
emit_16(921);
emit_16(988);
emit_16(922);
emit_16(989);
emit_16(923);
emit_16(989);
emit_16(922);
emit_16(990);
emit_16(924);
emit_16(991);
emit_16(925);
emit_16(991);
emit_16(924);
emit_16(991);
emit_16(925);
emit_16(992);
emit_16(926);
emit_16(992);
emit_16(925);
emit_16(992);
emit_16(926);
emit_16(993);
emit_16(927);
emit_16(993);
emit_16(926);
emit_16(993);
emit_16(927);
emit_16(994);
emit_16(928);
emit_16(994);
emit_16(927);
emit_16(994);
emit_16(928);
emit_16(995);
emit_16(929);
emit_16(995);
emit_16(928);
emit_16(995);
emit_16(929);
emit_16(996);
emit_16(930);
emit_16(996);
emit_16(929);
emit_16(996);
emit_16(930);
emit_16(997);
emit_16(931);
emit_16(997);
emit_16(930);
emit_16(997);
emit_16(931);
emit_16(998);
emit_16(932);
emit_16(998);
emit_16(931);
emit_16(998);
emit_16(932);
emit_16(999);
emit_16(933);
emit_16(999);
emit_16(932);
emit_16(999);
emit_16(933);
emit_16(1000);
emit_16(934);
emit_16(1000);
emit_16(933);
emit_16(1000);
emit_16(934);
emit_16(1001);
emit_16(935);
emit_16(1001);
emit_16(934);
emit_16(1001);
emit_16(935);
emit_16(1002);
emit_16(936);
emit_16(1002);
emit_16(935);
emit_16(1002);
emit_16(936);
emit_16(1003);
emit_16(937);
emit_16(1003);
emit_16(936);
emit_16(1003);
emit_16(937);
emit_16(1004);
emit_16(938);
emit_16(1004);
emit_16(937);
emit_16(1004);
emit_16(938);
emit_16(1005);
emit_16(939);
emit_16(1005);
emit_16(938);
emit_16(1005);
emit_16(939);
emit_16(1006);
emit_16(940);
emit_16(1006);
emit_16(939);
emit_16(1006);
emit_16(940);
emit_16(1007);
emit_16(941);
emit_16(1007);
emit_16(940);
emit_16(1007);
emit_16(941);
emit_16(1008);
emit_16(942);
emit_16(1008);
emit_16(941);
emit_16(1008);
emit_16(942);
emit_16(1009);
emit_16(943);
emit_16(1009);
emit_16(942);
emit_16(1009);
emit_16(943);
emit_16(1010);
emit_16(944);
emit_16(1010);
emit_16(943);
emit_16(1010);
emit_16(944);
emit_16(1011);
emit_16(945);
emit_16(1011);
emit_16(944);
emit_16(1011);
emit_16(945);
emit_16(1012);
emit_16(946);
emit_16(1012);
emit_16(945);
emit_16(1012);
emit_16(946);
emit_16(1013);
emit_16(947);
emit_16(1013);
emit_16(946);
emit_16(1013);
emit_16(947);
emit_16(1014);
emit_16(948);
emit_16(1014);
emit_16(947);
emit_16(1014);
emit_16(948);
emit_16(1015);
emit_16(949);
emit_16(1015);
emit_16(948);
emit_16(1015);
emit_16(949);
emit_16(1016);
emit_16(950);
emit_16(1016);
emit_16(949);
emit_16(1016);
emit_16(950);
emit_16(1017);
emit_16(951);
emit_16(1017);
emit_16(950);
emit_16(1017);
emit_16(951);
emit_16(1018);
emit_16(952);
emit_16(1018);
emit_16(951);
emit_16(1018);
emit_16(952);
emit_16(1019);
emit_16(953);
emit_16(1019);
emit_16(952);
emit_16(1019);
emit_16(953);
emit_16(1020);
emit_16(954);
emit_16(1020);
emit_16(953);
emit_16(1020);
emit_16(954);
emit_16(1021);
emit_16(955);
emit_16(1021);
emit_16(954);
emit_16(1021);
emit_16(955);
emit_16(1022);
emit_16(956);
emit_16(1022);
emit_16(955);
emit_16(1022);
emit_16(956);
emit_16(1023);
emit_16(957);
emit_16(1023);
emit_16(956);
emit_16(1023);
emit_16(957);
emit_16(1024);
emit_16(958);
emit_16(1024);
emit_16(957);
emit_16(1024);
emit_16(958);
emit_16(1025);
emit_16(959);
emit_16(1025);
emit_16(958);
emit_16(1025);
emit_16(959);
emit_16(1026);
emit_16(960);
emit_16(1026);
emit_16(959);
emit_16(1026);
emit_16(960);
emit_16(1027);
emit_16(961);
emit_16(1027);
emit_16(960);
emit_16(1027);
emit_16(961);
emit_16(1028);
emit_16(962);
emit_16(1028);
emit_16(961);
emit_16(1028);
emit_16(962);
emit_16(1029);
emit_16(963);
emit_16(1029);
emit_16(962);
emit_16(1029);
emit_16(963);
emit_16(1030);
emit_16(964);
emit_16(1030);
emit_16(963);
emit_16(1030);
emit_16(964);
emit_16(1031);
emit_16(965);
emit_16(1031);
emit_16(964);
emit_16(1031);
emit_16(965);
emit_16(1032);
emit_16(966);
emit_16(1032);
emit_16(965);
emit_16(1032);
emit_16(966);
emit_16(1033);
emit_16(967);
emit_16(1033);
emit_16(966);
emit_16(1033);
emit_16(967);
emit_16(1034);
emit_16(968);
emit_16(1034);
emit_16(967);
emit_16(1034);
emit_16(968);
emit_16(1035);
emit_16(969);
emit_16(1035);
emit_16(968);
emit_16(1035);
emit_16(969);
emit_16(1036);
emit_16(970);
emit_16(1036);
emit_16(969);
emit_16(1036);
emit_16(970);
emit_16(1037);
emit_16(971);
emit_16(1037);
emit_16(970);
emit_16(1037);
emit_16(971);
emit_16(1038);
emit_16(972);
emit_16(1038);
emit_16(971);
emit_16(1038);
emit_16(972);
emit_16(1039);
emit_16(973);
emit_16(1039);
emit_16(972);
emit_16(1039);
emit_16(973);
emit_16(1040);
emit_16(974);
emit_16(1040);
emit_16(973);
emit_16(1040);
emit_16(974);
emit_16(1041);
emit_16(975);
emit_16(1041);
emit_16(974);
emit_16(1041);
emit_16(975);
emit_16(1042);
emit_16(976);
emit_16(1042);
emit_16(975);
emit_16(1042);
emit_16(976);
emit_16(1043);
emit_16(977);
emit_16(1043);
emit_16(976);
emit_16(1043);
emit_16(977);
emit_16(1044);
emit_16(978);
emit_16(1044);
emit_16(977);
emit_16(1044);
emit_16(978);
emit_16(1045);
emit_16(979);
emit_16(1045);
emit_16(978);
emit_16(1045);
emit_16(979);
emit_16(1046);
emit_16(980);
emit_16(1046);
emit_16(979);
emit_16(1046);
emit_16(980);
emit_16(1047);
emit_16(981);
emit_16(1047);
emit_16(980);
emit_16(1047);
emit_16(981);
emit_16(1048);
emit_16(982);
emit_16(1048);
emit_16(981);
emit_16(1048);
emit_16(982);
emit_16(1049);
emit_16(983);
emit_16(1049);
emit_16(982);
emit_16(1049);
emit_16(983);
emit_16(1050);
emit_16(984);
emit_16(1050);
emit_16(983);
emit_16(1050);
emit_16(984);
emit_16(1051);
emit_16(985);
emit_16(1051);
emit_16(984);
emit_16(1051);
emit_16(985);
emit_16(1052);
emit_16(986);
emit_16(1052);
emit_16(985);
emit_16(1052);
emit_16(986);
emit_16(1053);
emit_16(987);
emit_16(1053);
emit_16(986);
emit_16(1053);
emit_16(987);
emit_16(1054);
emit_16(988);
emit_16(1054);
emit_16(987);
emit_16(1054);
emit_16(988);
emit_16(1055);
emit_16(989);
emit_16(1055);
emit_16(988);
emit_16(1056);
emit_16(990);
emit_16(1057);
emit_16(991);
emit_16(1057);
emit_16(990);
emit_16(1057);
emit_16(991);
emit_16(1058);
emit_16(992);
emit_16(1058);
emit_16(991);
emit_16(1058);
emit_16(992);
emit_16(1059);
emit_16(993);
emit_16(1059);
emit_16(992);
emit_16(1059);
emit_16(993);
emit_16(1060);
emit_16(994);
emit_16(1060);
emit_16(993);
emit_16(1060);
emit_16(994);
emit_16(1061);
emit_16(995);
emit_16(1061);
emit_16(994);
emit_16(1061);
emit_16(995);
emit_16(1062);
emit_16(996);
emit_16(1062);
emit_16(995);
emit_16(1062);
emit_16(996);
emit_16(1063);
emit_16(997);
emit_16(1063);
emit_16(996);
emit_16(1063);
emit_16(997);
emit_16(1064);
emit_16(998);
emit_16(1064);
emit_16(997);
emit_16(1064);
emit_16(998);
emit_16(1065);
emit_16(999);
emit_16(1065);
emit_16(998);
emit_16(1065);
emit_16(999);
emit_16(1066);
emit_16(1000);
emit_16(1066);
emit_16(999);
emit_16(1066);
emit_16(1000);
emit_16(1067);
emit_16(1001);
emit_16(1067);
emit_16(1000);
emit_16(1067);
emit_16(1001);
emit_16(1068);
emit_16(1002);
emit_16(1068);
emit_16(1001);
emit_16(1068);
emit_16(1002);
emit_16(1069);
emit_16(1003);
emit_16(1069);
emit_16(1002);
emit_16(1069);
emit_16(1003);
emit_16(1070);
emit_16(1004);
emit_16(1070);
emit_16(1003);
emit_16(1070);
emit_16(1004);
emit_16(1071);
emit_16(1005);
emit_16(1071);
emit_16(1004);
emit_16(1071);
emit_16(1005);
emit_16(1072);
emit_16(1006);
emit_16(1072);
emit_16(1005);
emit_16(1072);
emit_16(1006);
emit_16(1073);
emit_16(1007);
emit_16(1073);
emit_16(1006);
emit_16(1073);
emit_16(1007);
emit_16(1074);
emit_16(1008);
emit_16(1074);
emit_16(1007);
emit_16(1074);
emit_16(1008);
emit_16(1075);
emit_16(1009);
emit_16(1075);
emit_16(1008);
emit_16(1075);
emit_16(1009);
emit_16(1076);
emit_16(1010);
emit_16(1076);
emit_16(1009);
emit_16(1076);
emit_16(1010);
emit_16(1077);
emit_16(1011);
emit_16(1077);
emit_16(1010);
emit_16(1077);
emit_16(1011);
emit_16(1078);
emit_16(1012);
emit_16(1078);
emit_16(1011);
emit_16(1078);
emit_16(1012);
emit_16(1079);
emit_16(1013);
emit_16(1079);
emit_16(1012);
emit_16(1079);
emit_16(1013);
emit_16(1080);
emit_16(1014);
emit_16(1080);
emit_16(1013);
emit_16(1080);
emit_16(1014);
emit_16(1081);
emit_16(1015);
emit_16(1081);
emit_16(1014);
emit_16(1081);
emit_16(1015);
emit_16(1082);
emit_16(1016);
emit_16(1082);
emit_16(1015);
emit_16(1082);
emit_16(1016);
emit_16(1083);
emit_16(1017);
emit_16(1083);
emit_16(1016);
emit_16(1083);
emit_16(1017);
emit_16(1084);
emit_16(1018);
emit_16(1084);
emit_16(1017);
emit_16(1084);
emit_16(1018);
emit_16(1085);
emit_16(1019);
emit_16(1085);
emit_16(1018);
emit_16(1085);
emit_16(1019);
emit_16(1086);
emit_16(1020);
emit_16(1086);
emit_16(1019);
emit_16(1086);
emit_16(1020);
emit_16(1087);
emit_16(1021);
emit_16(1087);
emit_16(1020);
emit_16(1087);
emit_16(1021);
emit_16(1088);
emit_16(1022);
emit_16(1088);
emit_16(1021);
emit_16(1088);
emit_16(1022);
emit_16(1089);
emit_16(1023);
emit_16(1089);
emit_16(1022);
emit_16(1089);
emit_16(1023);
emit_16(1090);
emit_16(1024);
emit_16(1090);
emit_16(1023);
emit_16(1090);
emit_16(1024);
emit_16(1091);
emit_16(1025);
emit_16(1091);
emit_16(1024);
emit_16(1091);
emit_16(1025);
emit_16(1092);
emit_16(1026);
emit_16(1092);
emit_16(1025);
emit_16(1092);
emit_16(1026);
emit_16(1093);
emit_16(1027);
emit_16(1093);
emit_16(1026);
emit_16(1093);
emit_16(1027);
emit_16(1094);
emit_16(1028);
emit_16(1094);
emit_16(1027);
emit_16(1094);
emit_16(1028);
emit_16(1095);
emit_16(1029);
emit_16(1095);
emit_16(1028);
emit_16(1095);
emit_16(1029);
emit_16(1096);
emit_16(1030);
emit_16(1096);
emit_16(1029);
emit_16(1096);
emit_16(1030);
emit_16(1097);
emit_16(1031);
emit_16(1097);
emit_16(1030);
emit_16(1097);
emit_16(1031);
emit_16(1098);
emit_16(1032);
emit_16(1098);
emit_16(1031);
emit_16(1098);
emit_16(1032);
emit_16(1099);
emit_16(1033);
emit_16(1099);
emit_16(1032);
emit_16(1099);
emit_16(1033);
emit_16(1100);
emit_16(1034);
emit_16(1100);
emit_16(1033);
emit_16(1100);
emit_16(1034);
emit_16(1101);
emit_16(1035);
emit_16(1101);
emit_16(1034);
emit_16(1101);
emit_16(1035);
emit_16(1102);
emit_16(1036);
emit_16(1102);
emit_16(1035);
emit_16(1102);
emit_16(1036);
emit_16(1103);
emit_16(1037);
emit_16(1103);
emit_16(1036);
emit_16(1103);
emit_16(1037);
emit_16(1104);
emit_16(1038);
emit_16(1104);
emit_16(1037);
emit_16(1104);
emit_16(1038);
emit_16(1105);
emit_16(1039);
emit_16(1105);
emit_16(1038);
emit_16(1105);
emit_16(1039);
emit_16(1106);
emit_16(1040);
emit_16(1106);
emit_16(1039);
emit_16(1106);
emit_16(1040);
emit_16(1107);
emit_16(1041);
emit_16(1107);
emit_16(1040);
emit_16(1107);
emit_16(1041);
emit_16(1108);
emit_16(1042);
emit_16(1108);
emit_16(1041);
emit_16(1108);
emit_16(1042);
emit_16(1109);
emit_16(1043);
emit_16(1109);
emit_16(1042);
emit_16(1109);
emit_16(1043);
emit_16(1110);
emit_16(1044);
emit_16(1110);
emit_16(1043);
emit_16(1110);
emit_16(1044);
emit_16(1111);
emit_16(1045);
emit_16(1111);
emit_16(1044);
emit_16(1111);
emit_16(1045);
emit_16(1112);
emit_16(1046);
emit_16(1112);
emit_16(1045);
emit_16(1112);
emit_16(1046);
emit_16(1113);
emit_16(1047);
emit_16(1113);
emit_16(1046);
emit_16(1113);
emit_16(1047);
emit_16(1114);
emit_16(1048);
emit_16(1114);
emit_16(1047);
emit_16(1114);
emit_16(1048);
emit_16(1115);
emit_16(1049);
emit_16(1115);
emit_16(1048);
emit_16(1115);
emit_16(1049);
emit_16(1116);
emit_16(1050);
emit_16(1116);
emit_16(1049);
emit_16(1116);
emit_16(1050);
emit_16(1117);
emit_16(1051);
emit_16(1117);
emit_16(1050);
emit_16(1117);
emit_16(1051);
emit_16(1118);
emit_16(1052);
emit_16(1118);
emit_16(1051);
emit_16(1118);
emit_16(1052);
emit_16(1119);
emit_16(1053);
emit_16(1119);
emit_16(1052);
emit_16(1119);
emit_16(1053);
emit_16(1120);
emit_16(1054);
emit_16(1120);
emit_16(1053);
emit_16(1120);
emit_16(1054);
emit_16(1121);
emit_16(1055);
emit_16(1121);
emit_16(1054);
emit_16(1122);
emit_16(1056);
emit_16(1123);
emit_16(1057);
emit_16(1123);
emit_16(1056);
emit_16(1123);
emit_16(1057);
emit_16(1124);
emit_16(1058);
emit_16(1124);
emit_16(1057);
emit_16(1124);
emit_16(1058);
emit_16(1125);
emit_16(1059);
emit_16(1125);
emit_16(1058);
emit_16(1125);
emit_16(1059);
emit_16(1126);
emit_16(1060);
emit_16(1126);
emit_16(1059);
emit_16(1126);
emit_16(1060);
emit_16(1127);
emit_16(1061);
emit_16(1127);
emit_16(1060);
emit_16(1127);
emit_16(1061);
emit_16(1128);
emit_16(1062);
emit_16(1128);
emit_16(1061);
emit_16(1128);
emit_16(1062);
emit_16(1129);
emit_16(1063);
emit_16(1129);
emit_16(1062);
emit_16(1129);
emit_16(1063);
emit_16(1130);
emit_16(1064);
emit_16(1130);
emit_16(1063);
emit_16(1130);
emit_16(1064);
emit_16(1131);
emit_16(1065);
emit_16(1131);
emit_16(1064);
emit_16(1131);
emit_16(1065);
emit_16(1132);
emit_16(1066);
emit_16(1132);
emit_16(1065);
emit_16(1132);
emit_16(1066);
emit_16(1133);
emit_16(1067);
emit_16(1133);
emit_16(1066);
emit_16(1133);
emit_16(1067);
emit_16(1134);
emit_16(1068);
emit_16(1134);
emit_16(1067);
emit_16(1134);
emit_16(1068);
emit_16(1135);
emit_16(1069);
emit_16(1135);
emit_16(1068);
emit_16(1135);
emit_16(1069);
emit_16(1136);
emit_16(1070);
emit_16(1136);
emit_16(1069);
emit_16(1136);
emit_16(1070);
emit_16(1137);
emit_16(1071);
emit_16(1137);
emit_16(1070);
emit_16(1137);
emit_16(1071);
emit_16(1138);
emit_16(1072);
emit_16(1138);
emit_16(1071);
emit_16(1138);
emit_16(1072);
emit_16(1139);
emit_16(1073);
emit_16(1139);
emit_16(1072);
emit_16(1139);
emit_16(1073);
emit_16(1140);
emit_16(1074);
emit_16(1140);
emit_16(1073);
emit_16(1140);
emit_16(1074);
emit_16(1141);
emit_16(1075);
emit_16(1141);
emit_16(1074);
emit_16(1141);
emit_16(1075);
emit_16(1142);
emit_16(1076);
emit_16(1142);
emit_16(1075);
emit_16(1142);
emit_16(1076);
emit_16(1143);
emit_16(1077);
emit_16(1143);
emit_16(1076);
emit_16(1143);
emit_16(1077);
emit_16(1144);
emit_16(1078);
emit_16(1144);
emit_16(1077);
emit_16(1144);
emit_16(1078);
emit_16(1145);
emit_16(1079);
emit_16(1145);
emit_16(1078);
emit_16(1145);
emit_16(1079);
emit_16(1146);
emit_16(1080);
emit_16(1146);
emit_16(1079);
emit_16(1146);
emit_16(1080);
emit_16(1147);
emit_16(1081);
emit_16(1147);
emit_16(1080);
emit_16(1147);
emit_16(1081);
emit_16(1148);
emit_16(1082);
emit_16(1148);
emit_16(1081);
emit_16(1148);
emit_16(1082);
emit_16(1149);
emit_16(1083);
emit_16(1149);
emit_16(1082);
emit_16(1149);
emit_16(1083);
emit_16(1150);
emit_16(1084);
emit_16(1150);
emit_16(1083);
emit_16(1150);
emit_16(1084);
emit_16(1151);
emit_16(1085);
emit_16(1151);
emit_16(1084);
emit_16(1151);
emit_16(1085);
emit_16(1152);
emit_16(1086);
emit_16(1152);
emit_16(1085);
emit_16(1152);
emit_16(1086);
emit_16(1153);
emit_16(1087);
emit_16(1153);
emit_16(1086);
emit_16(1153);
emit_16(1087);
emit_16(1154);
emit_16(1088);
emit_16(1154);
emit_16(1087);
emit_16(1154);
emit_16(1088);
emit_16(1155);
emit_16(1089);
emit_16(1155);
emit_16(1088);
emit_16(1155);
emit_16(1089);
emit_16(1156);
emit_16(1090);
emit_16(1156);
emit_16(1089);
emit_16(1156);
emit_16(1090);
emit_16(1157);
emit_16(1091);
emit_16(1157);
emit_16(1090);
emit_16(1157);
emit_16(1091);
emit_16(1158);
emit_16(1092);
emit_16(1158);
emit_16(1091);
emit_16(1158);
emit_16(1092);
emit_16(1159);
emit_16(1093);
emit_16(1159);
emit_16(1092);
emit_16(1159);
emit_16(1093);
emit_16(1160);
emit_16(1094);
emit_16(1160);
emit_16(1093);
emit_16(1160);
emit_16(1094);
emit_16(1161);
emit_16(1095);
emit_16(1161);
emit_16(1094);
emit_16(1161);
emit_16(1095);
emit_16(1162);
emit_16(1096);
emit_16(1162);
emit_16(1095);
emit_16(1162);
emit_16(1096);
emit_16(1163);
emit_16(1097);
emit_16(1163);
emit_16(1096);
emit_16(1163);
emit_16(1097);
emit_16(1164);
emit_16(1098);
emit_16(1164);
emit_16(1097);
emit_16(1164);
emit_16(1098);
emit_16(1165);
emit_16(1099);
emit_16(1165);
emit_16(1098);
emit_16(1165);
emit_16(1099);
emit_16(1166);
emit_16(1100);
emit_16(1166);
emit_16(1099);
emit_16(1166);
emit_16(1100);
emit_16(1167);
emit_16(1101);
emit_16(1167);
emit_16(1100);
emit_16(1167);
emit_16(1101);
emit_16(1168);
emit_16(1102);
emit_16(1168);
emit_16(1101);
emit_16(1168);
emit_16(1102);
emit_16(1169);
emit_16(1103);
emit_16(1169);
emit_16(1102);
emit_16(1169);
emit_16(1103);
emit_16(1170);
emit_16(1104);
emit_16(1170);
emit_16(1103);
emit_16(1170);
emit_16(1104);
emit_16(1171);
emit_16(1105);
emit_16(1171);
emit_16(1104);
emit_16(1171);
emit_16(1105);
emit_16(1172);
emit_16(1106);
emit_16(1172);
emit_16(1105);
emit_16(1172);
emit_16(1106);
emit_16(1173);
emit_16(1107);
emit_16(1173);
emit_16(1106);
emit_16(1173);
emit_16(1107);
emit_16(1174);
emit_16(1108);
emit_16(1174);
emit_16(1107);
emit_16(1174);
emit_16(1108);
emit_16(1175);
emit_16(1109);
emit_16(1175);
emit_16(1108);
emit_16(1175);
emit_16(1109);
emit_16(1176);
emit_16(1110);
emit_16(1176);
emit_16(1109);
emit_16(1176);
emit_16(1110);
emit_16(1177);
emit_16(1111);
emit_16(1177);
emit_16(1110);
emit_16(1177);
emit_16(1111);
emit_16(1178);
emit_16(1112);
emit_16(1178);
emit_16(1111);
emit_16(1178);
emit_16(1112);
emit_16(1179);
emit_16(1113);
emit_16(1179);
emit_16(1112);
emit_16(1179);
emit_16(1113);
emit_16(1180);
emit_16(1114);
emit_16(1180);
emit_16(1113);
emit_16(1180);
emit_16(1114);
emit_16(1181);
emit_16(1115);
emit_16(1181);
emit_16(1114);
emit_16(1181);
emit_16(1115);
emit_16(1182);
emit_16(1116);
emit_16(1182);
emit_16(1115);
emit_16(1182);
emit_16(1116);
emit_16(1183);
emit_16(1117);
emit_16(1183);
emit_16(1116);
emit_16(1183);
emit_16(1117);
emit_16(1184);
emit_16(1118);
emit_16(1184);
emit_16(1117);
emit_16(1184);
emit_16(1118);
emit_16(1185);
emit_16(1119);
emit_16(1185);
emit_16(1118);
emit_16(1185);
emit_16(1119);
emit_16(1186);
emit_16(1120);
emit_16(1186);
emit_16(1119);
emit_16(1186);
emit_16(1120);
emit_16(1187);
emit_16(1121);
emit_16(1187);
emit_16(1120);
emit_16(1188);
emit_16(1122);
emit_16(1189);
emit_16(1123);
emit_16(1189);
emit_16(1122);
emit_16(1189);
emit_16(1123);
emit_16(1190);
emit_16(1124);
emit_16(1190);
emit_16(1123);
emit_16(1190);
emit_16(1124);
emit_16(1191);
emit_16(1125);
emit_16(1191);
emit_16(1124);
emit_16(1191);
emit_16(1125);
emit_16(1192);
emit_16(1126);
emit_16(1192);
emit_16(1125);
emit_16(1192);
emit_16(1126);
emit_16(1193);
emit_16(1127);
emit_16(1193);
emit_16(1126);
emit_16(1193);
emit_16(1127);
emit_16(1194);
emit_16(1128);
emit_16(1194);
emit_16(1127);
emit_16(1194);
emit_16(1128);
emit_16(1195);
emit_16(1129);
emit_16(1195);
emit_16(1128);
emit_16(1195);
emit_16(1129);
emit_16(1196);
emit_16(1130);
emit_16(1196);
emit_16(1129);
emit_16(1196);
emit_16(1130);
emit_16(1197);
emit_16(1131);
emit_16(1197);
emit_16(1130);
emit_16(1197);
emit_16(1131);
emit_16(1198);
emit_16(1132);
emit_16(1198);
emit_16(1131);
emit_16(1198);
emit_16(1132);
emit_16(1199);
emit_16(1133);
emit_16(1199);
emit_16(1132);
emit_16(1199);
emit_16(1133);
emit_16(1200);
emit_16(1134);
emit_16(1200);
emit_16(1133);
emit_16(1200);
emit_16(1134);
emit_16(1201);
emit_16(1135);
emit_16(1201);
emit_16(1134);
emit_16(1201);
emit_16(1135);
emit_16(1202);
emit_16(1136);
emit_16(1202);
emit_16(1135);
emit_16(1202);
emit_16(1136);
emit_16(1203);
emit_16(1137);
emit_16(1203);
emit_16(1136);
emit_16(1203);
emit_16(1137);
emit_16(1204);
emit_16(1138);
emit_16(1204);
emit_16(1137);
emit_16(1204);
emit_16(1138);
emit_16(1205);
emit_16(1139);
emit_16(1205);
emit_16(1138);
emit_16(1205);
emit_16(1139);
emit_16(1206);
emit_16(1140);
emit_16(1206);
emit_16(1139);
emit_16(1206);
emit_16(1140);
emit_16(1207);
emit_16(1141);
emit_16(1207);
emit_16(1140);
emit_16(1207);
emit_16(1141);
emit_16(1208);
emit_16(1142);
emit_16(1208);
emit_16(1141);
emit_16(1208);
emit_16(1142);
emit_16(1209);
emit_16(1143);
emit_16(1209);
emit_16(1142);
emit_16(1209);
emit_16(1143);
emit_16(1210);
emit_16(1144);
emit_16(1210);
emit_16(1143);
emit_16(1210);
emit_16(1144);
emit_16(1211);
emit_16(1145);
emit_16(1211);
emit_16(1144);
emit_16(1211);
emit_16(1145);
emit_16(1212);
emit_16(1146);
emit_16(1212);
emit_16(1145);
emit_16(1212);
emit_16(1146);
emit_16(1213);
emit_16(1147);
emit_16(1213);
emit_16(1146);
emit_16(1213);
emit_16(1147);
emit_16(1214);
emit_16(1148);
emit_16(1214);
emit_16(1147);
emit_16(1214);
emit_16(1148);
emit_16(1215);
emit_16(1149);
emit_16(1215);
emit_16(1148);
emit_16(1215);
emit_16(1149);
emit_16(1216);
emit_16(1150);
emit_16(1216);
emit_16(1149);
emit_16(1216);
emit_16(1150);
emit_16(1217);
emit_16(1151);
emit_16(1217);
emit_16(1150);
emit_16(1217);
emit_16(1151);
emit_16(1218);
emit_16(1152);
emit_16(1218);
emit_16(1151);
emit_16(1218);
emit_16(1152);
emit_16(1219);
emit_16(1153);
emit_16(1219);
emit_16(1152);
emit_16(1219);
emit_16(1153);
emit_16(1220);
emit_16(1154);
emit_16(1220);
emit_16(1153);
emit_16(1220);
emit_16(1154);
emit_16(1221);
emit_16(1155);
emit_16(1221);
emit_16(1154);
emit_16(1221);
emit_16(1155);
emit_16(1222);
emit_16(1156);
emit_16(1222);
emit_16(1155);
emit_16(1222);
emit_16(1156);
emit_16(1223);
emit_16(1157);
emit_16(1223);
emit_16(1156);
emit_16(1223);
emit_16(1157);
emit_16(1224);
emit_16(1158);
emit_16(1224);
emit_16(1157);
emit_16(1224);
emit_16(1158);
emit_16(1225);
emit_16(1159);
emit_16(1225);
emit_16(1158);
emit_16(1225);
emit_16(1159);
emit_16(1226);
emit_16(1160);
emit_16(1226);
emit_16(1159);
emit_16(1226);
emit_16(1160);
emit_16(1227);
emit_16(1161);
emit_16(1227);
emit_16(1160);
emit_16(1227);
emit_16(1161);
emit_16(1228);
emit_16(1162);
emit_16(1228);
emit_16(1161);
emit_16(1228);
emit_16(1162);
emit_16(1229);
emit_16(1163);
emit_16(1229);
emit_16(1162);
emit_16(1229);
emit_16(1163);
emit_16(1230);
emit_16(1164);
emit_16(1230);
emit_16(1163);
emit_16(1230);
emit_16(1164);
emit_16(1231);
emit_16(1165);
emit_16(1231);
emit_16(1164);
emit_16(1231);
emit_16(1165);
emit_16(1232);
emit_16(1166);
emit_16(1232);
emit_16(1165);
emit_16(1232);
emit_16(1166);
emit_16(1233);
emit_16(1167);
emit_16(1233);
emit_16(1166);
emit_16(1233);
emit_16(1167);
emit_16(1234);
emit_16(1168);
emit_16(1234);
emit_16(1167);
emit_16(1234);
emit_16(1168);
emit_16(1235);
emit_16(1169);
emit_16(1235);
emit_16(1168);
emit_16(1235);
emit_16(1169);
emit_16(1236);
emit_16(1170);
emit_16(1236);
emit_16(1169);
emit_16(1236);
emit_16(1170);
emit_16(1237);
emit_16(1171);
emit_16(1237);
emit_16(1170);
emit_16(1237);
emit_16(1171);
emit_16(1238);
emit_16(1172);
emit_16(1238);
emit_16(1171);
emit_16(1238);
emit_16(1172);
emit_16(1239);
emit_16(1173);
emit_16(1239);
emit_16(1172);
emit_16(1239);
emit_16(1173);
emit_16(1240);
emit_16(1174);
emit_16(1240);
emit_16(1173);
emit_16(1240);
emit_16(1174);
emit_16(1241);
emit_16(1175);
emit_16(1241);
emit_16(1174);
emit_16(1241);
emit_16(1175);
emit_16(1242);
emit_16(1176);
emit_16(1242);
emit_16(1175);
emit_16(1242);
emit_16(1176);
emit_16(1243);
emit_16(1177);
emit_16(1243);
emit_16(1176);
emit_16(1243);
emit_16(1177);
emit_16(1244);
emit_16(1178);
emit_16(1244);
emit_16(1177);
emit_16(1244);
emit_16(1178);
emit_16(1245);
emit_16(1179);
emit_16(1245);
emit_16(1178);
emit_16(1245);
emit_16(1179);
emit_16(1246);
emit_16(1180);
emit_16(1246);
emit_16(1179);
emit_16(1246);
emit_16(1180);
emit_16(1247);
emit_16(1181);
emit_16(1247);
emit_16(1180);
emit_16(1247);
emit_16(1181);
emit_16(1248);
emit_16(1182);
emit_16(1248);
emit_16(1181);
emit_16(1248);
emit_16(1182);
emit_16(1249);
emit_16(1183);
emit_16(1249);
emit_16(1182);
emit_16(1249);
emit_16(1183);
emit_16(1250);
emit_16(1184);
emit_16(1250);
emit_16(1183);
emit_16(1250);
emit_16(1184);
emit_16(1251);
emit_16(1185);
emit_16(1251);
emit_16(1184);
emit_16(1251);
emit_16(1185);
emit_16(1252);
emit_16(1186);
emit_16(1252);
emit_16(1185);
emit_16(1252);
emit_16(1186);
emit_16(1253);
emit_16(1187);
emit_16(1253);
emit_16(1186);
emit_16(1254);
emit_16(1188);
emit_16(1255);
emit_16(1189);
emit_16(1255);
emit_16(1188);
emit_16(1255);
emit_16(1189);
emit_16(1256);
emit_16(1190);
emit_16(1256);
emit_16(1189);
emit_16(1256);
emit_16(1190);
emit_16(1257);
emit_16(1191);
emit_16(1257);
emit_16(1190);
emit_16(1257);
emit_16(1191);
emit_16(1258);
emit_16(1192);
emit_16(1258);
emit_16(1191);
emit_16(1258);
emit_16(1192);
emit_16(1259);
emit_16(1193);
emit_16(1259);
emit_16(1192);
emit_16(1259);
emit_16(1193);
emit_16(1260);
emit_16(1194);
emit_16(1260);
emit_16(1193);
emit_16(1260);
emit_16(1194);
emit_16(1261);
emit_16(1195);
emit_16(1261);
emit_16(1194);
emit_16(1261);
emit_16(1195);
emit_16(1262);
emit_16(1196);
emit_16(1262);
emit_16(1195);
emit_16(1262);
emit_16(1196);
emit_16(1263);
emit_16(1197);
emit_16(1263);
emit_16(1196);
emit_16(1263);
emit_16(1197);
emit_16(1264);
emit_16(1198);
emit_16(1264);
emit_16(1197);
emit_16(1264);
emit_16(1198);
emit_16(1265);
emit_16(1199);
emit_16(1265);
emit_16(1198);
emit_16(1265);
emit_16(1199);
emit_16(1266);
emit_16(1200);
emit_16(1266);
emit_16(1199);
emit_16(1266);
emit_16(1200);
emit_16(1267);
emit_16(1201);
emit_16(1267);
emit_16(1200);
emit_16(1267);
emit_16(1201);
emit_16(1268);
emit_16(1202);
emit_16(1268);
emit_16(1201);
emit_16(1268);
emit_16(1202);
emit_16(1269);
emit_16(1203);
emit_16(1269);
emit_16(1202);
emit_16(1269);
emit_16(1203);
emit_16(1270);
emit_16(1204);
emit_16(1270);
emit_16(1203);
emit_16(1270);
emit_16(1204);
emit_16(1271);
emit_16(1205);
emit_16(1271);
emit_16(1204);
emit_16(1271);
emit_16(1205);
emit_16(1272);
emit_16(1206);
emit_16(1272);
emit_16(1205);
emit_16(1272);
emit_16(1206);
emit_16(1273);
emit_16(1207);
emit_16(1273);
emit_16(1206);
emit_16(1273);
emit_16(1207);
emit_16(1274);
emit_16(1208);
emit_16(1274);
emit_16(1207);
emit_16(1274);
emit_16(1208);
emit_16(1275);
emit_16(1209);
emit_16(1275);
emit_16(1208);
emit_16(1275);
emit_16(1209);
emit_16(1276);
emit_16(1210);
emit_16(1276);
emit_16(1209);
emit_16(1276);
emit_16(1210);
emit_16(1277);
emit_16(1211);
emit_16(1277);
emit_16(1210);
emit_16(1277);
emit_16(1211);
emit_16(1278);
emit_16(1212);
emit_16(1278);
emit_16(1211);
emit_16(1278);
emit_16(1212);
emit_16(1279);
emit_16(1213);
emit_16(1279);
emit_16(1212);
emit_16(1279);
emit_16(1213);
emit_16(1280);
emit_16(1214);
emit_16(1280);
emit_16(1213);
emit_16(1280);
emit_16(1214);
emit_16(1281);
emit_16(1215);
emit_16(1281);
emit_16(1214);
emit_16(1281);
emit_16(1215);
emit_16(1282);
emit_16(1216);
emit_16(1282);
emit_16(1215);
emit_16(1282);
emit_16(1216);
emit_16(1283);
emit_16(1217);
emit_16(1283);
emit_16(1216);
emit_16(1283);
emit_16(1217);
emit_16(1284);
emit_16(1218);
emit_16(1284);
emit_16(1217);
emit_16(1284);
emit_16(1218);
emit_16(1285);
emit_16(1219);
emit_16(1285);
emit_16(1218);
emit_16(1285);
emit_16(1219);
emit_16(1286);
emit_16(1220);
emit_16(1286);
emit_16(1219);
emit_16(1286);
emit_16(1220);
emit_16(1287);
emit_16(1221);
emit_16(1287);
emit_16(1220);
emit_16(1287);
emit_16(1221);
emit_16(1288);
emit_16(1222);
emit_16(1288);
emit_16(1221);
emit_16(1288);
emit_16(1222);
emit_16(1289);
emit_16(1223);
emit_16(1289);
emit_16(1222);
emit_16(1289);
emit_16(1223);
emit_16(1290);
emit_16(1224);
emit_16(1290);
emit_16(1223);
emit_16(1290);
emit_16(1224);
emit_16(1291);
emit_16(1225);
emit_16(1291);
emit_16(1224);
emit_16(1291);
emit_16(1225);
emit_16(1292);
emit_16(1226);
emit_16(1292);
emit_16(1225);
emit_16(1292);
emit_16(1226);
emit_16(1293);
emit_16(1227);
emit_16(1293);
emit_16(1226);
emit_16(1293);
emit_16(1227);
emit_16(1294);
emit_16(1228);
emit_16(1294);
emit_16(1227);
emit_16(1294);
emit_16(1228);
emit_16(1295);
emit_16(1229);
emit_16(1295);
emit_16(1228);
emit_16(1295);
emit_16(1229);
emit_16(1296);
emit_16(1230);
emit_16(1296);
emit_16(1229);
emit_16(1296);
emit_16(1230);
emit_16(1297);
emit_16(1231);
emit_16(1297);
emit_16(1230);
emit_16(1297);
emit_16(1231);
emit_16(1298);
emit_16(1232);
emit_16(1298);
emit_16(1231);
emit_16(1298);
emit_16(1232);
emit_16(1299);
emit_16(1233);
emit_16(1299);
emit_16(1232);
emit_16(1299);
emit_16(1233);
emit_16(1300);
emit_16(1234);
emit_16(1300);
emit_16(1233);
emit_16(1300);
emit_16(1234);
emit_16(1301);
emit_16(1235);
emit_16(1301);
emit_16(1234);
emit_16(1301);
emit_16(1235);
emit_16(1302);
emit_16(1236);
emit_16(1302);
emit_16(1235);
emit_16(1302);
emit_16(1236);
emit_16(1303);
emit_16(1237);
emit_16(1303);
emit_16(1236);
emit_16(1303);
emit_16(1237);
emit_16(1304);
emit_16(1238);
emit_16(1304);
emit_16(1237);
emit_16(1304);
emit_16(1238);
emit_16(1305);
emit_16(1239);
emit_16(1305);
emit_16(1238);
emit_16(1305);
emit_16(1239);
emit_16(1306);
emit_16(1240);
emit_16(1306);
emit_16(1239);
emit_16(1306);
emit_16(1240);
emit_16(1307);
emit_16(1241);
emit_16(1307);
emit_16(1240);
emit_16(1307);
emit_16(1241);
emit_16(1308);
emit_16(1242);
emit_16(1308);
emit_16(1241);
emit_16(1308);
emit_16(1242);
emit_16(1309);
emit_16(1243);
emit_16(1309);
emit_16(1242);
emit_16(1309);
emit_16(1243);
emit_16(1310);
emit_16(1244);
emit_16(1310);
emit_16(1243);
emit_16(1310);
emit_16(1244);
emit_16(1311);
emit_16(1245);
emit_16(1311);
emit_16(1244);
emit_16(1311);
emit_16(1245);
emit_16(1312);
emit_16(1246);
emit_16(1312);
emit_16(1245);
emit_16(1312);
emit_16(1246);
emit_16(1313);
emit_16(1247);
emit_16(1313);
emit_16(1246);
emit_16(1313);
emit_16(1247);
emit_16(1314);
emit_16(1248);
emit_16(1314);
emit_16(1247);
emit_16(1314);
emit_16(1248);
emit_16(1315);
emit_16(1249);
emit_16(1315);
emit_16(1248);
emit_16(1315);
emit_16(1249);
emit_16(1316);
emit_16(1250);
emit_16(1316);
emit_16(1249);
emit_16(1316);
emit_16(1250);
emit_16(1317);
emit_16(1251);
emit_16(1317);
emit_16(1250);
emit_16(1317);
emit_16(1251);
emit_16(1318);
emit_16(1252);
emit_16(1318);
emit_16(1251);
emit_16(1318);
emit_16(1252);
emit_16(1319);
emit_16(1253);
emit_16(1319);
emit_16(1252);
emit_16(1320);
emit_16(1254);
emit_16(1321);
emit_16(1255);
emit_16(1321);
emit_16(1254);
emit_16(1321);
emit_16(1255);
emit_16(1322);
emit_16(1256);
emit_16(1322);
emit_16(1255);
emit_16(1322);
emit_16(1256);
emit_16(1323);
emit_16(1257);
emit_16(1323);
emit_16(1256);
emit_16(1323);
emit_16(1257);
emit_16(1324);
emit_16(1258);
emit_16(1324);
emit_16(1257);
emit_16(1324);
emit_16(1258);
emit_16(1325);
emit_16(1259);
emit_16(1325);
emit_16(1258);
emit_16(1325);
emit_16(1259);
emit_16(1326);
emit_16(1260);
emit_16(1326);
emit_16(1259);
emit_16(1326);
emit_16(1260);
emit_16(1327);
emit_16(1261);
emit_16(1327);
emit_16(1260);
emit_16(1327);
emit_16(1261);
emit_16(1328);
emit_16(1262);
emit_16(1328);
emit_16(1261);
emit_16(1328);
emit_16(1262);
emit_16(1329);
emit_16(1263);
emit_16(1329);
emit_16(1262);
emit_16(1329);
emit_16(1263);
emit_16(1330);
emit_16(1264);
emit_16(1330);
emit_16(1263);
emit_16(1330);
emit_16(1264);
emit_16(1331);
emit_16(1265);
emit_16(1331);
emit_16(1264);
emit_16(1331);
emit_16(1265);
emit_16(1332);
emit_16(1266);
emit_16(1332);
emit_16(1265);
emit_16(1332);
emit_16(1266);
emit_16(1333);
emit_16(1267);
emit_16(1333);
emit_16(1266);
emit_16(1333);
emit_16(1267);
emit_16(1334);
emit_16(1268);
emit_16(1334);
emit_16(1267);
emit_16(1334);
emit_16(1268);
emit_16(1335);
emit_16(1269);
emit_16(1335);
emit_16(1268);
emit_16(1335);
emit_16(1269);
emit_16(1336);
emit_16(1270);
emit_16(1336);
emit_16(1269);
emit_16(1336);
emit_16(1270);
emit_16(1337);
emit_16(1271);
emit_16(1337);
emit_16(1270);
emit_16(1337);
emit_16(1271);
emit_16(1338);
emit_16(1272);
emit_16(1338);
emit_16(1271);
emit_16(1338);
emit_16(1272);
emit_16(1339);
emit_16(1273);
emit_16(1339);
emit_16(1272);
emit_16(1339);
emit_16(1273);
emit_16(1340);
emit_16(1274);
emit_16(1340);
emit_16(1273);
emit_16(1340);
emit_16(1274);
emit_16(1341);
emit_16(1275);
emit_16(1341);
emit_16(1274);
emit_16(1341);
emit_16(1275);
emit_16(1342);
emit_16(1276);
emit_16(1342);
emit_16(1275);
emit_16(1342);
emit_16(1276);
emit_16(1343);
emit_16(1277);
emit_16(1343);
emit_16(1276);
emit_16(1343);
emit_16(1277);
emit_16(1344);
emit_16(1278);
emit_16(1344);
emit_16(1277);
emit_16(1344);
emit_16(1278);
emit_16(1345);
emit_16(1279);
emit_16(1345);
emit_16(1278);
emit_16(1345);
emit_16(1279);
emit_16(1346);
emit_16(1280);
emit_16(1346);
emit_16(1279);
emit_16(1346);
emit_16(1280);
emit_16(1347);
emit_16(1281);
emit_16(1347);
emit_16(1280);
emit_16(1347);
emit_16(1281);
emit_16(1348);
emit_16(1282);
emit_16(1348);
emit_16(1281);
emit_16(1348);
emit_16(1282);
emit_16(1349);
emit_16(1283);
emit_16(1349);
emit_16(1282);
emit_16(1349);
emit_16(1283);
emit_16(1350);
emit_16(1284);
emit_16(1350);
emit_16(1283);
emit_16(1350);
emit_16(1284);
emit_16(1351);
emit_16(1285);
emit_16(1351);
emit_16(1284);
emit_16(1351);
emit_16(1285);
emit_16(1352);
emit_16(1286);
emit_16(1352);
emit_16(1285);
emit_16(1352);
emit_16(1286);
emit_16(1353);
emit_16(1287);
emit_16(1353);
emit_16(1286);
emit_16(1353);
emit_16(1287);
emit_16(1354);
emit_16(1288);
emit_16(1354);
emit_16(1287);
emit_16(1354);
emit_16(1288);
emit_16(1355);
emit_16(1289);
emit_16(1355);
emit_16(1288);
emit_16(1355);
emit_16(1289);
emit_16(1356);
emit_16(1290);
emit_16(1356);
emit_16(1289);
emit_16(1356);
emit_16(1290);
emit_16(1357);
emit_16(1291);
emit_16(1357);
emit_16(1290);
emit_16(1357);
emit_16(1291);
emit_16(1358);
emit_16(1292);
emit_16(1358);
emit_16(1291);
emit_16(1358);
emit_16(1292);
emit_16(1359);
emit_16(1293);
emit_16(1359);
emit_16(1292);
emit_16(1359);
emit_16(1293);
emit_16(1360);
emit_16(1294);
emit_16(1360);
emit_16(1293);
emit_16(1360);
emit_16(1294);
emit_16(1361);
emit_16(1295);
emit_16(1361);
emit_16(1294);
emit_16(1361);
emit_16(1295);
emit_16(1362);
emit_16(1296);
emit_16(1362);
emit_16(1295);
emit_16(1362);
emit_16(1296);
emit_16(1363);
emit_16(1297);
emit_16(1363);
emit_16(1296);
emit_16(1363);
emit_16(1297);
emit_16(1364);
emit_16(1298);
emit_16(1364);
emit_16(1297);
emit_16(1364);
emit_16(1298);
emit_16(1365);
emit_16(1299);
emit_16(1365);
emit_16(1298);
emit_16(1365);
emit_16(1299);
emit_16(1366);
emit_16(1300);
emit_16(1366);
emit_16(1299);
emit_16(1366);
emit_16(1300);
emit_16(1367);
emit_16(1301);
emit_16(1367);
emit_16(1300);
emit_16(1367);
emit_16(1301);
emit_16(1368);
emit_16(1302);
emit_16(1368);
emit_16(1301);
emit_16(1368);
emit_16(1302);
emit_16(1369);
emit_16(1303);
emit_16(1369);
emit_16(1302);
emit_16(1369);
emit_16(1303);
emit_16(1370);
emit_16(1304);
emit_16(1370);
emit_16(1303);
emit_16(1370);
emit_16(1304);
emit_16(1371);
emit_16(1305);
emit_16(1371);
emit_16(1304);
emit_16(1371);
emit_16(1305);
emit_16(1372);
emit_16(1306);
emit_16(1372);
emit_16(1305);
emit_16(1372);
emit_16(1306);
emit_16(1373);
emit_16(1307);
emit_16(1373);
emit_16(1306);
emit_16(1373);
emit_16(1307);
emit_16(1374);
emit_16(1308);
emit_16(1374);
emit_16(1307);
emit_16(1374);
emit_16(1308);
emit_16(1375);
emit_16(1309);
emit_16(1375);
emit_16(1308);
emit_16(1375);
emit_16(1309);
emit_16(1376);
emit_16(1310);
emit_16(1376);
emit_16(1309);
emit_16(1376);
emit_16(1310);
emit_16(1377);
emit_16(1311);
emit_16(1377);
emit_16(1310);
emit_16(1377);
emit_16(1311);
emit_16(1378);
emit_16(1312);
emit_16(1378);
emit_16(1311);
emit_16(1378);
emit_16(1312);
emit_16(1379);
emit_16(1313);
emit_16(1379);
emit_16(1312);
emit_16(1379);
emit_16(1313);
emit_16(1380);
emit_16(1314);
emit_16(1380);
emit_16(1313);
emit_16(1380);
emit_16(1314);
emit_16(1381);
emit_16(1315);
emit_16(1381);
emit_16(1314);
emit_16(1381);
emit_16(1315);
emit_16(1382);
emit_16(1316);
emit_16(1382);
emit_16(1315);
emit_16(1382);
emit_16(1316);
emit_16(1383);
emit_16(1317);
emit_16(1383);
emit_16(1316);
emit_16(1383);
emit_16(1317);
emit_16(1384);
emit_16(1318);
emit_16(1384);
emit_16(1317);
emit_16(1384);
emit_16(1318);
emit_16(1385);
emit_16(1319);
emit_16(1385);
emit_16(1318);
emit_16(1386);
emit_16(1320);
emit_16(1387);
emit_16(1321);
emit_16(1387);
emit_16(1320);
emit_16(1387);
emit_16(1321);
emit_16(1388);
emit_16(1322);
emit_16(1388);
emit_16(1321);
emit_16(1388);
emit_16(1322);
emit_16(1389);
emit_16(1323);
emit_16(1389);
emit_16(1322);
emit_16(1389);
emit_16(1323);
emit_16(1390);
emit_16(1324);
emit_16(1390);
emit_16(1323);
emit_16(1390);
emit_16(1324);
emit_16(1391);
emit_16(1325);
emit_16(1391);
emit_16(1324);
emit_16(1391);
emit_16(1325);
emit_16(1392);
emit_16(1326);
emit_16(1392);
emit_16(1325);
emit_16(1392);
emit_16(1326);
emit_16(1393);
emit_16(1327);
emit_16(1393);
emit_16(1326);
emit_16(1393);
emit_16(1327);
emit_16(1394);
emit_16(1328);
emit_16(1394);
emit_16(1327);
emit_16(1394);
emit_16(1328);
emit_16(1395);
emit_16(1329);
emit_16(1395);
emit_16(1328);
emit_16(1395);
emit_16(1329);
emit_16(1396);
emit_16(1330);
emit_16(1396);
emit_16(1329);
emit_16(1396);
emit_16(1330);
emit_16(1397);
emit_16(1331);
emit_16(1397);
emit_16(1330);
emit_16(1397);
emit_16(1331);
emit_16(1398);
emit_16(1332);
emit_16(1398);
emit_16(1331);
emit_16(1398);
emit_16(1332);
emit_16(1399);
emit_16(1333);
emit_16(1399);
emit_16(1332);
emit_16(1399);
emit_16(1333);
emit_16(1400);
emit_16(1334);
emit_16(1400);
emit_16(1333);
emit_16(1400);
emit_16(1334);
emit_16(1401);
emit_16(1335);
emit_16(1401);
emit_16(1334);
emit_16(1401);
emit_16(1335);
emit_16(1402);
emit_16(1336);
emit_16(1402);
emit_16(1335);
emit_16(1402);
emit_16(1336);
emit_16(1403);
emit_16(1337);
emit_16(1403);
emit_16(1336);
emit_16(1403);
emit_16(1337);
emit_16(1404);
emit_16(1338);
emit_16(1404);
emit_16(1337);
emit_16(1404);
emit_16(1338);
emit_16(1405);
emit_16(1339);
emit_16(1405);
emit_16(1338);
emit_16(1405);
emit_16(1339);
emit_16(1406);
emit_16(1340);
emit_16(1406);
emit_16(1339);
emit_16(1406);
emit_16(1340);
emit_16(1407);
emit_16(1341);
emit_16(1407);
emit_16(1340);
emit_16(1407);
emit_16(1341);
emit_16(1408);
emit_16(1342);
emit_16(1408);
emit_16(1341);
emit_16(1408);
emit_16(1342);
emit_16(1409);
emit_16(1343);
emit_16(1409);
emit_16(1342);
emit_16(1409);
emit_16(1343);
emit_16(1410);
emit_16(1344);
emit_16(1410);
emit_16(1343);
emit_16(1410);
emit_16(1344);
emit_16(1411);
emit_16(1345);
emit_16(1411);
emit_16(1344);
emit_16(1411);
emit_16(1345);
emit_16(1412);
emit_16(1346);
emit_16(1412);
emit_16(1345);
emit_16(1412);
emit_16(1346);
emit_16(1413);
emit_16(1347);
emit_16(1413);
emit_16(1346);
emit_16(1413);
emit_16(1347);
emit_16(1414);
emit_16(1348);
emit_16(1414);
emit_16(1347);
emit_16(1414);
emit_16(1348);
emit_16(1415);
emit_16(1349);
emit_16(1415);
emit_16(1348);
emit_16(1415);
emit_16(1349);
emit_16(1416);
emit_16(1350);
emit_16(1416);
emit_16(1349);
emit_16(1416);
emit_16(1350);
emit_16(1417);
emit_16(1351);
emit_16(1417);
emit_16(1350);
emit_16(1417);
emit_16(1351);
emit_16(1418);
emit_16(1352);
emit_16(1418);
emit_16(1351);
emit_16(1418);
emit_16(1352);
emit_16(1419);
emit_16(1353);
emit_16(1419);
emit_16(1352);
emit_16(1419);
emit_16(1353);
emit_16(1420);
emit_16(1354);
emit_16(1420);
emit_16(1353);
emit_16(1420);
emit_16(1354);
emit_16(1421);
emit_16(1355);
emit_16(1421);
emit_16(1354);
emit_16(1421);
emit_16(1355);
emit_16(1422);
emit_16(1356);
emit_16(1422);
emit_16(1355);
emit_16(1422);
emit_16(1356);
emit_16(1423);
emit_16(1357);
emit_16(1423);
emit_16(1356);
emit_16(1423);
emit_16(1357);
emit_16(1424);
emit_16(1358);
emit_16(1424);
emit_16(1357);
emit_16(1424);
emit_16(1358);
emit_16(1425);
emit_16(1359);
emit_16(1425);
emit_16(1358);
emit_16(1425);
emit_16(1359);
emit_16(1426);
emit_16(1360);
emit_16(1426);
emit_16(1359);
emit_16(1426);
emit_16(1360);
emit_16(1427);
emit_16(1361);
emit_16(1427);
emit_16(1360);
emit_16(1427);
emit_16(1361);
emit_16(1428);
emit_16(1362);
emit_16(1428);
emit_16(1361);
emit_16(1428);
emit_16(1362);
emit_16(1429);
emit_16(1363);
emit_16(1429);
emit_16(1362);
emit_16(1429);
emit_16(1363);
emit_16(1430);
emit_16(1364);
emit_16(1430);
emit_16(1363);
emit_16(1430);
emit_16(1364);
emit_16(1431);
emit_16(1365);
emit_16(1431);
emit_16(1364);
emit_16(1431);
emit_16(1365);
emit_16(1432);
emit_16(1366);
emit_16(1432);
emit_16(1365);
emit_16(1432);
emit_16(1366);
emit_16(1433);
emit_16(1367);
emit_16(1433);
emit_16(1366);
emit_16(1433);
emit_16(1367);
emit_16(1434);
emit_16(1368);
emit_16(1434);
emit_16(1367);
emit_16(1434);
emit_16(1368);
emit_16(1435);
emit_16(1369);
emit_16(1435);
emit_16(1368);
emit_16(1435);
emit_16(1369);
emit_16(1436);
emit_16(1370);
emit_16(1436);
emit_16(1369);
emit_16(1436);
emit_16(1370);
emit_16(1437);
emit_16(1371);
emit_16(1437);
emit_16(1370);
emit_16(1437);
emit_16(1371);
emit_16(1438);
emit_16(1372);
emit_16(1438);
emit_16(1371);
emit_16(1438);
emit_16(1372);
emit_16(1439);
emit_16(1373);
emit_16(1439);
emit_16(1372);
emit_16(1439);
emit_16(1373);
emit_16(1440);
emit_16(1374);
emit_16(1440);
emit_16(1373);
emit_16(1440);
emit_16(1374);
emit_16(1441);
emit_16(1375);
emit_16(1441);
emit_16(1374);
emit_16(1441);
emit_16(1375);
emit_16(1442);
emit_16(1376);
emit_16(1442);
emit_16(1375);
emit_16(1442);
emit_16(1376);
emit_16(1443);
emit_16(1377);
emit_16(1443);
emit_16(1376);
emit_16(1443);
emit_16(1377);
emit_16(1444);
emit_16(1378);
emit_16(1444);
emit_16(1377);
emit_16(1444);
emit_16(1378);
emit_16(1445);
emit_16(1379);
emit_16(1445);
emit_16(1378);
emit_16(1445);
emit_16(1379);
emit_16(1446);
emit_16(1380);
emit_16(1446);
emit_16(1379);
emit_16(1446);
emit_16(1380);
emit_16(1447);
emit_16(1381);
emit_16(1447);
emit_16(1380);
emit_16(1447);
emit_16(1381);
emit_16(1448);
emit_16(1382);
emit_16(1448);
emit_16(1381);
emit_16(1448);
emit_16(1382);
emit_16(1449);
emit_16(1383);
emit_16(1449);
emit_16(1382);
emit_16(1449);
emit_16(1383);
emit_16(1450);
emit_16(1384);
emit_16(1450);
emit_16(1383);
emit_16(1450);
emit_16(1384);
emit_16(1451);
emit_16(1385);
emit_16(1451);
emit_16(1384);
emit_16(1452);
emit_16(1386);
emit_16(1453);
emit_16(1387);
emit_16(1453);
emit_16(1386);
emit_16(1453);
emit_16(1387);
emit_16(1454);
emit_16(1388);
emit_16(1454);
emit_16(1387);
emit_16(1454);
emit_16(1388);
emit_16(1455);
emit_16(1389);
emit_16(1455);
emit_16(1388);
emit_16(1455);
emit_16(1389);
emit_16(1456);
emit_16(1390);
emit_16(1456);
emit_16(1389);
emit_16(1456);
emit_16(1390);
emit_16(1457);
emit_16(1391);
emit_16(1457);
emit_16(1390);
emit_16(1457);
emit_16(1391);
emit_16(1458);
emit_16(1392);
emit_16(1458);
emit_16(1391);
emit_16(1458);
emit_16(1392);
emit_16(1459);
emit_16(1393);
emit_16(1459);
emit_16(1392);
emit_16(1459);
emit_16(1393);
emit_16(1460);
emit_16(1394);
emit_16(1460);
emit_16(1393);
emit_16(1460);
emit_16(1394);
emit_16(1461);
emit_16(1395);
emit_16(1461);
emit_16(1394);
emit_16(1461);
emit_16(1395);
emit_16(1462);
emit_16(1396);
emit_16(1462);
emit_16(1395);
emit_16(1462);
emit_16(1396);
emit_16(1463);
emit_16(1397);
emit_16(1463);
emit_16(1396);
emit_16(1463);
emit_16(1397);
emit_16(1464);
emit_16(1398);
emit_16(1464);
emit_16(1397);
emit_16(1464);
emit_16(1398);
emit_16(1465);
emit_16(1399);
emit_16(1465);
emit_16(1398);
emit_16(1465);
emit_16(1399);
emit_16(1466);
emit_16(1400);
emit_16(1466);
emit_16(1399);
emit_16(1466);
emit_16(1400);
emit_16(1467);
emit_16(1401);
emit_16(1467);
emit_16(1400);
emit_16(1467);
emit_16(1401);
emit_16(1468);
emit_16(1402);
emit_16(1468);
emit_16(1401);
emit_16(1468);
emit_16(1402);
emit_16(1469);
emit_16(1403);
emit_16(1469);
emit_16(1402);
emit_16(1469);
emit_16(1403);
emit_16(1470);
emit_16(1404);
emit_16(1470);
emit_16(1403);
emit_16(1470);
emit_16(1404);
emit_16(1471);
emit_16(1405);
emit_16(1471);
emit_16(1404);
emit_16(1471);
emit_16(1405);
emit_16(1472);
emit_16(1406);
emit_16(1472);
emit_16(1405);
emit_16(1472);
emit_16(1406);
emit_16(1473);
emit_16(1407);
emit_16(1473);
emit_16(1406);
emit_16(1473);
emit_16(1407);
emit_16(1474);
emit_16(1408);
emit_16(1474);
emit_16(1407);
emit_16(1474);
emit_16(1408);
emit_16(1475);
emit_16(1409);
emit_16(1475);
emit_16(1408);
emit_16(1475);
emit_16(1409);
emit_16(1476);
emit_16(1410);
emit_16(1476);
emit_16(1409);
emit_16(1476);
emit_16(1410);
emit_16(1477);
emit_16(1411);
emit_16(1477);
emit_16(1410);
emit_16(1477);
emit_16(1411);
emit_16(1478);
emit_16(1412);
emit_16(1478);
emit_16(1411);
emit_16(1478);
emit_16(1412);
emit_16(1479);
emit_16(1413);
emit_16(1479);
emit_16(1412);
emit_16(1479);
emit_16(1413);
emit_16(1480);
emit_16(1414);
emit_16(1480);
emit_16(1413);
emit_16(1480);
emit_16(1414);
emit_16(1481);
emit_16(1415);
emit_16(1481);
emit_16(1414);
emit_16(1481);
emit_16(1415);
emit_16(1482);
emit_16(1416);
emit_16(1482);
emit_16(1415);
emit_16(1482);
emit_16(1416);
emit_16(1483);
emit_16(1417);
emit_16(1483);
emit_16(1416);
emit_16(1483);
emit_16(1417);
emit_16(1484);
emit_16(1418);
emit_16(1484);
emit_16(1417);
emit_16(1484);
emit_16(1418);
emit_16(1485);
emit_16(1419);
emit_16(1485);
emit_16(1418);
emit_16(1485);
emit_16(1419);
emit_16(1486);
emit_16(1420);
emit_16(1486);
emit_16(1419);
emit_16(1486);
emit_16(1420);
emit_16(1487);
emit_16(1421);
emit_16(1487);
emit_16(1420);
emit_16(1487);
emit_16(1421);
emit_16(1488);
emit_16(1422);
emit_16(1488);
emit_16(1421);
emit_16(1488);
emit_16(1422);
emit_16(1489);
emit_16(1423);
emit_16(1489);
emit_16(1422);
emit_16(1489);
emit_16(1423);
emit_16(1490);
emit_16(1424);
emit_16(1490);
emit_16(1423);
emit_16(1490);
emit_16(1424);
emit_16(1491);
emit_16(1425);
emit_16(1491);
emit_16(1424);
emit_16(1491);
emit_16(1425);
emit_16(1492);
emit_16(1426);
emit_16(1492);
emit_16(1425);
emit_16(1492);
emit_16(1426);
emit_16(1493);
emit_16(1427);
emit_16(1493);
emit_16(1426);
emit_16(1493);
emit_16(1427);
emit_16(1494);
emit_16(1428);
emit_16(1494);
emit_16(1427);
emit_16(1494);
emit_16(1428);
emit_16(1495);
emit_16(1429);
emit_16(1495);
emit_16(1428);
emit_16(1495);
emit_16(1429);
emit_16(1496);
emit_16(1430);
emit_16(1496);
emit_16(1429);
emit_16(1496);
emit_16(1430);
emit_16(1497);
emit_16(1431);
emit_16(1497);
emit_16(1430);
emit_16(1497);
emit_16(1431);
emit_16(1498);
emit_16(1432);
emit_16(1498);
emit_16(1431);
emit_16(1498);
emit_16(1432);
emit_16(1499);
emit_16(1433);
emit_16(1499);
emit_16(1432);
emit_16(1499);
emit_16(1433);
emit_16(1500);
emit_16(1434);
emit_16(1500);
emit_16(1433);
emit_16(1500);
emit_16(1434);
emit_16(1501);
emit_16(1435);
emit_16(1501);
emit_16(1434);
emit_16(1501);
emit_16(1435);
emit_16(1502);
emit_16(1436);
emit_16(1502);
emit_16(1435);
emit_16(1502);
emit_16(1436);
emit_16(1503);
emit_16(1437);
emit_16(1503);
emit_16(1436);
emit_16(1503);
emit_16(1437);
emit_16(1504);
emit_16(1438);
emit_16(1504);
emit_16(1437);
emit_16(1504);
emit_16(1438);
emit_16(1505);
emit_16(1439);
emit_16(1505);
emit_16(1438);
emit_16(1505);
emit_16(1439);
emit_16(1506);
emit_16(1440);
emit_16(1506);
emit_16(1439);
emit_16(1506);
emit_16(1440);
emit_16(1507);
emit_16(1441);
emit_16(1507);
emit_16(1440);
emit_16(1507);
emit_16(1441);
emit_16(1508);
emit_16(1442);
emit_16(1508);
emit_16(1441);
emit_16(1508);
emit_16(1442);
emit_16(1509);
emit_16(1443);
emit_16(1509);
emit_16(1442);
emit_16(1509);
emit_16(1443);
emit_16(1510);
emit_16(1444);
emit_16(1510);
emit_16(1443);
emit_16(1510);
emit_16(1444);
emit_16(1511);
emit_16(1445);
emit_16(1511);
emit_16(1444);
emit_16(1511);
emit_16(1445);
emit_16(1512);
emit_16(1446);
emit_16(1512);
emit_16(1445);
emit_16(1512);
emit_16(1446);
emit_16(1513);
emit_16(1447);
emit_16(1513);
emit_16(1446);
emit_16(1513);
emit_16(1447);
emit_16(1514);
emit_16(1448);
emit_16(1514);
emit_16(1447);
emit_16(1514);
emit_16(1448);
emit_16(1515);
emit_16(1449);
emit_16(1515);
emit_16(1448);
emit_16(1515);
emit_16(1449);
emit_16(1516);
emit_16(1450);
emit_16(1516);
emit_16(1449);
emit_16(1516);
emit_16(1450);
emit_16(1517);
emit_16(1451);
emit_16(1517);
emit_16(1450);
emit_16(1518);
emit_16(1452);
emit_16(1519);
emit_16(1453);
emit_16(1519);
emit_16(1452);
emit_16(1519);
emit_16(1453);
emit_16(1520);
emit_16(1454);
emit_16(1520);
emit_16(1453);
emit_16(1520);
emit_16(1454);
emit_16(1521);
emit_16(1455);
emit_16(1521);
emit_16(1454);
emit_16(1521);
emit_16(1455);
emit_16(1522);
emit_16(1456);
emit_16(1522);
emit_16(1455);
emit_16(1522);
emit_16(1456);
emit_16(1523);
emit_16(1457);
emit_16(1523);
emit_16(1456);
emit_16(1523);
emit_16(1457);
emit_16(1524);
emit_16(1458);
emit_16(1524);
emit_16(1457);
emit_16(1524);
emit_16(1458);
emit_16(1525);
emit_16(1459);
emit_16(1525);
emit_16(1458);
emit_16(1525);
emit_16(1459);
emit_16(1526);
emit_16(1460);
emit_16(1526);
emit_16(1459);
emit_16(1526);
emit_16(1460);
emit_16(1527);
emit_16(1461);
emit_16(1527);
emit_16(1460);
emit_16(1527);
emit_16(1461);
emit_16(1528);
emit_16(1462);
emit_16(1528);
emit_16(1461);
emit_16(1528);
emit_16(1462);
emit_16(1529);
emit_16(1463);
emit_16(1529);
emit_16(1462);
emit_16(1529);
emit_16(1463);
emit_16(1530);
emit_16(1464);
emit_16(1530);
emit_16(1463);
emit_16(1530);
emit_16(1464);
emit_16(1531);
emit_16(1465);
emit_16(1531);
emit_16(1464);
emit_16(1531);
emit_16(1465);
emit_16(1532);
emit_16(1466);
emit_16(1532);
emit_16(1465);
emit_16(1532);
emit_16(1466);
emit_16(1533);
emit_16(1467);
emit_16(1533);
emit_16(1466);
emit_16(1533);
emit_16(1467);
emit_16(1534);
emit_16(1468);
emit_16(1534);
emit_16(1467);
emit_16(1534);
emit_16(1468);
emit_16(1535);
emit_16(1469);
emit_16(1535);
emit_16(1468);
emit_16(1535);
emit_16(1469);
emit_16(1536);
emit_16(1470);
emit_16(1536);
emit_16(1469);
emit_16(1536);
emit_16(1470);
emit_16(1537);
emit_16(1471);
emit_16(1537);
emit_16(1470);
emit_16(1537);
emit_16(1471);
emit_16(1538);
emit_16(1472);
emit_16(1538);
emit_16(1471);
emit_16(1538);
emit_16(1472);
emit_16(1539);
emit_16(1473);
emit_16(1539);
emit_16(1472);
emit_16(1539);
emit_16(1473);
emit_16(1540);
emit_16(1474);
emit_16(1540);
emit_16(1473);
emit_16(1540);
emit_16(1474);
emit_16(1541);
emit_16(1475);
emit_16(1541);
emit_16(1474);
emit_16(1541);
emit_16(1475);
emit_16(1542);
emit_16(1476);
emit_16(1542);
emit_16(1475);
emit_16(1542);
emit_16(1476);
emit_16(1543);
emit_16(1477);
emit_16(1543);
emit_16(1476);
emit_16(1543);
emit_16(1477);
emit_16(1544);
emit_16(1478);
emit_16(1544);
emit_16(1477);
emit_16(1544);
emit_16(1478);
emit_16(1545);
emit_16(1479);
emit_16(1545);
emit_16(1478);
emit_16(1545);
emit_16(1479);
emit_16(1546);
emit_16(1480);
emit_16(1546);
emit_16(1479);
emit_16(1546);
emit_16(1480);
emit_16(1547);
emit_16(1481);
emit_16(1547);
emit_16(1480);
emit_16(1547);
emit_16(1481);
emit_16(1548);
emit_16(1482);
emit_16(1548);
emit_16(1481);
emit_16(1548);
emit_16(1482);
emit_16(1549);
emit_16(1483);
emit_16(1549);
emit_16(1482);
emit_16(1549);
emit_16(1483);
emit_16(1550);
emit_16(1484);
emit_16(1550);
emit_16(1483);
emit_16(1550);
emit_16(1484);
emit_16(1551);
emit_16(1485);
emit_16(1551);
emit_16(1484);
emit_16(1551);
emit_16(1485);
emit_16(1552);
emit_16(1486);
emit_16(1552);
emit_16(1485);
emit_16(1552);
emit_16(1486);
emit_16(1553);
emit_16(1487);
emit_16(1553);
emit_16(1486);
emit_16(1553);
emit_16(1487);
emit_16(1554);
emit_16(1488);
emit_16(1554);
emit_16(1487);
emit_16(1554);
emit_16(1488);
emit_16(1555);
emit_16(1489);
emit_16(1555);
emit_16(1488);
emit_16(1555);
emit_16(1489);
emit_16(1556);
emit_16(1490);
emit_16(1556);
emit_16(1489);
emit_16(1556);
emit_16(1490);
emit_16(1557);
emit_16(1491);
emit_16(1557);
emit_16(1490);
emit_16(1557);
emit_16(1491);
emit_16(1558);
emit_16(1492);
emit_16(1558);
emit_16(1491);
emit_16(1558);
emit_16(1492);
emit_16(1559);
emit_16(1493);
emit_16(1559);
emit_16(1492);
emit_16(1559);
emit_16(1493);
emit_16(1560);
emit_16(1494);
emit_16(1560);
emit_16(1493);
emit_16(1560);
emit_16(1494);
emit_16(1561);
emit_16(1495);
emit_16(1561);
emit_16(1494);
emit_16(1561);
emit_16(1495);
emit_16(1562);
emit_16(1496);
emit_16(1562);
emit_16(1495);
emit_16(1562);
emit_16(1496);
emit_16(1563);
emit_16(1497);
emit_16(1563);
emit_16(1496);
emit_16(1563);
emit_16(1497);
emit_16(1564);
emit_16(1498);
emit_16(1564);
emit_16(1497);
emit_16(1564);
emit_16(1498);
emit_16(1565);
emit_16(1499);
emit_16(1565);
emit_16(1498);
emit_16(1565);
emit_16(1499);
emit_16(1566);
emit_16(1500);
emit_16(1566);
emit_16(1499);
emit_16(1566);
emit_16(1500);
emit_16(1567);
emit_16(1501);
emit_16(1567);
emit_16(1500);
emit_16(1567);
emit_16(1501);
emit_16(1568);
emit_16(1502);
emit_16(1568);
emit_16(1501);
emit_16(1568);
emit_16(1502);
emit_16(1569);
emit_16(1503);
emit_16(1569);
emit_16(1502);
emit_16(1569);
emit_16(1503);
emit_16(1570);
emit_16(1504);
emit_16(1570);
emit_16(1503);
emit_16(1570);
emit_16(1504);
emit_16(1571);
emit_16(1505);
emit_16(1571);
emit_16(1504);
emit_16(1571);
emit_16(1505);
emit_16(1572);
emit_16(1506);
emit_16(1572);
emit_16(1505);
emit_16(1572);
emit_16(1506);
emit_16(1573);
emit_16(1507);
emit_16(1573);
emit_16(1506);
emit_16(1573);
emit_16(1507);
emit_16(1574);
emit_16(1508);
emit_16(1574);
emit_16(1507);
emit_16(1574);
emit_16(1508);
emit_16(1575);
emit_16(1509);
emit_16(1575);
emit_16(1508);
emit_16(1575);
emit_16(1509);
emit_16(1576);
emit_16(1510);
emit_16(1576);
emit_16(1509);
emit_16(1576);
emit_16(1510);
emit_16(1577);
emit_16(1511);
emit_16(1577);
emit_16(1510);
emit_16(1577);
emit_16(1511);
emit_16(1578);
emit_16(1512);
emit_16(1578);
emit_16(1511);
emit_16(1578);
emit_16(1512);
emit_16(1579);
emit_16(1513);
emit_16(1579);
emit_16(1512);
emit_16(1579);
emit_16(1513);
emit_16(1580);
emit_16(1514);
emit_16(1580);
emit_16(1513);
emit_16(1580);
emit_16(1514);
emit_16(1581);
emit_16(1515);
emit_16(1581);
emit_16(1514);
emit_16(1581);
emit_16(1515);
emit_16(1582);
emit_16(1516);
emit_16(1582);
emit_16(1515);
emit_16(1582);
emit_16(1516);
emit_16(1583);
emit_16(1517);
emit_16(1583);
emit_16(1516);
emit_16(1584);
emit_16(1518);
emit_16(1585);
emit_16(1519);
emit_16(1585);
emit_16(1518);
emit_16(1585);
emit_16(1519);
emit_16(1586);
emit_16(1520);
emit_16(1586);
emit_16(1519);
emit_16(1586);
emit_16(1520);
emit_16(1587);
emit_16(1521);
emit_16(1587);
emit_16(1520);
emit_16(1587);
emit_16(1521);
emit_16(1588);
emit_16(1522);
emit_16(1588);
emit_16(1521);
emit_16(1588);
emit_16(1522);
emit_16(1589);
emit_16(1523);
emit_16(1589);
emit_16(1522);
emit_16(1589);
emit_16(1523);
emit_16(1590);
emit_16(1524);
emit_16(1590);
emit_16(1523);
emit_16(1590);
emit_16(1524);
emit_16(1591);
emit_16(1525);
emit_16(1591);
emit_16(1524);
emit_16(1591);
emit_16(1525);
emit_16(1592);
emit_16(1526);
emit_16(1592);
emit_16(1525);
emit_16(1592);
emit_16(1526);
emit_16(1593);
emit_16(1527);
emit_16(1593);
emit_16(1526);
emit_16(1593);
emit_16(1527);
emit_16(1594);
emit_16(1528);
emit_16(1594);
emit_16(1527);
emit_16(1594);
emit_16(1528);
emit_16(1595);
emit_16(1529);
emit_16(1595);
emit_16(1528);
emit_16(1595);
emit_16(1529);
emit_16(1596);
emit_16(1530);
emit_16(1596);
emit_16(1529);
emit_16(1596);
emit_16(1530);
emit_16(1597);
emit_16(1531);
emit_16(1597);
emit_16(1530);
emit_16(1597);
emit_16(1531);
emit_16(1598);
emit_16(1532);
emit_16(1598);
emit_16(1531);
emit_16(1598);
emit_16(1532);
emit_16(1599);
emit_16(1533);
emit_16(1599);
emit_16(1532);
emit_16(1599);
emit_16(1533);
emit_16(1600);
emit_16(1534);
emit_16(1600);
emit_16(1533);
emit_16(1600);
emit_16(1534);
emit_16(1601);
emit_16(1535);
emit_16(1601);
emit_16(1534);
emit_16(1601);
emit_16(1535);
emit_16(1602);
emit_16(1536);
emit_16(1602);
emit_16(1535);
emit_16(1602);
emit_16(1536);
emit_16(1603);
emit_16(1537);
emit_16(1603);
emit_16(1536);
emit_16(1603);
emit_16(1537);
emit_16(1604);
emit_16(1538);
emit_16(1604);
emit_16(1537);
emit_16(1604);
emit_16(1538);
emit_16(1605);
emit_16(1539);
emit_16(1605);
emit_16(1538);
emit_16(1605);
emit_16(1539);
emit_16(1606);
emit_16(1540);
emit_16(1606);
emit_16(1539);
emit_16(1606);
emit_16(1540);
emit_16(1607);
emit_16(1541);
emit_16(1607);
emit_16(1540);
emit_16(1607);
emit_16(1541);
emit_16(1608);
emit_16(1542);
emit_16(1608);
emit_16(1541);
emit_16(1608);
emit_16(1542);
emit_16(1609);
emit_16(1543);
emit_16(1609);
emit_16(1542);
emit_16(1609);
emit_16(1543);
emit_16(1610);
emit_16(1544);
emit_16(1610);
emit_16(1543);
emit_16(1610);
emit_16(1544);
emit_16(1611);
emit_16(1545);
emit_16(1611);
emit_16(1544);
emit_16(1611);
emit_16(1545);
emit_16(1612);
emit_16(1546);
emit_16(1612);
emit_16(1545);
emit_16(1612);
emit_16(1546);
emit_16(1613);
emit_16(1547);
emit_16(1613);
emit_16(1546);
emit_16(1613);
emit_16(1547);
emit_16(1614);
emit_16(1548);
emit_16(1614);
emit_16(1547);
emit_16(1614);
emit_16(1548);
emit_16(1615);
emit_16(1549);
emit_16(1615);
emit_16(1548);
emit_16(1615);
emit_16(1549);
emit_16(1616);
emit_16(1550);
emit_16(1616);
emit_16(1549);
emit_16(1616);
emit_16(1550);
emit_16(1617);
emit_16(1551);
emit_16(1617);
emit_16(1550);
emit_16(1617);
emit_16(1551);
emit_16(1618);
emit_16(1552);
emit_16(1618);
emit_16(1551);
emit_16(1618);
emit_16(1552);
emit_16(1619);
emit_16(1553);
emit_16(1619);
emit_16(1552);
emit_16(1619);
emit_16(1553);
emit_16(1620);
emit_16(1554);
emit_16(1620);
emit_16(1553);
emit_16(1620);
emit_16(1554);
emit_16(1621);
emit_16(1555);
emit_16(1621);
emit_16(1554);
emit_16(1621);
emit_16(1555);
emit_16(1622);
emit_16(1556);
emit_16(1622);
emit_16(1555);
emit_16(1622);
emit_16(1556);
emit_16(1623);
emit_16(1557);
emit_16(1623);
emit_16(1556);
emit_16(1623);
emit_16(1557);
emit_16(1624);
emit_16(1558);
emit_16(1624);
emit_16(1557);
emit_16(1624);
emit_16(1558);
emit_16(1625);
emit_16(1559);
emit_16(1625);
emit_16(1558);
emit_16(1625);
emit_16(1559);
emit_16(1626);
emit_16(1560);
emit_16(1626);
emit_16(1559);
emit_16(1626);
emit_16(1560);
emit_16(1627);
emit_16(1561);
emit_16(1627);
emit_16(1560);
emit_16(1627);
emit_16(1561);
emit_16(1628);
emit_16(1562);
emit_16(1628);
emit_16(1561);
emit_16(1628);
emit_16(1562);
emit_16(1629);
emit_16(1563);
emit_16(1629);
emit_16(1562);
emit_16(1629);
emit_16(1563);
emit_16(1630);
emit_16(1564);
emit_16(1630);
emit_16(1563);
emit_16(1630);
emit_16(1564);
emit_16(1631);
emit_16(1565);
emit_16(1631);
emit_16(1564);
emit_16(1631);
emit_16(1565);
emit_16(1632);
emit_16(1566);
emit_16(1632);
emit_16(1565);
emit_16(1632);
emit_16(1566);
emit_16(1633);
emit_16(1567);
emit_16(1633);
emit_16(1566);
emit_16(1633);
emit_16(1567);
emit_16(1634);
emit_16(1568);
emit_16(1634);
emit_16(1567);
emit_16(1634);
emit_16(1568);
emit_16(1635);
emit_16(1569);
emit_16(1635);
emit_16(1568);
emit_16(1635);
emit_16(1569);
emit_16(1636);
emit_16(1570);
emit_16(1636);
emit_16(1569);
emit_16(1636);
emit_16(1570);
emit_16(1637);
emit_16(1571);
emit_16(1637);
emit_16(1570);
emit_16(1637);
emit_16(1571);
emit_16(1638);
emit_16(1572);
emit_16(1638);
emit_16(1571);
emit_16(1638);
emit_16(1572);
emit_16(1639);
emit_16(1573);
emit_16(1639);
emit_16(1572);
emit_16(1639);
emit_16(1573);
emit_16(1640);
emit_16(1574);
emit_16(1640);
emit_16(1573);
emit_16(1640);
emit_16(1574);
emit_16(1641);
emit_16(1575);
emit_16(1641);
emit_16(1574);
emit_16(1641);
emit_16(1575);
emit_16(1642);
emit_16(1576);
emit_16(1642);
emit_16(1575);
emit_16(1642);
emit_16(1576);
emit_16(1643);
emit_16(1577);
emit_16(1643);
emit_16(1576);
emit_16(1643);
emit_16(1577);
emit_16(1644);
emit_16(1578);
emit_16(1644);
emit_16(1577);
emit_16(1644);
emit_16(1578);
emit_16(1645);
emit_16(1579);
emit_16(1645);
emit_16(1578);
emit_16(1645);
emit_16(1579);
emit_16(1646);
emit_16(1580);
emit_16(1646);
emit_16(1579);
emit_16(1646);
emit_16(1580);
emit_16(1647);
emit_16(1581);
emit_16(1647);
emit_16(1580);
emit_16(1647);
emit_16(1581);
emit_16(1648);
emit_16(1582);
emit_16(1648);
emit_16(1581);
emit_16(1648);
emit_16(1582);
emit_16(1649);
emit_16(1583);
emit_16(1649);
emit_16(1582);
emit_16(1650);
emit_16(1584);
emit_16(1651);
emit_16(1585);
emit_16(1651);
emit_16(1584);
emit_16(1651);
emit_16(1585);
emit_16(1652);
emit_16(1586);
emit_16(1652);
emit_16(1585);
emit_16(1652);
emit_16(1586);
emit_16(1653);
emit_16(1587);
emit_16(1653);
emit_16(1586);
emit_16(1653);
emit_16(1587);
emit_16(1654);
emit_16(1588);
emit_16(1654);
emit_16(1587);
emit_16(1654);
emit_16(1588);
emit_16(1655);
emit_16(1589);
emit_16(1655);
emit_16(1588);
emit_16(1655);
emit_16(1589);
emit_16(1656);
emit_16(1590);
emit_16(1656);
emit_16(1589);
emit_16(1656);
emit_16(1590);
emit_16(1657);
emit_16(1591);
emit_16(1657);
emit_16(1590);
emit_16(1657);
emit_16(1591);
emit_16(1658);
emit_16(1592);
emit_16(1658);
emit_16(1591);
emit_16(1658);
emit_16(1592);
emit_16(1659);
emit_16(1593);
emit_16(1659);
emit_16(1592);
emit_16(1659);
emit_16(1593);
emit_16(1660);
emit_16(1594);
emit_16(1660);
emit_16(1593);
emit_16(1660);
emit_16(1594);
emit_16(1661);
emit_16(1595);
emit_16(1661);
emit_16(1594);
emit_16(1661);
emit_16(1595);
emit_16(1662);
emit_16(1596);
emit_16(1662);
emit_16(1595);
emit_16(1662);
emit_16(1596);
emit_16(1663);
emit_16(1597);
emit_16(1663);
emit_16(1596);
emit_16(1663);
emit_16(1597);
emit_16(1664);
emit_16(1598);
emit_16(1664);
emit_16(1597);
emit_16(1664);
emit_16(1598);
emit_16(1665);
emit_16(1599);
emit_16(1665);
emit_16(1598);
emit_16(1665);
emit_16(1599);
emit_16(1666);
emit_16(1600);
emit_16(1666);
emit_16(1599);
emit_16(1666);
emit_16(1600);
emit_16(1667);
emit_16(1601);
emit_16(1667);
emit_16(1600);
emit_16(1667);
emit_16(1601);
emit_16(1668);
emit_16(1602);
emit_16(1668);
emit_16(1601);
emit_16(1668);
emit_16(1602);
emit_16(1669);
emit_16(1603);
emit_16(1669);
emit_16(1602);
emit_16(1669);
emit_16(1603);
emit_16(1670);
emit_16(1604);
emit_16(1670);
emit_16(1603);
emit_16(1670);
emit_16(1604);
emit_16(1671);
emit_16(1605);
emit_16(1671);
emit_16(1604);
emit_16(1671);
emit_16(1605);
emit_16(1672);
emit_16(1606);
emit_16(1672);
emit_16(1605);
emit_16(1672);
emit_16(1606);
emit_16(1673);
emit_16(1607);
emit_16(1673);
emit_16(1606);
emit_16(1673);
emit_16(1607);
emit_16(1674);
emit_16(1608);
emit_16(1674);
emit_16(1607);
emit_16(1674);
emit_16(1608);
emit_16(1675);
emit_16(1609);
emit_16(1675);
emit_16(1608);
emit_16(1675);
emit_16(1609);
emit_16(1676);
emit_16(1610);
emit_16(1676);
emit_16(1609);
emit_16(1676);
emit_16(1610);
emit_16(1677);
emit_16(1611);
emit_16(1677);
emit_16(1610);
emit_16(1677);
emit_16(1611);
emit_16(1678);
emit_16(1612);
emit_16(1678);
emit_16(1611);
emit_16(1678);
emit_16(1612);
emit_16(1679);
emit_16(1613);
emit_16(1679);
emit_16(1612);
emit_16(1679);
emit_16(1613);
emit_16(1680);
emit_16(1614);
emit_16(1680);
emit_16(1613);
emit_16(1680);
emit_16(1614);
emit_16(1681);
emit_16(1615);
emit_16(1681);
emit_16(1614);
emit_16(1681);
emit_16(1615);
emit_16(1682);
emit_16(1616);
emit_16(1682);
emit_16(1615);
emit_16(1682);
emit_16(1616);
emit_16(1683);
emit_16(1617);
emit_16(1683);
emit_16(1616);
emit_16(1683);
emit_16(1617);
emit_16(1684);
emit_16(1618);
emit_16(1684);
emit_16(1617);
emit_16(1684);
emit_16(1618);
emit_16(1685);
emit_16(1619);
emit_16(1685);
emit_16(1618);
emit_16(1685);
emit_16(1619);
emit_16(1686);
emit_16(1620);
emit_16(1686);
emit_16(1619);
emit_16(1686);
emit_16(1620);
emit_16(1687);
emit_16(1621);
emit_16(1687);
emit_16(1620);
emit_16(1687);
emit_16(1621);
emit_16(1688);
emit_16(1622);
emit_16(1688);
emit_16(1621);
emit_16(1688);
emit_16(1622);
emit_16(1689);
emit_16(1623);
emit_16(1689);
emit_16(1622);
emit_16(1689);
emit_16(1623);
emit_16(1690);
emit_16(1624);
emit_16(1690);
emit_16(1623);
emit_16(1690);
emit_16(1624);
emit_16(1691);
emit_16(1625);
emit_16(1691);
emit_16(1624);
emit_16(1691);
emit_16(1625);
emit_16(1692);
emit_16(1626);
emit_16(1692);
emit_16(1625);
emit_16(1692);
emit_16(1626);
emit_16(1693);
emit_16(1627);
emit_16(1693);
emit_16(1626);
emit_16(1693);
emit_16(1627);
emit_16(1694);
emit_16(1628);
emit_16(1694);
emit_16(1627);
emit_16(1694);
emit_16(1628);
emit_16(1695);
emit_16(1629);
emit_16(1695);
emit_16(1628);
emit_16(1695);
emit_16(1629);
emit_16(1696);
emit_16(1630);
emit_16(1696);
emit_16(1629);
emit_16(1696);
emit_16(1630);
emit_16(1697);
emit_16(1631);
emit_16(1697);
emit_16(1630);
emit_16(1697);
emit_16(1631);
emit_16(1698);
emit_16(1632);
emit_16(1698);
emit_16(1631);
emit_16(1698);
emit_16(1632);
emit_16(1699);
emit_16(1633);
emit_16(1699);
emit_16(1632);
emit_16(1699);
emit_16(1633);
emit_16(1700);
emit_16(1634);
emit_16(1700);
emit_16(1633);
emit_16(1700);
emit_16(1634);
emit_16(1701);
emit_16(1635);
emit_16(1701);
emit_16(1634);
emit_16(1701);
emit_16(1635);
emit_16(1702);
emit_16(1636);
emit_16(1702);
emit_16(1635);
emit_16(1702);
emit_16(1636);
emit_16(1703);
emit_16(1637);
emit_16(1703);
emit_16(1636);
emit_16(1703);
emit_16(1637);
emit_16(1704);
emit_16(1638);
emit_16(1704);
emit_16(1637);
emit_16(1704);
emit_16(1638);
emit_16(1705);
emit_16(1639);
emit_16(1705);
emit_16(1638);
emit_16(1705);
emit_16(1639);
emit_16(1706);
emit_16(1640);
emit_16(1706);
emit_16(1639);
emit_16(1706);
emit_16(1640);
emit_16(1707);
emit_16(1641);
emit_16(1707);
emit_16(1640);
emit_16(1707);
emit_16(1641);
emit_16(1708);
emit_16(1642);
emit_16(1708);
emit_16(1641);
emit_16(1708);
emit_16(1642);
emit_16(1709);
emit_16(1643);
emit_16(1709);
emit_16(1642);
emit_16(1709);
emit_16(1643);
emit_16(1710);
emit_16(1644);
emit_16(1710);
emit_16(1643);
emit_16(1710);
emit_16(1644);
emit_16(1711);
emit_16(1645);
emit_16(1711);
emit_16(1644);
emit_16(1711);
emit_16(1645);
emit_16(1712);
emit_16(1646);
emit_16(1712);
emit_16(1645);
emit_16(1712);
emit_16(1646);
emit_16(1713);
emit_16(1647);
emit_16(1713);
emit_16(1646);
emit_16(1713);
emit_16(1647);
emit_16(1714);
emit_16(1648);
emit_16(1714);
emit_16(1647);
emit_16(1714);
emit_16(1648);
emit_16(1715);
emit_16(1649);
emit_16(1715);
emit_16(1648);
emit_16(1716);
emit_16(1650);
emit_16(1717);
emit_16(1651);
emit_16(1717);
emit_16(1650);
emit_16(1717);
emit_16(1651);
emit_16(1718);
emit_16(1652);
emit_16(1718);
emit_16(1651);
emit_16(1718);
emit_16(1652);
emit_16(1719);
emit_16(1653);
emit_16(1719);
emit_16(1652);
emit_16(1719);
emit_16(1653);
emit_16(1720);
emit_16(1654);
emit_16(1720);
emit_16(1653);
emit_16(1720);
emit_16(1654);
emit_16(1721);
emit_16(1655);
emit_16(1721);
emit_16(1654);
emit_16(1721);
emit_16(1655);
emit_16(1722);
emit_16(1656);
emit_16(1722);
emit_16(1655);
emit_16(1722);
emit_16(1656);
emit_16(1723);
emit_16(1657);
emit_16(1723);
emit_16(1656);
emit_16(1723);
emit_16(1657);
emit_16(1724);
emit_16(1658);
emit_16(1724);
emit_16(1657);
emit_16(1724);
emit_16(1658);
emit_16(1725);
emit_16(1659);
emit_16(1725);
emit_16(1658);
emit_16(1725);
emit_16(1659);
emit_16(1726);
emit_16(1660);
emit_16(1726);
emit_16(1659);
emit_16(1726);
emit_16(1660);
emit_16(1727);
emit_16(1661);
emit_16(1727);
emit_16(1660);
emit_16(1727);
emit_16(1661);
emit_16(1728);
emit_16(1662);
emit_16(1728);
emit_16(1661);
emit_16(1728);
emit_16(1662);
emit_16(1729);
emit_16(1663);
emit_16(1729);
emit_16(1662);
emit_16(1729);
emit_16(1663);
emit_16(1730);
emit_16(1664);
emit_16(1730);
emit_16(1663);
emit_16(1730);
emit_16(1664);
emit_16(1731);
emit_16(1665);
emit_16(1731);
emit_16(1664);
emit_16(1731);
emit_16(1665);
emit_16(1732);
emit_16(1666);
emit_16(1732);
emit_16(1665);
emit_16(1732);
emit_16(1666);
emit_16(1733);
emit_16(1667);
emit_16(1733);
emit_16(1666);
emit_16(1733);
emit_16(1667);
emit_16(1734);
emit_16(1668);
emit_16(1734);
emit_16(1667);
emit_16(1734);
emit_16(1668);
emit_16(1735);
emit_16(1669);
emit_16(1735);
emit_16(1668);
emit_16(1735);
emit_16(1669);
emit_16(1736);
emit_16(1670);
emit_16(1736);
emit_16(1669);
emit_16(1736);
emit_16(1670);
emit_16(1737);
emit_16(1671);
emit_16(1737);
emit_16(1670);
emit_16(1737);
emit_16(1671);
emit_16(1738);
emit_16(1672);
emit_16(1738);
emit_16(1671);
emit_16(1738);
emit_16(1672);
emit_16(1739);
emit_16(1673);
emit_16(1739);
emit_16(1672);
emit_16(1739);
emit_16(1673);
emit_16(1740);
emit_16(1674);
emit_16(1740);
emit_16(1673);
emit_16(1740);
emit_16(1674);
emit_16(1741);
emit_16(1675);
emit_16(1741);
emit_16(1674);
emit_16(1741);
emit_16(1675);
emit_16(1742);
emit_16(1676);
emit_16(1742);
emit_16(1675);
emit_16(1742);
emit_16(1676);
emit_16(1743);
emit_16(1677);
emit_16(1743);
emit_16(1676);
emit_16(1743);
emit_16(1677);
emit_16(1744);
emit_16(1678);
emit_16(1744);
emit_16(1677);
emit_16(1744);
emit_16(1678);
emit_16(1745);
emit_16(1679);
emit_16(1745);
emit_16(1678);
emit_16(1745);
emit_16(1679);
emit_16(1746);
emit_16(1680);
emit_16(1746);
emit_16(1679);
emit_16(1746);
emit_16(1680);
emit_16(1747);
emit_16(1681);
emit_16(1747);
emit_16(1680);
emit_16(1747);
emit_16(1681);
emit_16(1748);
emit_16(1682);
emit_16(1748);
emit_16(1681);
emit_16(1748);
emit_16(1682);
emit_16(1749);
emit_16(1683);
emit_16(1749);
emit_16(1682);
emit_16(1749);
emit_16(1683);
emit_16(1750);
emit_16(1684);
emit_16(1750);
emit_16(1683);
emit_16(1750);
emit_16(1684);
emit_16(1751);
emit_16(1685);
emit_16(1751);
emit_16(1684);
emit_16(1751);
emit_16(1685);
emit_16(1752);
emit_16(1686);
emit_16(1752);
emit_16(1685);
emit_16(1752);
emit_16(1686);
emit_16(1753);
emit_16(1687);
emit_16(1753);
emit_16(1686);
emit_16(1753);
emit_16(1687);
emit_16(1754);
emit_16(1688);
emit_16(1754);
emit_16(1687);
emit_16(1754);
emit_16(1688);
emit_16(1755);
emit_16(1689);
emit_16(1755);
emit_16(1688);
emit_16(1755);
emit_16(1689);
emit_16(1756);
emit_16(1690);
emit_16(1756);
emit_16(1689);
emit_16(1756);
emit_16(1690);
emit_16(1757);
emit_16(1691);
emit_16(1757);
emit_16(1690);
emit_16(1757);
emit_16(1691);
emit_16(1758);
emit_16(1692);
emit_16(1758);
emit_16(1691);
emit_16(1758);
emit_16(1692);
emit_16(1759);
emit_16(1693);
emit_16(1759);
emit_16(1692);
emit_16(1759);
emit_16(1693);
emit_16(1760);
emit_16(1694);
emit_16(1760);
emit_16(1693);
emit_16(1760);
emit_16(1694);
emit_16(1761);
emit_16(1695);
emit_16(1761);
emit_16(1694);
emit_16(1761);
emit_16(1695);
emit_16(1762);
emit_16(1696);
emit_16(1762);
emit_16(1695);
emit_16(1762);
emit_16(1696);
emit_16(1763);
emit_16(1697);
emit_16(1763);
emit_16(1696);
emit_16(1763);
emit_16(1697);
emit_16(1764);
emit_16(1698);
emit_16(1764);
emit_16(1697);
emit_16(1764);
emit_16(1698);
emit_16(1765);
emit_16(1699);
emit_16(1765);
emit_16(1698);
emit_16(1765);
emit_16(1699);
emit_16(1766);
emit_16(1700);
emit_16(1766);
emit_16(1699);
emit_16(1766);
emit_16(1700);
emit_16(1767);
emit_16(1701);
emit_16(1767);
emit_16(1700);
emit_16(1767);
emit_16(1701);
emit_16(1768);
emit_16(1702);
emit_16(1768);
emit_16(1701);
emit_16(1768);
emit_16(1702);
emit_16(1769);
emit_16(1703);
emit_16(1769);
emit_16(1702);
emit_16(1769);
emit_16(1703);
emit_16(1770);
emit_16(1704);
emit_16(1770);
emit_16(1703);
emit_16(1770);
emit_16(1704);
emit_16(1771);
emit_16(1705);
emit_16(1771);
emit_16(1704);
emit_16(1771);
emit_16(1705);
emit_16(1772);
emit_16(1706);
emit_16(1772);
emit_16(1705);
emit_16(1772);
emit_16(1706);
emit_16(1773);
emit_16(1707);
emit_16(1773);
emit_16(1706);
emit_16(1773);
emit_16(1707);
emit_16(1774);
emit_16(1708);
emit_16(1774);
emit_16(1707);
emit_16(1774);
emit_16(1708);
emit_16(1775);
emit_16(1709);
emit_16(1775);
emit_16(1708);
emit_16(1775);
emit_16(1709);
emit_16(1776);
emit_16(1710);
emit_16(1776);
emit_16(1709);
emit_16(1776);
emit_16(1710);
emit_16(1777);
emit_16(1711);
emit_16(1777);
emit_16(1710);
emit_16(1777);
emit_16(1711);
emit_16(1778);
emit_16(1712);
emit_16(1778);
emit_16(1711);
emit_16(1778);
emit_16(1712);
emit_16(1779);
emit_16(1713);
emit_16(1779);
emit_16(1712);
emit_16(1779);
emit_16(1713);
emit_16(1780);
emit_16(1714);
emit_16(1780);
emit_16(1713);
emit_16(1780);
emit_16(1714);
emit_16(1781);
emit_16(1715);
emit_16(1781);
emit_16(1714);
emit_16(1782);
emit_16(1716);
emit_16(1783);
emit_16(1717);
emit_16(1783);
emit_16(1716);
emit_16(1783);
emit_16(1717);
emit_16(1784);
emit_16(1718);
emit_16(1784);
emit_16(1717);
emit_16(1784);
emit_16(1718);
emit_16(1785);
emit_16(1719);
emit_16(1785);
emit_16(1718);
emit_16(1785);
emit_16(1719);
emit_16(1786);
emit_16(1720);
emit_16(1786);
emit_16(1719);
emit_16(1786);
emit_16(1720);
emit_16(1787);
emit_16(1721);
emit_16(1787);
emit_16(1720);
emit_16(1787);
emit_16(1721);
emit_16(1788);
emit_16(1722);
emit_16(1788);
emit_16(1721);
emit_16(1788);
emit_16(1722);
emit_16(1789);
emit_16(1723);
emit_16(1789);
emit_16(1722);
emit_16(1789);
emit_16(1723);
emit_16(1790);
emit_16(1724);
emit_16(1790);
emit_16(1723);
emit_16(1790);
emit_16(1724);
emit_16(1791);
emit_16(1725);
emit_16(1791);
emit_16(1724);
emit_16(1791);
emit_16(1725);
emit_16(1792);
emit_16(1726);
emit_16(1792);
emit_16(1725);
emit_16(1792);
emit_16(1726);
emit_16(1793);
emit_16(1727);
emit_16(1793);
emit_16(1726);
emit_16(1793);
emit_16(1727);
emit_16(1794);
emit_16(1728);
emit_16(1794);
emit_16(1727);
emit_16(1794);
emit_16(1728);
emit_16(1795);
emit_16(1729);
emit_16(1795);
emit_16(1728);
emit_16(1795);
emit_16(1729);
emit_16(1796);
emit_16(1730);
emit_16(1796);
emit_16(1729);
emit_16(1796);
emit_16(1730);
emit_16(1797);
emit_16(1731);
emit_16(1797);
emit_16(1730);
emit_16(1797);
emit_16(1731);
emit_16(1798);
emit_16(1732);
emit_16(1798);
emit_16(1731);
emit_16(1798);
emit_16(1732);
emit_16(1799);
emit_16(1733);
emit_16(1799);
emit_16(1732);
emit_16(1799);
emit_16(1733);
emit_16(1800);
emit_16(1734);
emit_16(1800);
emit_16(1733);
emit_16(1800);
emit_16(1734);
emit_16(1801);
emit_16(1735);
emit_16(1801);
emit_16(1734);
emit_16(1801);
emit_16(1735);
emit_16(1802);
emit_16(1736);
emit_16(1802);
emit_16(1735);
emit_16(1802);
emit_16(1736);
emit_16(1803);
emit_16(1737);
emit_16(1803);
emit_16(1736);
emit_16(1803);
emit_16(1737);
emit_16(1804);
emit_16(1738);
emit_16(1804);
emit_16(1737);
emit_16(1804);
emit_16(1738);
emit_16(1805);
emit_16(1739);
emit_16(1805);
emit_16(1738);
emit_16(1805);
emit_16(1739);
emit_16(1806);
emit_16(1740);
emit_16(1806);
emit_16(1739);
emit_16(1806);
emit_16(1740);
emit_16(1807);
emit_16(1741);
emit_16(1807);
emit_16(1740);
emit_16(1807);
emit_16(1741);
emit_16(1808);
emit_16(1742);
emit_16(1808);
emit_16(1741);
emit_16(1808);
emit_16(1742);
emit_16(1809);
emit_16(1743);
emit_16(1809);
emit_16(1742);
emit_16(1809);
emit_16(1743);
emit_16(1810);
emit_16(1744);
emit_16(1810);
emit_16(1743);
emit_16(1810);
emit_16(1744);
emit_16(1811);
emit_16(1745);
emit_16(1811);
emit_16(1744);
emit_16(1811);
emit_16(1745);
emit_16(1812);
emit_16(1746);
emit_16(1812);
emit_16(1745);
emit_16(1812);
emit_16(1746);
emit_16(1813);
emit_16(1747);
emit_16(1813);
emit_16(1746);
emit_16(1813);
emit_16(1747);
emit_16(1814);
emit_16(1748);
emit_16(1814);
emit_16(1747);
emit_16(1814);
emit_16(1748);
emit_16(1815);
emit_16(1749);
emit_16(1815);
emit_16(1748);
emit_16(1815);
emit_16(1749);
emit_16(1816);
emit_16(1750);
emit_16(1816);
emit_16(1749);
emit_16(1816);
emit_16(1750);
emit_16(1817);
emit_16(1751);
emit_16(1817);
emit_16(1750);
emit_16(1817);
emit_16(1751);
emit_16(1818);
emit_16(1752);
emit_16(1818);
emit_16(1751);
emit_16(1818);
emit_16(1752);
emit_16(1819);
emit_16(1753);
emit_16(1819);
emit_16(1752);
emit_16(1819);
emit_16(1753);
emit_16(1820);
emit_16(1754);
emit_16(1820);
emit_16(1753);
emit_16(1820);
emit_16(1754);
emit_16(1821);
emit_16(1755);
emit_16(1821);
emit_16(1754);
emit_16(1821);
emit_16(1755);
emit_16(1822);
emit_16(1756);
emit_16(1822);
emit_16(1755);
emit_16(1822);
emit_16(1756);
emit_16(1823);
emit_16(1757);
emit_16(1823);
emit_16(1756);
emit_16(1823);
emit_16(1757);
emit_16(1824);
emit_16(1758);
emit_16(1824);
emit_16(1757);
emit_16(1824);
emit_16(1758);
emit_16(1825);
emit_16(1759);
emit_16(1825);
emit_16(1758);
emit_16(1825);
emit_16(1759);
emit_16(1826);
emit_16(1760);
emit_16(1826);
emit_16(1759);
emit_16(1826);
emit_16(1760);
emit_16(1827);
emit_16(1761);
emit_16(1827);
emit_16(1760);
emit_16(1827);
emit_16(1761);
emit_16(1828);
emit_16(1762);
emit_16(1828);
emit_16(1761);
emit_16(1828);
emit_16(1762);
emit_16(1829);
emit_16(1763);
emit_16(1829);
emit_16(1762);
emit_16(1829);
emit_16(1763);
emit_16(1830);
emit_16(1764);
emit_16(1830);
emit_16(1763);
emit_16(1830);
emit_16(1764);
emit_16(1831);
emit_16(1765);
emit_16(1831);
emit_16(1764);
emit_16(1831);
emit_16(1765);
emit_16(1832);
emit_16(1766);
emit_16(1832);
emit_16(1765);
emit_16(1832);
emit_16(1766);
emit_16(1833);
emit_16(1767);
emit_16(1833);
emit_16(1766);
emit_16(1833);
emit_16(1767);
emit_16(1834);
emit_16(1768);
emit_16(1834);
emit_16(1767);
emit_16(1834);
emit_16(1768);
emit_16(1835);
emit_16(1769);
emit_16(1835);
emit_16(1768);
emit_16(1835);
emit_16(1769);
emit_16(1836);
emit_16(1770);
emit_16(1836);
emit_16(1769);
emit_16(1836);
emit_16(1770);
emit_16(1837);
emit_16(1771);
emit_16(1837);
emit_16(1770);
emit_16(1837);
emit_16(1771);
emit_16(1838);
emit_16(1772);
emit_16(1838);
emit_16(1771);
emit_16(1838);
emit_16(1772);
emit_16(1839);
emit_16(1773);
emit_16(1839);
emit_16(1772);
emit_16(1839);
emit_16(1773);
emit_16(1840);
emit_16(1774);
emit_16(1840);
emit_16(1773);
emit_16(1840);
emit_16(1774);
emit_16(1841);
emit_16(1775);
emit_16(1841);
emit_16(1774);
emit_16(1841);
emit_16(1775);
emit_16(1842);
emit_16(1776);
emit_16(1842);
emit_16(1775);
emit_16(1842);
emit_16(1776);
emit_16(1843);
emit_16(1777);
emit_16(1843);
emit_16(1776);
emit_16(1843);
emit_16(1777);
emit_16(1844);
emit_16(1778);
emit_16(1844);
emit_16(1777);
emit_16(1844);
emit_16(1778);
emit_16(1845);
emit_16(1779);
emit_16(1845);
emit_16(1778);
emit_16(1845);
emit_16(1779);
emit_16(1846);
emit_16(1780);
emit_16(1846);
emit_16(1779);
emit_16(1846);
emit_16(1780);
emit_16(1847);
emit_16(1781);
emit_16(1847);
emit_16(1780);
emit_16(1848);
emit_16(1782);
emit_16(1849);
emit_16(1783);
emit_16(1849);
emit_16(1782);
emit_16(1849);
emit_16(1783);
emit_16(1850);
emit_16(1784);
emit_16(1850);
emit_16(1783);
emit_16(1850);
emit_16(1784);
emit_16(1851);
emit_16(1785);
emit_16(1851);
emit_16(1784);
emit_16(1851);
emit_16(1785);
emit_16(1852);
emit_16(1786);
emit_16(1852);
emit_16(1785);
emit_16(1852);
emit_16(1786);
emit_16(1853);
emit_16(1787);
emit_16(1853);
emit_16(1786);
emit_16(1853);
emit_16(1787);
emit_16(1854);
emit_16(1788);
emit_16(1854);
emit_16(1787);
emit_16(1854);
emit_16(1788);
emit_16(1855);
emit_16(1789);
emit_16(1855);
emit_16(1788);
emit_16(1855);
emit_16(1789);
emit_16(1856);
emit_16(1790);
emit_16(1856);
emit_16(1789);
emit_16(1856);
emit_16(1790);
emit_16(1857);
emit_16(1791);
emit_16(1857);
emit_16(1790);
emit_16(1857);
emit_16(1791);
emit_16(1858);
emit_16(1792);
emit_16(1858);
emit_16(1791);
emit_16(1858);
emit_16(1792);
emit_16(1859);
emit_16(1793);
emit_16(1859);
emit_16(1792);
emit_16(1859);
emit_16(1793);
emit_16(1860);
emit_16(1794);
emit_16(1860);
emit_16(1793);
emit_16(1860);
emit_16(1794);
emit_16(1861);
emit_16(1795);
emit_16(1861);
emit_16(1794);
emit_16(1861);
emit_16(1795);
emit_16(1862);
emit_16(1796);
emit_16(1862);
emit_16(1795);
emit_16(1862);
emit_16(1796);
emit_16(1863);
emit_16(1797);
emit_16(1863);
emit_16(1796);
emit_16(1863);
emit_16(1797);
emit_16(1864);
emit_16(1798);
emit_16(1864);
emit_16(1797);
emit_16(1864);
emit_16(1798);
emit_16(1865);
emit_16(1799);
emit_16(1865);
emit_16(1798);
emit_16(1865);
emit_16(1799);
emit_16(1866);
emit_16(1800);
emit_16(1866);
emit_16(1799);
emit_16(1866);
emit_16(1800);
emit_16(1867);
emit_16(1801);
emit_16(1867);
emit_16(1800);
emit_16(1867);
emit_16(1801);
emit_16(1868);
emit_16(1802);
emit_16(1868);
emit_16(1801);
emit_16(1868);
emit_16(1802);
emit_16(1869);
emit_16(1803);
emit_16(1869);
emit_16(1802);
emit_16(1869);
emit_16(1803);
emit_16(1870);
emit_16(1804);
emit_16(1870);
emit_16(1803);
emit_16(1870);
emit_16(1804);
emit_16(1871);
emit_16(1805);
emit_16(1871);
emit_16(1804);
emit_16(1871);
emit_16(1805);
emit_16(1872);
emit_16(1806);
emit_16(1872);
emit_16(1805);
emit_16(1872);
emit_16(1806);
emit_16(1873);
emit_16(1807);
emit_16(1873);
emit_16(1806);
emit_16(1873);
emit_16(1807);
emit_16(1874);
emit_16(1808);
emit_16(1874);
emit_16(1807);
emit_16(1874);
emit_16(1808);
emit_16(1875);
emit_16(1809);
emit_16(1875);
emit_16(1808);
emit_16(1875);
emit_16(1809);
emit_16(1876);
emit_16(1810);
emit_16(1876);
emit_16(1809);
emit_16(1876);
emit_16(1810);
emit_16(1877);
emit_16(1811);
emit_16(1877);
emit_16(1810);
emit_16(1877);
emit_16(1811);
emit_16(1878);
emit_16(1812);
emit_16(1878);
emit_16(1811);
emit_16(1878);
emit_16(1812);
emit_16(1879);
emit_16(1813);
emit_16(1879);
emit_16(1812);
emit_16(1879);
emit_16(1813);
emit_16(1880);
emit_16(1814);
emit_16(1880);
emit_16(1813);
emit_16(1880);
emit_16(1814);
emit_16(1881);
emit_16(1815);
emit_16(1881);
emit_16(1814);
emit_16(1881);
emit_16(1815);
emit_16(1882);
emit_16(1816);
emit_16(1882);
emit_16(1815);
emit_16(1882);
emit_16(1816);
emit_16(1883);
emit_16(1817);
emit_16(1883);
emit_16(1816);
emit_16(1883);
emit_16(1817);
emit_16(1884);
emit_16(1818);
emit_16(1884);
emit_16(1817);
emit_16(1884);
emit_16(1818);
emit_16(1885);
emit_16(1819);
emit_16(1885);
emit_16(1818);
emit_16(1885);
emit_16(1819);
emit_16(1886);
emit_16(1820);
emit_16(1886);
emit_16(1819);
emit_16(1886);
emit_16(1820);
emit_16(1887);
emit_16(1821);
emit_16(1887);
emit_16(1820);
emit_16(1887);
emit_16(1821);
emit_16(1888);
emit_16(1822);
emit_16(1888);
emit_16(1821);
emit_16(1888);
emit_16(1822);
emit_16(1889);
emit_16(1823);
emit_16(1889);
emit_16(1822);
emit_16(1889);
emit_16(1823);
emit_16(1890);
emit_16(1824);
emit_16(1890);
emit_16(1823);
emit_16(1890);
emit_16(1824);
emit_16(1891);
emit_16(1825);
emit_16(1891);
emit_16(1824);
emit_16(1891);
emit_16(1825);
emit_16(1892);
emit_16(1826);
emit_16(1892);
emit_16(1825);
emit_16(1892);
emit_16(1826);
emit_16(1893);
emit_16(1827);
emit_16(1893);
emit_16(1826);
emit_16(1893);
emit_16(1827);
emit_16(1894);
emit_16(1828);
emit_16(1894);
emit_16(1827);
emit_16(1894);
emit_16(1828);
emit_16(1895);
emit_16(1829);
emit_16(1895);
emit_16(1828);
emit_16(1895);
emit_16(1829);
emit_16(1896);
emit_16(1830);
emit_16(1896);
emit_16(1829);
emit_16(1896);
emit_16(1830);
emit_16(1897);
emit_16(1831);
emit_16(1897);
emit_16(1830);
emit_16(1897);
emit_16(1831);
emit_16(1898);
emit_16(1832);
emit_16(1898);
emit_16(1831);
emit_16(1898);
emit_16(1832);
emit_16(1899);
emit_16(1833);
emit_16(1899);
emit_16(1832);
emit_16(1899);
emit_16(1833);
emit_16(1900);
emit_16(1834);
emit_16(1900);
emit_16(1833);
emit_16(1900);
emit_16(1834);
emit_16(1901);
emit_16(1835);
emit_16(1901);
emit_16(1834);
emit_16(1901);
emit_16(1835);
emit_16(1902);
emit_16(1836);
emit_16(1902);
emit_16(1835);
emit_16(1902);
emit_16(1836);
emit_16(1903);
emit_16(1837);
emit_16(1903);
emit_16(1836);
emit_16(1903);
emit_16(1837);
emit_16(1904);
emit_16(1838);
emit_16(1904);
emit_16(1837);
emit_16(1904);
emit_16(1838);
emit_16(1905);
emit_16(1839);
emit_16(1905);
emit_16(1838);
emit_16(1905);
emit_16(1839);
emit_16(1906);
emit_16(1840);
emit_16(1906);
emit_16(1839);
emit_16(1906);
emit_16(1840);
emit_16(1907);
emit_16(1841);
emit_16(1907);
emit_16(1840);
emit_16(1907);
emit_16(1841);
emit_16(1908);
emit_16(1842);
emit_16(1908);
emit_16(1841);
emit_16(1908);
emit_16(1842);
emit_16(1909);
emit_16(1843);
emit_16(1909);
emit_16(1842);
emit_16(1909);
emit_16(1843);
emit_16(1910);
emit_16(1844);
emit_16(1910);
emit_16(1843);
emit_16(1910);
emit_16(1844);
emit_16(1911);
emit_16(1845);
emit_16(1911);
emit_16(1844);
emit_16(1911);
emit_16(1845);
emit_16(1912);
emit_16(1846);
emit_16(1912);
emit_16(1845);
emit_16(1912);
emit_16(1846);
emit_16(1913);
emit_16(1847);
emit_16(1913);
emit_16(1846);
emit_16(1914);
emit_16(1848);
emit_16(1915);
emit_16(1849);
emit_16(1915);
emit_16(1848);
emit_16(1915);
emit_16(1849);
emit_16(1916);
emit_16(1850);
emit_16(1916);
emit_16(1849);
emit_16(1916);
emit_16(1850);
emit_16(1917);
emit_16(1851);
emit_16(1917);
emit_16(1850);
emit_16(1917);
emit_16(1851);
emit_16(1918);
emit_16(1852);
emit_16(1918);
emit_16(1851);
emit_16(1918);
emit_16(1852);
emit_16(1919);
emit_16(1853);
emit_16(1919);
emit_16(1852);
emit_16(1919);
emit_16(1853);
emit_16(1920);
emit_16(1854);
emit_16(1920);
emit_16(1853);
emit_16(1920);
emit_16(1854);
emit_16(1921);
emit_16(1855);
emit_16(1921);
emit_16(1854);
emit_16(1921);
emit_16(1855);
emit_16(1922);
emit_16(1856);
emit_16(1922);
emit_16(1855);
emit_16(1922);
emit_16(1856);
emit_16(1923);
emit_16(1857);
emit_16(1923);
emit_16(1856);
emit_16(1923);
emit_16(1857);
emit_16(1924);
emit_16(1858);
emit_16(1924);
emit_16(1857);
emit_16(1924);
emit_16(1858);
emit_16(1925);
emit_16(1859);
emit_16(1925);
emit_16(1858);
emit_16(1925);
emit_16(1859);
emit_16(1926);
emit_16(1860);
emit_16(1926);
emit_16(1859);
emit_16(1926);
emit_16(1860);
emit_16(1927);
emit_16(1861);
emit_16(1927);
emit_16(1860);
emit_16(1927);
emit_16(1861);
emit_16(1928);
emit_16(1862);
emit_16(1928);
emit_16(1861);
emit_16(1928);
emit_16(1862);
emit_16(1929);
emit_16(1863);
emit_16(1929);
emit_16(1862);
emit_16(1929);
emit_16(1863);
emit_16(1930);
emit_16(1864);
emit_16(1930);
emit_16(1863);
emit_16(1930);
emit_16(1864);
emit_16(1931);
emit_16(1865);
emit_16(1931);
emit_16(1864);
emit_16(1931);
emit_16(1865);
emit_16(1932);
emit_16(1866);
emit_16(1932);
emit_16(1865);
emit_16(1932);
emit_16(1866);
emit_16(1933);
emit_16(1867);
emit_16(1933);
emit_16(1866);
emit_16(1933);
emit_16(1867);
emit_16(1934);
emit_16(1868);
emit_16(1934);
emit_16(1867);
emit_16(1934);
emit_16(1868);
emit_16(1935);
emit_16(1869);
emit_16(1935);
emit_16(1868);
emit_16(1935);
emit_16(1869);
emit_16(1936);
emit_16(1870);
emit_16(1936);
emit_16(1869);
emit_16(1936);
emit_16(1870);
emit_16(1937);
emit_16(1871);
emit_16(1937);
emit_16(1870);
emit_16(1937);
emit_16(1871);
emit_16(1938);
emit_16(1872);
emit_16(1938);
emit_16(1871);
emit_16(1938);
emit_16(1872);
emit_16(1939);
emit_16(1873);
emit_16(1939);
emit_16(1872);
emit_16(1939);
emit_16(1873);
emit_16(1940);
emit_16(1874);
emit_16(1940);
emit_16(1873);
emit_16(1940);
emit_16(1874);
emit_16(1941);
emit_16(1875);
emit_16(1941);
emit_16(1874);
emit_16(1941);
emit_16(1875);
emit_16(1942);
emit_16(1876);
emit_16(1942);
emit_16(1875);
emit_16(1942);
emit_16(1876);
emit_16(1943);
emit_16(1877);
emit_16(1943);
emit_16(1876);
emit_16(1943);
emit_16(1877);
emit_16(1944);
emit_16(1878);
emit_16(1944);
emit_16(1877);
emit_16(1944);
emit_16(1878);
emit_16(1945);
emit_16(1879);
emit_16(1945);
emit_16(1878);
emit_16(1945);
emit_16(1879);
emit_16(1946);
emit_16(1880);
emit_16(1946);
emit_16(1879);
emit_16(1946);
emit_16(1880);
emit_16(1947);
emit_16(1881);
emit_16(1947);
emit_16(1880);
emit_16(1947);
emit_16(1881);
emit_16(1948);
emit_16(1882);
emit_16(1948);
emit_16(1881);
emit_16(1948);
emit_16(1882);
emit_16(1949);
emit_16(1883);
emit_16(1949);
emit_16(1882);
emit_16(1949);
emit_16(1883);
emit_16(1950);
emit_16(1884);
emit_16(1950);
emit_16(1883);
emit_16(1950);
emit_16(1884);
emit_16(1951);
emit_16(1885);
emit_16(1951);
emit_16(1884);
emit_16(1951);
emit_16(1885);
emit_16(1952);
emit_16(1886);
emit_16(1952);
emit_16(1885);
emit_16(1952);
emit_16(1886);
emit_16(1953);
emit_16(1887);
emit_16(1953);
emit_16(1886);
emit_16(1953);
emit_16(1887);
emit_16(1954);
emit_16(1888);
emit_16(1954);
emit_16(1887);
emit_16(1954);
emit_16(1888);
emit_16(1955);
emit_16(1889);
emit_16(1955);
emit_16(1888);
emit_16(1955);
emit_16(1889);
emit_16(1956);
emit_16(1890);
emit_16(1956);
emit_16(1889);
emit_16(1956);
emit_16(1890);
emit_16(1957);
emit_16(1891);
emit_16(1957);
emit_16(1890);
emit_16(1957);
emit_16(1891);
emit_16(1958);
emit_16(1892);
emit_16(1958);
emit_16(1891);
emit_16(1958);
emit_16(1892);
emit_16(1959);
emit_16(1893);
emit_16(1959);
emit_16(1892);
emit_16(1959);
emit_16(1893);
emit_16(1960);
emit_16(1894);
emit_16(1960);
emit_16(1893);
emit_16(1960);
emit_16(1894);
emit_16(1961);
emit_16(1895);
emit_16(1961);
emit_16(1894);
emit_16(1961);
emit_16(1895);
emit_16(1962);
emit_16(1896);
emit_16(1962);
emit_16(1895);
emit_16(1962);
emit_16(1896);
emit_16(1963);
emit_16(1897);
emit_16(1963);
emit_16(1896);
emit_16(1963);
emit_16(1897);
emit_16(1964);
emit_16(1898);
emit_16(1964);
emit_16(1897);
emit_16(1964);
emit_16(1898);
emit_16(1965);
emit_16(1899);
emit_16(1965);
emit_16(1898);
emit_16(1965);
emit_16(1899);
emit_16(1966);
emit_16(1900);
emit_16(1966);
emit_16(1899);
emit_16(1966);
emit_16(1900);
emit_16(1967);
emit_16(1901);
emit_16(1967);
emit_16(1900);
emit_16(1967);
emit_16(1901);
emit_16(1968);
emit_16(1902);
emit_16(1968);
emit_16(1901);
emit_16(1968);
emit_16(1902);
emit_16(1969);
emit_16(1903);
emit_16(1969);
emit_16(1902);
emit_16(1969);
emit_16(1903);
emit_16(1970);
emit_16(1904);
emit_16(1970);
emit_16(1903);
emit_16(1970);
emit_16(1904);
emit_16(1971);
emit_16(1905);
emit_16(1971);
emit_16(1904);
emit_16(1971);
emit_16(1905);
emit_16(1972);
emit_16(1906);
emit_16(1972);
emit_16(1905);
emit_16(1972);
emit_16(1906);
emit_16(1973);
emit_16(1907);
emit_16(1973);
emit_16(1906);
emit_16(1973);
emit_16(1907);
emit_16(1974);
emit_16(1908);
emit_16(1974);
emit_16(1907);
emit_16(1974);
emit_16(1908);
emit_16(1975);
emit_16(1909);
emit_16(1975);
emit_16(1908);
emit_16(1975);
emit_16(1909);
emit_16(1976);
emit_16(1910);
emit_16(1976);
emit_16(1909);
emit_16(1976);
emit_16(1910);
emit_16(1977);
emit_16(1911);
emit_16(1977);
emit_16(1910);
emit_16(1977);
emit_16(1911);
emit_16(1978);
emit_16(1912);
emit_16(1978);
emit_16(1911);
emit_16(1978);
emit_16(1912);
emit_16(1979);
emit_16(1913);
emit_16(1979);
emit_16(1912);
emit_start(Landscape03Idx)
emit_16(0);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(2);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(4);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(6);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(8);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(10);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(12);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(14);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(16);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(18);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(20);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(22);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(24);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(26);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(28);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(30);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(32);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(34);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(36);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(38);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(40);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(42);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(44);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(46);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(48);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(50);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(52);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(54);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(56);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(58);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(60);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(62);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(64);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(66);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(68);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(70);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(72);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(74);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(76);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(78);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(80);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(82);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(84);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(86);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(88);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(90);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(92);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(94);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(96);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(98);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(100);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(102);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(104);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(106);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(108);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(110);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(112);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(114);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(116);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(118);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(120);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(122);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(124);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(126);
emit_16(125);
emit_16(128);
emit_16(0);
emit_16(129);
emit_16(2);
emit_16(129);
emit_16(0);
emit_16(129);
emit_16(2);
emit_16(130);
emit_16(4);
emit_16(130);
emit_16(2);
emit_16(130);
emit_16(4);
emit_16(131);
emit_16(6);
emit_16(131);
emit_16(4);
emit_16(131);
emit_16(6);
emit_16(132);
emit_16(8);
emit_16(132);
emit_16(6);
emit_16(132);
emit_16(8);
emit_16(133);
emit_16(10);
emit_16(133);
emit_16(8);
emit_16(133);
emit_16(10);
emit_16(134);
emit_16(12);
emit_16(134);
emit_16(10);
emit_16(134);
emit_16(12);
emit_16(135);
emit_16(14);
emit_16(135);
emit_16(12);
emit_16(135);
emit_16(14);
emit_16(136);
emit_16(16);
emit_16(136);
emit_16(14);
emit_16(136);
emit_16(16);
emit_16(137);
emit_16(18);
emit_16(137);
emit_16(16);
emit_16(137);
emit_16(18);
emit_16(138);
emit_16(20);
emit_16(138);
emit_16(18);
emit_16(138);
emit_16(20);
emit_16(139);
emit_16(22);
emit_16(139);
emit_16(20);
emit_16(139);
emit_16(22);
emit_16(140);
emit_16(24);
emit_16(140);
emit_16(22);
emit_16(140);
emit_16(24);
emit_16(141);
emit_16(26);
emit_16(141);
emit_16(24);
emit_16(141);
emit_16(26);
emit_16(142);
emit_16(28);
emit_16(142);
emit_16(26);
emit_16(142);
emit_16(28);
emit_16(143);
emit_16(30);
emit_16(143);
emit_16(28);
emit_16(143);
emit_16(30);
emit_16(144);
emit_16(32);
emit_16(144);
emit_16(30);
emit_16(144);
emit_16(32);
emit_16(145);
emit_16(34);
emit_16(145);
emit_16(32);
emit_16(145);
emit_16(34);
emit_16(146);
emit_16(36);
emit_16(146);
emit_16(34);
emit_16(146);
emit_16(36);
emit_16(147);
emit_16(38);
emit_16(147);
emit_16(36);
emit_16(147);
emit_16(38);
emit_16(148);
emit_16(40);
emit_16(148);
emit_16(38);
emit_16(148);
emit_16(40);
emit_16(149);
emit_16(42);
emit_16(149);
emit_16(40);
emit_16(149);
emit_16(42);
emit_16(150);
emit_16(44);
emit_16(150);
emit_16(42);
emit_16(150);
emit_16(44);
emit_16(151);
emit_16(46);
emit_16(151);
emit_16(44);
emit_16(151);
emit_16(46);
emit_16(152);
emit_16(48);
emit_16(152);
emit_16(46);
emit_16(152);
emit_16(48);
emit_16(153);
emit_16(50);
emit_16(153);
emit_16(48);
emit_16(153);
emit_16(50);
emit_16(154);
emit_16(52);
emit_16(154);
emit_16(50);
emit_16(154);
emit_16(52);
emit_16(155);
emit_16(54);
emit_16(155);
emit_16(52);
emit_16(155);
emit_16(54);
emit_16(156);
emit_16(56);
emit_16(156);
emit_16(54);
emit_16(156);
emit_16(56);
emit_16(157);
emit_16(58);
emit_16(157);
emit_16(56);
emit_16(157);
emit_16(58);
emit_16(158);
emit_16(60);
emit_16(158);
emit_16(58);
emit_16(158);
emit_16(60);
emit_16(159);
emit_16(62);
emit_16(159);
emit_16(60);
emit_16(159);
emit_16(62);
emit_16(160);
emit_16(64);
emit_16(160);
emit_16(62);
emit_16(160);
emit_16(64);
emit_16(161);
emit_16(66);
emit_16(161);
emit_16(64);
emit_16(161);
emit_16(66);
emit_16(162);
emit_16(68);
emit_16(162);
emit_16(66);
emit_16(162);
emit_16(68);
emit_16(163);
emit_16(70);
emit_16(163);
emit_16(68);
emit_16(163);
emit_16(70);
emit_16(164);
emit_16(72);
emit_16(164);
emit_16(70);
emit_16(164);
emit_16(72);
emit_16(165);
emit_16(74);
emit_16(165);
emit_16(72);
emit_16(165);
emit_16(74);
emit_16(166);
emit_16(76);
emit_16(166);
emit_16(74);
emit_16(166);
emit_16(76);
emit_16(167);
emit_16(78);
emit_16(167);
emit_16(76);
emit_16(167);
emit_16(78);
emit_16(168);
emit_16(80);
emit_16(168);
emit_16(78);
emit_16(168);
emit_16(80);
emit_16(169);
emit_16(82);
emit_16(169);
emit_16(80);
emit_16(169);
emit_16(82);
emit_16(170);
emit_16(84);
emit_16(170);
emit_16(82);
emit_16(170);
emit_16(84);
emit_16(171);
emit_16(86);
emit_16(171);
emit_16(84);
emit_16(171);
emit_16(86);
emit_16(172);
emit_16(88);
emit_16(172);
emit_16(86);
emit_16(172);
emit_16(88);
emit_16(173);
emit_16(90);
emit_16(173);
emit_16(88);
emit_16(173);
emit_16(90);
emit_16(174);
emit_16(92);
emit_16(174);
emit_16(90);
emit_16(174);
emit_16(92);
emit_16(175);
emit_16(94);
emit_16(175);
emit_16(92);
emit_16(175);
emit_16(94);
emit_16(176);
emit_16(96);
emit_16(176);
emit_16(94);
emit_16(176);
emit_16(96);
emit_16(177);
emit_16(98);
emit_16(177);
emit_16(96);
emit_16(177);
emit_16(98);
emit_16(178);
emit_16(100);
emit_16(178);
emit_16(98);
emit_16(178);
emit_16(100);
emit_16(179);
emit_16(102);
emit_16(179);
emit_16(100);
emit_16(179);
emit_16(102);
emit_16(180);
emit_16(104);
emit_16(180);
emit_16(102);
emit_16(180);
emit_16(104);
emit_16(181);
emit_16(106);
emit_16(181);
emit_16(104);
emit_16(181);
emit_16(106);
emit_16(182);
emit_16(108);
emit_16(182);
emit_16(106);
emit_16(182);
emit_16(108);
emit_16(183);
emit_16(110);
emit_16(183);
emit_16(108);
emit_16(183);
emit_16(110);
emit_16(184);
emit_16(112);
emit_16(184);
emit_16(110);
emit_16(184);
emit_16(112);
emit_16(185);
emit_16(114);
emit_16(185);
emit_16(112);
emit_16(185);
emit_16(114);
emit_16(186);
emit_16(116);
emit_16(186);
emit_16(114);
emit_16(186);
emit_16(116);
emit_16(187);
emit_16(118);
emit_16(187);
emit_16(116);
emit_16(187);
emit_16(118);
emit_16(188);
emit_16(120);
emit_16(188);
emit_16(118);
emit_16(188);
emit_16(120);
emit_16(189);
emit_16(122);
emit_16(189);
emit_16(120);
emit_16(189);
emit_16(122);
emit_16(190);
emit_16(124);
emit_16(190);
emit_16(122);
emit_16(190);
emit_16(124);
emit_16(191);
emit_16(126);
emit_16(191);
emit_16(124);
emit_16(192);
emit_16(128);
emit_16(193);
emit_16(129);
emit_16(193);
emit_16(128);
emit_16(193);
emit_16(129);
emit_16(194);
emit_16(130);
emit_16(194);
emit_16(129);
emit_16(194);
emit_16(130);
emit_16(195);
emit_16(131);
emit_16(195);
emit_16(130);
emit_16(195);
emit_16(131);
emit_16(196);
emit_16(132);
emit_16(196);
emit_16(131);
emit_16(196);
emit_16(132);
emit_16(197);
emit_16(133);
emit_16(197);
emit_16(132);
emit_16(197);
emit_16(133);
emit_16(198);
emit_16(134);
emit_16(198);
emit_16(133);
emit_16(198);
emit_16(134);
emit_16(199);
emit_16(135);
emit_16(199);
emit_16(134);
emit_16(199);
emit_16(135);
emit_16(200);
emit_16(136);
emit_16(200);
emit_16(135);
emit_16(200);
emit_16(136);
emit_16(201);
emit_16(137);
emit_16(201);
emit_16(136);
emit_16(201);
emit_16(137);
emit_16(202);
emit_16(138);
emit_16(202);
emit_16(137);
emit_16(202);
emit_16(138);
emit_16(203);
emit_16(139);
emit_16(203);
emit_16(138);
emit_16(203);
emit_16(139);
emit_16(204);
emit_16(140);
emit_16(204);
emit_16(139);
emit_16(204);
emit_16(140);
emit_16(205);
emit_16(141);
emit_16(205);
emit_16(140);
emit_16(205);
emit_16(141);
emit_16(206);
emit_16(142);
emit_16(206);
emit_16(141);
emit_16(206);
emit_16(142);
emit_16(207);
emit_16(143);
emit_16(207);
emit_16(142);
emit_16(207);
emit_16(143);
emit_16(208);
emit_16(144);
emit_16(208);
emit_16(143);
emit_16(208);
emit_16(144);
emit_16(209);
emit_16(145);
emit_16(209);
emit_16(144);
emit_16(209);
emit_16(145);
emit_16(210);
emit_16(146);
emit_16(210);
emit_16(145);
emit_16(210);
emit_16(146);
emit_16(211);
emit_16(147);
emit_16(211);
emit_16(146);
emit_16(211);
emit_16(147);
emit_16(212);
emit_16(148);
emit_16(212);
emit_16(147);
emit_16(212);
emit_16(148);
emit_16(213);
emit_16(149);
emit_16(213);
emit_16(148);
emit_16(213);
emit_16(149);
emit_16(214);
emit_16(150);
emit_16(214);
emit_16(149);
emit_16(214);
emit_16(150);
emit_16(215);
emit_16(151);
emit_16(215);
emit_16(150);
emit_16(215);
emit_16(151);
emit_16(216);
emit_16(152);
emit_16(216);
emit_16(151);
emit_16(216);
emit_16(152);
emit_16(217);
emit_16(153);
emit_16(217);
emit_16(152);
emit_16(217);
emit_16(153);
emit_16(218);
emit_16(154);
emit_16(218);
emit_16(153);
emit_16(218);
emit_16(154);
emit_16(219);
emit_16(155);
emit_16(219);
emit_16(154);
emit_16(219);
emit_16(155);
emit_16(220);
emit_16(156);
emit_16(220);
emit_16(155);
emit_16(220);
emit_16(156);
emit_16(221);
emit_16(157);
emit_16(221);
emit_16(156);
emit_16(221);
emit_16(157);
emit_16(222);
emit_16(158);
emit_16(222);
emit_16(157);
emit_16(222);
emit_16(158);
emit_16(223);
emit_16(159);
emit_16(223);
emit_16(158);
emit_16(223);
emit_16(159);
emit_16(224);
emit_16(160);
emit_16(224);
emit_16(159);
emit_16(224);
emit_16(160);
emit_16(225);
emit_16(161);
emit_16(225);
emit_16(160);
emit_16(225);
emit_16(161);
emit_16(226);
emit_16(162);
emit_16(226);
emit_16(161);
emit_16(226);
emit_16(162);
emit_16(227);
emit_16(163);
emit_16(227);
emit_16(162);
emit_16(227);
emit_16(163);
emit_16(228);
emit_16(164);
emit_16(228);
emit_16(163);
emit_16(228);
emit_16(164);
emit_16(229);
emit_16(165);
emit_16(229);
emit_16(164);
emit_16(229);
emit_16(165);
emit_16(230);
emit_16(166);
emit_16(230);
emit_16(165);
emit_16(230);
emit_16(166);
emit_16(231);
emit_16(167);
emit_16(231);
emit_16(166);
emit_16(231);
emit_16(167);
emit_16(232);
emit_16(168);
emit_16(232);
emit_16(167);
emit_16(232);
emit_16(168);
emit_16(233);
emit_16(169);
emit_16(233);
emit_16(168);
emit_16(233);
emit_16(169);
emit_16(234);
emit_16(170);
emit_16(234);
emit_16(169);
emit_16(234);
emit_16(170);
emit_16(235);
emit_16(171);
emit_16(235);
emit_16(170);
emit_16(235);
emit_16(171);
emit_16(236);
emit_16(172);
emit_16(236);
emit_16(171);
emit_16(236);
emit_16(172);
emit_16(237);
emit_16(173);
emit_16(237);
emit_16(172);
emit_16(237);
emit_16(173);
emit_16(238);
emit_16(174);
emit_16(238);
emit_16(173);
emit_16(238);
emit_16(174);
emit_16(239);
emit_16(175);
emit_16(239);
emit_16(174);
emit_16(239);
emit_16(175);
emit_16(240);
emit_16(176);
emit_16(240);
emit_16(175);
emit_16(240);
emit_16(176);
emit_16(241);
emit_16(177);
emit_16(241);
emit_16(176);
emit_16(241);
emit_16(177);
emit_16(242);
emit_16(178);
emit_16(242);
emit_16(177);
emit_16(242);
emit_16(178);
emit_16(243);
emit_16(179);
emit_16(243);
emit_16(178);
emit_16(243);
emit_16(179);
emit_16(244);
emit_16(180);
emit_16(244);
emit_16(179);
emit_16(244);
emit_16(180);
emit_16(245);
emit_16(181);
emit_16(245);
emit_16(180);
emit_16(245);
emit_16(181);
emit_16(246);
emit_16(182);
emit_16(246);
emit_16(181);
emit_16(246);
emit_16(182);
emit_16(247);
emit_16(183);
emit_16(247);
emit_16(182);
emit_16(247);
emit_16(183);
emit_16(248);
emit_16(184);
emit_16(248);
emit_16(183);
emit_16(248);
emit_16(184);
emit_16(249);
emit_16(185);
emit_16(249);
emit_16(184);
emit_16(249);
emit_16(185);
emit_16(250);
emit_16(186);
emit_16(250);
emit_16(185);
emit_16(250);
emit_16(186);
emit_16(251);
emit_16(187);
emit_16(251);
emit_16(186);
emit_16(251);
emit_16(187);
emit_16(252);
emit_16(188);
emit_16(252);
emit_16(187);
emit_16(252);
emit_16(188);
emit_16(253);
emit_16(189);
emit_16(253);
emit_16(188);
emit_16(253);
emit_16(189);
emit_16(254);
emit_16(190);
emit_16(254);
emit_16(189);
emit_16(254);
emit_16(190);
emit_16(255);
emit_16(191);
emit_16(255);
emit_16(190);
emit_16(256);
emit_16(192);
emit_16(257);
emit_16(193);
emit_16(257);
emit_16(192);
emit_16(257);
emit_16(193);
emit_16(258);
emit_16(194);
emit_16(258);
emit_16(193);
emit_16(258);
emit_16(194);
emit_16(259);
emit_16(195);
emit_16(259);
emit_16(194);
emit_16(259);
emit_16(195);
emit_16(260);
emit_16(196);
emit_16(260);
emit_16(195);
emit_16(260);
emit_16(196);
emit_16(261);
emit_16(197);
emit_16(261);
emit_16(196);
emit_16(261);
emit_16(197);
emit_16(262);
emit_16(198);
emit_16(262);
emit_16(197);
emit_16(262);
emit_16(198);
emit_16(263);
emit_16(199);
emit_16(263);
emit_16(198);
emit_16(263);
emit_16(199);
emit_16(264);
emit_16(200);
emit_16(264);
emit_16(199);
emit_16(264);
emit_16(200);
emit_16(265);
emit_16(201);
emit_16(265);
emit_16(200);
emit_16(265);
emit_16(201);
emit_16(266);
emit_16(202);
emit_16(266);
emit_16(201);
emit_16(266);
emit_16(202);
emit_16(267);
emit_16(203);
emit_16(267);
emit_16(202);
emit_16(267);
emit_16(203);
emit_16(268);
emit_16(204);
emit_16(268);
emit_16(203);
emit_16(268);
emit_16(204);
emit_16(269);
emit_16(205);
emit_16(269);
emit_16(204);
emit_16(269);
emit_16(205);
emit_16(270);
emit_16(206);
emit_16(270);
emit_16(205);
emit_16(270);
emit_16(206);
emit_16(271);
emit_16(207);
emit_16(271);
emit_16(206);
emit_16(271);
emit_16(207);
emit_16(272);
emit_16(208);
emit_16(272);
emit_16(207);
emit_16(272);
emit_16(208);
emit_16(273);
emit_16(209);
emit_16(273);
emit_16(208);
emit_16(273);
emit_16(209);
emit_16(274);
emit_16(210);
emit_16(274);
emit_16(209);
emit_16(274);
emit_16(210);
emit_16(275);
emit_16(211);
emit_16(275);
emit_16(210);
emit_16(275);
emit_16(211);
emit_16(276);
emit_16(212);
emit_16(276);
emit_16(211);
emit_16(276);
emit_16(212);
emit_16(277);
emit_16(213);
emit_16(277);
emit_16(212);
emit_16(277);
emit_16(213);
emit_16(278);
emit_16(214);
emit_16(278);
emit_16(213);
emit_16(278);
emit_16(214);
emit_16(279);
emit_16(215);
emit_16(279);
emit_16(214);
emit_16(279);
emit_16(215);
emit_16(280);
emit_16(216);
emit_16(280);
emit_16(215);
emit_16(280);
emit_16(216);
emit_16(281);
emit_16(217);
emit_16(281);
emit_16(216);
emit_16(281);
emit_16(217);
emit_16(282);
emit_16(218);
emit_16(282);
emit_16(217);
emit_16(282);
emit_16(218);
emit_16(283);
emit_16(219);
emit_16(283);
emit_16(218);
emit_16(283);
emit_16(219);
emit_16(284);
emit_16(220);
emit_16(284);
emit_16(219);
emit_16(284);
emit_16(220);
emit_16(285);
emit_16(221);
emit_16(285);
emit_16(220);
emit_16(285);
emit_16(221);
emit_16(286);
emit_16(222);
emit_16(286);
emit_16(221);
emit_16(286);
emit_16(222);
emit_16(287);
emit_16(223);
emit_16(287);
emit_16(222);
emit_16(287);
emit_16(223);
emit_16(288);
emit_16(224);
emit_16(288);
emit_16(223);
emit_16(288);
emit_16(224);
emit_16(289);
emit_16(225);
emit_16(289);
emit_16(224);
emit_16(289);
emit_16(225);
emit_16(290);
emit_16(226);
emit_16(290);
emit_16(225);
emit_16(290);
emit_16(226);
emit_16(291);
emit_16(227);
emit_16(291);
emit_16(226);
emit_16(291);
emit_16(227);
emit_16(292);
emit_16(228);
emit_16(292);
emit_16(227);
emit_16(292);
emit_16(228);
emit_16(293);
emit_16(229);
emit_16(293);
emit_16(228);
emit_16(293);
emit_16(229);
emit_16(294);
emit_16(230);
emit_16(294);
emit_16(229);
emit_16(294);
emit_16(230);
emit_16(295);
emit_16(231);
emit_16(295);
emit_16(230);
emit_16(295);
emit_16(231);
emit_16(296);
emit_16(232);
emit_16(296);
emit_16(231);
emit_16(296);
emit_16(232);
emit_16(297);
emit_16(233);
emit_16(297);
emit_16(232);
emit_16(297);
emit_16(233);
emit_16(298);
emit_16(234);
emit_16(298);
emit_16(233);
emit_16(298);
emit_16(234);
emit_16(299);
emit_16(235);
emit_16(299);
emit_16(234);
emit_16(299);
emit_16(235);
emit_16(300);
emit_16(236);
emit_16(300);
emit_16(235);
emit_16(300);
emit_16(236);
emit_16(301);
emit_16(237);
emit_16(301);
emit_16(236);
emit_16(301);
emit_16(237);
emit_16(302);
emit_16(238);
emit_16(302);
emit_16(237);
emit_16(302);
emit_16(238);
emit_16(303);
emit_16(239);
emit_16(303);
emit_16(238);
emit_16(303);
emit_16(239);
emit_16(304);
emit_16(240);
emit_16(304);
emit_16(239);
emit_16(304);
emit_16(240);
emit_16(305);
emit_16(241);
emit_16(305);
emit_16(240);
emit_16(305);
emit_16(241);
emit_16(306);
emit_16(242);
emit_16(306);
emit_16(241);
emit_16(306);
emit_16(242);
emit_16(307);
emit_16(243);
emit_16(307);
emit_16(242);
emit_16(307);
emit_16(243);
emit_16(308);
emit_16(244);
emit_16(308);
emit_16(243);
emit_16(308);
emit_16(244);
emit_16(309);
emit_16(245);
emit_16(309);
emit_16(244);
emit_16(309);
emit_16(245);
emit_16(310);
emit_16(246);
emit_16(310);
emit_16(245);
emit_16(310);
emit_16(246);
emit_16(311);
emit_16(247);
emit_16(311);
emit_16(246);
emit_16(311);
emit_16(247);
emit_16(312);
emit_16(248);
emit_16(312);
emit_16(247);
emit_16(312);
emit_16(248);
emit_16(313);
emit_16(249);
emit_16(313);
emit_16(248);
emit_16(313);
emit_16(249);
emit_16(314);
emit_16(250);
emit_16(314);
emit_16(249);
emit_16(314);
emit_16(250);
emit_16(315);
emit_16(251);
emit_16(315);
emit_16(250);
emit_16(315);
emit_16(251);
emit_16(316);
emit_16(252);
emit_16(316);
emit_16(251);
emit_16(316);
emit_16(252);
emit_16(317);
emit_16(253);
emit_16(317);
emit_16(252);
emit_16(317);
emit_16(253);
emit_16(318);
emit_16(254);
emit_16(318);
emit_16(253);
emit_16(318);
emit_16(254);
emit_16(319);
emit_16(255);
emit_16(319);
emit_16(254);
emit_16(320);
emit_16(256);
emit_16(321);
emit_16(257);
emit_16(321);
emit_16(256);
emit_16(321);
emit_16(257);
emit_16(322);
emit_16(258);
emit_16(322);
emit_16(257);
emit_16(322);
emit_16(258);
emit_16(323);
emit_16(259);
emit_16(323);
emit_16(258);
emit_16(323);
emit_16(259);
emit_16(324);
emit_16(260);
emit_16(324);
emit_16(259);
emit_16(324);
emit_16(260);
emit_16(325);
emit_16(261);
emit_16(325);
emit_16(260);
emit_16(325);
emit_16(261);
emit_16(326);
emit_16(262);
emit_16(326);
emit_16(261);
emit_16(326);
emit_16(262);
emit_16(327);
emit_16(263);
emit_16(327);
emit_16(262);
emit_16(327);
emit_16(263);
emit_16(328);
emit_16(264);
emit_16(328);
emit_16(263);
emit_16(328);
emit_16(264);
emit_16(329);
emit_16(265);
emit_16(329);
emit_16(264);
emit_16(329);
emit_16(265);
emit_16(330);
emit_16(266);
emit_16(330);
emit_16(265);
emit_16(330);
emit_16(266);
emit_16(331);
emit_16(267);
emit_16(331);
emit_16(266);
emit_16(331);
emit_16(267);
emit_16(332);
emit_16(268);
emit_16(332);
emit_16(267);
emit_16(332);
emit_16(268);
emit_16(333);
emit_16(269);
emit_16(333);
emit_16(268);
emit_16(333);
emit_16(269);
emit_16(334);
emit_16(270);
emit_16(334);
emit_16(269);
emit_16(334);
emit_16(270);
emit_16(335);
emit_16(271);
emit_16(335);
emit_16(270);
emit_16(335);
emit_16(271);
emit_16(336);
emit_16(272);
emit_16(336);
emit_16(271);
emit_16(336);
emit_16(272);
emit_16(337);
emit_16(273);
emit_16(337);
emit_16(272);
emit_16(337);
emit_16(273);
emit_16(338);
emit_16(274);
emit_16(338);
emit_16(273);
emit_16(338);
emit_16(274);
emit_16(339);
emit_16(275);
emit_16(339);
emit_16(274);
emit_16(339);
emit_16(275);
emit_16(340);
emit_16(276);
emit_16(340);
emit_16(275);
emit_16(340);
emit_16(276);
emit_16(341);
emit_16(277);
emit_16(341);
emit_16(276);
emit_16(341);
emit_16(277);
emit_16(342);
emit_16(278);
emit_16(342);
emit_16(277);
emit_16(342);
emit_16(278);
emit_16(343);
emit_16(279);
emit_16(343);
emit_16(278);
emit_16(343);
emit_16(279);
emit_16(344);
emit_16(280);
emit_16(344);
emit_16(279);
emit_16(344);
emit_16(280);
emit_16(345);
emit_16(281);
emit_16(345);
emit_16(280);
emit_16(345);
emit_16(281);
emit_16(346);
emit_16(282);
emit_16(346);
emit_16(281);
emit_16(346);
emit_16(282);
emit_16(347);
emit_16(283);
emit_16(347);
emit_16(282);
emit_16(347);
emit_16(283);
emit_16(348);
emit_16(284);
emit_16(348);
emit_16(283);
emit_16(348);
emit_16(284);
emit_16(349);
emit_16(285);
emit_16(349);
emit_16(284);
emit_16(349);
emit_16(285);
emit_16(350);
emit_16(286);
emit_16(350);
emit_16(285);
emit_16(350);
emit_16(286);
emit_16(351);
emit_16(287);
emit_16(351);
emit_16(286);
emit_16(351);
emit_16(287);
emit_16(352);
emit_16(288);
emit_16(352);
emit_16(287);
emit_16(352);
emit_16(288);
emit_16(353);
emit_16(289);
emit_16(353);
emit_16(288);
emit_16(353);
emit_16(289);
emit_16(354);
emit_16(290);
emit_16(354);
emit_16(289);
emit_16(354);
emit_16(290);
emit_16(355);
emit_16(291);
emit_16(355);
emit_16(290);
emit_16(355);
emit_16(291);
emit_16(356);
emit_16(292);
emit_16(356);
emit_16(291);
emit_16(356);
emit_16(292);
emit_16(357);
emit_16(293);
emit_16(357);
emit_16(292);
emit_16(357);
emit_16(293);
emit_16(358);
emit_16(294);
emit_16(358);
emit_16(293);
emit_16(358);
emit_16(294);
emit_16(359);
emit_16(295);
emit_16(359);
emit_16(294);
emit_16(359);
emit_16(295);
emit_16(360);
emit_16(296);
emit_16(360);
emit_16(295);
emit_16(360);
emit_16(296);
emit_16(361);
emit_16(297);
emit_16(361);
emit_16(296);
emit_16(361);
emit_16(297);
emit_16(362);
emit_16(298);
emit_16(362);
emit_16(297);
emit_16(362);
emit_16(298);
emit_16(363);
emit_16(299);
emit_16(363);
emit_16(298);
emit_16(363);
emit_16(299);
emit_16(364);
emit_16(300);
emit_16(364);
emit_16(299);
emit_16(364);
emit_16(300);
emit_16(365);
emit_16(301);
emit_16(365);
emit_16(300);
emit_16(365);
emit_16(301);
emit_16(366);
emit_16(302);
emit_16(366);
emit_16(301);
emit_16(366);
emit_16(302);
emit_16(367);
emit_16(303);
emit_16(367);
emit_16(302);
emit_16(367);
emit_16(303);
emit_16(368);
emit_16(304);
emit_16(368);
emit_16(303);
emit_16(368);
emit_16(304);
emit_16(369);
emit_16(305);
emit_16(369);
emit_16(304);
emit_16(369);
emit_16(305);
emit_16(370);
emit_16(306);
emit_16(370);
emit_16(305);
emit_16(370);
emit_16(306);
emit_16(371);
emit_16(307);
emit_16(371);
emit_16(306);
emit_16(371);
emit_16(307);
emit_16(372);
emit_16(308);
emit_16(372);
emit_16(307);
emit_16(372);
emit_16(308);
emit_16(373);
emit_16(309);
emit_16(373);
emit_16(308);
emit_16(373);
emit_16(309);
emit_16(374);
emit_16(310);
emit_16(374);
emit_16(309);
emit_16(374);
emit_16(310);
emit_16(375);
emit_16(311);
emit_16(375);
emit_16(310);
emit_16(375);
emit_16(311);
emit_16(376);
emit_16(312);
emit_16(376);
emit_16(311);
emit_16(376);
emit_16(312);
emit_16(377);
emit_16(313);
emit_16(377);
emit_16(312);
emit_16(377);
emit_16(313);
emit_16(378);
emit_16(314);
emit_16(378);
emit_16(313);
emit_16(378);
emit_16(314);
emit_16(379);
emit_16(315);
emit_16(379);
emit_16(314);
emit_16(379);
emit_16(315);
emit_16(380);
emit_16(316);
emit_16(380);
emit_16(315);
emit_16(380);
emit_16(316);
emit_16(381);
emit_16(317);
emit_16(381);
emit_16(316);
emit_16(381);
emit_16(317);
emit_16(382);
emit_16(318);
emit_16(382);
emit_16(317);
emit_16(382);
emit_16(318);
emit_16(383);
emit_16(319);
emit_16(383);
emit_16(318);
emit_16(384);
emit_16(320);
emit_16(385);
emit_16(321);
emit_16(385);
emit_16(320);
emit_16(385);
emit_16(321);
emit_16(386);
emit_16(322);
emit_16(386);
emit_16(321);
emit_16(386);
emit_16(322);
emit_16(387);
emit_16(323);
emit_16(387);
emit_16(322);
emit_16(387);
emit_16(323);
emit_16(388);
emit_16(324);
emit_16(388);
emit_16(323);
emit_16(388);
emit_16(324);
emit_16(389);
emit_16(325);
emit_16(389);
emit_16(324);
emit_16(389);
emit_16(325);
emit_16(390);
emit_16(326);
emit_16(390);
emit_16(325);
emit_16(390);
emit_16(326);
emit_16(391);
emit_16(327);
emit_16(391);
emit_16(326);
emit_16(391);
emit_16(327);
emit_16(392);
emit_16(328);
emit_16(392);
emit_16(327);
emit_16(392);
emit_16(328);
emit_16(393);
emit_16(329);
emit_16(393);
emit_16(328);
emit_16(393);
emit_16(329);
emit_16(394);
emit_16(330);
emit_16(394);
emit_16(329);
emit_16(394);
emit_16(330);
emit_16(395);
emit_16(331);
emit_16(395);
emit_16(330);
emit_16(395);
emit_16(331);
emit_16(396);
emit_16(332);
emit_16(396);
emit_16(331);
emit_16(396);
emit_16(332);
emit_16(397);
emit_16(333);
emit_16(397);
emit_16(332);
emit_16(397);
emit_16(333);
emit_16(398);
emit_16(334);
emit_16(398);
emit_16(333);
emit_16(398);
emit_16(334);
emit_16(399);
emit_16(335);
emit_16(399);
emit_16(334);
emit_16(399);
emit_16(335);
emit_16(400);
emit_16(336);
emit_16(400);
emit_16(335);
emit_16(400);
emit_16(336);
emit_16(401);
emit_16(337);
emit_16(401);
emit_16(336);
emit_16(401);
emit_16(337);
emit_16(402);
emit_16(338);
emit_16(402);
emit_16(337);
emit_16(402);
emit_16(338);
emit_16(403);
emit_16(339);
emit_16(403);
emit_16(338);
emit_16(403);
emit_16(339);
emit_16(404);
emit_16(340);
emit_16(404);
emit_16(339);
emit_16(404);
emit_16(340);
emit_16(405);
emit_16(341);
emit_16(405);
emit_16(340);
emit_16(405);
emit_16(341);
emit_16(406);
emit_16(342);
emit_16(406);
emit_16(341);
emit_16(406);
emit_16(342);
emit_16(407);
emit_16(343);
emit_16(407);
emit_16(342);
emit_16(407);
emit_16(343);
emit_16(408);
emit_16(344);
emit_16(408);
emit_16(343);
emit_16(408);
emit_16(344);
emit_16(409);
emit_16(345);
emit_16(409);
emit_16(344);
emit_16(409);
emit_16(345);
emit_16(410);
emit_16(346);
emit_16(410);
emit_16(345);
emit_16(410);
emit_16(346);
emit_16(411);
emit_16(347);
emit_16(411);
emit_16(346);
emit_16(411);
emit_16(347);
emit_16(412);
emit_16(348);
emit_16(412);
emit_16(347);
emit_16(412);
emit_16(348);
emit_16(413);
emit_16(349);
emit_16(413);
emit_16(348);
emit_16(413);
emit_16(349);
emit_16(414);
emit_16(350);
emit_16(414);
emit_16(349);
emit_16(414);
emit_16(350);
emit_16(415);
emit_16(351);
emit_16(415);
emit_16(350);
emit_16(415);
emit_16(351);
emit_16(416);
emit_16(352);
emit_16(416);
emit_16(351);
emit_16(416);
emit_16(352);
emit_16(417);
emit_16(353);
emit_16(417);
emit_16(352);
emit_16(417);
emit_16(353);
emit_16(418);
emit_16(354);
emit_16(418);
emit_16(353);
emit_16(418);
emit_16(354);
emit_16(419);
emit_16(355);
emit_16(419);
emit_16(354);
emit_16(419);
emit_16(355);
emit_16(420);
emit_16(356);
emit_16(420);
emit_16(355);
emit_16(420);
emit_16(356);
emit_16(421);
emit_16(357);
emit_16(421);
emit_16(356);
emit_16(421);
emit_16(357);
emit_16(422);
emit_16(358);
emit_16(422);
emit_16(357);
emit_16(422);
emit_16(358);
emit_16(423);
emit_16(359);
emit_16(423);
emit_16(358);
emit_16(423);
emit_16(359);
emit_16(424);
emit_16(360);
emit_16(424);
emit_16(359);
emit_16(424);
emit_16(360);
emit_16(425);
emit_16(361);
emit_16(425);
emit_16(360);
emit_16(425);
emit_16(361);
emit_16(426);
emit_16(362);
emit_16(426);
emit_16(361);
emit_16(426);
emit_16(362);
emit_16(427);
emit_16(363);
emit_16(427);
emit_16(362);
emit_16(427);
emit_16(363);
emit_16(428);
emit_16(364);
emit_16(428);
emit_16(363);
emit_16(428);
emit_16(364);
emit_16(429);
emit_16(365);
emit_16(429);
emit_16(364);
emit_16(429);
emit_16(365);
emit_16(430);
emit_16(366);
emit_16(430);
emit_16(365);
emit_16(430);
emit_16(366);
emit_16(431);
emit_16(367);
emit_16(431);
emit_16(366);
emit_16(431);
emit_16(367);
emit_16(432);
emit_16(368);
emit_16(432);
emit_16(367);
emit_16(432);
emit_16(368);
emit_16(433);
emit_16(369);
emit_16(433);
emit_16(368);
emit_16(433);
emit_16(369);
emit_16(434);
emit_16(370);
emit_16(434);
emit_16(369);
emit_16(434);
emit_16(370);
emit_16(435);
emit_16(371);
emit_16(435);
emit_16(370);
emit_16(435);
emit_16(371);
emit_16(436);
emit_16(372);
emit_16(436);
emit_16(371);
emit_16(436);
emit_16(372);
emit_16(437);
emit_16(373);
emit_16(437);
emit_16(372);
emit_16(437);
emit_16(373);
emit_16(438);
emit_16(374);
emit_16(438);
emit_16(373);
emit_16(438);
emit_16(374);
emit_16(439);
emit_16(375);
emit_16(439);
emit_16(374);
emit_16(439);
emit_16(375);
emit_16(440);
emit_16(376);
emit_16(440);
emit_16(375);
emit_16(440);
emit_16(376);
emit_16(441);
emit_16(377);
emit_16(441);
emit_16(376);
emit_16(441);
emit_16(377);
emit_16(442);
emit_16(378);
emit_16(442);
emit_16(377);
emit_16(442);
emit_16(378);
emit_16(443);
emit_16(379);
emit_16(443);
emit_16(378);
emit_16(443);
emit_16(379);
emit_16(444);
emit_16(380);
emit_16(444);
emit_16(379);
emit_16(444);
emit_16(380);
emit_16(445);
emit_16(381);
emit_16(445);
emit_16(380);
emit_16(445);
emit_16(381);
emit_16(446);
emit_16(382);
emit_16(446);
emit_16(381);
emit_16(446);
emit_16(382);
emit_16(447);
emit_16(383);
emit_16(447);
emit_16(382);
emit_16(448);
emit_16(384);
emit_16(449);
emit_16(385);
emit_16(449);
emit_16(384);
emit_16(449);
emit_16(385);
emit_16(450);
emit_16(386);
emit_16(450);
emit_16(385);
emit_16(450);
emit_16(386);
emit_16(451);
emit_16(387);
emit_16(451);
emit_16(386);
emit_16(451);
emit_16(387);
emit_16(452);
emit_16(388);
emit_16(452);
emit_16(387);
emit_16(452);
emit_16(388);
emit_16(453);
emit_16(389);
emit_16(453);
emit_16(388);
emit_16(453);
emit_16(389);
emit_16(454);
emit_16(390);
emit_16(454);
emit_16(389);
emit_16(454);
emit_16(390);
emit_16(455);
emit_16(391);
emit_16(455);
emit_16(390);
emit_16(455);
emit_16(391);
emit_16(456);
emit_16(392);
emit_16(456);
emit_16(391);
emit_16(456);
emit_16(392);
emit_16(457);
emit_16(393);
emit_16(457);
emit_16(392);
emit_16(457);
emit_16(393);
emit_16(458);
emit_16(394);
emit_16(458);
emit_16(393);
emit_16(458);
emit_16(394);
emit_16(459);
emit_16(395);
emit_16(459);
emit_16(394);
emit_16(459);
emit_16(395);
emit_16(460);
emit_16(396);
emit_16(460);
emit_16(395);
emit_16(460);
emit_16(396);
emit_16(461);
emit_16(397);
emit_16(461);
emit_16(396);
emit_16(461);
emit_16(397);
emit_16(462);
emit_16(398);
emit_16(462);
emit_16(397);
emit_16(462);
emit_16(398);
emit_16(463);
emit_16(399);
emit_16(463);
emit_16(398);
emit_16(463);
emit_16(399);
emit_16(464);
emit_16(400);
emit_16(464);
emit_16(399);
emit_16(464);
emit_16(400);
emit_16(465);
emit_16(401);
emit_16(465);
emit_16(400);
emit_16(465);
emit_16(401);
emit_16(466);
emit_16(402);
emit_16(466);
emit_16(401);
emit_16(466);
emit_16(402);
emit_16(467);
emit_16(403);
emit_16(467);
emit_16(402);
emit_16(467);
emit_16(403);
emit_16(468);
emit_16(404);
emit_16(468);
emit_16(403);
emit_16(468);
emit_16(404);
emit_16(469);
emit_16(405);
emit_16(469);
emit_16(404);
emit_16(469);
emit_16(405);
emit_16(470);
emit_16(406);
emit_16(470);
emit_16(405);
emit_16(470);
emit_16(406);
emit_16(471);
emit_16(407);
emit_16(471);
emit_16(406);
emit_16(471);
emit_16(407);
emit_16(472);
emit_16(408);
emit_16(472);
emit_16(407);
emit_16(472);
emit_16(408);
emit_16(473);
emit_16(409);
emit_16(473);
emit_16(408);
emit_16(473);
emit_16(409);
emit_16(474);
emit_16(410);
emit_16(474);
emit_16(409);
emit_16(474);
emit_16(410);
emit_16(475);
emit_16(411);
emit_16(475);
emit_16(410);
emit_16(475);
emit_16(411);
emit_16(476);
emit_16(412);
emit_16(476);
emit_16(411);
emit_16(476);
emit_16(412);
emit_16(477);
emit_16(413);
emit_16(477);
emit_16(412);
emit_16(477);
emit_16(413);
emit_16(478);
emit_16(414);
emit_16(478);
emit_16(413);
emit_16(478);
emit_16(414);
emit_16(479);
emit_16(415);
emit_16(479);
emit_16(414);
emit_16(479);
emit_16(415);
emit_16(480);
emit_16(416);
emit_16(480);
emit_16(415);
emit_16(480);
emit_16(416);
emit_16(481);
emit_16(417);
emit_16(481);
emit_16(416);
emit_16(481);
emit_16(417);
emit_16(482);
emit_16(418);
emit_16(482);
emit_16(417);
emit_16(482);
emit_16(418);
emit_16(483);
emit_16(419);
emit_16(483);
emit_16(418);
emit_16(483);
emit_16(419);
emit_16(484);
emit_16(420);
emit_16(484);
emit_16(419);
emit_16(484);
emit_16(420);
emit_16(485);
emit_16(421);
emit_16(485);
emit_16(420);
emit_16(485);
emit_16(421);
emit_16(486);
emit_16(422);
emit_16(486);
emit_16(421);
emit_16(486);
emit_16(422);
emit_16(487);
emit_16(423);
emit_16(487);
emit_16(422);
emit_16(487);
emit_16(423);
emit_16(488);
emit_16(424);
emit_16(488);
emit_16(423);
emit_16(488);
emit_16(424);
emit_16(489);
emit_16(425);
emit_16(489);
emit_16(424);
emit_16(489);
emit_16(425);
emit_16(490);
emit_16(426);
emit_16(490);
emit_16(425);
emit_16(490);
emit_16(426);
emit_16(491);
emit_16(427);
emit_16(491);
emit_16(426);
emit_16(491);
emit_16(427);
emit_16(492);
emit_16(428);
emit_16(492);
emit_16(427);
emit_16(492);
emit_16(428);
emit_16(493);
emit_16(429);
emit_16(493);
emit_16(428);
emit_16(493);
emit_16(429);
emit_16(494);
emit_16(430);
emit_16(494);
emit_16(429);
emit_16(494);
emit_16(430);
emit_16(495);
emit_16(431);
emit_16(495);
emit_16(430);
emit_16(495);
emit_16(431);
emit_16(496);
emit_16(432);
emit_16(496);
emit_16(431);
emit_16(496);
emit_16(432);
emit_16(497);
emit_16(433);
emit_16(497);
emit_16(432);
emit_16(497);
emit_16(433);
emit_16(498);
emit_16(434);
emit_16(498);
emit_16(433);
emit_16(498);
emit_16(434);
emit_16(499);
emit_16(435);
emit_16(499);
emit_16(434);
emit_16(499);
emit_16(435);
emit_16(500);
emit_16(436);
emit_16(500);
emit_16(435);
emit_16(500);
emit_16(436);
emit_16(501);
emit_16(437);
emit_16(501);
emit_16(436);
emit_16(501);
emit_16(437);
emit_16(502);
emit_16(438);
emit_16(502);
emit_16(437);
emit_16(502);
emit_16(438);
emit_16(503);
emit_16(439);
emit_16(503);
emit_16(438);
emit_16(503);
emit_16(439);
emit_16(504);
emit_16(440);
emit_16(504);
emit_16(439);
emit_16(504);
emit_16(440);
emit_16(505);
emit_16(441);
emit_16(505);
emit_16(440);
emit_16(505);
emit_16(441);
emit_16(506);
emit_16(442);
emit_16(506);
emit_16(441);
emit_16(506);
emit_16(442);
emit_16(507);
emit_16(443);
emit_16(507);
emit_16(442);
emit_16(507);
emit_16(443);
emit_16(508);
emit_16(444);
emit_16(508);
emit_16(443);
emit_16(508);
emit_16(444);
emit_16(509);
emit_16(445);
emit_16(509);
emit_16(444);
emit_16(509);
emit_16(445);
emit_16(510);
emit_16(446);
emit_16(510);
emit_16(445);
emit_16(510);
emit_16(446);
emit_16(511);
emit_16(447);
emit_16(511);
emit_16(446);
emit_16(512);
emit_16(448);
emit_16(513);
emit_16(449);
emit_16(513);
emit_16(448);
emit_16(513);
emit_16(449);
emit_16(514);
emit_16(450);
emit_16(514);
emit_16(449);
emit_16(514);
emit_16(450);
emit_16(515);
emit_16(451);
emit_16(515);
emit_16(450);
emit_16(515);
emit_16(451);
emit_16(516);
emit_16(452);
emit_16(516);
emit_16(451);
emit_16(516);
emit_16(452);
emit_16(517);
emit_16(453);
emit_16(517);
emit_16(452);
emit_16(517);
emit_16(453);
emit_16(518);
emit_16(454);
emit_16(518);
emit_16(453);
emit_16(518);
emit_16(454);
emit_16(519);
emit_16(455);
emit_16(519);
emit_16(454);
emit_16(519);
emit_16(455);
emit_16(520);
emit_16(456);
emit_16(520);
emit_16(455);
emit_16(520);
emit_16(456);
emit_16(521);
emit_16(457);
emit_16(521);
emit_16(456);
emit_16(521);
emit_16(457);
emit_16(522);
emit_16(458);
emit_16(522);
emit_16(457);
emit_16(522);
emit_16(458);
emit_16(523);
emit_16(459);
emit_16(523);
emit_16(458);
emit_16(523);
emit_16(459);
emit_16(524);
emit_16(460);
emit_16(524);
emit_16(459);
emit_16(524);
emit_16(460);
emit_16(525);
emit_16(461);
emit_16(525);
emit_16(460);
emit_16(525);
emit_16(461);
emit_16(526);
emit_16(462);
emit_16(526);
emit_16(461);
emit_16(526);
emit_16(462);
emit_16(527);
emit_16(463);
emit_16(527);
emit_16(462);
emit_16(527);
emit_16(463);
emit_16(528);
emit_16(464);
emit_16(528);
emit_16(463);
emit_16(528);
emit_16(464);
emit_16(529);
emit_16(465);
emit_16(529);
emit_16(464);
emit_16(529);
emit_16(465);
emit_16(530);
emit_16(466);
emit_16(530);
emit_16(465);
emit_16(530);
emit_16(466);
emit_16(531);
emit_16(467);
emit_16(531);
emit_16(466);
emit_16(531);
emit_16(467);
emit_16(532);
emit_16(468);
emit_16(532);
emit_16(467);
emit_16(532);
emit_16(468);
emit_16(533);
emit_16(469);
emit_16(533);
emit_16(468);
emit_16(533);
emit_16(469);
emit_16(534);
emit_16(470);
emit_16(534);
emit_16(469);
emit_16(534);
emit_16(470);
emit_16(535);
emit_16(471);
emit_16(535);
emit_16(470);
emit_16(535);
emit_16(471);
emit_16(536);
emit_16(472);
emit_16(536);
emit_16(471);
emit_16(536);
emit_16(472);
emit_16(537);
emit_16(473);
emit_16(537);
emit_16(472);
emit_16(537);
emit_16(473);
emit_16(538);
emit_16(474);
emit_16(538);
emit_16(473);
emit_16(538);
emit_16(474);
emit_16(539);
emit_16(475);
emit_16(539);
emit_16(474);
emit_16(539);
emit_16(475);
emit_16(540);
emit_16(476);
emit_16(540);
emit_16(475);
emit_16(540);
emit_16(476);
emit_16(541);
emit_16(477);
emit_16(541);
emit_16(476);
emit_16(541);
emit_16(477);
emit_16(542);
emit_16(478);
emit_16(542);
emit_16(477);
emit_16(542);
emit_16(478);
emit_16(543);
emit_16(479);
emit_16(543);
emit_16(478);
emit_16(543);
emit_16(479);
emit_16(544);
emit_16(480);
emit_16(544);
emit_16(479);
emit_16(544);
emit_16(480);
emit_16(545);
emit_16(481);
emit_16(545);
emit_16(480);
emit_16(545);
emit_16(481);
emit_16(546);
emit_16(482);
emit_16(546);
emit_16(481);
emit_16(546);
emit_16(482);
emit_16(547);
emit_16(483);
emit_16(547);
emit_16(482);
emit_16(547);
emit_16(483);
emit_16(548);
emit_16(484);
emit_16(548);
emit_16(483);
emit_16(548);
emit_16(484);
emit_16(549);
emit_16(485);
emit_16(549);
emit_16(484);
emit_16(549);
emit_16(485);
emit_16(550);
emit_16(486);
emit_16(550);
emit_16(485);
emit_16(550);
emit_16(486);
emit_16(551);
emit_16(487);
emit_16(551);
emit_16(486);
emit_16(551);
emit_16(487);
emit_16(552);
emit_16(488);
emit_16(552);
emit_16(487);
emit_16(552);
emit_16(488);
emit_16(553);
emit_16(489);
emit_16(553);
emit_16(488);
emit_16(553);
emit_16(489);
emit_16(554);
emit_16(490);
emit_16(554);
emit_16(489);
emit_16(554);
emit_16(490);
emit_16(555);
emit_16(491);
emit_16(555);
emit_16(490);
emit_16(555);
emit_16(491);
emit_16(556);
emit_16(492);
emit_16(556);
emit_16(491);
emit_16(556);
emit_16(492);
emit_16(557);
emit_16(493);
emit_16(557);
emit_16(492);
emit_16(557);
emit_16(493);
emit_16(558);
emit_16(494);
emit_16(558);
emit_16(493);
emit_16(558);
emit_16(494);
emit_16(559);
emit_16(495);
emit_16(559);
emit_16(494);
emit_16(559);
emit_16(495);
emit_16(560);
emit_16(496);
emit_16(560);
emit_16(495);
emit_16(560);
emit_16(496);
emit_16(561);
emit_16(497);
emit_16(561);
emit_16(496);
emit_16(561);
emit_16(497);
emit_16(562);
emit_16(498);
emit_16(562);
emit_16(497);
emit_16(562);
emit_16(498);
emit_16(563);
emit_16(499);
emit_16(563);
emit_16(498);
emit_16(563);
emit_16(499);
emit_16(564);
emit_16(500);
emit_16(564);
emit_16(499);
emit_16(564);
emit_16(500);
emit_16(565);
emit_16(501);
emit_16(565);
emit_16(500);
emit_16(565);
emit_16(501);
emit_16(566);
emit_16(502);
emit_16(566);
emit_16(501);
emit_16(566);
emit_16(502);
emit_16(567);
emit_16(503);
emit_16(567);
emit_16(502);
emit_16(567);
emit_16(503);
emit_16(568);
emit_16(504);
emit_16(568);
emit_16(503);
emit_16(568);
emit_16(504);
emit_16(569);
emit_16(505);
emit_16(569);
emit_16(504);
emit_16(569);
emit_16(505);
emit_16(570);
emit_16(506);
emit_16(570);
emit_16(505);
emit_16(570);
emit_16(506);
emit_16(571);
emit_16(507);
emit_16(571);
emit_16(506);
emit_16(571);
emit_16(507);
emit_16(572);
emit_16(508);
emit_16(572);
emit_16(507);
emit_16(572);
emit_16(508);
emit_16(573);
emit_16(509);
emit_16(573);
emit_16(508);
emit_16(573);
emit_16(509);
emit_16(574);
emit_16(510);
emit_16(574);
emit_16(509);
emit_16(574);
emit_16(510);
emit_16(575);
emit_16(511);
emit_16(575);
emit_16(510);
emit_16(576);
emit_16(512);
emit_16(577);
emit_16(513);
emit_16(577);
emit_16(512);
emit_16(577);
emit_16(513);
emit_16(578);
emit_16(514);
emit_16(578);
emit_16(513);
emit_16(578);
emit_16(514);
emit_16(579);
emit_16(515);
emit_16(579);
emit_16(514);
emit_16(579);
emit_16(515);
emit_16(580);
emit_16(516);
emit_16(580);
emit_16(515);
emit_16(580);
emit_16(516);
emit_16(581);
emit_16(517);
emit_16(581);
emit_16(516);
emit_16(581);
emit_16(517);
emit_16(582);
emit_16(518);
emit_16(582);
emit_16(517);
emit_16(582);
emit_16(518);
emit_16(583);
emit_16(519);
emit_16(583);
emit_16(518);
emit_16(583);
emit_16(519);
emit_16(584);
emit_16(520);
emit_16(584);
emit_16(519);
emit_16(584);
emit_16(520);
emit_16(585);
emit_16(521);
emit_16(585);
emit_16(520);
emit_16(585);
emit_16(521);
emit_16(586);
emit_16(522);
emit_16(586);
emit_16(521);
emit_16(586);
emit_16(522);
emit_16(587);
emit_16(523);
emit_16(587);
emit_16(522);
emit_16(587);
emit_16(523);
emit_16(588);
emit_16(524);
emit_16(588);
emit_16(523);
emit_16(588);
emit_16(524);
emit_16(589);
emit_16(525);
emit_16(589);
emit_16(524);
emit_16(589);
emit_16(525);
emit_16(590);
emit_16(526);
emit_16(590);
emit_16(525);
emit_16(590);
emit_16(526);
emit_16(591);
emit_16(527);
emit_16(591);
emit_16(526);
emit_16(591);
emit_16(527);
emit_16(592);
emit_16(528);
emit_16(592);
emit_16(527);
emit_16(592);
emit_16(528);
emit_16(593);
emit_16(529);
emit_16(593);
emit_16(528);
emit_16(593);
emit_16(529);
emit_16(594);
emit_16(530);
emit_16(594);
emit_16(529);
emit_16(594);
emit_16(530);
emit_16(595);
emit_16(531);
emit_16(595);
emit_16(530);
emit_16(595);
emit_16(531);
emit_16(596);
emit_16(532);
emit_16(596);
emit_16(531);
emit_16(596);
emit_16(532);
emit_16(597);
emit_16(533);
emit_16(597);
emit_16(532);
emit_16(597);
emit_16(533);
emit_16(598);
emit_16(534);
emit_16(598);
emit_16(533);
emit_16(598);
emit_16(534);
emit_16(599);
emit_16(535);
emit_16(599);
emit_16(534);
emit_16(599);
emit_16(535);
emit_16(600);
emit_16(536);
emit_16(600);
emit_16(535);
emit_16(600);
emit_16(536);
emit_16(601);
emit_16(537);
emit_16(601);
emit_16(536);
emit_16(601);
emit_16(537);
emit_16(602);
emit_16(538);
emit_16(602);
emit_16(537);
emit_16(602);
emit_16(538);
emit_16(603);
emit_16(539);
emit_16(603);
emit_16(538);
emit_16(603);
emit_16(539);
emit_16(604);
emit_16(540);
emit_16(604);
emit_16(539);
emit_16(604);
emit_16(540);
emit_16(605);
emit_16(541);
emit_16(605);
emit_16(540);
emit_16(605);
emit_16(541);
emit_16(606);
emit_16(542);
emit_16(606);
emit_16(541);
emit_16(606);
emit_16(542);
emit_16(607);
emit_16(543);
emit_16(607);
emit_16(542);
emit_16(607);
emit_16(543);
emit_16(608);
emit_16(544);
emit_16(608);
emit_16(543);
emit_16(608);
emit_16(544);
emit_16(609);
emit_16(545);
emit_16(609);
emit_16(544);
emit_16(609);
emit_16(545);
emit_16(610);
emit_16(546);
emit_16(610);
emit_16(545);
emit_16(610);
emit_16(546);
emit_16(611);
emit_16(547);
emit_16(611);
emit_16(546);
emit_16(611);
emit_16(547);
emit_16(612);
emit_16(548);
emit_16(612);
emit_16(547);
emit_16(612);
emit_16(548);
emit_16(613);
emit_16(549);
emit_16(613);
emit_16(548);
emit_16(613);
emit_16(549);
emit_16(614);
emit_16(550);
emit_16(614);
emit_16(549);
emit_16(614);
emit_16(550);
emit_16(615);
emit_16(551);
emit_16(615);
emit_16(550);
emit_16(615);
emit_16(551);
emit_16(616);
emit_16(552);
emit_16(616);
emit_16(551);
emit_16(616);
emit_16(552);
emit_16(617);
emit_16(553);
emit_16(617);
emit_16(552);
emit_16(617);
emit_16(553);
emit_16(618);
emit_16(554);
emit_16(618);
emit_16(553);
emit_16(618);
emit_16(554);
emit_16(619);
emit_16(555);
emit_16(619);
emit_16(554);
emit_16(619);
emit_16(555);
emit_16(620);
emit_16(556);
emit_16(620);
emit_16(555);
emit_16(620);
emit_16(556);
emit_16(621);
emit_16(557);
emit_16(621);
emit_16(556);
emit_16(621);
emit_16(557);
emit_16(622);
emit_16(558);
emit_16(622);
emit_16(557);
emit_16(622);
emit_16(558);
emit_16(623);
emit_16(559);
emit_16(623);
emit_16(558);
emit_16(623);
emit_16(559);
emit_16(624);
emit_16(560);
emit_16(624);
emit_16(559);
emit_16(624);
emit_16(560);
emit_16(625);
emit_16(561);
emit_16(625);
emit_16(560);
emit_16(625);
emit_16(561);
emit_16(626);
emit_16(562);
emit_16(626);
emit_16(561);
emit_16(626);
emit_16(562);
emit_16(627);
emit_16(563);
emit_16(627);
emit_16(562);
emit_16(627);
emit_16(563);
emit_16(628);
emit_16(564);
emit_16(628);
emit_16(563);
emit_16(628);
emit_16(564);
emit_16(629);
emit_16(565);
emit_16(629);
emit_16(564);
emit_16(629);
emit_16(565);
emit_16(630);
emit_16(566);
emit_16(630);
emit_16(565);
emit_16(630);
emit_16(566);
emit_16(631);
emit_16(567);
emit_16(631);
emit_16(566);
emit_16(631);
emit_16(567);
emit_16(632);
emit_16(568);
emit_16(632);
emit_16(567);
emit_16(632);
emit_16(568);
emit_16(633);
emit_16(569);
emit_16(633);
emit_16(568);
emit_16(633);
emit_16(569);
emit_16(634);
emit_16(570);
emit_16(634);
emit_16(569);
emit_16(634);
emit_16(570);
emit_16(635);
emit_16(571);
emit_16(635);
emit_16(570);
emit_16(635);
emit_16(571);
emit_16(636);
emit_16(572);
emit_16(636);
emit_16(571);
emit_16(636);
emit_16(572);
emit_16(637);
emit_16(573);
emit_16(637);
emit_16(572);
emit_16(637);
emit_16(573);
emit_16(638);
emit_16(574);
emit_16(638);
emit_16(573);
emit_16(638);
emit_16(574);
emit_16(639);
emit_16(575);
emit_16(639);
emit_16(574);
emit_16(640);
emit_16(576);
emit_16(641);
emit_16(577);
emit_16(641);
emit_16(576);
emit_16(641);
emit_16(577);
emit_16(642);
emit_16(578);
emit_16(642);
emit_16(577);
emit_16(642);
emit_16(578);
emit_16(643);
emit_16(579);
emit_16(643);
emit_16(578);
emit_16(643);
emit_16(579);
emit_16(644);
emit_16(580);
emit_16(644);
emit_16(579);
emit_16(644);
emit_16(580);
emit_16(645);
emit_16(581);
emit_16(645);
emit_16(580);
emit_16(645);
emit_16(581);
emit_16(646);
emit_16(582);
emit_16(646);
emit_16(581);
emit_16(646);
emit_16(582);
emit_16(647);
emit_16(583);
emit_16(647);
emit_16(582);
emit_16(647);
emit_16(583);
emit_16(648);
emit_16(584);
emit_16(648);
emit_16(583);
emit_16(648);
emit_16(584);
emit_16(649);
emit_16(585);
emit_16(649);
emit_16(584);
emit_16(649);
emit_16(585);
emit_16(650);
emit_16(586);
emit_16(650);
emit_16(585);
emit_16(650);
emit_16(586);
emit_16(651);
emit_16(587);
emit_16(651);
emit_16(586);
emit_16(651);
emit_16(587);
emit_16(652);
emit_16(588);
emit_16(652);
emit_16(587);
emit_16(652);
emit_16(588);
emit_16(653);
emit_16(589);
emit_16(653);
emit_16(588);
emit_16(653);
emit_16(589);
emit_16(654);
emit_16(590);
emit_16(654);
emit_16(589);
emit_16(654);
emit_16(590);
emit_16(655);
emit_16(591);
emit_16(655);
emit_16(590);
emit_16(655);
emit_16(591);
emit_16(656);
emit_16(592);
emit_16(656);
emit_16(591);
emit_16(656);
emit_16(592);
emit_16(657);
emit_16(593);
emit_16(657);
emit_16(592);
emit_16(657);
emit_16(593);
emit_16(658);
emit_16(594);
emit_16(658);
emit_16(593);
emit_16(658);
emit_16(594);
emit_16(659);
emit_16(595);
emit_16(659);
emit_16(594);
emit_16(659);
emit_16(595);
emit_16(660);
emit_16(596);
emit_16(660);
emit_16(595);
emit_16(660);
emit_16(596);
emit_16(661);
emit_16(597);
emit_16(661);
emit_16(596);
emit_16(661);
emit_16(597);
emit_16(662);
emit_16(598);
emit_16(662);
emit_16(597);
emit_16(662);
emit_16(598);
emit_16(663);
emit_16(599);
emit_16(663);
emit_16(598);
emit_16(663);
emit_16(599);
emit_16(664);
emit_16(600);
emit_16(664);
emit_16(599);
emit_16(664);
emit_16(600);
emit_16(665);
emit_16(601);
emit_16(665);
emit_16(600);
emit_16(665);
emit_16(601);
emit_16(666);
emit_16(602);
emit_16(666);
emit_16(601);
emit_16(666);
emit_16(602);
emit_16(667);
emit_16(603);
emit_16(667);
emit_16(602);
emit_16(667);
emit_16(603);
emit_16(668);
emit_16(604);
emit_16(668);
emit_16(603);
emit_16(668);
emit_16(604);
emit_16(669);
emit_16(605);
emit_16(669);
emit_16(604);
emit_16(669);
emit_16(605);
emit_16(670);
emit_16(606);
emit_16(670);
emit_16(605);
emit_16(670);
emit_16(606);
emit_16(671);
emit_16(607);
emit_16(671);
emit_16(606);
emit_16(671);
emit_16(607);
emit_16(672);
emit_16(608);
emit_16(672);
emit_16(607);
emit_16(672);
emit_16(608);
emit_16(673);
emit_16(609);
emit_16(673);
emit_16(608);
emit_16(673);
emit_16(609);
emit_16(674);
emit_16(610);
emit_16(674);
emit_16(609);
emit_16(674);
emit_16(610);
emit_16(675);
emit_16(611);
emit_16(675);
emit_16(610);
emit_16(675);
emit_16(611);
emit_16(676);
emit_16(612);
emit_16(676);
emit_16(611);
emit_16(676);
emit_16(612);
emit_16(677);
emit_16(613);
emit_16(677);
emit_16(612);
emit_16(677);
emit_16(613);
emit_16(678);
emit_16(614);
emit_16(678);
emit_16(613);
emit_16(678);
emit_16(614);
emit_16(679);
emit_16(615);
emit_16(679);
emit_16(614);
emit_16(679);
emit_16(615);
emit_16(680);
emit_16(616);
emit_16(680);
emit_16(615);
emit_16(680);
emit_16(616);
emit_16(681);
emit_16(617);
emit_16(681);
emit_16(616);
emit_16(681);
emit_16(617);
emit_16(682);
emit_16(618);
emit_16(682);
emit_16(617);
emit_16(682);
emit_16(618);
emit_16(683);
emit_16(619);
emit_16(683);
emit_16(618);
emit_16(683);
emit_16(619);
emit_16(684);
emit_16(620);
emit_16(684);
emit_16(619);
emit_16(684);
emit_16(620);
emit_16(685);
emit_16(621);
emit_16(685);
emit_16(620);
emit_16(685);
emit_16(621);
emit_16(686);
emit_16(622);
emit_16(686);
emit_16(621);
emit_16(686);
emit_16(622);
emit_16(687);
emit_16(623);
emit_16(687);
emit_16(622);
emit_16(687);
emit_16(623);
emit_16(688);
emit_16(624);
emit_16(688);
emit_16(623);
emit_16(688);
emit_16(624);
emit_16(689);
emit_16(625);
emit_16(689);
emit_16(624);
emit_16(689);
emit_16(625);
emit_16(690);
emit_16(626);
emit_16(690);
emit_16(625);
emit_16(690);
emit_16(626);
emit_16(691);
emit_16(627);
emit_16(691);
emit_16(626);
emit_16(691);
emit_16(627);
emit_16(692);
emit_16(628);
emit_16(692);
emit_16(627);
emit_16(692);
emit_16(628);
emit_16(693);
emit_16(629);
emit_16(693);
emit_16(628);
emit_16(693);
emit_16(629);
emit_16(694);
emit_16(630);
emit_16(694);
emit_16(629);
emit_16(694);
emit_16(630);
emit_16(695);
emit_16(631);
emit_16(695);
emit_16(630);
emit_16(695);
emit_16(631);
emit_16(696);
emit_16(632);
emit_16(696);
emit_16(631);
emit_16(696);
emit_16(632);
emit_16(697);
emit_16(633);
emit_16(697);
emit_16(632);
emit_16(697);
emit_16(633);
emit_16(698);
emit_16(634);
emit_16(698);
emit_16(633);
emit_16(698);
emit_16(634);
emit_16(699);
emit_16(635);
emit_16(699);
emit_16(634);
emit_16(699);
emit_16(635);
emit_16(700);
emit_16(636);
emit_16(700);
emit_16(635);
emit_16(700);
emit_16(636);
emit_16(701);
emit_16(637);
emit_16(701);
emit_16(636);
emit_16(701);
emit_16(637);
emit_16(702);
emit_16(638);
emit_16(702);
emit_16(637);
emit_16(702);
emit_16(638);
emit_16(703);
emit_16(639);
emit_16(703);
emit_16(638);
emit_16(704);
emit_16(640);
emit_16(705);
emit_16(641);
emit_16(705);
emit_16(640);
emit_16(705);
emit_16(641);
emit_16(706);
emit_16(642);
emit_16(706);
emit_16(641);
emit_16(706);
emit_16(642);
emit_16(707);
emit_16(643);
emit_16(707);
emit_16(642);
emit_16(707);
emit_16(643);
emit_16(708);
emit_16(644);
emit_16(708);
emit_16(643);
emit_16(708);
emit_16(644);
emit_16(709);
emit_16(645);
emit_16(709);
emit_16(644);
emit_16(709);
emit_16(645);
emit_16(710);
emit_16(646);
emit_16(710);
emit_16(645);
emit_16(710);
emit_16(646);
emit_16(711);
emit_16(647);
emit_16(711);
emit_16(646);
emit_16(711);
emit_16(647);
emit_16(712);
emit_16(648);
emit_16(712);
emit_16(647);
emit_16(712);
emit_16(648);
emit_16(713);
emit_16(649);
emit_16(713);
emit_16(648);
emit_16(713);
emit_16(649);
emit_16(714);
emit_16(650);
emit_16(714);
emit_16(649);
emit_16(714);
emit_16(650);
emit_16(715);
emit_16(651);
emit_16(715);
emit_16(650);
emit_16(715);
emit_16(651);
emit_16(716);
emit_16(652);
emit_16(716);
emit_16(651);
emit_16(716);
emit_16(652);
emit_16(717);
emit_16(653);
emit_16(717);
emit_16(652);
emit_16(717);
emit_16(653);
emit_16(718);
emit_16(654);
emit_16(718);
emit_16(653);
emit_16(718);
emit_16(654);
emit_16(719);
emit_16(655);
emit_16(719);
emit_16(654);
emit_16(719);
emit_16(655);
emit_16(720);
emit_16(656);
emit_16(720);
emit_16(655);
emit_16(720);
emit_16(656);
emit_16(721);
emit_16(657);
emit_16(721);
emit_16(656);
emit_16(721);
emit_16(657);
emit_16(722);
emit_16(658);
emit_16(722);
emit_16(657);
emit_16(722);
emit_16(658);
emit_16(723);
emit_16(659);
emit_16(723);
emit_16(658);
emit_16(723);
emit_16(659);
emit_16(724);
emit_16(660);
emit_16(724);
emit_16(659);
emit_16(724);
emit_16(660);
emit_16(725);
emit_16(661);
emit_16(725);
emit_16(660);
emit_16(725);
emit_16(661);
emit_16(726);
emit_16(662);
emit_16(726);
emit_16(661);
emit_16(726);
emit_16(662);
emit_16(727);
emit_16(663);
emit_16(727);
emit_16(662);
emit_16(727);
emit_16(663);
emit_16(728);
emit_16(664);
emit_16(728);
emit_16(663);
emit_16(728);
emit_16(664);
emit_16(729);
emit_16(665);
emit_16(729);
emit_16(664);
emit_16(729);
emit_16(665);
emit_16(730);
emit_16(666);
emit_16(730);
emit_16(665);
emit_16(730);
emit_16(666);
emit_16(731);
emit_16(667);
emit_16(731);
emit_16(666);
emit_16(731);
emit_16(667);
emit_16(732);
emit_16(668);
emit_16(732);
emit_16(667);
emit_16(732);
emit_16(668);
emit_16(733);
emit_16(669);
emit_16(733);
emit_16(668);
emit_16(733);
emit_16(669);
emit_16(734);
emit_16(670);
emit_16(734);
emit_16(669);
emit_16(734);
emit_16(670);
emit_16(735);
emit_16(671);
emit_16(735);
emit_16(670);
emit_16(735);
emit_16(671);
emit_16(736);
emit_16(672);
emit_16(736);
emit_16(671);
emit_16(736);
emit_16(672);
emit_16(737);
emit_16(673);
emit_16(737);
emit_16(672);
emit_16(737);
emit_16(673);
emit_16(738);
emit_16(674);
emit_16(738);
emit_16(673);
emit_16(738);
emit_16(674);
emit_16(739);
emit_16(675);
emit_16(739);
emit_16(674);
emit_16(739);
emit_16(675);
emit_16(740);
emit_16(676);
emit_16(740);
emit_16(675);
emit_16(740);
emit_16(676);
emit_16(741);
emit_16(677);
emit_16(741);
emit_16(676);
emit_16(741);
emit_16(677);
emit_16(742);
emit_16(678);
emit_16(742);
emit_16(677);
emit_16(742);
emit_16(678);
emit_16(743);
emit_16(679);
emit_16(743);
emit_16(678);
emit_16(743);
emit_16(679);
emit_16(744);
emit_16(680);
emit_16(744);
emit_16(679);
emit_16(744);
emit_16(680);
emit_16(745);
emit_16(681);
emit_16(745);
emit_16(680);
emit_16(745);
emit_16(681);
emit_16(746);
emit_16(682);
emit_16(746);
emit_16(681);
emit_16(746);
emit_16(682);
emit_16(747);
emit_16(683);
emit_16(747);
emit_16(682);
emit_16(747);
emit_16(683);
emit_16(748);
emit_16(684);
emit_16(748);
emit_16(683);
emit_16(748);
emit_16(684);
emit_16(749);
emit_16(685);
emit_16(749);
emit_16(684);
emit_16(749);
emit_16(685);
emit_16(750);
emit_16(686);
emit_16(750);
emit_16(685);
emit_16(750);
emit_16(686);
emit_16(751);
emit_16(687);
emit_16(751);
emit_16(686);
emit_16(751);
emit_16(687);
emit_16(752);
emit_16(688);
emit_16(752);
emit_16(687);
emit_16(752);
emit_16(688);
emit_16(753);
emit_16(689);
emit_16(753);
emit_16(688);
emit_16(753);
emit_16(689);
emit_16(754);
emit_16(690);
emit_16(754);
emit_16(689);
emit_16(754);
emit_16(690);
emit_16(755);
emit_16(691);
emit_16(755);
emit_16(690);
emit_16(755);
emit_16(691);
emit_16(756);
emit_16(692);
emit_16(756);
emit_16(691);
emit_16(756);
emit_16(692);
emit_16(757);
emit_16(693);
emit_16(757);
emit_16(692);
emit_16(757);
emit_16(693);
emit_16(758);
emit_16(694);
emit_16(758);
emit_16(693);
emit_16(758);
emit_16(694);
emit_16(759);
emit_16(695);
emit_16(759);
emit_16(694);
emit_16(759);
emit_16(695);
emit_16(760);
emit_16(696);
emit_16(760);
emit_16(695);
emit_16(760);
emit_16(696);
emit_16(761);
emit_16(697);
emit_16(761);
emit_16(696);
emit_16(761);
emit_16(697);
emit_16(762);
emit_16(698);
emit_16(762);
emit_16(697);
emit_16(762);
emit_16(698);
emit_16(763);
emit_16(699);
emit_16(763);
emit_16(698);
emit_16(763);
emit_16(699);
emit_16(764);
emit_16(700);
emit_16(764);
emit_16(699);
emit_16(764);
emit_16(700);
emit_16(765);
emit_16(701);
emit_16(765);
emit_16(700);
emit_16(765);
emit_16(701);
emit_16(766);
emit_16(702);
emit_16(766);
emit_16(701);
emit_16(766);
emit_16(702);
emit_16(767);
emit_16(703);
emit_16(767);
emit_16(702);
emit_16(768);
emit_16(704);
emit_16(769);
emit_16(705);
emit_16(769);
emit_16(704);
emit_16(769);
emit_16(705);
emit_16(770);
emit_16(706);
emit_16(770);
emit_16(705);
emit_16(770);
emit_16(706);
emit_16(771);
emit_16(707);
emit_16(771);
emit_16(706);
emit_16(771);
emit_16(707);
emit_16(772);
emit_16(708);
emit_16(772);
emit_16(707);
emit_16(772);
emit_16(708);
emit_16(773);
emit_16(709);
emit_16(773);
emit_16(708);
emit_16(773);
emit_16(709);
emit_16(774);
emit_16(710);
emit_16(774);
emit_16(709);
emit_16(774);
emit_16(710);
emit_16(775);
emit_16(711);
emit_16(775);
emit_16(710);
emit_16(775);
emit_16(711);
emit_16(776);
emit_16(712);
emit_16(776);
emit_16(711);
emit_16(776);
emit_16(712);
emit_16(777);
emit_16(713);
emit_16(777);
emit_16(712);
emit_16(777);
emit_16(713);
emit_16(778);
emit_16(714);
emit_16(778);
emit_16(713);
emit_16(778);
emit_16(714);
emit_16(779);
emit_16(715);
emit_16(779);
emit_16(714);
emit_16(779);
emit_16(715);
emit_16(780);
emit_16(716);
emit_16(780);
emit_16(715);
emit_16(780);
emit_16(716);
emit_16(781);
emit_16(717);
emit_16(781);
emit_16(716);
emit_16(781);
emit_16(717);
emit_16(782);
emit_16(718);
emit_16(782);
emit_16(717);
emit_16(782);
emit_16(718);
emit_16(783);
emit_16(719);
emit_16(783);
emit_16(718);
emit_16(783);
emit_16(719);
emit_16(784);
emit_16(720);
emit_16(784);
emit_16(719);
emit_16(784);
emit_16(720);
emit_16(785);
emit_16(721);
emit_16(785);
emit_16(720);
emit_16(785);
emit_16(721);
emit_16(786);
emit_16(722);
emit_16(786);
emit_16(721);
emit_16(786);
emit_16(722);
emit_16(787);
emit_16(723);
emit_16(787);
emit_16(722);
emit_16(787);
emit_16(723);
emit_16(788);
emit_16(724);
emit_16(788);
emit_16(723);
emit_16(788);
emit_16(724);
emit_16(789);
emit_16(725);
emit_16(789);
emit_16(724);
emit_16(789);
emit_16(725);
emit_16(790);
emit_16(726);
emit_16(790);
emit_16(725);
emit_16(790);
emit_16(726);
emit_16(791);
emit_16(727);
emit_16(791);
emit_16(726);
emit_16(791);
emit_16(727);
emit_16(792);
emit_16(728);
emit_16(792);
emit_16(727);
emit_16(792);
emit_16(728);
emit_16(793);
emit_16(729);
emit_16(793);
emit_16(728);
emit_16(793);
emit_16(729);
emit_16(794);
emit_16(730);
emit_16(794);
emit_16(729);
emit_16(794);
emit_16(730);
emit_16(795);
emit_16(731);
emit_16(795);
emit_16(730);
emit_16(795);
emit_16(731);
emit_16(796);
emit_16(732);
emit_16(796);
emit_16(731);
emit_16(796);
emit_16(732);
emit_16(797);
emit_16(733);
emit_16(797);
emit_16(732);
emit_16(797);
emit_16(733);
emit_16(798);
emit_16(734);
emit_16(798);
emit_16(733);
emit_16(798);
emit_16(734);
emit_16(799);
emit_16(735);
emit_16(799);
emit_16(734);
emit_16(799);
emit_16(735);
emit_16(800);
emit_16(736);
emit_16(800);
emit_16(735);
emit_16(800);
emit_16(736);
emit_16(801);
emit_16(737);
emit_16(801);
emit_16(736);
emit_16(801);
emit_16(737);
emit_16(802);
emit_16(738);
emit_16(802);
emit_16(737);
emit_16(802);
emit_16(738);
emit_16(803);
emit_16(739);
emit_16(803);
emit_16(738);
emit_16(803);
emit_16(739);
emit_16(804);
emit_16(740);
emit_16(804);
emit_16(739);
emit_16(804);
emit_16(740);
emit_16(805);
emit_16(741);
emit_16(805);
emit_16(740);
emit_16(805);
emit_16(741);
emit_16(806);
emit_16(742);
emit_16(806);
emit_16(741);
emit_16(806);
emit_16(742);
emit_16(807);
emit_16(743);
emit_16(807);
emit_16(742);
emit_16(807);
emit_16(743);
emit_16(808);
emit_16(744);
emit_16(808);
emit_16(743);
emit_16(808);
emit_16(744);
emit_16(809);
emit_16(745);
emit_16(809);
emit_16(744);
emit_16(809);
emit_16(745);
emit_16(810);
emit_16(746);
emit_16(810);
emit_16(745);
emit_16(810);
emit_16(746);
emit_16(811);
emit_16(747);
emit_16(811);
emit_16(746);
emit_16(811);
emit_16(747);
emit_16(812);
emit_16(748);
emit_16(812);
emit_16(747);
emit_16(812);
emit_16(748);
emit_16(813);
emit_16(749);
emit_16(813);
emit_16(748);
emit_16(813);
emit_16(749);
emit_16(814);
emit_16(750);
emit_16(814);
emit_16(749);
emit_16(814);
emit_16(750);
emit_16(815);
emit_16(751);
emit_16(815);
emit_16(750);
emit_16(815);
emit_16(751);
emit_16(816);
emit_16(752);
emit_16(816);
emit_16(751);
emit_16(816);
emit_16(752);
emit_16(817);
emit_16(753);
emit_16(817);
emit_16(752);
emit_16(817);
emit_16(753);
emit_16(818);
emit_16(754);
emit_16(818);
emit_16(753);
emit_16(818);
emit_16(754);
emit_16(819);
emit_16(755);
emit_16(819);
emit_16(754);
emit_16(819);
emit_16(755);
emit_16(820);
emit_16(756);
emit_16(820);
emit_16(755);
emit_16(820);
emit_16(756);
emit_16(821);
emit_16(757);
emit_16(821);
emit_16(756);
emit_16(821);
emit_16(757);
emit_16(822);
emit_16(758);
emit_16(822);
emit_16(757);
emit_16(822);
emit_16(758);
emit_16(823);
emit_16(759);
emit_16(823);
emit_16(758);
emit_16(823);
emit_16(759);
emit_16(824);
emit_16(760);
emit_16(824);
emit_16(759);
emit_16(824);
emit_16(760);
emit_16(825);
emit_16(761);
emit_16(825);
emit_16(760);
emit_16(825);
emit_16(761);
emit_16(826);
emit_16(762);
emit_16(826);
emit_16(761);
emit_16(826);
emit_16(762);
emit_16(827);
emit_16(763);
emit_16(827);
emit_16(762);
emit_16(827);
emit_16(763);
emit_16(828);
emit_16(764);
emit_16(828);
emit_16(763);
emit_16(828);
emit_16(764);
emit_16(829);
emit_16(765);
emit_16(829);
emit_16(764);
emit_16(829);
emit_16(765);
emit_16(830);
emit_16(766);
emit_16(830);
emit_16(765);
emit_16(830);
emit_16(766);
emit_16(831);
emit_16(767);
emit_16(831);
emit_16(766);
emit_16(832);
emit_16(768);
emit_16(833);
emit_16(769);
emit_16(833);
emit_16(768);
emit_16(833);
emit_16(769);
emit_16(834);
emit_16(770);
emit_16(834);
emit_16(769);
emit_16(834);
emit_16(770);
emit_16(835);
emit_16(771);
emit_16(835);
emit_16(770);
emit_16(835);
emit_16(771);
emit_16(836);
emit_16(772);
emit_16(836);
emit_16(771);
emit_16(836);
emit_16(772);
emit_16(837);
emit_16(773);
emit_16(837);
emit_16(772);
emit_16(837);
emit_16(773);
emit_16(838);
emit_16(774);
emit_16(838);
emit_16(773);
emit_16(838);
emit_16(774);
emit_16(839);
emit_16(775);
emit_16(839);
emit_16(774);
emit_16(839);
emit_16(775);
emit_16(840);
emit_16(776);
emit_16(840);
emit_16(775);
emit_16(840);
emit_16(776);
emit_16(841);
emit_16(777);
emit_16(841);
emit_16(776);
emit_16(841);
emit_16(777);
emit_16(842);
emit_16(778);
emit_16(842);
emit_16(777);
emit_16(842);
emit_16(778);
emit_16(843);
emit_16(779);
emit_16(843);
emit_16(778);
emit_16(843);
emit_16(779);
emit_16(844);
emit_16(780);
emit_16(844);
emit_16(779);
emit_16(844);
emit_16(780);
emit_16(845);
emit_16(781);
emit_16(845);
emit_16(780);
emit_16(845);
emit_16(781);
emit_16(846);
emit_16(782);
emit_16(846);
emit_16(781);
emit_16(846);
emit_16(782);
emit_16(847);
emit_16(783);
emit_16(847);
emit_16(782);
emit_16(847);
emit_16(783);
emit_16(848);
emit_16(784);
emit_16(848);
emit_16(783);
emit_16(848);
emit_16(784);
emit_16(849);
emit_16(785);
emit_16(849);
emit_16(784);
emit_16(849);
emit_16(785);
emit_16(850);
emit_16(786);
emit_16(850);
emit_16(785);
emit_16(850);
emit_16(786);
emit_16(851);
emit_16(787);
emit_16(851);
emit_16(786);
emit_16(851);
emit_16(787);
emit_16(852);
emit_16(788);
emit_16(852);
emit_16(787);
emit_16(852);
emit_16(788);
emit_16(853);
emit_16(789);
emit_16(853);
emit_16(788);
emit_16(853);
emit_16(789);
emit_16(854);
emit_16(790);
emit_16(854);
emit_16(789);
emit_16(854);
emit_16(790);
emit_16(855);
emit_16(791);
emit_16(855);
emit_16(790);
emit_16(855);
emit_16(791);
emit_16(856);
emit_16(792);
emit_16(856);
emit_16(791);
emit_16(856);
emit_16(792);
emit_16(857);
emit_16(793);
emit_16(857);
emit_16(792);
emit_16(857);
emit_16(793);
emit_16(858);
emit_16(794);
emit_16(858);
emit_16(793);
emit_16(858);
emit_16(794);
emit_16(859);
emit_16(795);
emit_16(859);
emit_16(794);
emit_16(859);
emit_16(795);
emit_16(860);
emit_16(796);
emit_16(860);
emit_16(795);
emit_16(860);
emit_16(796);
emit_16(861);
emit_16(797);
emit_16(861);
emit_16(796);
emit_16(861);
emit_16(797);
emit_16(862);
emit_16(798);
emit_16(862);
emit_16(797);
emit_16(862);
emit_16(798);
emit_16(863);
emit_16(799);
emit_16(863);
emit_16(798);
emit_16(863);
emit_16(799);
emit_16(864);
emit_16(800);
emit_16(864);
emit_16(799);
emit_16(864);
emit_16(800);
emit_16(865);
emit_16(801);
emit_16(865);
emit_16(800);
emit_16(865);
emit_16(801);
emit_16(866);
emit_16(802);
emit_16(866);
emit_16(801);
emit_16(866);
emit_16(802);
emit_16(867);
emit_16(803);
emit_16(867);
emit_16(802);
emit_16(867);
emit_16(803);
emit_16(868);
emit_16(804);
emit_16(868);
emit_16(803);
emit_16(868);
emit_16(804);
emit_16(869);
emit_16(805);
emit_16(869);
emit_16(804);
emit_16(869);
emit_16(805);
emit_16(870);
emit_16(806);
emit_16(870);
emit_16(805);
emit_16(870);
emit_16(806);
emit_16(871);
emit_16(807);
emit_16(871);
emit_16(806);
emit_16(871);
emit_16(807);
emit_16(872);
emit_16(808);
emit_16(872);
emit_16(807);
emit_16(872);
emit_16(808);
emit_16(873);
emit_16(809);
emit_16(873);
emit_16(808);
emit_16(873);
emit_16(809);
emit_16(874);
emit_16(810);
emit_16(874);
emit_16(809);
emit_16(874);
emit_16(810);
emit_16(875);
emit_16(811);
emit_16(875);
emit_16(810);
emit_16(875);
emit_16(811);
emit_16(876);
emit_16(812);
emit_16(876);
emit_16(811);
emit_16(876);
emit_16(812);
emit_16(877);
emit_16(813);
emit_16(877);
emit_16(812);
emit_16(877);
emit_16(813);
emit_16(878);
emit_16(814);
emit_16(878);
emit_16(813);
emit_16(878);
emit_16(814);
emit_16(879);
emit_16(815);
emit_16(879);
emit_16(814);
emit_16(879);
emit_16(815);
emit_16(880);
emit_16(816);
emit_16(880);
emit_16(815);
emit_16(880);
emit_16(816);
emit_16(881);
emit_16(817);
emit_16(881);
emit_16(816);
emit_16(881);
emit_16(817);
emit_16(882);
emit_16(818);
emit_16(882);
emit_16(817);
emit_16(882);
emit_16(818);
emit_16(883);
emit_16(819);
emit_16(883);
emit_16(818);
emit_16(883);
emit_16(819);
emit_16(884);
emit_16(820);
emit_16(884);
emit_16(819);
emit_16(884);
emit_16(820);
emit_16(885);
emit_16(821);
emit_16(885);
emit_16(820);
emit_16(885);
emit_16(821);
emit_16(886);
emit_16(822);
emit_16(886);
emit_16(821);
emit_16(886);
emit_16(822);
emit_16(887);
emit_16(823);
emit_16(887);
emit_16(822);
emit_16(887);
emit_16(823);
emit_16(888);
emit_16(824);
emit_16(888);
emit_16(823);
emit_16(888);
emit_16(824);
emit_16(889);
emit_16(825);
emit_16(889);
emit_16(824);
emit_16(889);
emit_16(825);
emit_16(890);
emit_16(826);
emit_16(890);
emit_16(825);
emit_16(890);
emit_16(826);
emit_16(891);
emit_16(827);
emit_16(891);
emit_16(826);
emit_16(891);
emit_16(827);
emit_16(892);
emit_16(828);
emit_16(892);
emit_16(827);
emit_16(892);
emit_16(828);
emit_16(893);
emit_16(829);
emit_16(893);
emit_16(828);
emit_16(893);
emit_16(829);
emit_16(894);
emit_16(830);
emit_16(894);
emit_16(829);
emit_16(894);
emit_16(830);
emit_16(895);
emit_16(831);
emit_16(895);
emit_16(830);
emit_16(896);
emit_16(832);
emit_16(897);
emit_16(833);
emit_16(897);
emit_16(832);
emit_16(897);
emit_16(833);
emit_16(898);
emit_16(834);
emit_16(898);
emit_16(833);
emit_16(898);
emit_16(834);
emit_16(899);
emit_16(835);
emit_16(899);
emit_16(834);
emit_16(899);
emit_16(835);
emit_16(900);
emit_16(836);
emit_16(900);
emit_16(835);
emit_16(900);
emit_16(836);
emit_16(901);
emit_16(837);
emit_16(901);
emit_16(836);
emit_16(901);
emit_16(837);
emit_16(902);
emit_16(838);
emit_16(902);
emit_16(837);
emit_16(902);
emit_16(838);
emit_16(903);
emit_16(839);
emit_16(903);
emit_16(838);
emit_16(903);
emit_16(839);
emit_16(904);
emit_16(840);
emit_16(904);
emit_16(839);
emit_16(904);
emit_16(840);
emit_16(905);
emit_16(841);
emit_16(905);
emit_16(840);
emit_16(905);
emit_16(841);
emit_16(906);
emit_16(842);
emit_16(906);
emit_16(841);
emit_16(906);
emit_16(842);
emit_16(907);
emit_16(843);
emit_16(907);
emit_16(842);
emit_16(907);
emit_16(843);
emit_16(908);
emit_16(844);
emit_16(908);
emit_16(843);
emit_16(908);
emit_16(844);
emit_16(909);
emit_16(845);
emit_16(909);
emit_16(844);
emit_16(909);
emit_16(845);
emit_16(910);
emit_16(846);
emit_16(910);
emit_16(845);
emit_16(910);
emit_16(846);
emit_16(911);
emit_16(847);
emit_16(911);
emit_16(846);
emit_16(911);
emit_16(847);
emit_16(912);
emit_16(848);
emit_16(912);
emit_16(847);
emit_16(912);
emit_16(848);
emit_16(913);
emit_16(849);
emit_16(913);
emit_16(848);
emit_16(913);
emit_16(849);
emit_16(914);
emit_16(850);
emit_16(914);
emit_16(849);
emit_16(914);
emit_16(850);
emit_16(915);
emit_16(851);
emit_16(915);
emit_16(850);
emit_16(915);
emit_16(851);
emit_16(916);
emit_16(852);
emit_16(916);
emit_16(851);
emit_16(916);
emit_16(852);
emit_16(917);
emit_16(853);
emit_16(917);
emit_16(852);
emit_16(917);
emit_16(853);
emit_16(918);
emit_16(854);
emit_16(918);
emit_16(853);
emit_16(918);
emit_16(854);
emit_16(919);
emit_16(855);
emit_16(919);
emit_16(854);
emit_16(919);
emit_16(855);
emit_16(920);
emit_16(856);
emit_16(920);
emit_16(855);
emit_16(920);
emit_16(856);
emit_16(921);
emit_16(857);
emit_16(921);
emit_16(856);
emit_16(921);
emit_16(857);
emit_16(922);
emit_16(858);
emit_16(922);
emit_16(857);
emit_16(922);
emit_16(858);
emit_16(923);
emit_16(859);
emit_16(923);
emit_16(858);
emit_16(923);
emit_16(859);
emit_16(924);
emit_16(860);
emit_16(924);
emit_16(859);
emit_16(924);
emit_16(860);
emit_16(925);
emit_16(861);
emit_16(925);
emit_16(860);
emit_16(925);
emit_16(861);
emit_16(926);
emit_16(862);
emit_16(926);
emit_16(861);
emit_16(926);
emit_16(862);
emit_16(927);
emit_16(863);
emit_16(927);
emit_16(862);
emit_16(927);
emit_16(863);
emit_16(928);
emit_16(864);
emit_16(928);
emit_16(863);
emit_16(928);
emit_16(864);
emit_16(929);
emit_16(865);
emit_16(929);
emit_16(864);
emit_16(929);
emit_16(865);
emit_16(930);
emit_16(866);
emit_16(930);
emit_16(865);
emit_16(930);
emit_16(866);
emit_16(931);
emit_16(867);
emit_16(931);
emit_16(866);
emit_16(931);
emit_16(867);
emit_16(932);
emit_16(868);
emit_16(932);
emit_16(867);
emit_16(932);
emit_16(868);
emit_16(933);
emit_16(869);
emit_16(933);
emit_16(868);
emit_16(933);
emit_16(869);
emit_16(934);
emit_16(870);
emit_16(934);
emit_16(869);
emit_16(934);
emit_16(870);
emit_16(935);
emit_16(871);
emit_16(935);
emit_16(870);
emit_16(935);
emit_16(871);
emit_16(936);
emit_16(872);
emit_16(936);
emit_16(871);
emit_16(936);
emit_16(872);
emit_16(937);
emit_16(873);
emit_16(937);
emit_16(872);
emit_16(937);
emit_16(873);
emit_16(938);
emit_16(874);
emit_16(938);
emit_16(873);
emit_16(938);
emit_16(874);
emit_16(939);
emit_16(875);
emit_16(939);
emit_16(874);
emit_16(939);
emit_16(875);
emit_16(940);
emit_16(876);
emit_16(940);
emit_16(875);
emit_16(940);
emit_16(876);
emit_16(941);
emit_16(877);
emit_16(941);
emit_16(876);
emit_16(941);
emit_16(877);
emit_16(942);
emit_16(878);
emit_16(942);
emit_16(877);
emit_16(942);
emit_16(878);
emit_16(943);
emit_16(879);
emit_16(943);
emit_16(878);
emit_16(943);
emit_16(879);
emit_16(944);
emit_16(880);
emit_16(944);
emit_16(879);
emit_16(944);
emit_16(880);
emit_16(945);
emit_16(881);
emit_16(945);
emit_16(880);
emit_16(945);
emit_16(881);
emit_16(946);
emit_16(882);
emit_16(946);
emit_16(881);
emit_16(946);
emit_16(882);
emit_16(947);
emit_16(883);
emit_16(947);
emit_16(882);
emit_16(947);
emit_16(883);
emit_16(948);
emit_16(884);
emit_16(948);
emit_16(883);
emit_16(948);
emit_16(884);
emit_16(949);
emit_16(885);
emit_16(949);
emit_16(884);
emit_16(949);
emit_16(885);
emit_16(950);
emit_16(886);
emit_16(950);
emit_16(885);
emit_16(950);
emit_16(886);
emit_16(951);
emit_16(887);
emit_16(951);
emit_16(886);
emit_16(951);
emit_16(887);
emit_16(952);
emit_16(888);
emit_16(952);
emit_16(887);
emit_16(952);
emit_16(888);
emit_16(953);
emit_16(889);
emit_16(953);
emit_16(888);
emit_16(953);
emit_16(889);
emit_16(954);
emit_16(890);
emit_16(954);
emit_16(889);
emit_16(954);
emit_16(890);
emit_16(955);
emit_16(891);
emit_16(955);
emit_16(890);
emit_16(955);
emit_16(891);
emit_16(956);
emit_16(892);
emit_16(956);
emit_16(891);
emit_16(956);
emit_16(892);
emit_16(957);
emit_16(893);
emit_16(957);
emit_16(892);
emit_16(957);
emit_16(893);
emit_16(958);
emit_16(894);
emit_16(958);
emit_16(893);
emit_16(958);
emit_16(894);
emit_16(959);
emit_16(895);
emit_16(959);
emit_16(894);
emit_16(960);
emit_16(896);
emit_16(961);
emit_16(897);
emit_16(961);
emit_16(896);
emit_16(961);
emit_16(897);
emit_16(962);
emit_16(898);
emit_16(962);
emit_16(897);
emit_16(962);
emit_16(898);
emit_16(963);
emit_16(899);
emit_16(963);
emit_16(898);
emit_16(963);
emit_16(899);
emit_16(964);
emit_16(900);
emit_16(964);
emit_16(899);
emit_16(964);
emit_16(900);
emit_16(965);
emit_16(901);
emit_16(965);
emit_16(900);
emit_16(965);
emit_16(901);
emit_16(966);
emit_16(902);
emit_16(966);
emit_16(901);
emit_16(966);
emit_16(902);
emit_16(967);
emit_16(903);
emit_16(967);
emit_16(902);
emit_16(967);
emit_16(903);
emit_16(968);
emit_16(904);
emit_16(968);
emit_16(903);
emit_16(968);
emit_16(904);
emit_16(969);
emit_16(905);
emit_16(969);
emit_16(904);
emit_16(969);
emit_16(905);
emit_16(970);
emit_16(906);
emit_16(970);
emit_16(905);
emit_16(970);
emit_16(906);
emit_16(971);
emit_16(907);
emit_16(971);
emit_16(906);
emit_16(971);
emit_16(907);
emit_16(972);
emit_16(908);
emit_16(972);
emit_16(907);
emit_16(972);
emit_16(908);
emit_16(973);
emit_16(909);
emit_16(973);
emit_16(908);
emit_16(973);
emit_16(909);
emit_16(974);
emit_16(910);
emit_16(974);
emit_16(909);
emit_16(974);
emit_16(910);
emit_16(975);
emit_16(911);
emit_16(975);
emit_16(910);
emit_16(975);
emit_16(911);
emit_16(976);
emit_16(912);
emit_16(976);
emit_16(911);
emit_16(976);
emit_16(912);
emit_16(977);
emit_16(913);
emit_16(977);
emit_16(912);
emit_16(977);
emit_16(913);
emit_16(978);
emit_16(914);
emit_16(978);
emit_16(913);
emit_16(978);
emit_16(914);
emit_16(979);
emit_16(915);
emit_16(979);
emit_16(914);
emit_16(979);
emit_16(915);
emit_16(980);
emit_16(916);
emit_16(980);
emit_16(915);
emit_16(980);
emit_16(916);
emit_16(981);
emit_16(917);
emit_16(981);
emit_16(916);
emit_16(981);
emit_16(917);
emit_16(982);
emit_16(918);
emit_16(982);
emit_16(917);
emit_16(982);
emit_16(918);
emit_16(983);
emit_16(919);
emit_16(983);
emit_16(918);
emit_16(983);
emit_16(919);
emit_16(984);
emit_16(920);
emit_16(984);
emit_16(919);
emit_16(984);
emit_16(920);
emit_16(985);
emit_16(921);
emit_16(985);
emit_16(920);
emit_16(985);
emit_16(921);
emit_16(986);
emit_16(922);
emit_16(986);
emit_16(921);
emit_16(986);
emit_16(922);
emit_16(987);
emit_16(923);
emit_16(987);
emit_16(922);
emit_16(987);
emit_16(923);
emit_16(988);
emit_16(924);
emit_16(988);
emit_16(923);
emit_16(988);
emit_16(924);
emit_16(989);
emit_16(925);
emit_16(989);
emit_16(924);
emit_16(989);
emit_16(925);
emit_16(990);
emit_16(926);
emit_16(990);
emit_16(925);
emit_16(990);
emit_16(926);
emit_16(991);
emit_16(927);
emit_16(991);
emit_16(926);
emit_16(991);
emit_16(927);
emit_16(992);
emit_16(928);
emit_16(992);
emit_16(927);
emit_16(992);
emit_16(928);
emit_16(993);
emit_16(929);
emit_16(993);
emit_16(928);
emit_16(993);
emit_16(929);
emit_16(994);
emit_16(930);
emit_16(994);
emit_16(929);
emit_16(994);
emit_16(930);
emit_16(995);
emit_16(931);
emit_16(995);
emit_16(930);
emit_16(995);
emit_16(931);
emit_16(996);
emit_16(932);
emit_16(996);
emit_16(931);
emit_16(996);
emit_16(932);
emit_16(997);
emit_16(933);
emit_16(997);
emit_16(932);
emit_16(997);
emit_16(933);
emit_16(998);
emit_16(934);
emit_16(998);
emit_16(933);
emit_16(998);
emit_16(934);
emit_16(999);
emit_16(935);
emit_16(999);
emit_16(934);
emit_16(999);
emit_16(935);
emit_16(1000);
emit_16(936);
emit_16(1000);
emit_16(935);
emit_16(1000);
emit_16(936);
emit_16(1001);
emit_16(937);
emit_16(1001);
emit_16(936);
emit_16(1001);
emit_16(937);
emit_16(1002);
emit_16(938);
emit_16(1002);
emit_16(937);
emit_16(1002);
emit_16(938);
emit_16(1003);
emit_16(939);
emit_16(1003);
emit_16(938);
emit_16(1003);
emit_16(939);
emit_16(1004);
emit_16(940);
emit_16(1004);
emit_16(939);
emit_16(1004);
emit_16(940);
emit_16(1005);
emit_16(941);
emit_16(1005);
emit_16(940);
emit_16(1005);
emit_16(941);
emit_16(1006);
emit_16(942);
emit_16(1006);
emit_16(941);
emit_16(1006);
emit_16(942);
emit_16(1007);
emit_16(943);
emit_16(1007);
emit_16(942);
emit_16(1007);
emit_16(943);
emit_16(1008);
emit_16(944);
emit_16(1008);
emit_16(943);
emit_16(1008);
emit_16(944);
emit_16(1009);
emit_16(945);
emit_16(1009);
emit_16(944);
emit_16(1009);
emit_16(945);
emit_16(1010);
emit_16(946);
emit_16(1010);
emit_16(945);
emit_16(1010);
emit_16(946);
emit_16(1011);
emit_16(947);
emit_16(1011);
emit_16(946);
emit_16(1011);
emit_16(947);
emit_16(1012);
emit_16(948);
emit_16(1012);
emit_16(947);
emit_16(1012);
emit_16(948);
emit_16(1013);
emit_16(949);
emit_16(1013);
emit_16(948);
emit_16(1013);
emit_16(949);
emit_16(1014);
emit_16(950);
emit_16(1014);
emit_16(949);
emit_16(1014);
emit_16(950);
emit_16(1015);
emit_16(951);
emit_16(1015);
emit_16(950);
emit_16(1015);
emit_16(951);
emit_16(1016);
emit_16(952);
emit_16(1016);
emit_16(951);
emit_16(1016);
emit_16(952);
emit_16(1017);
emit_16(953);
emit_16(1017);
emit_16(952);
emit_16(1017);
emit_16(953);
emit_16(1018);
emit_16(954);
emit_16(1018);
emit_16(953);
emit_16(1018);
emit_16(954);
emit_16(1019);
emit_16(955);
emit_16(1019);
emit_16(954);
emit_16(1019);
emit_16(955);
emit_16(1020);
emit_16(956);
emit_16(1020);
emit_16(955);
emit_16(1020);
emit_16(956);
emit_16(1021);
emit_16(957);
emit_16(1021);
emit_16(956);
emit_16(1021);
emit_16(957);
emit_16(1022);
emit_16(958);
emit_16(1022);
emit_16(957);
emit_16(1022);
emit_16(958);
emit_16(1023);
emit_16(959);
emit_16(1023);
emit_16(958);
emit_16(1024);
emit_16(960);
emit_16(1025);
emit_16(961);
emit_16(1025);
emit_16(960);
emit_16(1025);
emit_16(961);
emit_16(1026);
emit_16(962);
emit_16(1026);
emit_16(961);
emit_16(1026);
emit_16(962);
emit_16(1027);
emit_16(963);
emit_16(1027);
emit_16(962);
emit_16(1027);
emit_16(963);
emit_16(1028);
emit_16(964);
emit_16(1028);
emit_16(963);
emit_16(1028);
emit_16(964);
emit_16(1029);
emit_16(965);
emit_16(1029);
emit_16(964);
emit_16(1029);
emit_16(965);
emit_16(1030);
emit_16(966);
emit_16(1030);
emit_16(965);
emit_16(1030);
emit_16(966);
emit_16(1031);
emit_16(967);
emit_16(1031);
emit_16(966);
emit_16(1031);
emit_16(967);
emit_16(1032);
emit_16(968);
emit_16(1032);
emit_16(967);
emit_16(1032);
emit_16(968);
emit_16(1033);
emit_16(969);
emit_16(1033);
emit_16(968);
emit_16(1033);
emit_16(969);
emit_16(1034);
emit_16(970);
emit_16(1034);
emit_16(969);
emit_16(1034);
emit_16(970);
emit_16(1035);
emit_16(971);
emit_16(1035);
emit_16(970);
emit_16(1035);
emit_16(971);
emit_16(1036);
emit_16(972);
emit_16(1036);
emit_16(971);
emit_16(1036);
emit_16(972);
emit_16(1037);
emit_16(973);
emit_16(1037);
emit_16(972);
emit_16(1037);
emit_16(973);
emit_16(1038);
emit_16(974);
emit_16(1038);
emit_16(973);
emit_16(1038);
emit_16(974);
emit_16(1039);
emit_16(975);
emit_16(1039);
emit_16(974);
emit_16(1039);
emit_16(975);
emit_16(1040);
emit_16(976);
emit_16(1040);
emit_16(975);
emit_16(1040);
emit_16(976);
emit_16(1041);
emit_16(977);
emit_16(1041);
emit_16(976);
emit_16(1041);
emit_16(977);
emit_16(1042);
emit_16(978);
emit_16(1042);
emit_16(977);
emit_16(1042);
emit_16(978);
emit_16(1043);
emit_16(979);
emit_16(1043);
emit_16(978);
emit_16(1043);
emit_16(979);
emit_16(1044);
emit_16(980);
emit_16(1044);
emit_16(979);
emit_16(1044);
emit_16(980);
emit_16(1045);
emit_16(981);
emit_16(1045);
emit_16(980);
emit_16(1045);
emit_16(981);
emit_16(1046);
emit_16(982);
emit_16(1046);
emit_16(981);
emit_16(1046);
emit_16(982);
emit_16(1047);
emit_16(983);
emit_16(1047);
emit_16(982);
emit_16(1047);
emit_16(983);
emit_16(1048);
emit_16(984);
emit_16(1048);
emit_16(983);
emit_16(1048);
emit_16(984);
emit_16(1049);
emit_16(985);
emit_16(1049);
emit_16(984);
emit_16(1049);
emit_16(985);
emit_16(1050);
emit_16(986);
emit_16(1050);
emit_16(985);
emit_16(1050);
emit_16(986);
emit_16(1051);
emit_16(987);
emit_16(1051);
emit_16(986);
emit_16(1051);
emit_16(987);
emit_16(1052);
emit_16(988);
emit_16(1052);
emit_16(987);
emit_16(1052);
emit_16(988);
emit_16(1053);
emit_16(989);
emit_16(1053);
emit_16(988);
emit_16(1053);
emit_16(989);
emit_16(1054);
emit_16(990);
emit_16(1054);
emit_16(989);
emit_16(1054);
emit_16(990);
emit_16(1055);
emit_16(991);
emit_16(1055);
emit_16(990);
emit_16(1055);
emit_16(991);
emit_16(1056);
emit_16(992);
emit_16(1056);
emit_16(991);
emit_16(1056);
emit_16(992);
emit_16(1057);
emit_16(993);
emit_16(1057);
emit_16(992);
emit_16(1057);
emit_16(993);
emit_16(1058);
emit_16(994);
emit_16(1058);
emit_16(993);
emit_16(1058);
emit_16(994);
emit_16(1059);
emit_16(995);
emit_16(1059);
emit_16(994);
emit_16(1059);
emit_16(995);
emit_16(1060);
emit_16(996);
emit_16(1060);
emit_16(995);
emit_16(1060);
emit_16(996);
emit_16(1061);
emit_16(997);
emit_16(1061);
emit_16(996);
emit_16(1061);
emit_16(997);
emit_16(1062);
emit_16(998);
emit_16(1062);
emit_16(997);
emit_16(1062);
emit_16(998);
emit_16(1063);
emit_16(999);
emit_16(1063);
emit_16(998);
emit_16(1063);
emit_16(999);
emit_16(1064);
emit_16(1000);
emit_16(1064);
emit_16(999);
emit_16(1064);
emit_16(1000);
emit_16(1065);
emit_16(1001);
emit_16(1065);
emit_16(1000);
emit_16(1065);
emit_16(1001);
emit_16(1066);
emit_16(1002);
emit_16(1066);
emit_16(1001);
emit_16(1066);
emit_16(1002);
emit_16(1067);
emit_16(1003);
emit_16(1067);
emit_16(1002);
emit_16(1067);
emit_16(1003);
emit_16(1068);
emit_16(1004);
emit_16(1068);
emit_16(1003);
emit_16(1068);
emit_16(1004);
emit_16(1069);
emit_16(1005);
emit_16(1069);
emit_16(1004);
emit_16(1069);
emit_16(1005);
emit_16(1070);
emit_16(1006);
emit_16(1070);
emit_16(1005);
emit_16(1070);
emit_16(1006);
emit_16(1071);
emit_16(1007);
emit_16(1071);
emit_16(1006);
emit_16(1071);
emit_16(1007);
emit_16(1072);
emit_16(1008);
emit_16(1072);
emit_16(1007);
emit_16(1072);
emit_16(1008);
emit_16(1073);
emit_16(1009);
emit_16(1073);
emit_16(1008);
emit_16(1073);
emit_16(1009);
emit_16(1074);
emit_16(1010);
emit_16(1074);
emit_16(1009);
emit_16(1074);
emit_16(1010);
emit_16(1075);
emit_16(1011);
emit_16(1075);
emit_16(1010);
emit_16(1075);
emit_16(1011);
emit_16(1076);
emit_16(1012);
emit_16(1076);
emit_16(1011);
emit_16(1076);
emit_16(1012);
emit_16(1077);
emit_16(1013);
emit_16(1077);
emit_16(1012);
emit_16(1077);
emit_16(1013);
emit_16(1078);
emit_16(1014);
emit_16(1078);
emit_16(1013);
emit_16(1078);
emit_16(1014);
emit_16(1079);
emit_16(1015);
emit_16(1079);
emit_16(1014);
emit_16(1079);
emit_16(1015);
emit_16(1080);
emit_16(1016);
emit_16(1080);
emit_16(1015);
emit_16(1080);
emit_16(1016);
emit_16(1081);
emit_16(1017);
emit_16(1081);
emit_16(1016);
emit_16(1081);
emit_16(1017);
emit_16(1082);
emit_16(1018);
emit_16(1082);
emit_16(1017);
emit_16(1082);
emit_16(1018);
emit_16(1083);
emit_16(1019);
emit_16(1083);
emit_16(1018);
emit_16(1083);
emit_16(1019);
emit_16(1084);
emit_16(1020);
emit_16(1084);
emit_16(1019);
emit_16(1084);
emit_16(1020);
emit_16(1085);
emit_16(1021);
emit_16(1085);
emit_16(1020);
emit_16(1085);
emit_16(1021);
emit_16(1086);
emit_16(1022);
emit_16(1086);
emit_16(1021);
emit_16(1086);
emit_16(1022);
emit_16(1087);
emit_16(1023);
emit_16(1087);
emit_16(1022);
emit_16(1088);
emit_16(1024);
emit_16(1089);
emit_16(1025);
emit_16(1089);
emit_16(1024);
emit_16(1089);
emit_16(1025);
emit_16(1090);
emit_16(1026);
emit_16(1090);
emit_16(1025);
emit_16(1090);
emit_16(1026);
emit_16(1091);
emit_16(1027);
emit_16(1091);
emit_16(1026);
emit_16(1091);
emit_16(1027);
emit_16(1092);
emit_16(1028);
emit_16(1092);
emit_16(1027);
emit_16(1092);
emit_16(1028);
emit_16(1093);
emit_16(1029);
emit_16(1093);
emit_16(1028);
emit_16(1093);
emit_16(1029);
emit_16(1094);
emit_16(1030);
emit_16(1094);
emit_16(1029);
emit_16(1094);
emit_16(1030);
emit_16(1095);
emit_16(1031);
emit_16(1095);
emit_16(1030);
emit_16(1095);
emit_16(1031);
emit_16(1096);
emit_16(1032);
emit_16(1096);
emit_16(1031);
emit_16(1096);
emit_16(1032);
emit_16(1097);
emit_16(1033);
emit_16(1097);
emit_16(1032);
emit_16(1097);
emit_16(1033);
emit_16(1098);
emit_16(1034);
emit_16(1098);
emit_16(1033);
emit_16(1098);
emit_16(1034);
emit_16(1099);
emit_16(1035);
emit_16(1099);
emit_16(1034);
emit_16(1099);
emit_16(1035);
emit_16(1100);
emit_16(1036);
emit_16(1100);
emit_16(1035);
emit_16(1100);
emit_16(1036);
emit_16(1101);
emit_16(1037);
emit_16(1101);
emit_16(1036);
emit_16(1101);
emit_16(1037);
emit_16(1102);
emit_16(1038);
emit_16(1102);
emit_16(1037);
emit_16(1102);
emit_16(1038);
emit_16(1103);
emit_16(1039);
emit_16(1103);
emit_16(1038);
emit_16(1103);
emit_16(1039);
emit_16(1104);
emit_16(1040);
emit_16(1104);
emit_16(1039);
emit_16(1104);
emit_16(1040);
emit_16(1105);
emit_16(1041);
emit_16(1105);
emit_16(1040);
emit_16(1105);
emit_16(1041);
emit_16(1106);
emit_16(1042);
emit_16(1106);
emit_16(1041);
emit_16(1106);
emit_16(1042);
emit_16(1107);
emit_16(1043);
emit_16(1107);
emit_16(1042);
emit_16(1107);
emit_16(1043);
emit_16(1108);
emit_16(1044);
emit_16(1108);
emit_16(1043);
emit_16(1108);
emit_16(1044);
emit_16(1109);
emit_16(1045);
emit_16(1109);
emit_16(1044);
emit_16(1109);
emit_16(1045);
emit_16(1110);
emit_16(1046);
emit_16(1110);
emit_16(1045);
emit_16(1110);
emit_16(1046);
emit_16(1111);
emit_16(1047);
emit_16(1111);
emit_16(1046);
emit_16(1111);
emit_16(1047);
emit_16(1112);
emit_16(1048);
emit_16(1112);
emit_16(1047);
emit_16(1112);
emit_16(1048);
emit_16(1113);
emit_16(1049);
emit_16(1113);
emit_16(1048);
emit_16(1113);
emit_16(1049);
emit_16(1114);
emit_16(1050);
emit_16(1114);
emit_16(1049);
emit_16(1114);
emit_16(1050);
emit_16(1115);
emit_16(1051);
emit_16(1115);
emit_16(1050);
emit_16(1115);
emit_16(1051);
emit_16(1116);
emit_16(1052);
emit_16(1116);
emit_16(1051);
emit_16(1116);
emit_16(1052);
emit_16(1117);
emit_16(1053);
emit_16(1117);
emit_16(1052);
emit_16(1117);
emit_16(1053);
emit_16(1118);
emit_16(1054);
emit_16(1118);
emit_16(1053);
emit_16(1118);
emit_16(1054);
emit_16(1119);
emit_16(1055);
emit_16(1119);
emit_16(1054);
emit_16(1119);
emit_16(1055);
emit_16(1120);
emit_16(1056);
emit_16(1120);
emit_16(1055);
emit_16(1120);
emit_16(1056);
emit_16(1121);
emit_16(1057);
emit_16(1121);
emit_16(1056);
emit_16(1121);
emit_16(1057);
emit_16(1122);
emit_16(1058);
emit_16(1122);
emit_16(1057);
emit_16(1122);
emit_16(1058);
emit_16(1123);
emit_16(1059);
emit_16(1123);
emit_16(1058);
emit_16(1123);
emit_16(1059);
emit_16(1124);
emit_16(1060);
emit_16(1124);
emit_16(1059);
emit_16(1124);
emit_16(1060);
emit_16(1125);
emit_16(1061);
emit_16(1125);
emit_16(1060);
emit_16(1125);
emit_16(1061);
emit_16(1126);
emit_16(1062);
emit_16(1126);
emit_16(1061);
emit_16(1126);
emit_16(1062);
emit_16(1127);
emit_16(1063);
emit_16(1127);
emit_16(1062);
emit_16(1127);
emit_16(1063);
emit_16(1128);
emit_16(1064);
emit_16(1128);
emit_16(1063);
emit_16(1128);
emit_16(1064);
emit_16(1129);
emit_16(1065);
emit_16(1129);
emit_16(1064);
emit_16(1129);
emit_16(1065);
emit_16(1130);
emit_16(1066);
emit_16(1130);
emit_16(1065);
emit_16(1130);
emit_16(1066);
emit_16(1131);
emit_16(1067);
emit_16(1131);
emit_16(1066);
emit_16(1131);
emit_16(1067);
emit_16(1132);
emit_16(1068);
emit_16(1132);
emit_16(1067);
emit_16(1132);
emit_16(1068);
emit_16(1133);
emit_16(1069);
emit_16(1133);
emit_16(1068);
emit_16(1133);
emit_16(1069);
emit_16(1134);
emit_16(1070);
emit_16(1134);
emit_16(1069);
emit_16(1134);
emit_16(1070);
emit_16(1135);
emit_16(1071);
emit_16(1135);
emit_16(1070);
emit_16(1135);
emit_16(1071);
emit_16(1136);
emit_16(1072);
emit_16(1136);
emit_16(1071);
emit_16(1136);
emit_16(1072);
emit_16(1137);
emit_16(1073);
emit_16(1137);
emit_16(1072);
emit_16(1137);
emit_16(1073);
emit_16(1138);
emit_16(1074);
emit_16(1138);
emit_16(1073);
emit_16(1138);
emit_16(1074);
emit_16(1139);
emit_16(1075);
emit_16(1139);
emit_16(1074);
emit_16(1139);
emit_16(1075);
emit_16(1140);
emit_16(1076);
emit_16(1140);
emit_16(1075);
emit_16(1140);
emit_16(1076);
emit_16(1141);
emit_16(1077);
emit_16(1141);
emit_16(1076);
emit_16(1141);
emit_16(1077);
emit_16(1142);
emit_16(1078);
emit_16(1142);
emit_16(1077);
emit_16(1142);
emit_16(1078);
emit_16(1143);
emit_16(1079);
emit_16(1143);
emit_16(1078);
emit_16(1143);
emit_16(1079);
emit_16(1144);
emit_16(1080);
emit_16(1144);
emit_16(1079);
emit_16(1144);
emit_16(1080);
emit_16(1145);
emit_16(1081);
emit_16(1145);
emit_16(1080);
emit_16(1145);
emit_16(1081);
emit_16(1146);
emit_16(1082);
emit_16(1146);
emit_16(1081);
emit_16(1146);
emit_16(1082);
emit_16(1147);
emit_16(1083);
emit_16(1147);
emit_16(1082);
emit_16(1147);
emit_16(1083);
emit_16(1148);
emit_16(1084);
emit_16(1148);
emit_16(1083);
emit_16(1148);
emit_16(1084);
emit_16(1149);
emit_16(1085);
emit_16(1149);
emit_16(1084);
emit_16(1149);
emit_16(1085);
emit_16(1150);
emit_16(1086);
emit_16(1150);
emit_16(1085);
emit_16(1150);
emit_16(1086);
emit_16(1151);
emit_16(1087);
emit_16(1151);
emit_16(1086);
emit_16(1152);
emit_16(1088);
emit_16(1153);
emit_16(1089);
emit_16(1153);
emit_16(1088);
emit_16(1153);
emit_16(1089);
emit_16(1154);
emit_16(1090);
emit_16(1154);
emit_16(1089);
emit_16(1154);
emit_16(1090);
emit_16(1155);
emit_16(1091);
emit_16(1155);
emit_16(1090);
emit_16(1155);
emit_16(1091);
emit_16(1156);
emit_16(1092);
emit_16(1156);
emit_16(1091);
emit_16(1156);
emit_16(1092);
emit_16(1157);
emit_16(1093);
emit_16(1157);
emit_16(1092);
emit_16(1157);
emit_16(1093);
emit_16(1158);
emit_16(1094);
emit_16(1158);
emit_16(1093);
emit_16(1158);
emit_16(1094);
emit_16(1159);
emit_16(1095);
emit_16(1159);
emit_16(1094);
emit_16(1159);
emit_16(1095);
emit_16(1160);
emit_16(1096);
emit_16(1160);
emit_16(1095);
emit_16(1160);
emit_16(1096);
emit_16(1161);
emit_16(1097);
emit_16(1161);
emit_16(1096);
emit_16(1161);
emit_16(1097);
emit_16(1162);
emit_16(1098);
emit_16(1162);
emit_16(1097);
emit_16(1162);
emit_16(1098);
emit_16(1163);
emit_16(1099);
emit_16(1163);
emit_16(1098);
emit_16(1163);
emit_16(1099);
emit_16(1164);
emit_16(1100);
emit_16(1164);
emit_16(1099);
emit_16(1164);
emit_16(1100);
emit_16(1165);
emit_16(1101);
emit_16(1165);
emit_16(1100);
emit_16(1165);
emit_16(1101);
emit_16(1166);
emit_16(1102);
emit_16(1166);
emit_16(1101);
emit_16(1166);
emit_16(1102);
emit_16(1167);
emit_16(1103);
emit_16(1167);
emit_16(1102);
emit_16(1167);
emit_16(1103);
emit_16(1168);
emit_16(1104);
emit_16(1168);
emit_16(1103);
emit_16(1168);
emit_16(1104);
emit_16(1169);
emit_16(1105);
emit_16(1169);
emit_16(1104);
emit_16(1169);
emit_16(1105);
emit_16(1170);
emit_16(1106);
emit_16(1170);
emit_16(1105);
emit_16(1170);
emit_16(1106);
emit_16(1171);
emit_16(1107);
emit_16(1171);
emit_16(1106);
emit_16(1171);
emit_16(1107);
emit_16(1172);
emit_16(1108);
emit_16(1172);
emit_16(1107);
emit_16(1172);
emit_16(1108);
emit_16(1173);
emit_16(1109);
emit_16(1173);
emit_16(1108);
emit_16(1173);
emit_16(1109);
emit_16(1174);
emit_16(1110);
emit_16(1174);
emit_16(1109);
emit_16(1174);
emit_16(1110);
emit_16(1175);
emit_16(1111);
emit_16(1175);
emit_16(1110);
emit_16(1175);
emit_16(1111);
emit_16(1176);
emit_16(1112);
emit_16(1176);
emit_16(1111);
emit_16(1176);
emit_16(1112);
emit_16(1177);
emit_16(1113);
emit_16(1177);
emit_16(1112);
emit_16(1177);
emit_16(1113);
emit_16(1178);
emit_16(1114);
emit_16(1178);
emit_16(1113);
emit_16(1178);
emit_16(1114);
emit_16(1179);
emit_16(1115);
emit_16(1179);
emit_16(1114);
emit_16(1179);
emit_16(1115);
emit_16(1180);
emit_16(1116);
emit_16(1180);
emit_16(1115);
emit_16(1180);
emit_16(1116);
emit_16(1181);
emit_16(1117);
emit_16(1181);
emit_16(1116);
emit_16(1181);
emit_16(1117);
emit_16(1182);
emit_16(1118);
emit_16(1182);
emit_16(1117);
emit_16(1182);
emit_16(1118);
emit_16(1183);
emit_16(1119);
emit_16(1183);
emit_16(1118);
emit_16(1183);
emit_16(1119);
emit_16(1184);
emit_16(1120);
emit_16(1184);
emit_16(1119);
emit_16(1184);
emit_16(1120);
emit_16(1185);
emit_16(1121);
emit_16(1185);
emit_16(1120);
emit_16(1185);
emit_16(1121);
emit_16(1186);
emit_16(1122);
emit_16(1186);
emit_16(1121);
emit_16(1186);
emit_16(1122);
emit_16(1187);
emit_16(1123);
emit_16(1187);
emit_16(1122);
emit_16(1187);
emit_16(1123);
emit_16(1188);
emit_16(1124);
emit_16(1188);
emit_16(1123);
emit_16(1188);
emit_16(1124);
emit_16(1189);
emit_16(1125);
emit_16(1189);
emit_16(1124);
emit_16(1189);
emit_16(1125);
emit_16(1190);
emit_16(1126);
emit_16(1190);
emit_16(1125);
emit_16(1190);
emit_16(1126);
emit_16(1191);
emit_16(1127);
emit_16(1191);
emit_16(1126);
emit_16(1191);
emit_16(1127);
emit_16(1192);
emit_16(1128);
emit_16(1192);
emit_16(1127);
emit_16(1192);
emit_16(1128);
emit_16(1193);
emit_16(1129);
emit_16(1193);
emit_16(1128);
emit_16(1193);
emit_16(1129);
emit_16(1194);
emit_16(1130);
emit_16(1194);
emit_16(1129);
emit_16(1194);
emit_16(1130);
emit_16(1195);
emit_16(1131);
emit_16(1195);
emit_16(1130);
emit_16(1195);
emit_16(1131);
emit_16(1196);
emit_16(1132);
emit_16(1196);
emit_16(1131);
emit_16(1196);
emit_16(1132);
emit_16(1197);
emit_16(1133);
emit_16(1197);
emit_16(1132);
emit_16(1197);
emit_16(1133);
emit_16(1198);
emit_16(1134);
emit_16(1198);
emit_16(1133);
emit_16(1198);
emit_16(1134);
emit_16(1199);
emit_16(1135);
emit_16(1199);
emit_16(1134);
emit_16(1199);
emit_16(1135);
emit_16(1200);
emit_16(1136);
emit_16(1200);
emit_16(1135);
emit_16(1200);
emit_16(1136);
emit_16(1201);
emit_16(1137);
emit_16(1201);
emit_16(1136);
emit_16(1201);
emit_16(1137);
emit_16(1202);
emit_16(1138);
emit_16(1202);
emit_16(1137);
emit_16(1202);
emit_16(1138);
emit_16(1203);
emit_16(1139);
emit_16(1203);
emit_16(1138);
emit_16(1203);
emit_16(1139);
emit_16(1204);
emit_16(1140);
emit_16(1204);
emit_16(1139);
emit_16(1204);
emit_16(1140);
emit_16(1205);
emit_16(1141);
emit_16(1205);
emit_16(1140);
emit_16(1205);
emit_16(1141);
emit_16(1206);
emit_16(1142);
emit_16(1206);
emit_16(1141);
emit_16(1206);
emit_16(1142);
emit_16(1207);
emit_16(1143);
emit_16(1207);
emit_16(1142);
emit_16(1207);
emit_16(1143);
emit_16(1208);
emit_16(1144);
emit_16(1208);
emit_16(1143);
emit_16(1208);
emit_16(1144);
emit_16(1209);
emit_16(1145);
emit_16(1209);
emit_16(1144);
emit_16(1209);
emit_16(1145);
emit_16(1210);
emit_16(1146);
emit_16(1210);
emit_16(1145);
emit_16(1210);
emit_16(1146);
emit_16(1211);
emit_16(1147);
emit_16(1211);
emit_16(1146);
emit_16(1211);
emit_16(1147);
emit_16(1212);
emit_16(1148);
emit_16(1212);
emit_16(1147);
emit_16(1212);
emit_16(1148);
emit_16(1213);
emit_16(1149);
emit_16(1213);
emit_16(1148);
emit_16(1213);
emit_16(1149);
emit_16(1214);
emit_16(1150);
emit_16(1214);
emit_16(1149);
emit_16(1214);
emit_16(1150);
emit_16(1215);
emit_16(1151);
emit_16(1215);
emit_16(1150);
emit_16(1216);
emit_16(1152);
emit_16(1217);
emit_16(1153);
emit_16(1217);
emit_16(1152);
emit_16(1217);
emit_16(1153);
emit_16(1218);
emit_16(1154);
emit_16(1218);
emit_16(1153);
emit_16(1218);
emit_16(1154);
emit_16(1219);
emit_16(1155);
emit_16(1219);
emit_16(1154);
emit_16(1219);
emit_16(1155);
emit_16(1220);
emit_16(1156);
emit_16(1220);
emit_16(1155);
emit_16(1220);
emit_16(1156);
emit_16(1221);
emit_16(1157);
emit_16(1221);
emit_16(1156);
emit_16(1221);
emit_16(1157);
emit_16(1222);
emit_16(1158);
emit_16(1222);
emit_16(1157);
emit_16(1222);
emit_16(1158);
emit_16(1223);
emit_16(1159);
emit_16(1223);
emit_16(1158);
emit_16(1223);
emit_16(1159);
emit_16(1224);
emit_16(1160);
emit_16(1224);
emit_16(1159);
emit_16(1224);
emit_16(1160);
emit_16(1225);
emit_16(1161);
emit_16(1225);
emit_16(1160);
emit_16(1225);
emit_16(1161);
emit_16(1226);
emit_16(1162);
emit_16(1226);
emit_16(1161);
emit_16(1226);
emit_16(1162);
emit_16(1227);
emit_16(1163);
emit_16(1227);
emit_16(1162);
emit_16(1227);
emit_16(1163);
emit_16(1228);
emit_16(1164);
emit_16(1228);
emit_16(1163);
emit_16(1228);
emit_16(1164);
emit_16(1229);
emit_16(1165);
emit_16(1229);
emit_16(1164);
emit_16(1229);
emit_16(1165);
emit_16(1230);
emit_16(1166);
emit_16(1230);
emit_16(1165);
emit_16(1230);
emit_16(1166);
emit_16(1231);
emit_16(1167);
emit_16(1231);
emit_16(1166);
emit_16(1231);
emit_16(1167);
emit_16(1232);
emit_16(1168);
emit_16(1232);
emit_16(1167);
emit_16(1232);
emit_16(1168);
emit_16(1233);
emit_16(1169);
emit_16(1233);
emit_16(1168);
emit_16(1233);
emit_16(1169);
emit_16(1234);
emit_16(1170);
emit_16(1234);
emit_16(1169);
emit_16(1234);
emit_16(1170);
emit_16(1235);
emit_16(1171);
emit_16(1235);
emit_16(1170);
emit_16(1235);
emit_16(1171);
emit_16(1236);
emit_16(1172);
emit_16(1236);
emit_16(1171);
emit_16(1236);
emit_16(1172);
emit_16(1237);
emit_16(1173);
emit_16(1237);
emit_16(1172);
emit_16(1237);
emit_16(1173);
emit_16(1238);
emit_16(1174);
emit_16(1238);
emit_16(1173);
emit_16(1238);
emit_16(1174);
emit_16(1239);
emit_16(1175);
emit_16(1239);
emit_16(1174);
emit_16(1239);
emit_16(1175);
emit_16(1240);
emit_16(1176);
emit_16(1240);
emit_16(1175);
emit_16(1240);
emit_16(1176);
emit_16(1241);
emit_16(1177);
emit_16(1241);
emit_16(1176);
emit_16(1241);
emit_16(1177);
emit_16(1242);
emit_16(1178);
emit_16(1242);
emit_16(1177);
emit_16(1242);
emit_16(1178);
emit_16(1243);
emit_16(1179);
emit_16(1243);
emit_16(1178);
emit_16(1243);
emit_16(1179);
emit_16(1244);
emit_16(1180);
emit_16(1244);
emit_16(1179);
emit_16(1244);
emit_16(1180);
emit_16(1245);
emit_16(1181);
emit_16(1245);
emit_16(1180);
emit_16(1245);
emit_16(1181);
emit_16(1246);
emit_16(1182);
emit_16(1246);
emit_16(1181);
emit_16(1246);
emit_16(1182);
emit_16(1247);
emit_16(1183);
emit_16(1247);
emit_16(1182);
emit_16(1247);
emit_16(1183);
emit_16(1248);
emit_16(1184);
emit_16(1248);
emit_16(1183);
emit_16(1248);
emit_16(1184);
emit_16(1249);
emit_16(1185);
emit_16(1249);
emit_16(1184);
emit_16(1249);
emit_16(1185);
emit_16(1250);
emit_16(1186);
emit_16(1250);
emit_16(1185);
emit_16(1250);
emit_16(1186);
emit_16(1251);
emit_16(1187);
emit_16(1251);
emit_16(1186);
emit_16(1251);
emit_16(1187);
emit_16(1252);
emit_16(1188);
emit_16(1252);
emit_16(1187);
emit_16(1252);
emit_16(1188);
emit_16(1253);
emit_16(1189);
emit_16(1253);
emit_16(1188);
emit_16(1253);
emit_16(1189);
emit_16(1254);
emit_16(1190);
emit_16(1254);
emit_16(1189);
emit_16(1254);
emit_16(1190);
emit_16(1255);
emit_16(1191);
emit_16(1255);
emit_16(1190);
emit_16(1255);
emit_16(1191);
emit_16(1256);
emit_16(1192);
emit_16(1256);
emit_16(1191);
emit_16(1256);
emit_16(1192);
emit_16(1257);
emit_16(1193);
emit_16(1257);
emit_16(1192);
emit_16(1257);
emit_16(1193);
emit_16(1258);
emit_16(1194);
emit_16(1258);
emit_16(1193);
emit_16(1258);
emit_16(1194);
emit_16(1259);
emit_16(1195);
emit_16(1259);
emit_16(1194);
emit_16(1259);
emit_16(1195);
emit_16(1260);
emit_16(1196);
emit_16(1260);
emit_16(1195);
emit_16(1260);
emit_16(1196);
emit_16(1261);
emit_16(1197);
emit_16(1261);
emit_16(1196);
emit_16(1261);
emit_16(1197);
emit_16(1262);
emit_16(1198);
emit_16(1262);
emit_16(1197);
emit_16(1262);
emit_16(1198);
emit_16(1263);
emit_16(1199);
emit_16(1263);
emit_16(1198);
emit_16(1263);
emit_16(1199);
emit_16(1264);
emit_16(1200);
emit_16(1264);
emit_16(1199);
emit_16(1264);
emit_16(1200);
emit_16(1265);
emit_16(1201);
emit_16(1265);
emit_16(1200);
emit_16(1265);
emit_16(1201);
emit_16(1266);
emit_16(1202);
emit_16(1266);
emit_16(1201);
emit_16(1266);
emit_16(1202);
emit_16(1267);
emit_16(1203);
emit_16(1267);
emit_16(1202);
emit_16(1267);
emit_16(1203);
emit_16(1268);
emit_16(1204);
emit_16(1268);
emit_16(1203);
emit_16(1268);
emit_16(1204);
emit_16(1269);
emit_16(1205);
emit_16(1269);
emit_16(1204);
emit_16(1269);
emit_16(1205);
emit_16(1270);
emit_16(1206);
emit_16(1270);
emit_16(1205);
emit_16(1270);
emit_16(1206);
emit_16(1271);
emit_16(1207);
emit_16(1271);
emit_16(1206);
emit_16(1271);
emit_16(1207);
emit_16(1272);
emit_16(1208);
emit_16(1272);
emit_16(1207);
emit_16(1272);
emit_16(1208);
emit_16(1273);
emit_16(1209);
emit_16(1273);
emit_16(1208);
emit_16(1273);
emit_16(1209);
emit_16(1274);
emit_16(1210);
emit_16(1274);
emit_16(1209);
emit_16(1274);
emit_16(1210);
emit_16(1275);
emit_16(1211);
emit_16(1275);
emit_16(1210);
emit_16(1275);
emit_16(1211);
emit_16(1276);
emit_16(1212);
emit_16(1276);
emit_16(1211);
emit_16(1276);
emit_16(1212);
emit_16(1277);
emit_16(1213);
emit_16(1277);
emit_16(1212);
emit_16(1277);
emit_16(1213);
emit_16(1278);
emit_16(1214);
emit_16(1278);
emit_16(1213);
emit_16(1278);
emit_16(1214);
emit_16(1279);
emit_16(1215);
emit_16(1279);
emit_16(1214);
emit_16(1280);
emit_16(1216);
emit_16(1281);
emit_16(1217);
emit_16(1281);
emit_16(1216);
emit_16(1281);
emit_16(1217);
emit_16(1282);
emit_16(1218);
emit_16(1282);
emit_16(1217);
emit_16(1282);
emit_16(1218);
emit_16(1283);
emit_16(1219);
emit_16(1283);
emit_16(1218);
emit_16(1283);
emit_16(1219);
emit_16(1284);
emit_16(1220);
emit_16(1284);
emit_16(1219);
emit_16(1284);
emit_16(1220);
emit_16(1285);
emit_16(1221);
emit_16(1285);
emit_16(1220);
emit_16(1285);
emit_16(1221);
emit_16(1286);
emit_16(1222);
emit_16(1286);
emit_16(1221);
emit_16(1286);
emit_16(1222);
emit_16(1287);
emit_16(1223);
emit_16(1287);
emit_16(1222);
emit_16(1287);
emit_16(1223);
emit_16(1288);
emit_16(1224);
emit_16(1288);
emit_16(1223);
emit_16(1288);
emit_16(1224);
emit_16(1289);
emit_16(1225);
emit_16(1289);
emit_16(1224);
emit_16(1289);
emit_16(1225);
emit_16(1290);
emit_16(1226);
emit_16(1290);
emit_16(1225);
emit_16(1290);
emit_16(1226);
emit_16(1291);
emit_16(1227);
emit_16(1291);
emit_16(1226);
emit_16(1291);
emit_16(1227);
emit_16(1292);
emit_16(1228);
emit_16(1292);
emit_16(1227);
emit_16(1292);
emit_16(1228);
emit_16(1293);
emit_16(1229);
emit_16(1293);
emit_16(1228);
emit_16(1293);
emit_16(1229);
emit_16(1294);
emit_16(1230);
emit_16(1294);
emit_16(1229);
emit_16(1294);
emit_16(1230);
emit_16(1295);
emit_16(1231);
emit_16(1295);
emit_16(1230);
emit_16(1295);
emit_16(1231);
emit_16(1296);
emit_16(1232);
emit_16(1296);
emit_16(1231);
emit_16(1296);
emit_16(1232);
emit_16(1297);
emit_16(1233);
emit_16(1297);
emit_16(1232);
emit_16(1297);
emit_16(1233);
emit_16(1298);
emit_16(1234);
emit_16(1298);
emit_16(1233);
emit_16(1298);
emit_16(1234);
emit_16(1299);
emit_16(1235);
emit_16(1299);
emit_16(1234);
emit_16(1299);
emit_16(1235);
emit_16(1300);
emit_16(1236);
emit_16(1300);
emit_16(1235);
emit_16(1300);
emit_16(1236);
emit_16(1301);
emit_16(1237);
emit_16(1301);
emit_16(1236);
emit_16(1301);
emit_16(1237);
emit_16(1302);
emit_16(1238);
emit_16(1302);
emit_16(1237);
emit_16(1302);
emit_16(1238);
emit_16(1303);
emit_16(1239);
emit_16(1303);
emit_16(1238);
emit_16(1303);
emit_16(1239);
emit_16(1304);
emit_16(1240);
emit_16(1304);
emit_16(1239);
emit_16(1304);
emit_16(1240);
emit_16(1305);
emit_16(1241);
emit_16(1305);
emit_16(1240);
emit_16(1305);
emit_16(1241);
emit_16(1306);
emit_16(1242);
emit_16(1306);
emit_16(1241);
emit_16(1306);
emit_16(1242);
emit_16(1307);
emit_16(1243);
emit_16(1307);
emit_16(1242);
emit_16(1307);
emit_16(1243);
emit_16(1308);
emit_16(1244);
emit_16(1308);
emit_16(1243);
emit_16(1308);
emit_16(1244);
emit_16(1309);
emit_16(1245);
emit_16(1309);
emit_16(1244);
emit_16(1309);
emit_16(1245);
emit_16(1310);
emit_16(1246);
emit_16(1310);
emit_16(1245);
emit_16(1310);
emit_16(1246);
emit_16(1311);
emit_16(1247);
emit_16(1311);
emit_16(1246);
emit_16(1311);
emit_16(1247);
emit_16(1312);
emit_16(1248);
emit_16(1312);
emit_16(1247);
emit_16(1312);
emit_16(1248);
emit_16(1313);
emit_16(1249);
emit_16(1313);
emit_16(1248);
emit_16(1313);
emit_16(1249);
emit_16(1314);
emit_16(1250);
emit_16(1314);
emit_16(1249);
emit_16(1314);
emit_16(1250);
emit_16(1315);
emit_16(1251);
emit_16(1315);
emit_16(1250);
emit_16(1315);
emit_16(1251);
emit_16(1316);
emit_16(1252);
emit_16(1316);
emit_16(1251);
emit_16(1316);
emit_16(1252);
emit_16(1317);
emit_16(1253);
emit_16(1317);
emit_16(1252);
emit_16(1317);
emit_16(1253);
emit_16(1318);
emit_16(1254);
emit_16(1318);
emit_16(1253);
emit_16(1318);
emit_16(1254);
emit_16(1319);
emit_16(1255);
emit_16(1319);
emit_16(1254);
emit_16(1319);
emit_16(1255);
emit_16(1320);
emit_16(1256);
emit_16(1320);
emit_16(1255);
emit_16(1320);
emit_16(1256);
emit_16(1321);
emit_16(1257);
emit_16(1321);
emit_16(1256);
emit_16(1321);
emit_16(1257);
emit_16(1322);
emit_16(1258);
emit_16(1322);
emit_16(1257);
emit_16(1322);
emit_16(1258);
emit_16(1323);
emit_16(1259);
emit_16(1323);
emit_16(1258);
emit_16(1323);
emit_16(1259);
emit_16(1324);
emit_16(1260);
emit_16(1324);
emit_16(1259);
emit_16(1324);
emit_16(1260);
emit_16(1325);
emit_16(1261);
emit_16(1325);
emit_16(1260);
emit_16(1325);
emit_16(1261);
emit_16(1326);
emit_16(1262);
emit_16(1326);
emit_16(1261);
emit_16(1326);
emit_16(1262);
emit_16(1327);
emit_16(1263);
emit_16(1327);
emit_16(1262);
emit_16(1327);
emit_16(1263);
emit_16(1328);
emit_16(1264);
emit_16(1328);
emit_16(1263);
emit_16(1328);
emit_16(1264);
emit_16(1329);
emit_16(1265);
emit_16(1329);
emit_16(1264);
emit_16(1329);
emit_16(1265);
emit_16(1330);
emit_16(1266);
emit_16(1330);
emit_16(1265);
emit_16(1330);
emit_16(1266);
emit_16(1331);
emit_16(1267);
emit_16(1331);
emit_16(1266);
emit_16(1331);
emit_16(1267);
emit_16(1332);
emit_16(1268);
emit_16(1332);
emit_16(1267);
emit_16(1332);
emit_16(1268);
emit_16(1333);
emit_16(1269);
emit_16(1333);
emit_16(1268);
emit_16(1333);
emit_16(1269);
emit_16(1334);
emit_16(1270);
emit_16(1334);
emit_16(1269);
emit_16(1334);
emit_16(1270);
emit_16(1335);
emit_16(1271);
emit_16(1335);
emit_16(1270);
emit_16(1335);
emit_16(1271);
emit_16(1336);
emit_16(1272);
emit_16(1336);
emit_16(1271);
emit_16(1336);
emit_16(1272);
emit_16(1337);
emit_16(1273);
emit_16(1337);
emit_16(1272);
emit_16(1337);
emit_16(1273);
emit_16(1338);
emit_16(1274);
emit_16(1338);
emit_16(1273);
emit_16(1338);
emit_16(1274);
emit_16(1339);
emit_16(1275);
emit_16(1339);
emit_16(1274);
emit_16(1339);
emit_16(1275);
emit_16(1340);
emit_16(1276);
emit_16(1340);
emit_16(1275);
emit_16(1340);
emit_16(1276);
emit_16(1341);
emit_16(1277);
emit_16(1341);
emit_16(1276);
emit_16(1341);
emit_16(1277);
emit_16(1342);
emit_16(1278);
emit_16(1342);
emit_16(1277);
emit_16(1342);
emit_16(1278);
emit_16(1343);
emit_16(1279);
emit_16(1343);
emit_16(1278);
emit_16(1344);
emit_16(1280);
emit_16(1345);
emit_16(1281);
emit_16(1345);
emit_16(1280);
emit_16(1345);
emit_16(1281);
emit_16(1346);
emit_16(1282);
emit_16(1346);
emit_16(1281);
emit_16(1346);
emit_16(1282);
emit_16(1347);
emit_16(1283);
emit_16(1347);
emit_16(1282);
emit_16(1347);
emit_16(1283);
emit_16(1348);
emit_16(1284);
emit_16(1348);
emit_16(1283);
emit_16(1348);
emit_16(1284);
emit_16(1349);
emit_16(1285);
emit_16(1349);
emit_16(1284);
emit_16(1349);
emit_16(1285);
emit_16(1350);
emit_16(1286);
emit_16(1350);
emit_16(1285);
emit_16(1350);
emit_16(1286);
emit_16(1351);
emit_16(1287);
emit_16(1351);
emit_16(1286);
emit_16(1351);
emit_16(1287);
emit_16(1352);
emit_16(1288);
emit_16(1352);
emit_16(1287);
emit_16(1352);
emit_16(1288);
emit_16(1353);
emit_16(1289);
emit_16(1353);
emit_16(1288);
emit_16(1353);
emit_16(1289);
emit_16(1354);
emit_16(1290);
emit_16(1354);
emit_16(1289);
emit_16(1354);
emit_16(1290);
emit_16(1355);
emit_16(1291);
emit_16(1355);
emit_16(1290);
emit_16(1355);
emit_16(1291);
emit_16(1356);
emit_16(1292);
emit_16(1356);
emit_16(1291);
emit_16(1356);
emit_16(1292);
emit_16(1357);
emit_16(1293);
emit_16(1357);
emit_16(1292);
emit_16(1357);
emit_16(1293);
emit_16(1358);
emit_16(1294);
emit_16(1358);
emit_16(1293);
emit_16(1358);
emit_16(1294);
emit_16(1359);
emit_16(1295);
emit_16(1359);
emit_16(1294);
emit_16(1359);
emit_16(1295);
emit_16(1360);
emit_16(1296);
emit_16(1360);
emit_16(1295);
emit_16(1360);
emit_16(1296);
emit_16(1361);
emit_16(1297);
emit_16(1361);
emit_16(1296);
emit_16(1361);
emit_16(1297);
emit_16(1362);
emit_16(1298);
emit_16(1362);
emit_16(1297);
emit_16(1362);
emit_16(1298);
emit_16(1363);
emit_16(1299);
emit_16(1363);
emit_16(1298);
emit_16(1363);
emit_16(1299);
emit_16(1364);
emit_16(1300);
emit_16(1364);
emit_16(1299);
emit_16(1364);
emit_16(1300);
emit_16(1365);
emit_16(1301);
emit_16(1365);
emit_16(1300);
emit_16(1365);
emit_16(1301);
emit_16(1366);
emit_16(1302);
emit_16(1366);
emit_16(1301);
emit_16(1366);
emit_16(1302);
emit_16(1367);
emit_16(1303);
emit_16(1367);
emit_16(1302);
emit_16(1367);
emit_16(1303);
emit_16(1368);
emit_16(1304);
emit_16(1368);
emit_16(1303);
emit_16(1368);
emit_16(1304);
emit_16(1369);
emit_16(1305);
emit_16(1369);
emit_16(1304);
emit_16(1369);
emit_16(1305);
emit_16(1370);
emit_16(1306);
emit_16(1370);
emit_16(1305);
emit_16(1370);
emit_16(1306);
emit_16(1371);
emit_16(1307);
emit_16(1371);
emit_16(1306);
emit_16(1371);
emit_16(1307);
emit_16(1372);
emit_16(1308);
emit_16(1372);
emit_16(1307);
emit_16(1372);
emit_16(1308);
emit_16(1373);
emit_16(1309);
emit_16(1373);
emit_16(1308);
emit_16(1373);
emit_16(1309);
emit_16(1374);
emit_16(1310);
emit_16(1374);
emit_16(1309);
emit_16(1374);
emit_16(1310);
emit_16(1375);
emit_16(1311);
emit_16(1375);
emit_16(1310);
emit_16(1375);
emit_16(1311);
emit_16(1376);
emit_16(1312);
emit_16(1376);
emit_16(1311);
emit_16(1376);
emit_16(1312);
emit_16(1377);
emit_16(1313);
emit_16(1377);
emit_16(1312);
emit_16(1377);
emit_16(1313);
emit_16(1378);
emit_16(1314);
emit_16(1378);
emit_16(1313);
emit_16(1378);
emit_16(1314);
emit_16(1379);
emit_16(1315);
emit_16(1379);
emit_16(1314);
emit_16(1379);
emit_16(1315);
emit_16(1380);
emit_16(1316);
emit_16(1380);
emit_16(1315);
emit_16(1380);
emit_16(1316);
emit_16(1381);
emit_16(1317);
emit_16(1381);
emit_16(1316);
emit_16(1381);
emit_16(1317);
emit_16(1382);
emit_16(1318);
emit_16(1382);
emit_16(1317);
emit_16(1382);
emit_16(1318);
emit_16(1383);
emit_16(1319);
emit_16(1383);
emit_16(1318);
emit_16(1383);
emit_16(1319);
emit_16(1384);
emit_16(1320);
emit_16(1384);
emit_16(1319);
emit_16(1384);
emit_16(1320);
emit_16(1385);
emit_16(1321);
emit_16(1385);
emit_16(1320);
emit_16(1385);
emit_16(1321);
emit_16(1386);
emit_16(1322);
emit_16(1386);
emit_16(1321);
emit_16(1386);
emit_16(1322);
emit_16(1387);
emit_16(1323);
emit_16(1387);
emit_16(1322);
emit_16(1387);
emit_16(1323);
emit_16(1388);
emit_16(1324);
emit_16(1388);
emit_16(1323);
emit_16(1388);
emit_16(1324);
emit_16(1389);
emit_16(1325);
emit_16(1389);
emit_16(1324);
emit_16(1389);
emit_16(1325);
emit_16(1390);
emit_16(1326);
emit_16(1390);
emit_16(1325);
emit_16(1390);
emit_16(1326);
emit_16(1391);
emit_16(1327);
emit_16(1391);
emit_16(1326);
emit_16(1391);
emit_16(1327);
emit_16(1392);
emit_16(1328);
emit_16(1392);
emit_16(1327);
emit_16(1392);
emit_16(1328);
emit_16(1393);
emit_16(1329);
emit_16(1393);
emit_16(1328);
emit_16(1393);
emit_16(1329);
emit_16(1394);
emit_16(1330);
emit_16(1394);
emit_16(1329);
emit_16(1394);
emit_16(1330);
emit_16(1395);
emit_16(1331);
emit_16(1395);
emit_16(1330);
emit_16(1395);
emit_16(1331);
emit_16(1396);
emit_16(1332);
emit_16(1396);
emit_16(1331);
emit_16(1396);
emit_16(1332);
emit_16(1397);
emit_16(1333);
emit_16(1397);
emit_16(1332);
emit_16(1397);
emit_16(1333);
emit_16(1398);
emit_16(1334);
emit_16(1398);
emit_16(1333);
emit_16(1398);
emit_16(1334);
emit_16(1399);
emit_16(1335);
emit_16(1399);
emit_16(1334);
emit_16(1399);
emit_16(1335);
emit_16(1400);
emit_16(1336);
emit_16(1400);
emit_16(1335);
emit_16(1400);
emit_16(1336);
emit_16(1401);
emit_16(1337);
emit_16(1401);
emit_16(1336);
emit_16(1401);
emit_16(1337);
emit_16(1402);
emit_16(1338);
emit_16(1402);
emit_16(1337);
emit_16(1402);
emit_16(1338);
emit_16(1403);
emit_16(1339);
emit_16(1403);
emit_16(1338);
emit_16(1403);
emit_16(1339);
emit_16(1404);
emit_16(1340);
emit_16(1404);
emit_16(1339);
emit_16(1404);
emit_16(1340);
emit_16(1405);
emit_16(1341);
emit_16(1405);
emit_16(1340);
emit_16(1405);
emit_16(1341);
emit_16(1406);
emit_16(1342);
emit_16(1406);
emit_16(1341);
emit_16(1406);
emit_16(1342);
emit_16(1407);
emit_16(1343);
emit_16(1407);
emit_16(1342);
emit_16(1408);
emit_16(1344);
emit_16(1409);
emit_16(1345);
emit_16(1409);
emit_16(1344);
emit_16(1409);
emit_16(1345);
emit_16(1410);
emit_16(1346);
emit_16(1410);
emit_16(1345);
emit_16(1410);
emit_16(1346);
emit_16(1411);
emit_16(1347);
emit_16(1411);
emit_16(1346);
emit_16(1411);
emit_16(1347);
emit_16(1412);
emit_16(1348);
emit_16(1412);
emit_16(1347);
emit_16(1412);
emit_16(1348);
emit_16(1413);
emit_16(1349);
emit_16(1413);
emit_16(1348);
emit_16(1413);
emit_16(1349);
emit_16(1414);
emit_16(1350);
emit_16(1414);
emit_16(1349);
emit_16(1414);
emit_16(1350);
emit_16(1415);
emit_16(1351);
emit_16(1415);
emit_16(1350);
emit_16(1415);
emit_16(1351);
emit_16(1416);
emit_16(1352);
emit_16(1416);
emit_16(1351);
emit_16(1416);
emit_16(1352);
emit_16(1417);
emit_16(1353);
emit_16(1417);
emit_16(1352);
emit_16(1417);
emit_16(1353);
emit_16(1418);
emit_16(1354);
emit_16(1418);
emit_16(1353);
emit_16(1418);
emit_16(1354);
emit_16(1419);
emit_16(1355);
emit_16(1419);
emit_16(1354);
emit_16(1419);
emit_16(1355);
emit_16(1420);
emit_16(1356);
emit_16(1420);
emit_16(1355);
emit_16(1420);
emit_16(1356);
emit_16(1421);
emit_16(1357);
emit_16(1421);
emit_16(1356);
emit_16(1421);
emit_16(1357);
emit_16(1422);
emit_16(1358);
emit_16(1422);
emit_16(1357);
emit_16(1422);
emit_16(1358);
emit_16(1423);
emit_16(1359);
emit_16(1423);
emit_16(1358);
emit_16(1423);
emit_16(1359);
emit_16(1424);
emit_16(1360);
emit_16(1424);
emit_16(1359);
emit_16(1424);
emit_16(1360);
emit_16(1425);
emit_16(1361);
emit_16(1425);
emit_16(1360);
emit_16(1425);
emit_16(1361);
emit_16(1426);
emit_16(1362);
emit_16(1426);
emit_16(1361);
emit_16(1426);
emit_16(1362);
emit_16(1427);
emit_16(1363);
emit_16(1427);
emit_16(1362);
emit_16(1427);
emit_16(1363);
emit_16(1428);
emit_16(1364);
emit_16(1428);
emit_16(1363);
emit_16(1428);
emit_16(1364);
emit_16(1429);
emit_16(1365);
emit_16(1429);
emit_16(1364);
emit_16(1429);
emit_16(1365);
emit_16(1430);
emit_16(1366);
emit_16(1430);
emit_16(1365);
emit_16(1430);
emit_16(1366);
emit_16(1431);
emit_16(1367);
emit_16(1431);
emit_16(1366);
emit_16(1431);
emit_16(1367);
emit_16(1432);
emit_16(1368);
emit_16(1432);
emit_16(1367);
emit_16(1432);
emit_16(1368);
emit_16(1433);
emit_16(1369);
emit_16(1433);
emit_16(1368);
emit_16(1433);
emit_16(1369);
emit_16(1434);
emit_16(1370);
emit_16(1434);
emit_16(1369);
emit_16(1434);
emit_16(1370);
emit_16(1435);
emit_16(1371);
emit_16(1435);
emit_16(1370);
emit_16(1435);
emit_16(1371);
emit_16(1436);
emit_16(1372);
emit_16(1436);
emit_16(1371);
emit_16(1436);
emit_16(1372);
emit_16(1437);
emit_16(1373);
emit_16(1437);
emit_16(1372);
emit_16(1437);
emit_16(1373);
emit_16(1438);
emit_16(1374);
emit_16(1438);
emit_16(1373);
emit_16(1438);
emit_16(1374);
emit_16(1439);
emit_16(1375);
emit_16(1439);
emit_16(1374);
emit_16(1439);
emit_16(1375);
emit_16(1440);
emit_16(1376);
emit_16(1440);
emit_16(1375);
emit_16(1440);
emit_16(1376);
emit_16(1441);
emit_16(1377);
emit_16(1441);
emit_16(1376);
emit_16(1441);
emit_16(1377);
emit_16(1442);
emit_16(1378);
emit_16(1442);
emit_16(1377);
emit_16(1442);
emit_16(1378);
emit_16(1443);
emit_16(1379);
emit_16(1443);
emit_16(1378);
emit_16(1443);
emit_16(1379);
emit_16(1444);
emit_16(1380);
emit_16(1444);
emit_16(1379);
emit_16(1444);
emit_16(1380);
emit_16(1445);
emit_16(1381);
emit_16(1445);
emit_16(1380);
emit_16(1445);
emit_16(1381);
emit_16(1446);
emit_16(1382);
emit_16(1446);
emit_16(1381);
emit_16(1446);
emit_16(1382);
emit_16(1447);
emit_16(1383);
emit_16(1447);
emit_16(1382);
emit_16(1447);
emit_16(1383);
emit_16(1448);
emit_16(1384);
emit_16(1448);
emit_16(1383);
emit_16(1448);
emit_16(1384);
emit_16(1449);
emit_16(1385);
emit_16(1449);
emit_16(1384);
emit_16(1449);
emit_16(1385);
emit_16(1450);
emit_16(1386);
emit_16(1450);
emit_16(1385);
emit_16(1450);
emit_16(1386);
emit_16(1451);
emit_16(1387);
emit_16(1451);
emit_16(1386);
emit_16(1451);
emit_16(1387);
emit_16(1452);
emit_16(1388);
emit_16(1452);
emit_16(1387);
emit_16(1452);
emit_16(1388);
emit_16(1453);
emit_16(1389);
emit_16(1453);
emit_16(1388);
emit_16(1453);
emit_16(1389);
emit_16(1454);
emit_16(1390);
emit_16(1454);
emit_16(1389);
emit_16(1454);
emit_16(1390);
emit_16(1455);
emit_16(1391);
emit_16(1455);
emit_16(1390);
emit_16(1455);
emit_16(1391);
emit_16(1456);
emit_16(1392);
emit_16(1456);
emit_16(1391);
emit_16(1456);
emit_16(1392);
emit_16(1457);
emit_16(1393);
emit_16(1457);
emit_16(1392);
emit_16(1457);
emit_16(1393);
emit_16(1458);
emit_16(1394);
emit_16(1458);
emit_16(1393);
emit_16(1458);
emit_16(1394);
emit_16(1459);
emit_16(1395);
emit_16(1459);
emit_16(1394);
emit_16(1459);
emit_16(1395);
emit_16(1460);
emit_16(1396);
emit_16(1460);
emit_16(1395);
emit_16(1460);
emit_16(1396);
emit_16(1461);
emit_16(1397);
emit_16(1461);
emit_16(1396);
emit_16(1461);
emit_16(1397);
emit_16(1462);
emit_16(1398);
emit_16(1462);
emit_16(1397);
emit_16(1462);
emit_16(1398);
emit_16(1463);
emit_16(1399);
emit_16(1463);
emit_16(1398);
emit_16(1463);
emit_16(1399);
emit_16(1464);
emit_16(1400);
emit_16(1464);
emit_16(1399);
emit_16(1464);
emit_16(1400);
emit_16(1465);
emit_16(1401);
emit_16(1465);
emit_16(1400);
emit_16(1465);
emit_16(1401);
emit_16(1466);
emit_16(1402);
emit_16(1466);
emit_16(1401);
emit_16(1466);
emit_16(1402);
emit_16(1467);
emit_16(1403);
emit_16(1467);
emit_16(1402);
emit_16(1467);
emit_16(1403);
emit_16(1468);
emit_16(1404);
emit_16(1468);
emit_16(1403);
emit_16(1468);
emit_16(1404);
emit_16(1469);
emit_16(1405);
emit_16(1469);
emit_16(1404);
emit_16(1469);
emit_16(1405);
emit_16(1470);
emit_16(1406);
emit_16(1470);
emit_16(1405);
emit_16(1470);
emit_16(1406);
emit_16(1471);
emit_16(1407);
emit_16(1471);
emit_16(1406);
emit_16(1472);
emit_16(1408);
emit_16(1473);
emit_16(1409);
emit_16(1473);
emit_16(1408);
emit_16(1473);
emit_16(1409);
emit_16(1474);
emit_16(1410);
emit_16(1474);
emit_16(1409);
emit_16(1474);
emit_16(1410);
emit_16(1475);
emit_16(1411);
emit_16(1475);
emit_16(1410);
emit_16(1475);
emit_16(1411);
emit_16(1476);
emit_16(1412);
emit_16(1476);
emit_16(1411);
emit_16(1476);
emit_16(1412);
emit_16(1477);
emit_16(1413);
emit_16(1477);
emit_16(1412);
emit_16(1477);
emit_16(1413);
emit_16(1478);
emit_16(1414);
emit_16(1478);
emit_16(1413);
emit_16(1478);
emit_16(1414);
emit_16(1479);
emit_16(1415);
emit_16(1479);
emit_16(1414);
emit_16(1479);
emit_16(1415);
emit_16(1480);
emit_16(1416);
emit_16(1480);
emit_16(1415);
emit_16(1480);
emit_16(1416);
emit_16(1481);
emit_16(1417);
emit_16(1481);
emit_16(1416);
emit_16(1481);
emit_16(1417);
emit_16(1482);
emit_16(1418);
emit_16(1482);
emit_16(1417);
emit_16(1482);
emit_16(1418);
emit_16(1483);
emit_16(1419);
emit_16(1483);
emit_16(1418);
emit_16(1483);
emit_16(1419);
emit_16(1484);
emit_16(1420);
emit_16(1484);
emit_16(1419);
emit_16(1484);
emit_16(1420);
emit_16(1485);
emit_16(1421);
emit_16(1485);
emit_16(1420);
emit_16(1485);
emit_16(1421);
emit_16(1486);
emit_16(1422);
emit_16(1486);
emit_16(1421);
emit_16(1486);
emit_16(1422);
emit_16(1487);
emit_16(1423);
emit_16(1487);
emit_16(1422);
emit_16(1487);
emit_16(1423);
emit_16(1488);
emit_16(1424);
emit_16(1488);
emit_16(1423);
emit_16(1488);
emit_16(1424);
emit_16(1489);
emit_16(1425);
emit_16(1489);
emit_16(1424);
emit_16(1489);
emit_16(1425);
emit_16(1490);
emit_16(1426);
emit_16(1490);
emit_16(1425);
emit_16(1490);
emit_16(1426);
emit_16(1491);
emit_16(1427);
emit_16(1491);
emit_16(1426);
emit_16(1491);
emit_16(1427);
emit_16(1492);
emit_16(1428);
emit_16(1492);
emit_16(1427);
emit_16(1492);
emit_16(1428);
emit_16(1493);
emit_16(1429);
emit_16(1493);
emit_16(1428);
emit_16(1493);
emit_16(1429);
emit_16(1494);
emit_16(1430);
emit_16(1494);
emit_16(1429);
emit_16(1494);
emit_16(1430);
emit_16(1495);
emit_16(1431);
emit_16(1495);
emit_16(1430);
emit_16(1495);
emit_16(1431);
emit_16(1496);
emit_16(1432);
emit_16(1496);
emit_16(1431);
emit_16(1496);
emit_16(1432);
emit_16(1497);
emit_16(1433);
emit_16(1497);
emit_16(1432);
emit_16(1497);
emit_16(1433);
emit_16(1498);
emit_16(1434);
emit_16(1498);
emit_16(1433);
emit_16(1498);
emit_16(1434);
emit_16(1499);
emit_16(1435);
emit_16(1499);
emit_16(1434);
emit_16(1499);
emit_16(1435);
emit_16(1500);
emit_16(1436);
emit_16(1500);
emit_16(1435);
emit_16(1500);
emit_16(1436);
emit_16(1501);
emit_16(1437);
emit_16(1501);
emit_16(1436);
emit_16(1501);
emit_16(1437);
emit_16(1502);
emit_16(1438);
emit_16(1502);
emit_16(1437);
emit_16(1502);
emit_16(1438);
emit_16(1503);
emit_16(1439);
emit_16(1503);
emit_16(1438);
emit_16(1503);
emit_16(1439);
emit_16(1504);
emit_16(1440);
emit_16(1504);
emit_16(1439);
emit_16(1504);
emit_16(1440);
emit_16(1505);
emit_16(1441);
emit_16(1505);
emit_16(1440);
emit_16(1505);
emit_16(1441);
emit_16(1506);
emit_16(1442);
emit_16(1506);
emit_16(1441);
emit_16(1506);
emit_16(1442);
emit_16(1507);
emit_16(1443);
emit_16(1507);
emit_16(1442);
emit_16(1507);
emit_16(1443);
emit_16(1508);
emit_16(1444);
emit_16(1508);
emit_16(1443);
emit_16(1508);
emit_16(1444);
emit_16(1509);
emit_16(1445);
emit_16(1509);
emit_16(1444);
emit_16(1509);
emit_16(1445);
emit_16(1510);
emit_16(1446);
emit_16(1510);
emit_16(1445);
emit_16(1510);
emit_16(1446);
emit_16(1511);
emit_16(1447);
emit_16(1511);
emit_16(1446);
emit_16(1511);
emit_16(1447);
emit_16(1512);
emit_16(1448);
emit_16(1512);
emit_16(1447);
emit_16(1512);
emit_16(1448);
emit_16(1513);
emit_16(1449);
emit_16(1513);
emit_16(1448);
emit_16(1513);
emit_16(1449);
emit_16(1514);
emit_16(1450);
emit_16(1514);
emit_16(1449);
emit_16(1514);
emit_16(1450);
emit_16(1515);
emit_16(1451);
emit_16(1515);
emit_16(1450);
emit_16(1515);
emit_16(1451);
emit_16(1516);
emit_16(1452);
emit_16(1516);
emit_16(1451);
emit_16(1516);
emit_16(1452);
emit_16(1517);
emit_16(1453);
emit_16(1517);
emit_16(1452);
emit_16(1517);
emit_16(1453);
emit_16(1518);
emit_16(1454);
emit_16(1518);
emit_16(1453);
emit_16(1518);
emit_16(1454);
emit_16(1519);
emit_16(1455);
emit_16(1519);
emit_16(1454);
emit_16(1519);
emit_16(1455);
emit_16(1520);
emit_16(1456);
emit_16(1520);
emit_16(1455);
emit_16(1520);
emit_16(1456);
emit_16(1521);
emit_16(1457);
emit_16(1521);
emit_16(1456);
emit_16(1521);
emit_16(1457);
emit_16(1522);
emit_16(1458);
emit_16(1522);
emit_16(1457);
emit_16(1522);
emit_16(1458);
emit_16(1523);
emit_16(1459);
emit_16(1523);
emit_16(1458);
emit_16(1523);
emit_16(1459);
emit_16(1524);
emit_16(1460);
emit_16(1524);
emit_16(1459);
emit_16(1524);
emit_16(1460);
emit_16(1525);
emit_16(1461);
emit_16(1525);
emit_16(1460);
emit_16(1525);
emit_16(1461);
emit_16(1526);
emit_16(1462);
emit_16(1526);
emit_16(1461);
emit_16(1526);
emit_16(1462);
emit_16(1527);
emit_16(1463);
emit_16(1527);
emit_16(1462);
emit_16(1527);
emit_16(1463);
emit_16(1528);
emit_16(1464);
emit_16(1528);
emit_16(1463);
emit_16(1528);
emit_16(1464);
emit_16(1529);
emit_16(1465);
emit_16(1529);
emit_16(1464);
emit_16(1529);
emit_16(1465);
emit_16(1530);
emit_16(1466);
emit_16(1530);
emit_16(1465);
emit_16(1530);
emit_16(1466);
emit_16(1531);
emit_16(1467);
emit_16(1531);
emit_16(1466);
emit_16(1531);
emit_16(1467);
emit_16(1532);
emit_16(1468);
emit_16(1532);
emit_16(1467);
emit_16(1532);
emit_16(1468);
emit_16(1533);
emit_16(1469);
emit_16(1533);
emit_16(1468);
emit_16(1533);
emit_16(1469);
emit_16(1534);
emit_16(1470);
emit_16(1534);
emit_16(1469);
emit_16(1534);
emit_16(1470);
emit_16(1535);
emit_16(1471);
emit_16(1535);
emit_16(1470);
emit_16(1536);
emit_16(1472);
emit_16(1537);
emit_16(1473);
emit_16(1537);
emit_16(1472);
emit_16(1537);
emit_16(1473);
emit_16(1538);
emit_16(1474);
emit_16(1538);
emit_16(1473);
emit_16(1538);
emit_16(1474);
emit_16(1539);
emit_16(1475);
emit_16(1539);
emit_16(1474);
emit_16(1539);
emit_16(1475);
emit_16(1540);
emit_16(1476);
emit_16(1540);
emit_16(1475);
emit_16(1540);
emit_16(1476);
emit_16(1541);
emit_16(1477);
emit_16(1541);
emit_16(1476);
emit_16(1541);
emit_16(1477);
emit_16(1542);
emit_16(1478);
emit_16(1542);
emit_16(1477);
emit_16(1542);
emit_16(1478);
emit_16(1543);
emit_16(1479);
emit_16(1543);
emit_16(1478);
emit_16(1543);
emit_16(1479);
emit_16(1544);
emit_16(1480);
emit_16(1544);
emit_16(1479);
emit_16(1544);
emit_16(1480);
emit_16(1545);
emit_16(1481);
emit_16(1545);
emit_16(1480);
emit_16(1545);
emit_16(1481);
emit_16(1546);
emit_16(1482);
emit_16(1546);
emit_16(1481);
emit_16(1546);
emit_16(1482);
emit_16(1547);
emit_16(1483);
emit_16(1547);
emit_16(1482);
emit_16(1547);
emit_16(1483);
emit_16(1548);
emit_16(1484);
emit_16(1548);
emit_16(1483);
emit_16(1548);
emit_16(1484);
emit_16(1549);
emit_16(1485);
emit_16(1549);
emit_16(1484);
emit_16(1549);
emit_16(1485);
emit_16(1550);
emit_16(1486);
emit_16(1550);
emit_16(1485);
emit_16(1550);
emit_16(1486);
emit_16(1551);
emit_16(1487);
emit_16(1551);
emit_16(1486);
emit_16(1551);
emit_16(1487);
emit_16(1552);
emit_16(1488);
emit_16(1552);
emit_16(1487);
emit_16(1552);
emit_16(1488);
emit_16(1553);
emit_16(1489);
emit_16(1553);
emit_16(1488);
emit_16(1553);
emit_16(1489);
emit_16(1554);
emit_16(1490);
emit_16(1554);
emit_16(1489);
emit_16(1554);
emit_16(1490);
emit_16(1555);
emit_16(1491);
emit_16(1555);
emit_16(1490);
emit_16(1555);
emit_16(1491);
emit_16(1556);
emit_16(1492);
emit_16(1556);
emit_16(1491);
emit_16(1556);
emit_16(1492);
emit_16(1557);
emit_16(1493);
emit_16(1557);
emit_16(1492);
emit_16(1557);
emit_16(1493);
emit_16(1558);
emit_16(1494);
emit_16(1558);
emit_16(1493);
emit_16(1558);
emit_16(1494);
emit_16(1559);
emit_16(1495);
emit_16(1559);
emit_16(1494);
emit_16(1559);
emit_16(1495);
emit_16(1560);
emit_16(1496);
emit_16(1560);
emit_16(1495);
emit_16(1560);
emit_16(1496);
emit_16(1561);
emit_16(1497);
emit_16(1561);
emit_16(1496);
emit_16(1561);
emit_16(1497);
emit_16(1562);
emit_16(1498);
emit_16(1562);
emit_16(1497);
emit_16(1562);
emit_16(1498);
emit_16(1563);
emit_16(1499);
emit_16(1563);
emit_16(1498);
emit_16(1563);
emit_16(1499);
emit_16(1564);
emit_16(1500);
emit_16(1564);
emit_16(1499);
emit_16(1564);
emit_16(1500);
emit_16(1565);
emit_16(1501);
emit_16(1565);
emit_16(1500);
emit_16(1565);
emit_16(1501);
emit_16(1566);
emit_16(1502);
emit_16(1566);
emit_16(1501);
emit_16(1566);
emit_16(1502);
emit_16(1567);
emit_16(1503);
emit_16(1567);
emit_16(1502);
emit_16(1567);
emit_16(1503);
emit_16(1568);
emit_16(1504);
emit_16(1568);
emit_16(1503);
emit_16(1568);
emit_16(1504);
emit_16(1569);
emit_16(1505);
emit_16(1569);
emit_16(1504);
emit_16(1569);
emit_16(1505);
emit_16(1570);
emit_16(1506);
emit_16(1570);
emit_16(1505);
emit_16(1570);
emit_16(1506);
emit_16(1571);
emit_16(1507);
emit_16(1571);
emit_16(1506);
emit_16(1571);
emit_16(1507);
emit_16(1572);
emit_16(1508);
emit_16(1572);
emit_16(1507);
emit_16(1572);
emit_16(1508);
emit_16(1573);
emit_16(1509);
emit_16(1573);
emit_16(1508);
emit_16(1573);
emit_16(1509);
emit_16(1574);
emit_16(1510);
emit_16(1574);
emit_16(1509);
emit_16(1574);
emit_16(1510);
emit_16(1575);
emit_16(1511);
emit_16(1575);
emit_16(1510);
emit_16(1575);
emit_16(1511);
emit_16(1576);
emit_16(1512);
emit_16(1576);
emit_16(1511);
emit_16(1576);
emit_16(1512);
emit_16(1577);
emit_16(1513);
emit_16(1577);
emit_16(1512);
emit_16(1577);
emit_16(1513);
emit_16(1578);
emit_16(1514);
emit_16(1578);
emit_16(1513);
emit_16(1578);
emit_16(1514);
emit_16(1579);
emit_16(1515);
emit_16(1579);
emit_16(1514);
emit_16(1579);
emit_16(1515);
emit_16(1580);
emit_16(1516);
emit_16(1580);
emit_16(1515);
emit_16(1580);
emit_16(1516);
emit_16(1581);
emit_16(1517);
emit_16(1581);
emit_16(1516);
emit_16(1581);
emit_16(1517);
emit_16(1582);
emit_16(1518);
emit_16(1582);
emit_16(1517);
emit_16(1582);
emit_16(1518);
emit_16(1583);
emit_16(1519);
emit_16(1583);
emit_16(1518);
emit_16(1583);
emit_16(1519);
emit_16(1584);
emit_16(1520);
emit_16(1584);
emit_16(1519);
emit_16(1584);
emit_16(1520);
emit_16(1585);
emit_16(1521);
emit_16(1585);
emit_16(1520);
emit_16(1585);
emit_16(1521);
emit_16(1586);
emit_16(1522);
emit_16(1586);
emit_16(1521);
emit_16(1586);
emit_16(1522);
emit_16(1587);
emit_16(1523);
emit_16(1587);
emit_16(1522);
emit_16(1587);
emit_16(1523);
emit_16(1588);
emit_16(1524);
emit_16(1588);
emit_16(1523);
emit_16(1588);
emit_16(1524);
emit_16(1589);
emit_16(1525);
emit_16(1589);
emit_16(1524);
emit_16(1589);
emit_16(1525);
emit_16(1590);
emit_16(1526);
emit_16(1590);
emit_16(1525);
emit_16(1590);
emit_16(1526);
emit_16(1591);
emit_16(1527);
emit_16(1591);
emit_16(1526);
emit_16(1591);
emit_16(1527);
emit_16(1592);
emit_16(1528);
emit_16(1592);
emit_16(1527);
emit_16(1592);
emit_16(1528);
emit_16(1593);
emit_16(1529);
emit_16(1593);
emit_16(1528);
emit_16(1593);
emit_16(1529);
emit_16(1594);
emit_16(1530);
emit_16(1594);
emit_16(1529);
emit_16(1594);
emit_16(1530);
emit_16(1595);
emit_16(1531);
emit_16(1595);
emit_16(1530);
emit_16(1595);
emit_16(1531);
emit_16(1596);
emit_16(1532);
emit_16(1596);
emit_16(1531);
emit_16(1596);
emit_16(1532);
emit_16(1597);
emit_16(1533);
emit_16(1597);
emit_16(1532);
emit_16(1597);
emit_16(1533);
emit_16(1598);
emit_16(1534);
emit_16(1598);
emit_16(1533);
emit_16(1598);
emit_16(1534);
emit_16(1599);
emit_16(1535);
emit_16(1599);
emit_16(1534);
emit_16(1600);
emit_16(1536);
emit_16(1601);
emit_16(1537);
emit_16(1601);
emit_16(1536);
emit_16(1601);
emit_16(1537);
emit_16(1602);
emit_16(1538);
emit_16(1602);
emit_16(1537);
emit_16(1602);
emit_16(1538);
emit_16(1603);
emit_16(1539);
emit_16(1603);
emit_16(1538);
emit_16(1603);
emit_16(1539);
emit_16(1604);
emit_16(1540);
emit_16(1604);
emit_16(1539);
emit_16(1604);
emit_16(1540);
emit_16(1605);
emit_16(1541);
emit_16(1605);
emit_16(1540);
emit_16(1605);
emit_16(1541);
emit_16(1606);
emit_16(1542);
emit_16(1606);
emit_16(1541);
emit_16(1606);
emit_16(1542);
emit_16(1607);
emit_16(1543);
emit_16(1607);
emit_16(1542);
emit_16(1607);
emit_16(1543);
emit_16(1608);
emit_16(1544);
emit_16(1608);
emit_16(1543);
emit_16(1608);
emit_16(1544);
emit_16(1609);
emit_16(1545);
emit_16(1609);
emit_16(1544);
emit_16(1609);
emit_16(1545);
emit_16(1610);
emit_16(1546);
emit_16(1610);
emit_16(1545);
emit_16(1610);
emit_16(1546);
emit_16(1611);
emit_16(1547);
emit_16(1611);
emit_16(1546);
emit_16(1611);
emit_16(1547);
emit_16(1612);
emit_16(1548);
emit_16(1612);
emit_16(1547);
emit_16(1612);
emit_16(1548);
emit_16(1613);
emit_16(1549);
emit_16(1613);
emit_16(1548);
emit_16(1613);
emit_16(1549);
emit_16(1614);
emit_16(1550);
emit_16(1614);
emit_16(1549);
emit_16(1614);
emit_16(1550);
emit_16(1615);
emit_16(1551);
emit_16(1615);
emit_16(1550);
emit_16(1615);
emit_16(1551);
emit_16(1616);
emit_16(1552);
emit_16(1616);
emit_16(1551);
emit_16(1616);
emit_16(1552);
emit_16(1617);
emit_16(1553);
emit_16(1617);
emit_16(1552);
emit_16(1617);
emit_16(1553);
emit_16(1618);
emit_16(1554);
emit_16(1618);
emit_16(1553);
emit_16(1618);
emit_16(1554);
emit_16(1619);
emit_16(1555);
emit_16(1619);
emit_16(1554);
emit_16(1619);
emit_16(1555);
emit_16(1620);
emit_16(1556);
emit_16(1620);
emit_16(1555);
emit_16(1620);
emit_16(1556);
emit_16(1621);
emit_16(1557);
emit_16(1621);
emit_16(1556);
emit_16(1621);
emit_16(1557);
emit_16(1622);
emit_16(1558);
emit_16(1622);
emit_16(1557);
emit_16(1622);
emit_16(1558);
emit_16(1623);
emit_16(1559);
emit_16(1623);
emit_16(1558);
emit_16(1623);
emit_16(1559);
emit_16(1624);
emit_16(1560);
emit_16(1624);
emit_16(1559);
emit_16(1624);
emit_16(1560);
emit_16(1625);
emit_16(1561);
emit_16(1625);
emit_16(1560);
emit_16(1625);
emit_16(1561);
emit_16(1626);
emit_16(1562);
emit_16(1626);
emit_16(1561);
emit_16(1626);
emit_16(1562);
emit_16(1627);
emit_16(1563);
emit_16(1627);
emit_16(1562);
emit_16(1627);
emit_16(1563);
emit_16(1628);
emit_16(1564);
emit_16(1628);
emit_16(1563);
emit_16(1628);
emit_16(1564);
emit_16(1629);
emit_16(1565);
emit_16(1629);
emit_16(1564);
emit_16(1629);
emit_16(1565);
emit_16(1630);
emit_16(1566);
emit_16(1630);
emit_16(1565);
emit_16(1630);
emit_16(1566);
emit_16(1631);
emit_16(1567);
emit_16(1631);
emit_16(1566);
emit_16(1631);
emit_16(1567);
emit_16(1632);
emit_16(1568);
emit_16(1632);
emit_16(1567);
emit_16(1632);
emit_16(1568);
emit_16(1633);
emit_16(1569);
emit_16(1633);
emit_16(1568);
emit_16(1633);
emit_16(1569);
emit_16(1634);
emit_16(1570);
emit_16(1634);
emit_16(1569);
emit_16(1634);
emit_16(1570);
emit_16(1635);
emit_16(1571);
emit_16(1635);
emit_16(1570);
emit_16(1635);
emit_16(1571);
emit_16(1636);
emit_16(1572);
emit_16(1636);
emit_16(1571);
emit_16(1636);
emit_16(1572);
emit_16(1637);
emit_16(1573);
emit_16(1637);
emit_16(1572);
emit_16(1637);
emit_16(1573);
emit_16(1638);
emit_16(1574);
emit_16(1638);
emit_16(1573);
emit_16(1638);
emit_16(1574);
emit_16(1639);
emit_16(1575);
emit_16(1639);
emit_16(1574);
emit_16(1639);
emit_16(1575);
emit_16(1640);
emit_16(1576);
emit_16(1640);
emit_16(1575);
emit_16(1640);
emit_16(1576);
emit_16(1641);
emit_16(1577);
emit_16(1641);
emit_16(1576);
emit_16(1641);
emit_16(1577);
emit_16(1642);
emit_16(1578);
emit_16(1642);
emit_16(1577);
emit_16(1642);
emit_16(1578);
emit_16(1643);
emit_16(1579);
emit_16(1643);
emit_16(1578);
emit_16(1643);
emit_16(1579);
emit_16(1644);
emit_16(1580);
emit_16(1644);
emit_16(1579);
emit_16(1644);
emit_16(1580);
emit_16(1645);
emit_16(1581);
emit_16(1645);
emit_16(1580);
emit_16(1645);
emit_16(1581);
emit_16(1646);
emit_16(1582);
emit_16(1646);
emit_16(1581);
emit_16(1646);
emit_16(1582);
emit_16(1647);
emit_16(1583);
emit_16(1647);
emit_16(1582);
emit_16(1647);
emit_16(1583);
emit_16(1648);
emit_16(1584);
emit_16(1648);
emit_16(1583);
emit_16(1648);
emit_16(1584);
emit_16(1649);
emit_16(1585);
emit_16(1649);
emit_16(1584);
emit_16(1649);
emit_16(1585);
emit_16(1650);
emit_16(1586);
emit_16(1650);
emit_16(1585);
emit_16(1650);
emit_16(1586);
emit_16(1651);
emit_16(1587);
emit_16(1651);
emit_16(1586);
emit_16(1651);
emit_16(1587);
emit_16(1652);
emit_16(1588);
emit_16(1652);
emit_16(1587);
emit_16(1652);
emit_16(1588);
emit_16(1653);
emit_16(1589);
emit_16(1653);
emit_16(1588);
emit_16(1653);
emit_16(1589);
emit_16(1654);
emit_16(1590);
emit_16(1654);
emit_16(1589);
emit_16(1654);
emit_16(1590);
emit_16(1655);
emit_16(1591);
emit_16(1655);
emit_16(1590);
emit_16(1655);
emit_16(1591);
emit_16(1656);
emit_16(1592);
emit_16(1656);
emit_16(1591);
emit_16(1656);
emit_16(1592);
emit_16(1657);
emit_16(1593);
emit_16(1657);
emit_16(1592);
emit_16(1657);
emit_16(1593);
emit_16(1658);
emit_16(1594);
emit_16(1658);
emit_16(1593);
emit_16(1658);
emit_16(1594);
emit_16(1659);
emit_16(1595);
emit_16(1659);
emit_16(1594);
emit_16(1659);
emit_16(1595);
emit_16(1660);
emit_16(1596);
emit_16(1660);
emit_16(1595);
emit_16(1660);
emit_16(1596);
emit_16(1661);
emit_16(1597);
emit_16(1661);
emit_16(1596);
emit_16(1661);
emit_16(1597);
emit_16(1662);
emit_16(1598);
emit_16(1662);
emit_16(1597);
emit_16(1662);
emit_16(1598);
emit_16(1663);
emit_16(1599);
emit_16(1663);
emit_16(1598);
emit_16(1664);
emit_16(1600);
emit_16(1665);
emit_16(1601);
emit_16(1665);
emit_16(1600);
emit_16(1665);
emit_16(1601);
emit_16(1666);
emit_16(1602);
emit_16(1666);
emit_16(1601);
emit_16(1666);
emit_16(1602);
emit_16(1667);
emit_16(1603);
emit_16(1667);
emit_16(1602);
emit_16(1667);
emit_16(1603);
emit_16(1668);
emit_16(1604);
emit_16(1668);
emit_16(1603);
emit_16(1668);
emit_16(1604);
emit_16(1669);
emit_16(1605);
emit_16(1669);
emit_16(1604);
emit_16(1669);
emit_16(1605);
emit_16(1670);
emit_16(1606);
emit_16(1670);
emit_16(1605);
emit_16(1670);
emit_16(1606);
emit_16(1671);
emit_16(1607);
emit_16(1671);
emit_16(1606);
emit_16(1671);
emit_16(1607);
emit_16(1672);
emit_16(1608);
emit_16(1672);
emit_16(1607);
emit_16(1672);
emit_16(1608);
emit_16(1673);
emit_16(1609);
emit_16(1673);
emit_16(1608);
emit_16(1673);
emit_16(1609);
emit_16(1674);
emit_16(1610);
emit_16(1674);
emit_16(1609);
emit_16(1674);
emit_16(1610);
emit_16(1675);
emit_16(1611);
emit_16(1675);
emit_16(1610);
emit_16(1675);
emit_16(1611);
emit_16(1676);
emit_16(1612);
emit_16(1676);
emit_16(1611);
emit_16(1676);
emit_16(1612);
emit_16(1677);
emit_16(1613);
emit_16(1677);
emit_16(1612);
emit_16(1677);
emit_16(1613);
emit_16(1678);
emit_16(1614);
emit_16(1678);
emit_16(1613);
emit_16(1678);
emit_16(1614);
emit_16(1679);
emit_16(1615);
emit_16(1679);
emit_16(1614);
emit_16(1679);
emit_16(1615);
emit_16(1680);
emit_16(1616);
emit_16(1680);
emit_16(1615);
emit_16(1680);
emit_16(1616);
emit_16(1681);
emit_16(1617);
emit_16(1681);
emit_16(1616);
emit_16(1681);
emit_16(1617);
emit_16(1682);
emit_16(1618);
emit_16(1682);
emit_16(1617);
emit_16(1682);
emit_16(1618);
emit_16(1683);
emit_16(1619);
emit_16(1683);
emit_16(1618);
emit_16(1683);
emit_16(1619);
emit_16(1684);
emit_16(1620);
emit_16(1684);
emit_16(1619);
emit_16(1684);
emit_16(1620);
emit_16(1685);
emit_16(1621);
emit_16(1685);
emit_16(1620);
emit_16(1685);
emit_16(1621);
emit_16(1686);
emit_16(1622);
emit_16(1686);
emit_16(1621);
emit_16(1686);
emit_16(1622);
emit_16(1687);
emit_16(1623);
emit_16(1687);
emit_16(1622);
emit_16(1687);
emit_16(1623);
emit_16(1688);
emit_16(1624);
emit_16(1688);
emit_16(1623);
emit_16(1688);
emit_16(1624);
emit_16(1689);
emit_16(1625);
emit_16(1689);
emit_16(1624);
emit_16(1689);
emit_16(1625);
emit_16(1690);
emit_16(1626);
emit_16(1690);
emit_16(1625);
emit_16(1690);
emit_16(1626);
emit_16(1691);
emit_16(1627);
emit_16(1691);
emit_16(1626);
emit_16(1691);
emit_16(1627);
emit_16(1692);
emit_16(1628);
emit_16(1692);
emit_16(1627);
emit_16(1692);
emit_16(1628);
emit_16(1693);
emit_16(1629);
emit_16(1693);
emit_16(1628);
emit_16(1693);
emit_16(1629);
emit_16(1694);
emit_16(1630);
emit_16(1694);
emit_16(1629);
emit_16(1694);
emit_16(1630);
emit_16(1695);
emit_16(1631);
emit_16(1695);
emit_16(1630);
emit_16(1695);
emit_16(1631);
emit_16(1696);
emit_16(1632);
emit_16(1696);
emit_16(1631);
emit_16(1696);
emit_16(1632);
emit_16(1697);
emit_16(1633);
emit_16(1697);
emit_16(1632);
emit_16(1697);
emit_16(1633);
emit_16(1698);
emit_16(1634);
emit_16(1698);
emit_16(1633);
emit_16(1698);
emit_16(1634);
emit_16(1699);
emit_16(1635);
emit_16(1699);
emit_16(1634);
emit_16(1699);
emit_16(1635);
emit_16(1700);
emit_16(1636);
emit_16(1700);
emit_16(1635);
emit_16(1700);
emit_16(1636);
emit_16(1701);
emit_16(1637);
emit_16(1701);
emit_16(1636);
emit_16(1701);
emit_16(1637);
emit_16(1702);
emit_16(1638);
emit_16(1702);
emit_16(1637);
emit_16(1702);
emit_16(1638);
emit_16(1703);
emit_16(1639);
emit_16(1703);
emit_16(1638);
emit_16(1703);
emit_16(1639);
emit_16(1704);
emit_16(1640);
emit_16(1704);
emit_16(1639);
emit_16(1704);
emit_16(1640);
emit_16(1705);
emit_16(1641);
emit_16(1705);
emit_16(1640);
emit_16(1705);
emit_16(1641);
emit_16(1706);
emit_16(1642);
emit_16(1706);
emit_16(1641);
emit_16(1706);
emit_16(1642);
emit_16(1707);
emit_16(1643);
emit_16(1707);
emit_16(1642);
emit_16(1707);
emit_16(1643);
emit_16(1708);
emit_16(1644);
emit_16(1708);
emit_16(1643);
emit_16(1708);
emit_16(1644);
emit_16(1709);
emit_16(1645);
emit_16(1709);
emit_16(1644);
emit_16(1709);
emit_16(1645);
emit_16(1710);
emit_16(1646);
emit_16(1710);
emit_16(1645);
emit_16(1710);
emit_16(1646);
emit_16(1711);
emit_16(1647);
emit_16(1711);
emit_16(1646);
emit_16(1711);
emit_16(1647);
emit_16(1712);
emit_16(1648);
emit_16(1712);
emit_16(1647);
emit_16(1712);
emit_16(1648);
emit_16(1713);
emit_16(1649);
emit_16(1713);
emit_16(1648);
emit_16(1713);
emit_16(1649);
emit_16(1714);
emit_16(1650);
emit_16(1714);
emit_16(1649);
emit_16(1714);
emit_16(1650);
emit_16(1715);
emit_16(1651);
emit_16(1715);
emit_16(1650);
emit_16(1715);
emit_16(1651);
emit_16(1716);
emit_16(1652);
emit_16(1716);
emit_16(1651);
emit_16(1716);
emit_16(1652);
emit_16(1717);
emit_16(1653);
emit_16(1717);
emit_16(1652);
emit_16(1717);
emit_16(1653);
emit_16(1718);
emit_16(1654);
emit_16(1718);
emit_16(1653);
emit_16(1718);
emit_16(1654);
emit_16(1719);
emit_16(1655);
emit_16(1719);
emit_16(1654);
emit_16(1719);
emit_16(1655);
emit_16(1720);
emit_16(1656);
emit_16(1720);
emit_16(1655);
emit_16(1720);
emit_16(1656);
emit_16(1721);
emit_16(1657);
emit_16(1721);
emit_16(1656);
emit_16(1721);
emit_16(1657);
emit_16(1722);
emit_16(1658);
emit_16(1722);
emit_16(1657);
emit_16(1722);
emit_16(1658);
emit_16(1723);
emit_16(1659);
emit_16(1723);
emit_16(1658);
emit_16(1723);
emit_16(1659);
emit_16(1724);
emit_16(1660);
emit_16(1724);
emit_16(1659);
emit_16(1724);
emit_16(1660);
emit_16(1725);
emit_16(1661);
emit_16(1725);
emit_16(1660);
emit_16(1725);
emit_16(1661);
emit_16(1726);
emit_16(1662);
emit_16(1726);
emit_16(1661);
emit_16(1726);
emit_16(1662);
emit_16(1727);
emit_16(1663);
emit_16(1727);
emit_16(1662);
emit_16(1728);
emit_16(1664);
emit_16(1729);
emit_16(1665);
emit_16(1729);
emit_16(1664);
emit_16(1729);
emit_16(1665);
emit_16(1730);
emit_16(1666);
emit_16(1730);
emit_16(1665);
emit_16(1730);
emit_16(1666);
emit_16(1731);
emit_16(1667);
emit_16(1731);
emit_16(1666);
emit_16(1731);
emit_16(1667);
emit_16(1732);
emit_16(1668);
emit_16(1732);
emit_16(1667);
emit_16(1732);
emit_16(1668);
emit_16(1733);
emit_16(1669);
emit_16(1733);
emit_16(1668);
emit_16(1733);
emit_16(1669);
emit_16(1734);
emit_16(1670);
emit_16(1734);
emit_16(1669);
emit_16(1734);
emit_16(1670);
emit_16(1735);
emit_16(1671);
emit_16(1735);
emit_16(1670);
emit_16(1735);
emit_16(1671);
emit_16(1736);
emit_16(1672);
emit_16(1736);
emit_16(1671);
emit_16(1736);
emit_16(1672);
emit_16(1737);
emit_16(1673);
emit_16(1737);
emit_16(1672);
emit_16(1737);
emit_16(1673);
emit_16(1738);
emit_16(1674);
emit_16(1738);
emit_16(1673);
emit_16(1738);
emit_16(1674);
emit_16(1739);
emit_16(1675);
emit_16(1739);
emit_16(1674);
emit_16(1739);
emit_16(1675);
emit_16(1740);
emit_16(1676);
emit_16(1740);
emit_16(1675);
emit_16(1740);
emit_16(1676);
emit_16(1741);
emit_16(1677);
emit_16(1741);
emit_16(1676);
emit_16(1741);
emit_16(1677);
emit_16(1742);
emit_16(1678);
emit_16(1742);
emit_16(1677);
emit_16(1742);
emit_16(1678);
emit_16(1743);
emit_16(1679);
emit_16(1743);
emit_16(1678);
emit_16(1743);
emit_16(1679);
emit_16(1744);
emit_16(1680);
emit_16(1744);
emit_16(1679);
emit_16(1744);
emit_16(1680);
emit_16(1745);
emit_16(1681);
emit_16(1745);
emit_16(1680);
emit_16(1745);
emit_16(1681);
emit_16(1746);
emit_16(1682);
emit_16(1746);
emit_16(1681);
emit_16(1746);
emit_16(1682);
emit_16(1747);
emit_16(1683);
emit_16(1747);
emit_16(1682);
emit_16(1747);
emit_16(1683);
emit_16(1748);
emit_16(1684);
emit_16(1748);
emit_16(1683);
emit_16(1748);
emit_16(1684);
emit_16(1749);
emit_16(1685);
emit_16(1749);
emit_16(1684);
emit_16(1749);
emit_16(1685);
emit_16(1750);
emit_16(1686);
emit_16(1750);
emit_16(1685);
emit_16(1750);
emit_16(1686);
emit_16(1751);
emit_16(1687);
emit_16(1751);
emit_16(1686);
emit_16(1751);
emit_16(1687);
emit_16(1752);
emit_16(1688);
emit_16(1752);
emit_16(1687);
emit_16(1752);
emit_16(1688);
emit_16(1753);
emit_16(1689);
emit_16(1753);
emit_16(1688);
emit_16(1753);
emit_16(1689);
emit_16(1754);
emit_16(1690);
emit_16(1754);
emit_16(1689);
emit_16(1754);
emit_16(1690);
emit_16(1755);
emit_16(1691);
emit_16(1755);
emit_16(1690);
emit_16(1755);
emit_16(1691);
emit_16(1756);
emit_16(1692);
emit_16(1756);
emit_16(1691);
emit_16(1756);
emit_16(1692);
emit_16(1757);
emit_16(1693);
emit_16(1757);
emit_16(1692);
emit_16(1757);
emit_16(1693);
emit_16(1758);
emit_16(1694);
emit_16(1758);
emit_16(1693);
emit_16(1758);
emit_16(1694);
emit_16(1759);
emit_16(1695);
emit_16(1759);
emit_16(1694);
emit_16(1759);
emit_16(1695);
emit_16(1760);
emit_16(1696);
emit_16(1760);
emit_16(1695);
emit_16(1760);
emit_16(1696);
emit_16(1761);
emit_16(1697);
emit_16(1761);
emit_16(1696);
emit_16(1761);
emit_16(1697);
emit_16(1762);
emit_16(1698);
emit_16(1762);
emit_16(1697);
emit_16(1762);
emit_16(1698);
emit_16(1763);
emit_16(1699);
emit_16(1763);
emit_16(1698);
emit_16(1763);
emit_16(1699);
emit_16(1764);
emit_16(1700);
emit_16(1764);
emit_16(1699);
emit_16(1764);
emit_16(1700);
emit_16(1765);
emit_16(1701);
emit_16(1765);
emit_16(1700);
emit_16(1765);
emit_16(1701);
emit_16(1766);
emit_16(1702);
emit_16(1766);
emit_16(1701);
emit_16(1766);
emit_16(1702);
emit_16(1767);
emit_16(1703);
emit_16(1767);
emit_16(1702);
emit_16(1767);
emit_16(1703);
emit_16(1768);
emit_16(1704);
emit_16(1768);
emit_16(1703);
emit_16(1768);
emit_16(1704);
emit_16(1769);
emit_16(1705);
emit_16(1769);
emit_16(1704);
emit_16(1769);
emit_16(1705);
emit_16(1770);
emit_16(1706);
emit_16(1770);
emit_16(1705);
emit_16(1770);
emit_16(1706);
emit_16(1771);
emit_16(1707);
emit_16(1771);
emit_16(1706);
emit_16(1771);
emit_16(1707);
emit_16(1772);
emit_16(1708);
emit_16(1772);
emit_16(1707);
emit_16(1772);
emit_16(1708);
emit_16(1773);
emit_16(1709);
emit_16(1773);
emit_16(1708);
emit_16(1773);
emit_16(1709);
emit_16(1774);
emit_16(1710);
emit_16(1774);
emit_16(1709);
emit_16(1774);
emit_16(1710);
emit_16(1775);
emit_16(1711);
emit_16(1775);
emit_16(1710);
emit_16(1775);
emit_16(1711);
emit_16(1776);
emit_16(1712);
emit_16(1776);
emit_16(1711);
emit_16(1776);
emit_16(1712);
emit_16(1777);
emit_16(1713);
emit_16(1777);
emit_16(1712);
emit_16(1777);
emit_16(1713);
emit_16(1778);
emit_16(1714);
emit_16(1778);
emit_16(1713);
emit_16(1778);
emit_16(1714);
emit_16(1779);
emit_16(1715);
emit_16(1779);
emit_16(1714);
emit_16(1779);
emit_16(1715);
emit_16(1780);
emit_16(1716);
emit_16(1780);
emit_16(1715);
emit_16(1780);
emit_16(1716);
emit_16(1781);
emit_16(1717);
emit_16(1781);
emit_16(1716);
emit_16(1781);
emit_16(1717);
emit_16(1782);
emit_16(1718);
emit_16(1782);
emit_16(1717);
emit_16(1782);
emit_16(1718);
emit_16(1783);
emit_16(1719);
emit_16(1783);
emit_16(1718);
emit_16(1783);
emit_16(1719);
emit_16(1784);
emit_16(1720);
emit_16(1784);
emit_16(1719);
emit_16(1784);
emit_16(1720);
emit_16(1785);
emit_16(1721);
emit_16(1785);
emit_16(1720);
emit_16(1785);
emit_16(1721);
emit_16(1786);
emit_16(1722);
emit_16(1786);
emit_16(1721);
emit_16(1786);
emit_16(1722);
emit_16(1787);
emit_16(1723);
emit_16(1787);
emit_16(1722);
emit_16(1787);
emit_16(1723);
emit_16(1788);
emit_16(1724);
emit_16(1788);
emit_16(1723);
emit_16(1788);
emit_16(1724);
emit_16(1789);
emit_16(1725);
emit_16(1789);
emit_16(1724);
emit_16(1789);
emit_16(1725);
emit_16(1790);
emit_16(1726);
emit_16(1790);
emit_16(1725);
emit_16(1790);
emit_16(1726);
emit_16(1791);
emit_16(1727);
emit_16(1791);
emit_16(1726);
emit_16(1792);
emit_16(1728);
emit_16(1793);
emit_16(1729);
emit_16(1793);
emit_16(1728);
emit_16(1793);
emit_16(1729);
emit_16(1794);
emit_16(1730);
emit_16(1794);
emit_16(1729);
emit_16(1794);
emit_16(1730);
emit_16(1795);
emit_16(1731);
emit_16(1795);
emit_16(1730);
emit_16(1795);
emit_16(1731);
emit_16(1796);
emit_16(1732);
emit_16(1796);
emit_16(1731);
emit_16(1796);
emit_16(1732);
emit_16(1797);
emit_16(1733);
emit_16(1797);
emit_16(1732);
emit_16(1797);
emit_16(1733);
emit_16(1798);
emit_16(1734);
emit_16(1798);
emit_16(1733);
emit_16(1798);
emit_16(1734);
emit_16(1799);
emit_16(1735);
emit_16(1799);
emit_16(1734);
emit_16(1799);
emit_16(1735);
emit_16(1800);
emit_16(1736);
emit_16(1800);
emit_16(1735);
emit_16(1800);
emit_16(1736);
emit_16(1801);
emit_16(1737);
emit_16(1801);
emit_16(1736);
emit_16(1801);
emit_16(1737);
emit_16(1802);
emit_16(1738);
emit_16(1802);
emit_16(1737);
emit_16(1802);
emit_16(1738);
emit_16(1803);
emit_16(1739);
emit_16(1803);
emit_16(1738);
emit_16(1803);
emit_16(1739);
emit_16(1804);
emit_16(1740);
emit_16(1804);
emit_16(1739);
emit_16(1804);
emit_16(1740);
emit_16(1805);
emit_16(1741);
emit_16(1805);
emit_16(1740);
emit_16(1805);
emit_16(1741);
emit_16(1806);
emit_16(1742);
emit_16(1806);
emit_16(1741);
emit_16(1806);
emit_16(1742);
emit_16(1807);
emit_16(1743);
emit_16(1807);
emit_16(1742);
emit_16(1807);
emit_16(1743);
emit_16(1808);
emit_16(1744);
emit_16(1808);
emit_16(1743);
emit_16(1808);
emit_16(1744);
emit_16(1809);
emit_16(1745);
emit_16(1809);
emit_16(1744);
emit_16(1809);
emit_16(1745);
emit_16(1810);
emit_16(1746);
emit_16(1810);
emit_16(1745);
emit_16(1810);
emit_16(1746);
emit_16(1811);
emit_16(1747);
emit_16(1811);
emit_16(1746);
emit_16(1811);
emit_16(1747);
emit_16(1812);
emit_16(1748);
emit_16(1812);
emit_16(1747);
emit_16(1812);
emit_16(1748);
emit_16(1813);
emit_16(1749);
emit_16(1813);
emit_16(1748);
emit_16(1813);
emit_16(1749);
emit_16(1814);
emit_16(1750);
emit_16(1814);
emit_16(1749);
emit_16(1814);
emit_16(1750);
emit_16(1815);
emit_16(1751);
emit_16(1815);
emit_16(1750);
emit_16(1815);
emit_16(1751);
emit_16(1816);
emit_16(1752);
emit_16(1816);
emit_16(1751);
emit_16(1816);
emit_16(1752);
emit_16(1817);
emit_16(1753);
emit_16(1817);
emit_16(1752);
emit_16(1817);
emit_16(1753);
emit_16(1818);
emit_16(1754);
emit_16(1818);
emit_16(1753);
emit_16(1818);
emit_16(1754);
emit_16(1819);
emit_16(1755);
emit_16(1819);
emit_16(1754);
emit_16(1819);
emit_16(1755);
emit_16(1820);
emit_16(1756);
emit_16(1820);
emit_16(1755);
emit_16(1820);
emit_16(1756);
emit_16(1821);
emit_16(1757);
emit_16(1821);
emit_16(1756);
emit_16(1821);
emit_16(1757);
emit_16(1822);
emit_16(1758);
emit_16(1822);
emit_16(1757);
emit_16(1822);
emit_16(1758);
emit_16(1823);
emit_16(1759);
emit_16(1823);
emit_16(1758);
emit_16(1823);
emit_16(1759);
emit_16(1824);
emit_16(1760);
emit_16(1824);
emit_16(1759);
emit_16(1824);
emit_16(1760);
emit_16(1825);
emit_16(1761);
emit_16(1825);
emit_16(1760);
emit_16(1825);
emit_16(1761);
emit_16(1826);
emit_16(1762);
emit_16(1826);
emit_16(1761);
emit_16(1826);
emit_16(1762);
emit_16(1827);
emit_16(1763);
emit_16(1827);
emit_16(1762);
emit_16(1827);
emit_16(1763);
emit_16(1828);
emit_16(1764);
emit_16(1828);
emit_16(1763);
emit_16(1828);
emit_16(1764);
emit_16(1829);
emit_16(1765);
emit_16(1829);
emit_16(1764);
emit_16(1829);
emit_16(1765);
emit_16(1830);
emit_16(1766);
emit_16(1830);
emit_16(1765);
emit_16(1830);
emit_16(1766);
emit_16(1831);
emit_16(1767);
emit_16(1831);
emit_16(1766);
emit_16(1831);
emit_16(1767);
emit_16(1832);
emit_16(1768);
emit_16(1832);
emit_16(1767);
emit_16(1832);
emit_16(1768);
emit_16(1833);
emit_16(1769);
emit_16(1833);
emit_16(1768);
emit_16(1833);
emit_16(1769);
emit_16(1834);
emit_16(1770);
emit_16(1834);
emit_16(1769);
emit_16(1834);
emit_16(1770);
emit_16(1835);
emit_16(1771);
emit_16(1835);
emit_16(1770);
emit_16(1835);
emit_16(1771);
emit_16(1836);
emit_16(1772);
emit_16(1836);
emit_16(1771);
emit_16(1836);
emit_16(1772);
emit_16(1837);
emit_16(1773);
emit_16(1837);
emit_16(1772);
emit_16(1837);
emit_16(1773);
emit_16(1838);
emit_16(1774);
emit_16(1838);
emit_16(1773);
emit_16(1838);
emit_16(1774);
emit_16(1839);
emit_16(1775);
emit_16(1839);
emit_16(1774);
emit_16(1839);
emit_16(1775);
emit_16(1840);
emit_16(1776);
emit_16(1840);
emit_16(1775);
emit_16(1840);
emit_16(1776);
emit_16(1841);
emit_16(1777);
emit_16(1841);
emit_16(1776);
emit_16(1841);
emit_16(1777);
emit_16(1842);
emit_16(1778);
emit_16(1842);
emit_16(1777);
emit_16(1842);
emit_16(1778);
emit_16(1843);
emit_16(1779);
emit_16(1843);
emit_16(1778);
emit_16(1843);
emit_16(1779);
emit_16(1844);
emit_16(1780);
emit_16(1844);
emit_16(1779);
emit_16(1844);
emit_16(1780);
emit_16(1845);
emit_16(1781);
emit_16(1845);
emit_16(1780);
emit_16(1845);
emit_16(1781);
emit_16(1846);
emit_16(1782);
emit_16(1846);
emit_16(1781);
emit_16(1846);
emit_16(1782);
emit_16(1847);
emit_16(1783);
emit_16(1847);
emit_16(1782);
emit_16(1847);
emit_16(1783);
emit_16(1848);
emit_16(1784);
emit_16(1848);
emit_16(1783);
emit_16(1848);
emit_16(1784);
emit_16(1849);
emit_16(1785);
emit_16(1849);
emit_16(1784);
emit_16(1849);
emit_16(1785);
emit_16(1850);
emit_16(1786);
emit_16(1850);
emit_16(1785);
emit_16(1850);
emit_16(1786);
emit_16(1851);
emit_16(1787);
emit_16(1851);
emit_16(1786);
emit_16(1851);
emit_16(1787);
emit_16(1852);
emit_16(1788);
emit_16(1852);
emit_16(1787);
emit_16(1852);
emit_16(1788);
emit_16(1853);
emit_16(1789);
emit_16(1853);
emit_16(1788);
emit_16(1853);
emit_16(1789);
emit_16(1854);
emit_16(1790);
emit_16(1854);
emit_16(1789);
emit_16(1854);
emit_16(1790);
emit_16(1855);
emit_16(1791);
emit_16(1855);
emit_16(1790);
emit_16(1856);
emit_16(1792);
emit_16(1857);
emit_16(1793);
emit_16(1857);
emit_16(1792);
emit_16(1857);
emit_16(1793);
emit_16(1858);
emit_16(1794);
emit_16(1858);
emit_16(1793);
emit_16(1858);
emit_16(1794);
emit_16(1859);
emit_16(1795);
emit_16(1859);
emit_16(1794);
emit_16(1859);
emit_16(1795);
emit_16(1860);
emit_16(1796);
emit_16(1860);
emit_16(1795);
emit_16(1860);
emit_16(1796);
emit_16(1861);
emit_16(1797);
emit_16(1861);
emit_16(1796);
emit_16(1861);
emit_16(1797);
emit_16(1862);
emit_16(1798);
emit_16(1862);
emit_16(1797);
emit_16(1862);
emit_16(1798);
emit_16(1863);
emit_16(1799);
emit_16(1863);
emit_16(1798);
emit_16(1863);
emit_16(1799);
emit_16(1864);
emit_16(1800);
emit_16(1864);
emit_16(1799);
emit_16(1864);
emit_16(1800);
emit_16(1865);
emit_16(1801);
emit_16(1865);
emit_16(1800);
emit_16(1865);
emit_16(1801);
emit_16(1866);
emit_16(1802);
emit_16(1866);
emit_16(1801);
emit_16(1866);
emit_16(1802);
emit_16(1867);
emit_16(1803);
emit_16(1867);
emit_16(1802);
emit_16(1867);
emit_16(1803);
emit_16(1868);
emit_16(1804);
emit_16(1868);
emit_16(1803);
emit_16(1868);
emit_16(1804);
emit_16(1869);
emit_16(1805);
emit_16(1869);
emit_16(1804);
emit_16(1869);
emit_16(1805);
emit_16(1870);
emit_16(1806);
emit_16(1870);
emit_16(1805);
emit_16(1870);
emit_16(1806);
emit_16(1871);
emit_16(1807);
emit_16(1871);
emit_16(1806);
emit_16(1871);
emit_16(1807);
emit_16(1872);
emit_16(1808);
emit_16(1872);
emit_16(1807);
emit_16(1872);
emit_16(1808);
emit_16(1873);
emit_16(1809);
emit_16(1873);
emit_16(1808);
emit_16(1873);
emit_16(1809);
emit_16(1874);
emit_16(1810);
emit_16(1874);
emit_16(1809);
emit_16(1874);
emit_16(1810);
emit_16(1875);
emit_16(1811);
emit_16(1875);
emit_16(1810);
emit_16(1875);
emit_16(1811);
emit_16(1876);
emit_16(1812);
emit_16(1876);
emit_16(1811);
emit_16(1876);
emit_16(1812);
emit_16(1877);
emit_16(1813);
emit_16(1877);
emit_16(1812);
emit_16(1877);
emit_16(1813);
emit_16(1878);
emit_16(1814);
emit_16(1878);
emit_16(1813);
emit_16(1878);
emit_16(1814);
emit_16(1879);
emit_16(1815);
emit_16(1879);
emit_16(1814);
emit_16(1879);
emit_16(1815);
emit_16(1880);
emit_16(1816);
emit_16(1880);
emit_16(1815);
emit_16(1880);
emit_16(1816);
emit_16(1881);
emit_16(1817);
emit_16(1881);
emit_16(1816);
emit_16(1881);
emit_16(1817);
emit_16(1882);
emit_16(1818);
emit_16(1882);
emit_16(1817);
emit_16(1882);
emit_16(1818);
emit_16(1883);
emit_16(1819);
emit_16(1883);
emit_16(1818);
emit_16(1883);
emit_16(1819);
emit_16(1884);
emit_16(1820);
emit_16(1884);
emit_16(1819);
emit_16(1884);
emit_16(1820);
emit_16(1885);
emit_16(1821);
emit_16(1885);
emit_16(1820);
emit_16(1885);
emit_16(1821);
emit_16(1886);
emit_16(1822);
emit_16(1886);
emit_16(1821);
emit_16(1886);
emit_16(1822);
emit_16(1887);
emit_16(1823);
emit_16(1887);
emit_16(1822);
emit_16(1887);
emit_16(1823);
emit_16(1888);
emit_16(1824);
emit_16(1888);
emit_16(1823);
emit_16(1888);
emit_16(1824);
emit_16(1889);
emit_16(1825);
emit_16(1889);
emit_16(1824);
emit_16(1889);
emit_16(1825);
emit_16(1890);
emit_16(1826);
emit_16(1890);
emit_16(1825);
emit_16(1890);
emit_16(1826);
emit_16(1891);
emit_16(1827);
emit_16(1891);
emit_16(1826);
emit_16(1891);
emit_16(1827);
emit_16(1892);
emit_16(1828);
emit_16(1892);
emit_16(1827);
emit_16(1892);
emit_16(1828);
emit_16(1893);
emit_16(1829);
emit_16(1893);
emit_16(1828);
emit_16(1893);
emit_16(1829);
emit_16(1894);
emit_16(1830);
emit_16(1894);
emit_16(1829);
emit_16(1894);
emit_16(1830);
emit_16(1895);
emit_16(1831);
emit_16(1895);
emit_16(1830);
emit_16(1895);
emit_16(1831);
emit_16(1896);
emit_16(1832);
emit_16(1896);
emit_16(1831);
emit_16(1896);
emit_16(1832);
emit_16(1897);
emit_16(1833);
emit_16(1897);
emit_16(1832);
emit_16(1897);
emit_16(1833);
emit_16(1898);
emit_16(1834);
emit_16(1898);
emit_16(1833);
emit_16(1898);
emit_16(1834);
emit_16(1899);
emit_16(1835);
emit_16(1899);
emit_16(1834);
emit_16(1899);
emit_16(1835);
emit_16(1900);
emit_16(1836);
emit_16(1900);
emit_16(1835);
emit_16(1900);
emit_16(1836);
emit_16(1901);
emit_16(1837);
emit_16(1901);
emit_16(1836);
emit_16(1901);
emit_16(1837);
emit_16(1902);
emit_16(1838);
emit_16(1902);
emit_16(1837);
emit_16(1902);
emit_16(1838);
emit_16(1903);
emit_16(1839);
emit_16(1903);
emit_16(1838);
emit_16(1903);
emit_16(1839);
emit_16(1904);
emit_16(1840);
emit_16(1904);
emit_16(1839);
emit_16(1904);
emit_16(1840);
emit_16(1905);
emit_16(1841);
emit_16(1905);
emit_16(1840);
emit_16(1905);
emit_16(1841);
emit_16(1906);
emit_16(1842);
emit_16(1906);
emit_16(1841);
emit_16(1906);
emit_16(1842);
emit_16(1907);
emit_16(1843);
emit_16(1907);
emit_16(1842);
emit_16(1907);
emit_16(1843);
emit_16(1908);
emit_16(1844);
emit_16(1908);
emit_16(1843);
emit_16(1908);
emit_16(1844);
emit_16(1909);
emit_16(1845);
emit_16(1909);
emit_16(1844);
emit_16(1909);
emit_16(1845);
emit_16(1910);
emit_16(1846);
emit_16(1910);
emit_16(1845);
emit_16(1910);
emit_16(1846);
emit_16(1911);
emit_16(1847);
emit_16(1911);
emit_16(1846);
emit_16(1911);
emit_16(1847);
emit_16(1912);
emit_16(1848);
emit_16(1912);
emit_16(1847);
emit_16(1912);
emit_16(1848);
emit_16(1913);
emit_16(1849);
emit_16(1913);
emit_16(1848);
emit_16(1913);
emit_16(1849);
emit_16(1914);
emit_16(1850);
emit_16(1914);
emit_16(1849);
emit_16(1914);
emit_16(1850);
emit_16(1915);
emit_16(1851);
emit_16(1915);
emit_16(1850);
emit_16(1915);
emit_16(1851);
emit_16(1916);
emit_16(1852);
emit_16(1916);
emit_16(1851);
emit_16(1916);
emit_16(1852);
emit_16(1917);
emit_16(1853);
emit_16(1917);
emit_16(1852);
emit_16(1917);
emit_16(1853);
emit_16(1918);
emit_16(1854);
emit_16(1918);
emit_16(1853);
emit_16(1918);
emit_16(1854);
emit_16(1919);
emit_16(1855);
emit_16(1919);
emit_16(1854);
emit_16(1920);
emit_16(1856);
emit_16(1921);
emit_16(1857);
emit_16(1921);
emit_16(1856);
emit_16(1921);
emit_16(1857);
emit_16(1922);
emit_16(1858);
emit_16(1922);
emit_16(1857);
emit_16(1922);
emit_16(1858);
emit_16(1923);
emit_16(1859);
emit_16(1923);
emit_16(1858);
emit_16(1923);
emit_16(1859);
emit_16(1924);
emit_16(1860);
emit_16(1924);
emit_16(1859);
emit_16(1924);
emit_16(1860);
emit_16(1925);
emit_16(1861);
emit_16(1925);
emit_16(1860);
emit_16(1925);
emit_16(1861);
emit_16(1926);
emit_16(1862);
emit_16(1926);
emit_16(1861);
emit_16(1926);
emit_16(1862);
emit_16(1927);
emit_16(1863);
emit_16(1927);
emit_16(1862);
emit_16(1927);
emit_16(1863);
emit_16(1928);
emit_16(1864);
emit_16(1928);
emit_16(1863);
emit_16(1928);
emit_16(1864);
emit_16(1929);
emit_16(1865);
emit_16(1929);
emit_16(1864);
emit_16(1929);
emit_16(1865);
emit_16(1930);
emit_16(1866);
emit_16(1930);
emit_16(1865);
emit_16(1930);
emit_16(1866);
emit_16(1931);
emit_16(1867);
emit_16(1931);
emit_16(1866);
emit_16(1931);
emit_16(1867);
emit_16(1932);
emit_16(1868);
emit_16(1932);
emit_16(1867);
emit_16(1932);
emit_16(1868);
emit_16(1933);
emit_16(1869);
emit_16(1933);
emit_16(1868);
emit_16(1933);
emit_16(1869);
emit_16(1934);
emit_16(1870);
emit_16(1934);
emit_16(1869);
emit_16(1934);
emit_16(1870);
emit_16(1935);
emit_16(1871);
emit_16(1935);
emit_16(1870);
emit_16(1935);
emit_16(1871);
emit_16(1936);
emit_16(1872);
emit_16(1936);
emit_16(1871);
emit_16(1936);
emit_16(1872);
emit_16(1937);
emit_16(1873);
emit_16(1937);
emit_16(1872);
emit_16(1937);
emit_16(1873);
emit_16(1938);
emit_16(1874);
emit_16(1938);
emit_16(1873);
emit_16(1938);
emit_16(1874);
emit_16(1939);
emit_16(1875);
emit_16(1939);
emit_16(1874);
emit_16(1939);
emit_16(1875);
emit_16(1940);
emit_16(1876);
emit_16(1940);
emit_16(1875);
emit_16(1940);
emit_16(1876);
emit_16(1941);
emit_16(1877);
emit_16(1941);
emit_16(1876);
emit_16(1941);
emit_16(1877);
emit_16(1942);
emit_16(1878);
emit_16(1942);
emit_16(1877);
emit_16(1942);
emit_16(1878);
emit_16(1943);
emit_16(1879);
emit_16(1943);
emit_16(1878);
emit_16(1943);
emit_16(1879);
emit_16(1944);
emit_16(1880);
emit_16(1944);
emit_16(1879);
emit_16(1944);
emit_16(1880);
emit_16(1945);
emit_16(1881);
emit_16(1945);
emit_16(1880);
emit_16(1945);
emit_16(1881);
emit_16(1946);
emit_16(1882);
emit_16(1946);
emit_16(1881);
emit_16(1946);
emit_16(1882);
emit_16(1947);
emit_16(1883);
emit_16(1947);
emit_16(1882);
emit_16(1947);
emit_16(1883);
emit_16(1948);
emit_16(1884);
emit_16(1948);
emit_16(1883);
emit_16(1948);
emit_16(1884);
emit_16(1949);
emit_16(1885);
emit_16(1949);
emit_16(1884);
emit_16(1949);
emit_16(1885);
emit_16(1950);
emit_16(1886);
emit_16(1950);
emit_16(1885);
emit_16(1950);
emit_16(1886);
emit_16(1951);
emit_16(1887);
emit_16(1951);
emit_16(1886);
emit_16(1951);
emit_16(1887);
emit_16(1952);
emit_16(1888);
emit_16(1952);
emit_16(1887);
emit_16(1952);
emit_16(1888);
emit_16(1953);
emit_16(1889);
emit_16(1953);
emit_16(1888);
emit_16(1953);
emit_16(1889);
emit_16(1954);
emit_16(1890);
emit_16(1954);
emit_16(1889);
emit_16(1954);
emit_16(1890);
emit_16(1955);
emit_16(1891);
emit_16(1955);
emit_16(1890);
emit_16(1955);
emit_16(1891);
emit_16(1956);
emit_16(1892);
emit_16(1956);
emit_16(1891);
emit_16(1956);
emit_16(1892);
emit_16(1957);
emit_16(1893);
emit_16(1957);
emit_16(1892);
emit_16(1957);
emit_16(1893);
emit_16(1958);
emit_16(1894);
emit_16(1958);
emit_16(1893);
emit_16(1958);
emit_16(1894);
emit_16(1959);
emit_16(1895);
emit_16(1959);
emit_16(1894);
emit_16(1959);
emit_16(1895);
emit_16(1960);
emit_16(1896);
emit_16(1960);
emit_16(1895);
emit_16(1960);
emit_16(1896);
emit_16(1961);
emit_16(1897);
emit_16(1961);
emit_16(1896);
emit_16(1961);
emit_16(1897);
emit_16(1962);
emit_16(1898);
emit_16(1962);
emit_16(1897);
emit_16(1962);
emit_16(1898);
emit_16(1963);
emit_16(1899);
emit_16(1963);
emit_16(1898);
emit_16(1963);
emit_16(1899);
emit_16(1964);
emit_16(1900);
emit_16(1964);
emit_16(1899);
emit_16(1964);
emit_16(1900);
emit_16(1965);
emit_16(1901);
emit_16(1965);
emit_16(1900);
emit_16(1965);
emit_16(1901);
emit_16(1966);
emit_16(1902);
emit_16(1966);
emit_16(1901);
emit_16(1966);
emit_16(1902);
emit_16(1967);
emit_16(1903);
emit_16(1967);
emit_16(1902);
emit_16(1967);
emit_16(1903);
emit_16(1968);
emit_16(1904);
emit_16(1968);
emit_16(1903);
emit_16(1968);
emit_16(1904);
emit_16(1969);
emit_16(1905);
emit_16(1969);
emit_16(1904);
emit_16(1969);
emit_16(1905);
emit_16(1970);
emit_16(1906);
emit_16(1970);
emit_16(1905);
emit_16(1970);
emit_16(1906);
emit_16(1971);
emit_16(1907);
emit_16(1971);
emit_16(1906);
emit_16(1971);
emit_16(1907);
emit_16(1972);
emit_16(1908);
emit_16(1972);
emit_16(1907);
emit_16(1972);
emit_16(1908);
emit_16(1973);
emit_16(1909);
emit_16(1973);
emit_16(1908);
emit_16(1973);
emit_16(1909);
emit_16(1974);
emit_16(1910);
emit_16(1974);
emit_16(1909);
emit_16(1974);
emit_16(1910);
emit_16(1975);
emit_16(1911);
emit_16(1975);
emit_16(1910);
emit_16(1975);
emit_16(1911);
emit_16(1976);
emit_16(1912);
emit_16(1976);
emit_16(1911);
emit_16(1976);
emit_16(1912);
emit_16(1977);
emit_16(1913);
emit_16(1977);
emit_16(1912);
emit_16(1977);
emit_16(1913);
emit_16(1978);
emit_16(1914);
emit_16(1978);
emit_16(1913);
emit_16(1978);
emit_16(1914);
emit_16(1979);
emit_16(1915);
emit_16(1979);
emit_16(1914);
emit_16(1979);
emit_16(1915);
emit_16(1980);
emit_16(1916);
emit_16(1980);
emit_16(1915);
emit_16(1980);
emit_16(1916);
emit_16(1981);
emit_16(1917);
emit_16(1981);
emit_16(1916);
emit_16(1981);
emit_16(1917);
emit_16(1982);
emit_16(1918);
emit_16(1982);
emit_16(1917);
emit_16(1982);
emit_16(1918);
emit_16(1983);
emit_16(1919);
emit_16(1983);
emit_16(1918);
emit_16(1984);
emit_16(1920);
emit_16(1985);
emit_16(1921);
emit_16(1985);
emit_16(1920);
emit_16(1985);
emit_16(1921);
emit_16(1986);
emit_16(1922);
emit_16(1986);
emit_16(1921);
emit_16(1986);
emit_16(1922);
emit_16(1987);
emit_16(1923);
emit_16(1987);
emit_16(1922);
emit_16(1987);
emit_16(1923);
emit_16(1988);
emit_16(1924);
emit_16(1988);
emit_16(1923);
emit_16(1988);
emit_16(1924);
emit_16(1989);
emit_16(1925);
emit_16(1989);
emit_16(1924);
emit_16(1989);
emit_16(1925);
emit_16(1990);
emit_16(1926);
emit_16(1990);
emit_16(1925);
emit_16(1990);
emit_16(1926);
emit_16(1991);
emit_16(1927);
emit_16(1991);
emit_16(1926);
emit_16(1991);
emit_16(1927);
emit_16(1992);
emit_16(1928);
emit_16(1992);
emit_16(1927);
emit_16(1992);
emit_16(1928);
emit_16(1993);
emit_16(1929);
emit_16(1993);
emit_16(1928);
emit_16(1993);
emit_16(1929);
emit_16(1994);
emit_16(1930);
emit_16(1994);
emit_16(1929);
emit_16(1994);
emit_16(1930);
emit_16(1995);
emit_16(1931);
emit_16(1995);
emit_16(1930);
emit_16(1995);
emit_16(1931);
emit_16(1996);
emit_16(1932);
emit_16(1996);
emit_16(1931);
emit_16(1996);
emit_16(1932);
emit_16(1997);
emit_16(1933);
emit_16(1997);
emit_16(1932);
emit_16(1997);
emit_16(1933);
emit_16(1998);
emit_16(1934);
emit_16(1998);
emit_16(1933);
emit_16(1998);
emit_16(1934);
emit_16(1999);
emit_16(1935);
emit_16(1999);
emit_16(1934);
emit_16(1999);
emit_16(1935);
emit_16(2000);
emit_16(1936);
emit_16(2000);
emit_16(1935);
emit_16(2000);
emit_16(1936);
emit_16(2001);
emit_16(1937);
emit_16(2001);
emit_16(1936);
emit_16(2001);
emit_16(1937);
emit_16(2002);
emit_16(1938);
emit_16(2002);
emit_16(1937);
emit_16(2002);
emit_16(1938);
emit_16(2003);
emit_16(1939);
emit_16(2003);
emit_16(1938);
emit_16(2003);
emit_16(1939);
emit_16(2004);
emit_16(1940);
emit_16(2004);
emit_16(1939);
emit_16(2004);
emit_16(1940);
emit_16(2005);
emit_16(1941);
emit_16(2005);
emit_16(1940);
emit_16(2005);
emit_16(1941);
emit_16(2006);
emit_16(1942);
emit_16(2006);
emit_16(1941);
emit_16(2006);
emit_16(1942);
emit_16(2007);
emit_16(1943);
emit_16(2007);
emit_16(1942);
emit_16(2007);
emit_16(1943);
emit_16(2008);
emit_16(1944);
emit_16(2008);
emit_16(1943);
emit_16(2008);
emit_16(1944);
emit_16(2009);
emit_16(1945);
emit_16(2009);
emit_16(1944);
emit_16(2009);
emit_16(1945);
emit_16(2010);
emit_16(1946);
emit_16(2010);
emit_16(1945);
emit_16(2010);
emit_16(1946);
emit_16(2011);
emit_16(1947);
emit_16(2011);
emit_16(1946);
emit_16(2011);
emit_16(1947);
emit_16(2012);
emit_16(1948);
emit_16(2012);
emit_16(1947);
emit_16(2012);
emit_16(1948);
emit_16(2013);
emit_16(1949);
emit_16(2013);
emit_16(1948);
emit_16(2013);
emit_16(1949);
emit_16(2014);
emit_16(1950);
emit_16(2014);
emit_16(1949);
emit_16(2014);
emit_16(1950);
emit_16(2015);
emit_16(1951);
emit_16(2015);
emit_16(1950);
emit_16(2015);
emit_16(1951);
emit_16(2016);
emit_16(1952);
emit_16(2016);
emit_16(1951);
emit_16(2016);
emit_16(1952);
emit_16(2017);
emit_16(1953);
emit_16(2017);
emit_16(1952);
emit_16(2017);
emit_16(1953);
emit_16(2018);
emit_16(1954);
emit_16(2018);
emit_16(1953);
emit_16(2018);
emit_16(1954);
emit_16(2019);
emit_16(1955);
emit_16(2019);
emit_16(1954);
emit_16(2019);
emit_16(1955);
emit_16(2020);
emit_16(1956);
emit_16(2020);
emit_16(1955);
emit_16(2020);
emit_16(1956);
emit_16(2021);
emit_16(1957);
emit_16(2021);
emit_16(1956);
emit_16(2021);
emit_16(1957);
emit_16(2022);
emit_16(1958);
emit_16(2022);
emit_16(1957);
emit_16(2022);
emit_16(1958);
emit_16(2023);
emit_16(1959);
emit_16(2023);
emit_16(1958);
emit_16(2023);
emit_16(1959);
emit_16(2024);
emit_16(1960);
emit_16(2024);
emit_16(1959);
emit_16(2024);
emit_16(1960);
emit_16(2025);
emit_16(1961);
emit_16(2025);
emit_16(1960);
emit_16(2025);
emit_16(1961);
emit_16(2026);
emit_16(1962);
emit_16(2026);
emit_16(1961);
emit_16(2026);
emit_16(1962);
emit_16(2027);
emit_16(1963);
emit_16(2027);
emit_16(1962);
emit_16(2027);
emit_16(1963);
emit_16(2028);
emit_16(1964);
emit_16(2028);
emit_16(1963);
emit_16(2028);
emit_16(1964);
emit_16(2029);
emit_16(1965);
emit_16(2029);
emit_16(1964);
emit_16(2029);
emit_16(1965);
emit_16(2030);
emit_16(1966);
emit_16(2030);
emit_16(1965);
emit_16(2030);
emit_16(1966);
emit_16(2031);
emit_16(1967);
emit_16(2031);
emit_16(1966);
emit_16(2031);
emit_16(1967);
emit_16(2032);
emit_16(1968);
emit_16(2032);
emit_16(1967);
emit_16(2032);
emit_16(1968);
emit_16(2033);
emit_16(1969);
emit_16(2033);
emit_16(1968);
emit_16(2033);
emit_16(1969);
emit_16(2034);
emit_16(1970);
emit_16(2034);
emit_16(1969);
emit_16(2034);
emit_16(1970);
emit_16(2035);
emit_16(1971);
emit_16(2035);
emit_16(1970);
emit_16(2035);
emit_16(1971);
emit_16(2036);
emit_16(1972);
emit_16(2036);
emit_16(1971);
emit_16(2036);
emit_16(1972);
emit_16(2037);
emit_16(1973);
emit_16(2037);
emit_16(1972);
emit_16(2037);
emit_16(1973);
emit_16(2038);
emit_16(1974);
emit_16(2038);
emit_16(1973);
emit_16(2038);
emit_16(1974);
emit_16(2039);
emit_16(1975);
emit_16(2039);
emit_16(1974);
emit_16(2039);
emit_16(1975);
emit_16(2040);
emit_16(1976);
emit_16(2040);
emit_16(1975);
emit_16(2040);
emit_16(1976);
emit_16(2041);
emit_16(1977);
emit_16(2041);
emit_16(1976);
emit_16(2041);
emit_16(1977);
emit_16(2042);
emit_16(1978);
emit_16(2042);
emit_16(1977);
emit_16(2042);
emit_16(1978);
emit_16(2043);
emit_16(1979);
emit_16(2043);
emit_16(1978);
emit_16(2043);
emit_16(1979);
emit_16(2044);
emit_16(1980);
emit_16(2044);
emit_16(1979);
emit_16(2044);
emit_16(1980);
emit_16(2045);
emit_16(1981);
emit_16(2045);
emit_16(1980);
emit_16(2045);
emit_16(1981);
emit_16(2046);
emit_16(1982);
emit_16(2046);
emit_16(1981);
emit_16(2046);
emit_16(1982);
emit_16(2047);
emit_16(1983);
emit_16(2047);
emit_16(1982);
emit_start(Landscape04Idx)
emit_16(0);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(2);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(4);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(6);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(8);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(10);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(12);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(14);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(16);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(18);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(20);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(22);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(24);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(26);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(28);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(30);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(32);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(34);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(36);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(38);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(40);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(42);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(44);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(46);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(48);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(50);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(52);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(54);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(56);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(58);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(60);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(62);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(64);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(66);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(68);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(70);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(72);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(74);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(76);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(78);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(80);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(82);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(84);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(86);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(88);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(90);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(92);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(94);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(96);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(98);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(100);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(102);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(104);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(106);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(108);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(110);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(112);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(114);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(116);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(118);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(120);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(122);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(124);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(126);
emit_16(125);
emit_16(128);
emit_16(0);
emit_16(129);
emit_16(2);
emit_16(129);
emit_16(0);
emit_16(129);
emit_16(2);
emit_16(130);
emit_16(4);
emit_16(130);
emit_16(2);
emit_16(130);
emit_16(4);
emit_16(131);
emit_16(6);
emit_16(131);
emit_16(4);
emit_16(131);
emit_16(6);
emit_16(132);
emit_16(8);
emit_16(132);
emit_16(6);
emit_16(132);
emit_16(8);
emit_16(133);
emit_16(10);
emit_16(133);
emit_16(8);
emit_16(133);
emit_16(10);
emit_16(134);
emit_16(12);
emit_16(134);
emit_16(10);
emit_16(134);
emit_16(12);
emit_16(135);
emit_16(14);
emit_16(135);
emit_16(12);
emit_16(135);
emit_16(14);
emit_16(136);
emit_16(16);
emit_16(136);
emit_16(14);
emit_16(136);
emit_16(16);
emit_16(137);
emit_16(18);
emit_16(137);
emit_16(16);
emit_16(137);
emit_16(18);
emit_16(138);
emit_16(20);
emit_16(138);
emit_16(18);
emit_16(138);
emit_16(20);
emit_16(139);
emit_16(22);
emit_16(139);
emit_16(20);
emit_16(139);
emit_16(22);
emit_16(140);
emit_16(24);
emit_16(140);
emit_16(22);
emit_16(140);
emit_16(24);
emit_16(141);
emit_16(26);
emit_16(141);
emit_16(24);
emit_16(141);
emit_16(26);
emit_16(142);
emit_16(28);
emit_16(142);
emit_16(26);
emit_16(142);
emit_16(28);
emit_16(143);
emit_16(30);
emit_16(143);
emit_16(28);
emit_16(143);
emit_16(30);
emit_16(144);
emit_16(32);
emit_16(144);
emit_16(30);
emit_16(144);
emit_16(32);
emit_16(145);
emit_16(34);
emit_16(145);
emit_16(32);
emit_16(145);
emit_16(34);
emit_16(146);
emit_16(36);
emit_16(146);
emit_16(34);
emit_16(146);
emit_16(36);
emit_16(147);
emit_16(38);
emit_16(147);
emit_16(36);
emit_16(147);
emit_16(38);
emit_16(148);
emit_16(40);
emit_16(148);
emit_16(38);
emit_16(148);
emit_16(40);
emit_16(149);
emit_16(42);
emit_16(149);
emit_16(40);
emit_16(149);
emit_16(42);
emit_16(150);
emit_16(44);
emit_16(150);
emit_16(42);
emit_16(150);
emit_16(44);
emit_16(151);
emit_16(46);
emit_16(151);
emit_16(44);
emit_16(151);
emit_16(46);
emit_16(152);
emit_16(48);
emit_16(152);
emit_16(46);
emit_16(152);
emit_16(48);
emit_16(153);
emit_16(50);
emit_16(153);
emit_16(48);
emit_16(153);
emit_16(50);
emit_16(154);
emit_16(52);
emit_16(154);
emit_16(50);
emit_16(154);
emit_16(52);
emit_16(155);
emit_16(54);
emit_16(155);
emit_16(52);
emit_16(155);
emit_16(54);
emit_16(156);
emit_16(56);
emit_16(156);
emit_16(54);
emit_16(156);
emit_16(56);
emit_16(157);
emit_16(58);
emit_16(157);
emit_16(56);
emit_16(157);
emit_16(58);
emit_16(158);
emit_16(60);
emit_16(158);
emit_16(58);
emit_16(158);
emit_16(60);
emit_16(159);
emit_16(62);
emit_16(159);
emit_16(60);
emit_16(159);
emit_16(62);
emit_16(160);
emit_16(64);
emit_16(160);
emit_16(62);
emit_16(160);
emit_16(64);
emit_16(161);
emit_16(66);
emit_16(161);
emit_16(64);
emit_16(161);
emit_16(66);
emit_16(162);
emit_16(68);
emit_16(162);
emit_16(66);
emit_16(162);
emit_16(68);
emit_16(163);
emit_16(70);
emit_16(163);
emit_16(68);
emit_16(163);
emit_16(70);
emit_16(164);
emit_16(72);
emit_16(164);
emit_16(70);
emit_16(164);
emit_16(72);
emit_16(165);
emit_16(74);
emit_16(165);
emit_16(72);
emit_16(165);
emit_16(74);
emit_16(166);
emit_16(76);
emit_16(166);
emit_16(74);
emit_16(166);
emit_16(76);
emit_16(167);
emit_16(78);
emit_16(167);
emit_16(76);
emit_16(167);
emit_16(78);
emit_16(168);
emit_16(80);
emit_16(168);
emit_16(78);
emit_16(168);
emit_16(80);
emit_16(169);
emit_16(82);
emit_16(169);
emit_16(80);
emit_16(169);
emit_16(82);
emit_16(170);
emit_16(84);
emit_16(170);
emit_16(82);
emit_16(170);
emit_16(84);
emit_16(171);
emit_16(86);
emit_16(171);
emit_16(84);
emit_16(171);
emit_16(86);
emit_16(172);
emit_16(88);
emit_16(172);
emit_16(86);
emit_16(172);
emit_16(88);
emit_16(173);
emit_16(90);
emit_16(173);
emit_16(88);
emit_16(173);
emit_16(90);
emit_16(174);
emit_16(92);
emit_16(174);
emit_16(90);
emit_16(174);
emit_16(92);
emit_16(175);
emit_16(94);
emit_16(175);
emit_16(92);
emit_16(175);
emit_16(94);
emit_16(176);
emit_16(96);
emit_16(176);
emit_16(94);
emit_16(176);
emit_16(96);
emit_16(177);
emit_16(98);
emit_16(177);
emit_16(96);
emit_16(177);
emit_16(98);
emit_16(178);
emit_16(100);
emit_16(178);
emit_16(98);
emit_16(178);
emit_16(100);
emit_16(179);
emit_16(102);
emit_16(179);
emit_16(100);
emit_16(179);
emit_16(102);
emit_16(180);
emit_16(104);
emit_16(180);
emit_16(102);
emit_16(180);
emit_16(104);
emit_16(181);
emit_16(106);
emit_16(181);
emit_16(104);
emit_16(181);
emit_16(106);
emit_16(182);
emit_16(108);
emit_16(182);
emit_16(106);
emit_16(182);
emit_16(108);
emit_16(183);
emit_16(110);
emit_16(183);
emit_16(108);
emit_16(183);
emit_16(110);
emit_16(184);
emit_16(112);
emit_16(184);
emit_16(110);
emit_16(184);
emit_16(112);
emit_16(185);
emit_16(114);
emit_16(185);
emit_16(112);
emit_16(185);
emit_16(114);
emit_16(186);
emit_16(116);
emit_16(186);
emit_16(114);
emit_16(186);
emit_16(116);
emit_16(187);
emit_16(118);
emit_16(187);
emit_16(116);
emit_16(187);
emit_16(118);
emit_16(188);
emit_16(120);
emit_16(188);
emit_16(118);
emit_16(188);
emit_16(120);
emit_16(189);
emit_16(122);
emit_16(189);
emit_16(120);
emit_16(189);
emit_16(122);
emit_16(190);
emit_16(124);
emit_16(190);
emit_16(122);
emit_16(190);
emit_16(124);
emit_16(191);
emit_16(126);
emit_16(191);
emit_16(124);
emit_16(192);
emit_16(128);
emit_16(193);
emit_16(129);
emit_16(193);
emit_16(128);
emit_16(193);
emit_16(129);
emit_16(194);
emit_16(130);
emit_16(194);
emit_16(129);
emit_16(194);
emit_16(130);
emit_16(195);
emit_16(131);
emit_16(195);
emit_16(130);
emit_16(195);
emit_16(131);
emit_16(196);
emit_16(132);
emit_16(196);
emit_16(131);
emit_16(196);
emit_16(132);
emit_16(197);
emit_16(133);
emit_16(197);
emit_16(132);
emit_16(197);
emit_16(133);
emit_16(198);
emit_16(134);
emit_16(198);
emit_16(133);
emit_16(198);
emit_16(134);
emit_16(199);
emit_16(135);
emit_16(199);
emit_16(134);
emit_16(199);
emit_16(135);
emit_16(200);
emit_16(136);
emit_16(200);
emit_16(135);
emit_16(200);
emit_16(136);
emit_16(201);
emit_16(137);
emit_16(201);
emit_16(136);
emit_16(201);
emit_16(137);
emit_16(202);
emit_16(138);
emit_16(202);
emit_16(137);
emit_16(202);
emit_16(138);
emit_16(203);
emit_16(139);
emit_16(203);
emit_16(138);
emit_16(203);
emit_16(139);
emit_16(204);
emit_16(140);
emit_16(204);
emit_16(139);
emit_16(204);
emit_16(140);
emit_16(205);
emit_16(141);
emit_16(205);
emit_16(140);
emit_16(205);
emit_16(141);
emit_16(206);
emit_16(142);
emit_16(206);
emit_16(141);
emit_16(206);
emit_16(142);
emit_16(207);
emit_16(143);
emit_16(207);
emit_16(142);
emit_16(207);
emit_16(143);
emit_16(208);
emit_16(144);
emit_16(208);
emit_16(143);
emit_16(208);
emit_16(144);
emit_16(209);
emit_16(145);
emit_16(209);
emit_16(144);
emit_16(209);
emit_16(145);
emit_16(210);
emit_16(146);
emit_16(210);
emit_16(145);
emit_16(210);
emit_16(146);
emit_16(211);
emit_16(147);
emit_16(211);
emit_16(146);
emit_16(211);
emit_16(147);
emit_16(212);
emit_16(148);
emit_16(212);
emit_16(147);
emit_16(212);
emit_16(148);
emit_16(213);
emit_16(149);
emit_16(213);
emit_16(148);
emit_16(213);
emit_16(149);
emit_16(214);
emit_16(150);
emit_16(214);
emit_16(149);
emit_16(214);
emit_16(150);
emit_16(215);
emit_16(151);
emit_16(215);
emit_16(150);
emit_16(215);
emit_16(151);
emit_16(216);
emit_16(152);
emit_16(216);
emit_16(151);
emit_16(216);
emit_16(152);
emit_16(217);
emit_16(153);
emit_16(217);
emit_16(152);
emit_16(217);
emit_16(153);
emit_16(218);
emit_16(154);
emit_16(218);
emit_16(153);
emit_16(218);
emit_16(154);
emit_16(219);
emit_16(155);
emit_16(219);
emit_16(154);
emit_16(219);
emit_16(155);
emit_16(220);
emit_16(156);
emit_16(220);
emit_16(155);
emit_16(220);
emit_16(156);
emit_16(221);
emit_16(157);
emit_16(221);
emit_16(156);
emit_16(221);
emit_16(157);
emit_16(222);
emit_16(158);
emit_16(222);
emit_16(157);
emit_16(222);
emit_16(158);
emit_16(223);
emit_16(159);
emit_16(223);
emit_16(158);
emit_16(223);
emit_16(159);
emit_16(224);
emit_16(160);
emit_16(224);
emit_16(159);
emit_16(224);
emit_16(160);
emit_16(225);
emit_16(161);
emit_16(225);
emit_16(160);
emit_16(225);
emit_16(161);
emit_16(226);
emit_16(162);
emit_16(226);
emit_16(161);
emit_16(226);
emit_16(162);
emit_16(227);
emit_16(163);
emit_16(227);
emit_16(162);
emit_16(227);
emit_16(163);
emit_16(228);
emit_16(164);
emit_16(228);
emit_16(163);
emit_16(228);
emit_16(164);
emit_16(229);
emit_16(165);
emit_16(229);
emit_16(164);
emit_16(229);
emit_16(165);
emit_16(230);
emit_16(166);
emit_16(230);
emit_16(165);
emit_16(230);
emit_16(166);
emit_16(231);
emit_16(167);
emit_16(231);
emit_16(166);
emit_16(231);
emit_16(167);
emit_16(232);
emit_16(168);
emit_16(232);
emit_16(167);
emit_16(232);
emit_16(168);
emit_16(233);
emit_16(169);
emit_16(233);
emit_16(168);
emit_16(233);
emit_16(169);
emit_16(234);
emit_16(170);
emit_16(234);
emit_16(169);
emit_16(234);
emit_16(170);
emit_16(235);
emit_16(171);
emit_16(235);
emit_16(170);
emit_16(235);
emit_16(171);
emit_16(236);
emit_16(172);
emit_16(236);
emit_16(171);
emit_16(236);
emit_16(172);
emit_16(237);
emit_16(173);
emit_16(237);
emit_16(172);
emit_16(237);
emit_16(173);
emit_16(238);
emit_16(174);
emit_16(238);
emit_16(173);
emit_16(238);
emit_16(174);
emit_16(239);
emit_16(175);
emit_16(239);
emit_16(174);
emit_16(239);
emit_16(175);
emit_16(240);
emit_16(176);
emit_16(240);
emit_16(175);
emit_16(240);
emit_16(176);
emit_16(241);
emit_16(177);
emit_16(241);
emit_16(176);
emit_16(241);
emit_16(177);
emit_16(242);
emit_16(178);
emit_16(242);
emit_16(177);
emit_16(242);
emit_16(178);
emit_16(243);
emit_16(179);
emit_16(243);
emit_16(178);
emit_16(243);
emit_16(179);
emit_16(244);
emit_16(180);
emit_16(244);
emit_16(179);
emit_16(244);
emit_16(180);
emit_16(245);
emit_16(181);
emit_16(245);
emit_16(180);
emit_16(245);
emit_16(181);
emit_16(246);
emit_16(182);
emit_16(246);
emit_16(181);
emit_16(246);
emit_16(182);
emit_16(247);
emit_16(183);
emit_16(247);
emit_16(182);
emit_16(247);
emit_16(183);
emit_16(248);
emit_16(184);
emit_16(248);
emit_16(183);
emit_16(248);
emit_16(184);
emit_16(249);
emit_16(185);
emit_16(249);
emit_16(184);
emit_16(249);
emit_16(185);
emit_16(250);
emit_16(186);
emit_16(250);
emit_16(185);
emit_16(250);
emit_16(186);
emit_16(251);
emit_16(187);
emit_16(251);
emit_16(186);
emit_16(251);
emit_16(187);
emit_16(252);
emit_16(188);
emit_16(252);
emit_16(187);
emit_16(252);
emit_16(188);
emit_16(253);
emit_16(189);
emit_16(253);
emit_16(188);
emit_16(253);
emit_16(189);
emit_16(254);
emit_16(190);
emit_16(254);
emit_16(189);
emit_16(254);
emit_16(190);
emit_16(255);
emit_16(191);
emit_16(255);
emit_16(190);
emit_16(256);
emit_16(192);
emit_16(257);
emit_16(193);
emit_16(257);
emit_16(192);
emit_16(257);
emit_16(193);
emit_16(258);
emit_16(194);
emit_16(258);
emit_16(193);
emit_16(258);
emit_16(194);
emit_16(259);
emit_16(195);
emit_16(259);
emit_16(194);
emit_16(259);
emit_16(195);
emit_16(260);
emit_16(196);
emit_16(260);
emit_16(195);
emit_16(260);
emit_16(196);
emit_16(261);
emit_16(197);
emit_16(261);
emit_16(196);
emit_16(261);
emit_16(197);
emit_16(262);
emit_16(198);
emit_16(262);
emit_16(197);
emit_16(262);
emit_16(198);
emit_16(263);
emit_16(199);
emit_16(263);
emit_16(198);
emit_16(263);
emit_16(199);
emit_16(264);
emit_16(200);
emit_16(264);
emit_16(199);
emit_16(264);
emit_16(200);
emit_16(265);
emit_16(201);
emit_16(265);
emit_16(200);
emit_16(265);
emit_16(201);
emit_16(266);
emit_16(202);
emit_16(266);
emit_16(201);
emit_16(266);
emit_16(202);
emit_16(267);
emit_16(203);
emit_16(267);
emit_16(202);
emit_16(267);
emit_16(203);
emit_16(268);
emit_16(204);
emit_16(268);
emit_16(203);
emit_16(268);
emit_16(204);
emit_16(269);
emit_16(205);
emit_16(269);
emit_16(204);
emit_16(269);
emit_16(205);
emit_16(270);
emit_16(206);
emit_16(270);
emit_16(205);
emit_16(270);
emit_16(206);
emit_16(271);
emit_16(207);
emit_16(271);
emit_16(206);
emit_16(271);
emit_16(207);
emit_16(272);
emit_16(208);
emit_16(272);
emit_16(207);
emit_16(272);
emit_16(208);
emit_16(273);
emit_16(209);
emit_16(273);
emit_16(208);
emit_16(273);
emit_16(209);
emit_16(274);
emit_16(210);
emit_16(274);
emit_16(209);
emit_16(274);
emit_16(210);
emit_16(275);
emit_16(211);
emit_16(275);
emit_16(210);
emit_16(275);
emit_16(211);
emit_16(276);
emit_16(212);
emit_16(276);
emit_16(211);
emit_16(276);
emit_16(212);
emit_16(277);
emit_16(213);
emit_16(277);
emit_16(212);
emit_16(277);
emit_16(213);
emit_16(278);
emit_16(214);
emit_16(278);
emit_16(213);
emit_16(278);
emit_16(214);
emit_16(279);
emit_16(215);
emit_16(279);
emit_16(214);
emit_16(279);
emit_16(215);
emit_16(280);
emit_16(216);
emit_16(280);
emit_16(215);
emit_16(280);
emit_16(216);
emit_16(281);
emit_16(217);
emit_16(281);
emit_16(216);
emit_16(281);
emit_16(217);
emit_16(282);
emit_16(218);
emit_16(282);
emit_16(217);
emit_16(282);
emit_16(218);
emit_16(283);
emit_16(219);
emit_16(283);
emit_16(218);
emit_16(283);
emit_16(219);
emit_16(284);
emit_16(220);
emit_16(284);
emit_16(219);
emit_16(284);
emit_16(220);
emit_16(285);
emit_16(221);
emit_16(285);
emit_16(220);
emit_16(285);
emit_16(221);
emit_16(286);
emit_16(222);
emit_16(286);
emit_16(221);
emit_16(286);
emit_16(222);
emit_16(287);
emit_16(223);
emit_16(287);
emit_16(222);
emit_16(287);
emit_16(223);
emit_16(288);
emit_16(224);
emit_16(288);
emit_16(223);
emit_16(288);
emit_16(224);
emit_16(289);
emit_16(225);
emit_16(289);
emit_16(224);
emit_16(289);
emit_16(225);
emit_16(290);
emit_16(226);
emit_16(290);
emit_16(225);
emit_16(290);
emit_16(226);
emit_16(291);
emit_16(227);
emit_16(291);
emit_16(226);
emit_16(291);
emit_16(227);
emit_16(292);
emit_16(228);
emit_16(292);
emit_16(227);
emit_16(292);
emit_16(228);
emit_16(293);
emit_16(229);
emit_16(293);
emit_16(228);
emit_16(293);
emit_16(229);
emit_16(294);
emit_16(230);
emit_16(294);
emit_16(229);
emit_16(294);
emit_16(230);
emit_16(295);
emit_16(231);
emit_16(295);
emit_16(230);
emit_16(295);
emit_16(231);
emit_16(296);
emit_16(232);
emit_16(296);
emit_16(231);
emit_16(296);
emit_16(232);
emit_16(297);
emit_16(233);
emit_16(297);
emit_16(232);
emit_16(297);
emit_16(233);
emit_16(298);
emit_16(234);
emit_16(298);
emit_16(233);
emit_16(298);
emit_16(234);
emit_16(299);
emit_16(235);
emit_16(299);
emit_16(234);
emit_16(299);
emit_16(235);
emit_16(300);
emit_16(236);
emit_16(300);
emit_16(235);
emit_16(300);
emit_16(236);
emit_16(301);
emit_16(237);
emit_16(301);
emit_16(236);
emit_16(301);
emit_16(237);
emit_16(302);
emit_16(238);
emit_16(302);
emit_16(237);
emit_16(302);
emit_16(238);
emit_16(303);
emit_16(239);
emit_16(303);
emit_16(238);
emit_16(303);
emit_16(239);
emit_16(304);
emit_16(240);
emit_16(304);
emit_16(239);
emit_16(304);
emit_16(240);
emit_16(305);
emit_16(241);
emit_16(305);
emit_16(240);
emit_16(305);
emit_16(241);
emit_16(306);
emit_16(242);
emit_16(306);
emit_16(241);
emit_16(306);
emit_16(242);
emit_16(307);
emit_16(243);
emit_16(307);
emit_16(242);
emit_16(307);
emit_16(243);
emit_16(308);
emit_16(244);
emit_16(308);
emit_16(243);
emit_16(308);
emit_16(244);
emit_16(309);
emit_16(245);
emit_16(309);
emit_16(244);
emit_16(309);
emit_16(245);
emit_16(310);
emit_16(246);
emit_16(310);
emit_16(245);
emit_16(310);
emit_16(246);
emit_16(311);
emit_16(247);
emit_16(311);
emit_16(246);
emit_16(311);
emit_16(247);
emit_16(312);
emit_16(248);
emit_16(312);
emit_16(247);
emit_16(312);
emit_16(248);
emit_16(313);
emit_16(249);
emit_16(313);
emit_16(248);
emit_16(313);
emit_16(249);
emit_16(314);
emit_16(250);
emit_16(314);
emit_16(249);
emit_16(314);
emit_16(250);
emit_16(315);
emit_16(251);
emit_16(315);
emit_16(250);
emit_16(315);
emit_16(251);
emit_16(316);
emit_16(252);
emit_16(316);
emit_16(251);
emit_16(316);
emit_16(252);
emit_16(317);
emit_16(253);
emit_16(317);
emit_16(252);
emit_16(317);
emit_16(253);
emit_16(318);
emit_16(254);
emit_16(318);
emit_16(253);
emit_16(318);
emit_16(254);
emit_16(319);
emit_16(255);
emit_16(319);
emit_16(254);
emit_16(320);
emit_16(256);
emit_16(321);
emit_16(257);
emit_16(321);
emit_16(256);
emit_16(321);
emit_16(257);
emit_16(322);
emit_16(258);
emit_16(322);
emit_16(257);
emit_16(322);
emit_16(258);
emit_16(323);
emit_16(259);
emit_16(323);
emit_16(258);
emit_16(323);
emit_16(259);
emit_16(324);
emit_16(260);
emit_16(324);
emit_16(259);
emit_16(324);
emit_16(260);
emit_16(325);
emit_16(261);
emit_16(325);
emit_16(260);
emit_16(325);
emit_16(261);
emit_16(326);
emit_16(262);
emit_16(326);
emit_16(261);
emit_16(326);
emit_16(262);
emit_16(327);
emit_16(263);
emit_16(327);
emit_16(262);
emit_16(327);
emit_16(263);
emit_16(328);
emit_16(264);
emit_16(328);
emit_16(263);
emit_16(328);
emit_16(264);
emit_16(329);
emit_16(265);
emit_16(329);
emit_16(264);
emit_16(329);
emit_16(265);
emit_16(330);
emit_16(266);
emit_16(330);
emit_16(265);
emit_16(330);
emit_16(266);
emit_16(331);
emit_16(267);
emit_16(331);
emit_16(266);
emit_16(331);
emit_16(267);
emit_16(332);
emit_16(268);
emit_16(332);
emit_16(267);
emit_16(332);
emit_16(268);
emit_16(333);
emit_16(269);
emit_16(333);
emit_16(268);
emit_16(333);
emit_16(269);
emit_16(334);
emit_16(270);
emit_16(334);
emit_16(269);
emit_16(334);
emit_16(270);
emit_16(335);
emit_16(271);
emit_16(335);
emit_16(270);
emit_16(335);
emit_16(271);
emit_16(336);
emit_16(272);
emit_16(336);
emit_16(271);
emit_16(336);
emit_16(272);
emit_16(337);
emit_16(273);
emit_16(337);
emit_16(272);
emit_16(337);
emit_16(273);
emit_16(338);
emit_16(274);
emit_16(338);
emit_16(273);
emit_16(338);
emit_16(274);
emit_16(339);
emit_16(275);
emit_16(339);
emit_16(274);
emit_16(339);
emit_16(275);
emit_16(340);
emit_16(276);
emit_16(340);
emit_16(275);
emit_16(340);
emit_16(276);
emit_16(341);
emit_16(277);
emit_16(341);
emit_16(276);
emit_16(341);
emit_16(277);
emit_16(342);
emit_16(278);
emit_16(342);
emit_16(277);
emit_16(342);
emit_16(278);
emit_16(343);
emit_16(279);
emit_16(343);
emit_16(278);
emit_16(343);
emit_16(279);
emit_16(344);
emit_16(280);
emit_16(344);
emit_16(279);
emit_16(344);
emit_16(280);
emit_16(345);
emit_16(281);
emit_16(345);
emit_16(280);
emit_16(345);
emit_16(281);
emit_16(346);
emit_16(282);
emit_16(346);
emit_16(281);
emit_16(346);
emit_16(282);
emit_16(347);
emit_16(283);
emit_16(347);
emit_16(282);
emit_16(347);
emit_16(283);
emit_16(348);
emit_16(284);
emit_16(348);
emit_16(283);
emit_16(348);
emit_16(284);
emit_16(349);
emit_16(285);
emit_16(349);
emit_16(284);
emit_16(349);
emit_16(285);
emit_16(350);
emit_16(286);
emit_16(350);
emit_16(285);
emit_16(350);
emit_16(286);
emit_16(351);
emit_16(287);
emit_16(351);
emit_16(286);
emit_16(351);
emit_16(287);
emit_16(352);
emit_16(288);
emit_16(352);
emit_16(287);
emit_16(352);
emit_16(288);
emit_16(353);
emit_16(289);
emit_16(353);
emit_16(288);
emit_16(353);
emit_16(289);
emit_16(354);
emit_16(290);
emit_16(354);
emit_16(289);
emit_16(354);
emit_16(290);
emit_16(355);
emit_16(291);
emit_16(355);
emit_16(290);
emit_16(355);
emit_16(291);
emit_16(356);
emit_16(292);
emit_16(356);
emit_16(291);
emit_16(356);
emit_16(292);
emit_16(357);
emit_16(293);
emit_16(357);
emit_16(292);
emit_16(357);
emit_16(293);
emit_16(358);
emit_16(294);
emit_16(358);
emit_16(293);
emit_16(358);
emit_16(294);
emit_16(359);
emit_16(295);
emit_16(359);
emit_16(294);
emit_16(359);
emit_16(295);
emit_16(360);
emit_16(296);
emit_16(360);
emit_16(295);
emit_16(360);
emit_16(296);
emit_16(361);
emit_16(297);
emit_16(361);
emit_16(296);
emit_16(361);
emit_16(297);
emit_16(362);
emit_16(298);
emit_16(362);
emit_16(297);
emit_16(362);
emit_16(298);
emit_16(363);
emit_16(299);
emit_16(363);
emit_16(298);
emit_16(363);
emit_16(299);
emit_16(364);
emit_16(300);
emit_16(364);
emit_16(299);
emit_16(364);
emit_16(300);
emit_16(365);
emit_16(301);
emit_16(365);
emit_16(300);
emit_16(365);
emit_16(301);
emit_16(366);
emit_16(302);
emit_16(366);
emit_16(301);
emit_16(366);
emit_16(302);
emit_16(367);
emit_16(303);
emit_16(367);
emit_16(302);
emit_16(367);
emit_16(303);
emit_16(368);
emit_16(304);
emit_16(368);
emit_16(303);
emit_16(368);
emit_16(304);
emit_16(369);
emit_16(305);
emit_16(369);
emit_16(304);
emit_16(369);
emit_16(305);
emit_16(370);
emit_16(306);
emit_16(370);
emit_16(305);
emit_16(370);
emit_16(306);
emit_16(371);
emit_16(307);
emit_16(371);
emit_16(306);
emit_16(371);
emit_16(307);
emit_16(372);
emit_16(308);
emit_16(372);
emit_16(307);
emit_16(372);
emit_16(308);
emit_16(373);
emit_16(309);
emit_16(373);
emit_16(308);
emit_16(373);
emit_16(309);
emit_16(374);
emit_16(310);
emit_16(374);
emit_16(309);
emit_16(374);
emit_16(310);
emit_16(375);
emit_16(311);
emit_16(375);
emit_16(310);
emit_16(375);
emit_16(311);
emit_16(376);
emit_16(312);
emit_16(376);
emit_16(311);
emit_16(376);
emit_16(312);
emit_16(377);
emit_16(313);
emit_16(377);
emit_16(312);
emit_16(377);
emit_16(313);
emit_16(378);
emit_16(314);
emit_16(378);
emit_16(313);
emit_16(378);
emit_16(314);
emit_16(379);
emit_16(315);
emit_16(379);
emit_16(314);
emit_16(379);
emit_16(315);
emit_16(380);
emit_16(316);
emit_16(380);
emit_16(315);
emit_16(380);
emit_16(316);
emit_16(381);
emit_16(317);
emit_16(381);
emit_16(316);
emit_16(381);
emit_16(317);
emit_16(382);
emit_16(318);
emit_16(382);
emit_16(317);
emit_16(382);
emit_16(318);
emit_16(383);
emit_16(319);
emit_16(383);
emit_16(318);
emit_16(384);
emit_16(320);
emit_16(385);
emit_16(321);
emit_16(385);
emit_16(320);
emit_16(385);
emit_16(321);
emit_16(386);
emit_16(322);
emit_16(386);
emit_16(321);
emit_16(386);
emit_16(322);
emit_16(387);
emit_16(323);
emit_16(387);
emit_16(322);
emit_16(387);
emit_16(323);
emit_16(388);
emit_16(324);
emit_16(388);
emit_16(323);
emit_16(388);
emit_16(324);
emit_16(389);
emit_16(325);
emit_16(389);
emit_16(324);
emit_16(389);
emit_16(325);
emit_16(390);
emit_16(326);
emit_16(390);
emit_16(325);
emit_16(390);
emit_16(326);
emit_16(391);
emit_16(327);
emit_16(391);
emit_16(326);
emit_16(391);
emit_16(327);
emit_16(392);
emit_16(328);
emit_16(392);
emit_16(327);
emit_16(392);
emit_16(328);
emit_16(393);
emit_16(329);
emit_16(393);
emit_16(328);
emit_16(393);
emit_16(329);
emit_16(394);
emit_16(330);
emit_16(394);
emit_16(329);
emit_16(394);
emit_16(330);
emit_16(395);
emit_16(331);
emit_16(395);
emit_16(330);
emit_16(395);
emit_16(331);
emit_16(396);
emit_16(332);
emit_16(396);
emit_16(331);
emit_16(396);
emit_16(332);
emit_16(397);
emit_16(333);
emit_16(397);
emit_16(332);
emit_16(397);
emit_16(333);
emit_16(398);
emit_16(334);
emit_16(398);
emit_16(333);
emit_16(398);
emit_16(334);
emit_16(399);
emit_16(335);
emit_16(399);
emit_16(334);
emit_16(399);
emit_16(335);
emit_16(400);
emit_16(336);
emit_16(400);
emit_16(335);
emit_16(400);
emit_16(336);
emit_16(401);
emit_16(337);
emit_16(401);
emit_16(336);
emit_16(401);
emit_16(337);
emit_16(402);
emit_16(338);
emit_16(402);
emit_16(337);
emit_16(402);
emit_16(338);
emit_16(403);
emit_16(339);
emit_16(403);
emit_16(338);
emit_16(403);
emit_16(339);
emit_16(404);
emit_16(340);
emit_16(404);
emit_16(339);
emit_16(404);
emit_16(340);
emit_16(405);
emit_16(341);
emit_16(405);
emit_16(340);
emit_16(405);
emit_16(341);
emit_16(406);
emit_16(342);
emit_16(406);
emit_16(341);
emit_16(406);
emit_16(342);
emit_16(407);
emit_16(343);
emit_16(407);
emit_16(342);
emit_16(407);
emit_16(343);
emit_16(408);
emit_16(344);
emit_16(408);
emit_16(343);
emit_16(408);
emit_16(344);
emit_16(409);
emit_16(345);
emit_16(409);
emit_16(344);
emit_16(409);
emit_16(345);
emit_16(410);
emit_16(346);
emit_16(410);
emit_16(345);
emit_16(410);
emit_16(346);
emit_16(411);
emit_16(347);
emit_16(411);
emit_16(346);
emit_16(411);
emit_16(347);
emit_16(412);
emit_16(348);
emit_16(412);
emit_16(347);
emit_16(412);
emit_16(348);
emit_16(413);
emit_16(349);
emit_16(413);
emit_16(348);
emit_16(413);
emit_16(349);
emit_16(414);
emit_16(350);
emit_16(414);
emit_16(349);
emit_16(414);
emit_16(350);
emit_16(415);
emit_16(351);
emit_16(415);
emit_16(350);
emit_16(415);
emit_16(351);
emit_16(416);
emit_16(352);
emit_16(416);
emit_16(351);
emit_16(416);
emit_16(352);
emit_16(417);
emit_16(353);
emit_16(417);
emit_16(352);
emit_16(417);
emit_16(353);
emit_16(418);
emit_16(354);
emit_16(418);
emit_16(353);
emit_16(418);
emit_16(354);
emit_16(419);
emit_16(355);
emit_16(419);
emit_16(354);
emit_16(419);
emit_16(355);
emit_16(420);
emit_16(356);
emit_16(420);
emit_16(355);
emit_16(420);
emit_16(356);
emit_16(421);
emit_16(357);
emit_16(421);
emit_16(356);
emit_16(421);
emit_16(357);
emit_16(422);
emit_16(358);
emit_16(422);
emit_16(357);
emit_16(422);
emit_16(358);
emit_16(423);
emit_16(359);
emit_16(423);
emit_16(358);
emit_16(423);
emit_16(359);
emit_16(424);
emit_16(360);
emit_16(424);
emit_16(359);
emit_16(424);
emit_16(360);
emit_16(425);
emit_16(361);
emit_16(425);
emit_16(360);
emit_16(425);
emit_16(361);
emit_16(426);
emit_16(362);
emit_16(426);
emit_16(361);
emit_16(426);
emit_16(362);
emit_16(427);
emit_16(363);
emit_16(427);
emit_16(362);
emit_16(427);
emit_16(363);
emit_16(428);
emit_16(364);
emit_16(428);
emit_16(363);
emit_16(428);
emit_16(364);
emit_16(429);
emit_16(365);
emit_16(429);
emit_16(364);
emit_16(429);
emit_16(365);
emit_16(430);
emit_16(366);
emit_16(430);
emit_16(365);
emit_16(430);
emit_16(366);
emit_16(431);
emit_16(367);
emit_16(431);
emit_16(366);
emit_16(431);
emit_16(367);
emit_16(432);
emit_16(368);
emit_16(432);
emit_16(367);
emit_16(432);
emit_16(368);
emit_16(433);
emit_16(369);
emit_16(433);
emit_16(368);
emit_16(433);
emit_16(369);
emit_16(434);
emit_16(370);
emit_16(434);
emit_16(369);
emit_16(434);
emit_16(370);
emit_16(435);
emit_16(371);
emit_16(435);
emit_16(370);
emit_16(435);
emit_16(371);
emit_16(436);
emit_16(372);
emit_16(436);
emit_16(371);
emit_16(436);
emit_16(372);
emit_16(437);
emit_16(373);
emit_16(437);
emit_16(372);
emit_16(437);
emit_16(373);
emit_16(438);
emit_16(374);
emit_16(438);
emit_16(373);
emit_16(438);
emit_16(374);
emit_16(439);
emit_16(375);
emit_16(439);
emit_16(374);
emit_16(439);
emit_16(375);
emit_16(440);
emit_16(376);
emit_16(440);
emit_16(375);
emit_16(440);
emit_16(376);
emit_16(441);
emit_16(377);
emit_16(441);
emit_16(376);
emit_16(441);
emit_16(377);
emit_16(442);
emit_16(378);
emit_16(442);
emit_16(377);
emit_16(442);
emit_16(378);
emit_16(443);
emit_16(379);
emit_16(443);
emit_16(378);
emit_16(443);
emit_16(379);
emit_16(444);
emit_16(380);
emit_16(444);
emit_16(379);
emit_16(444);
emit_16(380);
emit_16(445);
emit_16(381);
emit_16(445);
emit_16(380);
emit_16(445);
emit_16(381);
emit_16(446);
emit_16(382);
emit_16(446);
emit_16(381);
emit_16(446);
emit_16(382);
emit_16(447);
emit_16(383);
emit_16(447);
emit_16(382);
emit_16(448);
emit_16(384);
emit_16(449);
emit_16(385);
emit_16(449);
emit_16(384);
emit_16(449);
emit_16(385);
emit_16(450);
emit_16(386);
emit_16(450);
emit_16(385);
emit_16(450);
emit_16(386);
emit_16(451);
emit_16(387);
emit_16(451);
emit_16(386);
emit_16(451);
emit_16(387);
emit_16(452);
emit_16(388);
emit_16(452);
emit_16(387);
emit_16(452);
emit_16(388);
emit_16(453);
emit_16(389);
emit_16(453);
emit_16(388);
emit_16(453);
emit_16(389);
emit_16(454);
emit_16(390);
emit_16(454);
emit_16(389);
emit_16(454);
emit_16(390);
emit_16(455);
emit_16(391);
emit_16(455);
emit_16(390);
emit_16(455);
emit_16(391);
emit_16(456);
emit_16(392);
emit_16(456);
emit_16(391);
emit_16(456);
emit_16(392);
emit_16(457);
emit_16(393);
emit_16(457);
emit_16(392);
emit_16(457);
emit_16(393);
emit_16(458);
emit_16(394);
emit_16(458);
emit_16(393);
emit_16(458);
emit_16(394);
emit_16(459);
emit_16(395);
emit_16(459);
emit_16(394);
emit_16(459);
emit_16(395);
emit_16(460);
emit_16(396);
emit_16(460);
emit_16(395);
emit_16(460);
emit_16(396);
emit_16(461);
emit_16(397);
emit_16(461);
emit_16(396);
emit_16(461);
emit_16(397);
emit_16(462);
emit_16(398);
emit_16(462);
emit_16(397);
emit_16(462);
emit_16(398);
emit_16(463);
emit_16(399);
emit_16(463);
emit_16(398);
emit_16(463);
emit_16(399);
emit_16(464);
emit_16(400);
emit_16(464);
emit_16(399);
emit_16(464);
emit_16(400);
emit_16(465);
emit_16(401);
emit_16(465);
emit_16(400);
emit_16(465);
emit_16(401);
emit_16(466);
emit_16(402);
emit_16(466);
emit_16(401);
emit_16(466);
emit_16(402);
emit_16(467);
emit_16(403);
emit_16(467);
emit_16(402);
emit_16(467);
emit_16(403);
emit_16(468);
emit_16(404);
emit_16(468);
emit_16(403);
emit_16(468);
emit_16(404);
emit_16(469);
emit_16(405);
emit_16(469);
emit_16(404);
emit_16(469);
emit_16(405);
emit_16(470);
emit_16(406);
emit_16(470);
emit_16(405);
emit_16(470);
emit_16(406);
emit_16(471);
emit_16(407);
emit_16(471);
emit_16(406);
emit_16(471);
emit_16(407);
emit_16(472);
emit_16(408);
emit_16(472);
emit_16(407);
emit_16(472);
emit_16(408);
emit_16(473);
emit_16(409);
emit_16(473);
emit_16(408);
emit_16(473);
emit_16(409);
emit_16(474);
emit_16(410);
emit_16(474);
emit_16(409);
emit_16(474);
emit_16(410);
emit_16(475);
emit_16(411);
emit_16(475);
emit_16(410);
emit_16(475);
emit_16(411);
emit_16(476);
emit_16(412);
emit_16(476);
emit_16(411);
emit_16(476);
emit_16(412);
emit_16(477);
emit_16(413);
emit_16(477);
emit_16(412);
emit_16(477);
emit_16(413);
emit_16(478);
emit_16(414);
emit_16(478);
emit_16(413);
emit_16(478);
emit_16(414);
emit_16(479);
emit_16(415);
emit_16(479);
emit_16(414);
emit_16(479);
emit_16(415);
emit_16(480);
emit_16(416);
emit_16(480);
emit_16(415);
emit_16(480);
emit_16(416);
emit_16(481);
emit_16(417);
emit_16(481);
emit_16(416);
emit_16(481);
emit_16(417);
emit_16(482);
emit_16(418);
emit_16(482);
emit_16(417);
emit_16(482);
emit_16(418);
emit_16(483);
emit_16(419);
emit_16(483);
emit_16(418);
emit_16(483);
emit_16(419);
emit_16(484);
emit_16(420);
emit_16(484);
emit_16(419);
emit_16(484);
emit_16(420);
emit_16(485);
emit_16(421);
emit_16(485);
emit_16(420);
emit_16(485);
emit_16(421);
emit_16(486);
emit_16(422);
emit_16(486);
emit_16(421);
emit_16(486);
emit_16(422);
emit_16(487);
emit_16(423);
emit_16(487);
emit_16(422);
emit_16(487);
emit_16(423);
emit_16(488);
emit_16(424);
emit_16(488);
emit_16(423);
emit_16(488);
emit_16(424);
emit_16(489);
emit_16(425);
emit_16(489);
emit_16(424);
emit_16(489);
emit_16(425);
emit_16(490);
emit_16(426);
emit_16(490);
emit_16(425);
emit_16(490);
emit_16(426);
emit_16(491);
emit_16(427);
emit_16(491);
emit_16(426);
emit_16(491);
emit_16(427);
emit_16(492);
emit_16(428);
emit_16(492);
emit_16(427);
emit_16(492);
emit_16(428);
emit_16(493);
emit_16(429);
emit_16(493);
emit_16(428);
emit_16(493);
emit_16(429);
emit_16(494);
emit_16(430);
emit_16(494);
emit_16(429);
emit_16(494);
emit_16(430);
emit_16(495);
emit_16(431);
emit_16(495);
emit_16(430);
emit_16(495);
emit_16(431);
emit_16(496);
emit_16(432);
emit_16(496);
emit_16(431);
emit_16(496);
emit_16(432);
emit_16(497);
emit_16(433);
emit_16(497);
emit_16(432);
emit_16(497);
emit_16(433);
emit_16(498);
emit_16(434);
emit_16(498);
emit_16(433);
emit_16(498);
emit_16(434);
emit_16(499);
emit_16(435);
emit_16(499);
emit_16(434);
emit_16(499);
emit_16(435);
emit_16(500);
emit_16(436);
emit_16(500);
emit_16(435);
emit_16(500);
emit_16(436);
emit_16(501);
emit_16(437);
emit_16(501);
emit_16(436);
emit_16(501);
emit_16(437);
emit_16(502);
emit_16(438);
emit_16(502);
emit_16(437);
emit_16(502);
emit_16(438);
emit_16(503);
emit_16(439);
emit_16(503);
emit_16(438);
emit_16(503);
emit_16(439);
emit_16(504);
emit_16(440);
emit_16(504);
emit_16(439);
emit_16(504);
emit_16(440);
emit_16(505);
emit_16(441);
emit_16(505);
emit_16(440);
emit_16(505);
emit_16(441);
emit_16(506);
emit_16(442);
emit_16(506);
emit_16(441);
emit_16(506);
emit_16(442);
emit_16(507);
emit_16(443);
emit_16(507);
emit_16(442);
emit_16(507);
emit_16(443);
emit_16(508);
emit_16(444);
emit_16(508);
emit_16(443);
emit_16(508);
emit_16(444);
emit_16(509);
emit_16(445);
emit_16(509);
emit_16(444);
emit_16(509);
emit_16(445);
emit_16(510);
emit_16(446);
emit_16(510);
emit_16(445);
emit_16(510);
emit_16(446);
emit_16(511);
emit_16(447);
emit_16(511);
emit_16(446);
emit_16(512);
emit_16(448);
emit_16(513);
emit_16(449);
emit_16(513);
emit_16(448);
emit_16(513);
emit_16(449);
emit_16(514);
emit_16(450);
emit_16(514);
emit_16(449);
emit_16(514);
emit_16(450);
emit_16(515);
emit_16(451);
emit_16(515);
emit_16(450);
emit_16(515);
emit_16(451);
emit_16(516);
emit_16(452);
emit_16(516);
emit_16(451);
emit_16(516);
emit_16(452);
emit_16(517);
emit_16(453);
emit_16(517);
emit_16(452);
emit_16(517);
emit_16(453);
emit_16(518);
emit_16(454);
emit_16(518);
emit_16(453);
emit_16(518);
emit_16(454);
emit_16(519);
emit_16(455);
emit_16(519);
emit_16(454);
emit_16(519);
emit_16(455);
emit_16(520);
emit_16(456);
emit_16(520);
emit_16(455);
emit_16(520);
emit_16(456);
emit_16(521);
emit_16(457);
emit_16(521);
emit_16(456);
emit_16(521);
emit_16(457);
emit_16(522);
emit_16(458);
emit_16(522);
emit_16(457);
emit_16(522);
emit_16(458);
emit_16(523);
emit_16(459);
emit_16(523);
emit_16(458);
emit_16(523);
emit_16(459);
emit_16(524);
emit_16(460);
emit_16(524);
emit_16(459);
emit_16(524);
emit_16(460);
emit_16(525);
emit_16(461);
emit_16(525);
emit_16(460);
emit_16(525);
emit_16(461);
emit_16(526);
emit_16(462);
emit_16(526);
emit_16(461);
emit_16(526);
emit_16(462);
emit_16(527);
emit_16(463);
emit_16(527);
emit_16(462);
emit_16(527);
emit_16(463);
emit_16(528);
emit_16(464);
emit_16(528);
emit_16(463);
emit_16(528);
emit_16(464);
emit_16(529);
emit_16(465);
emit_16(529);
emit_16(464);
emit_16(529);
emit_16(465);
emit_16(530);
emit_16(466);
emit_16(530);
emit_16(465);
emit_16(530);
emit_16(466);
emit_16(531);
emit_16(467);
emit_16(531);
emit_16(466);
emit_16(531);
emit_16(467);
emit_16(532);
emit_16(468);
emit_16(532);
emit_16(467);
emit_16(532);
emit_16(468);
emit_16(533);
emit_16(469);
emit_16(533);
emit_16(468);
emit_16(533);
emit_16(469);
emit_16(534);
emit_16(470);
emit_16(534);
emit_16(469);
emit_16(534);
emit_16(470);
emit_16(535);
emit_16(471);
emit_16(535);
emit_16(470);
emit_16(535);
emit_16(471);
emit_16(536);
emit_16(472);
emit_16(536);
emit_16(471);
emit_16(536);
emit_16(472);
emit_16(537);
emit_16(473);
emit_16(537);
emit_16(472);
emit_16(537);
emit_16(473);
emit_16(538);
emit_16(474);
emit_16(538);
emit_16(473);
emit_16(538);
emit_16(474);
emit_16(539);
emit_16(475);
emit_16(539);
emit_16(474);
emit_16(539);
emit_16(475);
emit_16(540);
emit_16(476);
emit_16(540);
emit_16(475);
emit_16(540);
emit_16(476);
emit_16(541);
emit_16(477);
emit_16(541);
emit_16(476);
emit_16(541);
emit_16(477);
emit_16(542);
emit_16(478);
emit_16(542);
emit_16(477);
emit_16(542);
emit_16(478);
emit_16(543);
emit_16(479);
emit_16(543);
emit_16(478);
emit_16(543);
emit_16(479);
emit_16(544);
emit_16(480);
emit_16(544);
emit_16(479);
emit_16(544);
emit_16(480);
emit_16(545);
emit_16(481);
emit_16(545);
emit_16(480);
emit_16(545);
emit_16(481);
emit_16(546);
emit_16(482);
emit_16(546);
emit_16(481);
emit_16(546);
emit_16(482);
emit_16(547);
emit_16(483);
emit_16(547);
emit_16(482);
emit_16(547);
emit_16(483);
emit_16(548);
emit_16(484);
emit_16(548);
emit_16(483);
emit_16(548);
emit_16(484);
emit_16(549);
emit_16(485);
emit_16(549);
emit_16(484);
emit_16(549);
emit_16(485);
emit_16(550);
emit_16(486);
emit_16(550);
emit_16(485);
emit_16(550);
emit_16(486);
emit_16(551);
emit_16(487);
emit_16(551);
emit_16(486);
emit_16(551);
emit_16(487);
emit_16(552);
emit_16(488);
emit_16(552);
emit_16(487);
emit_16(552);
emit_16(488);
emit_16(553);
emit_16(489);
emit_16(553);
emit_16(488);
emit_16(553);
emit_16(489);
emit_16(554);
emit_16(490);
emit_16(554);
emit_16(489);
emit_16(554);
emit_16(490);
emit_16(555);
emit_16(491);
emit_16(555);
emit_16(490);
emit_16(555);
emit_16(491);
emit_16(556);
emit_16(492);
emit_16(556);
emit_16(491);
emit_16(556);
emit_16(492);
emit_16(557);
emit_16(493);
emit_16(557);
emit_16(492);
emit_16(557);
emit_16(493);
emit_16(558);
emit_16(494);
emit_16(558);
emit_16(493);
emit_16(558);
emit_16(494);
emit_16(559);
emit_16(495);
emit_16(559);
emit_16(494);
emit_16(559);
emit_16(495);
emit_16(560);
emit_16(496);
emit_16(560);
emit_16(495);
emit_16(560);
emit_16(496);
emit_16(561);
emit_16(497);
emit_16(561);
emit_16(496);
emit_16(561);
emit_16(497);
emit_16(562);
emit_16(498);
emit_16(562);
emit_16(497);
emit_16(562);
emit_16(498);
emit_16(563);
emit_16(499);
emit_16(563);
emit_16(498);
emit_16(563);
emit_16(499);
emit_16(564);
emit_16(500);
emit_16(564);
emit_16(499);
emit_16(564);
emit_16(500);
emit_16(565);
emit_16(501);
emit_16(565);
emit_16(500);
emit_16(565);
emit_16(501);
emit_16(566);
emit_16(502);
emit_16(566);
emit_16(501);
emit_16(566);
emit_16(502);
emit_16(567);
emit_16(503);
emit_16(567);
emit_16(502);
emit_16(567);
emit_16(503);
emit_16(568);
emit_16(504);
emit_16(568);
emit_16(503);
emit_16(568);
emit_16(504);
emit_16(569);
emit_16(505);
emit_16(569);
emit_16(504);
emit_16(569);
emit_16(505);
emit_16(570);
emit_16(506);
emit_16(570);
emit_16(505);
emit_16(570);
emit_16(506);
emit_16(571);
emit_16(507);
emit_16(571);
emit_16(506);
emit_16(571);
emit_16(507);
emit_16(572);
emit_16(508);
emit_16(572);
emit_16(507);
emit_16(572);
emit_16(508);
emit_16(573);
emit_16(509);
emit_16(573);
emit_16(508);
emit_16(573);
emit_16(509);
emit_16(574);
emit_16(510);
emit_16(574);
emit_16(509);
emit_16(574);
emit_16(510);
emit_16(575);
emit_16(511);
emit_16(575);
emit_16(510);
emit_16(576);
emit_16(512);
emit_16(577);
emit_16(513);
emit_16(577);
emit_16(512);
emit_16(577);
emit_16(513);
emit_16(578);
emit_16(514);
emit_16(578);
emit_16(513);
emit_16(578);
emit_16(514);
emit_16(579);
emit_16(515);
emit_16(579);
emit_16(514);
emit_16(579);
emit_16(515);
emit_16(580);
emit_16(516);
emit_16(580);
emit_16(515);
emit_16(580);
emit_16(516);
emit_16(581);
emit_16(517);
emit_16(581);
emit_16(516);
emit_16(581);
emit_16(517);
emit_16(582);
emit_16(518);
emit_16(582);
emit_16(517);
emit_16(582);
emit_16(518);
emit_16(583);
emit_16(519);
emit_16(583);
emit_16(518);
emit_16(583);
emit_16(519);
emit_16(584);
emit_16(520);
emit_16(584);
emit_16(519);
emit_16(584);
emit_16(520);
emit_16(585);
emit_16(521);
emit_16(585);
emit_16(520);
emit_16(585);
emit_16(521);
emit_16(586);
emit_16(522);
emit_16(586);
emit_16(521);
emit_16(586);
emit_16(522);
emit_16(587);
emit_16(523);
emit_16(587);
emit_16(522);
emit_16(587);
emit_16(523);
emit_16(588);
emit_16(524);
emit_16(588);
emit_16(523);
emit_16(588);
emit_16(524);
emit_16(589);
emit_16(525);
emit_16(589);
emit_16(524);
emit_16(589);
emit_16(525);
emit_16(590);
emit_16(526);
emit_16(590);
emit_16(525);
emit_16(590);
emit_16(526);
emit_16(591);
emit_16(527);
emit_16(591);
emit_16(526);
emit_16(591);
emit_16(527);
emit_16(592);
emit_16(528);
emit_16(592);
emit_16(527);
emit_16(592);
emit_16(528);
emit_16(593);
emit_16(529);
emit_16(593);
emit_16(528);
emit_16(593);
emit_16(529);
emit_16(594);
emit_16(530);
emit_16(594);
emit_16(529);
emit_16(594);
emit_16(530);
emit_16(595);
emit_16(531);
emit_16(595);
emit_16(530);
emit_16(595);
emit_16(531);
emit_16(596);
emit_16(532);
emit_16(596);
emit_16(531);
emit_16(596);
emit_16(532);
emit_16(597);
emit_16(533);
emit_16(597);
emit_16(532);
emit_16(597);
emit_16(533);
emit_16(598);
emit_16(534);
emit_16(598);
emit_16(533);
emit_16(598);
emit_16(534);
emit_16(599);
emit_16(535);
emit_16(599);
emit_16(534);
emit_16(599);
emit_16(535);
emit_16(600);
emit_16(536);
emit_16(600);
emit_16(535);
emit_16(600);
emit_16(536);
emit_16(601);
emit_16(537);
emit_16(601);
emit_16(536);
emit_16(601);
emit_16(537);
emit_16(602);
emit_16(538);
emit_16(602);
emit_16(537);
emit_16(602);
emit_16(538);
emit_16(603);
emit_16(539);
emit_16(603);
emit_16(538);
emit_16(603);
emit_16(539);
emit_16(604);
emit_16(540);
emit_16(604);
emit_16(539);
emit_16(604);
emit_16(540);
emit_16(605);
emit_16(541);
emit_16(605);
emit_16(540);
emit_16(605);
emit_16(541);
emit_16(606);
emit_16(542);
emit_16(606);
emit_16(541);
emit_16(606);
emit_16(542);
emit_16(607);
emit_16(543);
emit_16(607);
emit_16(542);
emit_16(607);
emit_16(543);
emit_16(608);
emit_16(544);
emit_16(608);
emit_16(543);
emit_16(608);
emit_16(544);
emit_16(609);
emit_16(545);
emit_16(609);
emit_16(544);
emit_16(609);
emit_16(545);
emit_16(610);
emit_16(546);
emit_16(610);
emit_16(545);
emit_16(610);
emit_16(546);
emit_16(611);
emit_16(547);
emit_16(611);
emit_16(546);
emit_16(611);
emit_16(547);
emit_16(612);
emit_16(548);
emit_16(612);
emit_16(547);
emit_16(612);
emit_16(548);
emit_16(613);
emit_16(549);
emit_16(613);
emit_16(548);
emit_16(613);
emit_16(549);
emit_16(614);
emit_16(550);
emit_16(614);
emit_16(549);
emit_16(614);
emit_16(550);
emit_16(615);
emit_16(551);
emit_16(615);
emit_16(550);
emit_16(615);
emit_16(551);
emit_16(616);
emit_16(552);
emit_16(616);
emit_16(551);
emit_16(616);
emit_16(552);
emit_16(617);
emit_16(553);
emit_16(617);
emit_16(552);
emit_16(617);
emit_16(553);
emit_16(618);
emit_16(554);
emit_16(618);
emit_16(553);
emit_16(618);
emit_16(554);
emit_16(619);
emit_16(555);
emit_16(619);
emit_16(554);
emit_16(619);
emit_16(555);
emit_16(620);
emit_16(556);
emit_16(620);
emit_16(555);
emit_16(620);
emit_16(556);
emit_16(621);
emit_16(557);
emit_16(621);
emit_16(556);
emit_16(621);
emit_16(557);
emit_16(622);
emit_16(558);
emit_16(622);
emit_16(557);
emit_16(622);
emit_16(558);
emit_16(623);
emit_16(559);
emit_16(623);
emit_16(558);
emit_16(623);
emit_16(559);
emit_16(624);
emit_16(560);
emit_16(624);
emit_16(559);
emit_16(624);
emit_16(560);
emit_16(625);
emit_16(561);
emit_16(625);
emit_16(560);
emit_16(625);
emit_16(561);
emit_16(626);
emit_16(562);
emit_16(626);
emit_16(561);
emit_16(626);
emit_16(562);
emit_16(627);
emit_16(563);
emit_16(627);
emit_16(562);
emit_16(627);
emit_16(563);
emit_16(628);
emit_16(564);
emit_16(628);
emit_16(563);
emit_16(628);
emit_16(564);
emit_16(629);
emit_16(565);
emit_16(629);
emit_16(564);
emit_16(629);
emit_16(565);
emit_16(630);
emit_16(566);
emit_16(630);
emit_16(565);
emit_16(630);
emit_16(566);
emit_16(631);
emit_16(567);
emit_16(631);
emit_16(566);
emit_16(631);
emit_16(567);
emit_16(632);
emit_16(568);
emit_16(632);
emit_16(567);
emit_16(632);
emit_16(568);
emit_16(633);
emit_16(569);
emit_16(633);
emit_16(568);
emit_16(633);
emit_16(569);
emit_16(634);
emit_16(570);
emit_16(634);
emit_16(569);
emit_16(634);
emit_16(570);
emit_16(635);
emit_16(571);
emit_16(635);
emit_16(570);
emit_16(635);
emit_16(571);
emit_16(636);
emit_16(572);
emit_16(636);
emit_16(571);
emit_16(636);
emit_16(572);
emit_16(637);
emit_16(573);
emit_16(637);
emit_16(572);
emit_16(637);
emit_16(573);
emit_16(638);
emit_16(574);
emit_16(638);
emit_16(573);
emit_16(638);
emit_16(574);
emit_16(639);
emit_16(575);
emit_16(639);
emit_16(574);
emit_16(640);
emit_16(576);
emit_16(641);
emit_16(577);
emit_16(641);
emit_16(576);
emit_16(641);
emit_16(577);
emit_16(642);
emit_16(578);
emit_16(642);
emit_16(577);
emit_16(642);
emit_16(578);
emit_16(643);
emit_16(579);
emit_16(643);
emit_16(578);
emit_16(643);
emit_16(579);
emit_16(644);
emit_16(580);
emit_16(644);
emit_16(579);
emit_16(644);
emit_16(580);
emit_16(645);
emit_16(581);
emit_16(645);
emit_16(580);
emit_16(645);
emit_16(581);
emit_16(646);
emit_16(582);
emit_16(646);
emit_16(581);
emit_16(646);
emit_16(582);
emit_16(647);
emit_16(583);
emit_16(647);
emit_16(582);
emit_16(647);
emit_16(583);
emit_16(648);
emit_16(584);
emit_16(648);
emit_16(583);
emit_16(648);
emit_16(584);
emit_16(649);
emit_16(585);
emit_16(649);
emit_16(584);
emit_16(649);
emit_16(585);
emit_16(650);
emit_16(586);
emit_16(650);
emit_16(585);
emit_16(650);
emit_16(586);
emit_16(651);
emit_16(587);
emit_16(651);
emit_16(586);
emit_16(651);
emit_16(587);
emit_16(652);
emit_16(588);
emit_16(652);
emit_16(587);
emit_16(652);
emit_16(588);
emit_16(653);
emit_16(589);
emit_16(653);
emit_16(588);
emit_16(653);
emit_16(589);
emit_16(654);
emit_16(590);
emit_16(654);
emit_16(589);
emit_16(654);
emit_16(590);
emit_16(655);
emit_16(591);
emit_16(655);
emit_16(590);
emit_16(655);
emit_16(591);
emit_16(656);
emit_16(592);
emit_16(656);
emit_16(591);
emit_16(656);
emit_16(592);
emit_16(657);
emit_16(593);
emit_16(657);
emit_16(592);
emit_16(657);
emit_16(593);
emit_16(658);
emit_16(594);
emit_16(658);
emit_16(593);
emit_16(658);
emit_16(594);
emit_16(659);
emit_16(595);
emit_16(659);
emit_16(594);
emit_16(659);
emit_16(595);
emit_16(660);
emit_16(596);
emit_16(660);
emit_16(595);
emit_16(660);
emit_16(596);
emit_16(661);
emit_16(597);
emit_16(661);
emit_16(596);
emit_16(661);
emit_16(597);
emit_16(662);
emit_16(598);
emit_16(662);
emit_16(597);
emit_16(662);
emit_16(598);
emit_16(663);
emit_16(599);
emit_16(663);
emit_16(598);
emit_16(663);
emit_16(599);
emit_16(664);
emit_16(600);
emit_16(664);
emit_16(599);
emit_16(664);
emit_16(600);
emit_16(665);
emit_16(601);
emit_16(665);
emit_16(600);
emit_16(665);
emit_16(601);
emit_16(666);
emit_16(602);
emit_16(666);
emit_16(601);
emit_16(666);
emit_16(602);
emit_16(667);
emit_16(603);
emit_16(667);
emit_16(602);
emit_16(667);
emit_16(603);
emit_16(668);
emit_16(604);
emit_16(668);
emit_16(603);
emit_16(668);
emit_16(604);
emit_16(669);
emit_16(605);
emit_16(669);
emit_16(604);
emit_16(669);
emit_16(605);
emit_16(670);
emit_16(606);
emit_16(670);
emit_16(605);
emit_16(670);
emit_16(606);
emit_16(671);
emit_16(607);
emit_16(671);
emit_16(606);
emit_16(671);
emit_16(607);
emit_16(672);
emit_16(608);
emit_16(672);
emit_16(607);
emit_16(672);
emit_16(608);
emit_16(673);
emit_16(609);
emit_16(673);
emit_16(608);
emit_16(673);
emit_16(609);
emit_16(674);
emit_16(610);
emit_16(674);
emit_16(609);
emit_16(674);
emit_16(610);
emit_16(675);
emit_16(611);
emit_16(675);
emit_16(610);
emit_16(675);
emit_16(611);
emit_16(676);
emit_16(612);
emit_16(676);
emit_16(611);
emit_16(676);
emit_16(612);
emit_16(677);
emit_16(613);
emit_16(677);
emit_16(612);
emit_16(677);
emit_16(613);
emit_16(678);
emit_16(614);
emit_16(678);
emit_16(613);
emit_16(678);
emit_16(614);
emit_16(679);
emit_16(615);
emit_16(679);
emit_16(614);
emit_16(679);
emit_16(615);
emit_16(680);
emit_16(616);
emit_16(680);
emit_16(615);
emit_16(680);
emit_16(616);
emit_16(681);
emit_16(617);
emit_16(681);
emit_16(616);
emit_16(681);
emit_16(617);
emit_16(682);
emit_16(618);
emit_16(682);
emit_16(617);
emit_16(682);
emit_16(618);
emit_16(683);
emit_16(619);
emit_16(683);
emit_16(618);
emit_16(683);
emit_16(619);
emit_16(684);
emit_16(620);
emit_16(684);
emit_16(619);
emit_16(684);
emit_16(620);
emit_16(685);
emit_16(621);
emit_16(685);
emit_16(620);
emit_16(685);
emit_16(621);
emit_16(686);
emit_16(622);
emit_16(686);
emit_16(621);
emit_16(686);
emit_16(622);
emit_16(687);
emit_16(623);
emit_16(687);
emit_16(622);
emit_16(687);
emit_16(623);
emit_16(688);
emit_16(624);
emit_16(688);
emit_16(623);
emit_16(688);
emit_16(624);
emit_16(689);
emit_16(625);
emit_16(689);
emit_16(624);
emit_16(689);
emit_16(625);
emit_16(690);
emit_16(626);
emit_16(690);
emit_16(625);
emit_16(690);
emit_16(626);
emit_16(691);
emit_16(627);
emit_16(691);
emit_16(626);
emit_16(691);
emit_16(627);
emit_16(692);
emit_16(628);
emit_16(692);
emit_16(627);
emit_16(692);
emit_16(628);
emit_16(693);
emit_16(629);
emit_16(693);
emit_16(628);
emit_16(693);
emit_16(629);
emit_16(694);
emit_16(630);
emit_16(694);
emit_16(629);
emit_16(694);
emit_16(630);
emit_16(695);
emit_16(631);
emit_16(695);
emit_16(630);
emit_16(695);
emit_16(631);
emit_16(696);
emit_16(632);
emit_16(696);
emit_16(631);
emit_16(696);
emit_16(632);
emit_16(697);
emit_16(633);
emit_16(697);
emit_16(632);
emit_16(697);
emit_16(633);
emit_16(698);
emit_16(634);
emit_16(698);
emit_16(633);
emit_16(698);
emit_16(634);
emit_16(699);
emit_16(635);
emit_16(699);
emit_16(634);
emit_16(699);
emit_16(635);
emit_16(700);
emit_16(636);
emit_16(700);
emit_16(635);
emit_16(700);
emit_16(636);
emit_16(701);
emit_16(637);
emit_16(701);
emit_16(636);
emit_16(701);
emit_16(637);
emit_16(702);
emit_16(638);
emit_16(702);
emit_16(637);
emit_16(702);
emit_16(638);
emit_16(703);
emit_16(639);
emit_16(703);
emit_16(638);
emit_16(704);
emit_16(640);
emit_16(705);
emit_16(641);
emit_16(705);
emit_16(640);
emit_16(705);
emit_16(641);
emit_16(706);
emit_16(642);
emit_16(706);
emit_16(641);
emit_16(706);
emit_16(642);
emit_16(707);
emit_16(643);
emit_16(707);
emit_16(642);
emit_16(707);
emit_16(643);
emit_16(708);
emit_16(644);
emit_16(708);
emit_16(643);
emit_16(708);
emit_16(644);
emit_16(709);
emit_16(645);
emit_16(709);
emit_16(644);
emit_16(709);
emit_16(645);
emit_16(710);
emit_16(646);
emit_16(710);
emit_16(645);
emit_16(710);
emit_16(646);
emit_16(711);
emit_16(647);
emit_16(711);
emit_16(646);
emit_16(711);
emit_16(647);
emit_16(712);
emit_16(648);
emit_16(712);
emit_16(647);
emit_16(712);
emit_16(648);
emit_16(713);
emit_16(649);
emit_16(713);
emit_16(648);
emit_16(713);
emit_16(649);
emit_16(714);
emit_16(650);
emit_16(714);
emit_16(649);
emit_16(714);
emit_16(650);
emit_16(715);
emit_16(651);
emit_16(715);
emit_16(650);
emit_16(715);
emit_16(651);
emit_16(716);
emit_16(652);
emit_16(716);
emit_16(651);
emit_16(716);
emit_16(652);
emit_16(717);
emit_16(653);
emit_16(717);
emit_16(652);
emit_16(717);
emit_16(653);
emit_16(718);
emit_16(654);
emit_16(718);
emit_16(653);
emit_16(718);
emit_16(654);
emit_16(719);
emit_16(655);
emit_16(719);
emit_16(654);
emit_16(719);
emit_16(655);
emit_16(720);
emit_16(656);
emit_16(720);
emit_16(655);
emit_16(720);
emit_16(656);
emit_16(721);
emit_16(657);
emit_16(721);
emit_16(656);
emit_16(721);
emit_16(657);
emit_16(722);
emit_16(658);
emit_16(722);
emit_16(657);
emit_16(722);
emit_16(658);
emit_16(723);
emit_16(659);
emit_16(723);
emit_16(658);
emit_16(723);
emit_16(659);
emit_16(724);
emit_16(660);
emit_16(724);
emit_16(659);
emit_16(724);
emit_16(660);
emit_16(725);
emit_16(661);
emit_16(725);
emit_16(660);
emit_16(725);
emit_16(661);
emit_16(726);
emit_16(662);
emit_16(726);
emit_16(661);
emit_16(726);
emit_16(662);
emit_16(727);
emit_16(663);
emit_16(727);
emit_16(662);
emit_16(727);
emit_16(663);
emit_16(728);
emit_16(664);
emit_16(728);
emit_16(663);
emit_16(728);
emit_16(664);
emit_16(729);
emit_16(665);
emit_16(729);
emit_16(664);
emit_16(729);
emit_16(665);
emit_16(730);
emit_16(666);
emit_16(730);
emit_16(665);
emit_16(730);
emit_16(666);
emit_16(731);
emit_16(667);
emit_16(731);
emit_16(666);
emit_16(731);
emit_16(667);
emit_16(732);
emit_16(668);
emit_16(732);
emit_16(667);
emit_16(732);
emit_16(668);
emit_16(733);
emit_16(669);
emit_16(733);
emit_16(668);
emit_16(733);
emit_16(669);
emit_16(734);
emit_16(670);
emit_16(734);
emit_16(669);
emit_16(734);
emit_16(670);
emit_16(735);
emit_16(671);
emit_16(735);
emit_16(670);
emit_16(735);
emit_16(671);
emit_16(736);
emit_16(672);
emit_16(736);
emit_16(671);
emit_16(736);
emit_16(672);
emit_16(737);
emit_16(673);
emit_16(737);
emit_16(672);
emit_16(737);
emit_16(673);
emit_16(738);
emit_16(674);
emit_16(738);
emit_16(673);
emit_16(738);
emit_16(674);
emit_16(739);
emit_16(675);
emit_16(739);
emit_16(674);
emit_16(739);
emit_16(675);
emit_16(740);
emit_16(676);
emit_16(740);
emit_16(675);
emit_16(740);
emit_16(676);
emit_16(741);
emit_16(677);
emit_16(741);
emit_16(676);
emit_16(741);
emit_16(677);
emit_16(742);
emit_16(678);
emit_16(742);
emit_16(677);
emit_16(742);
emit_16(678);
emit_16(743);
emit_16(679);
emit_16(743);
emit_16(678);
emit_16(743);
emit_16(679);
emit_16(744);
emit_16(680);
emit_16(744);
emit_16(679);
emit_16(744);
emit_16(680);
emit_16(745);
emit_16(681);
emit_16(745);
emit_16(680);
emit_16(745);
emit_16(681);
emit_16(746);
emit_16(682);
emit_16(746);
emit_16(681);
emit_16(746);
emit_16(682);
emit_16(747);
emit_16(683);
emit_16(747);
emit_16(682);
emit_16(747);
emit_16(683);
emit_16(748);
emit_16(684);
emit_16(748);
emit_16(683);
emit_16(748);
emit_16(684);
emit_16(749);
emit_16(685);
emit_16(749);
emit_16(684);
emit_16(749);
emit_16(685);
emit_16(750);
emit_16(686);
emit_16(750);
emit_16(685);
emit_16(750);
emit_16(686);
emit_16(751);
emit_16(687);
emit_16(751);
emit_16(686);
emit_16(751);
emit_16(687);
emit_16(752);
emit_16(688);
emit_16(752);
emit_16(687);
emit_16(752);
emit_16(688);
emit_16(753);
emit_16(689);
emit_16(753);
emit_16(688);
emit_16(753);
emit_16(689);
emit_16(754);
emit_16(690);
emit_16(754);
emit_16(689);
emit_16(754);
emit_16(690);
emit_16(755);
emit_16(691);
emit_16(755);
emit_16(690);
emit_16(755);
emit_16(691);
emit_16(756);
emit_16(692);
emit_16(756);
emit_16(691);
emit_16(756);
emit_16(692);
emit_16(757);
emit_16(693);
emit_16(757);
emit_16(692);
emit_16(757);
emit_16(693);
emit_16(758);
emit_16(694);
emit_16(758);
emit_16(693);
emit_16(758);
emit_16(694);
emit_16(759);
emit_16(695);
emit_16(759);
emit_16(694);
emit_16(759);
emit_16(695);
emit_16(760);
emit_16(696);
emit_16(760);
emit_16(695);
emit_16(760);
emit_16(696);
emit_16(761);
emit_16(697);
emit_16(761);
emit_16(696);
emit_16(761);
emit_16(697);
emit_16(762);
emit_16(698);
emit_16(762);
emit_16(697);
emit_16(762);
emit_16(698);
emit_16(763);
emit_16(699);
emit_16(763);
emit_16(698);
emit_16(763);
emit_16(699);
emit_16(764);
emit_16(700);
emit_16(764);
emit_16(699);
emit_16(764);
emit_16(700);
emit_16(765);
emit_16(701);
emit_16(765);
emit_16(700);
emit_16(765);
emit_16(701);
emit_16(766);
emit_16(702);
emit_16(766);
emit_16(701);
emit_16(766);
emit_16(702);
emit_16(767);
emit_16(703);
emit_16(767);
emit_16(702);
emit_16(768);
emit_16(704);
emit_16(769);
emit_16(705);
emit_16(769);
emit_16(704);
emit_16(769);
emit_16(705);
emit_16(770);
emit_16(706);
emit_16(770);
emit_16(705);
emit_16(770);
emit_16(706);
emit_16(771);
emit_16(707);
emit_16(771);
emit_16(706);
emit_16(771);
emit_16(707);
emit_16(772);
emit_16(708);
emit_16(772);
emit_16(707);
emit_16(772);
emit_16(708);
emit_16(773);
emit_16(709);
emit_16(773);
emit_16(708);
emit_16(773);
emit_16(709);
emit_16(774);
emit_16(710);
emit_16(774);
emit_16(709);
emit_16(774);
emit_16(710);
emit_16(775);
emit_16(711);
emit_16(775);
emit_16(710);
emit_16(775);
emit_16(711);
emit_16(776);
emit_16(712);
emit_16(776);
emit_16(711);
emit_16(776);
emit_16(712);
emit_16(777);
emit_16(713);
emit_16(777);
emit_16(712);
emit_16(777);
emit_16(713);
emit_16(778);
emit_16(714);
emit_16(778);
emit_16(713);
emit_16(778);
emit_16(714);
emit_16(779);
emit_16(715);
emit_16(779);
emit_16(714);
emit_16(779);
emit_16(715);
emit_16(780);
emit_16(716);
emit_16(780);
emit_16(715);
emit_16(780);
emit_16(716);
emit_16(781);
emit_16(717);
emit_16(781);
emit_16(716);
emit_16(781);
emit_16(717);
emit_16(782);
emit_16(718);
emit_16(782);
emit_16(717);
emit_16(782);
emit_16(718);
emit_16(783);
emit_16(719);
emit_16(783);
emit_16(718);
emit_16(783);
emit_16(719);
emit_16(784);
emit_16(720);
emit_16(784);
emit_16(719);
emit_16(784);
emit_16(720);
emit_16(785);
emit_16(721);
emit_16(785);
emit_16(720);
emit_16(785);
emit_16(721);
emit_16(786);
emit_16(722);
emit_16(786);
emit_16(721);
emit_16(786);
emit_16(722);
emit_16(787);
emit_16(723);
emit_16(787);
emit_16(722);
emit_16(787);
emit_16(723);
emit_16(788);
emit_16(724);
emit_16(788);
emit_16(723);
emit_16(788);
emit_16(724);
emit_16(789);
emit_16(725);
emit_16(789);
emit_16(724);
emit_16(789);
emit_16(725);
emit_16(790);
emit_16(726);
emit_16(790);
emit_16(725);
emit_16(790);
emit_16(726);
emit_16(791);
emit_16(727);
emit_16(791);
emit_16(726);
emit_16(791);
emit_16(727);
emit_16(792);
emit_16(728);
emit_16(792);
emit_16(727);
emit_16(792);
emit_16(728);
emit_16(793);
emit_16(729);
emit_16(793);
emit_16(728);
emit_16(793);
emit_16(729);
emit_16(794);
emit_16(730);
emit_16(794);
emit_16(729);
emit_16(794);
emit_16(730);
emit_16(795);
emit_16(731);
emit_16(795);
emit_16(730);
emit_16(795);
emit_16(731);
emit_16(796);
emit_16(732);
emit_16(796);
emit_16(731);
emit_16(796);
emit_16(732);
emit_16(797);
emit_16(733);
emit_16(797);
emit_16(732);
emit_16(797);
emit_16(733);
emit_16(798);
emit_16(734);
emit_16(798);
emit_16(733);
emit_16(798);
emit_16(734);
emit_16(799);
emit_16(735);
emit_16(799);
emit_16(734);
emit_16(799);
emit_16(735);
emit_16(800);
emit_16(736);
emit_16(800);
emit_16(735);
emit_16(800);
emit_16(736);
emit_16(801);
emit_16(737);
emit_16(801);
emit_16(736);
emit_16(801);
emit_16(737);
emit_16(802);
emit_16(738);
emit_16(802);
emit_16(737);
emit_16(802);
emit_16(738);
emit_16(803);
emit_16(739);
emit_16(803);
emit_16(738);
emit_16(803);
emit_16(739);
emit_16(804);
emit_16(740);
emit_16(804);
emit_16(739);
emit_16(804);
emit_16(740);
emit_16(805);
emit_16(741);
emit_16(805);
emit_16(740);
emit_16(805);
emit_16(741);
emit_16(806);
emit_16(742);
emit_16(806);
emit_16(741);
emit_16(806);
emit_16(742);
emit_16(807);
emit_16(743);
emit_16(807);
emit_16(742);
emit_16(807);
emit_16(743);
emit_16(808);
emit_16(744);
emit_16(808);
emit_16(743);
emit_16(808);
emit_16(744);
emit_16(809);
emit_16(745);
emit_16(809);
emit_16(744);
emit_16(809);
emit_16(745);
emit_16(810);
emit_16(746);
emit_16(810);
emit_16(745);
emit_16(810);
emit_16(746);
emit_16(811);
emit_16(747);
emit_16(811);
emit_16(746);
emit_16(811);
emit_16(747);
emit_16(812);
emit_16(748);
emit_16(812);
emit_16(747);
emit_16(812);
emit_16(748);
emit_16(813);
emit_16(749);
emit_16(813);
emit_16(748);
emit_16(813);
emit_16(749);
emit_16(814);
emit_16(750);
emit_16(814);
emit_16(749);
emit_16(814);
emit_16(750);
emit_16(815);
emit_16(751);
emit_16(815);
emit_16(750);
emit_16(815);
emit_16(751);
emit_16(816);
emit_16(752);
emit_16(816);
emit_16(751);
emit_16(816);
emit_16(752);
emit_16(817);
emit_16(753);
emit_16(817);
emit_16(752);
emit_16(817);
emit_16(753);
emit_16(818);
emit_16(754);
emit_16(818);
emit_16(753);
emit_16(818);
emit_16(754);
emit_16(819);
emit_16(755);
emit_16(819);
emit_16(754);
emit_16(819);
emit_16(755);
emit_16(820);
emit_16(756);
emit_16(820);
emit_16(755);
emit_16(820);
emit_16(756);
emit_16(821);
emit_16(757);
emit_16(821);
emit_16(756);
emit_16(821);
emit_16(757);
emit_16(822);
emit_16(758);
emit_16(822);
emit_16(757);
emit_16(822);
emit_16(758);
emit_16(823);
emit_16(759);
emit_16(823);
emit_16(758);
emit_16(823);
emit_16(759);
emit_16(824);
emit_16(760);
emit_16(824);
emit_16(759);
emit_16(824);
emit_16(760);
emit_16(825);
emit_16(761);
emit_16(825);
emit_16(760);
emit_16(825);
emit_16(761);
emit_16(826);
emit_16(762);
emit_16(826);
emit_16(761);
emit_16(826);
emit_16(762);
emit_16(827);
emit_16(763);
emit_16(827);
emit_16(762);
emit_16(827);
emit_16(763);
emit_16(828);
emit_16(764);
emit_16(828);
emit_16(763);
emit_16(828);
emit_16(764);
emit_16(829);
emit_16(765);
emit_16(829);
emit_16(764);
emit_16(829);
emit_16(765);
emit_16(830);
emit_16(766);
emit_16(830);
emit_16(765);
emit_16(830);
emit_16(766);
emit_16(831);
emit_16(767);
emit_16(831);
emit_16(766);
emit_16(832);
emit_16(768);
emit_16(833);
emit_16(769);
emit_16(833);
emit_16(768);
emit_16(833);
emit_16(769);
emit_16(834);
emit_16(770);
emit_16(834);
emit_16(769);
emit_16(834);
emit_16(770);
emit_16(835);
emit_16(771);
emit_16(835);
emit_16(770);
emit_16(835);
emit_16(771);
emit_16(836);
emit_16(772);
emit_16(836);
emit_16(771);
emit_16(836);
emit_16(772);
emit_16(837);
emit_16(773);
emit_16(837);
emit_16(772);
emit_16(837);
emit_16(773);
emit_16(838);
emit_16(774);
emit_16(838);
emit_16(773);
emit_16(838);
emit_16(774);
emit_16(839);
emit_16(775);
emit_16(839);
emit_16(774);
emit_16(839);
emit_16(775);
emit_16(840);
emit_16(776);
emit_16(840);
emit_16(775);
emit_16(840);
emit_16(776);
emit_16(841);
emit_16(777);
emit_16(841);
emit_16(776);
emit_16(841);
emit_16(777);
emit_16(842);
emit_16(778);
emit_16(842);
emit_16(777);
emit_16(842);
emit_16(778);
emit_16(843);
emit_16(779);
emit_16(843);
emit_16(778);
emit_16(843);
emit_16(779);
emit_16(844);
emit_16(780);
emit_16(844);
emit_16(779);
emit_16(844);
emit_16(780);
emit_16(845);
emit_16(781);
emit_16(845);
emit_16(780);
emit_16(845);
emit_16(781);
emit_16(846);
emit_16(782);
emit_16(846);
emit_16(781);
emit_16(846);
emit_16(782);
emit_16(847);
emit_16(783);
emit_16(847);
emit_16(782);
emit_16(847);
emit_16(783);
emit_16(848);
emit_16(784);
emit_16(848);
emit_16(783);
emit_16(848);
emit_16(784);
emit_16(849);
emit_16(785);
emit_16(849);
emit_16(784);
emit_16(849);
emit_16(785);
emit_16(850);
emit_16(786);
emit_16(850);
emit_16(785);
emit_16(850);
emit_16(786);
emit_16(851);
emit_16(787);
emit_16(851);
emit_16(786);
emit_16(851);
emit_16(787);
emit_16(852);
emit_16(788);
emit_16(852);
emit_16(787);
emit_16(852);
emit_16(788);
emit_16(853);
emit_16(789);
emit_16(853);
emit_16(788);
emit_16(853);
emit_16(789);
emit_16(854);
emit_16(790);
emit_16(854);
emit_16(789);
emit_16(854);
emit_16(790);
emit_16(855);
emit_16(791);
emit_16(855);
emit_16(790);
emit_16(855);
emit_16(791);
emit_16(856);
emit_16(792);
emit_16(856);
emit_16(791);
emit_16(856);
emit_16(792);
emit_16(857);
emit_16(793);
emit_16(857);
emit_16(792);
emit_16(857);
emit_16(793);
emit_16(858);
emit_16(794);
emit_16(858);
emit_16(793);
emit_16(858);
emit_16(794);
emit_16(859);
emit_16(795);
emit_16(859);
emit_16(794);
emit_16(859);
emit_16(795);
emit_16(860);
emit_16(796);
emit_16(860);
emit_16(795);
emit_16(860);
emit_16(796);
emit_16(861);
emit_16(797);
emit_16(861);
emit_16(796);
emit_16(861);
emit_16(797);
emit_16(862);
emit_16(798);
emit_16(862);
emit_16(797);
emit_16(862);
emit_16(798);
emit_16(863);
emit_16(799);
emit_16(863);
emit_16(798);
emit_16(863);
emit_16(799);
emit_16(864);
emit_16(800);
emit_16(864);
emit_16(799);
emit_16(864);
emit_16(800);
emit_16(865);
emit_16(801);
emit_16(865);
emit_16(800);
emit_16(865);
emit_16(801);
emit_16(866);
emit_16(802);
emit_16(866);
emit_16(801);
emit_16(866);
emit_16(802);
emit_16(867);
emit_16(803);
emit_16(867);
emit_16(802);
emit_16(867);
emit_16(803);
emit_16(868);
emit_16(804);
emit_16(868);
emit_16(803);
emit_16(868);
emit_16(804);
emit_16(869);
emit_16(805);
emit_16(869);
emit_16(804);
emit_16(869);
emit_16(805);
emit_16(870);
emit_16(806);
emit_16(870);
emit_16(805);
emit_16(870);
emit_16(806);
emit_16(871);
emit_16(807);
emit_16(871);
emit_16(806);
emit_16(871);
emit_16(807);
emit_16(872);
emit_16(808);
emit_16(872);
emit_16(807);
emit_16(872);
emit_16(808);
emit_16(873);
emit_16(809);
emit_16(873);
emit_16(808);
emit_16(873);
emit_16(809);
emit_16(874);
emit_16(810);
emit_16(874);
emit_16(809);
emit_16(874);
emit_16(810);
emit_16(875);
emit_16(811);
emit_16(875);
emit_16(810);
emit_16(875);
emit_16(811);
emit_16(876);
emit_16(812);
emit_16(876);
emit_16(811);
emit_16(876);
emit_16(812);
emit_16(877);
emit_16(813);
emit_16(877);
emit_16(812);
emit_16(877);
emit_16(813);
emit_16(878);
emit_16(814);
emit_16(878);
emit_16(813);
emit_16(878);
emit_16(814);
emit_16(879);
emit_16(815);
emit_16(879);
emit_16(814);
emit_16(879);
emit_16(815);
emit_16(880);
emit_16(816);
emit_16(880);
emit_16(815);
emit_16(880);
emit_16(816);
emit_16(881);
emit_16(817);
emit_16(881);
emit_16(816);
emit_16(881);
emit_16(817);
emit_16(882);
emit_16(818);
emit_16(882);
emit_16(817);
emit_16(882);
emit_16(818);
emit_16(883);
emit_16(819);
emit_16(883);
emit_16(818);
emit_16(883);
emit_16(819);
emit_16(884);
emit_16(820);
emit_16(884);
emit_16(819);
emit_16(884);
emit_16(820);
emit_16(885);
emit_16(821);
emit_16(885);
emit_16(820);
emit_16(885);
emit_16(821);
emit_16(886);
emit_16(822);
emit_16(886);
emit_16(821);
emit_16(886);
emit_16(822);
emit_16(887);
emit_16(823);
emit_16(887);
emit_16(822);
emit_16(887);
emit_16(823);
emit_16(888);
emit_16(824);
emit_16(888);
emit_16(823);
emit_16(888);
emit_16(824);
emit_16(889);
emit_16(825);
emit_16(889);
emit_16(824);
emit_16(889);
emit_16(825);
emit_16(890);
emit_16(826);
emit_16(890);
emit_16(825);
emit_16(890);
emit_16(826);
emit_16(891);
emit_16(827);
emit_16(891);
emit_16(826);
emit_16(891);
emit_16(827);
emit_16(892);
emit_16(828);
emit_16(892);
emit_16(827);
emit_16(892);
emit_16(828);
emit_16(893);
emit_16(829);
emit_16(893);
emit_16(828);
emit_16(893);
emit_16(829);
emit_16(894);
emit_16(830);
emit_16(894);
emit_16(829);
emit_16(894);
emit_16(830);
emit_16(895);
emit_16(831);
emit_16(895);
emit_16(830);
emit_16(896);
emit_16(832);
emit_16(897);
emit_16(833);
emit_16(897);
emit_16(832);
emit_16(897);
emit_16(833);
emit_16(898);
emit_16(834);
emit_16(898);
emit_16(833);
emit_16(898);
emit_16(834);
emit_16(899);
emit_16(835);
emit_16(899);
emit_16(834);
emit_16(899);
emit_16(835);
emit_16(900);
emit_16(836);
emit_16(900);
emit_16(835);
emit_16(900);
emit_16(836);
emit_16(901);
emit_16(837);
emit_16(901);
emit_16(836);
emit_16(901);
emit_16(837);
emit_16(902);
emit_16(838);
emit_16(902);
emit_16(837);
emit_16(902);
emit_16(838);
emit_16(903);
emit_16(839);
emit_16(903);
emit_16(838);
emit_16(903);
emit_16(839);
emit_16(904);
emit_16(840);
emit_16(904);
emit_16(839);
emit_16(904);
emit_16(840);
emit_16(905);
emit_16(841);
emit_16(905);
emit_16(840);
emit_16(905);
emit_16(841);
emit_16(906);
emit_16(842);
emit_16(906);
emit_16(841);
emit_16(906);
emit_16(842);
emit_16(907);
emit_16(843);
emit_16(907);
emit_16(842);
emit_16(907);
emit_16(843);
emit_16(908);
emit_16(844);
emit_16(908);
emit_16(843);
emit_16(908);
emit_16(844);
emit_16(909);
emit_16(845);
emit_16(909);
emit_16(844);
emit_16(909);
emit_16(845);
emit_16(910);
emit_16(846);
emit_16(910);
emit_16(845);
emit_16(910);
emit_16(846);
emit_16(911);
emit_16(847);
emit_16(911);
emit_16(846);
emit_16(911);
emit_16(847);
emit_16(912);
emit_16(848);
emit_16(912);
emit_16(847);
emit_16(912);
emit_16(848);
emit_16(913);
emit_16(849);
emit_16(913);
emit_16(848);
emit_16(913);
emit_16(849);
emit_16(914);
emit_16(850);
emit_16(914);
emit_16(849);
emit_16(914);
emit_16(850);
emit_16(915);
emit_16(851);
emit_16(915);
emit_16(850);
emit_16(915);
emit_16(851);
emit_16(916);
emit_16(852);
emit_16(916);
emit_16(851);
emit_16(916);
emit_16(852);
emit_16(917);
emit_16(853);
emit_16(917);
emit_16(852);
emit_16(917);
emit_16(853);
emit_16(918);
emit_16(854);
emit_16(918);
emit_16(853);
emit_16(918);
emit_16(854);
emit_16(919);
emit_16(855);
emit_16(919);
emit_16(854);
emit_16(919);
emit_16(855);
emit_16(920);
emit_16(856);
emit_16(920);
emit_16(855);
emit_16(920);
emit_16(856);
emit_16(921);
emit_16(857);
emit_16(921);
emit_16(856);
emit_16(921);
emit_16(857);
emit_16(922);
emit_16(858);
emit_16(922);
emit_16(857);
emit_16(922);
emit_16(858);
emit_16(923);
emit_16(859);
emit_16(923);
emit_16(858);
emit_16(923);
emit_16(859);
emit_16(924);
emit_16(860);
emit_16(924);
emit_16(859);
emit_16(924);
emit_16(860);
emit_16(925);
emit_16(861);
emit_16(925);
emit_16(860);
emit_16(925);
emit_16(861);
emit_16(926);
emit_16(862);
emit_16(926);
emit_16(861);
emit_16(926);
emit_16(862);
emit_16(927);
emit_16(863);
emit_16(927);
emit_16(862);
emit_16(927);
emit_16(863);
emit_16(928);
emit_16(864);
emit_16(928);
emit_16(863);
emit_16(928);
emit_16(864);
emit_16(929);
emit_16(865);
emit_16(929);
emit_16(864);
emit_16(929);
emit_16(865);
emit_16(930);
emit_16(866);
emit_16(930);
emit_16(865);
emit_16(930);
emit_16(866);
emit_16(931);
emit_16(867);
emit_16(931);
emit_16(866);
emit_16(931);
emit_16(867);
emit_16(932);
emit_16(868);
emit_16(932);
emit_16(867);
emit_16(932);
emit_16(868);
emit_16(933);
emit_16(869);
emit_16(933);
emit_16(868);
emit_16(933);
emit_16(869);
emit_16(934);
emit_16(870);
emit_16(934);
emit_16(869);
emit_16(934);
emit_16(870);
emit_16(935);
emit_16(871);
emit_16(935);
emit_16(870);
emit_16(935);
emit_16(871);
emit_16(936);
emit_16(872);
emit_16(936);
emit_16(871);
emit_16(936);
emit_16(872);
emit_16(937);
emit_16(873);
emit_16(937);
emit_16(872);
emit_16(937);
emit_16(873);
emit_16(938);
emit_16(874);
emit_16(938);
emit_16(873);
emit_16(938);
emit_16(874);
emit_16(939);
emit_16(875);
emit_16(939);
emit_16(874);
emit_16(939);
emit_16(875);
emit_16(940);
emit_16(876);
emit_16(940);
emit_16(875);
emit_16(940);
emit_16(876);
emit_16(941);
emit_16(877);
emit_16(941);
emit_16(876);
emit_16(941);
emit_16(877);
emit_16(942);
emit_16(878);
emit_16(942);
emit_16(877);
emit_16(942);
emit_16(878);
emit_16(943);
emit_16(879);
emit_16(943);
emit_16(878);
emit_16(943);
emit_16(879);
emit_16(944);
emit_16(880);
emit_16(944);
emit_16(879);
emit_16(944);
emit_16(880);
emit_16(945);
emit_16(881);
emit_16(945);
emit_16(880);
emit_16(945);
emit_16(881);
emit_16(946);
emit_16(882);
emit_16(946);
emit_16(881);
emit_16(946);
emit_16(882);
emit_16(947);
emit_16(883);
emit_16(947);
emit_16(882);
emit_16(947);
emit_16(883);
emit_16(948);
emit_16(884);
emit_16(948);
emit_16(883);
emit_16(948);
emit_16(884);
emit_16(949);
emit_16(885);
emit_16(949);
emit_16(884);
emit_16(949);
emit_16(885);
emit_16(950);
emit_16(886);
emit_16(950);
emit_16(885);
emit_16(950);
emit_16(886);
emit_16(951);
emit_16(887);
emit_16(951);
emit_16(886);
emit_16(951);
emit_16(887);
emit_16(952);
emit_16(888);
emit_16(952);
emit_16(887);
emit_16(952);
emit_16(888);
emit_16(953);
emit_16(889);
emit_16(953);
emit_16(888);
emit_16(953);
emit_16(889);
emit_16(954);
emit_16(890);
emit_16(954);
emit_16(889);
emit_16(954);
emit_16(890);
emit_16(955);
emit_16(891);
emit_16(955);
emit_16(890);
emit_16(955);
emit_16(891);
emit_16(956);
emit_16(892);
emit_16(956);
emit_16(891);
emit_16(956);
emit_16(892);
emit_16(957);
emit_16(893);
emit_16(957);
emit_16(892);
emit_16(957);
emit_16(893);
emit_16(958);
emit_16(894);
emit_16(958);
emit_16(893);
emit_16(958);
emit_16(894);
emit_16(959);
emit_16(895);
emit_16(959);
emit_16(894);
emit_16(960);
emit_16(896);
emit_16(961);
emit_16(897);
emit_16(961);
emit_16(896);
emit_16(961);
emit_16(897);
emit_16(962);
emit_16(898);
emit_16(962);
emit_16(897);
emit_16(962);
emit_16(898);
emit_16(963);
emit_16(899);
emit_16(963);
emit_16(898);
emit_16(963);
emit_16(899);
emit_16(964);
emit_16(900);
emit_16(964);
emit_16(899);
emit_16(964);
emit_16(900);
emit_16(965);
emit_16(901);
emit_16(965);
emit_16(900);
emit_16(965);
emit_16(901);
emit_16(966);
emit_16(902);
emit_16(966);
emit_16(901);
emit_16(966);
emit_16(902);
emit_16(967);
emit_16(903);
emit_16(967);
emit_16(902);
emit_16(967);
emit_16(903);
emit_16(968);
emit_16(904);
emit_16(968);
emit_16(903);
emit_16(968);
emit_16(904);
emit_16(969);
emit_16(905);
emit_16(969);
emit_16(904);
emit_16(969);
emit_16(905);
emit_16(970);
emit_16(906);
emit_16(970);
emit_16(905);
emit_16(970);
emit_16(906);
emit_16(971);
emit_16(907);
emit_16(971);
emit_16(906);
emit_16(971);
emit_16(907);
emit_16(972);
emit_16(908);
emit_16(972);
emit_16(907);
emit_16(972);
emit_16(908);
emit_16(973);
emit_16(909);
emit_16(973);
emit_16(908);
emit_16(973);
emit_16(909);
emit_16(974);
emit_16(910);
emit_16(974);
emit_16(909);
emit_16(974);
emit_16(910);
emit_16(975);
emit_16(911);
emit_16(975);
emit_16(910);
emit_16(975);
emit_16(911);
emit_16(976);
emit_16(912);
emit_16(976);
emit_16(911);
emit_16(976);
emit_16(912);
emit_16(977);
emit_16(913);
emit_16(977);
emit_16(912);
emit_16(977);
emit_16(913);
emit_16(978);
emit_16(914);
emit_16(978);
emit_16(913);
emit_16(978);
emit_16(914);
emit_16(979);
emit_16(915);
emit_16(979);
emit_16(914);
emit_16(979);
emit_16(915);
emit_16(980);
emit_16(916);
emit_16(980);
emit_16(915);
emit_16(980);
emit_16(916);
emit_16(981);
emit_16(917);
emit_16(981);
emit_16(916);
emit_16(981);
emit_16(917);
emit_16(982);
emit_16(918);
emit_16(982);
emit_16(917);
emit_16(982);
emit_16(918);
emit_16(983);
emit_16(919);
emit_16(983);
emit_16(918);
emit_16(983);
emit_16(919);
emit_16(984);
emit_16(920);
emit_16(984);
emit_16(919);
emit_16(984);
emit_16(920);
emit_16(985);
emit_16(921);
emit_16(985);
emit_16(920);
emit_16(985);
emit_16(921);
emit_16(986);
emit_16(922);
emit_16(986);
emit_16(921);
emit_16(986);
emit_16(922);
emit_16(987);
emit_16(923);
emit_16(987);
emit_16(922);
emit_16(987);
emit_16(923);
emit_16(988);
emit_16(924);
emit_16(988);
emit_16(923);
emit_16(988);
emit_16(924);
emit_16(989);
emit_16(925);
emit_16(989);
emit_16(924);
emit_16(989);
emit_16(925);
emit_16(990);
emit_16(926);
emit_16(990);
emit_16(925);
emit_16(990);
emit_16(926);
emit_16(991);
emit_16(927);
emit_16(991);
emit_16(926);
emit_16(991);
emit_16(927);
emit_16(992);
emit_16(928);
emit_16(992);
emit_16(927);
emit_16(992);
emit_16(928);
emit_16(993);
emit_16(929);
emit_16(993);
emit_16(928);
emit_16(993);
emit_16(929);
emit_16(994);
emit_16(930);
emit_16(994);
emit_16(929);
emit_16(994);
emit_16(930);
emit_16(995);
emit_16(931);
emit_16(995);
emit_16(930);
emit_16(995);
emit_16(931);
emit_16(996);
emit_16(932);
emit_16(996);
emit_16(931);
emit_16(996);
emit_16(932);
emit_16(997);
emit_16(933);
emit_16(997);
emit_16(932);
emit_16(997);
emit_16(933);
emit_16(998);
emit_16(934);
emit_16(998);
emit_16(933);
emit_16(998);
emit_16(934);
emit_16(999);
emit_16(935);
emit_16(999);
emit_16(934);
emit_16(999);
emit_16(935);
emit_16(1000);
emit_16(936);
emit_16(1000);
emit_16(935);
emit_16(1000);
emit_16(936);
emit_16(1001);
emit_16(937);
emit_16(1001);
emit_16(936);
emit_16(1001);
emit_16(937);
emit_16(1002);
emit_16(938);
emit_16(1002);
emit_16(937);
emit_16(1002);
emit_16(938);
emit_16(1003);
emit_16(939);
emit_16(1003);
emit_16(938);
emit_16(1003);
emit_16(939);
emit_16(1004);
emit_16(940);
emit_16(1004);
emit_16(939);
emit_16(1004);
emit_16(940);
emit_16(1005);
emit_16(941);
emit_16(1005);
emit_16(940);
emit_16(1005);
emit_16(941);
emit_16(1006);
emit_16(942);
emit_16(1006);
emit_16(941);
emit_16(1006);
emit_16(942);
emit_16(1007);
emit_16(943);
emit_16(1007);
emit_16(942);
emit_16(1007);
emit_16(943);
emit_16(1008);
emit_16(944);
emit_16(1008);
emit_16(943);
emit_16(1008);
emit_16(944);
emit_16(1009);
emit_16(945);
emit_16(1009);
emit_16(944);
emit_16(1009);
emit_16(945);
emit_16(1010);
emit_16(946);
emit_16(1010);
emit_16(945);
emit_16(1010);
emit_16(946);
emit_16(1011);
emit_16(947);
emit_16(1011);
emit_16(946);
emit_16(1011);
emit_16(947);
emit_16(1012);
emit_16(948);
emit_16(1012);
emit_16(947);
emit_16(1012);
emit_16(948);
emit_16(1013);
emit_16(949);
emit_16(1013);
emit_16(948);
emit_16(1013);
emit_16(949);
emit_16(1014);
emit_16(950);
emit_16(1014);
emit_16(949);
emit_16(1014);
emit_16(950);
emit_16(1015);
emit_16(951);
emit_16(1015);
emit_16(950);
emit_16(1015);
emit_16(951);
emit_16(1016);
emit_16(952);
emit_16(1016);
emit_16(951);
emit_16(1016);
emit_16(952);
emit_16(1017);
emit_16(953);
emit_16(1017);
emit_16(952);
emit_16(1017);
emit_16(953);
emit_16(1018);
emit_16(954);
emit_16(1018);
emit_16(953);
emit_16(1018);
emit_16(954);
emit_16(1019);
emit_16(955);
emit_16(1019);
emit_16(954);
emit_16(1019);
emit_16(955);
emit_16(1020);
emit_16(956);
emit_16(1020);
emit_16(955);
emit_16(1020);
emit_16(956);
emit_16(1021);
emit_16(957);
emit_16(1021);
emit_16(956);
emit_16(1021);
emit_16(957);
emit_16(1022);
emit_16(958);
emit_16(1022);
emit_16(957);
emit_16(1022);
emit_16(958);
emit_16(1023);
emit_16(959);
emit_16(1023);
emit_16(958);
emit_16(1024);
emit_16(960);
emit_16(1025);
emit_16(961);
emit_16(1025);
emit_16(960);
emit_16(1025);
emit_16(961);
emit_16(1026);
emit_16(962);
emit_16(1026);
emit_16(961);
emit_16(1026);
emit_16(962);
emit_16(1027);
emit_16(963);
emit_16(1027);
emit_16(962);
emit_16(1027);
emit_16(963);
emit_16(1028);
emit_16(964);
emit_16(1028);
emit_16(963);
emit_16(1028);
emit_16(964);
emit_16(1029);
emit_16(965);
emit_16(1029);
emit_16(964);
emit_16(1029);
emit_16(965);
emit_16(1030);
emit_16(966);
emit_16(1030);
emit_16(965);
emit_16(1030);
emit_16(966);
emit_16(1031);
emit_16(967);
emit_16(1031);
emit_16(966);
emit_16(1031);
emit_16(967);
emit_16(1032);
emit_16(968);
emit_16(1032);
emit_16(967);
emit_16(1032);
emit_16(968);
emit_16(1033);
emit_16(969);
emit_16(1033);
emit_16(968);
emit_16(1033);
emit_16(969);
emit_16(1034);
emit_16(970);
emit_16(1034);
emit_16(969);
emit_16(1034);
emit_16(970);
emit_16(1035);
emit_16(971);
emit_16(1035);
emit_16(970);
emit_16(1035);
emit_16(971);
emit_16(1036);
emit_16(972);
emit_16(1036);
emit_16(971);
emit_16(1036);
emit_16(972);
emit_16(1037);
emit_16(973);
emit_16(1037);
emit_16(972);
emit_16(1037);
emit_16(973);
emit_16(1038);
emit_16(974);
emit_16(1038);
emit_16(973);
emit_16(1038);
emit_16(974);
emit_16(1039);
emit_16(975);
emit_16(1039);
emit_16(974);
emit_16(1039);
emit_16(975);
emit_16(1040);
emit_16(976);
emit_16(1040);
emit_16(975);
emit_16(1040);
emit_16(976);
emit_16(1041);
emit_16(977);
emit_16(1041);
emit_16(976);
emit_16(1041);
emit_16(977);
emit_16(1042);
emit_16(978);
emit_16(1042);
emit_16(977);
emit_16(1042);
emit_16(978);
emit_16(1043);
emit_16(979);
emit_16(1043);
emit_16(978);
emit_16(1043);
emit_16(979);
emit_16(1044);
emit_16(980);
emit_16(1044);
emit_16(979);
emit_16(1044);
emit_16(980);
emit_16(1045);
emit_16(981);
emit_16(1045);
emit_16(980);
emit_16(1045);
emit_16(981);
emit_16(1046);
emit_16(982);
emit_16(1046);
emit_16(981);
emit_16(1046);
emit_16(982);
emit_16(1047);
emit_16(983);
emit_16(1047);
emit_16(982);
emit_16(1047);
emit_16(983);
emit_16(1048);
emit_16(984);
emit_16(1048);
emit_16(983);
emit_16(1048);
emit_16(984);
emit_16(1049);
emit_16(985);
emit_16(1049);
emit_16(984);
emit_16(1049);
emit_16(985);
emit_16(1050);
emit_16(986);
emit_16(1050);
emit_16(985);
emit_16(1050);
emit_16(986);
emit_16(1051);
emit_16(987);
emit_16(1051);
emit_16(986);
emit_16(1051);
emit_16(987);
emit_16(1052);
emit_16(988);
emit_16(1052);
emit_16(987);
emit_16(1052);
emit_16(988);
emit_16(1053);
emit_16(989);
emit_16(1053);
emit_16(988);
emit_16(1053);
emit_16(989);
emit_16(1054);
emit_16(990);
emit_16(1054);
emit_16(989);
emit_16(1054);
emit_16(990);
emit_16(1055);
emit_16(991);
emit_16(1055);
emit_16(990);
emit_16(1055);
emit_16(991);
emit_16(1056);
emit_16(992);
emit_16(1056);
emit_16(991);
emit_16(1056);
emit_16(992);
emit_16(1057);
emit_16(993);
emit_16(1057);
emit_16(992);
emit_16(1057);
emit_16(993);
emit_16(1058);
emit_16(994);
emit_16(1058);
emit_16(993);
emit_16(1058);
emit_16(994);
emit_16(1059);
emit_16(995);
emit_16(1059);
emit_16(994);
emit_16(1059);
emit_16(995);
emit_16(1060);
emit_16(996);
emit_16(1060);
emit_16(995);
emit_16(1060);
emit_16(996);
emit_16(1061);
emit_16(997);
emit_16(1061);
emit_16(996);
emit_16(1061);
emit_16(997);
emit_16(1062);
emit_16(998);
emit_16(1062);
emit_16(997);
emit_16(1062);
emit_16(998);
emit_16(1063);
emit_16(999);
emit_16(1063);
emit_16(998);
emit_16(1063);
emit_16(999);
emit_16(1064);
emit_16(1000);
emit_16(1064);
emit_16(999);
emit_16(1064);
emit_16(1000);
emit_16(1065);
emit_16(1001);
emit_16(1065);
emit_16(1000);
emit_16(1065);
emit_16(1001);
emit_16(1066);
emit_16(1002);
emit_16(1066);
emit_16(1001);
emit_16(1066);
emit_16(1002);
emit_16(1067);
emit_16(1003);
emit_16(1067);
emit_16(1002);
emit_16(1067);
emit_16(1003);
emit_16(1068);
emit_16(1004);
emit_16(1068);
emit_16(1003);
emit_16(1068);
emit_16(1004);
emit_16(1069);
emit_16(1005);
emit_16(1069);
emit_16(1004);
emit_16(1069);
emit_16(1005);
emit_16(1070);
emit_16(1006);
emit_16(1070);
emit_16(1005);
emit_16(1070);
emit_16(1006);
emit_16(1071);
emit_16(1007);
emit_16(1071);
emit_16(1006);
emit_16(1071);
emit_16(1007);
emit_16(1072);
emit_16(1008);
emit_16(1072);
emit_16(1007);
emit_16(1072);
emit_16(1008);
emit_16(1073);
emit_16(1009);
emit_16(1073);
emit_16(1008);
emit_16(1073);
emit_16(1009);
emit_16(1074);
emit_16(1010);
emit_16(1074);
emit_16(1009);
emit_16(1074);
emit_16(1010);
emit_16(1075);
emit_16(1011);
emit_16(1075);
emit_16(1010);
emit_16(1075);
emit_16(1011);
emit_16(1076);
emit_16(1012);
emit_16(1076);
emit_16(1011);
emit_16(1076);
emit_16(1012);
emit_16(1077);
emit_16(1013);
emit_16(1077);
emit_16(1012);
emit_16(1077);
emit_16(1013);
emit_16(1078);
emit_16(1014);
emit_16(1078);
emit_16(1013);
emit_16(1078);
emit_16(1014);
emit_16(1079);
emit_16(1015);
emit_16(1079);
emit_16(1014);
emit_16(1079);
emit_16(1015);
emit_16(1080);
emit_16(1016);
emit_16(1080);
emit_16(1015);
emit_16(1080);
emit_16(1016);
emit_16(1081);
emit_16(1017);
emit_16(1081);
emit_16(1016);
emit_16(1081);
emit_16(1017);
emit_16(1082);
emit_16(1018);
emit_16(1082);
emit_16(1017);
emit_16(1082);
emit_16(1018);
emit_16(1083);
emit_16(1019);
emit_16(1083);
emit_16(1018);
emit_16(1083);
emit_16(1019);
emit_16(1084);
emit_16(1020);
emit_16(1084);
emit_16(1019);
emit_16(1084);
emit_16(1020);
emit_16(1085);
emit_16(1021);
emit_16(1085);
emit_16(1020);
emit_16(1085);
emit_16(1021);
emit_16(1086);
emit_16(1022);
emit_16(1086);
emit_16(1021);
emit_16(1086);
emit_16(1022);
emit_16(1087);
emit_16(1023);
emit_16(1087);
emit_16(1022);
emit_16(1088);
emit_16(1024);
emit_16(1089);
emit_16(1025);
emit_16(1089);
emit_16(1024);
emit_16(1089);
emit_16(1025);
emit_16(1090);
emit_16(1026);
emit_16(1090);
emit_16(1025);
emit_16(1090);
emit_16(1026);
emit_16(1091);
emit_16(1027);
emit_16(1091);
emit_16(1026);
emit_16(1091);
emit_16(1027);
emit_16(1092);
emit_16(1028);
emit_16(1092);
emit_16(1027);
emit_16(1092);
emit_16(1028);
emit_16(1093);
emit_16(1029);
emit_16(1093);
emit_16(1028);
emit_16(1093);
emit_16(1029);
emit_16(1094);
emit_16(1030);
emit_16(1094);
emit_16(1029);
emit_16(1094);
emit_16(1030);
emit_16(1095);
emit_16(1031);
emit_16(1095);
emit_16(1030);
emit_16(1095);
emit_16(1031);
emit_16(1096);
emit_16(1032);
emit_16(1096);
emit_16(1031);
emit_16(1096);
emit_16(1032);
emit_16(1097);
emit_16(1033);
emit_16(1097);
emit_16(1032);
emit_16(1097);
emit_16(1033);
emit_16(1098);
emit_16(1034);
emit_16(1098);
emit_16(1033);
emit_16(1098);
emit_16(1034);
emit_16(1099);
emit_16(1035);
emit_16(1099);
emit_16(1034);
emit_16(1099);
emit_16(1035);
emit_16(1100);
emit_16(1036);
emit_16(1100);
emit_16(1035);
emit_16(1100);
emit_16(1036);
emit_16(1101);
emit_16(1037);
emit_16(1101);
emit_16(1036);
emit_16(1101);
emit_16(1037);
emit_16(1102);
emit_16(1038);
emit_16(1102);
emit_16(1037);
emit_16(1102);
emit_16(1038);
emit_16(1103);
emit_16(1039);
emit_16(1103);
emit_16(1038);
emit_16(1103);
emit_16(1039);
emit_16(1104);
emit_16(1040);
emit_16(1104);
emit_16(1039);
emit_16(1104);
emit_16(1040);
emit_16(1105);
emit_16(1041);
emit_16(1105);
emit_16(1040);
emit_16(1105);
emit_16(1041);
emit_16(1106);
emit_16(1042);
emit_16(1106);
emit_16(1041);
emit_16(1106);
emit_16(1042);
emit_16(1107);
emit_16(1043);
emit_16(1107);
emit_16(1042);
emit_16(1107);
emit_16(1043);
emit_16(1108);
emit_16(1044);
emit_16(1108);
emit_16(1043);
emit_16(1108);
emit_16(1044);
emit_16(1109);
emit_16(1045);
emit_16(1109);
emit_16(1044);
emit_16(1109);
emit_16(1045);
emit_16(1110);
emit_16(1046);
emit_16(1110);
emit_16(1045);
emit_16(1110);
emit_16(1046);
emit_16(1111);
emit_16(1047);
emit_16(1111);
emit_16(1046);
emit_16(1111);
emit_16(1047);
emit_16(1112);
emit_16(1048);
emit_16(1112);
emit_16(1047);
emit_16(1112);
emit_16(1048);
emit_16(1113);
emit_16(1049);
emit_16(1113);
emit_16(1048);
emit_16(1113);
emit_16(1049);
emit_16(1114);
emit_16(1050);
emit_16(1114);
emit_16(1049);
emit_16(1114);
emit_16(1050);
emit_16(1115);
emit_16(1051);
emit_16(1115);
emit_16(1050);
emit_16(1115);
emit_16(1051);
emit_16(1116);
emit_16(1052);
emit_16(1116);
emit_16(1051);
emit_16(1116);
emit_16(1052);
emit_16(1117);
emit_16(1053);
emit_16(1117);
emit_16(1052);
emit_16(1117);
emit_16(1053);
emit_16(1118);
emit_16(1054);
emit_16(1118);
emit_16(1053);
emit_16(1118);
emit_16(1054);
emit_16(1119);
emit_16(1055);
emit_16(1119);
emit_16(1054);
emit_16(1119);
emit_16(1055);
emit_16(1120);
emit_16(1056);
emit_16(1120);
emit_16(1055);
emit_16(1120);
emit_16(1056);
emit_16(1121);
emit_16(1057);
emit_16(1121);
emit_16(1056);
emit_16(1121);
emit_16(1057);
emit_16(1122);
emit_16(1058);
emit_16(1122);
emit_16(1057);
emit_16(1122);
emit_16(1058);
emit_16(1123);
emit_16(1059);
emit_16(1123);
emit_16(1058);
emit_16(1123);
emit_16(1059);
emit_16(1124);
emit_16(1060);
emit_16(1124);
emit_16(1059);
emit_16(1124);
emit_16(1060);
emit_16(1125);
emit_16(1061);
emit_16(1125);
emit_16(1060);
emit_16(1125);
emit_16(1061);
emit_16(1126);
emit_16(1062);
emit_16(1126);
emit_16(1061);
emit_16(1126);
emit_16(1062);
emit_16(1127);
emit_16(1063);
emit_16(1127);
emit_16(1062);
emit_16(1127);
emit_16(1063);
emit_16(1128);
emit_16(1064);
emit_16(1128);
emit_16(1063);
emit_16(1128);
emit_16(1064);
emit_16(1129);
emit_16(1065);
emit_16(1129);
emit_16(1064);
emit_16(1129);
emit_16(1065);
emit_16(1130);
emit_16(1066);
emit_16(1130);
emit_16(1065);
emit_16(1130);
emit_16(1066);
emit_16(1131);
emit_16(1067);
emit_16(1131);
emit_16(1066);
emit_16(1131);
emit_16(1067);
emit_16(1132);
emit_16(1068);
emit_16(1132);
emit_16(1067);
emit_16(1132);
emit_16(1068);
emit_16(1133);
emit_16(1069);
emit_16(1133);
emit_16(1068);
emit_16(1133);
emit_16(1069);
emit_16(1134);
emit_16(1070);
emit_16(1134);
emit_16(1069);
emit_16(1134);
emit_16(1070);
emit_16(1135);
emit_16(1071);
emit_16(1135);
emit_16(1070);
emit_16(1135);
emit_16(1071);
emit_16(1136);
emit_16(1072);
emit_16(1136);
emit_16(1071);
emit_16(1136);
emit_16(1072);
emit_16(1137);
emit_16(1073);
emit_16(1137);
emit_16(1072);
emit_16(1137);
emit_16(1073);
emit_16(1138);
emit_16(1074);
emit_16(1138);
emit_16(1073);
emit_16(1138);
emit_16(1074);
emit_16(1139);
emit_16(1075);
emit_16(1139);
emit_16(1074);
emit_16(1139);
emit_16(1075);
emit_16(1140);
emit_16(1076);
emit_16(1140);
emit_16(1075);
emit_16(1140);
emit_16(1076);
emit_16(1141);
emit_16(1077);
emit_16(1141);
emit_16(1076);
emit_16(1141);
emit_16(1077);
emit_16(1142);
emit_16(1078);
emit_16(1142);
emit_16(1077);
emit_16(1142);
emit_16(1078);
emit_16(1143);
emit_16(1079);
emit_16(1143);
emit_16(1078);
emit_16(1143);
emit_16(1079);
emit_16(1144);
emit_16(1080);
emit_16(1144);
emit_16(1079);
emit_16(1144);
emit_16(1080);
emit_16(1145);
emit_16(1081);
emit_16(1145);
emit_16(1080);
emit_16(1145);
emit_16(1081);
emit_16(1146);
emit_16(1082);
emit_16(1146);
emit_16(1081);
emit_16(1146);
emit_16(1082);
emit_16(1147);
emit_16(1083);
emit_16(1147);
emit_16(1082);
emit_16(1147);
emit_16(1083);
emit_16(1148);
emit_16(1084);
emit_16(1148);
emit_16(1083);
emit_16(1148);
emit_16(1084);
emit_16(1149);
emit_16(1085);
emit_16(1149);
emit_16(1084);
emit_16(1149);
emit_16(1085);
emit_16(1150);
emit_16(1086);
emit_16(1150);
emit_16(1085);
emit_16(1150);
emit_16(1086);
emit_16(1151);
emit_16(1087);
emit_16(1151);
emit_16(1086);
emit_16(1152);
emit_16(1088);
emit_16(1153);
emit_16(1089);
emit_16(1153);
emit_16(1088);
emit_16(1153);
emit_16(1089);
emit_16(1154);
emit_16(1090);
emit_16(1154);
emit_16(1089);
emit_16(1154);
emit_16(1090);
emit_16(1155);
emit_16(1091);
emit_16(1155);
emit_16(1090);
emit_16(1155);
emit_16(1091);
emit_16(1156);
emit_16(1092);
emit_16(1156);
emit_16(1091);
emit_16(1156);
emit_16(1092);
emit_16(1157);
emit_16(1093);
emit_16(1157);
emit_16(1092);
emit_16(1157);
emit_16(1093);
emit_16(1158);
emit_16(1094);
emit_16(1158);
emit_16(1093);
emit_16(1158);
emit_16(1094);
emit_16(1159);
emit_16(1095);
emit_16(1159);
emit_16(1094);
emit_16(1159);
emit_16(1095);
emit_16(1160);
emit_16(1096);
emit_16(1160);
emit_16(1095);
emit_16(1160);
emit_16(1096);
emit_16(1161);
emit_16(1097);
emit_16(1161);
emit_16(1096);
emit_16(1161);
emit_16(1097);
emit_16(1162);
emit_16(1098);
emit_16(1162);
emit_16(1097);
emit_16(1162);
emit_16(1098);
emit_16(1163);
emit_16(1099);
emit_16(1163);
emit_16(1098);
emit_16(1163);
emit_16(1099);
emit_16(1164);
emit_16(1100);
emit_16(1164);
emit_16(1099);
emit_16(1164);
emit_16(1100);
emit_16(1165);
emit_16(1101);
emit_16(1165);
emit_16(1100);
emit_16(1165);
emit_16(1101);
emit_16(1166);
emit_16(1102);
emit_16(1166);
emit_16(1101);
emit_16(1166);
emit_16(1102);
emit_16(1167);
emit_16(1103);
emit_16(1167);
emit_16(1102);
emit_16(1167);
emit_16(1103);
emit_16(1168);
emit_16(1104);
emit_16(1168);
emit_16(1103);
emit_16(1168);
emit_16(1104);
emit_16(1169);
emit_16(1105);
emit_16(1169);
emit_16(1104);
emit_16(1169);
emit_16(1105);
emit_16(1170);
emit_16(1106);
emit_16(1170);
emit_16(1105);
emit_16(1170);
emit_16(1106);
emit_16(1171);
emit_16(1107);
emit_16(1171);
emit_16(1106);
emit_16(1171);
emit_16(1107);
emit_16(1172);
emit_16(1108);
emit_16(1172);
emit_16(1107);
emit_16(1172);
emit_16(1108);
emit_16(1173);
emit_16(1109);
emit_16(1173);
emit_16(1108);
emit_16(1173);
emit_16(1109);
emit_16(1174);
emit_16(1110);
emit_16(1174);
emit_16(1109);
emit_16(1174);
emit_16(1110);
emit_16(1175);
emit_16(1111);
emit_16(1175);
emit_16(1110);
emit_16(1175);
emit_16(1111);
emit_16(1176);
emit_16(1112);
emit_16(1176);
emit_16(1111);
emit_16(1176);
emit_16(1112);
emit_16(1177);
emit_16(1113);
emit_16(1177);
emit_16(1112);
emit_16(1177);
emit_16(1113);
emit_16(1178);
emit_16(1114);
emit_16(1178);
emit_16(1113);
emit_16(1178);
emit_16(1114);
emit_16(1179);
emit_16(1115);
emit_16(1179);
emit_16(1114);
emit_16(1179);
emit_16(1115);
emit_16(1180);
emit_16(1116);
emit_16(1180);
emit_16(1115);
emit_16(1180);
emit_16(1116);
emit_16(1181);
emit_16(1117);
emit_16(1181);
emit_16(1116);
emit_16(1181);
emit_16(1117);
emit_16(1182);
emit_16(1118);
emit_16(1182);
emit_16(1117);
emit_16(1182);
emit_16(1118);
emit_16(1183);
emit_16(1119);
emit_16(1183);
emit_16(1118);
emit_16(1183);
emit_16(1119);
emit_16(1184);
emit_16(1120);
emit_16(1184);
emit_16(1119);
emit_16(1184);
emit_16(1120);
emit_16(1185);
emit_16(1121);
emit_16(1185);
emit_16(1120);
emit_16(1185);
emit_16(1121);
emit_16(1186);
emit_16(1122);
emit_16(1186);
emit_16(1121);
emit_16(1186);
emit_16(1122);
emit_16(1187);
emit_16(1123);
emit_16(1187);
emit_16(1122);
emit_16(1187);
emit_16(1123);
emit_16(1188);
emit_16(1124);
emit_16(1188);
emit_16(1123);
emit_16(1188);
emit_16(1124);
emit_16(1189);
emit_16(1125);
emit_16(1189);
emit_16(1124);
emit_16(1189);
emit_16(1125);
emit_16(1190);
emit_16(1126);
emit_16(1190);
emit_16(1125);
emit_16(1190);
emit_16(1126);
emit_16(1191);
emit_16(1127);
emit_16(1191);
emit_16(1126);
emit_16(1191);
emit_16(1127);
emit_16(1192);
emit_16(1128);
emit_16(1192);
emit_16(1127);
emit_16(1192);
emit_16(1128);
emit_16(1193);
emit_16(1129);
emit_16(1193);
emit_16(1128);
emit_16(1193);
emit_16(1129);
emit_16(1194);
emit_16(1130);
emit_16(1194);
emit_16(1129);
emit_16(1194);
emit_16(1130);
emit_16(1195);
emit_16(1131);
emit_16(1195);
emit_16(1130);
emit_16(1195);
emit_16(1131);
emit_16(1196);
emit_16(1132);
emit_16(1196);
emit_16(1131);
emit_16(1196);
emit_16(1132);
emit_16(1197);
emit_16(1133);
emit_16(1197);
emit_16(1132);
emit_16(1197);
emit_16(1133);
emit_16(1198);
emit_16(1134);
emit_16(1198);
emit_16(1133);
emit_16(1198);
emit_16(1134);
emit_16(1199);
emit_16(1135);
emit_16(1199);
emit_16(1134);
emit_16(1199);
emit_16(1135);
emit_16(1200);
emit_16(1136);
emit_16(1200);
emit_16(1135);
emit_16(1200);
emit_16(1136);
emit_16(1201);
emit_16(1137);
emit_16(1201);
emit_16(1136);
emit_16(1201);
emit_16(1137);
emit_16(1202);
emit_16(1138);
emit_16(1202);
emit_16(1137);
emit_16(1202);
emit_16(1138);
emit_16(1203);
emit_16(1139);
emit_16(1203);
emit_16(1138);
emit_16(1203);
emit_16(1139);
emit_16(1204);
emit_16(1140);
emit_16(1204);
emit_16(1139);
emit_16(1204);
emit_16(1140);
emit_16(1205);
emit_16(1141);
emit_16(1205);
emit_16(1140);
emit_16(1205);
emit_16(1141);
emit_16(1206);
emit_16(1142);
emit_16(1206);
emit_16(1141);
emit_16(1206);
emit_16(1142);
emit_16(1207);
emit_16(1143);
emit_16(1207);
emit_16(1142);
emit_16(1207);
emit_16(1143);
emit_16(1208);
emit_16(1144);
emit_16(1208);
emit_16(1143);
emit_16(1208);
emit_16(1144);
emit_16(1209);
emit_16(1145);
emit_16(1209);
emit_16(1144);
emit_16(1209);
emit_16(1145);
emit_16(1210);
emit_16(1146);
emit_16(1210);
emit_16(1145);
emit_16(1210);
emit_16(1146);
emit_16(1211);
emit_16(1147);
emit_16(1211);
emit_16(1146);
emit_16(1211);
emit_16(1147);
emit_16(1212);
emit_16(1148);
emit_16(1212);
emit_16(1147);
emit_16(1212);
emit_16(1148);
emit_16(1213);
emit_16(1149);
emit_16(1213);
emit_16(1148);
emit_16(1213);
emit_16(1149);
emit_16(1214);
emit_16(1150);
emit_16(1214);
emit_16(1149);
emit_16(1214);
emit_16(1150);
emit_16(1215);
emit_16(1151);
emit_16(1215);
emit_16(1150);
emit_16(1216);
emit_16(1152);
emit_16(1217);
emit_16(1153);
emit_16(1217);
emit_16(1152);
emit_16(1217);
emit_16(1153);
emit_16(1218);
emit_16(1154);
emit_16(1218);
emit_16(1153);
emit_16(1218);
emit_16(1154);
emit_16(1219);
emit_16(1155);
emit_16(1219);
emit_16(1154);
emit_16(1219);
emit_16(1155);
emit_16(1220);
emit_16(1156);
emit_16(1220);
emit_16(1155);
emit_16(1220);
emit_16(1156);
emit_16(1221);
emit_16(1157);
emit_16(1221);
emit_16(1156);
emit_16(1221);
emit_16(1157);
emit_16(1222);
emit_16(1158);
emit_16(1222);
emit_16(1157);
emit_16(1222);
emit_16(1158);
emit_16(1223);
emit_16(1159);
emit_16(1223);
emit_16(1158);
emit_16(1223);
emit_16(1159);
emit_16(1224);
emit_16(1160);
emit_16(1224);
emit_16(1159);
emit_16(1224);
emit_16(1160);
emit_16(1225);
emit_16(1161);
emit_16(1225);
emit_16(1160);
emit_16(1225);
emit_16(1161);
emit_16(1226);
emit_16(1162);
emit_16(1226);
emit_16(1161);
emit_16(1226);
emit_16(1162);
emit_16(1227);
emit_16(1163);
emit_16(1227);
emit_16(1162);
emit_16(1227);
emit_16(1163);
emit_16(1228);
emit_16(1164);
emit_16(1228);
emit_16(1163);
emit_16(1228);
emit_16(1164);
emit_16(1229);
emit_16(1165);
emit_16(1229);
emit_16(1164);
emit_16(1229);
emit_16(1165);
emit_16(1230);
emit_16(1166);
emit_16(1230);
emit_16(1165);
emit_16(1230);
emit_16(1166);
emit_16(1231);
emit_16(1167);
emit_16(1231);
emit_16(1166);
emit_16(1231);
emit_16(1167);
emit_16(1232);
emit_16(1168);
emit_16(1232);
emit_16(1167);
emit_16(1232);
emit_16(1168);
emit_16(1233);
emit_16(1169);
emit_16(1233);
emit_16(1168);
emit_16(1233);
emit_16(1169);
emit_16(1234);
emit_16(1170);
emit_16(1234);
emit_16(1169);
emit_16(1234);
emit_16(1170);
emit_16(1235);
emit_16(1171);
emit_16(1235);
emit_16(1170);
emit_16(1235);
emit_16(1171);
emit_16(1236);
emit_16(1172);
emit_16(1236);
emit_16(1171);
emit_16(1236);
emit_16(1172);
emit_16(1237);
emit_16(1173);
emit_16(1237);
emit_16(1172);
emit_16(1237);
emit_16(1173);
emit_16(1238);
emit_16(1174);
emit_16(1238);
emit_16(1173);
emit_16(1238);
emit_16(1174);
emit_16(1239);
emit_16(1175);
emit_16(1239);
emit_16(1174);
emit_16(1239);
emit_16(1175);
emit_16(1240);
emit_16(1176);
emit_16(1240);
emit_16(1175);
emit_16(1240);
emit_16(1176);
emit_16(1241);
emit_16(1177);
emit_16(1241);
emit_16(1176);
emit_16(1241);
emit_16(1177);
emit_16(1242);
emit_16(1178);
emit_16(1242);
emit_16(1177);
emit_16(1242);
emit_16(1178);
emit_16(1243);
emit_16(1179);
emit_16(1243);
emit_16(1178);
emit_16(1243);
emit_16(1179);
emit_16(1244);
emit_16(1180);
emit_16(1244);
emit_16(1179);
emit_16(1244);
emit_16(1180);
emit_16(1245);
emit_16(1181);
emit_16(1245);
emit_16(1180);
emit_16(1245);
emit_16(1181);
emit_16(1246);
emit_16(1182);
emit_16(1246);
emit_16(1181);
emit_16(1246);
emit_16(1182);
emit_16(1247);
emit_16(1183);
emit_16(1247);
emit_16(1182);
emit_16(1247);
emit_16(1183);
emit_16(1248);
emit_16(1184);
emit_16(1248);
emit_16(1183);
emit_16(1248);
emit_16(1184);
emit_16(1249);
emit_16(1185);
emit_16(1249);
emit_16(1184);
emit_16(1249);
emit_16(1185);
emit_16(1250);
emit_16(1186);
emit_16(1250);
emit_16(1185);
emit_16(1250);
emit_16(1186);
emit_16(1251);
emit_16(1187);
emit_16(1251);
emit_16(1186);
emit_16(1251);
emit_16(1187);
emit_16(1252);
emit_16(1188);
emit_16(1252);
emit_16(1187);
emit_16(1252);
emit_16(1188);
emit_16(1253);
emit_16(1189);
emit_16(1253);
emit_16(1188);
emit_16(1253);
emit_16(1189);
emit_16(1254);
emit_16(1190);
emit_16(1254);
emit_16(1189);
emit_16(1254);
emit_16(1190);
emit_16(1255);
emit_16(1191);
emit_16(1255);
emit_16(1190);
emit_16(1255);
emit_16(1191);
emit_16(1256);
emit_16(1192);
emit_16(1256);
emit_16(1191);
emit_16(1256);
emit_16(1192);
emit_16(1257);
emit_16(1193);
emit_16(1257);
emit_16(1192);
emit_16(1257);
emit_16(1193);
emit_16(1258);
emit_16(1194);
emit_16(1258);
emit_16(1193);
emit_16(1258);
emit_16(1194);
emit_16(1259);
emit_16(1195);
emit_16(1259);
emit_16(1194);
emit_16(1259);
emit_16(1195);
emit_16(1260);
emit_16(1196);
emit_16(1260);
emit_16(1195);
emit_16(1260);
emit_16(1196);
emit_16(1261);
emit_16(1197);
emit_16(1261);
emit_16(1196);
emit_16(1261);
emit_16(1197);
emit_16(1262);
emit_16(1198);
emit_16(1262);
emit_16(1197);
emit_16(1262);
emit_16(1198);
emit_16(1263);
emit_16(1199);
emit_16(1263);
emit_16(1198);
emit_16(1263);
emit_16(1199);
emit_16(1264);
emit_16(1200);
emit_16(1264);
emit_16(1199);
emit_16(1264);
emit_16(1200);
emit_16(1265);
emit_16(1201);
emit_16(1265);
emit_16(1200);
emit_16(1265);
emit_16(1201);
emit_16(1266);
emit_16(1202);
emit_16(1266);
emit_16(1201);
emit_16(1266);
emit_16(1202);
emit_16(1267);
emit_16(1203);
emit_16(1267);
emit_16(1202);
emit_16(1267);
emit_16(1203);
emit_16(1268);
emit_16(1204);
emit_16(1268);
emit_16(1203);
emit_16(1268);
emit_16(1204);
emit_16(1269);
emit_16(1205);
emit_16(1269);
emit_16(1204);
emit_16(1269);
emit_16(1205);
emit_16(1270);
emit_16(1206);
emit_16(1270);
emit_16(1205);
emit_16(1270);
emit_16(1206);
emit_16(1271);
emit_16(1207);
emit_16(1271);
emit_16(1206);
emit_16(1271);
emit_16(1207);
emit_16(1272);
emit_16(1208);
emit_16(1272);
emit_16(1207);
emit_16(1272);
emit_16(1208);
emit_16(1273);
emit_16(1209);
emit_16(1273);
emit_16(1208);
emit_16(1273);
emit_16(1209);
emit_16(1274);
emit_16(1210);
emit_16(1274);
emit_16(1209);
emit_16(1274);
emit_16(1210);
emit_16(1275);
emit_16(1211);
emit_16(1275);
emit_16(1210);
emit_16(1275);
emit_16(1211);
emit_16(1276);
emit_16(1212);
emit_16(1276);
emit_16(1211);
emit_16(1276);
emit_16(1212);
emit_16(1277);
emit_16(1213);
emit_16(1277);
emit_16(1212);
emit_16(1277);
emit_16(1213);
emit_16(1278);
emit_16(1214);
emit_16(1278);
emit_16(1213);
emit_16(1278);
emit_16(1214);
emit_16(1279);
emit_16(1215);
emit_16(1279);
emit_16(1214);
emit_16(1280);
emit_16(1216);
emit_16(1281);
emit_16(1217);
emit_16(1281);
emit_16(1216);
emit_16(1281);
emit_16(1217);
emit_16(1282);
emit_16(1218);
emit_16(1282);
emit_16(1217);
emit_16(1282);
emit_16(1218);
emit_16(1283);
emit_16(1219);
emit_16(1283);
emit_16(1218);
emit_16(1283);
emit_16(1219);
emit_16(1284);
emit_16(1220);
emit_16(1284);
emit_16(1219);
emit_16(1284);
emit_16(1220);
emit_16(1285);
emit_16(1221);
emit_16(1285);
emit_16(1220);
emit_16(1285);
emit_16(1221);
emit_16(1286);
emit_16(1222);
emit_16(1286);
emit_16(1221);
emit_16(1286);
emit_16(1222);
emit_16(1287);
emit_16(1223);
emit_16(1287);
emit_16(1222);
emit_16(1287);
emit_16(1223);
emit_16(1288);
emit_16(1224);
emit_16(1288);
emit_16(1223);
emit_16(1288);
emit_16(1224);
emit_16(1289);
emit_16(1225);
emit_16(1289);
emit_16(1224);
emit_16(1289);
emit_16(1225);
emit_16(1290);
emit_16(1226);
emit_16(1290);
emit_16(1225);
emit_16(1290);
emit_16(1226);
emit_16(1291);
emit_16(1227);
emit_16(1291);
emit_16(1226);
emit_16(1291);
emit_16(1227);
emit_16(1292);
emit_16(1228);
emit_16(1292);
emit_16(1227);
emit_16(1292);
emit_16(1228);
emit_16(1293);
emit_16(1229);
emit_16(1293);
emit_16(1228);
emit_16(1293);
emit_16(1229);
emit_16(1294);
emit_16(1230);
emit_16(1294);
emit_16(1229);
emit_16(1294);
emit_16(1230);
emit_16(1295);
emit_16(1231);
emit_16(1295);
emit_16(1230);
emit_16(1295);
emit_16(1231);
emit_16(1296);
emit_16(1232);
emit_16(1296);
emit_16(1231);
emit_16(1296);
emit_16(1232);
emit_16(1297);
emit_16(1233);
emit_16(1297);
emit_16(1232);
emit_16(1297);
emit_16(1233);
emit_16(1298);
emit_16(1234);
emit_16(1298);
emit_16(1233);
emit_16(1298);
emit_16(1234);
emit_16(1299);
emit_16(1235);
emit_16(1299);
emit_16(1234);
emit_16(1299);
emit_16(1235);
emit_16(1300);
emit_16(1236);
emit_16(1300);
emit_16(1235);
emit_16(1300);
emit_16(1236);
emit_16(1301);
emit_16(1237);
emit_16(1301);
emit_16(1236);
emit_16(1301);
emit_16(1237);
emit_16(1302);
emit_16(1238);
emit_16(1302);
emit_16(1237);
emit_16(1302);
emit_16(1238);
emit_16(1303);
emit_16(1239);
emit_16(1303);
emit_16(1238);
emit_16(1303);
emit_16(1239);
emit_16(1304);
emit_16(1240);
emit_16(1304);
emit_16(1239);
emit_16(1304);
emit_16(1240);
emit_16(1305);
emit_16(1241);
emit_16(1305);
emit_16(1240);
emit_16(1305);
emit_16(1241);
emit_16(1306);
emit_16(1242);
emit_16(1306);
emit_16(1241);
emit_16(1306);
emit_16(1242);
emit_16(1307);
emit_16(1243);
emit_16(1307);
emit_16(1242);
emit_16(1307);
emit_16(1243);
emit_16(1308);
emit_16(1244);
emit_16(1308);
emit_16(1243);
emit_16(1308);
emit_16(1244);
emit_16(1309);
emit_16(1245);
emit_16(1309);
emit_16(1244);
emit_16(1309);
emit_16(1245);
emit_16(1310);
emit_16(1246);
emit_16(1310);
emit_16(1245);
emit_16(1310);
emit_16(1246);
emit_16(1311);
emit_16(1247);
emit_16(1311);
emit_16(1246);
emit_16(1311);
emit_16(1247);
emit_16(1312);
emit_16(1248);
emit_16(1312);
emit_16(1247);
emit_16(1312);
emit_16(1248);
emit_16(1313);
emit_16(1249);
emit_16(1313);
emit_16(1248);
emit_16(1313);
emit_16(1249);
emit_16(1314);
emit_16(1250);
emit_16(1314);
emit_16(1249);
emit_16(1314);
emit_16(1250);
emit_16(1315);
emit_16(1251);
emit_16(1315);
emit_16(1250);
emit_16(1315);
emit_16(1251);
emit_16(1316);
emit_16(1252);
emit_16(1316);
emit_16(1251);
emit_16(1316);
emit_16(1252);
emit_16(1317);
emit_16(1253);
emit_16(1317);
emit_16(1252);
emit_16(1317);
emit_16(1253);
emit_16(1318);
emit_16(1254);
emit_16(1318);
emit_16(1253);
emit_16(1318);
emit_16(1254);
emit_16(1319);
emit_16(1255);
emit_16(1319);
emit_16(1254);
emit_16(1319);
emit_16(1255);
emit_16(1320);
emit_16(1256);
emit_16(1320);
emit_16(1255);
emit_16(1320);
emit_16(1256);
emit_16(1321);
emit_16(1257);
emit_16(1321);
emit_16(1256);
emit_16(1321);
emit_16(1257);
emit_16(1322);
emit_16(1258);
emit_16(1322);
emit_16(1257);
emit_16(1322);
emit_16(1258);
emit_16(1323);
emit_16(1259);
emit_16(1323);
emit_16(1258);
emit_16(1323);
emit_16(1259);
emit_16(1324);
emit_16(1260);
emit_16(1324);
emit_16(1259);
emit_16(1324);
emit_16(1260);
emit_16(1325);
emit_16(1261);
emit_16(1325);
emit_16(1260);
emit_16(1325);
emit_16(1261);
emit_16(1326);
emit_16(1262);
emit_16(1326);
emit_16(1261);
emit_16(1326);
emit_16(1262);
emit_16(1327);
emit_16(1263);
emit_16(1327);
emit_16(1262);
emit_16(1327);
emit_16(1263);
emit_16(1328);
emit_16(1264);
emit_16(1328);
emit_16(1263);
emit_16(1328);
emit_16(1264);
emit_16(1329);
emit_16(1265);
emit_16(1329);
emit_16(1264);
emit_16(1329);
emit_16(1265);
emit_16(1330);
emit_16(1266);
emit_16(1330);
emit_16(1265);
emit_16(1330);
emit_16(1266);
emit_16(1331);
emit_16(1267);
emit_16(1331);
emit_16(1266);
emit_16(1331);
emit_16(1267);
emit_16(1332);
emit_16(1268);
emit_16(1332);
emit_16(1267);
emit_16(1332);
emit_16(1268);
emit_16(1333);
emit_16(1269);
emit_16(1333);
emit_16(1268);
emit_16(1333);
emit_16(1269);
emit_16(1334);
emit_16(1270);
emit_16(1334);
emit_16(1269);
emit_16(1334);
emit_16(1270);
emit_16(1335);
emit_16(1271);
emit_16(1335);
emit_16(1270);
emit_16(1335);
emit_16(1271);
emit_16(1336);
emit_16(1272);
emit_16(1336);
emit_16(1271);
emit_16(1336);
emit_16(1272);
emit_16(1337);
emit_16(1273);
emit_16(1337);
emit_16(1272);
emit_16(1337);
emit_16(1273);
emit_16(1338);
emit_16(1274);
emit_16(1338);
emit_16(1273);
emit_16(1338);
emit_16(1274);
emit_16(1339);
emit_16(1275);
emit_16(1339);
emit_16(1274);
emit_16(1339);
emit_16(1275);
emit_16(1340);
emit_16(1276);
emit_16(1340);
emit_16(1275);
emit_16(1340);
emit_16(1276);
emit_16(1341);
emit_16(1277);
emit_16(1341);
emit_16(1276);
emit_16(1341);
emit_16(1277);
emit_16(1342);
emit_16(1278);
emit_16(1342);
emit_16(1277);
emit_16(1342);
emit_16(1278);
emit_16(1343);
emit_16(1279);
emit_16(1343);
emit_16(1278);
emit_16(1344);
emit_16(1280);
emit_16(1345);
emit_16(1281);
emit_16(1345);
emit_16(1280);
emit_16(1345);
emit_16(1281);
emit_16(1346);
emit_16(1282);
emit_16(1346);
emit_16(1281);
emit_16(1346);
emit_16(1282);
emit_16(1347);
emit_16(1283);
emit_16(1347);
emit_16(1282);
emit_16(1347);
emit_16(1283);
emit_16(1348);
emit_16(1284);
emit_16(1348);
emit_16(1283);
emit_16(1348);
emit_16(1284);
emit_16(1349);
emit_16(1285);
emit_16(1349);
emit_16(1284);
emit_16(1349);
emit_16(1285);
emit_16(1350);
emit_16(1286);
emit_16(1350);
emit_16(1285);
emit_16(1350);
emit_16(1286);
emit_16(1351);
emit_16(1287);
emit_16(1351);
emit_16(1286);
emit_16(1351);
emit_16(1287);
emit_16(1352);
emit_16(1288);
emit_16(1352);
emit_16(1287);
emit_16(1352);
emit_16(1288);
emit_16(1353);
emit_16(1289);
emit_16(1353);
emit_16(1288);
emit_16(1353);
emit_16(1289);
emit_16(1354);
emit_16(1290);
emit_16(1354);
emit_16(1289);
emit_16(1354);
emit_16(1290);
emit_16(1355);
emit_16(1291);
emit_16(1355);
emit_16(1290);
emit_16(1355);
emit_16(1291);
emit_16(1356);
emit_16(1292);
emit_16(1356);
emit_16(1291);
emit_16(1356);
emit_16(1292);
emit_16(1357);
emit_16(1293);
emit_16(1357);
emit_16(1292);
emit_16(1357);
emit_16(1293);
emit_16(1358);
emit_16(1294);
emit_16(1358);
emit_16(1293);
emit_16(1358);
emit_16(1294);
emit_16(1359);
emit_16(1295);
emit_16(1359);
emit_16(1294);
emit_16(1359);
emit_16(1295);
emit_16(1360);
emit_16(1296);
emit_16(1360);
emit_16(1295);
emit_16(1360);
emit_16(1296);
emit_16(1361);
emit_16(1297);
emit_16(1361);
emit_16(1296);
emit_16(1361);
emit_16(1297);
emit_16(1362);
emit_16(1298);
emit_16(1362);
emit_16(1297);
emit_16(1362);
emit_16(1298);
emit_16(1363);
emit_16(1299);
emit_16(1363);
emit_16(1298);
emit_16(1363);
emit_16(1299);
emit_16(1364);
emit_16(1300);
emit_16(1364);
emit_16(1299);
emit_16(1364);
emit_16(1300);
emit_16(1365);
emit_16(1301);
emit_16(1365);
emit_16(1300);
emit_16(1365);
emit_16(1301);
emit_16(1366);
emit_16(1302);
emit_16(1366);
emit_16(1301);
emit_16(1366);
emit_16(1302);
emit_16(1367);
emit_16(1303);
emit_16(1367);
emit_16(1302);
emit_16(1367);
emit_16(1303);
emit_16(1368);
emit_16(1304);
emit_16(1368);
emit_16(1303);
emit_16(1368);
emit_16(1304);
emit_16(1369);
emit_16(1305);
emit_16(1369);
emit_16(1304);
emit_16(1369);
emit_16(1305);
emit_16(1370);
emit_16(1306);
emit_16(1370);
emit_16(1305);
emit_16(1370);
emit_16(1306);
emit_16(1371);
emit_16(1307);
emit_16(1371);
emit_16(1306);
emit_16(1371);
emit_16(1307);
emit_16(1372);
emit_16(1308);
emit_16(1372);
emit_16(1307);
emit_16(1372);
emit_16(1308);
emit_16(1373);
emit_16(1309);
emit_16(1373);
emit_16(1308);
emit_16(1373);
emit_16(1309);
emit_16(1374);
emit_16(1310);
emit_16(1374);
emit_16(1309);
emit_16(1374);
emit_16(1310);
emit_16(1375);
emit_16(1311);
emit_16(1375);
emit_16(1310);
emit_16(1375);
emit_16(1311);
emit_16(1376);
emit_16(1312);
emit_16(1376);
emit_16(1311);
emit_16(1376);
emit_16(1312);
emit_16(1377);
emit_16(1313);
emit_16(1377);
emit_16(1312);
emit_16(1377);
emit_16(1313);
emit_16(1378);
emit_16(1314);
emit_16(1378);
emit_16(1313);
emit_16(1378);
emit_16(1314);
emit_16(1379);
emit_16(1315);
emit_16(1379);
emit_16(1314);
emit_16(1379);
emit_16(1315);
emit_16(1380);
emit_16(1316);
emit_16(1380);
emit_16(1315);
emit_16(1380);
emit_16(1316);
emit_16(1381);
emit_16(1317);
emit_16(1381);
emit_16(1316);
emit_16(1381);
emit_16(1317);
emit_16(1382);
emit_16(1318);
emit_16(1382);
emit_16(1317);
emit_16(1382);
emit_16(1318);
emit_16(1383);
emit_16(1319);
emit_16(1383);
emit_16(1318);
emit_16(1383);
emit_16(1319);
emit_16(1384);
emit_16(1320);
emit_16(1384);
emit_16(1319);
emit_16(1384);
emit_16(1320);
emit_16(1385);
emit_16(1321);
emit_16(1385);
emit_16(1320);
emit_16(1385);
emit_16(1321);
emit_16(1386);
emit_16(1322);
emit_16(1386);
emit_16(1321);
emit_16(1386);
emit_16(1322);
emit_16(1387);
emit_16(1323);
emit_16(1387);
emit_16(1322);
emit_16(1387);
emit_16(1323);
emit_16(1388);
emit_16(1324);
emit_16(1388);
emit_16(1323);
emit_16(1388);
emit_16(1324);
emit_16(1389);
emit_16(1325);
emit_16(1389);
emit_16(1324);
emit_16(1389);
emit_16(1325);
emit_16(1390);
emit_16(1326);
emit_16(1390);
emit_16(1325);
emit_16(1390);
emit_16(1326);
emit_16(1391);
emit_16(1327);
emit_16(1391);
emit_16(1326);
emit_16(1391);
emit_16(1327);
emit_16(1392);
emit_16(1328);
emit_16(1392);
emit_16(1327);
emit_16(1392);
emit_16(1328);
emit_16(1393);
emit_16(1329);
emit_16(1393);
emit_16(1328);
emit_16(1393);
emit_16(1329);
emit_16(1394);
emit_16(1330);
emit_16(1394);
emit_16(1329);
emit_16(1394);
emit_16(1330);
emit_16(1395);
emit_16(1331);
emit_16(1395);
emit_16(1330);
emit_16(1395);
emit_16(1331);
emit_16(1396);
emit_16(1332);
emit_16(1396);
emit_16(1331);
emit_16(1396);
emit_16(1332);
emit_16(1397);
emit_16(1333);
emit_16(1397);
emit_16(1332);
emit_16(1397);
emit_16(1333);
emit_16(1398);
emit_16(1334);
emit_16(1398);
emit_16(1333);
emit_16(1398);
emit_16(1334);
emit_16(1399);
emit_16(1335);
emit_16(1399);
emit_16(1334);
emit_16(1399);
emit_16(1335);
emit_16(1400);
emit_16(1336);
emit_16(1400);
emit_16(1335);
emit_16(1400);
emit_16(1336);
emit_16(1401);
emit_16(1337);
emit_16(1401);
emit_16(1336);
emit_16(1401);
emit_16(1337);
emit_16(1402);
emit_16(1338);
emit_16(1402);
emit_16(1337);
emit_16(1402);
emit_16(1338);
emit_16(1403);
emit_16(1339);
emit_16(1403);
emit_16(1338);
emit_16(1403);
emit_16(1339);
emit_16(1404);
emit_16(1340);
emit_16(1404);
emit_16(1339);
emit_16(1404);
emit_16(1340);
emit_16(1405);
emit_16(1341);
emit_16(1405);
emit_16(1340);
emit_16(1405);
emit_16(1341);
emit_16(1406);
emit_16(1342);
emit_16(1406);
emit_16(1341);
emit_16(1406);
emit_16(1342);
emit_16(1407);
emit_16(1343);
emit_16(1407);
emit_16(1342);
emit_16(1408);
emit_16(1344);
emit_16(1409);
emit_16(1345);
emit_16(1409);
emit_16(1344);
emit_16(1409);
emit_16(1345);
emit_16(1410);
emit_16(1346);
emit_16(1410);
emit_16(1345);
emit_16(1410);
emit_16(1346);
emit_16(1411);
emit_16(1347);
emit_16(1411);
emit_16(1346);
emit_16(1411);
emit_16(1347);
emit_16(1412);
emit_16(1348);
emit_16(1412);
emit_16(1347);
emit_16(1412);
emit_16(1348);
emit_16(1413);
emit_16(1349);
emit_16(1413);
emit_16(1348);
emit_16(1413);
emit_16(1349);
emit_16(1414);
emit_16(1350);
emit_16(1414);
emit_16(1349);
emit_16(1414);
emit_16(1350);
emit_16(1415);
emit_16(1351);
emit_16(1415);
emit_16(1350);
emit_16(1415);
emit_16(1351);
emit_16(1416);
emit_16(1352);
emit_16(1416);
emit_16(1351);
emit_16(1416);
emit_16(1352);
emit_16(1417);
emit_16(1353);
emit_16(1417);
emit_16(1352);
emit_16(1417);
emit_16(1353);
emit_16(1418);
emit_16(1354);
emit_16(1418);
emit_16(1353);
emit_16(1418);
emit_16(1354);
emit_16(1419);
emit_16(1355);
emit_16(1419);
emit_16(1354);
emit_16(1419);
emit_16(1355);
emit_16(1420);
emit_16(1356);
emit_16(1420);
emit_16(1355);
emit_16(1420);
emit_16(1356);
emit_16(1421);
emit_16(1357);
emit_16(1421);
emit_16(1356);
emit_16(1421);
emit_16(1357);
emit_16(1422);
emit_16(1358);
emit_16(1422);
emit_16(1357);
emit_16(1422);
emit_16(1358);
emit_16(1423);
emit_16(1359);
emit_16(1423);
emit_16(1358);
emit_16(1423);
emit_16(1359);
emit_16(1424);
emit_16(1360);
emit_16(1424);
emit_16(1359);
emit_16(1424);
emit_16(1360);
emit_16(1425);
emit_16(1361);
emit_16(1425);
emit_16(1360);
emit_16(1425);
emit_16(1361);
emit_16(1426);
emit_16(1362);
emit_16(1426);
emit_16(1361);
emit_16(1426);
emit_16(1362);
emit_16(1427);
emit_16(1363);
emit_16(1427);
emit_16(1362);
emit_16(1427);
emit_16(1363);
emit_16(1428);
emit_16(1364);
emit_16(1428);
emit_16(1363);
emit_16(1428);
emit_16(1364);
emit_16(1429);
emit_16(1365);
emit_16(1429);
emit_16(1364);
emit_16(1429);
emit_16(1365);
emit_16(1430);
emit_16(1366);
emit_16(1430);
emit_16(1365);
emit_16(1430);
emit_16(1366);
emit_16(1431);
emit_16(1367);
emit_16(1431);
emit_16(1366);
emit_16(1431);
emit_16(1367);
emit_16(1432);
emit_16(1368);
emit_16(1432);
emit_16(1367);
emit_16(1432);
emit_16(1368);
emit_16(1433);
emit_16(1369);
emit_16(1433);
emit_16(1368);
emit_16(1433);
emit_16(1369);
emit_16(1434);
emit_16(1370);
emit_16(1434);
emit_16(1369);
emit_16(1434);
emit_16(1370);
emit_16(1435);
emit_16(1371);
emit_16(1435);
emit_16(1370);
emit_16(1435);
emit_16(1371);
emit_16(1436);
emit_16(1372);
emit_16(1436);
emit_16(1371);
emit_16(1436);
emit_16(1372);
emit_16(1437);
emit_16(1373);
emit_16(1437);
emit_16(1372);
emit_16(1437);
emit_16(1373);
emit_16(1438);
emit_16(1374);
emit_16(1438);
emit_16(1373);
emit_16(1438);
emit_16(1374);
emit_16(1439);
emit_16(1375);
emit_16(1439);
emit_16(1374);
emit_16(1439);
emit_16(1375);
emit_16(1440);
emit_16(1376);
emit_16(1440);
emit_16(1375);
emit_16(1440);
emit_16(1376);
emit_16(1441);
emit_16(1377);
emit_16(1441);
emit_16(1376);
emit_16(1441);
emit_16(1377);
emit_16(1442);
emit_16(1378);
emit_16(1442);
emit_16(1377);
emit_16(1442);
emit_16(1378);
emit_16(1443);
emit_16(1379);
emit_16(1443);
emit_16(1378);
emit_16(1443);
emit_16(1379);
emit_16(1444);
emit_16(1380);
emit_16(1444);
emit_16(1379);
emit_16(1444);
emit_16(1380);
emit_16(1445);
emit_16(1381);
emit_16(1445);
emit_16(1380);
emit_16(1445);
emit_16(1381);
emit_16(1446);
emit_16(1382);
emit_16(1446);
emit_16(1381);
emit_16(1446);
emit_16(1382);
emit_16(1447);
emit_16(1383);
emit_16(1447);
emit_16(1382);
emit_16(1447);
emit_16(1383);
emit_16(1448);
emit_16(1384);
emit_16(1448);
emit_16(1383);
emit_16(1448);
emit_16(1384);
emit_16(1449);
emit_16(1385);
emit_16(1449);
emit_16(1384);
emit_16(1449);
emit_16(1385);
emit_16(1450);
emit_16(1386);
emit_16(1450);
emit_16(1385);
emit_16(1450);
emit_16(1386);
emit_16(1451);
emit_16(1387);
emit_16(1451);
emit_16(1386);
emit_16(1451);
emit_16(1387);
emit_16(1452);
emit_16(1388);
emit_16(1452);
emit_16(1387);
emit_16(1452);
emit_16(1388);
emit_16(1453);
emit_16(1389);
emit_16(1453);
emit_16(1388);
emit_16(1453);
emit_16(1389);
emit_16(1454);
emit_16(1390);
emit_16(1454);
emit_16(1389);
emit_16(1454);
emit_16(1390);
emit_16(1455);
emit_16(1391);
emit_16(1455);
emit_16(1390);
emit_16(1455);
emit_16(1391);
emit_16(1456);
emit_16(1392);
emit_16(1456);
emit_16(1391);
emit_16(1456);
emit_16(1392);
emit_16(1457);
emit_16(1393);
emit_16(1457);
emit_16(1392);
emit_16(1457);
emit_16(1393);
emit_16(1458);
emit_16(1394);
emit_16(1458);
emit_16(1393);
emit_16(1458);
emit_16(1394);
emit_16(1459);
emit_16(1395);
emit_16(1459);
emit_16(1394);
emit_16(1459);
emit_16(1395);
emit_16(1460);
emit_16(1396);
emit_16(1460);
emit_16(1395);
emit_16(1460);
emit_16(1396);
emit_16(1461);
emit_16(1397);
emit_16(1461);
emit_16(1396);
emit_16(1461);
emit_16(1397);
emit_16(1462);
emit_16(1398);
emit_16(1462);
emit_16(1397);
emit_16(1462);
emit_16(1398);
emit_16(1463);
emit_16(1399);
emit_16(1463);
emit_16(1398);
emit_16(1463);
emit_16(1399);
emit_16(1464);
emit_16(1400);
emit_16(1464);
emit_16(1399);
emit_16(1464);
emit_16(1400);
emit_16(1465);
emit_16(1401);
emit_16(1465);
emit_16(1400);
emit_16(1465);
emit_16(1401);
emit_16(1466);
emit_16(1402);
emit_16(1466);
emit_16(1401);
emit_16(1466);
emit_16(1402);
emit_16(1467);
emit_16(1403);
emit_16(1467);
emit_16(1402);
emit_16(1467);
emit_16(1403);
emit_16(1468);
emit_16(1404);
emit_16(1468);
emit_16(1403);
emit_16(1468);
emit_16(1404);
emit_16(1469);
emit_16(1405);
emit_16(1469);
emit_16(1404);
emit_16(1469);
emit_16(1405);
emit_16(1470);
emit_16(1406);
emit_16(1470);
emit_16(1405);
emit_16(1470);
emit_16(1406);
emit_16(1471);
emit_16(1407);
emit_16(1471);
emit_16(1406);
emit_16(1472);
emit_16(1408);
emit_16(1473);
emit_16(1409);
emit_16(1473);
emit_16(1408);
emit_16(1473);
emit_16(1409);
emit_16(1474);
emit_16(1410);
emit_16(1474);
emit_16(1409);
emit_16(1474);
emit_16(1410);
emit_16(1475);
emit_16(1411);
emit_16(1475);
emit_16(1410);
emit_16(1475);
emit_16(1411);
emit_16(1476);
emit_16(1412);
emit_16(1476);
emit_16(1411);
emit_16(1476);
emit_16(1412);
emit_16(1477);
emit_16(1413);
emit_16(1477);
emit_16(1412);
emit_16(1477);
emit_16(1413);
emit_16(1478);
emit_16(1414);
emit_16(1478);
emit_16(1413);
emit_16(1478);
emit_16(1414);
emit_16(1479);
emit_16(1415);
emit_16(1479);
emit_16(1414);
emit_16(1479);
emit_16(1415);
emit_16(1480);
emit_16(1416);
emit_16(1480);
emit_16(1415);
emit_16(1480);
emit_16(1416);
emit_16(1481);
emit_16(1417);
emit_16(1481);
emit_16(1416);
emit_16(1481);
emit_16(1417);
emit_16(1482);
emit_16(1418);
emit_16(1482);
emit_16(1417);
emit_16(1482);
emit_16(1418);
emit_16(1483);
emit_16(1419);
emit_16(1483);
emit_16(1418);
emit_16(1483);
emit_16(1419);
emit_16(1484);
emit_16(1420);
emit_16(1484);
emit_16(1419);
emit_16(1484);
emit_16(1420);
emit_16(1485);
emit_16(1421);
emit_16(1485);
emit_16(1420);
emit_16(1485);
emit_16(1421);
emit_16(1486);
emit_16(1422);
emit_16(1486);
emit_16(1421);
emit_16(1486);
emit_16(1422);
emit_16(1487);
emit_16(1423);
emit_16(1487);
emit_16(1422);
emit_16(1487);
emit_16(1423);
emit_16(1488);
emit_16(1424);
emit_16(1488);
emit_16(1423);
emit_16(1488);
emit_16(1424);
emit_16(1489);
emit_16(1425);
emit_16(1489);
emit_16(1424);
emit_16(1489);
emit_16(1425);
emit_16(1490);
emit_16(1426);
emit_16(1490);
emit_16(1425);
emit_16(1490);
emit_16(1426);
emit_16(1491);
emit_16(1427);
emit_16(1491);
emit_16(1426);
emit_16(1491);
emit_16(1427);
emit_16(1492);
emit_16(1428);
emit_16(1492);
emit_16(1427);
emit_16(1492);
emit_16(1428);
emit_16(1493);
emit_16(1429);
emit_16(1493);
emit_16(1428);
emit_16(1493);
emit_16(1429);
emit_16(1494);
emit_16(1430);
emit_16(1494);
emit_16(1429);
emit_16(1494);
emit_16(1430);
emit_16(1495);
emit_16(1431);
emit_16(1495);
emit_16(1430);
emit_16(1495);
emit_16(1431);
emit_16(1496);
emit_16(1432);
emit_16(1496);
emit_16(1431);
emit_16(1496);
emit_16(1432);
emit_16(1497);
emit_16(1433);
emit_16(1497);
emit_16(1432);
emit_16(1497);
emit_16(1433);
emit_16(1498);
emit_16(1434);
emit_16(1498);
emit_16(1433);
emit_16(1498);
emit_16(1434);
emit_16(1499);
emit_16(1435);
emit_16(1499);
emit_16(1434);
emit_16(1499);
emit_16(1435);
emit_16(1500);
emit_16(1436);
emit_16(1500);
emit_16(1435);
emit_16(1500);
emit_16(1436);
emit_16(1501);
emit_16(1437);
emit_16(1501);
emit_16(1436);
emit_16(1501);
emit_16(1437);
emit_16(1502);
emit_16(1438);
emit_16(1502);
emit_16(1437);
emit_16(1502);
emit_16(1438);
emit_16(1503);
emit_16(1439);
emit_16(1503);
emit_16(1438);
emit_16(1503);
emit_16(1439);
emit_16(1504);
emit_16(1440);
emit_16(1504);
emit_16(1439);
emit_16(1504);
emit_16(1440);
emit_16(1505);
emit_16(1441);
emit_16(1505);
emit_16(1440);
emit_16(1505);
emit_16(1441);
emit_16(1506);
emit_16(1442);
emit_16(1506);
emit_16(1441);
emit_16(1506);
emit_16(1442);
emit_16(1507);
emit_16(1443);
emit_16(1507);
emit_16(1442);
emit_16(1507);
emit_16(1443);
emit_16(1508);
emit_16(1444);
emit_16(1508);
emit_16(1443);
emit_16(1508);
emit_16(1444);
emit_16(1509);
emit_16(1445);
emit_16(1509);
emit_16(1444);
emit_16(1509);
emit_16(1445);
emit_16(1510);
emit_16(1446);
emit_16(1510);
emit_16(1445);
emit_16(1510);
emit_16(1446);
emit_16(1511);
emit_16(1447);
emit_16(1511);
emit_16(1446);
emit_16(1511);
emit_16(1447);
emit_16(1512);
emit_16(1448);
emit_16(1512);
emit_16(1447);
emit_16(1512);
emit_16(1448);
emit_16(1513);
emit_16(1449);
emit_16(1513);
emit_16(1448);
emit_16(1513);
emit_16(1449);
emit_16(1514);
emit_16(1450);
emit_16(1514);
emit_16(1449);
emit_16(1514);
emit_16(1450);
emit_16(1515);
emit_16(1451);
emit_16(1515);
emit_16(1450);
emit_16(1515);
emit_16(1451);
emit_16(1516);
emit_16(1452);
emit_16(1516);
emit_16(1451);
emit_16(1516);
emit_16(1452);
emit_16(1517);
emit_16(1453);
emit_16(1517);
emit_16(1452);
emit_16(1517);
emit_16(1453);
emit_16(1518);
emit_16(1454);
emit_16(1518);
emit_16(1453);
emit_16(1518);
emit_16(1454);
emit_16(1519);
emit_16(1455);
emit_16(1519);
emit_16(1454);
emit_16(1519);
emit_16(1455);
emit_16(1520);
emit_16(1456);
emit_16(1520);
emit_16(1455);
emit_16(1520);
emit_16(1456);
emit_16(1521);
emit_16(1457);
emit_16(1521);
emit_16(1456);
emit_16(1521);
emit_16(1457);
emit_16(1522);
emit_16(1458);
emit_16(1522);
emit_16(1457);
emit_16(1522);
emit_16(1458);
emit_16(1523);
emit_16(1459);
emit_16(1523);
emit_16(1458);
emit_16(1523);
emit_16(1459);
emit_16(1524);
emit_16(1460);
emit_16(1524);
emit_16(1459);
emit_16(1524);
emit_16(1460);
emit_16(1525);
emit_16(1461);
emit_16(1525);
emit_16(1460);
emit_16(1525);
emit_16(1461);
emit_16(1526);
emit_16(1462);
emit_16(1526);
emit_16(1461);
emit_16(1526);
emit_16(1462);
emit_16(1527);
emit_16(1463);
emit_16(1527);
emit_16(1462);
emit_16(1527);
emit_16(1463);
emit_16(1528);
emit_16(1464);
emit_16(1528);
emit_16(1463);
emit_16(1528);
emit_16(1464);
emit_16(1529);
emit_16(1465);
emit_16(1529);
emit_16(1464);
emit_16(1529);
emit_16(1465);
emit_16(1530);
emit_16(1466);
emit_16(1530);
emit_16(1465);
emit_16(1530);
emit_16(1466);
emit_16(1531);
emit_16(1467);
emit_16(1531);
emit_16(1466);
emit_16(1531);
emit_16(1467);
emit_16(1532);
emit_16(1468);
emit_16(1532);
emit_16(1467);
emit_16(1532);
emit_16(1468);
emit_16(1533);
emit_16(1469);
emit_16(1533);
emit_16(1468);
emit_16(1533);
emit_16(1469);
emit_16(1534);
emit_16(1470);
emit_16(1534);
emit_16(1469);
emit_16(1534);
emit_16(1470);
emit_16(1535);
emit_16(1471);
emit_16(1535);
emit_16(1470);
emit_16(1536);
emit_16(1472);
emit_16(1537);
emit_16(1473);
emit_16(1537);
emit_16(1472);
emit_16(1537);
emit_16(1473);
emit_16(1538);
emit_16(1474);
emit_16(1538);
emit_16(1473);
emit_16(1538);
emit_16(1474);
emit_16(1539);
emit_16(1475);
emit_16(1539);
emit_16(1474);
emit_16(1539);
emit_16(1475);
emit_16(1540);
emit_16(1476);
emit_16(1540);
emit_16(1475);
emit_16(1540);
emit_16(1476);
emit_16(1541);
emit_16(1477);
emit_16(1541);
emit_16(1476);
emit_16(1541);
emit_16(1477);
emit_16(1542);
emit_16(1478);
emit_16(1542);
emit_16(1477);
emit_16(1542);
emit_16(1478);
emit_16(1543);
emit_16(1479);
emit_16(1543);
emit_16(1478);
emit_16(1543);
emit_16(1479);
emit_16(1544);
emit_16(1480);
emit_16(1544);
emit_16(1479);
emit_16(1544);
emit_16(1480);
emit_16(1545);
emit_16(1481);
emit_16(1545);
emit_16(1480);
emit_16(1545);
emit_16(1481);
emit_16(1546);
emit_16(1482);
emit_16(1546);
emit_16(1481);
emit_16(1546);
emit_16(1482);
emit_16(1547);
emit_16(1483);
emit_16(1547);
emit_16(1482);
emit_16(1547);
emit_16(1483);
emit_16(1548);
emit_16(1484);
emit_16(1548);
emit_16(1483);
emit_16(1548);
emit_16(1484);
emit_16(1549);
emit_16(1485);
emit_16(1549);
emit_16(1484);
emit_16(1549);
emit_16(1485);
emit_16(1550);
emit_16(1486);
emit_16(1550);
emit_16(1485);
emit_16(1550);
emit_16(1486);
emit_16(1551);
emit_16(1487);
emit_16(1551);
emit_16(1486);
emit_16(1551);
emit_16(1487);
emit_16(1552);
emit_16(1488);
emit_16(1552);
emit_16(1487);
emit_16(1552);
emit_16(1488);
emit_16(1553);
emit_16(1489);
emit_16(1553);
emit_16(1488);
emit_16(1553);
emit_16(1489);
emit_16(1554);
emit_16(1490);
emit_16(1554);
emit_16(1489);
emit_16(1554);
emit_16(1490);
emit_16(1555);
emit_16(1491);
emit_16(1555);
emit_16(1490);
emit_16(1555);
emit_16(1491);
emit_16(1556);
emit_16(1492);
emit_16(1556);
emit_16(1491);
emit_16(1556);
emit_16(1492);
emit_16(1557);
emit_16(1493);
emit_16(1557);
emit_16(1492);
emit_16(1557);
emit_16(1493);
emit_16(1558);
emit_16(1494);
emit_16(1558);
emit_16(1493);
emit_16(1558);
emit_16(1494);
emit_16(1559);
emit_16(1495);
emit_16(1559);
emit_16(1494);
emit_16(1559);
emit_16(1495);
emit_16(1560);
emit_16(1496);
emit_16(1560);
emit_16(1495);
emit_16(1560);
emit_16(1496);
emit_16(1561);
emit_16(1497);
emit_16(1561);
emit_16(1496);
emit_16(1561);
emit_16(1497);
emit_16(1562);
emit_16(1498);
emit_16(1562);
emit_16(1497);
emit_16(1562);
emit_16(1498);
emit_16(1563);
emit_16(1499);
emit_16(1563);
emit_16(1498);
emit_16(1563);
emit_16(1499);
emit_16(1564);
emit_16(1500);
emit_16(1564);
emit_16(1499);
emit_16(1564);
emit_16(1500);
emit_16(1565);
emit_16(1501);
emit_16(1565);
emit_16(1500);
emit_16(1565);
emit_16(1501);
emit_16(1566);
emit_16(1502);
emit_16(1566);
emit_16(1501);
emit_16(1566);
emit_16(1502);
emit_16(1567);
emit_16(1503);
emit_16(1567);
emit_16(1502);
emit_16(1567);
emit_16(1503);
emit_16(1568);
emit_16(1504);
emit_16(1568);
emit_16(1503);
emit_16(1568);
emit_16(1504);
emit_16(1569);
emit_16(1505);
emit_16(1569);
emit_16(1504);
emit_16(1569);
emit_16(1505);
emit_16(1570);
emit_16(1506);
emit_16(1570);
emit_16(1505);
emit_16(1570);
emit_16(1506);
emit_16(1571);
emit_16(1507);
emit_16(1571);
emit_16(1506);
emit_16(1571);
emit_16(1507);
emit_16(1572);
emit_16(1508);
emit_16(1572);
emit_16(1507);
emit_16(1572);
emit_16(1508);
emit_16(1573);
emit_16(1509);
emit_16(1573);
emit_16(1508);
emit_16(1573);
emit_16(1509);
emit_16(1574);
emit_16(1510);
emit_16(1574);
emit_16(1509);
emit_16(1574);
emit_16(1510);
emit_16(1575);
emit_16(1511);
emit_16(1575);
emit_16(1510);
emit_16(1575);
emit_16(1511);
emit_16(1576);
emit_16(1512);
emit_16(1576);
emit_16(1511);
emit_16(1576);
emit_16(1512);
emit_16(1577);
emit_16(1513);
emit_16(1577);
emit_16(1512);
emit_16(1577);
emit_16(1513);
emit_16(1578);
emit_16(1514);
emit_16(1578);
emit_16(1513);
emit_16(1578);
emit_16(1514);
emit_16(1579);
emit_16(1515);
emit_16(1579);
emit_16(1514);
emit_16(1579);
emit_16(1515);
emit_16(1580);
emit_16(1516);
emit_16(1580);
emit_16(1515);
emit_16(1580);
emit_16(1516);
emit_16(1581);
emit_16(1517);
emit_16(1581);
emit_16(1516);
emit_16(1581);
emit_16(1517);
emit_16(1582);
emit_16(1518);
emit_16(1582);
emit_16(1517);
emit_16(1582);
emit_16(1518);
emit_16(1583);
emit_16(1519);
emit_16(1583);
emit_16(1518);
emit_16(1583);
emit_16(1519);
emit_16(1584);
emit_16(1520);
emit_16(1584);
emit_16(1519);
emit_16(1584);
emit_16(1520);
emit_16(1585);
emit_16(1521);
emit_16(1585);
emit_16(1520);
emit_16(1585);
emit_16(1521);
emit_16(1586);
emit_16(1522);
emit_16(1586);
emit_16(1521);
emit_16(1586);
emit_16(1522);
emit_16(1587);
emit_16(1523);
emit_16(1587);
emit_16(1522);
emit_16(1587);
emit_16(1523);
emit_16(1588);
emit_16(1524);
emit_16(1588);
emit_16(1523);
emit_16(1588);
emit_16(1524);
emit_16(1589);
emit_16(1525);
emit_16(1589);
emit_16(1524);
emit_16(1589);
emit_16(1525);
emit_16(1590);
emit_16(1526);
emit_16(1590);
emit_16(1525);
emit_16(1590);
emit_16(1526);
emit_16(1591);
emit_16(1527);
emit_16(1591);
emit_16(1526);
emit_16(1591);
emit_16(1527);
emit_16(1592);
emit_16(1528);
emit_16(1592);
emit_16(1527);
emit_16(1592);
emit_16(1528);
emit_16(1593);
emit_16(1529);
emit_16(1593);
emit_16(1528);
emit_16(1593);
emit_16(1529);
emit_16(1594);
emit_16(1530);
emit_16(1594);
emit_16(1529);
emit_16(1594);
emit_16(1530);
emit_16(1595);
emit_16(1531);
emit_16(1595);
emit_16(1530);
emit_16(1595);
emit_16(1531);
emit_16(1596);
emit_16(1532);
emit_16(1596);
emit_16(1531);
emit_16(1596);
emit_16(1532);
emit_16(1597);
emit_16(1533);
emit_16(1597);
emit_16(1532);
emit_16(1597);
emit_16(1533);
emit_16(1598);
emit_16(1534);
emit_16(1598);
emit_16(1533);
emit_16(1598);
emit_16(1534);
emit_16(1599);
emit_16(1535);
emit_16(1599);
emit_16(1534);
emit_16(1600);
emit_16(1536);
emit_16(1601);
emit_16(1537);
emit_16(1601);
emit_16(1536);
emit_16(1601);
emit_16(1537);
emit_16(1602);
emit_16(1538);
emit_16(1602);
emit_16(1537);
emit_16(1602);
emit_16(1538);
emit_16(1603);
emit_16(1539);
emit_16(1603);
emit_16(1538);
emit_16(1603);
emit_16(1539);
emit_16(1604);
emit_16(1540);
emit_16(1604);
emit_16(1539);
emit_16(1604);
emit_16(1540);
emit_16(1605);
emit_16(1541);
emit_16(1605);
emit_16(1540);
emit_16(1605);
emit_16(1541);
emit_16(1606);
emit_16(1542);
emit_16(1606);
emit_16(1541);
emit_16(1606);
emit_16(1542);
emit_16(1607);
emit_16(1543);
emit_16(1607);
emit_16(1542);
emit_16(1607);
emit_16(1543);
emit_16(1608);
emit_16(1544);
emit_16(1608);
emit_16(1543);
emit_16(1608);
emit_16(1544);
emit_16(1609);
emit_16(1545);
emit_16(1609);
emit_16(1544);
emit_16(1609);
emit_16(1545);
emit_16(1610);
emit_16(1546);
emit_16(1610);
emit_16(1545);
emit_16(1610);
emit_16(1546);
emit_16(1611);
emit_16(1547);
emit_16(1611);
emit_16(1546);
emit_16(1611);
emit_16(1547);
emit_16(1612);
emit_16(1548);
emit_16(1612);
emit_16(1547);
emit_16(1612);
emit_16(1548);
emit_16(1613);
emit_16(1549);
emit_16(1613);
emit_16(1548);
emit_16(1613);
emit_16(1549);
emit_16(1614);
emit_16(1550);
emit_16(1614);
emit_16(1549);
emit_16(1614);
emit_16(1550);
emit_16(1615);
emit_16(1551);
emit_16(1615);
emit_16(1550);
emit_16(1615);
emit_16(1551);
emit_16(1616);
emit_16(1552);
emit_16(1616);
emit_16(1551);
emit_16(1616);
emit_16(1552);
emit_16(1617);
emit_16(1553);
emit_16(1617);
emit_16(1552);
emit_16(1617);
emit_16(1553);
emit_16(1618);
emit_16(1554);
emit_16(1618);
emit_16(1553);
emit_16(1618);
emit_16(1554);
emit_16(1619);
emit_16(1555);
emit_16(1619);
emit_16(1554);
emit_16(1619);
emit_16(1555);
emit_16(1620);
emit_16(1556);
emit_16(1620);
emit_16(1555);
emit_16(1620);
emit_16(1556);
emit_16(1621);
emit_16(1557);
emit_16(1621);
emit_16(1556);
emit_16(1621);
emit_16(1557);
emit_16(1622);
emit_16(1558);
emit_16(1622);
emit_16(1557);
emit_16(1622);
emit_16(1558);
emit_16(1623);
emit_16(1559);
emit_16(1623);
emit_16(1558);
emit_16(1623);
emit_16(1559);
emit_16(1624);
emit_16(1560);
emit_16(1624);
emit_16(1559);
emit_16(1624);
emit_16(1560);
emit_16(1625);
emit_16(1561);
emit_16(1625);
emit_16(1560);
emit_16(1625);
emit_16(1561);
emit_16(1626);
emit_16(1562);
emit_16(1626);
emit_16(1561);
emit_16(1626);
emit_16(1562);
emit_16(1627);
emit_16(1563);
emit_16(1627);
emit_16(1562);
emit_16(1627);
emit_16(1563);
emit_16(1628);
emit_16(1564);
emit_16(1628);
emit_16(1563);
emit_16(1628);
emit_16(1564);
emit_16(1629);
emit_16(1565);
emit_16(1629);
emit_16(1564);
emit_16(1629);
emit_16(1565);
emit_16(1630);
emit_16(1566);
emit_16(1630);
emit_16(1565);
emit_16(1630);
emit_16(1566);
emit_16(1631);
emit_16(1567);
emit_16(1631);
emit_16(1566);
emit_16(1631);
emit_16(1567);
emit_16(1632);
emit_16(1568);
emit_16(1632);
emit_16(1567);
emit_16(1632);
emit_16(1568);
emit_16(1633);
emit_16(1569);
emit_16(1633);
emit_16(1568);
emit_16(1633);
emit_16(1569);
emit_16(1634);
emit_16(1570);
emit_16(1634);
emit_16(1569);
emit_16(1634);
emit_16(1570);
emit_16(1635);
emit_16(1571);
emit_16(1635);
emit_16(1570);
emit_16(1635);
emit_16(1571);
emit_16(1636);
emit_16(1572);
emit_16(1636);
emit_16(1571);
emit_16(1636);
emit_16(1572);
emit_16(1637);
emit_16(1573);
emit_16(1637);
emit_16(1572);
emit_16(1637);
emit_16(1573);
emit_16(1638);
emit_16(1574);
emit_16(1638);
emit_16(1573);
emit_16(1638);
emit_16(1574);
emit_16(1639);
emit_16(1575);
emit_16(1639);
emit_16(1574);
emit_16(1639);
emit_16(1575);
emit_16(1640);
emit_16(1576);
emit_16(1640);
emit_16(1575);
emit_16(1640);
emit_16(1576);
emit_16(1641);
emit_16(1577);
emit_16(1641);
emit_16(1576);
emit_16(1641);
emit_16(1577);
emit_16(1642);
emit_16(1578);
emit_16(1642);
emit_16(1577);
emit_16(1642);
emit_16(1578);
emit_16(1643);
emit_16(1579);
emit_16(1643);
emit_16(1578);
emit_16(1643);
emit_16(1579);
emit_16(1644);
emit_16(1580);
emit_16(1644);
emit_16(1579);
emit_16(1644);
emit_16(1580);
emit_16(1645);
emit_16(1581);
emit_16(1645);
emit_16(1580);
emit_16(1645);
emit_16(1581);
emit_16(1646);
emit_16(1582);
emit_16(1646);
emit_16(1581);
emit_16(1646);
emit_16(1582);
emit_16(1647);
emit_16(1583);
emit_16(1647);
emit_16(1582);
emit_16(1647);
emit_16(1583);
emit_16(1648);
emit_16(1584);
emit_16(1648);
emit_16(1583);
emit_16(1648);
emit_16(1584);
emit_16(1649);
emit_16(1585);
emit_16(1649);
emit_16(1584);
emit_16(1649);
emit_16(1585);
emit_16(1650);
emit_16(1586);
emit_16(1650);
emit_16(1585);
emit_16(1650);
emit_16(1586);
emit_16(1651);
emit_16(1587);
emit_16(1651);
emit_16(1586);
emit_16(1651);
emit_16(1587);
emit_16(1652);
emit_16(1588);
emit_16(1652);
emit_16(1587);
emit_16(1652);
emit_16(1588);
emit_16(1653);
emit_16(1589);
emit_16(1653);
emit_16(1588);
emit_16(1653);
emit_16(1589);
emit_16(1654);
emit_16(1590);
emit_16(1654);
emit_16(1589);
emit_16(1654);
emit_16(1590);
emit_16(1655);
emit_16(1591);
emit_16(1655);
emit_16(1590);
emit_16(1655);
emit_16(1591);
emit_16(1656);
emit_16(1592);
emit_16(1656);
emit_16(1591);
emit_16(1656);
emit_16(1592);
emit_16(1657);
emit_16(1593);
emit_16(1657);
emit_16(1592);
emit_16(1657);
emit_16(1593);
emit_16(1658);
emit_16(1594);
emit_16(1658);
emit_16(1593);
emit_16(1658);
emit_16(1594);
emit_16(1659);
emit_16(1595);
emit_16(1659);
emit_16(1594);
emit_16(1659);
emit_16(1595);
emit_16(1660);
emit_16(1596);
emit_16(1660);
emit_16(1595);
emit_16(1660);
emit_16(1596);
emit_16(1661);
emit_16(1597);
emit_16(1661);
emit_16(1596);
emit_16(1661);
emit_16(1597);
emit_16(1662);
emit_16(1598);
emit_16(1662);
emit_16(1597);
emit_16(1662);
emit_16(1598);
emit_16(1663);
emit_16(1599);
emit_16(1663);
emit_16(1598);
emit_16(1664);
emit_16(1600);
emit_16(1665);
emit_16(1601);
emit_16(1665);
emit_16(1600);
emit_16(1665);
emit_16(1601);
emit_16(1666);
emit_16(1602);
emit_16(1666);
emit_16(1601);
emit_16(1666);
emit_16(1602);
emit_16(1667);
emit_16(1603);
emit_16(1667);
emit_16(1602);
emit_16(1667);
emit_16(1603);
emit_16(1668);
emit_16(1604);
emit_16(1668);
emit_16(1603);
emit_16(1668);
emit_16(1604);
emit_16(1669);
emit_16(1605);
emit_16(1669);
emit_16(1604);
emit_16(1669);
emit_16(1605);
emit_16(1670);
emit_16(1606);
emit_16(1670);
emit_16(1605);
emit_16(1670);
emit_16(1606);
emit_16(1671);
emit_16(1607);
emit_16(1671);
emit_16(1606);
emit_16(1671);
emit_16(1607);
emit_16(1672);
emit_16(1608);
emit_16(1672);
emit_16(1607);
emit_16(1672);
emit_16(1608);
emit_16(1673);
emit_16(1609);
emit_16(1673);
emit_16(1608);
emit_16(1673);
emit_16(1609);
emit_16(1674);
emit_16(1610);
emit_16(1674);
emit_16(1609);
emit_16(1674);
emit_16(1610);
emit_16(1675);
emit_16(1611);
emit_16(1675);
emit_16(1610);
emit_16(1675);
emit_16(1611);
emit_16(1676);
emit_16(1612);
emit_16(1676);
emit_16(1611);
emit_16(1676);
emit_16(1612);
emit_16(1677);
emit_16(1613);
emit_16(1677);
emit_16(1612);
emit_16(1677);
emit_16(1613);
emit_16(1678);
emit_16(1614);
emit_16(1678);
emit_16(1613);
emit_16(1678);
emit_16(1614);
emit_16(1679);
emit_16(1615);
emit_16(1679);
emit_16(1614);
emit_16(1679);
emit_16(1615);
emit_16(1680);
emit_16(1616);
emit_16(1680);
emit_16(1615);
emit_16(1680);
emit_16(1616);
emit_16(1681);
emit_16(1617);
emit_16(1681);
emit_16(1616);
emit_16(1681);
emit_16(1617);
emit_16(1682);
emit_16(1618);
emit_16(1682);
emit_16(1617);
emit_16(1682);
emit_16(1618);
emit_16(1683);
emit_16(1619);
emit_16(1683);
emit_16(1618);
emit_16(1683);
emit_16(1619);
emit_16(1684);
emit_16(1620);
emit_16(1684);
emit_16(1619);
emit_16(1684);
emit_16(1620);
emit_16(1685);
emit_16(1621);
emit_16(1685);
emit_16(1620);
emit_16(1685);
emit_16(1621);
emit_16(1686);
emit_16(1622);
emit_16(1686);
emit_16(1621);
emit_16(1686);
emit_16(1622);
emit_16(1687);
emit_16(1623);
emit_16(1687);
emit_16(1622);
emit_16(1687);
emit_16(1623);
emit_16(1688);
emit_16(1624);
emit_16(1688);
emit_16(1623);
emit_16(1688);
emit_16(1624);
emit_16(1689);
emit_16(1625);
emit_16(1689);
emit_16(1624);
emit_16(1689);
emit_16(1625);
emit_16(1690);
emit_16(1626);
emit_16(1690);
emit_16(1625);
emit_16(1690);
emit_16(1626);
emit_16(1691);
emit_16(1627);
emit_16(1691);
emit_16(1626);
emit_16(1691);
emit_16(1627);
emit_16(1692);
emit_16(1628);
emit_16(1692);
emit_16(1627);
emit_16(1692);
emit_16(1628);
emit_16(1693);
emit_16(1629);
emit_16(1693);
emit_16(1628);
emit_16(1693);
emit_16(1629);
emit_16(1694);
emit_16(1630);
emit_16(1694);
emit_16(1629);
emit_16(1694);
emit_16(1630);
emit_16(1695);
emit_16(1631);
emit_16(1695);
emit_16(1630);
emit_16(1695);
emit_16(1631);
emit_16(1696);
emit_16(1632);
emit_16(1696);
emit_16(1631);
emit_16(1696);
emit_16(1632);
emit_16(1697);
emit_16(1633);
emit_16(1697);
emit_16(1632);
emit_16(1697);
emit_16(1633);
emit_16(1698);
emit_16(1634);
emit_16(1698);
emit_16(1633);
emit_16(1698);
emit_16(1634);
emit_16(1699);
emit_16(1635);
emit_16(1699);
emit_16(1634);
emit_16(1699);
emit_16(1635);
emit_16(1700);
emit_16(1636);
emit_16(1700);
emit_16(1635);
emit_16(1700);
emit_16(1636);
emit_16(1701);
emit_16(1637);
emit_16(1701);
emit_16(1636);
emit_16(1701);
emit_16(1637);
emit_16(1702);
emit_16(1638);
emit_16(1702);
emit_16(1637);
emit_16(1702);
emit_16(1638);
emit_16(1703);
emit_16(1639);
emit_16(1703);
emit_16(1638);
emit_16(1703);
emit_16(1639);
emit_16(1704);
emit_16(1640);
emit_16(1704);
emit_16(1639);
emit_16(1704);
emit_16(1640);
emit_16(1705);
emit_16(1641);
emit_16(1705);
emit_16(1640);
emit_16(1705);
emit_16(1641);
emit_16(1706);
emit_16(1642);
emit_16(1706);
emit_16(1641);
emit_16(1706);
emit_16(1642);
emit_16(1707);
emit_16(1643);
emit_16(1707);
emit_16(1642);
emit_16(1707);
emit_16(1643);
emit_16(1708);
emit_16(1644);
emit_16(1708);
emit_16(1643);
emit_16(1708);
emit_16(1644);
emit_16(1709);
emit_16(1645);
emit_16(1709);
emit_16(1644);
emit_16(1709);
emit_16(1645);
emit_16(1710);
emit_16(1646);
emit_16(1710);
emit_16(1645);
emit_16(1710);
emit_16(1646);
emit_16(1711);
emit_16(1647);
emit_16(1711);
emit_16(1646);
emit_16(1711);
emit_16(1647);
emit_16(1712);
emit_16(1648);
emit_16(1712);
emit_16(1647);
emit_16(1712);
emit_16(1648);
emit_16(1713);
emit_16(1649);
emit_16(1713);
emit_16(1648);
emit_16(1713);
emit_16(1649);
emit_16(1714);
emit_16(1650);
emit_16(1714);
emit_16(1649);
emit_16(1714);
emit_16(1650);
emit_16(1715);
emit_16(1651);
emit_16(1715);
emit_16(1650);
emit_16(1715);
emit_16(1651);
emit_16(1716);
emit_16(1652);
emit_16(1716);
emit_16(1651);
emit_16(1716);
emit_16(1652);
emit_16(1717);
emit_16(1653);
emit_16(1717);
emit_16(1652);
emit_16(1717);
emit_16(1653);
emit_16(1718);
emit_16(1654);
emit_16(1718);
emit_16(1653);
emit_16(1718);
emit_16(1654);
emit_16(1719);
emit_16(1655);
emit_16(1719);
emit_16(1654);
emit_16(1719);
emit_16(1655);
emit_16(1720);
emit_16(1656);
emit_16(1720);
emit_16(1655);
emit_16(1720);
emit_16(1656);
emit_16(1721);
emit_16(1657);
emit_16(1721);
emit_16(1656);
emit_16(1721);
emit_16(1657);
emit_16(1722);
emit_16(1658);
emit_16(1722);
emit_16(1657);
emit_16(1722);
emit_16(1658);
emit_16(1723);
emit_16(1659);
emit_16(1723);
emit_16(1658);
emit_16(1723);
emit_16(1659);
emit_16(1724);
emit_16(1660);
emit_16(1724);
emit_16(1659);
emit_16(1724);
emit_16(1660);
emit_16(1725);
emit_16(1661);
emit_16(1725);
emit_16(1660);
emit_16(1725);
emit_16(1661);
emit_16(1726);
emit_16(1662);
emit_16(1726);
emit_16(1661);
emit_16(1726);
emit_16(1662);
emit_16(1727);
emit_16(1663);
emit_16(1727);
emit_16(1662);
emit_16(1728);
emit_16(1664);
emit_16(1729);
emit_16(1665);
emit_16(1729);
emit_16(1664);
emit_16(1729);
emit_16(1665);
emit_16(1730);
emit_16(1666);
emit_16(1730);
emit_16(1665);
emit_16(1730);
emit_16(1666);
emit_16(1731);
emit_16(1667);
emit_16(1731);
emit_16(1666);
emit_16(1731);
emit_16(1667);
emit_16(1732);
emit_16(1668);
emit_16(1732);
emit_16(1667);
emit_16(1732);
emit_16(1668);
emit_16(1733);
emit_16(1669);
emit_16(1733);
emit_16(1668);
emit_16(1733);
emit_16(1669);
emit_16(1734);
emit_16(1670);
emit_16(1734);
emit_16(1669);
emit_16(1734);
emit_16(1670);
emit_16(1735);
emit_16(1671);
emit_16(1735);
emit_16(1670);
emit_16(1735);
emit_16(1671);
emit_16(1736);
emit_16(1672);
emit_16(1736);
emit_16(1671);
emit_16(1736);
emit_16(1672);
emit_16(1737);
emit_16(1673);
emit_16(1737);
emit_16(1672);
emit_16(1737);
emit_16(1673);
emit_16(1738);
emit_16(1674);
emit_16(1738);
emit_16(1673);
emit_16(1738);
emit_16(1674);
emit_16(1739);
emit_16(1675);
emit_16(1739);
emit_16(1674);
emit_16(1739);
emit_16(1675);
emit_16(1740);
emit_16(1676);
emit_16(1740);
emit_16(1675);
emit_16(1740);
emit_16(1676);
emit_16(1741);
emit_16(1677);
emit_16(1741);
emit_16(1676);
emit_16(1741);
emit_16(1677);
emit_16(1742);
emit_16(1678);
emit_16(1742);
emit_16(1677);
emit_16(1742);
emit_16(1678);
emit_16(1743);
emit_16(1679);
emit_16(1743);
emit_16(1678);
emit_16(1743);
emit_16(1679);
emit_16(1744);
emit_16(1680);
emit_16(1744);
emit_16(1679);
emit_16(1744);
emit_16(1680);
emit_16(1745);
emit_16(1681);
emit_16(1745);
emit_16(1680);
emit_16(1745);
emit_16(1681);
emit_16(1746);
emit_16(1682);
emit_16(1746);
emit_16(1681);
emit_16(1746);
emit_16(1682);
emit_16(1747);
emit_16(1683);
emit_16(1747);
emit_16(1682);
emit_16(1747);
emit_16(1683);
emit_16(1748);
emit_16(1684);
emit_16(1748);
emit_16(1683);
emit_16(1748);
emit_16(1684);
emit_16(1749);
emit_16(1685);
emit_16(1749);
emit_16(1684);
emit_16(1749);
emit_16(1685);
emit_16(1750);
emit_16(1686);
emit_16(1750);
emit_16(1685);
emit_16(1750);
emit_16(1686);
emit_16(1751);
emit_16(1687);
emit_16(1751);
emit_16(1686);
emit_16(1751);
emit_16(1687);
emit_16(1752);
emit_16(1688);
emit_16(1752);
emit_16(1687);
emit_16(1752);
emit_16(1688);
emit_16(1753);
emit_16(1689);
emit_16(1753);
emit_16(1688);
emit_16(1753);
emit_16(1689);
emit_16(1754);
emit_16(1690);
emit_16(1754);
emit_16(1689);
emit_16(1754);
emit_16(1690);
emit_16(1755);
emit_16(1691);
emit_16(1755);
emit_16(1690);
emit_16(1755);
emit_16(1691);
emit_16(1756);
emit_16(1692);
emit_16(1756);
emit_16(1691);
emit_16(1756);
emit_16(1692);
emit_16(1757);
emit_16(1693);
emit_16(1757);
emit_16(1692);
emit_16(1757);
emit_16(1693);
emit_16(1758);
emit_16(1694);
emit_16(1758);
emit_16(1693);
emit_16(1758);
emit_16(1694);
emit_16(1759);
emit_16(1695);
emit_16(1759);
emit_16(1694);
emit_16(1759);
emit_16(1695);
emit_16(1760);
emit_16(1696);
emit_16(1760);
emit_16(1695);
emit_16(1760);
emit_16(1696);
emit_16(1761);
emit_16(1697);
emit_16(1761);
emit_16(1696);
emit_16(1761);
emit_16(1697);
emit_16(1762);
emit_16(1698);
emit_16(1762);
emit_16(1697);
emit_16(1762);
emit_16(1698);
emit_16(1763);
emit_16(1699);
emit_16(1763);
emit_16(1698);
emit_16(1763);
emit_16(1699);
emit_16(1764);
emit_16(1700);
emit_16(1764);
emit_16(1699);
emit_16(1764);
emit_16(1700);
emit_16(1765);
emit_16(1701);
emit_16(1765);
emit_16(1700);
emit_16(1765);
emit_16(1701);
emit_16(1766);
emit_16(1702);
emit_16(1766);
emit_16(1701);
emit_16(1766);
emit_16(1702);
emit_16(1767);
emit_16(1703);
emit_16(1767);
emit_16(1702);
emit_16(1767);
emit_16(1703);
emit_16(1768);
emit_16(1704);
emit_16(1768);
emit_16(1703);
emit_16(1768);
emit_16(1704);
emit_16(1769);
emit_16(1705);
emit_16(1769);
emit_16(1704);
emit_16(1769);
emit_16(1705);
emit_16(1770);
emit_16(1706);
emit_16(1770);
emit_16(1705);
emit_16(1770);
emit_16(1706);
emit_16(1771);
emit_16(1707);
emit_16(1771);
emit_16(1706);
emit_16(1771);
emit_16(1707);
emit_16(1772);
emit_16(1708);
emit_16(1772);
emit_16(1707);
emit_16(1772);
emit_16(1708);
emit_16(1773);
emit_16(1709);
emit_16(1773);
emit_16(1708);
emit_16(1773);
emit_16(1709);
emit_16(1774);
emit_16(1710);
emit_16(1774);
emit_16(1709);
emit_16(1774);
emit_16(1710);
emit_16(1775);
emit_16(1711);
emit_16(1775);
emit_16(1710);
emit_16(1775);
emit_16(1711);
emit_16(1776);
emit_16(1712);
emit_16(1776);
emit_16(1711);
emit_16(1776);
emit_16(1712);
emit_16(1777);
emit_16(1713);
emit_16(1777);
emit_16(1712);
emit_16(1777);
emit_16(1713);
emit_16(1778);
emit_16(1714);
emit_16(1778);
emit_16(1713);
emit_16(1778);
emit_16(1714);
emit_16(1779);
emit_16(1715);
emit_16(1779);
emit_16(1714);
emit_16(1779);
emit_16(1715);
emit_16(1780);
emit_16(1716);
emit_16(1780);
emit_16(1715);
emit_16(1780);
emit_16(1716);
emit_16(1781);
emit_16(1717);
emit_16(1781);
emit_16(1716);
emit_16(1781);
emit_16(1717);
emit_16(1782);
emit_16(1718);
emit_16(1782);
emit_16(1717);
emit_16(1782);
emit_16(1718);
emit_16(1783);
emit_16(1719);
emit_16(1783);
emit_16(1718);
emit_16(1783);
emit_16(1719);
emit_16(1784);
emit_16(1720);
emit_16(1784);
emit_16(1719);
emit_16(1784);
emit_16(1720);
emit_16(1785);
emit_16(1721);
emit_16(1785);
emit_16(1720);
emit_16(1785);
emit_16(1721);
emit_16(1786);
emit_16(1722);
emit_16(1786);
emit_16(1721);
emit_16(1786);
emit_16(1722);
emit_16(1787);
emit_16(1723);
emit_16(1787);
emit_16(1722);
emit_16(1787);
emit_16(1723);
emit_16(1788);
emit_16(1724);
emit_16(1788);
emit_16(1723);
emit_16(1788);
emit_16(1724);
emit_16(1789);
emit_16(1725);
emit_16(1789);
emit_16(1724);
emit_16(1789);
emit_16(1725);
emit_16(1790);
emit_16(1726);
emit_16(1790);
emit_16(1725);
emit_16(1790);
emit_16(1726);
emit_16(1791);
emit_16(1727);
emit_16(1791);
emit_16(1726);
emit_16(1792);
emit_16(1728);
emit_16(1793);
emit_16(1729);
emit_16(1793);
emit_16(1728);
emit_16(1793);
emit_16(1729);
emit_16(1794);
emit_16(1730);
emit_16(1794);
emit_16(1729);
emit_16(1794);
emit_16(1730);
emit_16(1795);
emit_16(1731);
emit_16(1795);
emit_16(1730);
emit_16(1795);
emit_16(1731);
emit_16(1796);
emit_16(1732);
emit_16(1796);
emit_16(1731);
emit_16(1796);
emit_16(1732);
emit_16(1797);
emit_16(1733);
emit_16(1797);
emit_16(1732);
emit_16(1797);
emit_16(1733);
emit_16(1798);
emit_16(1734);
emit_16(1798);
emit_16(1733);
emit_16(1798);
emit_16(1734);
emit_16(1799);
emit_16(1735);
emit_16(1799);
emit_16(1734);
emit_16(1799);
emit_16(1735);
emit_16(1800);
emit_16(1736);
emit_16(1800);
emit_16(1735);
emit_16(1800);
emit_16(1736);
emit_16(1801);
emit_16(1737);
emit_16(1801);
emit_16(1736);
emit_16(1801);
emit_16(1737);
emit_16(1802);
emit_16(1738);
emit_16(1802);
emit_16(1737);
emit_16(1802);
emit_16(1738);
emit_16(1803);
emit_16(1739);
emit_16(1803);
emit_16(1738);
emit_16(1803);
emit_16(1739);
emit_16(1804);
emit_16(1740);
emit_16(1804);
emit_16(1739);
emit_16(1804);
emit_16(1740);
emit_16(1805);
emit_16(1741);
emit_16(1805);
emit_16(1740);
emit_16(1805);
emit_16(1741);
emit_16(1806);
emit_16(1742);
emit_16(1806);
emit_16(1741);
emit_16(1806);
emit_16(1742);
emit_16(1807);
emit_16(1743);
emit_16(1807);
emit_16(1742);
emit_16(1807);
emit_16(1743);
emit_16(1808);
emit_16(1744);
emit_16(1808);
emit_16(1743);
emit_16(1808);
emit_16(1744);
emit_16(1809);
emit_16(1745);
emit_16(1809);
emit_16(1744);
emit_16(1809);
emit_16(1745);
emit_16(1810);
emit_16(1746);
emit_16(1810);
emit_16(1745);
emit_16(1810);
emit_16(1746);
emit_16(1811);
emit_16(1747);
emit_16(1811);
emit_16(1746);
emit_16(1811);
emit_16(1747);
emit_16(1812);
emit_16(1748);
emit_16(1812);
emit_16(1747);
emit_16(1812);
emit_16(1748);
emit_16(1813);
emit_16(1749);
emit_16(1813);
emit_16(1748);
emit_16(1813);
emit_16(1749);
emit_16(1814);
emit_16(1750);
emit_16(1814);
emit_16(1749);
emit_16(1814);
emit_16(1750);
emit_16(1815);
emit_16(1751);
emit_16(1815);
emit_16(1750);
emit_16(1815);
emit_16(1751);
emit_16(1816);
emit_16(1752);
emit_16(1816);
emit_16(1751);
emit_16(1816);
emit_16(1752);
emit_16(1817);
emit_16(1753);
emit_16(1817);
emit_16(1752);
emit_16(1817);
emit_16(1753);
emit_16(1818);
emit_16(1754);
emit_16(1818);
emit_16(1753);
emit_16(1818);
emit_16(1754);
emit_16(1819);
emit_16(1755);
emit_16(1819);
emit_16(1754);
emit_16(1819);
emit_16(1755);
emit_16(1820);
emit_16(1756);
emit_16(1820);
emit_16(1755);
emit_16(1820);
emit_16(1756);
emit_16(1821);
emit_16(1757);
emit_16(1821);
emit_16(1756);
emit_16(1821);
emit_16(1757);
emit_16(1822);
emit_16(1758);
emit_16(1822);
emit_16(1757);
emit_16(1822);
emit_16(1758);
emit_16(1823);
emit_16(1759);
emit_16(1823);
emit_16(1758);
emit_16(1823);
emit_16(1759);
emit_16(1824);
emit_16(1760);
emit_16(1824);
emit_16(1759);
emit_16(1824);
emit_16(1760);
emit_16(1825);
emit_16(1761);
emit_16(1825);
emit_16(1760);
emit_16(1825);
emit_16(1761);
emit_16(1826);
emit_16(1762);
emit_16(1826);
emit_16(1761);
emit_16(1826);
emit_16(1762);
emit_16(1827);
emit_16(1763);
emit_16(1827);
emit_16(1762);
emit_16(1827);
emit_16(1763);
emit_16(1828);
emit_16(1764);
emit_16(1828);
emit_16(1763);
emit_16(1828);
emit_16(1764);
emit_16(1829);
emit_16(1765);
emit_16(1829);
emit_16(1764);
emit_16(1829);
emit_16(1765);
emit_16(1830);
emit_16(1766);
emit_16(1830);
emit_16(1765);
emit_16(1830);
emit_16(1766);
emit_16(1831);
emit_16(1767);
emit_16(1831);
emit_16(1766);
emit_16(1831);
emit_16(1767);
emit_16(1832);
emit_16(1768);
emit_16(1832);
emit_16(1767);
emit_16(1832);
emit_16(1768);
emit_16(1833);
emit_16(1769);
emit_16(1833);
emit_16(1768);
emit_16(1833);
emit_16(1769);
emit_16(1834);
emit_16(1770);
emit_16(1834);
emit_16(1769);
emit_16(1834);
emit_16(1770);
emit_16(1835);
emit_16(1771);
emit_16(1835);
emit_16(1770);
emit_16(1835);
emit_16(1771);
emit_16(1836);
emit_16(1772);
emit_16(1836);
emit_16(1771);
emit_16(1836);
emit_16(1772);
emit_16(1837);
emit_16(1773);
emit_16(1837);
emit_16(1772);
emit_16(1837);
emit_16(1773);
emit_16(1838);
emit_16(1774);
emit_16(1838);
emit_16(1773);
emit_16(1838);
emit_16(1774);
emit_16(1839);
emit_16(1775);
emit_16(1839);
emit_16(1774);
emit_16(1839);
emit_16(1775);
emit_16(1840);
emit_16(1776);
emit_16(1840);
emit_16(1775);
emit_16(1840);
emit_16(1776);
emit_16(1841);
emit_16(1777);
emit_16(1841);
emit_16(1776);
emit_16(1841);
emit_16(1777);
emit_16(1842);
emit_16(1778);
emit_16(1842);
emit_16(1777);
emit_16(1842);
emit_16(1778);
emit_16(1843);
emit_16(1779);
emit_16(1843);
emit_16(1778);
emit_16(1843);
emit_16(1779);
emit_16(1844);
emit_16(1780);
emit_16(1844);
emit_16(1779);
emit_16(1844);
emit_16(1780);
emit_16(1845);
emit_16(1781);
emit_16(1845);
emit_16(1780);
emit_16(1845);
emit_16(1781);
emit_16(1846);
emit_16(1782);
emit_16(1846);
emit_16(1781);
emit_16(1846);
emit_16(1782);
emit_16(1847);
emit_16(1783);
emit_16(1847);
emit_16(1782);
emit_16(1847);
emit_16(1783);
emit_16(1848);
emit_16(1784);
emit_16(1848);
emit_16(1783);
emit_16(1848);
emit_16(1784);
emit_16(1849);
emit_16(1785);
emit_16(1849);
emit_16(1784);
emit_16(1849);
emit_16(1785);
emit_16(1850);
emit_16(1786);
emit_16(1850);
emit_16(1785);
emit_16(1850);
emit_16(1786);
emit_16(1851);
emit_16(1787);
emit_16(1851);
emit_16(1786);
emit_16(1851);
emit_16(1787);
emit_16(1852);
emit_16(1788);
emit_16(1852);
emit_16(1787);
emit_16(1852);
emit_16(1788);
emit_16(1853);
emit_16(1789);
emit_16(1853);
emit_16(1788);
emit_16(1853);
emit_16(1789);
emit_16(1854);
emit_16(1790);
emit_16(1854);
emit_16(1789);
emit_16(1854);
emit_16(1790);
emit_16(1855);
emit_16(1791);
emit_16(1855);
emit_16(1790);
emit_16(1856);
emit_16(1792);
emit_16(1857);
emit_16(1793);
emit_16(1857);
emit_16(1792);
emit_16(1857);
emit_16(1793);
emit_16(1858);
emit_16(1794);
emit_16(1858);
emit_16(1793);
emit_16(1858);
emit_16(1794);
emit_16(1859);
emit_16(1795);
emit_16(1859);
emit_16(1794);
emit_16(1859);
emit_16(1795);
emit_16(1860);
emit_16(1796);
emit_16(1860);
emit_16(1795);
emit_16(1860);
emit_16(1796);
emit_16(1861);
emit_16(1797);
emit_16(1861);
emit_16(1796);
emit_16(1861);
emit_16(1797);
emit_16(1862);
emit_16(1798);
emit_16(1862);
emit_16(1797);
emit_16(1862);
emit_16(1798);
emit_16(1863);
emit_16(1799);
emit_16(1863);
emit_16(1798);
emit_16(1863);
emit_16(1799);
emit_16(1864);
emit_16(1800);
emit_16(1864);
emit_16(1799);
emit_16(1864);
emit_16(1800);
emit_16(1865);
emit_16(1801);
emit_16(1865);
emit_16(1800);
emit_16(1865);
emit_16(1801);
emit_16(1866);
emit_16(1802);
emit_16(1866);
emit_16(1801);
emit_16(1866);
emit_16(1802);
emit_16(1867);
emit_16(1803);
emit_16(1867);
emit_16(1802);
emit_16(1867);
emit_16(1803);
emit_16(1868);
emit_16(1804);
emit_16(1868);
emit_16(1803);
emit_16(1868);
emit_16(1804);
emit_16(1869);
emit_16(1805);
emit_16(1869);
emit_16(1804);
emit_16(1869);
emit_16(1805);
emit_16(1870);
emit_16(1806);
emit_16(1870);
emit_16(1805);
emit_16(1870);
emit_16(1806);
emit_16(1871);
emit_16(1807);
emit_16(1871);
emit_16(1806);
emit_16(1871);
emit_16(1807);
emit_16(1872);
emit_16(1808);
emit_16(1872);
emit_16(1807);
emit_16(1872);
emit_16(1808);
emit_16(1873);
emit_16(1809);
emit_16(1873);
emit_16(1808);
emit_16(1873);
emit_16(1809);
emit_16(1874);
emit_16(1810);
emit_16(1874);
emit_16(1809);
emit_16(1874);
emit_16(1810);
emit_16(1875);
emit_16(1811);
emit_16(1875);
emit_16(1810);
emit_16(1875);
emit_16(1811);
emit_16(1876);
emit_16(1812);
emit_16(1876);
emit_16(1811);
emit_16(1876);
emit_16(1812);
emit_16(1877);
emit_16(1813);
emit_16(1877);
emit_16(1812);
emit_16(1877);
emit_16(1813);
emit_16(1878);
emit_16(1814);
emit_16(1878);
emit_16(1813);
emit_16(1878);
emit_16(1814);
emit_16(1879);
emit_16(1815);
emit_16(1879);
emit_16(1814);
emit_16(1879);
emit_16(1815);
emit_16(1880);
emit_16(1816);
emit_16(1880);
emit_16(1815);
emit_16(1880);
emit_16(1816);
emit_16(1881);
emit_16(1817);
emit_16(1881);
emit_16(1816);
emit_16(1881);
emit_16(1817);
emit_16(1882);
emit_16(1818);
emit_16(1882);
emit_16(1817);
emit_16(1882);
emit_16(1818);
emit_16(1883);
emit_16(1819);
emit_16(1883);
emit_16(1818);
emit_16(1883);
emit_16(1819);
emit_16(1884);
emit_16(1820);
emit_16(1884);
emit_16(1819);
emit_16(1884);
emit_16(1820);
emit_16(1885);
emit_16(1821);
emit_16(1885);
emit_16(1820);
emit_16(1885);
emit_16(1821);
emit_16(1886);
emit_16(1822);
emit_16(1886);
emit_16(1821);
emit_16(1886);
emit_16(1822);
emit_16(1887);
emit_16(1823);
emit_16(1887);
emit_16(1822);
emit_16(1887);
emit_16(1823);
emit_16(1888);
emit_16(1824);
emit_16(1888);
emit_16(1823);
emit_16(1888);
emit_16(1824);
emit_16(1889);
emit_16(1825);
emit_16(1889);
emit_16(1824);
emit_16(1889);
emit_16(1825);
emit_16(1890);
emit_16(1826);
emit_16(1890);
emit_16(1825);
emit_16(1890);
emit_16(1826);
emit_16(1891);
emit_16(1827);
emit_16(1891);
emit_16(1826);
emit_16(1891);
emit_16(1827);
emit_16(1892);
emit_16(1828);
emit_16(1892);
emit_16(1827);
emit_16(1892);
emit_16(1828);
emit_16(1893);
emit_16(1829);
emit_16(1893);
emit_16(1828);
emit_16(1893);
emit_16(1829);
emit_16(1894);
emit_16(1830);
emit_16(1894);
emit_16(1829);
emit_16(1894);
emit_16(1830);
emit_16(1895);
emit_16(1831);
emit_16(1895);
emit_16(1830);
emit_16(1895);
emit_16(1831);
emit_16(1896);
emit_16(1832);
emit_16(1896);
emit_16(1831);
emit_16(1896);
emit_16(1832);
emit_16(1897);
emit_16(1833);
emit_16(1897);
emit_16(1832);
emit_16(1897);
emit_16(1833);
emit_16(1898);
emit_16(1834);
emit_16(1898);
emit_16(1833);
emit_16(1898);
emit_16(1834);
emit_16(1899);
emit_16(1835);
emit_16(1899);
emit_16(1834);
emit_16(1899);
emit_16(1835);
emit_16(1900);
emit_16(1836);
emit_16(1900);
emit_16(1835);
emit_16(1900);
emit_16(1836);
emit_16(1901);
emit_16(1837);
emit_16(1901);
emit_16(1836);
emit_16(1901);
emit_16(1837);
emit_16(1902);
emit_16(1838);
emit_16(1902);
emit_16(1837);
emit_16(1902);
emit_16(1838);
emit_16(1903);
emit_16(1839);
emit_16(1903);
emit_16(1838);
emit_16(1903);
emit_16(1839);
emit_16(1904);
emit_16(1840);
emit_16(1904);
emit_16(1839);
emit_16(1904);
emit_16(1840);
emit_16(1905);
emit_16(1841);
emit_16(1905);
emit_16(1840);
emit_16(1905);
emit_16(1841);
emit_16(1906);
emit_16(1842);
emit_16(1906);
emit_16(1841);
emit_16(1906);
emit_16(1842);
emit_16(1907);
emit_16(1843);
emit_16(1907);
emit_16(1842);
emit_16(1907);
emit_16(1843);
emit_16(1908);
emit_16(1844);
emit_16(1908);
emit_16(1843);
emit_16(1908);
emit_16(1844);
emit_16(1909);
emit_16(1845);
emit_16(1909);
emit_16(1844);
emit_16(1909);
emit_16(1845);
emit_16(1910);
emit_16(1846);
emit_16(1910);
emit_16(1845);
emit_16(1910);
emit_16(1846);
emit_16(1911);
emit_16(1847);
emit_16(1911);
emit_16(1846);
emit_16(1911);
emit_16(1847);
emit_16(1912);
emit_16(1848);
emit_16(1912);
emit_16(1847);
emit_16(1912);
emit_16(1848);
emit_16(1913);
emit_16(1849);
emit_16(1913);
emit_16(1848);
emit_16(1913);
emit_16(1849);
emit_16(1914);
emit_16(1850);
emit_16(1914);
emit_16(1849);
emit_16(1914);
emit_16(1850);
emit_16(1915);
emit_16(1851);
emit_16(1915);
emit_16(1850);
emit_16(1915);
emit_16(1851);
emit_16(1916);
emit_16(1852);
emit_16(1916);
emit_16(1851);
emit_16(1916);
emit_16(1852);
emit_16(1917);
emit_16(1853);
emit_16(1917);
emit_16(1852);
emit_16(1917);
emit_16(1853);
emit_16(1918);
emit_16(1854);
emit_16(1918);
emit_16(1853);
emit_16(1918);
emit_16(1854);
emit_16(1919);
emit_16(1855);
emit_16(1919);
emit_16(1854);
emit_16(1920);
emit_16(1856);
emit_16(1921);
emit_16(1857);
emit_16(1921);
emit_16(1856);
emit_16(1921);
emit_16(1857);
emit_16(1922);
emit_16(1858);
emit_16(1922);
emit_16(1857);
emit_16(1922);
emit_16(1858);
emit_16(1923);
emit_16(1859);
emit_16(1923);
emit_16(1858);
emit_16(1923);
emit_16(1859);
emit_16(1924);
emit_16(1860);
emit_16(1924);
emit_16(1859);
emit_16(1924);
emit_16(1860);
emit_16(1925);
emit_16(1861);
emit_16(1925);
emit_16(1860);
emit_16(1925);
emit_16(1861);
emit_16(1926);
emit_16(1862);
emit_16(1926);
emit_16(1861);
emit_16(1926);
emit_16(1862);
emit_16(1927);
emit_16(1863);
emit_16(1927);
emit_16(1862);
emit_16(1927);
emit_16(1863);
emit_16(1928);
emit_16(1864);
emit_16(1928);
emit_16(1863);
emit_16(1928);
emit_16(1864);
emit_16(1929);
emit_16(1865);
emit_16(1929);
emit_16(1864);
emit_16(1929);
emit_16(1865);
emit_16(1930);
emit_16(1866);
emit_16(1930);
emit_16(1865);
emit_16(1930);
emit_16(1866);
emit_16(1931);
emit_16(1867);
emit_16(1931);
emit_16(1866);
emit_16(1931);
emit_16(1867);
emit_16(1932);
emit_16(1868);
emit_16(1932);
emit_16(1867);
emit_16(1932);
emit_16(1868);
emit_16(1933);
emit_16(1869);
emit_16(1933);
emit_16(1868);
emit_16(1933);
emit_16(1869);
emit_16(1934);
emit_16(1870);
emit_16(1934);
emit_16(1869);
emit_16(1934);
emit_16(1870);
emit_16(1935);
emit_16(1871);
emit_16(1935);
emit_16(1870);
emit_16(1935);
emit_16(1871);
emit_16(1936);
emit_16(1872);
emit_16(1936);
emit_16(1871);
emit_16(1936);
emit_16(1872);
emit_16(1937);
emit_16(1873);
emit_16(1937);
emit_16(1872);
emit_16(1937);
emit_16(1873);
emit_16(1938);
emit_16(1874);
emit_16(1938);
emit_16(1873);
emit_16(1938);
emit_16(1874);
emit_16(1939);
emit_16(1875);
emit_16(1939);
emit_16(1874);
emit_16(1939);
emit_16(1875);
emit_16(1940);
emit_16(1876);
emit_16(1940);
emit_16(1875);
emit_16(1940);
emit_16(1876);
emit_16(1941);
emit_16(1877);
emit_16(1941);
emit_16(1876);
emit_16(1941);
emit_16(1877);
emit_16(1942);
emit_16(1878);
emit_16(1942);
emit_16(1877);
emit_16(1942);
emit_16(1878);
emit_16(1943);
emit_16(1879);
emit_16(1943);
emit_16(1878);
emit_16(1943);
emit_16(1879);
emit_16(1944);
emit_16(1880);
emit_16(1944);
emit_16(1879);
emit_16(1944);
emit_16(1880);
emit_16(1945);
emit_16(1881);
emit_16(1945);
emit_16(1880);
emit_16(1945);
emit_16(1881);
emit_16(1946);
emit_16(1882);
emit_16(1946);
emit_16(1881);
emit_16(1946);
emit_16(1882);
emit_16(1947);
emit_16(1883);
emit_16(1947);
emit_16(1882);
emit_16(1947);
emit_16(1883);
emit_16(1948);
emit_16(1884);
emit_16(1948);
emit_16(1883);
emit_16(1948);
emit_16(1884);
emit_16(1949);
emit_16(1885);
emit_16(1949);
emit_16(1884);
emit_16(1949);
emit_16(1885);
emit_16(1950);
emit_16(1886);
emit_16(1950);
emit_16(1885);
emit_16(1950);
emit_16(1886);
emit_16(1951);
emit_16(1887);
emit_16(1951);
emit_16(1886);
emit_16(1951);
emit_16(1887);
emit_16(1952);
emit_16(1888);
emit_16(1952);
emit_16(1887);
emit_16(1952);
emit_16(1888);
emit_16(1953);
emit_16(1889);
emit_16(1953);
emit_16(1888);
emit_16(1953);
emit_16(1889);
emit_16(1954);
emit_16(1890);
emit_16(1954);
emit_16(1889);
emit_16(1954);
emit_16(1890);
emit_16(1955);
emit_16(1891);
emit_16(1955);
emit_16(1890);
emit_16(1955);
emit_16(1891);
emit_16(1956);
emit_16(1892);
emit_16(1956);
emit_16(1891);
emit_16(1956);
emit_16(1892);
emit_16(1957);
emit_16(1893);
emit_16(1957);
emit_16(1892);
emit_16(1957);
emit_16(1893);
emit_16(1958);
emit_16(1894);
emit_16(1958);
emit_16(1893);
emit_16(1958);
emit_16(1894);
emit_16(1959);
emit_16(1895);
emit_16(1959);
emit_16(1894);
emit_16(1959);
emit_16(1895);
emit_16(1960);
emit_16(1896);
emit_16(1960);
emit_16(1895);
emit_16(1960);
emit_16(1896);
emit_16(1961);
emit_16(1897);
emit_16(1961);
emit_16(1896);
emit_16(1961);
emit_16(1897);
emit_16(1962);
emit_16(1898);
emit_16(1962);
emit_16(1897);
emit_16(1962);
emit_16(1898);
emit_16(1963);
emit_16(1899);
emit_16(1963);
emit_16(1898);
emit_16(1963);
emit_16(1899);
emit_16(1964);
emit_16(1900);
emit_16(1964);
emit_16(1899);
emit_16(1964);
emit_16(1900);
emit_16(1965);
emit_16(1901);
emit_16(1965);
emit_16(1900);
emit_16(1965);
emit_16(1901);
emit_16(1966);
emit_16(1902);
emit_16(1966);
emit_16(1901);
emit_16(1966);
emit_16(1902);
emit_16(1967);
emit_16(1903);
emit_16(1967);
emit_16(1902);
emit_16(1967);
emit_16(1903);
emit_16(1968);
emit_16(1904);
emit_16(1968);
emit_16(1903);
emit_16(1968);
emit_16(1904);
emit_16(1969);
emit_16(1905);
emit_16(1969);
emit_16(1904);
emit_16(1969);
emit_16(1905);
emit_16(1970);
emit_16(1906);
emit_16(1970);
emit_16(1905);
emit_16(1970);
emit_16(1906);
emit_16(1971);
emit_16(1907);
emit_16(1971);
emit_16(1906);
emit_16(1971);
emit_16(1907);
emit_16(1972);
emit_16(1908);
emit_16(1972);
emit_16(1907);
emit_16(1972);
emit_16(1908);
emit_16(1973);
emit_16(1909);
emit_16(1973);
emit_16(1908);
emit_16(1973);
emit_16(1909);
emit_16(1974);
emit_16(1910);
emit_16(1974);
emit_16(1909);
emit_16(1974);
emit_16(1910);
emit_16(1975);
emit_16(1911);
emit_16(1975);
emit_16(1910);
emit_16(1975);
emit_16(1911);
emit_16(1976);
emit_16(1912);
emit_16(1976);
emit_16(1911);
emit_16(1976);
emit_16(1912);
emit_16(1977);
emit_16(1913);
emit_16(1977);
emit_16(1912);
emit_16(1977);
emit_16(1913);
emit_16(1978);
emit_16(1914);
emit_16(1978);
emit_16(1913);
emit_16(1978);
emit_16(1914);
emit_16(1979);
emit_16(1915);
emit_16(1979);
emit_16(1914);
emit_16(1979);
emit_16(1915);
emit_16(1980);
emit_16(1916);
emit_16(1980);
emit_16(1915);
emit_16(1980);
emit_16(1916);
emit_16(1981);
emit_16(1917);
emit_16(1981);
emit_16(1916);
emit_16(1981);
emit_16(1917);
emit_16(1982);
emit_16(1918);
emit_16(1982);
emit_16(1917);
emit_16(1982);
emit_16(1918);
emit_16(1983);
emit_16(1919);
emit_16(1983);
emit_16(1918);
emit_16(1984);
emit_16(1920);
emit_16(1985);
emit_16(1921);
emit_16(1985);
emit_16(1920);
emit_16(1985);
emit_16(1921);
emit_16(1986);
emit_16(1922);
emit_16(1986);
emit_16(1921);
emit_16(1986);
emit_16(1922);
emit_16(1987);
emit_16(1923);
emit_16(1987);
emit_16(1922);
emit_16(1987);
emit_16(1923);
emit_16(1988);
emit_16(1924);
emit_16(1988);
emit_16(1923);
emit_16(1988);
emit_16(1924);
emit_16(1989);
emit_16(1925);
emit_16(1989);
emit_16(1924);
emit_16(1989);
emit_16(1925);
emit_16(1990);
emit_16(1926);
emit_16(1990);
emit_16(1925);
emit_16(1990);
emit_16(1926);
emit_16(1991);
emit_16(1927);
emit_16(1991);
emit_16(1926);
emit_16(1991);
emit_16(1927);
emit_16(1992);
emit_16(1928);
emit_16(1992);
emit_16(1927);
emit_16(1992);
emit_16(1928);
emit_16(1993);
emit_16(1929);
emit_16(1993);
emit_16(1928);
emit_16(1993);
emit_16(1929);
emit_16(1994);
emit_16(1930);
emit_16(1994);
emit_16(1929);
emit_16(1994);
emit_16(1930);
emit_16(1995);
emit_16(1931);
emit_16(1995);
emit_16(1930);
emit_16(1995);
emit_16(1931);
emit_16(1996);
emit_16(1932);
emit_16(1996);
emit_16(1931);
emit_16(1996);
emit_16(1932);
emit_16(1997);
emit_16(1933);
emit_16(1997);
emit_16(1932);
emit_16(1997);
emit_16(1933);
emit_16(1998);
emit_16(1934);
emit_16(1998);
emit_16(1933);
emit_16(1998);
emit_16(1934);
emit_16(1999);
emit_16(1935);
emit_16(1999);
emit_16(1934);
emit_16(1999);
emit_16(1935);
emit_16(2000);
emit_16(1936);
emit_16(2000);
emit_16(1935);
emit_16(2000);
emit_16(1936);
emit_16(2001);
emit_16(1937);
emit_16(2001);
emit_16(1936);
emit_16(2001);
emit_16(1937);
emit_16(2002);
emit_16(1938);
emit_16(2002);
emit_16(1937);
emit_16(2002);
emit_16(1938);
emit_16(2003);
emit_16(1939);
emit_16(2003);
emit_16(1938);
emit_16(2003);
emit_16(1939);
emit_16(2004);
emit_16(1940);
emit_16(2004);
emit_16(1939);
emit_16(2004);
emit_16(1940);
emit_16(2005);
emit_16(1941);
emit_16(2005);
emit_16(1940);
emit_16(2005);
emit_16(1941);
emit_16(2006);
emit_16(1942);
emit_16(2006);
emit_16(1941);
emit_16(2006);
emit_16(1942);
emit_16(2007);
emit_16(1943);
emit_16(2007);
emit_16(1942);
emit_16(2007);
emit_16(1943);
emit_16(2008);
emit_16(1944);
emit_16(2008);
emit_16(1943);
emit_16(2008);
emit_16(1944);
emit_16(2009);
emit_16(1945);
emit_16(2009);
emit_16(1944);
emit_16(2009);
emit_16(1945);
emit_16(2010);
emit_16(1946);
emit_16(2010);
emit_16(1945);
emit_16(2010);
emit_16(1946);
emit_16(2011);
emit_16(1947);
emit_16(2011);
emit_16(1946);
emit_16(2011);
emit_16(1947);
emit_16(2012);
emit_16(1948);
emit_16(2012);
emit_16(1947);
emit_16(2012);
emit_16(1948);
emit_16(2013);
emit_16(1949);
emit_16(2013);
emit_16(1948);
emit_16(2013);
emit_16(1949);
emit_16(2014);
emit_16(1950);
emit_16(2014);
emit_16(1949);
emit_16(2014);
emit_16(1950);
emit_16(2015);
emit_16(1951);
emit_16(2015);
emit_16(1950);
emit_16(2015);
emit_16(1951);
emit_16(2016);
emit_16(1952);
emit_16(2016);
emit_16(1951);
emit_16(2016);
emit_16(1952);
emit_16(2017);
emit_16(1953);
emit_16(2017);
emit_16(1952);
emit_16(2017);
emit_16(1953);
emit_16(2018);
emit_16(1954);
emit_16(2018);
emit_16(1953);
emit_16(2018);
emit_16(1954);
emit_16(2019);
emit_16(1955);
emit_16(2019);
emit_16(1954);
emit_16(2019);
emit_16(1955);
emit_16(2020);
emit_16(1956);
emit_16(2020);
emit_16(1955);
emit_16(2020);
emit_16(1956);
emit_16(2021);
emit_16(1957);
emit_16(2021);
emit_16(1956);
emit_16(2021);
emit_16(1957);
emit_16(2022);
emit_16(1958);
emit_16(2022);
emit_16(1957);
emit_16(2022);
emit_16(1958);
emit_16(2023);
emit_16(1959);
emit_16(2023);
emit_16(1958);
emit_16(2023);
emit_16(1959);
emit_16(2024);
emit_16(1960);
emit_16(2024);
emit_16(1959);
emit_16(2024);
emit_16(1960);
emit_16(2025);
emit_16(1961);
emit_16(2025);
emit_16(1960);
emit_16(2025);
emit_16(1961);
emit_16(2026);
emit_16(1962);
emit_16(2026);
emit_16(1961);
emit_16(2026);
emit_16(1962);
emit_16(2027);
emit_16(1963);
emit_16(2027);
emit_16(1962);
emit_16(2027);
emit_16(1963);
emit_16(2028);
emit_16(1964);
emit_16(2028);
emit_16(1963);
emit_16(2028);
emit_16(1964);
emit_16(2029);
emit_16(1965);
emit_16(2029);
emit_16(1964);
emit_16(2029);
emit_16(1965);
emit_16(2030);
emit_16(1966);
emit_16(2030);
emit_16(1965);
emit_16(2030);
emit_16(1966);
emit_16(2031);
emit_16(1967);
emit_16(2031);
emit_16(1966);
emit_16(2031);
emit_16(1967);
emit_16(2032);
emit_16(1968);
emit_16(2032);
emit_16(1967);
emit_16(2032);
emit_16(1968);
emit_16(2033);
emit_16(1969);
emit_16(2033);
emit_16(1968);
emit_16(2033);
emit_16(1969);
emit_16(2034);
emit_16(1970);
emit_16(2034);
emit_16(1969);
emit_16(2034);
emit_16(1970);
emit_16(2035);
emit_16(1971);
emit_16(2035);
emit_16(1970);
emit_16(2035);
emit_16(1971);
emit_16(2036);
emit_16(1972);
emit_16(2036);
emit_16(1971);
emit_16(2036);
emit_16(1972);
emit_16(2037);
emit_16(1973);
emit_16(2037);
emit_16(1972);
emit_16(2037);
emit_16(1973);
emit_16(2038);
emit_16(1974);
emit_16(2038);
emit_16(1973);
emit_16(2038);
emit_16(1974);
emit_16(2039);
emit_16(1975);
emit_16(2039);
emit_16(1974);
emit_16(2039);
emit_16(1975);
emit_16(2040);
emit_16(1976);
emit_16(2040);
emit_16(1975);
emit_16(2040);
emit_16(1976);
emit_16(2041);
emit_16(1977);
emit_16(2041);
emit_16(1976);
emit_16(2041);
emit_16(1977);
emit_16(2042);
emit_16(1978);
emit_16(2042);
emit_16(1977);
emit_16(2042);
emit_16(1978);
emit_16(2043);
emit_16(1979);
emit_16(2043);
emit_16(1978);
emit_16(2043);
emit_16(1979);
emit_16(2044);
emit_16(1980);
emit_16(2044);
emit_16(1979);
emit_16(2044);
emit_16(1980);
emit_16(2045);
emit_16(1981);
emit_16(2045);
emit_16(1980);
emit_16(2045);
emit_16(1981);
emit_16(2046);
emit_16(1982);
emit_16(2046);
emit_16(1981);
emit_16(2046);
emit_16(1982);
emit_16(2047);
emit_16(1983);
emit_16(2047);
emit_16(1982);
emit_16(2048);
emit_16(1984);
emit_16(2049);
emit_16(1985);
emit_16(2049);
emit_16(1984);
emit_16(2049);
emit_16(1985);
emit_16(2050);
emit_16(1986);
emit_16(2050);
emit_16(1985);
emit_16(2050);
emit_16(1986);
emit_16(2051);
emit_16(1987);
emit_16(2051);
emit_16(1986);
emit_16(2051);
emit_16(1987);
emit_16(2052);
emit_16(1988);
emit_16(2052);
emit_16(1987);
emit_16(2052);
emit_16(1988);
emit_16(2053);
emit_16(1989);
emit_16(2053);
emit_16(1988);
emit_16(2053);
emit_16(1989);
emit_16(2054);
emit_16(1990);
emit_16(2054);
emit_16(1989);
emit_16(2054);
emit_16(1990);
emit_16(2055);
emit_16(1991);
emit_16(2055);
emit_16(1990);
emit_16(2055);
emit_16(1991);
emit_16(2056);
emit_16(1992);
emit_16(2056);
emit_16(1991);
emit_16(2056);
emit_16(1992);
emit_16(2057);
emit_16(1993);
emit_16(2057);
emit_16(1992);
emit_16(2057);
emit_16(1993);
emit_16(2058);
emit_16(1994);
emit_16(2058);
emit_16(1993);
emit_16(2058);
emit_16(1994);
emit_16(2059);
emit_16(1995);
emit_16(2059);
emit_16(1994);
emit_16(2059);
emit_16(1995);
emit_16(2060);
emit_16(1996);
emit_16(2060);
emit_16(1995);
emit_16(2060);
emit_16(1996);
emit_16(2061);
emit_16(1997);
emit_16(2061);
emit_16(1996);
emit_16(2061);
emit_16(1997);
emit_16(2062);
emit_16(1998);
emit_16(2062);
emit_16(1997);
emit_16(2062);
emit_16(1998);
emit_16(2063);
emit_16(1999);
emit_16(2063);
emit_16(1998);
emit_16(2063);
emit_16(1999);
emit_16(2064);
emit_16(2000);
emit_16(2064);
emit_16(1999);
emit_16(2064);
emit_16(2000);
emit_16(2065);
emit_16(2001);
emit_16(2065);
emit_16(2000);
emit_16(2065);
emit_16(2001);
emit_16(2066);
emit_16(2002);
emit_16(2066);
emit_16(2001);
emit_16(2066);
emit_16(2002);
emit_16(2067);
emit_16(2003);
emit_16(2067);
emit_16(2002);
emit_16(2067);
emit_16(2003);
emit_16(2068);
emit_16(2004);
emit_16(2068);
emit_16(2003);
emit_16(2068);
emit_16(2004);
emit_16(2069);
emit_16(2005);
emit_16(2069);
emit_16(2004);
emit_16(2069);
emit_16(2005);
emit_16(2070);
emit_16(2006);
emit_16(2070);
emit_16(2005);
emit_16(2070);
emit_16(2006);
emit_16(2071);
emit_16(2007);
emit_16(2071);
emit_16(2006);
emit_16(2071);
emit_16(2007);
emit_16(2072);
emit_16(2008);
emit_16(2072);
emit_16(2007);
emit_16(2072);
emit_16(2008);
emit_16(2073);
emit_16(2009);
emit_16(2073);
emit_16(2008);
emit_16(2073);
emit_16(2009);
emit_16(2074);
emit_16(2010);
emit_16(2074);
emit_16(2009);
emit_16(2074);
emit_16(2010);
emit_16(2075);
emit_16(2011);
emit_16(2075);
emit_16(2010);
emit_16(2075);
emit_16(2011);
emit_16(2076);
emit_16(2012);
emit_16(2076);
emit_16(2011);
emit_16(2076);
emit_16(2012);
emit_16(2077);
emit_16(2013);
emit_16(2077);
emit_16(2012);
emit_16(2077);
emit_16(2013);
emit_16(2078);
emit_16(2014);
emit_16(2078);
emit_16(2013);
emit_16(2078);
emit_16(2014);
emit_16(2079);
emit_16(2015);
emit_16(2079);
emit_16(2014);
emit_16(2079);
emit_16(2015);
emit_16(2080);
emit_16(2016);
emit_16(2080);
emit_16(2015);
emit_16(2080);
emit_16(2016);
emit_16(2081);
emit_16(2017);
emit_16(2081);
emit_16(2016);
emit_16(2081);
emit_16(2017);
emit_16(2082);
emit_16(2018);
emit_16(2082);
emit_16(2017);
emit_16(2082);
emit_16(2018);
emit_16(2083);
emit_16(2019);
emit_16(2083);
emit_16(2018);
emit_16(2083);
emit_16(2019);
emit_16(2084);
emit_16(2020);
emit_16(2084);
emit_16(2019);
emit_16(2084);
emit_16(2020);
emit_16(2085);
emit_16(2021);
emit_16(2085);
emit_16(2020);
emit_16(2085);
emit_16(2021);
emit_16(2086);
emit_16(2022);
emit_16(2086);
emit_16(2021);
emit_16(2086);
emit_16(2022);
emit_16(2087);
emit_16(2023);
emit_16(2087);
emit_16(2022);
emit_16(2087);
emit_16(2023);
emit_16(2088);
emit_16(2024);
emit_16(2088);
emit_16(2023);
emit_16(2088);
emit_16(2024);
emit_16(2089);
emit_16(2025);
emit_16(2089);
emit_16(2024);
emit_16(2089);
emit_16(2025);
emit_16(2090);
emit_16(2026);
emit_16(2090);
emit_16(2025);
emit_16(2090);
emit_16(2026);
emit_16(2091);
emit_16(2027);
emit_16(2091);
emit_16(2026);
emit_16(2091);
emit_16(2027);
emit_16(2092);
emit_16(2028);
emit_16(2092);
emit_16(2027);
emit_16(2092);
emit_16(2028);
emit_16(2093);
emit_16(2029);
emit_16(2093);
emit_16(2028);
emit_16(2093);
emit_16(2029);
emit_16(2094);
emit_16(2030);
emit_16(2094);
emit_16(2029);
emit_16(2094);
emit_16(2030);
emit_16(2095);
emit_16(2031);
emit_16(2095);
emit_16(2030);
emit_16(2095);
emit_16(2031);
emit_16(2096);
emit_16(2032);
emit_16(2096);
emit_16(2031);
emit_16(2096);
emit_16(2032);
emit_16(2097);
emit_16(2033);
emit_16(2097);
emit_16(2032);
emit_16(2097);
emit_16(2033);
emit_16(2098);
emit_16(2034);
emit_16(2098);
emit_16(2033);
emit_16(2098);
emit_16(2034);
emit_16(2099);
emit_16(2035);
emit_16(2099);
emit_16(2034);
emit_16(2099);
emit_16(2035);
emit_16(2100);
emit_16(2036);
emit_16(2100);
emit_16(2035);
emit_16(2100);
emit_16(2036);
emit_16(2101);
emit_16(2037);
emit_16(2101);
emit_16(2036);
emit_16(2101);
emit_16(2037);
emit_16(2102);
emit_16(2038);
emit_16(2102);
emit_16(2037);
emit_16(2102);
emit_16(2038);
emit_16(2103);
emit_16(2039);
emit_16(2103);
emit_16(2038);
emit_16(2103);
emit_16(2039);
emit_16(2104);
emit_16(2040);
emit_16(2104);
emit_16(2039);
emit_16(2104);
emit_16(2040);
emit_16(2105);
emit_16(2041);
emit_16(2105);
emit_16(2040);
emit_16(2105);
emit_16(2041);
emit_16(2106);
emit_16(2042);
emit_16(2106);
emit_16(2041);
emit_16(2106);
emit_16(2042);
emit_16(2107);
emit_16(2043);
emit_16(2107);
emit_16(2042);
emit_16(2107);
emit_16(2043);
emit_16(2108);
emit_16(2044);
emit_16(2108);
emit_16(2043);
emit_16(2108);
emit_16(2044);
emit_16(2109);
emit_16(2045);
emit_16(2109);
emit_16(2044);
emit_16(2109);
emit_16(2045);
emit_16(2110);
emit_16(2046);
emit_16(2110);
emit_16(2045);
emit_16(2110);
emit_16(2046);
emit_16(2111);
emit_16(2047);
emit_16(2111);
emit_16(2046);
emit_start(Landscape05Idx)
emit_16(0);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(2);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(4);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(6);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(8);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(10);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(12);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(14);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(16);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(18);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(20);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(22);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(24);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(26);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(28);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(30);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(32);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(34);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(36);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(38);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(40);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(42);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(44);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(46);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(48);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(50);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(52);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(54);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(56);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(58);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(60);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(62);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(64);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(66);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(68);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(70);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(72);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(74);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(76);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(78);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(80);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(82);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(84);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(86);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(88);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(90);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(92);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(94);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(96);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(98);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(100);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(102);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(104);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(106);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(108);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(110);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(112);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(114);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(116);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(118);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(120);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(122);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(124);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(126);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(128);
emit_16(129);
emit_16(128);
emit_16(127);
emit_16(128);
emit_16(129);
emit_16(130);
emit_16(131);
emit_16(130);
emit_16(129);
emit_16(132);
emit_16(0);
emit_16(133);
emit_16(2);
emit_16(133);
emit_16(0);
emit_16(133);
emit_16(2);
emit_16(134);
emit_16(4);
emit_16(134);
emit_16(2);
emit_16(134);
emit_16(4);
emit_16(135);
emit_16(6);
emit_16(135);
emit_16(4);
emit_16(135);
emit_16(6);
emit_16(136);
emit_16(8);
emit_16(136);
emit_16(6);
emit_16(136);
emit_16(8);
emit_16(137);
emit_16(10);
emit_16(137);
emit_16(8);
emit_16(137);
emit_16(10);
emit_16(138);
emit_16(12);
emit_16(138);
emit_16(10);
emit_16(138);
emit_16(12);
emit_16(139);
emit_16(14);
emit_16(139);
emit_16(12);
emit_16(139);
emit_16(14);
emit_16(140);
emit_16(16);
emit_16(140);
emit_16(14);
emit_16(140);
emit_16(16);
emit_16(141);
emit_16(18);
emit_16(141);
emit_16(16);
emit_16(141);
emit_16(18);
emit_16(142);
emit_16(20);
emit_16(142);
emit_16(18);
emit_16(142);
emit_16(20);
emit_16(143);
emit_16(22);
emit_16(143);
emit_16(20);
emit_16(143);
emit_16(22);
emit_16(144);
emit_16(24);
emit_16(144);
emit_16(22);
emit_16(144);
emit_16(24);
emit_16(145);
emit_16(26);
emit_16(145);
emit_16(24);
emit_16(145);
emit_16(26);
emit_16(146);
emit_16(28);
emit_16(146);
emit_16(26);
emit_16(146);
emit_16(28);
emit_16(147);
emit_16(30);
emit_16(147);
emit_16(28);
emit_16(147);
emit_16(30);
emit_16(148);
emit_16(32);
emit_16(148);
emit_16(30);
emit_16(148);
emit_16(32);
emit_16(149);
emit_16(34);
emit_16(149);
emit_16(32);
emit_16(149);
emit_16(34);
emit_16(150);
emit_16(36);
emit_16(150);
emit_16(34);
emit_16(150);
emit_16(36);
emit_16(151);
emit_16(38);
emit_16(151);
emit_16(36);
emit_16(151);
emit_16(38);
emit_16(152);
emit_16(40);
emit_16(152);
emit_16(38);
emit_16(152);
emit_16(40);
emit_16(153);
emit_16(42);
emit_16(153);
emit_16(40);
emit_16(153);
emit_16(42);
emit_16(154);
emit_16(44);
emit_16(154);
emit_16(42);
emit_16(154);
emit_16(44);
emit_16(155);
emit_16(46);
emit_16(155);
emit_16(44);
emit_16(155);
emit_16(46);
emit_16(156);
emit_16(48);
emit_16(156);
emit_16(46);
emit_16(156);
emit_16(48);
emit_16(157);
emit_16(50);
emit_16(157);
emit_16(48);
emit_16(157);
emit_16(50);
emit_16(158);
emit_16(52);
emit_16(158);
emit_16(50);
emit_16(158);
emit_16(52);
emit_16(159);
emit_16(54);
emit_16(159);
emit_16(52);
emit_16(159);
emit_16(54);
emit_16(160);
emit_16(56);
emit_16(160);
emit_16(54);
emit_16(160);
emit_16(56);
emit_16(161);
emit_16(58);
emit_16(161);
emit_16(56);
emit_16(161);
emit_16(58);
emit_16(162);
emit_16(60);
emit_16(162);
emit_16(58);
emit_16(162);
emit_16(60);
emit_16(163);
emit_16(62);
emit_16(163);
emit_16(60);
emit_16(163);
emit_16(62);
emit_16(164);
emit_16(64);
emit_16(164);
emit_16(62);
emit_16(164);
emit_16(64);
emit_16(165);
emit_16(66);
emit_16(165);
emit_16(64);
emit_16(165);
emit_16(66);
emit_16(166);
emit_16(68);
emit_16(166);
emit_16(66);
emit_16(166);
emit_16(68);
emit_16(167);
emit_16(70);
emit_16(167);
emit_16(68);
emit_16(167);
emit_16(70);
emit_16(168);
emit_16(72);
emit_16(168);
emit_16(70);
emit_16(168);
emit_16(72);
emit_16(169);
emit_16(74);
emit_16(169);
emit_16(72);
emit_16(169);
emit_16(74);
emit_16(170);
emit_16(76);
emit_16(170);
emit_16(74);
emit_16(170);
emit_16(76);
emit_16(171);
emit_16(78);
emit_16(171);
emit_16(76);
emit_16(171);
emit_16(78);
emit_16(172);
emit_16(80);
emit_16(172);
emit_16(78);
emit_16(172);
emit_16(80);
emit_16(173);
emit_16(82);
emit_16(173);
emit_16(80);
emit_16(173);
emit_16(82);
emit_16(174);
emit_16(84);
emit_16(174);
emit_16(82);
emit_16(174);
emit_16(84);
emit_16(175);
emit_16(86);
emit_16(175);
emit_16(84);
emit_16(175);
emit_16(86);
emit_16(176);
emit_16(88);
emit_16(176);
emit_16(86);
emit_16(176);
emit_16(88);
emit_16(177);
emit_16(90);
emit_16(177);
emit_16(88);
emit_16(177);
emit_16(90);
emit_16(178);
emit_16(92);
emit_16(178);
emit_16(90);
emit_16(178);
emit_16(92);
emit_16(179);
emit_16(94);
emit_16(179);
emit_16(92);
emit_16(179);
emit_16(94);
emit_16(180);
emit_16(96);
emit_16(180);
emit_16(94);
emit_16(180);
emit_16(96);
emit_16(181);
emit_16(98);
emit_16(181);
emit_16(96);
emit_16(181);
emit_16(98);
emit_16(182);
emit_16(100);
emit_16(182);
emit_16(98);
emit_16(182);
emit_16(100);
emit_16(183);
emit_16(102);
emit_16(183);
emit_16(100);
emit_16(183);
emit_16(102);
emit_16(184);
emit_16(104);
emit_16(184);
emit_16(102);
emit_16(184);
emit_16(104);
emit_16(185);
emit_16(106);
emit_16(185);
emit_16(104);
emit_16(185);
emit_16(106);
emit_16(186);
emit_16(108);
emit_16(186);
emit_16(106);
emit_16(186);
emit_16(108);
emit_16(187);
emit_16(110);
emit_16(187);
emit_16(108);
emit_16(187);
emit_16(110);
emit_16(188);
emit_16(112);
emit_16(188);
emit_16(110);
emit_16(188);
emit_16(112);
emit_16(189);
emit_16(114);
emit_16(189);
emit_16(112);
emit_16(189);
emit_16(114);
emit_16(190);
emit_16(116);
emit_16(190);
emit_16(114);
emit_16(190);
emit_16(116);
emit_16(191);
emit_16(118);
emit_16(191);
emit_16(116);
emit_16(191);
emit_16(118);
emit_16(192);
emit_16(120);
emit_16(192);
emit_16(118);
emit_16(192);
emit_16(120);
emit_16(193);
emit_16(122);
emit_16(193);
emit_16(120);
emit_16(193);
emit_16(122);
emit_16(194);
emit_16(124);
emit_16(194);
emit_16(122);
emit_16(194);
emit_16(124);
emit_16(195);
emit_16(126);
emit_16(195);
emit_16(124);
emit_16(195);
emit_16(126);
emit_16(196);
emit_16(128);
emit_16(196);
emit_16(126);
emit_16(196);
emit_16(128);
emit_16(197);
emit_16(130);
emit_16(197);
emit_16(128);
emit_16(198);
emit_16(132);
emit_16(199);
emit_16(133);
emit_16(199);
emit_16(132);
emit_16(199);
emit_16(133);
emit_16(200);
emit_16(134);
emit_16(200);
emit_16(133);
emit_16(200);
emit_16(134);
emit_16(201);
emit_16(135);
emit_16(201);
emit_16(134);
emit_16(201);
emit_16(135);
emit_16(202);
emit_16(136);
emit_16(202);
emit_16(135);
emit_16(202);
emit_16(136);
emit_16(203);
emit_16(137);
emit_16(203);
emit_16(136);
emit_16(203);
emit_16(137);
emit_16(204);
emit_16(138);
emit_16(204);
emit_16(137);
emit_16(204);
emit_16(138);
emit_16(205);
emit_16(139);
emit_16(205);
emit_16(138);
emit_16(205);
emit_16(139);
emit_16(206);
emit_16(140);
emit_16(206);
emit_16(139);
emit_16(206);
emit_16(140);
emit_16(207);
emit_16(141);
emit_16(207);
emit_16(140);
emit_16(207);
emit_16(141);
emit_16(208);
emit_16(142);
emit_16(208);
emit_16(141);
emit_16(208);
emit_16(142);
emit_16(209);
emit_16(143);
emit_16(209);
emit_16(142);
emit_16(209);
emit_16(143);
emit_16(210);
emit_16(144);
emit_16(210);
emit_16(143);
emit_16(210);
emit_16(144);
emit_16(211);
emit_16(145);
emit_16(211);
emit_16(144);
emit_16(211);
emit_16(145);
emit_16(212);
emit_16(146);
emit_16(212);
emit_16(145);
emit_16(212);
emit_16(146);
emit_16(213);
emit_16(147);
emit_16(213);
emit_16(146);
emit_16(213);
emit_16(147);
emit_16(214);
emit_16(148);
emit_16(214);
emit_16(147);
emit_16(214);
emit_16(148);
emit_16(215);
emit_16(149);
emit_16(215);
emit_16(148);
emit_16(215);
emit_16(149);
emit_16(216);
emit_16(150);
emit_16(216);
emit_16(149);
emit_16(216);
emit_16(150);
emit_16(217);
emit_16(151);
emit_16(217);
emit_16(150);
emit_16(217);
emit_16(151);
emit_16(218);
emit_16(152);
emit_16(218);
emit_16(151);
emit_16(218);
emit_16(152);
emit_16(219);
emit_16(153);
emit_16(219);
emit_16(152);
emit_16(219);
emit_16(153);
emit_16(220);
emit_16(154);
emit_16(220);
emit_16(153);
emit_16(220);
emit_16(154);
emit_16(221);
emit_16(155);
emit_16(221);
emit_16(154);
emit_16(221);
emit_16(155);
emit_16(222);
emit_16(156);
emit_16(222);
emit_16(155);
emit_16(222);
emit_16(156);
emit_16(223);
emit_16(157);
emit_16(223);
emit_16(156);
emit_16(223);
emit_16(157);
emit_16(224);
emit_16(158);
emit_16(224);
emit_16(157);
emit_16(224);
emit_16(158);
emit_16(225);
emit_16(159);
emit_16(225);
emit_16(158);
emit_16(225);
emit_16(159);
emit_16(226);
emit_16(160);
emit_16(226);
emit_16(159);
emit_16(226);
emit_16(160);
emit_16(227);
emit_16(161);
emit_16(227);
emit_16(160);
emit_16(227);
emit_16(161);
emit_16(228);
emit_16(162);
emit_16(228);
emit_16(161);
emit_16(228);
emit_16(162);
emit_16(229);
emit_16(163);
emit_16(229);
emit_16(162);
emit_16(229);
emit_16(163);
emit_16(230);
emit_16(164);
emit_16(230);
emit_16(163);
emit_16(230);
emit_16(164);
emit_16(231);
emit_16(165);
emit_16(231);
emit_16(164);
emit_16(231);
emit_16(165);
emit_16(232);
emit_16(166);
emit_16(232);
emit_16(165);
emit_16(232);
emit_16(166);
emit_16(233);
emit_16(167);
emit_16(233);
emit_16(166);
emit_16(233);
emit_16(167);
emit_16(234);
emit_16(168);
emit_16(234);
emit_16(167);
emit_16(234);
emit_16(168);
emit_16(235);
emit_16(169);
emit_16(235);
emit_16(168);
emit_16(235);
emit_16(169);
emit_16(236);
emit_16(170);
emit_16(236);
emit_16(169);
emit_16(236);
emit_16(170);
emit_16(237);
emit_16(171);
emit_16(237);
emit_16(170);
emit_16(237);
emit_16(171);
emit_16(238);
emit_16(172);
emit_16(238);
emit_16(171);
emit_16(238);
emit_16(172);
emit_16(239);
emit_16(173);
emit_16(239);
emit_16(172);
emit_16(239);
emit_16(173);
emit_16(240);
emit_16(174);
emit_16(240);
emit_16(173);
emit_16(240);
emit_16(174);
emit_16(241);
emit_16(175);
emit_16(241);
emit_16(174);
emit_16(241);
emit_16(175);
emit_16(242);
emit_16(176);
emit_16(242);
emit_16(175);
emit_16(242);
emit_16(176);
emit_16(243);
emit_16(177);
emit_16(243);
emit_16(176);
emit_16(243);
emit_16(177);
emit_16(244);
emit_16(178);
emit_16(244);
emit_16(177);
emit_16(244);
emit_16(178);
emit_16(245);
emit_16(179);
emit_16(245);
emit_16(178);
emit_16(245);
emit_16(179);
emit_16(246);
emit_16(180);
emit_16(246);
emit_16(179);
emit_16(246);
emit_16(180);
emit_16(247);
emit_16(181);
emit_16(247);
emit_16(180);
emit_16(247);
emit_16(181);
emit_16(248);
emit_16(182);
emit_16(248);
emit_16(181);
emit_16(248);
emit_16(182);
emit_16(249);
emit_16(183);
emit_16(249);
emit_16(182);
emit_16(249);
emit_16(183);
emit_16(250);
emit_16(184);
emit_16(250);
emit_16(183);
emit_16(250);
emit_16(184);
emit_16(251);
emit_16(185);
emit_16(251);
emit_16(184);
emit_16(251);
emit_16(185);
emit_16(252);
emit_16(186);
emit_16(252);
emit_16(185);
emit_16(252);
emit_16(186);
emit_16(253);
emit_16(187);
emit_16(253);
emit_16(186);
emit_16(253);
emit_16(187);
emit_16(254);
emit_16(188);
emit_16(254);
emit_16(187);
emit_16(254);
emit_16(188);
emit_16(255);
emit_16(189);
emit_16(255);
emit_16(188);
emit_16(255);
emit_16(189);
emit_16(256);
emit_16(190);
emit_16(256);
emit_16(189);
emit_16(256);
emit_16(190);
emit_16(257);
emit_16(191);
emit_16(257);
emit_16(190);
emit_16(257);
emit_16(191);
emit_16(258);
emit_16(192);
emit_16(258);
emit_16(191);
emit_16(258);
emit_16(192);
emit_16(259);
emit_16(193);
emit_16(259);
emit_16(192);
emit_16(259);
emit_16(193);
emit_16(260);
emit_16(194);
emit_16(260);
emit_16(193);
emit_16(260);
emit_16(194);
emit_16(261);
emit_16(195);
emit_16(261);
emit_16(194);
emit_16(261);
emit_16(195);
emit_16(262);
emit_16(196);
emit_16(262);
emit_16(195);
emit_16(262);
emit_16(196);
emit_16(263);
emit_16(197);
emit_16(263);
emit_16(196);
emit_16(264);
emit_16(198);
emit_16(265);
emit_16(199);
emit_16(265);
emit_16(198);
emit_16(265);
emit_16(199);
emit_16(266);
emit_16(200);
emit_16(266);
emit_16(199);
emit_16(266);
emit_16(200);
emit_16(267);
emit_16(201);
emit_16(267);
emit_16(200);
emit_16(267);
emit_16(201);
emit_16(268);
emit_16(202);
emit_16(268);
emit_16(201);
emit_16(268);
emit_16(202);
emit_16(269);
emit_16(203);
emit_16(269);
emit_16(202);
emit_16(269);
emit_16(203);
emit_16(270);
emit_16(204);
emit_16(270);
emit_16(203);
emit_16(270);
emit_16(204);
emit_16(271);
emit_16(205);
emit_16(271);
emit_16(204);
emit_16(271);
emit_16(205);
emit_16(272);
emit_16(206);
emit_16(272);
emit_16(205);
emit_16(272);
emit_16(206);
emit_16(273);
emit_16(207);
emit_16(273);
emit_16(206);
emit_16(273);
emit_16(207);
emit_16(274);
emit_16(208);
emit_16(274);
emit_16(207);
emit_16(274);
emit_16(208);
emit_16(275);
emit_16(209);
emit_16(275);
emit_16(208);
emit_16(275);
emit_16(209);
emit_16(276);
emit_16(210);
emit_16(276);
emit_16(209);
emit_16(276);
emit_16(210);
emit_16(277);
emit_16(211);
emit_16(277);
emit_16(210);
emit_16(277);
emit_16(211);
emit_16(278);
emit_16(212);
emit_16(278);
emit_16(211);
emit_16(278);
emit_16(212);
emit_16(279);
emit_16(213);
emit_16(279);
emit_16(212);
emit_16(279);
emit_16(213);
emit_16(280);
emit_16(214);
emit_16(280);
emit_16(213);
emit_16(280);
emit_16(214);
emit_16(281);
emit_16(215);
emit_16(281);
emit_16(214);
emit_16(281);
emit_16(215);
emit_16(282);
emit_16(216);
emit_16(282);
emit_16(215);
emit_16(282);
emit_16(216);
emit_16(283);
emit_16(217);
emit_16(283);
emit_16(216);
emit_16(283);
emit_16(217);
emit_16(284);
emit_16(218);
emit_16(284);
emit_16(217);
emit_16(284);
emit_16(218);
emit_16(285);
emit_16(219);
emit_16(285);
emit_16(218);
emit_16(285);
emit_16(219);
emit_16(286);
emit_16(220);
emit_16(286);
emit_16(219);
emit_16(286);
emit_16(220);
emit_16(287);
emit_16(221);
emit_16(287);
emit_16(220);
emit_16(287);
emit_16(221);
emit_16(288);
emit_16(222);
emit_16(288);
emit_16(221);
emit_16(288);
emit_16(222);
emit_16(289);
emit_16(223);
emit_16(289);
emit_16(222);
emit_16(289);
emit_16(223);
emit_16(290);
emit_16(224);
emit_16(290);
emit_16(223);
emit_16(290);
emit_16(224);
emit_16(291);
emit_16(225);
emit_16(291);
emit_16(224);
emit_16(291);
emit_16(225);
emit_16(292);
emit_16(226);
emit_16(292);
emit_16(225);
emit_16(292);
emit_16(226);
emit_16(293);
emit_16(227);
emit_16(293);
emit_16(226);
emit_16(293);
emit_16(227);
emit_16(294);
emit_16(228);
emit_16(294);
emit_16(227);
emit_16(294);
emit_16(228);
emit_16(295);
emit_16(229);
emit_16(295);
emit_16(228);
emit_16(295);
emit_16(229);
emit_16(296);
emit_16(230);
emit_16(296);
emit_16(229);
emit_16(296);
emit_16(230);
emit_16(297);
emit_16(231);
emit_16(297);
emit_16(230);
emit_16(297);
emit_16(231);
emit_16(298);
emit_16(232);
emit_16(298);
emit_16(231);
emit_16(298);
emit_16(232);
emit_16(299);
emit_16(233);
emit_16(299);
emit_16(232);
emit_16(299);
emit_16(233);
emit_16(300);
emit_16(234);
emit_16(300);
emit_16(233);
emit_16(300);
emit_16(234);
emit_16(301);
emit_16(235);
emit_16(301);
emit_16(234);
emit_16(301);
emit_16(235);
emit_16(302);
emit_16(236);
emit_16(302);
emit_16(235);
emit_16(302);
emit_16(236);
emit_16(303);
emit_16(237);
emit_16(303);
emit_16(236);
emit_16(303);
emit_16(237);
emit_16(304);
emit_16(238);
emit_16(304);
emit_16(237);
emit_16(304);
emit_16(238);
emit_16(305);
emit_16(239);
emit_16(305);
emit_16(238);
emit_16(305);
emit_16(239);
emit_16(306);
emit_16(240);
emit_16(306);
emit_16(239);
emit_16(306);
emit_16(240);
emit_16(307);
emit_16(241);
emit_16(307);
emit_16(240);
emit_16(307);
emit_16(241);
emit_16(308);
emit_16(242);
emit_16(308);
emit_16(241);
emit_16(308);
emit_16(242);
emit_16(309);
emit_16(243);
emit_16(309);
emit_16(242);
emit_16(309);
emit_16(243);
emit_16(310);
emit_16(244);
emit_16(310);
emit_16(243);
emit_16(310);
emit_16(244);
emit_16(311);
emit_16(245);
emit_16(311);
emit_16(244);
emit_16(311);
emit_16(245);
emit_16(312);
emit_16(246);
emit_16(312);
emit_16(245);
emit_16(312);
emit_16(246);
emit_16(313);
emit_16(247);
emit_16(313);
emit_16(246);
emit_16(313);
emit_16(247);
emit_16(314);
emit_16(248);
emit_16(314);
emit_16(247);
emit_16(314);
emit_16(248);
emit_16(315);
emit_16(249);
emit_16(315);
emit_16(248);
emit_16(315);
emit_16(249);
emit_16(316);
emit_16(250);
emit_16(316);
emit_16(249);
emit_16(316);
emit_16(250);
emit_16(317);
emit_16(251);
emit_16(317);
emit_16(250);
emit_16(317);
emit_16(251);
emit_16(318);
emit_16(252);
emit_16(318);
emit_16(251);
emit_16(318);
emit_16(252);
emit_16(319);
emit_16(253);
emit_16(319);
emit_16(252);
emit_16(319);
emit_16(253);
emit_16(320);
emit_16(254);
emit_16(320);
emit_16(253);
emit_16(320);
emit_16(254);
emit_16(321);
emit_16(255);
emit_16(321);
emit_16(254);
emit_16(321);
emit_16(255);
emit_16(322);
emit_16(256);
emit_16(322);
emit_16(255);
emit_16(322);
emit_16(256);
emit_16(323);
emit_16(257);
emit_16(323);
emit_16(256);
emit_16(323);
emit_16(257);
emit_16(324);
emit_16(258);
emit_16(324);
emit_16(257);
emit_16(324);
emit_16(258);
emit_16(325);
emit_16(259);
emit_16(325);
emit_16(258);
emit_16(325);
emit_16(259);
emit_16(326);
emit_16(260);
emit_16(326);
emit_16(259);
emit_16(326);
emit_16(260);
emit_16(327);
emit_16(261);
emit_16(327);
emit_16(260);
emit_16(327);
emit_16(261);
emit_16(328);
emit_16(262);
emit_16(328);
emit_16(261);
emit_16(328);
emit_16(262);
emit_16(329);
emit_16(263);
emit_16(329);
emit_16(262);
emit_16(330);
emit_16(264);
emit_16(331);
emit_16(265);
emit_16(331);
emit_16(264);
emit_16(331);
emit_16(265);
emit_16(332);
emit_16(266);
emit_16(332);
emit_16(265);
emit_16(332);
emit_16(266);
emit_16(333);
emit_16(267);
emit_16(333);
emit_16(266);
emit_16(333);
emit_16(267);
emit_16(334);
emit_16(268);
emit_16(334);
emit_16(267);
emit_16(334);
emit_16(268);
emit_16(335);
emit_16(269);
emit_16(335);
emit_16(268);
emit_16(335);
emit_16(269);
emit_16(336);
emit_16(270);
emit_16(336);
emit_16(269);
emit_16(336);
emit_16(270);
emit_16(337);
emit_16(271);
emit_16(337);
emit_16(270);
emit_16(337);
emit_16(271);
emit_16(338);
emit_16(272);
emit_16(338);
emit_16(271);
emit_16(338);
emit_16(272);
emit_16(339);
emit_16(273);
emit_16(339);
emit_16(272);
emit_16(339);
emit_16(273);
emit_16(340);
emit_16(274);
emit_16(340);
emit_16(273);
emit_16(340);
emit_16(274);
emit_16(341);
emit_16(275);
emit_16(341);
emit_16(274);
emit_16(341);
emit_16(275);
emit_16(342);
emit_16(276);
emit_16(342);
emit_16(275);
emit_16(342);
emit_16(276);
emit_16(343);
emit_16(277);
emit_16(343);
emit_16(276);
emit_16(343);
emit_16(277);
emit_16(344);
emit_16(278);
emit_16(344);
emit_16(277);
emit_16(344);
emit_16(278);
emit_16(345);
emit_16(279);
emit_16(345);
emit_16(278);
emit_16(345);
emit_16(279);
emit_16(346);
emit_16(280);
emit_16(346);
emit_16(279);
emit_16(346);
emit_16(280);
emit_16(347);
emit_16(281);
emit_16(347);
emit_16(280);
emit_16(347);
emit_16(281);
emit_16(348);
emit_16(282);
emit_16(348);
emit_16(281);
emit_16(348);
emit_16(282);
emit_16(349);
emit_16(283);
emit_16(349);
emit_16(282);
emit_16(349);
emit_16(283);
emit_16(350);
emit_16(284);
emit_16(350);
emit_16(283);
emit_16(350);
emit_16(284);
emit_16(351);
emit_16(285);
emit_16(351);
emit_16(284);
emit_16(351);
emit_16(285);
emit_16(352);
emit_16(286);
emit_16(352);
emit_16(285);
emit_16(352);
emit_16(286);
emit_16(353);
emit_16(287);
emit_16(353);
emit_16(286);
emit_16(353);
emit_16(287);
emit_16(354);
emit_16(288);
emit_16(354);
emit_16(287);
emit_16(354);
emit_16(288);
emit_16(355);
emit_16(289);
emit_16(355);
emit_16(288);
emit_16(355);
emit_16(289);
emit_16(356);
emit_16(290);
emit_16(356);
emit_16(289);
emit_16(356);
emit_16(290);
emit_16(357);
emit_16(291);
emit_16(357);
emit_16(290);
emit_16(357);
emit_16(291);
emit_16(358);
emit_16(292);
emit_16(358);
emit_16(291);
emit_16(358);
emit_16(292);
emit_16(359);
emit_16(293);
emit_16(359);
emit_16(292);
emit_16(359);
emit_16(293);
emit_16(360);
emit_16(294);
emit_16(360);
emit_16(293);
emit_16(360);
emit_16(294);
emit_16(361);
emit_16(295);
emit_16(361);
emit_16(294);
emit_16(361);
emit_16(295);
emit_16(362);
emit_16(296);
emit_16(362);
emit_16(295);
emit_16(362);
emit_16(296);
emit_16(363);
emit_16(297);
emit_16(363);
emit_16(296);
emit_16(363);
emit_16(297);
emit_16(364);
emit_16(298);
emit_16(364);
emit_16(297);
emit_16(364);
emit_16(298);
emit_16(365);
emit_16(299);
emit_16(365);
emit_16(298);
emit_16(365);
emit_16(299);
emit_16(366);
emit_16(300);
emit_16(366);
emit_16(299);
emit_16(366);
emit_16(300);
emit_16(367);
emit_16(301);
emit_16(367);
emit_16(300);
emit_16(367);
emit_16(301);
emit_16(368);
emit_16(302);
emit_16(368);
emit_16(301);
emit_16(368);
emit_16(302);
emit_16(369);
emit_16(303);
emit_16(369);
emit_16(302);
emit_16(369);
emit_16(303);
emit_16(370);
emit_16(304);
emit_16(370);
emit_16(303);
emit_16(370);
emit_16(304);
emit_16(371);
emit_16(305);
emit_16(371);
emit_16(304);
emit_16(371);
emit_16(305);
emit_16(372);
emit_16(306);
emit_16(372);
emit_16(305);
emit_16(372);
emit_16(306);
emit_16(373);
emit_16(307);
emit_16(373);
emit_16(306);
emit_16(373);
emit_16(307);
emit_16(374);
emit_16(308);
emit_16(374);
emit_16(307);
emit_16(374);
emit_16(308);
emit_16(375);
emit_16(309);
emit_16(375);
emit_16(308);
emit_16(375);
emit_16(309);
emit_16(376);
emit_16(310);
emit_16(376);
emit_16(309);
emit_16(376);
emit_16(310);
emit_16(377);
emit_16(311);
emit_16(377);
emit_16(310);
emit_16(377);
emit_16(311);
emit_16(378);
emit_16(312);
emit_16(378);
emit_16(311);
emit_16(378);
emit_16(312);
emit_16(379);
emit_16(313);
emit_16(379);
emit_16(312);
emit_16(379);
emit_16(313);
emit_16(380);
emit_16(314);
emit_16(380);
emit_16(313);
emit_16(380);
emit_16(314);
emit_16(381);
emit_16(315);
emit_16(381);
emit_16(314);
emit_16(381);
emit_16(315);
emit_16(382);
emit_16(316);
emit_16(382);
emit_16(315);
emit_16(382);
emit_16(316);
emit_16(383);
emit_16(317);
emit_16(383);
emit_16(316);
emit_16(383);
emit_16(317);
emit_16(384);
emit_16(318);
emit_16(384);
emit_16(317);
emit_16(384);
emit_16(318);
emit_16(385);
emit_16(319);
emit_16(385);
emit_16(318);
emit_16(385);
emit_16(319);
emit_16(386);
emit_16(320);
emit_16(386);
emit_16(319);
emit_16(386);
emit_16(320);
emit_16(387);
emit_16(321);
emit_16(387);
emit_16(320);
emit_16(387);
emit_16(321);
emit_16(388);
emit_16(322);
emit_16(388);
emit_16(321);
emit_16(388);
emit_16(322);
emit_16(389);
emit_16(323);
emit_16(389);
emit_16(322);
emit_16(389);
emit_16(323);
emit_16(390);
emit_16(324);
emit_16(390);
emit_16(323);
emit_16(390);
emit_16(324);
emit_16(391);
emit_16(325);
emit_16(391);
emit_16(324);
emit_16(391);
emit_16(325);
emit_16(392);
emit_16(326);
emit_16(392);
emit_16(325);
emit_16(392);
emit_16(326);
emit_16(393);
emit_16(327);
emit_16(393);
emit_16(326);
emit_16(393);
emit_16(327);
emit_16(394);
emit_16(328);
emit_16(394);
emit_16(327);
emit_16(394);
emit_16(328);
emit_16(395);
emit_16(329);
emit_16(395);
emit_16(328);
emit_16(396);
emit_16(330);
emit_16(397);
emit_16(331);
emit_16(397);
emit_16(330);
emit_16(397);
emit_16(331);
emit_16(398);
emit_16(332);
emit_16(398);
emit_16(331);
emit_16(398);
emit_16(332);
emit_16(399);
emit_16(333);
emit_16(399);
emit_16(332);
emit_16(399);
emit_16(333);
emit_16(400);
emit_16(334);
emit_16(400);
emit_16(333);
emit_16(400);
emit_16(334);
emit_16(401);
emit_16(335);
emit_16(401);
emit_16(334);
emit_16(401);
emit_16(335);
emit_16(402);
emit_16(336);
emit_16(402);
emit_16(335);
emit_16(402);
emit_16(336);
emit_16(403);
emit_16(337);
emit_16(403);
emit_16(336);
emit_16(403);
emit_16(337);
emit_16(404);
emit_16(338);
emit_16(404);
emit_16(337);
emit_16(404);
emit_16(338);
emit_16(405);
emit_16(339);
emit_16(405);
emit_16(338);
emit_16(405);
emit_16(339);
emit_16(406);
emit_16(340);
emit_16(406);
emit_16(339);
emit_16(406);
emit_16(340);
emit_16(407);
emit_16(341);
emit_16(407);
emit_16(340);
emit_16(407);
emit_16(341);
emit_16(408);
emit_16(342);
emit_16(408);
emit_16(341);
emit_16(408);
emit_16(342);
emit_16(409);
emit_16(343);
emit_16(409);
emit_16(342);
emit_16(409);
emit_16(343);
emit_16(410);
emit_16(344);
emit_16(410);
emit_16(343);
emit_16(410);
emit_16(344);
emit_16(411);
emit_16(345);
emit_16(411);
emit_16(344);
emit_16(411);
emit_16(345);
emit_16(412);
emit_16(346);
emit_16(412);
emit_16(345);
emit_16(412);
emit_16(346);
emit_16(413);
emit_16(347);
emit_16(413);
emit_16(346);
emit_16(413);
emit_16(347);
emit_16(414);
emit_16(348);
emit_16(414);
emit_16(347);
emit_16(414);
emit_16(348);
emit_16(415);
emit_16(349);
emit_16(415);
emit_16(348);
emit_16(415);
emit_16(349);
emit_16(416);
emit_16(350);
emit_16(416);
emit_16(349);
emit_16(416);
emit_16(350);
emit_16(417);
emit_16(351);
emit_16(417);
emit_16(350);
emit_16(417);
emit_16(351);
emit_16(418);
emit_16(352);
emit_16(418);
emit_16(351);
emit_16(418);
emit_16(352);
emit_16(419);
emit_16(353);
emit_16(419);
emit_16(352);
emit_16(419);
emit_16(353);
emit_16(420);
emit_16(354);
emit_16(420);
emit_16(353);
emit_16(420);
emit_16(354);
emit_16(421);
emit_16(355);
emit_16(421);
emit_16(354);
emit_16(421);
emit_16(355);
emit_16(422);
emit_16(356);
emit_16(422);
emit_16(355);
emit_16(422);
emit_16(356);
emit_16(423);
emit_16(357);
emit_16(423);
emit_16(356);
emit_16(423);
emit_16(357);
emit_16(424);
emit_16(358);
emit_16(424);
emit_16(357);
emit_16(424);
emit_16(358);
emit_16(425);
emit_16(359);
emit_16(425);
emit_16(358);
emit_16(425);
emit_16(359);
emit_16(426);
emit_16(360);
emit_16(426);
emit_16(359);
emit_16(426);
emit_16(360);
emit_16(427);
emit_16(361);
emit_16(427);
emit_16(360);
emit_16(427);
emit_16(361);
emit_16(428);
emit_16(362);
emit_16(428);
emit_16(361);
emit_16(428);
emit_16(362);
emit_16(429);
emit_16(363);
emit_16(429);
emit_16(362);
emit_16(429);
emit_16(363);
emit_16(430);
emit_16(364);
emit_16(430);
emit_16(363);
emit_16(430);
emit_16(364);
emit_16(431);
emit_16(365);
emit_16(431);
emit_16(364);
emit_16(431);
emit_16(365);
emit_16(432);
emit_16(366);
emit_16(432);
emit_16(365);
emit_16(432);
emit_16(366);
emit_16(433);
emit_16(367);
emit_16(433);
emit_16(366);
emit_16(433);
emit_16(367);
emit_16(434);
emit_16(368);
emit_16(434);
emit_16(367);
emit_16(434);
emit_16(368);
emit_16(435);
emit_16(369);
emit_16(435);
emit_16(368);
emit_16(435);
emit_16(369);
emit_16(436);
emit_16(370);
emit_16(436);
emit_16(369);
emit_16(436);
emit_16(370);
emit_16(437);
emit_16(371);
emit_16(437);
emit_16(370);
emit_16(437);
emit_16(371);
emit_16(438);
emit_16(372);
emit_16(438);
emit_16(371);
emit_16(438);
emit_16(372);
emit_16(439);
emit_16(373);
emit_16(439);
emit_16(372);
emit_16(439);
emit_16(373);
emit_16(440);
emit_16(374);
emit_16(440);
emit_16(373);
emit_16(440);
emit_16(374);
emit_16(441);
emit_16(375);
emit_16(441);
emit_16(374);
emit_16(441);
emit_16(375);
emit_16(442);
emit_16(376);
emit_16(442);
emit_16(375);
emit_16(442);
emit_16(376);
emit_16(443);
emit_16(377);
emit_16(443);
emit_16(376);
emit_16(443);
emit_16(377);
emit_16(444);
emit_16(378);
emit_16(444);
emit_16(377);
emit_16(444);
emit_16(378);
emit_16(445);
emit_16(379);
emit_16(445);
emit_16(378);
emit_16(445);
emit_16(379);
emit_16(446);
emit_16(380);
emit_16(446);
emit_16(379);
emit_16(446);
emit_16(380);
emit_16(447);
emit_16(381);
emit_16(447);
emit_16(380);
emit_16(447);
emit_16(381);
emit_16(448);
emit_16(382);
emit_16(448);
emit_16(381);
emit_16(448);
emit_16(382);
emit_16(449);
emit_16(383);
emit_16(449);
emit_16(382);
emit_16(449);
emit_16(383);
emit_16(450);
emit_16(384);
emit_16(450);
emit_16(383);
emit_16(450);
emit_16(384);
emit_16(451);
emit_16(385);
emit_16(451);
emit_16(384);
emit_16(451);
emit_16(385);
emit_16(452);
emit_16(386);
emit_16(452);
emit_16(385);
emit_16(452);
emit_16(386);
emit_16(453);
emit_16(387);
emit_16(453);
emit_16(386);
emit_16(453);
emit_16(387);
emit_16(454);
emit_16(388);
emit_16(454);
emit_16(387);
emit_16(454);
emit_16(388);
emit_16(455);
emit_16(389);
emit_16(455);
emit_16(388);
emit_16(455);
emit_16(389);
emit_16(456);
emit_16(390);
emit_16(456);
emit_16(389);
emit_16(456);
emit_16(390);
emit_16(457);
emit_16(391);
emit_16(457);
emit_16(390);
emit_16(457);
emit_16(391);
emit_16(458);
emit_16(392);
emit_16(458);
emit_16(391);
emit_16(458);
emit_16(392);
emit_16(459);
emit_16(393);
emit_16(459);
emit_16(392);
emit_16(459);
emit_16(393);
emit_16(460);
emit_16(394);
emit_16(460);
emit_16(393);
emit_16(460);
emit_16(394);
emit_16(461);
emit_16(395);
emit_16(461);
emit_16(394);
emit_16(462);
emit_16(396);
emit_16(463);
emit_16(397);
emit_16(463);
emit_16(396);
emit_16(463);
emit_16(397);
emit_16(464);
emit_16(398);
emit_16(464);
emit_16(397);
emit_16(464);
emit_16(398);
emit_16(465);
emit_16(399);
emit_16(465);
emit_16(398);
emit_16(465);
emit_16(399);
emit_16(466);
emit_16(400);
emit_16(466);
emit_16(399);
emit_16(466);
emit_16(400);
emit_16(467);
emit_16(401);
emit_16(467);
emit_16(400);
emit_16(467);
emit_16(401);
emit_16(468);
emit_16(402);
emit_16(468);
emit_16(401);
emit_16(468);
emit_16(402);
emit_16(469);
emit_16(403);
emit_16(469);
emit_16(402);
emit_16(469);
emit_16(403);
emit_16(470);
emit_16(404);
emit_16(470);
emit_16(403);
emit_16(470);
emit_16(404);
emit_16(471);
emit_16(405);
emit_16(471);
emit_16(404);
emit_16(471);
emit_16(405);
emit_16(472);
emit_16(406);
emit_16(472);
emit_16(405);
emit_16(472);
emit_16(406);
emit_16(473);
emit_16(407);
emit_16(473);
emit_16(406);
emit_16(473);
emit_16(407);
emit_16(474);
emit_16(408);
emit_16(474);
emit_16(407);
emit_16(474);
emit_16(408);
emit_16(475);
emit_16(409);
emit_16(475);
emit_16(408);
emit_16(475);
emit_16(409);
emit_16(476);
emit_16(410);
emit_16(476);
emit_16(409);
emit_16(476);
emit_16(410);
emit_16(477);
emit_16(411);
emit_16(477);
emit_16(410);
emit_16(477);
emit_16(411);
emit_16(478);
emit_16(412);
emit_16(478);
emit_16(411);
emit_16(478);
emit_16(412);
emit_16(479);
emit_16(413);
emit_16(479);
emit_16(412);
emit_16(479);
emit_16(413);
emit_16(480);
emit_16(414);
emit_16(480);
emit_16(413);
emit_16(480);
emit_16(414);
emit_16(481);
emit_16(415);
emit_16(481);
emit_16(414);
emit_16(481);
emit_16(415);
emit_16(482);
emit_16(416);
emit_16(482);
emit_16(415);
emit_16(482);
emit_16(416);
emit_16(483);
emit_16(417);
emit_16(483);
emit_16(416);
emit_16(483);
emit_16(417);
emit_16(484);
emit_16(418);
emit_16(484);
emit_16(417);
emit_16(484);
emit_16(418);
emit_16(485);
emit_16(419);
emit_16(485);
emit_16(418);
emit_16(485);
emit_16(419);
emit_16(486);
emit_16(420);
emit_16(486);
emit_16(419);
emit_16(486);
emit_16(420);
emit_16(487);
emit_16(421);
emit_16(487);
emit_16(420);
emit_16(487);
emit_16(421);
emit_16(488);
emit_16(422);
emit_16(488);
emit_16(421);
emit_16(488);
emit_16(422);
emit_16(489);
emit_16(423);
emit_16(489);
emit_16(422);
emit_16(489);
emit_16(423);
emit_16(490);
emit_16(424);
emit_16(490);
emit_16(423);
emit_16(490);
emit_16(424);
emit_16(491);
emit_16(425);
emit_16(491);
emit_16(424);
emit_16(491);
emit_16(425);
emit_16(492);
emit_16(426);
emit_16(492);
emit_16(425);
emit_16(492);
emit_16(426);
emit_16(493);
emit_16(427);
emit_16(493);
emit_16(426);
emit_16(493);
emit_16(427);
emit_16(494);
emit_16(428);
emit_16(494);
emit_16(427);
emit_16(494);
emit_16(428);
emit_16(495);
emit_16(429);
emit_16(495);
emit_16(428);
emit_16(495);
emit_16(429);
emit_16(496);
emit_16(430);
emit_16(496);
emit_16(429);
emit_16(496);
emit_16(430);
emit_16(497);
emit_16(431);
emit_16(497);
emit_16(430);
emit_16(497);
emit_16(431);
emit_16(498);
emit_16(432);
emit_16(498);
emit_16(431);
emit_16(498);
emit_16(432);
emit_16(499);
emit_16(433);
emit_16(499);
emit_16(432);
emit_16(499);
emit_16(433);
emit_16(500);
emit_16(434);
emit_16(500);
emit_16(433);
emit_16(500);
emit_16(434);
emit_16(501);
emit_16(435);
emit_16(501);
emit_16(434);
emit_16(501);
emit_16(435);
emit_16(502);
emit_16(436);
emit_16(502);
emit_16(435);
emit_16(502);
emit_16(436);
emit_16(503);
emit_16(437);
emit_16(503);
emit_16(436);
emit_16(503);
emit_16(437);
emit_16(504);
emit_16(438);
emit_16(504);
emit_16(437);
emit_16(504);
emit_16(438);
emit_16(505);
emit_16(439);
emit_16(505);
emit_16(438);
emit_16(505);
emit_16(439);
emit_16(506);
emit_16(440);
emit_16(506);
emit_16(439);
emit_16(506);
emit_16(440);
emit_16(507);
emit_16(441);
emit_16(507);
emit_16(440);
emit_16(507);
emit_16(441);
emit_16(508);
emit_16(442);
emit_16(508);
emit_16(441);
emit_16(508);
emit_16(442);
emit_16(509);
emit_16(443);
emit_16(509);
emit_16(442);
emit_16(509);
emit_16(443);
emit_16(510);
emit_16(444);
emit_16(510);
emit_16(443);
emit_16(510);
emit_16(444);
emit_16(511);
emit_16(445);
emit_16(511);
emit_16(444);
emit_16(511);
emit_16(445);
emit_16(512);
emit_16(446);
emit_16(512);
emit_16(445);
emit_16(512);
emit_16(446);
emit_16(513);
emit_16(447);
emit_16(513);
emit_16(446);
emit_16(513);
emit_16(447);
emit_16(514);
emit_16(448);
emit_16(514);
emit_16(447);
emit_16(514);
emit_16(448);
emit_16(515);
emit_16(449);
emit_16(515);
emit_16(448);
emit_16(515);
emit_16(449);
emit_16(516);
emit_16(450);
emit_16(516);
emit_16(449);
emit_16(516);
emit_16(450);
emit_16(517);
emit_16(451);
emit_16(517);
emit_16(450);
emit_16(517);
emit_16(451);
emit_16(518);
emit_16(452);
emit_16(518);
emit_16(451);
emit_16(518);
emit_16(452);
emit_16(519);
emit_16(453);
emit_16(519);
emit_16(452);
emit_16(519);
emit_16(453);
emit_16(520);
emit_16(454);
emit_16(520);
emit_16(453);
emit_16(520);
emit_16(454);
emit_16(521);
emit_16(455);
emit_16(521);
emit_16(454);
emit_16(521);
emit_16(455);
emit_16(522);
emit_16(456);
emit_16(522);
emit_16(455);
emit_16(522);
emit_16(456);
emit_16(523);
emit_16(457);
emit_16(523);
emit_16(456);
emit_16(523);
emit_16(457);
emit_16(524);
emit_16(458);
emit_16(524);
emit_16(457);
emit_16(524);
emit_16(458);
emit_16(525);
emit_16(459);
emit_16(525);
emit_16(458);
emit_16(525);
emit_16(459);
emit_16(526);
emit_16(460);
emit_16(526);
emit_16(459);
emit_16(526);
emit_16(460);
emit_16(527);
emit_16(461);
emit_16(527);
emit_16(460);
emit_16(528);
emit_16(462);
emit_16(529);
emit_16(463);
emit_16(529);
emit_16(462);
emit_16(529);
emit_16(463);
emit_16(530);
emit_16(464);
emit_16(530);
emit_16(463);
emit_16(530);
emit_16(464);
emit_16(531);
emit_16(465);
emit_16(531);
emit_16(464);
emit_16(531);
emit_16(465);
emit_16(532);
emit_16(466);
emit_16(532);
emit_16(465);
emit_16(532);
emit_16(466);
emit_16(533);
emit_16(467);
emit_16(533);
emit_16(466);
emit_16(533);
emit_16(467);
emit_16(534);
emit_16(468);
emit_16(534);
emit_16(467);
emit_16(534);
emit_16(468);
emit_16(535);
emit_16(469);
emit_16(535);
emit_16(468);
emit_16(535);
emit_16(469);
emit_16(536);
emit_16(470);
emit_16(536);
emit_16(469);
emit_16(536);
emit_16(470);
emit_16(537);
emit_16(471);
emit_16(537);
emit_16(470);
emit_16(537);
emit_16(471);
emit_16(538);
emit_16(472);
emit_16(538);
emit_16(471);
emit_16(538);
emit_16(472);
emit_16(539);
emit_16(473);
emit_16(539);
emit_16(472);
emit_16(539);
emit_16(473);
emit_16(540);
emit_16(474);
emit_16(540);
emit_16(473);
emit_16(540);
emit_16(474);
emit_16(541);
emit_16(475);
emit_16(541);
emit_16(474);
emit_16(541);
emit_16(475);
emit_16(542);
emit_16(476);
emit_16(542);
emit_16(475);
emit_16(542);
emit_16(476);
emit_16(543);
emit_16(477);
emit_16(543);
emit_16(476);
emit_16(543);
emit_16(477);
emit_16(544);
emit_16(478);
emit_16(544);
emit_16(477);
emit_16(544);
emit_16(478);
emit_16(545);
emit_16(479);
emit_16(545);
emit_16(478);
emit_16(545);
emit_16(479);
emit_16(546);
emit_16(480);
emit_16(546);
emit_16(479);
emit_16(546);
emit_16(480);
emit_16(547);
emit_16(481);
emit_16(547);
emit_16(480);
emit_16(547);
emit_16(481);
emit_16(548);
emit_16(482);
emit_16(548);
emit_16(481);
emit_16(548);
emit_16(482);
emit_16(549);
emit_16(483);
emit_16(549);
emit_16(482);
emit_16(549);
emit_16(483);
emit_16(550);
emit_16(484);
emit_16(550);
emit_16(483);
emit_16(550);
emit_16(484);
emit_16(551);
emit_16(485);
emit_16(551);
emit_16(484);
emit_16(551);
emit_16(485);
emit_16(552);
emit_16(486);
emit_16(552);
emit_16(485);
emit_16(552);
emit_16(486);
emit_16(553);
emit_16(487);
emit_16(553);
emit_16(486);
emit_16(553);
emit_16(487);
emit_16(554);
emit_16(488);
emit_16(554);
emit_16(487);
emit_16(554);
emit_16(488);
emit_16(555);
emit_16(489);
emit_16(555);
emit_16(488);
emit_16(555);
emit_16(489);
emit_16(556);
emit_16(490);
emit_16(556);
emit_16(489);
emit_16(556);
emit_16(490);
emit_16(557);
emit_16(491);
emit_16(557);
emit_16(490);
emit_16(557);
emit_16(491);
emit_16(558);
emit_16(492);
emit_16(558);
emit_16(491);
emit_16(558);
emit_16(492);
emit_16(559);
emit_16(493);
emit_16(559);
emit_16(492);
emit_16(559);
emit_16(493);
emit_16(560);
emit_16(494);
emit_16(560);
emit_16(493);
emit_16(560);
emit_16(494);
emit_16(561);
emit_16(495);
emit_16(561);
emit_16(494);
emit_16(561);
emit_16(495);
emit_16(562);
emit_16(496);
emit_16(562);
emit_16(495);
emit_16(562);
emit_16(496);
emit_16(563);
emit_16(497);
emit_16(563);
emit_16(496);
emit_16(563);
emit_16(497);
emit_16(564);
emit_16(498);
emit_16(564);
emit_16(497);
emit_16(564);
emit_16(498);
emit_16(565);
emit_16(499);
emit_16(565);
emit_16(498);
emit_16(565);
emit_16(499);
emit_16(566);
emit_16(500);
emit_16(566);
emit_16(499);
emit_16(566);
emit_16(500);
emit_16(567);
emit_16(501);
emit_16(567);
emit_16(500);
emit_16(567);
emit_16(501);
emit_16(568);
emit_16(502);
emit_16(568);
emit_16(501);
emit_16(568);
emit_16(502);
emit_16(569);
emit_16(503);
emit_16(569);
emit_16(502);
emit_16(569);
emit_16(503);
emit_16(570);
emit_16(504);
emit_16(570);
emit_16(503);
emit_16(570);
emit_16(504);
emit_16(571);
emit_16(505);
emit_16(571);
emit_16(504);
emit_16(571);
emit_16(505);
emit_16(572);
emit_16(506);
emit_16(572);
emit_16(505);
emit_16(572);
emit_16(506);
emit_16(573);
emit_16(507);
emit_16(573);
emit_16(506);
emit_16(573);
emit_16(507);
emit_16(574);
emit_16(508);
emit_16(574);
emit_16(507);
emit_16(574);
emit_16(508);
emit_16(575);
emit_16(509);
emit_16(575);
emit_16(508);
emit_16(575);
emit_16(509);
emit_16(576);
emit_16(510);
emit_16(576);
emit_16(509);
emit_16(576);
emit_16(510);
emit_16(577);
emit_16(511);
emit_16(577);
emit_16(510);
emit_16(577);
emit_16(511);
emit_16(578);
emit_16(512);
emit_16(578);
emit_16(511);
emit_16(578);
emit_16(512);
emit_16(579);
emit_16(513);
emit_16(579);
emit_16(512);
emit_16(579);
emit_16(513);
emit_16(580);
emit_16(514);
emit_16(580);
emit_16(513);
emit_16(580);
emit_16(514);
emit_16(581);
emit_16(515);
emit_16(581);
emit_16(514);
emit_16(581);
emit_16(515);
emit_16(582);
emit_16(516);
emit_16(582);
emit_16(515);
emit_16(582);
emit_16(516);
emit_16(583);
emit_16(517);
emit_16(583);
emit_16(516);
emit_16(583);
emit_16(517);
emit_16(584);
emit_16(518);
emit_16(584);
emit_16(517);
emit_16(584);
emit_16(518);
emit_16(585);
emit_16(519);
emit_16(585);
emit_16(518);
emit_16(585);
emit_16(519);
emit_16(586);
emit_16(520);
emit_16(586);
emit_16(519);
emit_16(586);
emit_16(520);
emit_16(587);
emit_16(521);
emit_16(587);
emit_16(520);
emit_16(587);
emit_16(521);
emit_16(588);
emit_16(522);
emit_16(588);
emit_16(521);
emit_16(588);
emit_16(522);
emit_16(589);
emit_16(523);
emit_16(589);
emit_16(522);
emit_16(589);
emit_16(523);
emit_16(590);
emit_16(524);
emit_16(590);
emit_16(523);
emit_16(590);
emit_16(524);
emit_16(591);
emit_16(525);
emit_16(591);
emit_16(524);
emit_16(591);
emit_16(525);
emit_16(592);
emit_16(526);
emit_16(592);
emit_16(525);
emit_16(592);
emit_16(526);
emit_16(593);
emit_16(527);
emit_16(593);
emit_16(526);
emit_16(594);
emit_16(528);
emit_16(595);
emit_16(529);
emit_16(595);
emit_16(528);
emit_16(595);
emit_16(529);
emit_16(596);
emit_16(530);
emit_16(596);
emit_16(529);
emit_16(596);
emit_16(530);
emit_16(597);
emit_16(531);
emit_16(597);
emit_16(530);
emit_16(597);
emit_16(531);
emit_16(598);
emit_16(532);
emit_16(598);
emit_16(531);
emit_16(598);
emit_16(532);
emit_16(599);
emit_16(533);
emit_16(599);
emit_16(532);
emit_16(599);
emit_16(533);
emit_16(600);
emit_16(534);
emit_16(600);
emit_16(533);
emit_16(600);
emit_16(534);
emit_16(601);
emit_16(535);
emit_16(601);
emit_16(534);
emit_16(601);
emit_16(535);
emit_16(602);
emit_16(536);
emit_16(602);
emit_16(535);
emit_16(602);
emit_16(536);
emit_16(603);
emit_16(537);
emit_16(603);
emit_16(536);
emit_16(603);
emit_16(537);
emit_16(604);
emit_16(538);
emit_16(604);
emit_16(537);
emit_16(604);
emit_16(538);
emit_16(605);
emit_16(539);
emit_16(605);
emit_16(538);
emit_16(605);
emit_16(539);
emit_16(606);
emit_16(540);
emit_16(606);
emit_16(539);
emit_16(606);
emit_16(540);
emit_16(607);
emit_16(541);
emit_16(607);
emit_16(540);
emit_16(607);
emit_16(541);
emit_16(608);
emit_16(542);
emit_16(608);
emit_16(541);
emit_16(608);
emit_16(542);
emit_16(609);
emit_16(543);
emit_16(609);
emit_16(542);
emit_16(609);
emit_16(543);
emit_16(610);
emit_16(544);
emit_16(610);
emit_16(543);
emit_16(610);
emit_16(544);
emit_16(611);
emit_16(545);
emit_16(611);
emit_16(544);
emit_16(611);
emit_16(545);
emit_16(612);
emit_16(546);
emit_16(612);
emit_16(545);
emit_16(612);
emit_16(546);
emit_16(613);
emit_16(547);
emit_16(613);
emit_16(546);
emit_16(613);
emit_16(547);
emit_16(614);
emit_16(548);
emit_16(614);
emit_16(547);
emit_16(614);
emit_16(548);
emit_16(615);
emit_16(549);
emit_16(615);
emit_16(548);
emit_16(615);
emit_16(549);
emit_16(616);
emit_16(550);
emit_16(616);
emit_16(549);
emit_16(616);
emit_16(550);
emit_16(617);
emit_16(551);
emit_16(617);
emit_16(550);
emit_16(617);
emit_16(551);
emit_16(618);
emit_16(552);
emit_16(618);
emit_16(551);
emit_16(618);
emit_16(552);
emit_16(619);
emit_16(553);
emit_16(619);
emit_16(552);
emit_16(619);
emit_16(553);
emit_16(620);
emit_16(554);
emit_16(620);
emit_16(553);
emit_16(620);
emit_16(554);
emit_16(621);
emit_16(555);
emit_16(621);
emit_16(554);
emit_16(621);
emit_16(555);
emit_16(622);
emit_16(556);
emit_16(622);
emit_16(555);
emit_16(622);
emit_16(556);
emit_16(623);
emit_16(557);
emit_16(623);
emit_16(556);
emit_16(623);
emit_16(557);
emit_16(624);
emit_16(558);
emit_16(624);
emit_16(557);
emit_16(624);
emit_16(558);
emit_16(625);
emit_16(559);
emit_16(625);
emit_16(558);
emit_16(625);
emit_16(559);
emit_16(626);
emit_16(560);
emit_16(626);
emit_16(559);
emit_16(626);
emit_16(560);
emit_16(627);
emit_16(561);
emit_16(627);
emit_16(560);
emit_16(627);
emit_16(561);
emit_16(628);
emit_16(562);
emit_16(628);
emit_16(561);
emit_16(628);
emit_16(562);
emit_16(629);
emit_16(563);
emit_16(629);
emit_16(562);
emit_16(629);
emit_16(563);
emit_16(630);
emit_16(564);
emit_16(630);
emit_16(563);
emit_16(630);
emit_16(564);
emit_16(631);
emit_16(565);
emit_16(631);
emit_16(564);
emit_16(631);
emit_16(565);
emit_16(632);
emit_16(566);
emit_16(632);
emit_16(565);
emit_16(632);
emit_16(566);
emit_16(633);
emit_16(567);
emit_16(633);
emit_16(566);
emit_16(633);
emit_16(567);
emit_16(634);
emit_16(568);
emit_16(634);
emit_16(567);
emit_16(634);
emit_16(568);
emit_16(635);
emit_16(569);
emit_16(635);
emit_16(568);
emit_16(635);
emit_16(569);
emit_16(636);
emit_16(570);
emit_16(636);
emit_16(569);
emit_16(636);
emit_16(570);
emit_16(637);
emit_16(571);
emit_16(637);
emit_16(570);
emit_16(637);
emit_16(571);
emit_16(638);
emit_16(572);
emit_16(638);
emit_16(571);
emit_16(638);
emit_16(572);
emit_16(639);
emit_16(573);
emit_16(639);
emit_16(572);
emit_16(639);
emit_16(573);
emit_16(640);
emit_16(574);
emit_16(640);
emit_16(573);
emit_16(640);
emit_16(574);
emit_16(641);
emit_16(575);
emit_16(641);
emit_16(574);
emit_16(641);
emit_16(575);
emit_16(642);
emit_16(576);
emit_16(642);
emit_16(575);
emit_16(642);
emit_16(576);
emit_16(643);
emit_16(577);
emit_16(643);
emit_16(576);
emit_16(643);
emit_16(577);
emit_16(644);
emit_16(578);
emit_16(644);
emit_16(577);
emit_16(644);
emit_16(578);
emit_16(645);
emit_16(579);
emit_16(645);
emit_16(578);
emit_16(645);
emit_16(579);
emit_16(646);
emit_16(580);
emit_16(646);
emit_16(579);
emit_16(646);
emit_16(580);
emit_16(647);
emit_16(581);
emit_16(647);
emit_16(580);
emit_16(647);
emit_16(581);
emit_16(648);
emit_16(582);
emit_16(648);
emit_16(581);
emit_16(648);
emit_16(582);
emit_16(649);
emit_16(583);
emit_16(649);
emit_16(582);
emit_16(649);
emit_16(583);
emit_16(650);
emit_16(584);
emit_16(650);
emit_16(583);
emit_16(650);
emit_16(584);
emit_16(651);
emit_16(585);
emit_16(651);
emit_16(584);
emit_16(651);
emit_16(585);
emit_16(652);
emit_16(586);
emit_16(652);
emit_16(585);
emit_16(652);
emit_16(586);
emit_16(653);
emit_16(587);
emit_16(653);
emit_16(586);
emit_16(653);
emit_16(587);
emit_16(654);
emit_16(588);
emit_16(654);
emit_16(587);
emit_16(654);
emit_16(588);
emit_16(655);
emit_16(589);
emit_16(655);
emit_16(588);
emit_16(655);
emit_16(589);
emit_16(656);
emit_16(590);
emit_16(656);
emit_16(589);
emit_16(656);
emit_16(590);
emit_16(657);
emit_16(591);
emit_16(657);
emit_16(590);
emit_16(657);
emit_16(591);
emit_16(658);
emit_16(592);
emit_16(658);
emit_16(591);
emit_16(658);
emit_16(592);
emit_16(659);
emit_16(593);
emit_16(659);
emit_16(592);
emit_16(660);
emit_16(594);
emit_16(661);
emit_16(595);
emit_16(661);
emit_16(594);
emit_16(661);
emit_16(595);
emit_16(662);
emit_16(596);
emit_16(662);
emit_16(595);
emit_16(662);
emit_16(596);
emit_16(663);
emit_16(597);
emit_16(663);
emit_16(596);
emit_16(663);
emit_16(597);
emit_16(664);
emit_16(598);
emit_16(664);
emit_16(597);
emit_16(664);
emit_16(598);
emit_16(665);
emit_16(599);
emit_16(665);
emit_16(598);
emit_16(665);
emit_16(599);
emit_16(666);
emit_16(600);
emit_16(666);
emit_16(599);
emit_16(666);
emit_16(600);
emit_16(667);
emit_16(601);
emit_16(667);
emit_16(600);
emit_16(667);
emit_16(601);
emit_16(668);
emit_16(602);
emit_16(668);
emit_16(601);
emit_16(668);
emit_16(602);
emit_16(669);
emit_16(603);
emit_16(669);
emit_16(602);
emit_16(669);
emit_16(603);
emit_16(670);
emit_16(604);
emit_16(670);
emit_16(603);
emit_16(670);
emit_16(604);
emit_16(671);
emit_16(605);
emit_16(671);
emit_16(604);
emit_16(671);
emit_16(605);
emit_16(672);
emit_16(606);
emit_16(672);
emit_16(605);
emit_16(672);
emit_16(606);
emit_16(673);
emit_16(607);
emit_16(673);
emit_16(606);
emit_16(673);
emit_16(607);
emit_16(674);
emit_16(608);
emit_16(674);
emit_16(607);
emit_16(674);
emit_16(608);
emit_16(675);
emit_16(609);
emit_16(675);
emit_16(608);
emit_16(675);
emit_16(609);
emit_16(676);
emit_16(610);
emit_16(676);
emit_16(609);
emit_16(676);
emit_16(610);
emit_16(677);
emit_16(611);
emit_16(677);
emit_16(610);
emit_16(677);
emit_16(611);
emit_16(678);
emit_16(612);
emit_16(678);
emit_16(611);
emit_16(678);
emit_16(612);
emit_16(679);
emit_16(613);
emit_16(679);
emit_16(612);
emit_16(679);
emit_16(613);
emit_16(680);
emit_16(614);
emit_16(680);
emit_16(613);
emit_16(680);
emit_16(614);
emit_16(681);
emit_16(615);
emit_16(681);
emit_16(614);
emit_16(681);
emit_16(615);
emit_16(682);
emit_16(616);
emit_16(682);
emit_16(615);
emit_16(682);
emit_16(616);
emit_16(683);
emit_16(617);
emit_16(683);
emit_16(616);
emit_16(683);
emit_16(617);
emit_16(684);
emit_16(618);
emit_16(684);
emit_16(617);
emit_16(684);
emit_16(618);
emit_16(685);
emit_16(619);
emit_16(685);
emit_16(618);
emit_16(685);
emit_16(619);
emit_16(686);
emit_16(620);
emit_16(686);
emit_16(619);
emit_16(686);
emit_16(620);
emit_16(687);
emit_16(621);
emit_16(687);
emit_16(620);
emit_16(687);
emit_16(621);
emit_16(688);
emit_16(622);
emit_16(688);
emit_16(621);
emit_16(688);
emit_16(622);
emit_16(689);
emit_16(623);
emit_16(689);
emit_16(622);
emit_16(689);
emit_16(623);
emit_16(690);
emit_16(624);
emit_16(690);
emit_16(623);
emit_16(690);
emit_16(624);
emit_16(691);
emit_16(625);
emit_16(691);
emit_16(624);
emit_16(691);
emit_16(625);
emit_16(692);
emit_16(626);
emit_16(692);
emit_16(625);
emit_16(692);
emit_16(626);
emit_16(693);
emit_16(627);
emit_16(693);
emit_16(626);
emit_16(693);
emit_16(627);
emit_16(694);
emit_16(628);
emit_16(694);
emit_16(627);
emit_16(694);
emit_16(628);
emit_16(695);
emit_16(629);
emit_16(695);
emit_16(628);
emit_16(695);
emit_16(629);
emit_16(696);
emit_16(630);
emit_16(696);
emit_16(629);
emit_16(696);
emit_16(630);
emit_16(697);
emit_16(631);
emit_16(697);
emit_16(630);
emit_16(697);
emit_16(631);
emit_16(698);
emit_16(632);
emit_16(698);
emit_16(631);
emit_16(698);
emit_16(632);
emit_16(699);
emit_16(633);
emit_16(699);
emit_16(632);
emit_16(699);
emit_16(633);
emit_16(700);
emit_16(634);
emit_16(700);
emit_16(633);
emit_16(700);
emit_16(634);
emit_16(701);
emit_16(635);
emit_16(701);
emit_16(634);
emit_16(701);
emit_16(635);
emit_16(702);
emit_16(636);
emit_16(702);
emit_16(635);
emit_16(702);
emit_16(636);
emit_16(703);
emit_16(637);
emit_16(703);
emit_16(636);
emit_16(703);
emit_16(637);
emit_16(704);
emit_16(638);
emit_16(704);
emit_16(637);
emit_16(704);
emit_16(638);
emit_16(705);
emit_16(639);
emit_16(705);
emit_16(638);
emit_16(705);
emit_16(639);
emit_16(706);
emit_16(640);
emit_16(706);
emit_16(639);
emit_16(706);
emit_16(640);
emit_16(707);
emit_16(641);
emit_16(707);
emit_16(640);
emit_16(707);
emit_16(641);
emit_16(708);
emit_16(642);
emit_16(708);
emit_16(641);
emit_16(708);
emit_16(642);
emit_16(709);
emit_16(643);
emit_16(709);
emit_16(642);
emit_16(709);
emit_16(643);
emit_16(710);
emit_16(644);
emit_16(710);
emit_16(643);
emit_16(710);
emit_16(644);
emit_16(711);
emit_16(645);
emit_16(711);
emit_16(644);
emit_16(711);
emit_16(645);
emit_16(712);
emit_16(646);
emit_16(712);
emit_16(645);
emit_16(712);
emit_16(646);
emit_16(713);
emit_16(647);
emit_16(713);
emit_16(646);
emit_16(713);
emit_16(647);
emit_16(714);
emit_16(648);
emit_16(714);
emit_16(647);
emit_16(714);
emit_16(648);
emit_16(715);
emit_16(649);
emit_16(715);
emit_16(648);
emit_16(715);
emit_16(649);
emit_16(716);
emit_16(650);
emit_16(716);
emit_16(649);
emit_16(716);
emit_16(650);
emit_16(717);
emit_16(651);
emit_16(717);
emit_16(650);
emit_16(717);
emit_16(651);
emit_16(718);
emit_16(652);
emit_16(718);
emit_16(651);
emit_16(718);
emit_16(652);
emit_16(719);
emit_16(653);
emit_16(719);
emit_16(652);
emit_16(719);
emit_16(653);
emit_16(720);
emit_16(654);
emit_16(720);
emit_16(653);
emit_16(720);
emit_16(654);
emit_16(721);
emit_16(655);
emit_16(721);
emit_16(654);
emit_16(721);
emit_16(655);
emit_16(722);
emit_16(656);
emit_16(722);
emit_16(655);
emit_16(722);
emit_16(656);
emit_16(723);
emit_16(657);
emit_16(723);
emit_16(656);
emit_16(723);
emit_16(657);
emit_16(724);
emit_16(658);
emit_16(724);
emit_16(657);
emit_16(724);
emit_16(658);
emit_16(725);
emit_16(659);
emit_16(725);
emit_16(658);
emit_16(726);
emit_16(660);
emit_16(727);
emit_16(661);
emit_16(727);
emit_16(660);
emit_16(727);
emit_16(661);
emit_16(728);
emit_16(662);
emit_16(728);
emit_16(661);
emit_16(728);
emit_16(662);
emit_16(729);
emit_16(663);
emit_16(729);
emit_16(662);
emit_16(729);
emit_16(663);
emit_16(730);
emit_16(664);
emit_16(730);
emit_16(663);
emit_16(730);
emit_16(664);
emit_16(731);
emit_16(665);
emit_16(731);
emit_16(664);
emit_16(731);
emit_16(665);
emit_16(732);
emit_16(666);
emit_16(732);
emit_16(665);
emit_16(732);
emit_16(666);
emit_16(733);
emit_16(667);
emit_16(733);
emit_16(666);
emit_16(733);
emit_16(667);
emit_16(734);
emit_16(668);
emit_16(734);
emit_16(667);
emit_16(734);
emit_16(668);
emit_16(735);
emit_16(669);
emit_16(735);
emit_16(668);
emit_16(735);
emit_16(669);
emit_16(736);
emit_16(670);
emit_16(736);
emit_16(669);
emit_16(736);
emit_16(670);
emit_16(737);
emit_16(671);
emit_16(737);
emit_16(670);
emit_16(737);
emit_16(671);
emit_16(738);
emit_16(672);
emit_16(738);
emit_16(671);
emit_16(738);
emit_16(672);
emit_16(739);
emit_16(673);
emit_16(739);
emit_16(672);
emit_16(739);
emit_16(673);
emit_16(740);
emit_16(674);
emit_16(740);
emit_16(673);
emit_16(740);
emit_16(674);
emit_16(741);
emit_16(675);
emit_16(741);
emit_16(674);
emit_16(741);
emit_16(675);
emit_16(742);
emit_16(676);
emit_16(742);
emit_16(675);
emit_16(742);
emit_16(676);
emit_16(743);
emit_16(677);
emit_16(743);
emit_16(676);
emit_16(743);
emit_16(677);
emit_16(744);
emit_16(678);
emit_16(744);
emit_16(677);
emit_16(744);
emit_16(678);
emit_16(745);
emit_16(679);
emit_16(745);
emit_16(678);
emit_16(745);
emit_16(679);
emit_16(746);
emit_16(680);
emit_16(746);
emit_16(679);
emit_16(746);
emit_16(680);
emit_16(747);
emit_16(681);
emit_16(747);
emit_16(680);
emit_16(747);
emit_16(681);
emit_16(748);
emit_16(682);
emit_16(748);
emit_16(681);
emit_16(748);
emit_16(682);
emit_16(749);
emit_16(683);
emit_16(749);
emit_16(682);
emit_16(749);
emit_16(683);
emit_16(750);
emit_16(684);
emit_16(750);
emit_16(683);
emit_16(750);
emit_16(684);
emit_16(751);
emit_16(685);
emit_16(751);
emit_16(684);
emit_16(751);
emit_16(685);
emit_16(752);
emit_16(686);
emit_16(752);
emit_16(685);
emit_16(752);
emit_16(686);
emit_16(753);
emit_16(687);
emit_16(753);
emit_16(686);
emit_16(753);
emit_16(687);
emit_16(754);
emit_16(688);
emit_16(754);
emit_16(687);
emit_16(754);
emit_16(688);
emit_16(755);
emit_16(689);
emit_16(755);
emit_16(688);
emit_16(755);
emit_16(689);
emit_16(756);
emit_16(690);
emit_16(756);
emit_16(689);
emit_16(756);
emit_16(690);
emit_16(757);
emit_16(691);
emit_16(757);
emit_16(690);
emit_16(757);
emit_16(691);
emit_16(758);
emit_16(692);
emit_16(758);
emit_16(691);
emit_16(758);
emit_16(692);
emit_16(759);
emit_16(693);
emit_16(759);
emit_16(692);
emit_16(759);
emit_16(693);
emit_16(760);
emit_16(694);
emit_16(760);
emit_16(693);
emit_16(760);
emit_16(694);
emit_16(761);
emit_16(695);
emit_16(761);
emit_16(694);
emit_16(761);
emit_16(695);
emit_16(762);
emit_16(696);
emit_16(762);
emit_16(695);
emit_16(762);
emit_16(696);
emit_16(763);
emit_16(697);
emit_16(763);
emit_16(696);
emit_16(763);
emit_16(697);
emit_16(764);
emit_16(698);
emit_16(764);
emit_16(697);
emit_16(764);
emit_16(698);
emit_16(765);
emit_16(699);
emit_16(765);
emit_16(698);
emit_16(765);
emit_16(699);
emit_16(766);
emit_16(700);
emit_16(766);
emit_16(699);
emit_16(766);
emit_16(700);
emit_16(767);
emit_16(701);
emit_16(767);
emit_16(700);
emit_16(767);
emit_16(701);
emit_16(768);
emit_16(702);
emit_16(768);
emit_16(701);
emit_16(768);
emit_16(702);
emit_16(769);
emit_16(703);
emit_16(769);
emit_16(702);
emit_16(769);
emit_16(703);
emit_16(770);
emit_16(704);
emit_16(770);
emit_16(703);
emit_16(770);
emit_16(704);
emit_16(771);
emit_16(705);
emit_16(771);
emit_16(704);
emit_16(771);
emit_16(705);
emit_16(772);
emit_16(706);
emit_16(772);
emit_16(705);
emit_16(772);
emit_16(706);
emit_16(773);
emit_16(707);
emit_16(773);
emit_16(706);
emit_16(773);
emit_16(707);
emit_16(774);
emit_16(708);
emit_16(774);
emit_16(707);
emit_16(774);
emit_16(708);
emit_16(775);
emit_16(709);
emit_16(775);
emit_16(708);
emit_16(775);
emit_16(709);
emit_16(776);
emit_16(710);
emit_16(776);
emit_16(709);
emit_16(776);
emit_16(710);
emit_16(777);
emit_16(711);
emit_16(777);
emit_16(710);
emit_16(777);
emit_16(711);
emit_16(778);
emit_16(712);
emit_16(778);
emit_16(711);
emit_16(778);
emit_16(712);
emit_16(779);
emit_16(713);
emit_16(779);
emit_16(712);
emit_16(779);
emit_16(713);
emit_16(780);
emit_16(714);
emit_16(780);
emit_16(713);
emit_16(780);
emit_16(714);
emit_16(781);
emit_16(715);
emit_16(781);
emit_16(714);
emit_16(781);
emit_16(715);
emit_16(782);
emit_16(716);
emit_16(782);
emit_16(715);
emit_16(782);
emit_16(716);
emit_16(783);
emit_16(717);
emit_16(783);
emit_16(716);
emit_16(783);
emit_16(717);
emit_16(784);
emit_16(718);
emit_16(784);
emit_16(717);
emit_16(784);
emit_16(718);
emit_16(785);
emit_16(719);
emit_16(785);
emit_16(718);
emit_16(785);
emit_16(719);
emit_16(786);
emit_16(720);
emit_16(786);
emit_16(719);
emit_16(786);
emit_16(720);
emit_16(787);
emit_16(721);
emit_16(787);
emit_16(720);
emit_16(787);
emit_16(721);
emit_16(788);
emit_16(722);
emit_16(788);
emit_16(721);
emit_16(788);
emit_16(722);
emit_16(789);
emit_16(723);
emit_16(789);
emit_16(722);
emit_16(789);
emit_16(723);
emit_16(790);
emit_16(724);
emit_16(790);
emit_16(723);
emit_16(790);
emit_16(724);
emit_16(791);
emit_16(725);
emit_16(791);
emit_16(724);
emit_16(792);
emit_16(726);
emit_16(793);
emit_16(727);
emit_16(793);
emit_16(726);
emit_16(793);
emit_16(727);
emit_16(794);
emit_16(728);
emit_16(794);
emit_16(727);
emit_16(794);
emit_16(728);
emit_16(795);
emit_16(729);
emit_16(795);
emit_16(728);
emit_16(795);
emit_16(729);
emit_16(796);
emit_16(730);
emit_16(796);
emit_16(729);
emit_16(796);
emit_16(730);
emit_16(797);
emit_16(731);
emit_16(797);
emit_16(730);
emit_16(797);
emit_16(731);
emit_16(798);
emit_16(732);
emit_16(798);
emit_16(731);
emit_16(798);
emit_16(732);
emit_16(799);
emit_16(733);
emit_16(799);
emit_16(732);
emit_16(799);
emit_16(733);
emit_16(800);
emit_16(734);
emit_16(800);
emit_16(733);
emit_16(800);
emit_16(734);
emit_16(801);
emit_16(735);
emit_16(801);
emit_16(734);
emit_16(801);
emit_16(735);
emit_16(802);
emit_16(736);
emit_16(802);
emit_16(735);
emit_16(802);
emit_16(736);
emit_16(803);
emit_16(737);
emit_16(803);
emit_16(736);
emit_16(803);
emit_16(737);
emit_16(804);
emit_16(738);
emit_16(804);
emit_16(737);
emit_16(804);
emit_16(738);
emit_16(805);
emit_16(739);
emit_16(805);
emit_16(738);
emit_16(805);
emit_16(739);
emit_16(806);
emit_16(740);
emit_16(806);
emit_16(739);
emit_16(806);
emit_16(740);
emit_16(807);
emit_16(741);
emit_16(807);
emit_16(740);
emit_16(807);
emit_16(741);
emit_16(808);
emit_16(742);
emit_16(808);
emit_16(741);
emit_16(808);
emit_16(742);
emit_16(809);
emit_16(743);
emit_16(809);
emit_16(742);
emit_16(809);
emit_16(743);
emit_16(810);
emit_16(744);
emit_16(810);
emit_16(743);
emit_16(810);
emit_16(744);
emit_16(811);
emit_16(745);
emit_16(811);
emit_16(744);
emit_16(811);
emit_16(745);
emit_16(812);
emit_16(746);
emit_16(812);
emit_16(745);
emit_16(812);
emit_16(746);
emit_16(813);
emit_16(747);
emit_16(813);
emit_16(746);
emit_16(813);
emit_16(747);
emit_16(814);
emit_16(748);
emit_16(814);
emit_16(747);
emit_16(814);
emit_16(748);
emit_16(815);
emit_16(749);
emit_16(815);
emit_16(748);
emit_16(815);
emit_16(749);
emit_16(816);
emit_16(750);
emit_16(816);
emit_16(749);
emit_16(816);
emit_16(750);
emit_16(817);
emit_16(751);
emit_16(817);
emit_16(750);
emit_16(817);
emit_16(751);
emit_16(818);
emit_16(752);
emit_16(818);
emit_16(751);
emit_16(818);
emit_16(752);
emit_16(819);
emit_16(753);
emit_16(819);
emit_16(752);
emit_16(819);
emit_16(753);
emit_16(820);
emit_16(754);
emit_16(820);
emit_16(753);
emit_16(820);
emit_16(754);
emit_16(821);
emit_16(755);
emit_16(821);
emit_16(754);
emit_16(821);
emit_16(755);
emit_16(822);
emit_16(756);
emit_16(822);
emit_16(755);
emit_16(822);
emit_16(756);
emit_16(823);
emit_16(757);
emit_16(823);
emit_16(756);
emit_16(823);
emit_16(757);
emit_16(824);
emit_16(758);
emit_16(824);
emit_16(757);
emit_16(824);
emit_16(758);
emit_16(825);
emit_16(759);
emit_16(825);
emit_16(758);
emit_16(825);
emit_16(759);
emit_16(826);
emit_16(760);
emit_16(826);
emit_16(759);
emit_16(826);
emit_16(760);
emit_16(827);
emit_16(761);
emit_16(827);
emit_16(760);
emit_16(827);
emit_16(761);
emit_16(828);
emit_16(762);
emit_16(828);
emit_16(761);
emit_16(828);
emit_16(762);
emit_16(829);
emit_16(763);
emit_16(829);
emit_16(762);
emit_16(829);
emit_16(763);
emit_16(830);
emit_16(764);
emit_16(830);
emit_16(763);
emit_16(830);
emit_16(764);
emit_16(831);
emit_16(765);
emit_16(831);
emit_16(764);
emit_16(831);
emit_16(765);
emit_16(832);
emit_16(766);
emit_16(832);
emit_16(765);
emit_16(832);
emit_16(766);
emit_16(833);
emit_16(767);
emit_16(833);
emit_16(766);
emit_16(833);
emit_16(767);
emit_16(834);
emit_16(768);
emit_16(834);
emit_16(767);
emit_16(834);
emit_16(768);
emit_16(835);
emit_16(769);
emit_16(835);
emit_16(768);
emit_16(835);
emit_16(769);
emit_16(836);
emit_16(770);
emit_16(836);
emit_16(769);
emit_16(836);
emit_16(770);
emit_16(837);
emit_16(771);
emit_16(837);
emit_16(770);
emit_16(837);
emit_16(771);
emit_16(838);
emit_16(772);
emit_16(838);
emit_16(771);
emit_16(838);
emit_16(772);
emit_16(839);
emit_16(773);
emit_16(839);
emit_16(772);
emit_16(839);
emit_16(773);
emit_16(840);
emit_16(774);
emit_16(840);
emit_16(773);
emit_16(840);
emit_16(774);
emit_16(841);
emit_16(775);
emit_16(841);
emit_16(774);
emit_16(841);
emit_16(775);
emit_16(842);
emit_16(776);
emit_16(842);
emit_16(775);
emit_16(842);
emit_16(776);
emit_16(843);
emit_16(777);
emit_16(843);
emit_16(776);
emit_16(843);
emit_16(777);
emit_16(844);
emit_16(778);
emit_16(844);
emit_16(777);
emit_16(844);
emit_16(778);
emit_16(845);
emit_16(779);
emit_16(845);
emit_16(778);
emit_16(845);
emit_16(779);
emit_16(846);
emit_16(780);
emit_16(846);
emit_16(779);
emit_16(846);
emit_16(780);
emit_16(847);
emit_16(781);
emit_16(847);
emit_16(780);
emit_16(847);
emit_16(781);
emit_16(848);
emit_16(782);
emit_16(848);
emit_16(781);
emit_16(848);
emit_16(782);
emit_16(849);
emit_16(783);
emit_16(849);
emit_16(782);
emit_16(849);
emit_16(783);
emit_16(850);
emit_16(784);
emit_16(850);
emit_16(783);
emit_16(850);
emit_16(784);
emit_16(851);
emit_16(785);
emit_16(851);
emit_16(784);
emit_16(851);
emit_16(785);
emit_16(852);
emit_16(786);
emit_16(852);
emit_16(785);
emit_16(852);
emit_16(786);
emit_16(853);
emit_16(787);
emit_16(853);
emit_16(786);
emit_16(853);
emit_16(787);
emit_16(854);
emit_16(788);
emit_16(854);
emit_16(787);
emit_16(854);
emit_16(788);
emit_16(855);
emit_16(789);
emit_16(855);
emit_16(788);
emit_16(855);
emit_16(789);
emit_16(856);
emit_16(790);
emit_16(856);
emit_16(789);
emit_16(856);
emit_16(790);
emit_16(857);
emit_16(791);
emit_16(857);
emit_16(790);
emit_16(858);
emit_16(792);
emit_16(859);
emit_16(793);
emit_16(859);
emit_16(792);
emit_16(859);
emit_16(793);
emit_16(860);
emit_16(794);
emit_16(860);
emit_16(793);
emit_16(860);
emit_16(794);
emit_16(861);
emit_16(795);
emit_16(861);
emit_16(794);
emit_16(861);
emit_16(795);
emit_16(862);
emit_16(796);
emit_16(862);
emit_16(795);
emit_16(862);
emit_16(796);
emit_16(863);
emit_16(797);
emit_16(863);
emit_16(796);
emit_16(863);
emit_16(797);
emit_16(864);
emit_16(798);
emit_16(864);
emit_16(797);
emit_16(864);
emit_16(798);
emit_16(865);
emit_16(799);
emit_16(865);
emit_16(798);
emit_16(865);
emit_16(799);
emit_16(866);
emit_16(800);
emit_16(866);
emit_16(799);
emit_16(866);
emit_16(800);
emit_16(867);
emit_16(801);
emit_16(867);
emit_16(800);
emit_16(867);
emit_16(801);
emit_16(868);
emit_16(802);
emit_16(868);
emit_16(801);
emit_16(868);
emit_16(802);
emit_16(869);
emit_16(803);
emit_16(869);
emit_16(802);
emit_16(869);
emit_16(803);
emit_16(870);
emit_16(804);
emit_16(870);
emit_16(803);
emit_16(870);
emit_16(804);
emit_16(871);
emit_16(805);
emit_16(871);
emit_16(804);
emit_16(871);
emit_16(805);
emit_16(872);
emit_16(806);
emit_16(872);
emit_16(805);
emit_16(872);
emit_16(806);
emit_16(873);
emit_16(807);
emit_16(873);
emit_16(806);
emit_16(873);
emit_16(807);
emit_16(874);
emit_16(808);
emit_16(874);
emit_16(807);
emit_16(874);
emit_16(808);
emit_16(875);
emit_16(809);
emit_16(875);
emit_16(808);
emit_16(875);
emit_16(809);
emit_16(876);
emit_16(810);
emit_16(876);
emit_16(809);
emit_16(876);
emit_16(810);
emit_16(877);
emit_16(811);
emit_16(877);
emit_16(810);
emit_16(877);
emit_16(811);
emit_16(878);
emit_16(812);
emit_16(878);
emit_16(811);
emit_16(878);
emit_16(812);
emit_16(879);
emit_16(813);
emit_16(879);
emit_16(812);
emit_16(879);
emit_16(813);
emit_16(880);
emit_16(814);
emit_16(880);
emit_16(813);
emit_16(880);
emit_16(814);
emit_16(881);
emit_16(815);
emit_16(881);
emit_16(814);
emit_16(881);
emit_16(815);
emit_16(882);
emit_16(816);
emit_16(882);
emit_16(815);
emit_16(882);
emit_16(816);
emit_16(883);
emit_16(817);
emit_16(883);
emit_16(816);
emit_16(883);
emit_16(817);
emit_16(884);
emit_16(818);
emit_16(884);
emit_16(817);
emit_16(884);
emit_16(818);
emit_16(885);
emit_16(819);
emit_16(885);
emit_16(818);
emit_16(885);
emit_16(819);
emit_16(886);
emit_16(820);
emit_16(886);
emit_16(819);
emit_16(886);
emit_16(820);
emit_16(887);
emit_16(821);
emit_16(887);
emit_16(820);
emit_16(887);
emit_16(821);
emit_16(888);
emit_16(822);
emit_16(888);
emit_16(821);
emit_16(888);
emit_16(822);
emit_16(889);
emit_16(823);
emit_16(889);
emit_16(822);
emit_16(889);
emit_16(823);
emit_16(890);
emit_16(824);
emit_16(890);
emit_16(823);
emit_16(890);
emit_16(824);
emit_16(891);
emit_16(825);
emit_16(891);
emit_16(824);
emit_16(891);
emit_16(825);
emit_16(892);
emit_16(826);
emit_16(892);
emit_16(825);
emit_16(892);
emit_16(826);
emit_16(893);
emit_16(827);
emit_16(893);
emit_16(826);
emit_16(893);
emit_16(827);
emit_16(894);
emit_16(828);
emit_16(894);
emit_16(827);
emit_16(894);
emit_16(828);
emit_16(895);
emit_16(829);
emit_16(895);
emit_16(828);
emit_16(895);
emit_16(829);
emit_16(896);
emit_16(830);
emit_16(896);
emit_16(829);
emit_16(896);
emit_16(830);
emit_16(897);
emit_16(831);
emit_16(897);
emit_16(830);
emit_16(897);
emit_16(831);
emit_16(898);
emit_16(832);
emit_16(898);
emit_16(831);
emit_16(898);
emit_16(832);
emit_16(899);
emit_16(833);
emit_16(899);
emit_16(832);
emit_16(899);
emit_16(833);
emit_16(900);
emit_16(834);
emit_16(900);
emit_16(833);
emit_16(900);
emit_16(834);
emit_16(901);
emit_16(835);
emit_16(901);
emit_16(834);
emit_16(901);
emit_16(835);
emit_16(902);
emit_16(836);
emit_16(902);
emit_16(835);
emit_16(902);
emit_16(836);
emit_16(903);
emit_16(837);
emit_16(903);
emit_16(836);
emit_16(903);
emit_16(837);
emit_16(904);
emit_16(838);
emit_16(904);
emit_16(837);
emit_16(904);
emit_16(838);
emit_16(905);
emit_16(839);
emit_16(905);
emit_16(838);
emit_16(905);
emit_16(839);
emit_16(906);
emit_16(840);
emit_16(906);
emit_16(839);
emit_16(906);
emit_16(840);
emit_16(907);
emit_16(841);
emit_16(907);
emit_16(840);
emit_16(907);
emit_16(841);
emit_16(908);
emit_16(842);
emit_16(908);
emit_16(841);
emit_16(908);
emit_16(842);
emit_16(909);
emit_16(843);
emit_16(909);
emit_16(842);
emit_16(909);
emit_16(843);
emit_16(910);
emit_16(844);
emit_16(910);
emit_16(843);
emit_16(910);
emit_16(844);
emit_16(911);
emit_16(845);
emit_16(911);
emit_16(844);
emit_16(911);
emit_16(845);
emit_16(912);
emit_16(846);
emit_16(912);
emit_16(845);
emit_16(912);
emit_16(846);
emit_16(913);
emit_16(847);
emit_16(913);
emit_16(846);
emit_16(913);
emit_16(847);
emit_16(914);
emit_16(848);
emit_16(914);
emit_16(847);
emit_16(914);
emit_16(848);
emit_16(915);
emit_16(849);
emit_16(915);
emit_16(848);
emit_16(915);
emit_16(849);
emit_16(916);
emit_16(850);
emit_16(916);
emit_16(849);
emit_16(916);
emit_16(850);
emit_16(917);
emit_16(851);
emit_16(917);
emit_16(850);
emit_16(917);
emit_16(851);
emit_16(918);
emit_16(852);
emit_16(918);
emit_16(851);
emit_16(918);
emit_16(852);
emit_16(919);
emit_16(853);
emit_16(919);
emit_16(852);
emit_16(919);
emit_16(853);
emit_16(920);
emit_16(854);
emit_16(920);
emit_16(853);
emit_16(920);
emit_16(854);
emit_16(921);
emit_16(855);
emit_16(921);
emit_16(854);
emit_16(921);
emit_16(855);
emit_16(922);
emit_16(856);
emit_16(922);
emit_16(855);
emit_16(922);
emit_16(856);
emit_16(923);
emit_16(857);
emit_16(923);
emit_16(856);
emit_16(924);
emit_16(858);
emit_16(925);
emit_16(859);
emit_16(925);
emit_16(858);
emit_16(925);
emit_16(859);
emit_16(926);
emit_16(860);
emit_16(926);
emit_16(859);
emit_16(926);
emit_16(860);
emit_16(927);
emit_16(861);
emit_16(927);
emit_16(860);
emit_16(927);
emit_16(861);
emit_16(928);
emit_16(862);
emit_16(928);
emit_16(861);
emit_16(928);
emit_16(862);
emit_16(929);
emit_16(863);
emit_16(929);
emit_16(862);
emit_16(929);
emit_16(863);
emit_16(930);
emit_16(864);
emit_16(930);
emit_16(863);
emit_16(930);
emit_16(864);
emit_16(931);
emit_16(865);
emit_16(931);
emit_16(864);
emit_16(931);
emit_16(865);
emit_16(932);
emit_16(866);
emit_16(932);
emit_16(865);
emit_16(932);
emit_16(866);
emit_16(933);
emit_16(867);
emit_16(933);
emit_16(866);
emit_16(933);
emit_16(867);
emit_16(934);
emit_16(868);
emit_16(934);
emit_16(867);
emit_16(934);
emit_16(868);
emit_16(935);
emit_16(869);
emit_16(935);
emit_16(868);
emit_16(935);
emit_16(869);
emit_16(936);
emit_16(870);
emit_16(936);
emit_16(869);
emit_16(936);
emit_16(870);
emit_16(937);
emit_16(871);
emit_16(937);
emit_16(870);
emit_16(937);
emit_16(871);
emit_16(938);
emit_16(872);
emit_16(938);
emit_16(871);
emit_16(938);
emit_16(872);
emit_16(939);
emit_16(873);
emit_16(939);
emit_16(872);
emit_16(939);
emit_16(873);
emit_16(940);
emit_16(874);
emit_16(940);
emit_16(873);
emit_16(940);
emit_16(874);
emit_16(941);
emit_16(875);
emit_16(941);
emit_16(874);
emit_16(941);
emit_16(875);
emit_16(942);
emit_16(876);
emit_16(942);
emit_16(875);
emit_16(942);
emit_16(876);
emit_16(943);
emit_16(877);
emit_16(943);
emit_16(876);
emit_16(943);
emit_16(877);
emit_16(944);
emit_16(878);
emit_16(944);
emit_16(877);
emit_16(944);
emit_16(878);
emit_16(945);
emit_16(879);
emit_16(945);
emit_16(878);
emit_16(945);
emit_16(879);
emit_16(946);
emit_16(880);
emit_16(946);
emit_16(879);
emit_16(946);
emit_16(880);
emit_16(947);
emit_16(881);
emit_16(947);
emit_16(880);
emit_16(947);
emit_16(881);
emit_16(948);
emit_16(882);
emit_16(948);
emit_16(881);
emit_16(948);
emit_16(882);
emit_16(949);
emit_16(883);
emit_16(949);
emit_16(882);
emit_16(949);
emit_16(883);
emit_16(950);
emit_16(884);
emit_16(950);
emit_16(883);
emit_16(950);
emit_16(884);
emit_16(951);
emit_16(885);
emit_16(951);
emit_16(884);
emit_16(951);
emit_16(885);
emit_16(952);
emit_16(886);
emit_16(952);
emit_16(885);
emit_16(952);
emit_16(886);
emit_16(953);
emit_16(887);
emit_16(953);
emit_16(886);
emit_16(953);
emit_16(887);
emit_16(954);
emit_16(888);
emit_16(954);
emit_16(887);
emit_16(954);
emit_16(888);
emit_16(955);
emit_16(889);
emit_16(955);
emit_16(888);
emit_16(955);
emit_16(889);
emit_16(956);
emit_16(890);
emit_16(956);
emit_16(889);
emit_16(956);
emit_16(890);
emit_16(957);
emit_16(891);
emit_16(957);
emit_16(890);
emit_16(957);
emit_16(891);
emit_16(958);
emit_16(892);
emit_16(958);
emit_16(891);
emit_16(958);
emit_16(892);
emit_16(959);
emit_16(893);
emit_16(959);
emit_16(892);
emit_16(959);
emit_16(893);
emit_16(960);
emit_16(894);
emit_16(960);
emit_16(893);
emit_16(960);
emit_16(894);
emit_16(961);
emit_16(895);
emit_16(961);
emit_16(894);
emit_16(961);
emit_16(895);
emit_16(962);
emit_16(896);
emit_16(962);
emit_16(895);
emit_16(962);
emit_16(896);
emit_16(963);
emit_16(897);
emit_16(963);
emit_16(896);
emit_16(963);
emit_16(897);
emit_16(964);
emit_16(898);
emit_16(964);
emit_16(897);
emit_16(964);
emit_16(898);
emit_16(965);
emit_16(899);
emit_16(965);
emit_16(898);
emit_16(965);
emit_16(899);
emit_16(966);
emit_16(900);
emit_16(966);
emit_16(899);
emit_16(966);
emit_16(900);
emit_16(967);
emit_16(901);
emit_16(967);
emit_16(900);
emit_16(967);
emit_16(901);
emit_16(968);
emit_16(902);
emit_16(968);
emit_16(901);
emit_16(968);
emit_16(902);
emit_16(969);
emit_16(903);
emit_16(969);
emit_16(902);
emit_16(969);
emit_16(903);
emit_16(970);
emit_16(904);
emit_16(970);
emit_16(903);
emit_16(970);
emit_16(904);
emit_16(971);
emit_16(905);
emit_16(971);
emit_16(904);
emit_16(971);
emit_16(905);
emit_16(972);
emit_16(906);
emit_16(972);
emit_16(905);
emit_16(972);
emit_16(906);
emit_16(973);
emit_16(907);
emit_16(973);
emit_16(906);
emit_16(973);
emit_16(907);
emit_16(974);
emit_16(908);
emit_16(974);
emit_16(907);
emit_16(974);
emit_16(908);
emit_16(975);
emit_16(909);
emit_16(975);
emit_16(908);
emit_16(975);
emit_16(909);
emit_16(976);
emit_16(910);
emit_16(976);
emit_16(909);
emit_16(976);
emit_16(910);
emit_16(977);
emit_16(911);
emit_16(977);
emit_16(910);
emit_16(977);
emit_16(911);
emit_16(978);
emit_16(912);
emit_16(978);
emit_16(911);
emit_16(978);
emit_16(912);
emit_16(979);
emit_16(913);
emit_16(979);
emit_16(912);
emit_16(979);
emit_16(913);
emit_16(980);
emit_16(914);
emit_16(980);
emit_16(913);
emit_16(980);
emit_16(914);
emit_16(981);
emit_16(915);
emit_16(981);
emit_16(914);
emit_16(981);
emit_16(915);
emit_16(982);
emit_16(916);
emit_16(982);
emit_16(915);
emit_16(982);
emit_16(916);
emit_16(983);
emit_16(917);
emit_16(983);
emit_16(916);
emit_16(983);
emit_16(917);
emit_16(984);
emit_16(918);
emit_16(984);
emit_16(917);
emit_16(984);
emit_16(918);
emit_16(985);
emit_16(919);
emit_16(985);
emit_16(918);
emit_16(985);
emit_16(919);
emit_16(986);
emit_16(920);
emit_16(986);
emit_16(919);
emit_16(986);
emit_16(920);
emit_16(987);
emit_16(921);
emit_16(987);
emit_16(920);
emit_16(987);
emit_16(921);
emit_16(988);
emit_16(922);
emit_16(988);
emit_16(921);
emit_16(988);
emit_16(922);
emit_16(989);
emit_16(923);
emit_16(989);
emit_16(922);
emit_16(990);
emit_16(924);
emit_16(991);
emit_16(925);
emit_16(991);
emit_16(924);
emit_16(991);
emit_16(925);
emit_16(992);
emit_16(926);
emit_16(992);
emit_16(925);
emit_16(992);
emit_16(926);
emit_16(993);
emit_16(927);
emit_16(993);
emit_16(926);
emit_16(993);
emit_16(927);
emit_16(994);
emit_16(928);
emit_16(994);
emit_16(927);
emit_16(994);
emit_16(928);
emit_16(995);
emit_16(929);
emit_16(995);
emit_16(928);
emit_16(995);
emit_16(929);
emit_16(996);
emit_16(930);
emit_16(996);
emit_16(929);
emit_16(996);
emit_16(930);
emit_16(997);
emit_16(931);
emit_16(997);
emit_16(930);
emit_16(997);
emit_16(931);
emit_16(998);
emit_16(932);
emit_16(998);
emit_16(931);
emit_16(998);
emit_16(932);
emit_16(999);
emit_16(933);
emit_16(999);
emit_16(932);
emit_16(999);
emit_16(933);
emit_16(1000);
emit_16(934);
emit_16(1000);
emit_16(933);
emit_16(1000);
emit_16(934);
emit_16(1001);
emit_16(935);
emit_16(1001);
emit_16(934);
emit_16(1001);
emit_16(935);
emit_16(1002);
emit_16(936);
emit_16(1002);
emit_16(935);
emit_16(1002);
emit_16(936);
emit_16(1003);
emit_16(937);
emit_16(1003);
emit_16(936);
emit_16(1003);
emit_16(937);
emit_16(1004);
emit_16(938);
emit_16(1004);
emit_16(937);
emit_16(1004);
emit_16(938);
emit_16(1005);
emit_16(939);
emit_16(1005);
emit_16(938);
emit_16(1005);
emit_16(939);
emit_16(1006);
emit_16(940);
emit_16(1006);
emit_16(939);
emit_16(1006);
emit_16(940);
emit_16(1007);
emit_16(941);
emit_16(1007);
emit_16(940);
emit_16(1007);
emit_16(941);
emit_16(1008);
emit_16(942);
emit_16(1008);
emit_16(941);
emit_16(1008);
emit_16(942);
emit_16(1009);
emit_16(943);
emit_16(1009);
emit_16(942);
emit_16(1009);
emit_16(943);
emit_16(1010);
emit_16(944);
emit_16(1010);
emit_16(943);
emit_16(1010);
emit_16(944);
emit_16(1011);
emit_16(945);
emit_16(1011);
emit_16(944);
emit_16(1011);
emit_16(945);
emit_16(1012);
emit_16(946);
emit_16(1012);
emit_16(945);
emit_16(1012);
emit_16(946);
emit_16(1013);
emit_16(947);
emit_16(1013);
emit_16(946);
emit_16(1013);
emit_16(947);
emit_16(1014);
emit_16(948);
emit_16(1014);
emit_16(947);
emit_16(1014);
emit_16(948);
emit_16(1015);
emit_16(949);
emit_16(1015);
emit_16(948);
emit_16(1015);
emit_16(949);
emit_16(1016);
emit_16(950);
emit_16(1016);
emit_16(949);
emit_16(1016);
emit_16(950);
emit_16(1017);
emit_16(951);
emit_16(1017);
emit_16(950);
emit_16(1017);
emit_16(951);
emit_16(1018);
emit_16(952);
emit_16(1018);
emit_16(951);
emit_16(1018);
emit_16(952);
emit_16(1019);
emit_16(953);
emit_16(1019);
emit_16(952);
emit_16(1019);
emit_16(953);
emit_16(1020);
emit_16(954);
emit_16(1020);
emit_16(953);
emit_16(1020);
emit_16(954);
emit_16(1021);
emit_16(955);
emit_16(1021);
emit_16(954);
emit_16(1021);
emit_16(955);
emit_16(1022);
emit_16(956);
emit_16(1022);
emit_16(955);
emit_16(1022);
emit_16(956);
emit_16(1023);
emit_16(957);
emit_16(1023);
emit_16(956);
emit_16(1023);
emit_16(957);
emit_16(1024);
emit_16(958);
emit_16(1024);
emit_16(957);
emit_16(1024);
emit_16(958);
emit_16(1025);
emit_16(959);
emit_16(1025);
emit_16(958);
emit_16(1025);
emit_16(959);
emit_16(1026);
emit_16(960);
emit_16(1026);
emit_16(959);
emit_16(1026);
emit_16(960);
emit_16(1027);
emit_16(961);
emit_16(1027);
emit_16(960);
emit_16(1027);
emit_16(961);
emit_16(1028);
emit_16(962);
emit_16(1028);
emit_16(961);
emit_16(1028);
emit_16(962);
emit_16(1029);
emit_16(963);
emit_16(1029);
emit_16(962);
emit_16(1029);
emit_16(963);
emit_16(1030);
emit_16(964);
emit_16(1030);
emit_16(963);
emit_16(1030);
emit_16(964);
emit_16(1031);
emit_16(965);
emit_16(1031);
emit_16(964);
emit_16(1031);
emit_16(965);
emit_16(1032);
emit_16(966);
emit_16(1032);
emit_16(965);
emit_16(1032);
emit_16(966);
emit_16(1033);
emit_16(967);
emit_16(1033);
emit_16(966);
emit_16(1033);
emit_16(967);
emit_16(1034);
emit_16(968);
emit_16(1034);
emit_16(967);
emit_16(1034);
emit_16(968);
emit_16(1035);
emit_16(969);
emit_16(1035);
emit_16(968);
emit_16(1035);
emit_16(969);
emit_16(1036);
emit_16(970);
emit_16(1036);
emit_16(969);
emit_16(1036);
emit_16(970);
emit_16(1037);
emit_16(971);
emit_16(1037);
emit_16(970);
emit_16(1037);
emit_16(971);
emit_16(1038);
emit_16(972);
emit_16(1038);
emit_16(971);
emit_16(1038);
emit_16(972);
emit_16(1039);
emit_16(973);
emit_16(1039);
emit_16(972);
emit_16(1039);
emit_16(973);
emit_16(1040);
emit_16(974);
emit_16(1040);
emit_16(973);
emit_16(1040);
emit_16(974);
emit_16(1041);
emit_16(975);
emit_16(1041);
emit_16(974);
emit_16(1041);
emit_16(975);
emit_16(1042);
emit_16(976);
emit_16(1042);
emit_16(975);
emit_16(1042);
emit_16(976);
emit_16(1043);
emit_16(977);
emit_16(1043);
emit_16(976);
emit_16(1043);
emit_16(977);
emit_16(1044);
emit_16(978);
emit_16(1044);
emit_16(977);
emit_16(1044);
emit_16(978);
emit_16(1045);
emit_16(979);
emit_16(1045);
emit_16(978);
emit_16(1045);
emit_16(979);
emit_16(1046);
emit_16(980);
emit_16(1046);
emit_16(979);
emit_16(1046);
emit_16(980);
emit_16(1047);
emit_16(981);
emit_16(1047);
emit_16(980);
emit_16(1047);
emit_16(981);
emit_16(1048);
emit_16(982);
emit_16(1048);
emit_16(981);
emit_16(1048);
emit_16(982);
emit_16(1049);
emit_16(983);
emit_16(1049);
emit_16(982);
emit_16(1049);
emit_16(983);
emit_16(1050);
emit_16(984);
emit_16(1050);
emit_16(983);
emit_16(1050);
emit_16(984);
emit_16(1051);
emit_16(985);
emit_16(1051);
emit_16(984);
emit_16(1051);
emit_16(985);
emit_16(1052);
emit_16(986);
emit_16(1052);
emit_16(985);
emit_16(1052);
emit_16(986);
emit_16(1053);
emit_16(987);
emit_16(1053);
emit_16(986);
emit_16(1053);
emit_16(987);
emit_16(1054);
emit_16(988);
emit_16(1054);
emit_16(987);
emit_16(1054);
emit_16(988);
emit_16(1055);
emit_16(989);
emit_16(1055);
emit_16(988);
emit_16(1056);
emit_16(990);
emit_16(1057);
emit_16(991);
emit_16(1057);
emit_16(990);
emit_16(1057);
emit_16(991);
emit_16(1058);
emit_16(992);
emit_16(1058);
emit_16(991);
emit_16(1058);
emit_16(992);
emit_16(1059);
emit_16(993);
emit_16(1059);
emit_16(992);
emit_16(1059);
emit_16(993);
emit_16(1060);
emit_16(994);
emit_16(1060);
emit_16(993);
emit_16(1060);
emit_16(994);
emit_16(1061);
emit_16(995);
emit_16(1061);
emit_16(994);
emit_16(1061);
emit_16(995);
emit_16(1062);
emit_16(996);
emit_16(1062);
emit_16(995);
emit_16(1062);
emit_16(996);
emit_16(1063);
emit_16(997);
emit_16(1063);
emit_16(996);
emit_16(1063);
emit_16(997);
emit_16(1064);
emit_16(998);
emit_16(1064);
emit_16(997);
emit_16(1064);
emit_16(998);
emit_16(1065);
emit_16(999);
emit_16(1065);
emit_16(998);
emit_16(1065);
emit_16(999);
emit_16(1066);
emit_16(1000);
emit_16(1066);
emit_16(999);
emit_16(1066);
emit_16(1000);
emit_16(1067);
emit_16(1001);
emit_16(1067);
emit_16(1000);
emit_16(1067);
emit_16(1001);
emit_16(1068);
emit_16(1002);
emit_16(1068);
emit_16(1001);
emit_16(1068);
emit_16(1002);
emit_16(1069);
emit_16(1003);
emit_16(1069);
emit_16(1002);
emit_16(1069);
emit_16(1003);
emit_16(1070);
emit_16(1004);
emit_16(1070);
emit_16(1003);
emit_16(1070);
emit_16(1004);
emit_16(1071);
emit_16(1005);
emit_16(1071);
emit_16(1004);
emit_16(1071);
emit_16(1005);
emit_16(1072);
emit_16(1006);
emit_16(1072);
emit_16(1005);
emit_16(1072);
emit_16(1006);
emit_16(1073);
emit_16(1007);
emit_16(1073);
emit_16(1006);
emit_16(1073);
emit_16(1007);
emit_16(1074);
emit_16(1008);
emit_16(1074);
emit_16(1007);
emit_16(1074);
emit_16(1008);
emit_16(1075);
emit_16(1009);
emit_16(1075);
emit_16(1008);
emit_16(1075);
emit_16(1009);
emit_16(1076);
emit_16(1010);
emit_16(1076);
emit_16(1009);
emit_16(1076);
emit_16(1010);
emit_16(1077);
emit_16(1011);
emit_16(1077);
emit_16(1010);
emit_16(1077);
emit_16(1011);
emit_16(1078);
emit_16(1012);
emit_16(1078);
emit_16(1011);
emit_16(1078);
emit_16(1012);
emit_16(1079);
emit_16(1013);
emit_16(1079);
emit_16(1012);
emit_16(1079);
emit_16(1013);
emit_16(1080);
emit_16(1014);
emit_16(1080);
emit_16(1013);
emit_16(1080);
emit_16(1014);
emit_16(1081);
emit_16(1015);
emit_16(1081);
emit_16(1014);
emit_16(1081);
emit_16(1015);
emit_16(1082);
emit_16(1016);
emit_16(1082);
emit_16(1015);
emit_16(1082);
emit_16(1016);
emit_16(1083);
emit_16(1017);
emit_16(1083);
emit_16(1016);
emit_16(1083);
emit_16(1017);
emit_16(1084);
emit_16(1018);
emit_16(1084);
emit_16(1017);
emit_16(1084);
emit_16(1018);
emit_16(1085);
emit_16(1019);
emit_16(1085);
emit_16(1018);
emit_16(1085);
emit_16(1019);
emit_16(1086);
emit_16(1020);
emit_16(1086);
emit_16(1019);
emit_16(1086);
emit_16(1020);
emit_16(1087);
emit_16(1021);
emit_16(1087);
emit_16(1020);
emit_16(1087);
emit_16(1021);
emit_16(1088);
emit_16(1022);
emit_16(1088);
emit_16(1021);
emit_16(1088);
emit_16(1022);
emit_16(1089);
emit_16(1023);
emit_16(1089);
emit_16(1022);
emit_16(1089);
emit_16(1023);
emit_16(1090);
emit_16(1024);
emit_16(1090);
emit_16(1023);
emit_16(1090);
emit_16(1024);
emit_16(1091);
emit_16(1025);
emit_16(1091);
emit_16(1024);
emit_16(1091);
emit_16(1025);
emit_16(1092);
emit_16(1026);
emit_16(1092);
emit_16(1025);
emit_16(1092);
emit_16(1026);
emit_16(1093);
emit_16(1027);
emit_16(1093);
emit_16(1026);
emit_16(1093);
emit_16(1027);
emit_16(1094);
emit_16(1028);
emit_16(1094);
emit_16(1027);
emit_16(1094);
emit_16(1028);
emit_16(1095);
emit_16(1029);
emit_16(1095);
emit_16(1028);
emit_16(1095);
emit_16(1029);
emit_16(1096);
emit_16(1030);
emit_16(1096);
emit_16(1029);
emit_16(1096);
emit_16(1030);
emit_16(1097);
emit_16(1031);
emit_16(1097);
emit_16(1030);
emit_16(1097);
emit_16(1031);
emit_16(1098);
emit_16(1032);
emit_16(1098);
emit_16(1031);
emit_16(1098);
emit_16(1032);
emit_16(1099);
emit_16(1033);
emit_16(1099);
emit_16(1032);
emit_16(1099);
emit_16(1033);
emit_16(1100);
emit_16(1034);
emit_16(1100);
emit_16(1033);
emit_16(1100);
emit_16(1034);
emit_16(1101);
emit_16(1035);
emit_16(1101);
emit_16(1034);
emit_16(1101);
emit_16(1035);
emit_16(1102);
emit_16(1036);
emit_16(1102);
emit_16(1035);
emit_16(1102);
emit_16(1036);
emit_16(1103);
emit_16(1037);
emit_16(1103);
emit_16(1036);
emit_16(1103);
emit_16(1037);
emit_16(1104);
emit_16(1038);
emit_16(1104);
emit_16(1037);
emit_16(1104);
emit_16(1038);
emit_16(1105);
emit_16(1039);
emit_16(1105);
emit_16(1038);
emit_16(1105);
emit_16(1039);
emit_16(1106);
emit_16(1040);
emit_16(1106);
emit_16(1039);
emit_16(1106);
emit_16(1040);
emit_16(1107);
emit_16(1041);
emit_16(1107);
emit_16(1040);
emit_16(1107);
emit_16(1041);
emit_16(1108);
emit_16(1042);
emit_16(1108);
emit_16(1041);
emit_16(1108);
emit_16(1042);
emit_16(1109);
emit_16(1043);
emit_16(1109);
emit_16(1042);
emit_16(1109);
emit_16(1043);
emit_16(1110);
emit_16(1044);
emit_16(1110);
emit_16(1043);
emit_16(1110);
emit_16(1044);
emit_16(1111);
emit_16(1045);
emit_16(1111);
emit_16(1044);
emit_16(1111);
emit_16(1045);
emit_16(1112);
emit_16(1046);
emit_16(1112);
emit_16(1045);
emit_16(1112);
emit_16(1046);
emit_16(1113);
emit_16(1047);
emit_16(1113);
emit_16(1046);
emit_16(1113);
emit_16(1047);
emit_16(1114);
emit_16(1048);
emit_16(1114);
emit_16(1047);
emit_16(1114);
emit_16(1048);
emit_16(1115);
emit_16(1049);
emit_16(1115);
emit_16(1048);
emit_16(1115);
emit_16(1049);
emit_16(1116);
emit_16(1050);
emit_16(1116);
emit_16(1049);
emit_16(1116);
emit_16(1050);
emit_16(1117);
emit_16(1051);
emit_16(1117);
emit_16(1050);
emit_16(1117);
emit_16(1051);
emit_16(1118);
emit_16(1052);
emit_16(1118);
emit_16(1051);
emit_16(1118);
emit_16(1052);
emit_16(1119);
emit_16(1053);
emit_16(1119);
emit_16(1052);
emit_16(1119);
emit_16(1053);
emit_16(1120);
emit_16(1054);
emit_16(1120);
emit_16(1053);
emit_16(1120);
emit_16(1054);
emit_16(1121);
emit_16(1055);
emit_16(1121);
emit_16(1054);
emit_16(1122);
emit_16(1056);
emit_16(1123);
emit_16(1057);
emit_16(1123);
emit_16(1056);
emit_16(1123);
emit_16(1057);
emit_16(1124);
emit_16(1058);
emit_16(1124);
emit_16(1057);
emit_16(1124);
emit_16(1058);
emit_16(1125);
emit_16(1059);
emit_16(1125);
emit_16(1058);
emit_16(1125);
emit_16(1059);
emit_16(1126);
emit_16(1060);
emit_16(1126);
emit_16(1059);
emit_16(1126);
emit_16(1060);
emit_16(1127);
emit_16(1061);
emit_16(1127);
emit_16(1060);
emit_16(1127);
emit_16(1061);
emit_16(1128);
emit_16(1062);
emit_16(1128);
emit_16(1061);
emit_16(1128);
emit_16(1062);
emit_16(1129);
emit_16(1063);
emit_16(1129);
emit_16(1062);
emit_16(1129);
emit_16(1063);
emit_16(1130);
emit_16(1064);
emit_16(1130);
emit_16(1063);
emit_16(1130);
emit_16(1064);
emit_16(1131);
emit_16(1065);
emit_16(1131);
emit_16(1064);
emit_16(1131);
emit_16(1065);
emit_16(1132);
emit_16(1066);
emit_16(1132);
emit_16(1065);
emit_16(1132);
emit_16(1066);
emit_16(1133);
emit_16(1067);
emit_16(1133);
emit_16(1066);
emit_16(1133);
emit_16(1067);
emit_16(1134);
emit_16(1068);
emit_16(1134);
emit_16(1067);
emit_16(1134);
emit_16(1068);
emit_16(1135);
emit_16(1069);
emit_16(1135);
emit_16(1068);
emit_16(1135);
emit_16(1069);
emit_16(1136);
emit_16(1070);
emit_16(1136);
emit_16(1069);
emit_16(1136);
emit_16(1070);
emit_16(1137);
emit_16(1071);
emit_16(1137);
emit_16(1070);
emit_16(1137);
emit_16(1071);
emit_16(1138);
emit_16(1072);
emit_16(1138);
emit_16(1071);
emit_16(1138);
emit_16(1072);
emit_16(1139);
emit_16(1073);
emit_16(1139);
emit_16(1072);
emit_16(1139);
emit_16(1073);
emit_16(1140);
emit_16(1074);
emit_16(1140);
emit_16(1073);
emit_16(1140);
emit_16(1074);
emit_16(1141);
emit_16(1075);
emit_16(1141);
emit_16(1074);
emit_16(1141);
emit_16(1075);
emit_16(1142);
emit_16(1076);
emit_16(1142);
emit_16(1075);
emit_16(1142);
emit_16(1076);
emit_16(1143);
emit_16(1077);
emit_16(1143);
emit_16(1076);
emit_16(1143);
emit_16(1077);
emit_16(1144);
emit_16(1078);
emit_16(1144);
emit_16(1077);
emit_16(1144);
emit_16(1078);
emit_16(1145);
emit_16(1079);
emit_16(1145);
emit_16(1078);
emit_16(1145);
emit_16(1079);
emit_16(1146);
emit_16(1080);
emit_16(1146);
emit_16(1079);
emit_16(1146);
emit_16(1080);
emit_16(1147);
emit_16(1081);
emit_16(1147);
emit_16(1080);
emit_16(1147);
emit_16(1081);
emit_16(1148);
emit_16(1082);
emit_16(1148);
emit_16(1081);
emit_16(1148);
emit_16(1082);
emit_16(1149);
emit_16(1083);
emit_16(1149);
emit_16(1082);
emit_16(1149);
emit_16(1083);
emit_16(1150);
emit_16(1084);
emit_16(1150);
emit_16(1083);
emit_16(1150);
emit_16(1084);
emit_16(1151);
emit_16(1085);
emit_16(1151);
emit_16(1084);
emit_16(1151);
emit_16(1085);
emit_16(1152);
emit_16(1086);
emit_16(1152);
emit_16(1085);
emit_16(1152);
emit_16(1086);
emit_16(1153);
emit_16(1087);
emit_16(1153);
emit_16(1086);
emit_16(1153);
emit_16(1087);
emit_16(1154);
emit_16(1088);
emit_16(1154);
emit_16(1087);
emit_16(1154);
emit_16(1088);
emit_16(1155);
emit_16(1089);
emit_16(1155);
emit_16(1088);
emit_16(1155);
emit_16(1089);
emit_16(1156);
emit_16(1090);
emit_16(1156);
emit_16(1089);
emit_16(1156);
emit_16(1090);
emit_16(1157);
emit_16(1091);
emit_16(1157);
emit_16(1090);
emit_16(1157);
emit_16(1091);
emit_16(1158);
emit_16(1092);
emit_16(1158);
emit_16(1091);
emit_16(1158);
emit_16(1092);
emit_16(1159);
emit_16(1093);
emit_16(1159);
emit_16(1092);
emit_16(1159);
emit_16(1093);
emit_16(1160);
emit_16(1094);
emit_16(1160);
emit_16(1093);
emit_16(1160);
emit_16(1094);
emit_16(1161);
emit_16(1095);
emit_16(1161);
emit_16(1094);
emit_16(1161);
emit_16(1095);
emit_16(1162);
emit_16(1096);
emit_16(1162);
emit_16(1095);
emit_16(1162);
emit_16(1096);
emit_16(1163);
emit_16(1097);
emit_16(1163);
emit_16(1096);
emit_16(1163);
emit_16(1097);
emit_16(1164);
emit_16(1098);
emit_16(1164);
emit_16(1097);
emit_16(1164);
emit_16(1098);
emit_16(1165);
emit_16(1099);
emit_16(1165);
emit_16(1098);
emit_16(1165);
emit_16(1099);
emit_16(1166);
emit_16(1100);
emit_16(1166);
emit_16(1099);
emit_16(1166);
emit_16(1100);
emit_16(1167);
emit_16(1101);
emit_16(1167);
emit_16(1100);
emit_16(1167);
emit_16(1101);
emit_16(1168);
emit_16(1102);
emit_16(1168);
emit_16(1101);
emit_16(1168);
emit_16(1102);
emit_16(1169);
emit_16(1103);
emit_16(1169);
emit_16(1102);
emit_16(1169);
emit_16(1103);
emit_16(1170);
emit_16(1104);
emit_16(1170);
emit_16(1103);
emit_16(1170);
emit_16(1104);
emit_16(1171);
emit_16(1105);
emit_16(1171);
emit_16(1104);
emit_16(1171);
emit_16(1105);
emit_16(1172);
emit_16(1106);
emit_16(1172);
emit_16(1105);
emit_16(1172);
emit_16(1106);
emit_16(1173);
emit_16(1107);
emit_16(1173);
emit_16(1106);
emit_16(1173);
emit_16(1107);
emit_16(1174);
emit_16(1108);
emit_16(1174);
emit_16(1107);
emit_16(1174);
emit_16(1108);
emit_16(1175);
emit_16(1109);
emit_16(1175);
emit_16(1108);
emit_16(1175);
emit_16(1109);
emit_16(1176);
emit_16(1110);
emit_16(1176);
emit_16(1109);
emit_16(1176);
emit_16(1110);
emit_16(1177);
emit_16(1111);
emit_16(1177);
emit_16(1110);
emit_16(1177);
emit_16(1111);
emit_16(1178);
emit_16(1112);
emit_16(1178);
emit_16(1111);
emit_16(1178);
emit_16(1112);
emit_16(1179);
emit_16(1113);
emit_16(1179);
emit_16(1112);
emit_16(1179);
emit_16(1113);
emit_16(1180);
emit_16(1114);
emit_16(1180);
emit_16(1113);
emit_16(1180);
emit_16(1114);
emit_16(1181);
emit_16(1115);
emit_16(1181);
emit_16(1114);
emit_16(1181);
emit_16(1115);
emit_16(1182);
emit_16(1116);
emit_16(1182);
emit_16(1115);
emit_16(1182);
emit_16(1116);
emit_16(1183);
emit_16(1117);
emit_16(1183);
emit_16(1116);
emit_16(1183);
emit_16(1117);
emit_16(1184);
emit_16(1118);
emit_16(1184);
emit_16(1117);
emit_16(1184);
emit_16(1118);
emit_16(1185);
emit_16(1119);
emit_16(1185);
emit_16(1118);
emit_16(1185);
emit_16(1119);
emit_16(1186);
emit_16(1120);
emit_16(1186);
emit_16(1119);
emit_16(1186);
emit_16(1120);
emit_16(1187);
emit_16(1121);
emit_16(1187);
emit_16(1120);
emit_16(1188);
emit_16(1122);
emit_16(1189);
emit_16(1123);
emit_16(1189);
emit_16(1122);
emit_16(1189);
emit_16(1123);
emit_16(1190);
emit_16(1124);
emit_16(1190);
emit_16(1123);
emit_16(1190);
emit_16(1124);
emit_16(1191);
emit_16(1125);
emit_16(1191);
emit_16(1124);
emit_16(1191);
emit_16(1125);
emit_16(1192);
emit_16(1126);
emit_16(1192);
emit_16(1125);
emit_16(1192);
emit_16(1126);
emit_16(1193);
emit_16(1127);
emit_16(1193);
emit_16(1126);
emit_16(1193);
emit_16(1127);
emit_16(1194);
emit_16(1128);
emit_16(1194);
emit_16(1127);
emit_16(1194);
emit_16(1128);
emit_16(1195);
emit_16(1129);
emit_16(1195);
emit_16(1128);
emit_16(1195);
emit_16(1129);
emit_16(1196);
emit_16(1130);
emit_16(1196);
emit_16(1129);
emit_16(1196);
emit_16(1130);
emit_16(1197);
emit_16(1131);
emit_16(1197);
emit_16(1130);
emit_16(1197);
emit_16(1131);
emit_16(1198);
emit_16(1132);
emit_16(1198);
emit_16(1131);
emit_16(1198);
emit_16(1132);
emit_16(1199);
emit_16(1133);
emit_16(1199);
emit_16(1132);
emit_16(1199);
emit_16(1133);
emit_16(1200);
emit_16(1134);
emit_16(1200);
emit_16(1133);
emit_16(1200);
emit_16(1134);
emit_16(1201);
emit_16(1135);
emit_16(1201);
emit_16(1134);
emit_16(1201);
emit_16(1135);
emit_16(1202);
emit_16(1136);
emit_16(1202);
emit_16(1135);
emit_16(1202);
emit_16(1136);
emit_16(1203);
emit_16(1137);
emit_16(1203);
emit_16(1136);
emit_16(1203);
emit_16(1137);
emit_16(1204);
emit_16(1138);
emit_16(1204);
emit_16(1137);
emit_16(1204);
emit_16(1138);
emit_16(1205);
emit_16(1139);
emit_16(1205);
emit_16(1138);
emit_16(1205);
emit_16(1139);
emit_16(1206);
emit_16(1140);
emit_16(1206);
emit_16(1139);
emit_16(1206);
emit_16(1140);
emit_16(1207);
emit_16(1141);
emit_16(1207);
emit_16(1140);
emit_16(1207);
emit_16(1141);
emit_16(1208);
emit_16(1142);
emit_16(1208);
emit_16(1141);
emit_16(1208);
emit_16(1142);
emit_16(1209);
emit_16(1143);
emit_16(1209);
emit_16(1142);
emit_16(1209);
emit_16(1143);
emit_16(1210);
emit_16(1144);
emit_16(1210);
emit_16(1143);
emit_16(1210);
emit_16(1144);
emit_16(1211);
emit_16(1145);
emit_16(1211);
emit_16(1144);
emit_16(1211);
emit_16(1145);
emit_16(1212);
emit_16(1146);
emit_16(1212);
emit_16(1145);
emit_16(1212);
emit_16(1146);
emit_16(1213);
emit_16(1147);
emit_16(1213);
emit_16(1146);
emit_16(1213);
emit_16(1147);
emit_16(1214);
emit_16(1148);
emit_16(1214);
emit_16(1147);
emit_16(1214);
emit_16(1148);
emit_16(1215);
emit_16(1149);
emit_16(1215);
emit_16(1148);
emit_16(1215);
emit_16(1149);
emit_16(1216);
emit_16(1150);
emit_16(1216);
emit_16(1149);
emit_16(1216);
emit_16(1150);
emit_16(1217);
emit_16(1151);
emit_16(1217);
emit_16(1150);
emit_16(1217);
emit_16(1151);
emit_16(1218);
emit_16(1152);
emit_16(1218);
emit_16(1151);
emit_16(1218);
emit_16(1152);
emit_16(1219);
emit_16(1153);
emit_16(1219);
emit_16(1152);
emit_16(1219);
emit_16(1153);
emit_16(1220);
emit_16(1154);
emit_16(1220);
emit_16(1153);
emit_16(1220);
emit_16(1154);
emit_16(1221);
emit_16(1155);
emit_16(1221);
emit_16(1154);
emit_16(1221);
emit_16(1155);
emit_16(1222);
emit_16(1156);
emit_16(1222);
emit_16(1155);
emit_16(1222);
emit_16(1156);
emit_16(1223);
emit_16(1157);
emit_16(1223);
emit_16(1156);
emit_16(1223);
emit_16(1157);
emit_16(1224);
emit_16(1158);
emit_16(1224);
emit_16(1157);
emit_16(1224);
emit_16(1158);
emit_16(1225);
emit_16(1159);
emit_16(1225);
emit_16(1158);
emit_16(1225);
emit_16(1159);
emit_16(1226);
emit_16(1160);
emit_16(1226);
emit_16(1159);
emit_16(1226);
emit_16(1160);
emit_16(1227);
emit_16(1161);
emit_16(1227);
emit_16(1160);
emit_16(1227);
emit_16(1161);
emit_16(1228);
emit_16(1162);
emit_16(1228);
emit_16(1161);
emit_16(1228);
emit_16(1162);
emit_16(1229);
emit_16(1163);
emit_16(1229);
emit_16(1162);
emit_16(1229);
emit_16(1163);
emit_16(1230);
emit_16(1164);
emit_16(1230);
emit_16(1163);
emit_16(1230);
emit_16(1164);
emit_16(1231);
emit_16(1165);
emit_16(1231);
emit_16(1164);
emit_16(1231);
emit_16(1165);
emit_16(1232);
emit_16(1166);
emit_16(1232);
emit_16(1165);
emit_16(1232);
emit_16(1166);
emit_16(1233);
emit_16(1167);
emit_16(1233);
emit_16(1166);
emit_16(1233);
emit_16(1167);
emit_16(1234);
emit_16(1168);
emit_16(1234);
emit_16(1167);
emit_16(1234);
emit_16(1168);
emit_16(1235);
emit_16(1169);
emit_16(1235);
emit_16(1168);
emit_16(1235);
emit_16(1169);
emit_16(1236);
emit_16(1170);
emit_16(1236);
emit_16(1169);
emit_16(1236);
emit_16(1170);
emit_16(1237);
emit_16(1171);
emit_16(1237);
emit_16(1170);
emit_16(1237);
emit_16(1171);
emit_16(1238);
emit_16(1172);
emit_16(1238);
emit_16(1171);
emit_16(1238);
emit_16(1172);
emit_16(1239);
emit_16(1173);
emit_16(1239);
emit_16(1172);
emit_16(1239);
emit_16(1173);
emit_16(1240);
emit_16(1174);
emit_16(1240);
emit_16(1173);
emit_16(1240);
emit_16(1174);
emit_16(1241);
emit_16(1175);
emit_16(1241);
emit_16(1174);
emit_16(1241);
emit_16(1175);
emit_16(1242);
emit_16(1176);
emit_16(1242);
emit_16(1175);
emit_16(1242);
emit_16(1176);
emit_16(1243);
emit_16(1177);
emit_16(1243);
emit_16(1176);
emit_16(1243);
emit_16(1177);
emit_16(1244);
emit_16(1178);
emit_16(1244);
emit_16(1177);
emit_16(1244);
emit_16(1178);
emit_16(1245);
emit_16(1179);
emit_16(1245);
emit_16(1178);
emit_16(1245);
emit_16(1179);
emit_16(1246);
emit_16(1180);
emit_16(1246);
emit_16(1179);
emit_16(1246);
emit_16(1180);
emit_16(1247);
emit_16(1181);
emit_16(1247);
emit_16(1180);
emit_16(1247);
emit_16(1181);
emit_16(1248);
emit_16(1182);
emit_16(1248);
emit_16(1181);
emit_16(1248);
emit_16(1182);
emit_16(1249);
emit_16(1183);
emit_16(1249);
emit_16(1182);
emit_16(1249);
emit_16(1183);
emit_16(1250);
emit_16(1184);
emit_16(1250);
emit_16(1183);
emit_16(1250);
emit_16(1184);
emit_16(1251);
emit_16(1185);
emit_16(1251);
emit_16(1184);
emit_16(1251);
emit_16(1185);
emit_16(1252);
emit_16(1186);
emit_16(1252);
emit_16(1185);
emit_16(1252);
emit_16(1186);
emit_16(1253);
emit_16(1187);
emit_16(1253);
emit_16(1186);
emit_16(1254);
emit_16(1188);
emit_16(1255);
emit_16(1189);
emit_16(1255);
emit_16(1188);
emit_16(1255);
emit_16(1189);
emit_16(1256);
emit_16(1190);
emit_16(1256);
emit_16(1189);
emit_16(1256);
emit_16(1190);
emit_16(1257);
emit_16(1191);
emit_16(1257);
emit_16(1190);
emit_16(1257);
emit_16(1191);
emit_16(1258);
emit_16(1192);
emit_16(1258);
emit_16(1191);
emit_16(1258);
emit_16(1192);
emit_16(1259);
emit_16(1193);
emit_16(1259);
emit_16(1192);
emit_16(1259);
emit_16(1193);
emit_16(1260);
emit_16(1194);
emit_16(1260);
emit_16(1193);
emit_16(1260);
emit_16(1194);
emit_16(1261);
emit_16(1195);
emit_16(1261);
emit_16(1194);
emit_16(1261);
emit_16(1195);
emit_16(1262);
emit_16(1196);
emit_16(1262);
emit_16(1195);
emit_16(1262);
emit_16(1196);
emit_16(1263);
emit_16(1197);
emit_16(1263);
emit_16(1196);
emit_16(1263);
emit_16(1197);
emit_16(1264);
emit_16(1198);
emit_16(1264);
emit_16(1197);
emit_16(1264);
emit_16(1198);
emit_16(1265);
emit_16(1199);
emit_16(1265);
emit_16(1198);
emit_16(1265);
emit_16(1199);
emit_16(1266);
emit_16(1200);
emit_16(1266);
emit_16(1199);
emit_16(1266);
emit_16(1200);
emit_16(1267);
emit_16(1201);
emit_16(1267);
emit_16(1200);
emit_16(1267);
emit_16(1201);
emit_16(1268);
emit_16(1202);
emit_16(1268);
emit_16(1201);
emit_16(1268);
emit_16(1202);
emit_16(1269);
emit_16(1203);
emit_16(1269);
emit_16(1202);
emit_16(1269);
emit_16(1203);
emit_16(1270);
emit_16(1204);
emit_16(1270);
emit_16(1203);
emit_16(1270);
emit_16(1204);
emit_16(1271);
emit_16(1205);
emit_16(1271);
emit_16(1204);
emit_16(1271);
emit_16(1205);
emit_16(1272);
emit_16(1206);
emit_16(1272);
emit_16(1205);
emit_16(1272);
emit_16(1206);
emit_16(1273);
emit_16(1207);
emit_16(1273);
emit_16(1206);
emit_16(1273);
emit_16(1207);
emit_16(1274);
emit_16(1208);
emit_16(1274);
emit_16(1207);
emit_16(1274);
emit_16(1208);
emit_16(1275);
emit_16(1209);
emit_16(1275);
emit_16(1208);
emit_16(1275);
emit_16(1209);
emit_16(1276);
emit_16(1210);
emit_16(1276);
emit_16(1209);
emit_16(1276);
emit_16(1210);
emit_16(1277);
emit_16(1211);
emit_16(1277);
emit_16(1210);
emit_16(1277);
emit_16(1211);
emit_16(1278);
emit_16(1212);
emit_16(1278);
emit_16(1211);
emit_16(1278);
emit_16(1212);
emit_16(1279);
emit_16(1213);
emit_16(1279);
emit_16(1212);
emit_16(1279);
emit_16(1213);
emit_16(1280);
emit_16(1214);
emit_16(1280);
emit_16(1213);
emit_16(1280);
emit_16(1214);
emit_16(1281);
emit_16(1215);
emit_16(1281);
emit_16(1214);
emit_16(1281);
emit_16(1215);
emit_16(1282);
emit_16(1216);
emit_16(1282);
emit_16(1215);
emit_16(1282);
emit_16(1216);
emit_16(1283);
emit_16(1217);
emit_16(1283);
emit_16(1216);
emit_16(1283);
emit_16(1217);
emit_16(1284);
emit_16(1218);
emit_16(1284);
emit_16(1217);
emit_16(1284);
emit_16(1218);
emit_16(1285);
emit_16(1219);
emit_16(1285);
emit_16(1218);
emit_16(1285);
emit_16(1219);
emit_16(1286);
emit_16(1220);
emit_16(1286);
emit_16(1219);
emit_16(1286);
emit_16(1220);
emit_16(1287);
emit_16(1221);
emit_16(1287);
emit_16(1220);
emit_16(1287);
emit_16(1221);
emit_16(1288);
emit_16(1222);
emit_16(1288);
emit_16(1221);
emit_16(1288);
emit_16(1222);
emit_16(1289);
emit_16(1223);
emit_16(1289);
emit_16(1222);
emit_16(1289);
emit_16(1223);
emit_16(1290);
emit_16(1224);
emit_16(1290);
emit_16(1223);
emit_16(1290);
emit_16(1224);
emit_16(1291);
emit_16(1225);
emit_16(1291);
emit_16(1224);
emit_16(1291);
emit_16(1225);
emit_16(1292);
emit_16(1226);
emit_16(1292);
emit_16(1225);
emit_16(1292);
emit_16(1226);
emit_16(1293);
emit_16(1227);
emit_16(1293);
emit_16(1226);
emit_16(1293);
emit_16(1227);
emit_16(1294);
emit_16(1228);
emit_16(1294);
emit_16(1227);
emit_16(1294);
emit_16(1228);
emit_16(1295);
emit_16(1229);
emit_16(1295);
emit_16(1228);
emit_16(1295);
emit_16(1229);
emit_16(1296);
emit_16(1230);
emit_16(1296);
emit_16(1229);
emit_16(1296);
emit_16(1230);
emit_16(1297);
emit_16(1231);
emit_16(1297);
emit_16(1230);
emit_16(1297);
emit_16(1231);
emit_16(1298);
emit_16(1232);
emit_16(1298);
emit_16(1231);
emit_16(1298);
emit_16(1232);
emit_16(1299);
emit_16(1233);
emit_16(1299);
emit_16(1232);
emit_16(1299);
emit_16(1233);
emit_16(1300);
emit_16(1234);
emit_16(1300);
emit_16(1233);
emit_16(1300);
emit_16(1234);
emit_16(1301);
emit_16(1235);
emit_16(1301);
emit_16(1234);
emit_16(1301);
emit_16(1235);
emit_16(1302);
emit_16(1236);
emit_16(1302);
emit_16(1235);
emit_16(1302);
emit_16(1236);
emit_16(1303);
emit_16(1237);
emit_16(1303);
emit_16(1236);
emit_16(1303);
emit_16(1237);
emit_16(1304);
emit_16(1238);
emit_16(1304);
emit_16(1237);
emit_16(1304);
emit_16(1238);
emit_16(1305);
emit_16(1239);
emit_16(1305);
emit_16(1238);
emit_16(1305);
emit_16(1239);
emit_16(1306);
emit_16(1240);
emit_16(1306);
emit_16(1239);
emit_16(1306);
emit_16(1240);
emit_16(1307);
emit_16(1241);
emit_16(1307);
emit_16(1240);
emit_16(1307);
emit_16(1241);
emit_16(1308);
emit_16(1242);
emit_16(1308);
emit_16(1241);
emit_16(1308);
emit_16(1242);
emit_16(1309);
emit_16(1243);
emit_16(1309);
emit_16(1242);
emit_16(1309);
emit_16(1243);
emit_16(1310);
emit_16(1244);
emit_16(1310);
emit_16(1243);
emit_16(1310);
emit_16(1244);
emit_16(1311);
emit_16(1245);
emit_16(1311);
emit_16(1244);
emit_16(1311);
emit_16(1245);
emit_16(1312);
emit_16(1246);
emit_16(1312);
emit_16(1245);
emit_16(1312);
emit_16(1246);
emit_16(1313);
emit_16(1247);
emit_16(1313);
emit_16(1246);
emit_16(1313);
emit_16(1247);
emit_16(1314);
emit_16(1248);
emit_16(1314);
emit_16(1247);
emit_16(1314);
emit_16(1248);
emit_16(1315);
emit_16(1249);
emit_16(1315);
emit_16(1248);
emit_16(1315);
emit_16(1249);
emit_16(1316);
emit_16(1250);
emit_16(1316);
emit_16(1249);
emit_16(1316);
emit_16(1250);
emit_16(1317);
emit_16(1251);
emit_16(1317);
emit_16(1250);
emit_16(1317);
emit_16(1251);
emit_16(1318);
emit_16(1252);
emit_16(1318);
emit_16(1251);
emit_16(1318);
emit_16(1252);
emit_16(1319);
emit_16(1253);
emit_16(1319);
emit_16(1252);
emit_16(1320);
emit_16(1254);
emit_16(1321);
emit_16(1255);
emit_16(1321);
emit_16(1254);
emit_16(1321);
emit_16(1255);
emit_16(1322);
emit_16(1256);
emit_16(1322);
emit_16(1255);
emit_16(1322);
emit_16(1256);
emit_16(1323);
emit_16(1257);
emit_16(1323);
emit_16(1256);
emit_16(1323);
emit_16(1257);
emit_16(1324);
emit_16(1258);
emit_16(1324);
emit_16(1257);
emit_16(1324);
emit_16(1258);
emit_16(1325);
emit_16(1259);
emit_16(1325);
emit_16(1258);
emit_16(1325);
emit_16(1259);
emit_16(1326);
emit_16(1260);
emit_16(1326);
emit_16(1259);
emit_16(1326);
emit_16(1260);
emit_16(1327);
emit_16(1261);
emit_16(1327);
emit_16(1260);
emit_16(1327);
emit_16(1261);
emit_16(1328);
emit_16(1262);
emit_16(1328);
emit_16(1261);
emit_16(1328);
emit_16(1262);
emit_16(1329);
emit_16(1263);
emit_16(1329);
emit_16(1262);
emit_16(1329);
emit_16(1263);
emit_16(1330);
emit_16(1264);
emit_16(1330);
emit_16(1263);
emit_16(1330);
emit_16(1264);
emit_16(1331);
emit_16(1265);
emit_16(1331);
emit_16(1264);
emit_16(1331);
emit_16(1265);
emit_16(1332);
emit_16(1266);
emit_16(1332);
emit_16(1265);
emit_16(1332);
emit_16(1266);
emit_16(1333);
emit_16(1267);
emit_16(1333);
emit_16(1266);
emit_16(1333);
emit_16(1267);
emit_16(1334);
emit_16(1268);
emit_16(1334);
emit_16(1267);
emit_16(1334);
emit_16(1268);
emit_16(1335);
emit_16(1269);
emit_16(1335);
emit_16(1268);
emit_16(1335);
emit_16(1269);
emit_16(1336);
emit_16(1270);
emit_16(1336);
emit_16(1269);
emit_16(1336);
emit_16(1270);
emit_16(1337);
emit_16(1271);
emit_16(1337);
emit_16(1270);
emit_16(1337);
emit_16(1271);
emit_16(1338);
emit_16(1272);
emit_16(1338);
emit_16(1271);
emit_16(1338);
emit_16(1272);
emit_16(1339);
emit_16(1273);
emit_16(1339);
emit_16(1272);
emit_16(1339);
emit_16(1273);
emit_16(1340);
emit_16(1274);
emit_16(1340);
emit_16(1273);
emit_16(1340);
emit_16(1274);
emit_16(1341);
emit_16(1275);
emit_16(1341);
emit_16(1274);
emit_16(1341);
emit_16(1275);
emit_16(1342);
emit_16(1276);
emit_16(1342);
emit_16(1275);
emit_16(1342);
emit_16(1276);
emit_16(1343);
emit_16(1277);
emit_16(1343);
emit_16(1276);
emit_16(1343);
emit_16(1277);
emit_16(1344);
emit_16(1278);
emit_16(1344);
emit_16(1277);
emit_16(1344);
emit_16(1278);
emit_16(1345);
emit_16(1279);
emit_16(1345);
emit_16(1278);
emit_16(1345);
emit_16(1279);
emit_16(1346);
emit_16(1280);
emit_16(1346);
emit_16(1279);
emit_16(1346);
emit_16(1280);
emit_16(1347);
emit_16(1281);
emit_16(1347);
emit_16(1280);
emit_16(1347);
emit_16(1281);
emit_16(1348);
emit_16(1282);
emit_16(1348);
emit_16(1281);
emit_16(1348);
emit_16(1282);
emit_16(1349);
emit_16(1283);
emit_16(1349);
emit_16(1282);
emit_16(1349);
emit_16(1283);
emit_16(1350);
emit_16(1284);
emit_16(1350);
emit_16(1283);
emit_16(1350);
emit_16(1284);
emit_16(1351);
emit_16(1285);
emit_16(1351);
emit_16(1284);
emit_16(1351);
emit_16(1285);
emit_16(1352);
emit_16(1286);
emit_16(1352);
emit_16(1285);
emit_16(1352);
emit_16(1286);
emit_16(1353);
emit_16(1287);
emit_16(1353);
emit_16(1286);
emit_16(1353);
emit_16(1287);
emit_16(1354);
emit_16(1288);
emit_16(1354);
emit_16(1287);
emit_16(1354);
emit_16(1288);
emit_16(1355);
emit_16(1289);
emit_16(1355);
emit_16(1288);
emit_16(1355);
emit_16(1289);
emit_16(1356);
emit_16(1290);
emit_16(1356);
emit_16(1289);
emit_16(1356);
emit_16(1290);
emit_16(1357);
emit_16(1291);
emit_16(1357);
emit_16(1290);
emit_16(1357);
emit_16(1291);
emit_16(1358);
emit_16(1292);
emit_16(1358);
emit_16(1291);
emit_16(1358);
emit_16(1292);
emit_16(1359);
emit_16(1293);
emit_16(1359);
emit_16(1292);
emit_16(1359);
emit_16(1293);
emit_16(1360);
emit_16(1294);
emit_16(1360);
emit_16(1293);
emit_16(1360);
emit_16(1294);
emit_16(1361);
emit_16(1295);
emit_16(1361);
emit_16(1294);
emit_16(1361);
emit_16(1295);
emit_16(1362);
emit_16(1296);
emit_16(1362);
emit_16(1295);
emit_16(1362);
emit_16(1296);
emit_16(1363);
emit_16(1297);
emit_16(1363);
emit_16(1296);
emit_16(1363);
emit_16(1297);
emit_16(1364);
emit_16(1298);
emit_16(1364);
emit_16(1297);
emit_16(1364);
emit_16(1298);
emit_16(1365);
emit_16(1299);
emit_16(1365);
emit_16(1298);
emit_16(1365);
emit_16(1299);
emit_16(1366);
emit_16(1300);
emit_16(1366);
emit_16(1299);
emit_16(1366);
emit_16(1300);
emit_16(1367);
emit_16(1301);
emit_16(1367);
emit_16(1300);
emit_16(1367);
emit_16(1301);
emit_16(1368);
emit_16(1302);
emit_16(1368);
emit_16(1301);
emit_16(1368);
emit_16(1302);
emit_16(1369);
emit_16(1303);
emit_16(1369);
emit_16(1302);
emit_16(1369);
emit_16(1303);
emit_16(1370);
emit_16(1304);
emit_16(1370);
emit_16(1303);
emit_16(1370);
emit_16(1304);
emit_16(1371);
emit_16(1305);
emit_16(1371);
emit_16(1304);
emit_16(1371);
emit_16(1305);
emit_16(1372);
emit_16(1306);
emit_16(1372);
emit_16(1305);
emit_16(1372);
emit_16(1306);
emit_16(1373);
emit_16(1307);
emit_16(1373);
emit_16(1306);
emit_16(1373);
emit_16(1307);
emit_16(1374);
emit_16(1308);
emit_16(1374);
emit_16(1307);
emit_16(1374);
emit_16(1308);
emit_16(1375);
emit_16(1309);
emit_16(1375);
emit_16(1308);
emit_16(1375);
emit_16(1309);
emit_16(1376);
emit_16(1310);
emit_16(1376);
emit_16(1309);
emit_16(1376);
emit_16(1310);
emit_16(1377);
emit_16(1311);
emit_16(1377);
emit_16(1310);
emit_16(1377);
emit_16(1311);
emit_16(1378);
emit_16(1312);
emit_16(1378);
emit_16(1311);
emit_16(1378);
emit_16(1312);
emit_16(1379);
emit_16(1313);
emit_16(1379);
emit_16(1312);
emit_16(1379);
emit_16(1313);
emit_16(1380);
emit_16(1314);
emit_16(1380);
emit_16(1313);
emit_16(1380);
emit_16(1314);
emit_16(1381);
emit_16(1315);
emit_16(1381);
emit_16(1314);
emit_16(1381);
emit_16(1315);
emit_16(1382);
emit_16(1316);
emit_16(1382);
emit_16(1315);
emit_16(1382);
emit_16(1316);
emit_16(1383);
emit_16(1317);
emit_16(1383);
emit_16(1316);
emit_16(1383);
emit_16(1317);
emit_16(1384);
emit_16(1318);
emit_16(1384);
emit_16(1317);
emit_16(1384);
emit_16(1318);
emit_16(1385);
emit_16(1319);
emit_16(1385);
emit_16(1318);
emit_16(1386);
emit_16(1320);
emit_16(1387);
emit_16(1321);
emit_16(1387);
emit_16(1320);
emit_16(1387);
emit_16(1321);
emit_16(1388);
emit_16(1322);
emit_16(1388);
emit_16(1321);
emit_16(1388);
emit_16(1322);
emit_16(1389);
emit_16(1323);
emit_16(1389);
emit_16(1322);
emit_16(1389);
emit_16(1323);
emit_16(1390);
emit_16(1324);
emit_16(1390);
emit_16(1323);
emit_16(1390);
emit_16(1324);
emit_16(1391);
emit_16(1325);
emit_16(1391);
emit_16(1324);
emit_16(1391);
emit_16(1325);
emit_16(1392);
emit_16(1326);
emit_16(1392);
emit_16(1325);
emit_16(1392);
emit_16(1326);
emit_16(1393);
emit_16(1327);
emit_16(1393);
emit_16(1326);
emit_16(1393);
emit_16(1327);
emit_16(1394);
emit_16(1328);
emit_16(1394);
emit_16(1327);
emit_16(1394);
emit_16(1328);
emit_16(1395);
emit_16(1329);
emit_16(1395);
emit_16(1328);
emit_16(1395);
emit_16(1329);
emit_16(1396);
emit_16(1330);
emit_16(1396);
emit_16(1329);
emit_16(1396);
emit_16(1330);
emit_16(1397);
emit_16(1331);
emit_16(1397);
emit_16(1330);
emit_16(1397);
emit_16(1331);
emit_16(1398);
emit_16(1332);
emit_16(1398);
emit_16(1331);
emit_16(1398);
emit_16(1332);
emit_16(1399);
emit_16(1333);
emit_16(1399);
emit_16(1332);
emit_16(1399);
emit_16(1333);
emit_16(1400);
emit_16(1334);
emit_16(1400);
emit_16(1333);
emit_16(1400);
emit_16(1334);
emit_16(1401);
emit_16(1335);
emit_16(1401);
emit_16(1334);
emit_16(1401);
emit_16(1335);
emit_16(1402);
emit_16(1336);
emit_16(1402);
emit_16(1335);
emit_16(1402);
emit_16(1336);
emit_16(1403);
emit_16(1337);
emit_16(1403);
emit_16(1336);
emit_16(1403);
emit_16(1337);
emit_16(1404);
emit_16(1338);
emit_16(1404);
emit_16(1337);
emit_16(1404);
emit_16(1338);
emit_16(1405);
emit_16(1339);
emit_16(1405);
emit_16(1338);
emit_16(1405);
emit_16(1339);
emit_16(1406);
emit_16(1340);
emit_16(1406);
emit_16(1339);
emit_16(1406);
emit_16(1340);
emit_16(1407);
emit_16(1341);
emit_16(1407);
emit_16(1340);
emit_16(1407);
emit_16(1341);
emit_16(1408);
emit_16(1342);
emit_16(1408);
emit_16(1341);
emit_16(1408);
emit_16(1342);
emit_16(1409);
emit_16(1343);
emit_16(1409);
emit_16(1342);
emit_16(1409);
emit_16(1343);
emit_16(1410);
emit_16(1344);
emit_16(1410);
emit_16(1343);
emit_16(1410);
emit_16(1344);
emit_16(1411);
emit_16(1345);
emit_16(1411);
emit_16(1344);
emit_16(1411);
emit_16(1345);
emit_16(1412);
emit_16(1346);
emit_16(1412);
emit_16(1345);
emit_16(1412);
emit_16(1346);
emit_16(1413);
emit_16(1347);
emit_16(1413);
emit_16(1346);
emit_16(1413);
emit_16(1347);
emit_16(1414);
emit_16(1348);
emit_16(1414);
emit_16(1347);
emit_16(1414);
emit_16(1348);
emit_16(1415);
emit_16(1349);
emit_16(1415);
emit_16(1348);
emit_16(1415);
emit_16(1349);
emit_16(1416);
emit_16(1350);
emit_16(1416);
emit_16(1349);
emit_16(1416);
emit_16(1350);
emit_16(1417);
emit_16(1351);
emit_16(1417);
emit_16(1350);
emit_16(1417);
emit_16(1351);
emit_16(1418);
emit_16(1352);
emit_16(1418);
emit_16(1351);
emit_16(1418);
emit_16(1352);
emit_16(1419);
emit_16(1353);
emit_16(1419);
emit_16(1352);
emit_16(1419);
emit_16(1353);
emit_16(1420);
emit_16(1354);
emit_16(1420);
emit_16(1353);
emit_16(1420);
emit_16(1354);
emit_16(1421);
emit_16(1355);
emit_16(1421);
emit_16(1354);
emit_16(1421);
emit_16(1355);
emit_16(1422);
emit_16(1356);
emit_16(1422);
emit_16(1355);
emit_16(1422);
emit_16(1356);
emit_16(1423);
emit_16(1357);
emit_16(1423);
emit_16(1356);
emit_16(1423);
emit_16(1357);
emit_16(1424);
emit_16(1358);
emit_16(1424);
emit_16(1357);
emit_16(1424);
emit_16(1358);
emit_16(1425);
emit_16(1359);
emit_16(1425);
emit_16(1358);
emit_16(1425);
emit_16(1359);
emit_16(1426);
emit_16(1360);
emit_16(1426);
emit_16(1359);
emit_16(1426);
emit_16(1360);
emit_16(1427);
emit_16(1361);
emit_16(1427);
emit_16(1360);
emit_16(1427);
emit_16(1361);
emit_16(1428);
emit_16(1362);
emit_16(1428);
emit_16(1361);
emit_16(1428);
emit_16(1362);
emit_16(1429);
emit_16(1363);
emit_16(1429);
emit_16(1362);
emit_16(1429);
emit_16(1363);
emit_16(1430);
emit_16(1364);
emit_16(1430);
emit_16(1363);
emit_16(1430);
emit_16(1364);
emit_16(1431);
emit_16(1365);
emit_16(1431);
emit_16(1364);
emit_16(1431);
emit_16(1365);
emit_16(1432);
emit_16(1366);
emit_16(1432);
emit_16(1365);
emit_16(1432);
emit_16(1366);
emit_16(1433);
emit_16(1367);
emit_16(1433);
emit_16(1366);
emit_16(1433);
emit_16(1367);
emit_16(1434);
emit_16(1368);
emit_16(1434);
emit_16(1367);
emit_16(1434);
emit_16(1368);
emit_16(1435);
emit_16(1369);
emit_16(1435);
emit_16(1368);
emit_16(1435);
emit_16(1369);
emit_16(1436);
emit_16(1370);
emit_16(1436);
emit_16(1369);
emit_16(1436);
emit_16(1370);
emit_16(1437);
emit_16(1371);
emit_16(1437);
emit_16(1370);
emit_16(1437);
emit_16(1371);
emit_16(1438);
emit_16(1372);
emit_16(1438);
emit_16(1371);
emit_16(1438);
emit_16(1372);
emit_16(1439);
emit_16(1373);
emit_16(1439);
emit_16(1372);
emit_16(1439);
emit_16(1373);
emit_16(1440);
emit_16(1374);
emit_16(1440);
emit_16(1373);
emit_16(1440);
emit_16(1374);
emit_16(1441);
emit_16(1375);
emit_16(1441);
emit_16(1374);
emit_16(1441);
emit_16(1375);
emit_16(1442);
emit_16(1376);
emit_16(1442);
emit_16(1375);
emit_16(1442);
emit_16(1376);
emit_16(1443);
emit_16(1377);
emit_16(1443);
emit_16(1376);
emit_16(1443);
emit_16(1377);
emit_16(1444);
emit_16(1378);
emit_16(1444);
emit_16(1377);
emit_16(1444);
emit_16(1378);
emit_16(1445);
emit_16(1379);
emit_16(1445);
emit_16(1378);
emit_16(1445);
emit_16(1379);
emit_16(1446);
emit_16(1380);
emit_16(1446);
emit_16(1379);
emit_16(1446);
emit_16(1380);
emit_16(1447);
emit_16(1381);
emit_16(1447);
emit_16(1380);
emit_16(1447);
emit_16(1381);
emit_16(1448);
emit_16(1382);
emit_16(1448);
emit_16(1381);
emit_16(1448);
emit_16(1382);
emit_16(1449);
emit_16(1383);
emit_16(1449);
emit_16(1382);
emit_16(1449);
emit_16(1383);
emit_16(1450);
emit_16(1384);
emit_16(1450);
emit_16(1383);
emit_16(1450);
emit_16(1384);
emit_16(1451);
emit_16(1385);
emit_16(1451);
emit_16(1384);
emit_16(1452);
emit_16(1386);
emit_16(1453);
emit_16(1387);
emit_16(1453);
emit_16(1386);
emit_16(1453);
emit_16(1387);
emit_16(1454);
emit_16(1388);
emit_16(1454);
emit_16(1387);
emit_16(1454);
emit_16(1388);
emit_16(1455);
emit_16(1389);
emit_16(1455);
emit_16(1388);
emit_16(1455);
emit_16(1389);
emit_16(1456);
emit_16(1390);
emit_16(1456);
emit_16(1389);
emit_16(1456);
emit_16(1390);
emit_16(1457);
emit_16(1391);
emit_16(1457);
emit_16(1390);
emit_16(1457);
emit_16(1391);
emit_16(1458);
emit_16(1392);
emit_16(1458);
emit_16(1391);
emit_16(1458);
emit_16(1392);
emit_16(1459);
emit_16(1393);
emit_16(1459);
emit_16(1392);
emit_16(1459);
emit_16(1393);
emit_16(1460);
emit_16(1394);
emit_16(1460);
emit_16(1393);
emit_16(1460);
emit_16(1394);
emit_16(1461);
emit_16(1395);
emit_16(1461);
emit_16(1394);
emit_16(1461);
emit_16(1395);
emit_16(1462);
emit_16(1396);
emit_16(1462);
emit_16(1395);
emit_16(1462);
emit_16(1396);
emit_16(1463);
emit_16(1397);
emit_16(1463);
emit_16(1396);
emit_16(1463);
emit_16(1397);
emit_16(1464);
emit_16(1398);
emit_16(1464);
emit_16(1397);
emit_16(1464);
emit_16(1398);
emit_16(1465);
emit_16(1399);
emit_16(1465);
emit_16(1398);
emit_16(1465);
emit_16(1399);
emit_16(1466);
emit_16(1400);
emit_16(1466);
emit_16(1399);
emit_16(1466);
emit_16(1400);
emit_16(1467);
emit_16(1401);
emit_16(1467);
emit_16(1400);
emit_16(1467);
emit_16(1401);
emit_16(1468);
emit_16(1402);
emit_16(1468);
emit_16(1401);
emit_16(1468);
emit_16(1402);
emit_16(1469);
emit_16(1403);
emit_16(1469);
emit_16(1402);
emit_16(1469);
emit_16(1403);
emit_16(1470);
emit_16(1404);
emit_16(1470);
emit_16(1403);
emit_16(1470);
emit_16(1404);
emit_16(1471);
emit_16(1405);
emit_16(1471);
emit_16(1404);
emit_16(1471);
emit_16(1405);
emit_16(1472);
emit_16(1406);
emit_16(1472);
emit_16(1405);
emit_16(1472);
emit_16(1406);
emit_16(1473);
emit_16(1407);
emit_16(1473);
emit_16(1406);
emit_16(1473);
emit_16(1407);
emit_16(1474);
emit_16(1408);
emit_16(1474);
emit_16(1407);
emit_16(1474);
emit_16(1408);
emit_16(1475);
emit_16(1409);
emit_16(1475);
emit_16(1408);
emit_16(1475);
emit_16(1409);
emit_16(1476);
emit_16(1410);
emit_16(1476);
emit_16(1409);
emit_16(1476);
emit_16(1410);
emit_16(1477);
emit_16(1411);
emit_16(1477);
emit_16(1410);
emit_16(1477);
emit_16(1411);
emit_16(1478);
emit_16(1412);
emit_16(1478);
emit_16(1411);
emit_16(1478);
emit_16(1412);
emit_16(1479);
emit_16(1413);
emit_16(1479);
emit_16(1412);
emit_16(1479);
emit_16(1413);
emit_16(1480);
emit_16(1414);
emit_16(1480);
emit_16(1413);
emit_16(1480);
emit_16(1414);
emit_16(1481);
emit_16(1415);
emit_16(1481);
emit_16(1414);
emit_16(1481);
emit_16(1415);
emit_16(1482);
emit_16(1416);
emit_16(1482);
emit_16(1415);
emit_16(1482);
emit_16(1416);
emit_16(1483);
emit_16(1417);
emit_16(1483);
emit_16(1416);
emit_16(1483);
emit_16(1417);
emit_16(1484);
emit_16(1418);
emit_16(1484);
emit_16(1417);
emit_16(1484);
emit_16(1418);
emit_16(1485);
emit_16(1419);
emit_16(1485);
emit_16(1418);
emit_16(1485);
emit_16(1419);
emit_16(1486);
emit_16(1420);
emit_16(1486);
emit_16(1419);
emit_16(1486);
emit_16(1420);
emit_16(1487);
emit_16(1421);
emit_16(1487);
emit_16(1420);
emit_16(1487);
emit_16(1421);
emit_16(1488);
emit_16(1422);
emit_16(1488);
emit_16(1421);
emit_16(1488);
emit_16(1422);
emit_16(1489);
emit_16(1423);
emit_16(1489);
emit_16(1422);
emit_16(1489);
emit_16(1423);
emit_16(1490);
emit_16(1424);
emit_16(1490);
emit_16(1423);
emit_16(1490);
emit_16(1424);
emit_16(1491);
emit_16(1425);
emit_16(1491);
emit_16(1424);
emit_16(1491);
emit_16(1425);
emit_16(1492);
emit_16(1426);
emit_16(1492);
emit_16(1425);
emit_16(1492);
emit_16(1426);
emit_16(1493);
emit_16(1427);
emit_16(1493);
emit_16(1426);
emit_16(1493);
emit_16(1427);
emit_16(1494);
emit_16(1428);
emit_16(1494);
emit_16(1427);
emit_16(1494);
emit_16(1428);
emit_16(1495);
emit_16(1429);
emit_16(1495);
emit_16(1428);
emit_16(1495);
emit_16(1429);
emit_16(1496);
emit_16(1430);
emit_16(1496);
emit_16(1429);
emit_16(1496);
emit_16(1430);
emit_16(1497);
emit_16(1431);
emit_16(1497);
emit_16(1430);
emit_16(1497);
emit_16(1431);
emit_16(1498);
emit_16(1432);
emit_16(1498);
emit_16(1431);
emit_16(1498);
emit_16(1432);
emit_16(1499);
emit_16(1433);
emit_16(1499);
emit_16(1432);
emit_16(1499);
emit_16(1433);
emit_16(1500);
emit_16(1434);
emit_16(1500);
emit_16(1433);
emit_16(1500);
emit_16(1434);
emit_16(1501);
emit_16(1435);
emit_16(1501);
emit_16(1434);
emit_16(1501);
emit_16(1435);
emit_16(1502);
emit_16(1436);
emit_16(1502);
emit_16(1435);
emit_16(1502);
emit_16(1436);
emit_16(1503);
emit_16(1437);
emit_16(1503);
emit_16(1436);
emit_16(1503);
emit_16(1437);
emit_16(1504);
emit_16(1438);
emit_16(1504);
emit_16(1437);
emit_16(1504);
emit_16(1438);
emit_16(1505);
emit_16(1439);
emit_16(1505);
emit_16(1438);
emit_16(1505);
emit_16(1439);
emit_16(1506);
emit_16(1440);
emit_16(1506);
emit_16(1439);
emit_16(1506);
emit_16(1440);
emit_16(1507);
emit_16(1441);
emit_16(1507);
emit_16(1440);
emit_16(1507);
emit_16(1441);
emit_16(1508);
emit_16(1442);
emit_16(1508);
emit_16(1441);
emit_16(1508);
emit_16(1442);
emit_16(1509);
emit_16(1443);
emit_16(1509);
emit_16(1442);
emit_16(1509);
emit_16(1443);
emit_16(1510);
emit_16(1444);
emit_16(1510);
emit_16(1443);
emit_16(1510);
emit_16(1444);
emit_16(1511);
emit_16(1445);
emit_16(1511);
emit_16(1444);
emit_16(1511);
emit_16(1445);
emit_16(1512);
emit_16(1446);
emit_16(1512);
emit_16(1445);
emit_16(1512);
emit_16(1446);
emit_16(1513);
emit_16(1447);
emit_16(1513);
emit_16(1446);
emit_16(1513);
emit_16(1447);
emit_16(1514);
emit_16(1448);
emit_16(1514);
emit_16(1447);
emit_16(1514);
emit_16(1448);
emit_16(1515);
emit_16(1449);
emit_16(1515);
emit_16(1448);
emit_16(1515);
emit_16(1449);
emit_16(1516);
emit_16(1450);
emit_16(1516);
emit_16(1449);
emit_16(1516);
emit_16(1450);
emit_16(1517);
emit_16(1451);
emit_16(1517);
emit_16(1450);
emit_16(1518);
emit_16(1452);
emit_16(1519);
emit_16(1453);
emit_16(1519);
emit_16(1452);
emit_16(1519);
emit_16(1453);
emit_16(1520);
emit_16(1454);
emit_16(1520);
emit_16(1453);
emit_16(1520);
emit_16(1454);
emit_16(1521);
emit_16(1455);
emit_16(1521);
emit_16(1454);
emit_16(1521);
emit_16(1455);
emit_16(1522);
emit_16(1456);
emit_16(1522);
emit_16(1455);
emit_16(1522);
emit_16(1456);
emit_16(1523);
emit_16(1457);
emit_16(1523);
emit_16(1456);
emit_16(1523);
emit_16(1457);
emit_16(1524);
emit_16(1458);
emit_16(1524);
emit_16(1457);
emit_16(1524);
emit_16(1458);
emit_16(1525);
emit_16(1459);
emit_16(1525);
emit_16(1458);
emit_16(1525);
emit_16(1459);
emit_16(1526);
emit_16(1460);
emit_16(1526);
emit_16(1459);
emit_16(1526);
emit_16(1460);
emit_16(1527);
emit_16(1461);
emit_16(1527);
emit_16(1460);
emit_16(1527);
emit_16(1461);
emit_16(1528);
emit_16(1462);
emit_16(1528);
emit_16(1461);
emit_16(1528);
emit_16(1462);
emit_16(1529);
emit_16(1463);
emit_16(1529);
emit_16(1462);
emit_16(1529);
emit_16(1463);
emit_16(1530);
emit_16(1464);
emit_16(1530);
emit_16(1463);
emit_16(1530);
emit_16(1464);
emit_16(1531);
emit_16(1465);
emit_16(1531);
emit_16(1464);
emit_16(1531);
emit_16(1465);
emit_16(1532);
emit_16(1466);
emit_16(1532);
emit_16(1465);
emit_16(1532);
emit_16(1466);
emit_16(1533);
emit_16(1467);
emit_16(1533);
emit_16(1466);
emit_16(1533);
emit_16(1467);
emit_16(1534);
emit_16(1468);
emit_16(1534);
emit_16(1467);
emit_16(1534);
emit_16(1468);
emit_16(1535);
emit_16(1469);
emit_16(1535);
emit_16(1468);
emit_16(1535);
emit_16(1469);
emit_16(1536);
emit_16(1470);
emit_16(1536);
emit_16(1469);
emit_16(1536);
emit_16(1470);
emit_16(1537);
emit_16(1471);
emit_16(1537);
emit_16(1470);
emit_16(1537);
emit_16(1471);
emit_16(1538);
emit_16(1472);
emit_16(1538);
emit_16(1471);
emit_16(1538);
emit_16(1472);
emit_16(1539);
emit_16(1473);
emit_16(1539);
emit_16(1472);
emit_16(1539);
emit_16(1473);
emit_16(1540);
emit_16(1474);
emit_16(1540);
emit_16(1473);
emit_16(1540);
emit_16(1474);
emit_16(1541);
emit_16(1475);
emit_16(1541);
emit_16(1474);
emit_16(1541);
emit_16(1475);
emit_16(1542);
emit_16(1476);
emit_16(1542);
emit_16(1475);
emit_16(1542);
emit_16(1476);
emit_16(1543);
emit_16(1477);
emit_16(1543);
emit_16(1476);
emit_16(1543);
emit_16(1477);
emit_16(1544);
emit_16(1478);
emit_16(1544);
emit_16(1477);
emit_16(1544);
emit_16(1478);
emit_16(1545);
emit_16(1479);
emit_16(1545);
emit_16(1478);
emit_16(1545);
emit_16(1479);
emit_16(1546);
emit_16(1480);
emit_16(1546);
emit_16(1479);
emit_16(1546);
emit_16(1480);
emit_16(1547);
emit_16(1481);
emit_16(1547);
emit_16(1480);
emit_16(1547);
emit_16(1481);
emit_16(1548);
emit_16(1482);
emit_16(1548);
emit_16(1481);
emit_16(1548);
emit_16(1482);
emit_16(1549);
emit_16(1483);
emit_16(1549);
emit_16(1482);
emit_16(1549);
emit_16(1483);
emit_16(1550);
emit_16(1484);
emit_16(1550);
emit_16(1483);
emit_16(1550);
emit_16(1484);
emit_16(1551);
emit_16(1485);
emit_16(1551);
emit_16(1484);
emit_16(1551);
emit_16(1485);
emit_16(1552);
emit_16(1486);
emit_16(1552);
emit_16(1485);
emit_16(1552);
emit_16(1486);
emit_16(1553);
emit_16(1487);
emit_16(1553);
emit_16(1486);
emit_16(1553);
emit_16(1487);
emit_16(1554);
emit_16(1488);
emit_16(1554);
emit_16(1487);
emit_16(1554);
emit_16(1488);
emit_16(1555);
emit_16(1489);
emit_16(1555);
emit_16(1488);
emit_16(1555);
emit_16(1489);
emit_16(1556);
emit_16(1490);
emit_16(1556);
emit_16(1489);
emit_16(1556);
emit_16(1490);
emit_16(1557);
emit_16(1491);
emit_16(1557);
emit_16(1490);
emit_16(1557);
emit_16(1491);
emit_16(1558);
emit_16(1492);
emit_16(1558);
emit_16(1491);
emit_16(1558);
emit_16(1492);
emit_16(1559);
emit_16(1493);
emit_16(1559);
emit_16(1492);
emit_16(1559);
emit_16(1493);
emit_16(1560);
emit_16(1494);
emit_16(1560);
emit_16(1493);
emit_16(1560);
emit_16(1494);
emit_16(1561);
emit_16(1495);
emit_16(1561);
emit_16(1494);
emit_16(1561);
emit_16(1495);
emit_16(1562);
emit_16(1496);
emit_16(1562);
emit_16(1495);
emit_16(1562);
emit_16(1496);
emit_16(1563);
emit_16(1497);
emit_16(1563);
emit_16(1496);
emit_16(1563);
emit_16(1497);
emit_16(1564);
emit_16(1498);
emit_16(1564);
emit_16(1497);
emit_16(1564);
emit_16(1498);
emit_16(1565);
emit_16(1499);
emit_16(1565);
emit_16(1498);
emit_16(1565);
emit_16(1499);
emit_16(1566);
emit_16(1500);
emit_16(1566);
emit_16(1499);
emit_16(1566);
emit_16(1500);
emit_16(1567);
emit_16(1501);
emit_16(1567);
emit_16(1500);
emit_16(1567);
emit_16(1501);
emit_16(1568);
emit_16(1502);
emit_16(1568);
emit_16(1501);
emit_16(1568);
emit_16(1502);
emit_16(1569);
emit_16(1503);
emit_16(1569);
emit_16(1502);
emit_16(1569);
emit_16(1503);
emit_16(1570);
emit_16(1504);
emit_16(1570);
emit_16(1503);
emit_16(1570);
emit_16(1504);
emit_16(1571);
emit_16(1505);
emit_16(1571);
emit_16(1504);
emit_16(1571);
emit_16(1505);
emit_16(1572);
emit_16(1506);
emit_16(1572);
emit_16(1505);
emit_16(1572);
emit_16(1506);
emit_16(1573);
emit_16(1507);
emit_16(1573);
emit_16(1506);
emit_16(1573);
emit_16(1507);
emit_16(1574);
emit_16(1508);
emit_16(1574);
emit_16(1507);
emit_16(1574);
emit_16(1508);
emit_16(1575);
emit_16(1509);
emit_16(1575);
emit_16(1508);
emit_16(1575);
emit_16(1509);
emit_16(1576);
emit_16(1510);
emit_16(1576);
emit_16(1509);
emit_16(1576);
emit_16(1510);
emit_16(1577);
emit_16(1511);
emit_16(1577);
emit_16(1510);
emit_16(1577);
emit_16(1511);
emit_16(1578);
emit_16(1512);
emit_16(1578);
emit_16(1511);
emit_16(1578);
emit_16(1512);
emit_16(1579);
emit_16(1513);
emit_16(1579);
emit_16(1512);
emit_16(1579);
emit_16(1513);
emit_16(1580);
emit_16(1514);
emit_16(1580);
emit_16(1513);
emit_16(1580);
emit_16(1514);
emit_16(1581);
emit_16(1515);
emit_16(1581);
emit_16(1514);
emit_16(1581);
emit_16(1515);
emit_16(1582);
emit_16(1516);
emit_16(1582);
emit_16(1515);
emit_16(1582);
emit_16(1516);
emit_16(1583);
emit_16(1517);
emit_16(1583);
emit_16(1516);
emit_16(1584);
emit_16(1518);
emit_16(1585);
emit_16(1519);
emit_16(1585);
emit_16(1518);
emit_16(1585);
emit_16(1519);
emit_16(1586);
emit_16(1520);
emit_16(1586);
emit_16(1519);
emit_16(1586);
emit_16(1520);
emit_16(1587);
emit_16(1521);
emit_16(1587);
emit_16(1520);
emit_16(1587);
emit_16(1521);
emit_16(1588);
emit_16(1522);
emit_16(1588);
emit_16(1521);
emit_16(1588);
emit_16(1522);
emit_16(1589);
emit_16(1523);
emit_16(1589);
emit_16(1522);
emit_16(1589);
emit_16(1523);
emit_16(1590);
emit_16(1524);
emit_16(1590);
emit_16(1523);
emit_16(1590);
emit_16(1524);
emit_16(1591);
emit_16(1525);
emit_16(1591);
emit_16(1524);
emit_16(1591);
emit_16(1525);
emit_16(1592);
emit_16(1526);
emit_16(1592);
emit_16(1525);
emit_16(1592);
emit_16(1526);
emit_16(1593);
emit_16(1527);
emit_16(1593);
emit_16(1526);
emit_16(1593);
emit_16(1527);
emit_16(1594);
emit_16(1528);
emit_16(1594);
emit_16(1527);
emit_16(1594);
emit_16(1528);
emit_16(1595);
emit_16(1529);
emit_16(1595);
emit_16(1528);
emit_16(1595);
emit_16(1529);
emit_16(1596);
emit_16(1530);
emit_16(1596);
emit_16(1529);
emit_16(1596);
emit_16(1530);
emit_16(1597);
emit_16(1531);
emit_16(1597);
emit_16(1530);
emit_16(1597);
emit_16(1531);
emit_16(1598);
emit_16(1532);
emit_16(1598);
emit_16(1531);
emit_16(1598);
emit_16(1532);
emit_16(1599);
emit_16(1533);
emit_16(1599);
emit_16(1532);
emit_16(1599);
emit_16(1533);
emit_16(1600);
emit_16(1534);
emit_16(1600);
emit_16(1533);
emit_16(1600);
emit_16(1534);
emit_16(1601);
emit_16(1535);
emit_16(1601);
emit_16(1534);
emit_16(1601);
emit_16(1535);
emit_16(1602);
emit_16(1536);
emit_16(1602);
emit_16(1535);
emit_16(1602);
emit_16(1536);
emit_16(1603);
emit_16(1537);
emit_16(1603);
emit_16(1536);
emit_16(1603);
emit_16(1537);
emit_16(1604);
emit_16(1538);
emit_16(1604);
emit_16(1537);
emit_16(1604);
emit_16(1538);
emit_16(1605);
emit_16(1539);
emit_16(1605);
emit_16(1538);
emit_16(1605);
emit_16(1539);
emit_16(1606);
emit_16(1540);
emit_16(1606);
emit_16(1539);
emit_16(1606);
emit_16(1540);
emit_16(1607);
emit_16(1541);
emit_16(1607);
emit_16(1540);
emit_16(1607);
emit_16(1541);
emit_16(1608);
emit_16(1542);
emit_16(1608);
emit_16(1541);
emit_16(1608);
emit_16(1542);
emit_16(1609);
emit_16(1543);
emit_16(1609);
emit_16(1542);
emit_16(1609);
emit_16(1543);
emit_16(1610);
emit_16(1544);
emit_16(1610);
emit_16(1543);
emit_16(1610);
emit_16(1544);
emit_16(1611);
emit_16(1545);
emit_16(1611);
emit_16(1544);
emit_16(1611);
emit_16(1545);
emit_16(1612);
emit_16(1546);
emit_16(1612);
emit_16(1545);
emit_16(1612);
emit_16(1546);
emit_16(1613);
emit_16(1547);
emit_16(1613);
emit_16(1546);
emit_16(1613);
emit_16(1547);
emit_16(1614);
emit_16(1548);
emit_16(1614);
emit_16(1547);
emit_16(1614);
emit_16(1548);
emit_16(1615);
emit_16(1549);
emit_16(1615);
emit_16(1548);
emit_16(1615);
emit_16(1549);
emit_16(1616);
emit_16(1550);
emit_16(1616);
emit_16(1549);
emit_16(1616);
emit_16(1550);
emit_16(1617);
emit_16(1551);
emit_16(1617);
emit_16(1550);
emit_16(1617);
emit_16(1551);
emit_16(1618);
emit_16(1552);
emit_16(1618);
emit_16(1551);
emit_16(1618);
emit_16(1552);
emit_16(1619);
emit_16(1553);
emit_16(1619);
emit_16(1552);
emit_16(1619);
emit_16(1553);
emit_16(1620);
emit_16(1554);
emit_16(1620);
emit_16(1553);
emit_16(1620);
emit_16(1554);
emit_16(1621);
emit_16(1555);
emit_16(1621);
emit_16(1554);
emit_16(1621);
emit_16(1555);
emit_16(1622);
emit_16(1556);
emit_16(1622);
emit_16(1555);
emit_16(1622);
emit_16(1556);
emit_16(1623);
emit_16(1557);
emit_16(1623);
emit_16(1556);
emit_16(1623);
emit_16(1557);
emit_16(1624);
emit_16(1558);
emit_16(1624);
emit_16(1557);
emit_16(1624);
emit_16(1558);
emit_16(1625);
emit_16(1559);
emit_16(1625);
emit_16(1558);
emit_16(1625);
emit_16(1559);
emit_16(1626);
emit_16(1560);
emit_16(1626);
emit_16(1559);
emit_16(1626);
emit_16(1560);
emit_16(1627);
emit_16(1561);
emit_16(1627);
emit_16(1560);
emit_16(1627);
emit_16(1561);
emit_16(1628);
emit_16(1562);
emit_16(1628);
emit_16(1561);
emit_16(1628);
emit_16(1562);
emit_16(1629);
emit_16(1563);
emit_16(1629);
emit_16(1562);
emit_16(1629);
emit_16(1563);
emit_16(1630);
emit_16(1564);
emit_16(1630);
emit_16(1563);
emit_16(1630);
emit_16(1564);
emit_16(1631);
emit_16(1565);
emit_16(1631);
emit_16(1564);
emit_16(1631);
emit_16(1565);
emit_16(1632);
emit_16(1566);
emit_16(1632);
emit_16(1565);
emit_16(1632);
emit_16(1566);
emit_16(1633);
emit_16(1567);
emit_16(1633);
emit_16(1566);
emit_16(1633);
emit_16(1567);
emit_16(1634);
emit_16(1568);
emit_16(1634);
emit_16(1567);
emit_16(1634);
emit_16(1568);
emit_16(1635);
emit_16(1569);
emit_16(1635);
emit_16(1568);
emit_16(1635);
emit_16(1569);
emit_16(1636);
emit_16(1570);
emit_16(1636);
emit_16(1569);
emit_16(1636);
emit_16(1570);
emit_16(1637);
emit_16(1571);
emit_16(1637);
emit_16(1570);
emit_16(1637);
emit_16(1571);
emit_16(1638);
emit_16(1572);
emit_16(1638);
emit_16(1571);
emit_16(1638);
emit_16(1572);
emit_16(1639);
emit_16(1573);
emit_16(1639);
emit_16(1572);
emit_16(1639);
emit_16(1573);
emit_16(1640);
emit_16(1574);
emit_16(1640);
emit_16(1573);
emit_16(1640);
emit_16(1574);
emit_16(1641);
emit_16(1575);
emit_16(1641);
emit_16(1574);
emit_16(1641);
emit_16(1575);
emit_16(1642);
emit_16(1576);
emit_16(1642);
emit_16(1575);
emit_16(1642);
emit_16(1576);
emit_16(1643);
emit_16(1577);
emit_16(1643);
emit_16(1576);
emit_16(1643);
emit_16(1577);
emit_16(1644);
emit_16(1578);
emit_16(1644);
emit_16(1577);
emit_16(1644);
emit_16(1578);
emit_16(1645);
emit_16(1579);
emit_16(1645);
emit_16(1578);
emit_16(1645);
emit_16(1579);
emit_16(1646);
emit_16(1580);
emit_16(1646);
emit_16(1579);
emit_16(1646);
emit_16(1580);
emit_16(1647);
emit_16(1581);
emit_16(1647);
emit_16(1580);
emit_16(1647);
emit_16(1581);
emit_16(1648);
emit_16(1582);
emit_16(1648);
emit_16(1581);
emit_16(1648);
emit_16(1582);
emit_16(1649);
emit_16(1583);
emit_16(1649);
emit_16(1582);
emit_16(1650);
emit_16(1584);
emit_16(1651);
emit_16(1585);
emit_16(1651);
emit_16(1584);
emit_16(1651);
emit_16(1585);
emit_16(1652);
emit_16(1586);
emit_16(1652);
emit_16(1585);
emit_16(1652);
emit_16(1586);
emit_16(1653);
emit_16(1587);
emit_16(1653);
emit_16(1586);
emit_16(1653);
emit_16(1587);
emit_16(1654);
emit_16(1588);
emit_16(1654);
emit_16(1587);
emit_16(1654);
emit_16(1588);
emit_16(1655);
emit_16(1589);
emit_16(1655);
emit_16(1588);
emit_16(1655);
emit_16(1589);
emit_16(1656);
emit_16(1590);
emit_16(1656);
emit_16(1589);
emit_16(1656);
emit_16(1590);
emit_16(1657);
emit_16(1591);
emit_16(1657);
emit_16(1590);
emit_16(1657);
emit_16(1591);
emit_16(1658);
emit_16(1592);
emit_16(1658);
emit_16(1591);
emit_16(1658);
emit_16(1592);
emit_16(1659);
emit_16(1593);
emit_16(1659);
emit_16(1592);
emit_16(1659);
emit_16(1593);
emit_16(1660);
emit_16(1594);
emit_16(1660);
emit_16(1593);
emit_16(1660);
emit_16(1594);
emit_16(1661);
emit_16(1595);
emit_16(1661);
emit_16(1594);
emit_16(1661);
emit_16(1595);
emit_16(1662);
emit_16(1596);
emit_16(1662);
emit_16(1595);
emit_16(1662);
emit_16(1596);
emit_16(1663);
emit_16(1597);
emit_16(1663);
emit_16(1596);
emit_16(1663);
emit_16(1597);
emit_16(1664);
emit_16(1598);
emit_16(1664);
emit_16(1597);
emit_16(1664);
emit_16(1598);
emit_16(1665);
emit_16(1599);
emit_16(1665);
emit_16(1598);
emit_16(1665);
emit_16(1599);
emit_16(1666);
emit_16(1600);
emit_16(1666);
emit_16(1599);
emit_16(1666);
emit_16(1600);
emit_16(1667);
emit_16(1601);
emit_16(1667);
emit_16(1600);
emit_16(1667);
emit_16(1601);
emit_16(1668);
emit_16(1602);
emit_16(1668);
emit_16(1601);
emit_16(1668);
emit_16(1602);
emit_16(1669);
emit_16(1603);
emit_16(1669);
emit_16(1602);
emit_16(1669);
emit_16(1603);
emit_16(1670);
emit_16(1604);
emit_16(1670);
emit_16(1603);
emit_16(1670);
emit_16(1604);
emit_16(1671);
emit_16(1605);
emit_16(1671);
emit_16(1604);
emit_16(1671);
emit_16(1605);
emit_16(1672);
emit_16(1606);
emit_16(1672);
emit_16(1605);
emit_16(1672);
emit_16(1606);
emit_16(1673);
emit_16(1607);
emit_16(1673);
emit_16(1606);
emit_16(1673);
emit_16(1607);
emit_16(1674);
emit_16(1608);
emit_16(1674);
emit_16(1607);
emit_16(1674);
emit_16(1608);
emit_16(1675);
emit_16(1609);
emit_16(1675);
emit_16(1608);
emit_16(1675);
emit_16(1609);
emit_16(1676);
emit_16(1610);
emit_16(1676);
emit_16(1609);
emit_16(1676);
emit_16(1610);
emit_16(1677);
emit_16(1611);
emit_16(1677);
emit_16(1610);
emit_16(1677);
emit_16(1611);
emit_16(1678);
emit_16(1612);
emit_16(1678);
emit_16(1611);
emit_16(1678);
emit_16(1612);
emit_16(1679);
emit_16(1613);
emit_16(1679);
emit_16(1612);
emit_16(1679);
emit_16(1613);
emit_16(1680);
emit_16(1614);
emit_16(1680);
emit_16(1613);
emit_16(1680);
emit_16(1614);
emit_16(1681);
emit_16(1615);
emit_16(1681);
emit_16(1614);
emit_16(1681);
emit_16(1615);
emit_16(1682);
emit_16(1616);
emit_16(1682);
emit_16(1615);
emit_16(1682);
emit_16(1616);
emit_16(1683);
emit_16(1617);
emit_16(1683);
emit_16(1616);
emit_16(1683);
emit_16(1617);
emit_16(1684);
emit_16(1618);
emit_16(1684);
emit_16(1617);
emit_16(1684);
emit_16(1618);
emit_16(1685);
emit_16(1619);
emit_16(1685);
emit_16(1618);
emit_16(1685);
emit_16(1619);
emit_16(1686);
emit_16(1620);
emit_16(1686);
emit_16(1619);
emit_16(1686);
emit_16(1620);
emit_16(1687);
emit_16(1621);
emit_16(1687);
emit_16(1620);
emit_16(1687);
emit_16(1621);
emit_16(1688);
emit_16(1622);
emit_16(1688);
emit_16(1621);
emit_16(1688);
emit_16(1622);
emit_16(1689);
emit_16(1623);
emit_16(1689);
emit_16(1622);
emit_16(1689);
emit_16(1623);
emit_16(1690);
emit_16(1624);
emit_16(1690);
emit_16(1623);
emit_16(1690);
emit_16(1624);
emit_16(1691);
emit_16(1625);
emit_16(1691);
emit_16(1624);
emit_16(1691);
emit_16(1625);
emit_16(1692);
emit_16(1626);
emit_16(1692);
emit_16(1625);
emit_16(1692);
emit_16(1626);
emit_16(1693);
emit_16(1627);
emit_16(1693);
emit_16(1626);
emit_16(1693);
emit_16(1627);
emit_16(1694);
emit_16(1628);
emit_16(1694);
emit_16(1627);
emit_16(1694);
emit_16(1628);
emit_16(1695);
emit_16(1629);
emit_16(1695);
emit_16(1628);
emit_16(1695);
emit_16(1629);
emit_16(1696);
emit_16(1630);
emit_16(1696);
emit_16(1629);
emit_16(1696);
emit_16(1630);
emit_16(1697);
emit_16(1631);
emit_16(1697);
emit_16(1630);
emit_16(1697);
emit_16(1631);
emit_16(1698);
emit_16(1632);
emit_16(1698);
emit_16(1631);
emit_16(1698);
emit_16(1632);
emit_16(1699);
emit_16(1633);
emit_16(1699);
emit_16(1632);
emit_16(1699);
emit_16(1633);
emit_16(1700);
emit_16(1634);
emit_16(1700);
emit_16(1633);
emit_16(1700);
emit_16(1634);
emit_16(1701);
emit_16(1635);
emit_16(1701);
emit_16(1634);
emit_16(1701);
emit_16(1635);
emit_16(1702);
emit_16(1636);
emit_16(1702);
emit_16(1635);
emit_16(1702);
emit_16(1636);
emit_16(1703);
emit_16(1637);
emit_16(1703);
emit_16(1636);
emit_16(1703);
emit_16(1637);
emit_16(1704);
emit_16(1638);
emit_16(1704);
emit_16(1637);
emit_16(1704);
emit_16(1638);
emit_16(1705);
emit_16(1639);
emit_16(1705);
emit_16(1638);
emit_16(1705);
emit_16(1639);
emit_16(1706);
emit_16(1640);
emit_16(1706);
emit_16(1639);
emit_16(1706);
emit_16(1640);
emit_16(1707);
emit_16(1641);
emit_16(1707);
emit_16(1640);
emit_16(1707);
emit_16(1641);
emit_16(1708);
emit_16(1642);
emit_16(1708);
emit_16(1641);
emit_16(1708);
emit_16(1642);
emit_16(1709);
emit_16(1643);
emit_16(1709);
emit_16(1642);
emit_16(1709);
emit_16(1643);
emit_16(1710);
emit_16(1644);
emit_16(1710);
emit_16(1643);
emit_16(1710);
emit_16(1644);
emit_16(1711);
emit_16(1645);
emit_16(1711);
emit_16(1644);
emit_16(1711);
emit_16(1645);
emit_16(1712);
emit_16(1646);
emit_16(1712);
emit_16(1645);
emit_16(1712);
emit_16(1646);
emit_16(1713);
emit_16(1647);
emit_16(1713);
emit_16(1646);
emit_16(1713);
emit_16(1647);
emit_16(1714);
emit_16(1648);
emit_16(1714);
emit_16(1647);
emit_16(1714);
emit_16(1648);
emit_16(1715);
emit_16(1649);
emit_16(1715);
emit_16(1648);
emit_16(1716);
emit_16(1650);
emit_16(1717);
emit_16(1651);
emit_16(1717);
emit_16(1650);
emit_16(1717);
emit_16(1651);
emit_16(1718);
emit_16(1652);
emit_16(1718);
emit_16(1651);
emit_16(1718);
emit_16(1652);
emit_16(1719);
emit_16(1653);
emit_16(1719);
emit_16(1652);
emit_16(1719);
emit_16(1653);
emit_16(1720);
emit_16(1654);
emit_16(1720);
emit_16(1653);
emit_16(1720);
emit_16(1654);
emit_16(1721);
emit_16(1655);
emit_16(1721);
emit_16(1654);
emit_16(1721);
emit_16(1655);
emit_16(1722);
emit_16(1656);
emit_16(1722);
emit_16(1655);
emit_16(1722);
emit_16(1656);
emit_16(1723);
emit_16(1657);
emit_16(1723);
emit_16(1656);
emit_16(1723);
emit_16(1657);
emit_16(1724);
emit_16(1658);
emit_16(1724);
emit_16(1657);
emit_16(1724);
emit_16(1658);
emit_16(1725);
emit_16(1659);
emit_16(1725);
emit_16(1658);
emit_16(1725);
emit_16(1659);
emit_16(1726);
emit_16(1660);
emit_16(1726);
emit_16(1659);
emit_16(1726);
emit_16(1660);
emit_16(1727);
emit_16(1661);
emit_16(1727);
emit_16(1660);
emit_16(1727);
emit_16(1661);
emit_16(1728);
emit_16(1662);
emit_16(1728);
emit_16(1661);
emit_16(1728);
emit_16(1662);
emit_16(1729);
emit_16(1663);
emit_16(1729);
emit_16(1662);
emit_16(1729);
emit_16(1663);
emit_16(1730);
emit_16(1664);
emit_16(1730);
emit_16(1663);
emit_16(1730);
emit_16(1664);
emit_16(1731);
emit_16(1665);
emit_16(1731);
emit_16(1664);
emit_16(1731);
emit_16(1665);
emit_16(1732);
emit_16(1666);
emit_16(1732);
emit_16(1665);
emit_16(1732);
emit_16(1666);
emit_16(1733);
emit_16(1667);
emit_16(1733);
emit_16(1666);
emit_16(1733);
emit_16(1667);
emit_16(1734);
emit_16(1668);
emit_16(1734);
emit_16(1667);
emit_16(1734);
emit_16(1668);
emit_16(1735);
emit_16(1669);
emit_16(1735);
emit_16(1668);
emit_16(1735);
emit_16(1669);
emit_16(1736);
emit_16(1670);
emit_16(1736);
emit_16(1669);
emit_16(1736);
emit_16(1670);
emit_16(1737);
emit_16(1671);
emit_16(1737);
emit_16(1670);
emit_16(1737);
emit_16(1671);
emit_16(1738);
emit_16(1672);
emit_16(1738);
emit_16(1671);
emit_16(1738);
emit_16(1672);
emit_16(1739);
emit_16(1673);
emit_16(1739);
emit_16(1672);
emit_16(1739);
emit_16(1673);
emit_16(1740);
emit_16(1674);
emit_16(1740);
emit_16(1673);
emit_16(1740);
emit_16(1674);
emit_16(1741);
emit_16(1675);
emit_16(1741);
emit_16(1674);
emit_16(1741);
emit_16(1675);
emit_16(1742);
emit_16(1676);
emit_16(1742);
emit_16(1675);
emit_16(1742);
emit_16(1676);
emit_16(1743);
emit_16(1677);
emit_16(1743);
emit_16(1676);
emit_16(1743);
emit_16(1677);
emit_16(1744);
emit_16(1678);
emit_16(1744);
emit_16(1677);
emit_16(1744);
emit_16(1678);
emit_16(1745);
emit_16(1679);
emit_16(1745);
emit_16(1678);
emit_16(1745);
emit_16(1679);
emit_16(1746);
emit_16(1680);
emit_16(1746);
emit_16(1679);
emit_16(1746);
emit_16(1680);
emit_16(1747);
emit_16(1681);
emit_16(1747);
emit_16(1680);
emit_16(1747);
emit_16(1681);
emit_16(1748);
emit_16(1682);
emit_16(1748);
emit_16(1681);
emit_16(1748);
emit_16(1682);
emit_16(1749);
emit_16(1683);
emit_16(1749);
emit_16(1682);
emit_16(1749);
emit_16(1683);
emit_16(1750);
emit_16(1684);
emit_16(1750);
emit_16(1683);
emit_16(1750);
emit_16(1684);
emit_16(1751);
emit_16(1685);
emit_16(1751);
emit_16(1684);
emit_16(1751);
emit_16(1685);
emit_16(1752);
emit_16(1686);
emit_16(1752);
emit_16(1685);
emit_16(1752);
emit_16(1686);
emit_16(1753);
emit_16(1687);
emit_16(1753);
emit_16(1686);
emit_16(1753);
emit_16(1687);
emit_16(1754);
emit_16(1688);
emit_16(1754);
emit_16(1687);
emit_16(1754);
emit_16(1688);
emit_16(1755);
emit_16(1689);
emit_16(1755);
emit_16(1688);
emit_16(1755);
emit_16(1689);
emit_16(1756);
emit_16(1690);
emit_16(1756);
emit_16(1689);
emit_16(1756);
emit_16(1690);
emit_16(1757);
emit_16(1691);
emit_16(1757);
emit_16(1690);
emit_16(1757);
emit_16(1691);
emit_16(1758);
emit_16(1692);
emit_16(1758);
emit_16(1691);
emit_16(1758);
emit_16(1692);
emit_16(1759);
emit_16(1693);
emit_16(1759);
emit_16(1692);
emit_16(1759);
emit_16(1693);
emit_16(1760);
emit_16(1694);
emit_16(1760);
emit_16(1693);
emit_16(1760);
emit_16(1694);
emit_16(1761);
emit_16(1695);
emit_16(1761);
emit_16(1694);
emit_16(1761);
emit_16(1695);
emit_16(1762);
emit_16(1696);
emit_16(1762);
emit_16(1695);
emit_16(1762);
emit_16(1696);
emit_16(1763);
emit_16(1697);
emit_16(1763);
emit_16(1696);
emit_16(1763);
emit_16(1697);
emit_16(1764);
emit_16(1698);
emit_16(1764);
emit_16(1697);
emit_16(1764);
emit_16(1698);
emit_16(1765);
emit_16(1699);
emit_16(1765);
emit_16(1698);
emit_16(1765);
emit_16(1699);
emit_16(1766);
emit_16(1700);
emit_16(1766);
emit_16(1699);
emit_16(1766);
emit_16(1700);
emit_16(1767);
emit_16(1701);
emit_16(1767);
emit_16(1700);
emit_16(1767);
emit_16(1701);
emit_16(1768);
emit_16(1702);
emit_16(1768);
emit_16(1701);
emit_16(1768);
emit_16(1702);
emit_16(1769);
emit_16(1703);
emit_16(1769);
emit_16(1702);
emit_16(1769);
emit_16(1703);
emit_16(1770);
emit_16(1704);
emit_16(1770);
emit_16(1703);
emit_16(1770);
emit_16(1704);
emit_16(1771);
emit_16(1705);
emit_16(1771);
emit_16(1704);
emit_16(1771);
emit_16(1705);
emit_16(1772);
emit_16(1706);
emit_16(1772);
emit_16(1705);
emit_16(1772);
emit_16(1706);
emit_16(1773);
emit_16(1707);
emit_16(1773);
emit_16(1706);
emit_16(1773);
emit_16(1707);
emit_16(1774);
emit_16(1708);
emit_16(1774);
emit_16(1707);
emit_16(1774);
emit_16(1708);
emit_16(1775);
emit_16(1709);
emit_16(1775);
emit_16(1708);
emit_16(1775);
emit_16(1709);
emit_16(1776);
emit_16(1710);
emit_16(1776);
emit_16(1709);
emit_16(1776);
emit_16(1710);
emit_16(1777);
emit_16(1711);
emit_16(1777);
emit_16(1710);
emit_16(1777);
emit_16(1711);
emit_16(1778);
emit_16(1712);
emit_16(1778);
emit_16(1711);
emit_16(1778);
emit_16(1712);
emit_16(1779);
emit_16(1713);
emit_16(1779);
emit_16(1712);
emit_16(1779);
emit_16(1713);
emit_16(1780);
emit_16(1714);
emit_16(1780);
emit_16(1713);
emit_16(1780);
emit_16(1714);
emit_16(1781);
emit_16(1715);
emit_16(1781);
emit_16(1714);
emit_16(1782);
emit_16(1716);
emit_16(1783);
emit_16(1717);
emit_16(1783);
emit_16(1716);
emit_16(1783);
emit_16(1717);
emit_16(1784);
emit_16(1718);
emit_16(1784);
emit_16(1717);
emit_16(1784);
emit_16(1718);
emit_16(1785);
emit_16(1719);
emit_16(1785);
emit_16(1718);
emit_16(1785);
emit_16(1719);
emit_16(1786);
emit_16(1720);
emit_16(1786);
emit_16(1719);
emit_16(1786);
emit_16(1720);
emit_16(1787);
emit_16(1721);
emit_16(1787);
emit_16(1720);
emit_16(1787);
emit_16(1721);
emit_16(1788);
emit_16(1722);
emit_16(1788);
emit_16(1721);
emit_16(1788);
emit_16(1722);
emit_16(1789);
emit_16(1723);
emit_16(1789);
emit_16(1722);
emit_16(1789);
emit_16(1723);
emit_16(1790);
emit_16(1724);
emit_16(1790);
emit_16(1723);
emit_16(1790);
emit_16(1724);
emit_16(1791);
emit_16(1725);
emit_16(1791);
emit_16(1724);
emit_16(1791);
emit_16(1725);
emit_16(1792);
emit_16(1726);
emit_16(1792);
emit_16(1725);
emit_16(1792);
emit_16(1726);
emit_16(1793);
emit_16(1727);
emit_16(1793);
emit_16(1726);
emit_16(1793);
emit_16(1727);
emit_16(1794);
emit_16(1728);
emit_16(1794);
emit_16(1727);
emit_16(1794);
emit_16(1728);
emit_16(1795);
emit_16(1729);
emit_16(1795);
emit_16(1728);
emit_16(1795);
emit_16(1729);
emit_16(1796);
emit_16(1730);
emit_16(1796);
emit_16(1729);
emit_16(1796);
emit_16(1730);
emit_16(1797);
emit_16(1731);
emit_16(1797);
emit_16(1730);
emit_16(1797);
emit_16(1731);
emit_16(1798);
emit_16(1732);
emit_16(1798);
emit_16(1731);
emit_16(1798);
emit_16(1732);
emit_16(1799);
emit_16(1733);
emit_16(1799);
emit_16(1732);
emit_16(1799);
emit_16(1733);
emit_16(1800);
emit_16(1734);
emit_16(1800);
emit_16(1733);
emit_16(1800);
emit_16(1734);
emit_16(1801);
emit_16(1735);
emit_16(1801);
emit_16(1734);
emit_16(1801);
emit_16(1735);
emit_16(1802);
emit_16(1736);
emit_16(1802);
emit_16(1735);
emit_16(1802);
emit_16(1736);
emit_16(1803);
emit_16(1737);
emit_16(1803);
emit_16(1736);
emit_16(1803);
emit_16(1737);
emit_16(1804);
emit_16(1738);
emit_16(1804);
emit_16(1737);
emit_16(1804);
emit_16(1738);
emit_16(1805);
emit_16(1739);
emit_16(1805);
emit_16(1738);
emit_16(1805);
emit_16(1739);
emit_16(1806);
emit_16(1740);
emit_16(1806);
emit_16(1739);
emit_16(1806);
emit_16(1740);
emit_16(1807);
emit_16(1741);
emit_16(1807);
emit_16(1740);
emit_16(1807);
emit_16(1741);
emit_16(1808);
emit_16(1742);
emit_16(1808);
emit_16(1741);
emit_16(1808);
emit_16(1742);
emit_16(1809);
emit_16(1743);
emit_16(1809);
emit_16(1742);
emit_16(1809);
emit_16(1743);
emit_16(1810);
emit_16(1744);
emit_16(1810);
emit_16(1743);
emit_16(1810);
emit_16(1744);
emit_16(1811);
emit_16(1745);
emit_16(1811);
emit_16(1744);
emit_16(1811);
emit_16(1745);
emit_16(1812);
emit_16(1746);
emit_16(1812);
emit_16(1745);
emit_16(1812);
emit_16(1746);
emit_16(1813);
emit_16(1747);
emit_16(1813);
emit_16(1746);
emit_16(1813);
emit_16(1747);
emit_16(1814);
emit_16(1748);
emit_16(1814);
emit_16(1747);
emit_16(1814);
emit_16(1748);
emit_16(1815);
emit_16(1749);
emit_16(1815);
emit_16(1748);
emit_16(1815);
emit_16(1749);
emit_16(1816);
emit_16(1750);
emit_16(1816);
emit_16(1749);
emit_16(1816);
emit_16(1750);
emit_16(1817);
emit_16(1751);
emit_16(1817);
emit_16(1750);
emit_16(1817);
emit_16(1751);
emit_16(1818);
emit_16(1752);
emit_16(1818);
emit_16(1751);
emit_16(1818);
emit_16(1752);
emit_16(1819);
emit_16(1753);
emit_16(1819);
emit_16(1752);
emit_16(1819);
emit_16(1753);
emit_16(1820);
emit_16(1754);
emit_16(1820);
emit_16(1753);
emit_16(1820);
emit_16(1754);
emit_16(1821);
emit_16(1755);
emit_16(1821);
emit_16(1754);
emit_16(1821);
emit_16(1755);
emit_16(1822);
emit_16(1756);
emit_16(1822);
emit_16(1755);
emit_16(1822);
emit_16(1756);
emit_16(1823);
emit_16(1757);
emit_16(1823);
emit_16(1756);
emit_16(1823);
emit_16(1757);
emit_16(1824);
emit_16(1758);
emit_16(1824);
emit_16(1757);
emit_16(1824);
emit_16(1758);
emit_16(1825);
emit_16(1759);
emit_16(1825);
emit_16(1758);
emit_16(1825);
emit_16(1759);
emit_16(1826);
emit_16(1760);
emit_16(1826);
emit_16(1759);
emit_16(1826);
emit_16(1760);
emit_16(1827);
emit_16(1761);
emit_16(1827);
emit_16(1760);
emit_16(1827);
emit_16(1761);
emit_16(1828);
emit_16(1762);
emit_16(1828);
emit_16(1761);
emit_16(1828);
emit_16(1762);
emit_16(1829);
emit_16(1763);
emit_16(1829);
emit_16(1762);
emit_16(1829);
emit_16(1763);
emit_16(1830);
emit_16(1764);
emit_16(1830);
emit_16(1763);
emit_16(1830);
emit_16(1764);
emit_16(1831);
emit_16(1765);
emit_16(1831);
emit_16(1764);
emit_16(1831);
emit_16(1765);
emit_16(1832);
emit_16(1766);
emit_16(1832);
emit_16(1765);
emit_16(1832);
emit_16(1766);
emit_16(1833);
emit_16(1767);
emit_16(1833);
emit_16(1766);
emit_16(1833);
emit_16(1767);
emit_16(1834);
emit_16(1768);
emit_16(1834);
emit_16(1767);
emit_16(1834);
emit_16(1768);
emit_16(1835);
emit_16(1769);
emit_16(1835);
emit_16(1768);
emit_16(1835);
emit_16(1769);
emit_16(1836);
emit_16(1770);
emit_16(1836);
emit_16(1769);
emit_16(1836);
emit_16(1770);
emit_16(1837);
emit_16(1771);
emit_16(1837);
emit_16(1770);
emit_16(1837);
emit_16(1771);
emit_16(1838);
emit_16(1772);
emit_16(1838);
emit_16(1771);
emit_16(1838);
emit_16(1772);
emit_16(1839);
emit_16(1773);
emit_16(1839);
emit_16(1772);
emit_16(1839);
emit_16(1773);
emit_16(1840);
emit_16(1774);
emit_16(1840);
emit_16(1773);
emit_16(1840);
emit_16(1774);
emit_16(1841);
emit_16(1775);
emit_16(1841);
emit_16(1774);
emit_16(1841);
emit_16(1775);
emit_16(1842);
emit_16(1776);
emit_16(1842);
emit_16(1775);
emit_16(1842);
emit_16(1776);
emit_16(1843);
emit_16(1777);
emit_16(1843);
emit_16(1776);
emit_16(1843);
emit_16(1777);
emit_16(1844);
emit_16(1778);
emit_16(1844);
emit_16(1777);
emit_16(1844);
emit_16(1778);
emit_16(1845);
emit_16(1779);
emit_16(1845);
emit_16(1778);
emit_16(1845);
emit_16(1779);
emit_16(1846);
emit_16(1780);
emit_16(1846);
emit_16(1779);
emit_16(1846);
emit_16(1780);
emit_16(1847);
emit_16(1781);
emit_16(1847);
emit_16(1780);
emit_16(1848);
emit_16(1782);
emit_16(1849);
emit_16(1783);
emit_16(1849);
emit_16(1782);
emit_16(1849);
emit_16(1783);
emit_16(1850);
emit_16(1784);
emit_16(1850);
emit_16(1783);
emit_16(1850);
emit_16(1784);
emit_16(1851);
emit_16(1785);
emit_16(1851);
emit_16(1784);
emit_16(1851);
emit_16(1785);
emit_16(1852);
emit_16(1786);
emit_16(1852);
emit_16(1785);
emit_16(1852);
emit_16(1786);
emit_16(1853);
emit_16(1787);
emit_16(1853);
emit_16(1786);
emit_16(1853);
emit_16(1787);
emit_16(1854);
emit_16(1788);
emit_16(1854);
emit_16(1787);
emit_16(1854);
emit_16(1788);
emit_16(1855);
emit_16(1789);
emit_16(1855);
emit_16(1788);
emit_16(1855);
emit_16(1789);
emit_16(1856);
emit_16(1790);
emit_16(1856);
emit_16(1789);
emit_16(1856);
emit_16(1790);
emit_16(1857);
emit_16(1791);
emit_16(1857);
emit_16(1790);
emit_16(1857);
emit_16(1791);
emit_16(1858);
emit_16(1792);
emit_16(1858);
emit_16(1791);
emit_16(1858);
emit_16(1792);
emit_16(1859);
emit_16(1793);
emit_16(1859);
emit_16(1792);
emit_16(1859);
emit_16(1793);
emit_16(1860);
emit_16(1794);
emit_16(1860);
emit_16(1793);
emit_16(1860);
emit_16(1794);
emit_16(1861);
emit_16(1795);
emit_16(1861);
emit_16(1794);
emit_16(1861);
emit_16(1795);
emit_16(1862);
emit_16(1796);
emit_16(1862);
emit_16(1795);
emit_16(1862);
emit_16(1796);
emit_16(1863);
emit_16(1797);
emit_16(1863);
emit_16(1796);
emit_16(1863);
emit_16(1797);
emit_16(1864);
emit_16(1798);
emit_16(1864);
emit_16(1797);
emit_16(1864);
emit_16(1798);
emit_16(1865);
emit_16(1799);
emit_16(1865);
emit_16(1798);
emit_16(1865);
emit_16(1799);
emit_16(1866);
emit_16(1800);
emit_16(1866);
emit_16(1799);
emit_16(1866);
emit_16(1800);
emit_16(1867);
emit_16(1801);
emit_16(1867);
emit_16(1800);
emit_16(1867);
emit_16(1801);
emit_16(1868);
emit_16(1802);
emit_16(1868);
emit_16(1801);
emit_16(1868);
emit_16(1802);
emit_16(1869);
emit_16(1803);
emit_16(1869);
emit_16(1802);
emit_16(1869);
emit_16(1803);
emit_16(1870);
emit_16(1804);
emit_16(1870);
emit_16(1803);
emit_16(1870);
emit_16(1804);
emit_16(1871);
emit_16(1805);
emit_16(1871);
emit_16(1804);
emit_16(1871);
emit_16(1805);
emit_16(1872);
emit_16(1806);
emit_16(1872);
emit_16(1805);
emit_16(1872);
emit_16(1806);
emit_16(1873);
emit_16(1807);
emit_16(1873);
emit_16(1806);
emit_16(1873);
emit_16(1807);
emit_16(1874);
emit_16(1808);
emit_16(1874);
emit_16(1807);
emit_16(1874);
emit_16(1808);
emit_16(1875);
emit_16(1809);
emit_16(1875);
emit_16(1808);
emit_16(1875);
emit_16(1809);
emit_16(1876);
emit_16(1810);
emit_16(1876);
emit_16(1809);
emit_16(1876);
emit_16(1810);
emit_16(1877);
emit_16(1811);
emit_16(1877);
emit_16(1810);
emit_16(1877);
emit_16(1811);
emit_16(1878);
emit_16(1812);
emit_16(1878);
emit_16(1811);
emit_16(1878);
emit_16(1812);
emit_16(1879);
emit_16(1813);
emit_16(1879);
emit_16(1812);
emit_16(1879);
emit_16(1813);
emit_16(1880);
emit_16(1814);
emit_16(1880);
emit_16(1813);
emit_16(1880);
emit_16(1814);
emit_16(1881);
emit_16(1815);
emit_16(1881);
emit_16(1814);
emit_16(1881);
emit_16(1815);
emit_16(1882);
emit_16(1816);
emit_16(1882);
emit_16(1815);
emit_16(1882);
emit_16(1816);
emit_16(1883);
emit_16(1817);
emit_16(1883);
emit_16(1816);
emit_16(1883);
emit_16(1817);
emit_16(1884);
emit_16(1818);
emit_16(1884);
emit_16(1817);
emit_16(1884);
emit_16(1818);
emit_16(1885);
emit_16(1819);
emit_16(1885);
emit_16(1818);
emit_16(1885);
emit_16(1819);
emit_16(1886);
emit_16(1820);
emit_16(1886);
emit_16(1819);
emit_16(1886);
emit_16(1820);
emit_16(1887);
emit_16(1821);
emit_16(1887);
emit_16(1820);
emit_16(1887);
emit_16(1821);
emit_16(1888);
emit_16(1822);
emit_16(1888);
emit_16(1821);
emit_16(1888);
emit_16(1822);
emit_16(1889);
emit_16(1823);
emit_16(1889);
emit_16(1822);
emit_16(1889);
emit_16(1823);
emit_16(1890);
emit_16(1824);
emit_16(1890);
emit_16(1823);
emit_16(1890);
emit_16(1824);
emit_16(1891);
emit_16(1825);
emit_16(1891);
emit_16(1824);
emit_16(1891);
emit_16(1825);
emit_16(1892);
emit_16(1826);
emit_16(1892);
emit_16(1825);
emit_16(1892);
emit_16(1826);
emit_16(1893);
emit_16(1827);
emit_16(1893);
emit_16(1826);
emit_16(1893);
emit_16(1827);
emit_16(1894);
emit_16(1828);
emit_16(1894);
emit_16(1827);
emit_16(1894);
emit_16(1828);
emit_16(1895);
emit_16(1829);
emit_16(1895);
emit_16(1828);
emit_16(1895);
emit_16(1829);
emit_16(1896);
emit_16(1830);
emit_16(1896);
emit_16(1829);
emit_16(1896);
emit_16(1830);
emit_16(1897);
emit_16(1831);
emit_16(1897);
emit_16(1830);
emit_16(1897);
emit_16(1831);
emit_16(1898);
emit_16(1832);
emit_16(1898);
emit_16(1831);
emit_16(1898);
emit_16(1832);
emit_16(1899);
emit_16(1833);
emit_16(1899);
emit_16(1832);
emit_16(1899);
emit_16(1833);
emit_16(1900);
emit_16(1834);
emit_16(1900);
emit_16(1833);
emit_16(1900);
emit_16(1834);
emit_16(1901);
emit_16(1835);
emit_16(1901);
emit_16(1834);
emit_16(1901);
emit_16(1835);
emit_16(1902);
emit_16(1836);
emit_16(1902);
emit_16(1835);
emit_16(1902);
emit_16(1836);
emit_16(1903);
emit_16(1837);
emit_16(1903);
emit_16(1836);
emit_16(1903);
emit_16(1837);
emit_16(1904);
emit_16(1838);
emit_16(1904);
emit_16(1837);
emit_16(1904);
emit_16(1838);
emit_16(1905);
emit_16(1839);
emit_16(1905);
emit_16(1838);
emit_16(1905);
emit_16(1839);
emit_16(1906);
emit_16(1840);
emit_16(1906);
emit_16(1839);
emit_16(1906);
emit_16(1840);
emit_16(1907);
emit_16(1841);
emit_16(1907);
emit_16(1840);
emit_16(1907);
emit_16(1841);
emit_16(1908);
emit_16(1842);
emit_16(1908);
emit_16(1841);
emit_16(1908);
emit_16(1842);
emit_16(1909);
emit_16(1843);
emit_16(1909);
emit_16(1842);
emit_16(1909);
emit_16(1843);
emit_16(1910);
emit_16(1844);
emit_16(1910);
emit_16(1843);
emit_16(1910);
emit_16(1844);
emit_16(1911);
emit_16(1845);
emit_16(1911);
emit_16(1844);
emit_16(1911);
emit_16(1845);
emit_16(1912);
emit_16(1846);
emit_16(1912);
emit_16(1845);
emit_16(1912);
emit_16(1846);
emit_16(1913);
emit_16(1847);
emit_16(1913);
emit_16(1846);
emit_16(1914);
emit_16(1848);
emit_16(1915);
emit_16(1849);
emit_16(1915);
emit_16(1848);
emit_16(1915);
emit_16(1849);
emit_16(1916);
emit_16(1850);
emit_16(1916);
emit_16(1849);
emit_16(1916);
emit_16(1850);
emit_16(1917);
emit_16(1851);
emit_16(1917);
emit_16(1850);
emit_16(1917);
emit_16(1851);
emit_16(1918);
emit_16(1852);
emit_16(1918);
emit_16(1851);
emit_16(1918);
emit_16(1852);
emit_16(1919);
emit_16(1853);
emit_16(1919);
emit_16(1852);
emit_16(1919);
emit_16(1853);
emit_16(1920);
emit_16(1854);
emit_16(1920);
emit_16(1853);
emit_16(1920);
emit_16(1854);
emit_16(1921);
emit_16(1855);
emit_16(1921);
emit_16(1854);
emit_16(1921);
emit_16(1855);
emit_16(1922);
emit_16(1856);
emit_16(1922);
emit_16(1855);
emit_16(1922);
emit_16(1856);
emit_16(1923);
emit_16(1857);
emit_16(1923);
emit_16(1856);
emit_16(1923);
emit_16(1857);
emit_16(1924);
emit_16(1858);
emit_16(1924);
emit_16(1857);
emit_16(1924);
emit_16(1858);
emit_16(1925);
emit_16(1859);
emit_16(1925);
emit_16(1858);
emit_16(1925);
emit_16(1859);
emit_16(1926);
emit_16(1860);
emit_16(1926);
emit_16(1859);
emit_16(1926);
emit_16(1860);
emit_16(1927);
emit_16(1861);
emit_16(1927);
emit_16(1860);
emit_16(1927);
emit_16(1861);
emit_16(1928);
emit_16(1862);
emit_16(1928);
emit_16(1861);
emit_16(1928);
emit_16(1862);
emit_16(1929);
emit_16(1863);
emit_16(1929);
emit_16(1862);
emit_16(1929);
emit_16(1863);
emit_16(1930);
emit_16(1864);
emit_16(1930);
emit_16(1863);
emit_16(1930);
emit_16(1864);
emit_16(1931);
emit_16(1865);
emit_16(1931);
emit_16(1864);
emit_16(1931);
emit_16(1865);
emit_16(1932);
emit_16(1866);
emit_16(1932);
emit_16(1865);
emit_16(1932);
emit_16(1866);
emit_16(1933);
emit_16(1867);
emit_16(1933);
emit_16(1866);
emit_16(1933);
emit_16(1867);
emit_16(1934);
emit_16(1868);
emit_16(1934);
emit_16(1867);
emit_16(1934);
emit_16(1868);
emit_16(1935);
emit_16(1869);
emit_16(1935);
emit_16(1868);
emit_16(1935);
emit_16(1869);
emit_16(1936);
emit_16(1870);
emit_16(1936);
emit_16(1869);
emit_16(1936);
emit_16(1870);
emit_16(1937);
emit_16(1871);
emit_16(1937);
emit_16(1870);
emit_16(1937);
emit_16(1871);
emit_16(1938);
emit_16(1872);
emit_16(1938);
emit_16(1871);
emit_16(1938);
emit_16(1872);
emit_16(1939);
emit_16(1873);
emit_16(1939);
emit_16(1872);
emit_16(1939);
emit_16(1873);
emit_16(1940);
emit_16(1874);
emit_16(1940);
emit_16(1873);
emit_16(1940);
emit_16(1874);
emit_16(1941);
emit_16(1875);
emit_16(1941);
emit_16(1874);
emit_16(1941);
emit_16(1875);
emit_16(1942);
emit_16(1876);
emit_16(1942);
emit_16(1875);
emit_16(1942);
emit_16(1876);
emit_16(1943);
emit_16(1877);
emit_16(1943);
emit_16(1876);
emit_16(1943);
emit_16(1877);
emit_16(1944);
emit_16(1878);
emit_16(1944);
emit_16(1877);
emit_16(1944);
emit_16(1878);
emit_16(1945);
emit_16(1879);
emit_16(1945);
emit_16(1878);
emit_16(1945);
emit_16(1879);
emit_16(1946);
emit_16(1880);
emit_16(1946);
emit_16(1879);
emit_16(1946);
emit_16(1880);
emit_16(1947);
emit_16(1881);
emit_16(1947);
emit_16(1880);
emit_16(1947);
emit_16(1881);
emit_16(1948);
emit_16(1882);
emit_16(1948);
emit_16(1881);
emit_16(1948);
emit_16(1882);
emit_16(1949);
emit_16(1883);
emit_16(1949);
emit_16(1882);
emit_16(1949);
emit_16(1883);
emit_16(1950);
emit_16(1884);
emit_16(1950);
emit_16(1883);
emit_16(1950);
emit_16(1884);
emit_16(1951);
emit_16(1885);
emit_16(1951);
emit_16(1884);
emit_16(1951);
emit_16(1885);
emit_16(1952);
emit_16(1886);
emit_16(1952);
emit_16(1885);
emit_16(1952);
emit_16(1886);
emit_16(1953);
emit_16(1887);
emit_16(1953);
emit_16(1886);
emit_16(1953);
emit_16(1887);
emit_16(1954);
emit_16(1888);
emit_16(1954);
emit_16(1887);
emit_16(1954);
emit_16(1888);
emit_16(1955);
emit_16(1889);
emit_16(1955);
emit_16(1888);
emit_16(1955);
emit_16(1889);
emit_16(1956);
emit_16(1890);
emit_16(1956);
emit_16(1889);
emit_16(1956);
emit_16(1890);
emit_16(1957);
emit_16(1891);
emit_16(1957);
emit_16(1890);
emit_16(1957);
emit_16(1891);
emit_16(1958);
emit_16(1892);
emit_16(1958);
emit_16(1891);
emit_16(1958);
emit_16(1892);
emit_16(1959);
emit_16(1893);
emit_16(1959);
emit_16(1892);
emit_16(1959);
emit_16(1893);
emit_16(1960);
emit_16(1894);
emit_16(1960);
emit_16(1893);
emit_16(1960);
emit_16(1894);
emit_16(1961);
emit_16(1895);
emit_16(1961);
emit_16(1894);
emit_16(1961);
emit_16(1895);
emit_16(1962);
emit_16(1896);
emit_16(1962);
emit_16(1895);
emit_16(1962);
emit_16(1896);
emit_16(1963);
emit_16(1897);
emit_16(1963);
emit_16(1896);
emit_16(1963);
emit_16(1897);
emit_16(1964);
emit_16(1898);
emit_16(1964);
emit_16(1897);
emit_16(1964);
emit_16(1898);
emit_16(1965);
emit_16(1899);
emit_16(1965);
emit_16(1898);
emit_16(1965);
emit_16(1899);
emit_16(1966);
emit_16(1900);
emit_16(1966);
emit_16(1899);
emit_16(1966);
emit_16(1900);
emit_16(1967);
emit_16(1901);
emit_16(1967);
emit_16(1900);
emit_16(1967);
emit_16(1901);
emit_16(1968);
emit_16(1902);
emit_16(1968);
emit_16(1901);
emit_16(1968);
emit_16(1902);
emit_16(1969);
emit_16(1903);
emit_16(1969);
emit_16(1902);
emit_16(1969);
emit_16(1903);
emit_16(1970);
emit_16(1904);
emit_16(1970);
emit_16(1903);
emit_16(1970);
emit_16(1904);
emit_16(1971);
emit_16(1905);
emit_16(1971);
emit_16(1904);
emit_16(1971);
emit_16(1905);
emit_16(1972);
emit_16(1906);
emit_16(1972);
emit_16(1905);
emit_16(1972);
emit_16(1906);
emit_16(1973);
emit_16(1907);
emit_16(1973);
emit_16(1906);
emit_16(1973);
emit_16(1907);
emit_16(1974);
emit_16(1908);
emit_16(1974);
emit_16(1907);
emit_16(1974);
emit_16(1908);
emit_16(1975);
emit_16(1909);
emit_16(1975);
emit_16(1908);
emit_16(1975);
emit_16(1909);
emit_16(1976);
emit_16(1910);
emit_16(1976);
emit_16(1909);
emit_16(1976);
emit_16(1910);
emit_16(1977);
emit_16(1911);
emit_16(1977);
emit_16(1910);
emit_16(1977);
emit_16(1911);
emit_16(1978);
emit_16(1912);
emit_16(1978);
emit_16(1911);
emit_16(1978);
emit_16(1912);
emit_16(1979);
emit_16(1913);
emit_16(1979);
emit_16(1912);
emit_16(1980);
emit_16(1914);
emit_16(1981);
emit_16(1915);
emit_16(1981);
emit_16(1914);
emit_16(1981);
emit_16(1915);
emit_16(1982);
emit_16(1916);
emit_16(1982);
emit_16(1915);
emit_16(1982);
emit_16(1916);
emit_16(1983);
emit_16(1917);
emit_16(1983);
emit_16(1916);
emit_16(1983);
emit_16(1917);
emit_16(1984);
emit_16(1918);
emit_16(1984);
emit_16(1917);
emit_16(1984);
emit_16(1918);
emit_16(1985);
emit_16(1919);
emit_16(1985);
emit_16(1918);
emit_16(1985);
emit_16(1919);
emit_16(1986);
emit_16(1920);
emit_16(1986);
emit_16(1919);
emit_16(1986);
emit_16(1920);
emit_16(1987);
emit_16(1921);
emit_16(1987);
emit_16(1920);
emit_16(1987);
emit_16(1921);
emit_16(1988);
emit_16(1922);
emit_16(1988);
emit_16(1921);
emit_16(1988);
emit_16(1922);
emit_16(1989);
emit_16(1923);
emit_16(1989);
emit_16(1922);
emit_16(1989);
emit_16(1923);
emit_16(1990);
emit_16(1924);
emit_16(1990);
emit_16(1923);
emit_16(1990);
emit_16(1924);
emit_16(1991);
emit_16(1925);
emit_16(1991);
emit_16(1924);
emit_16(1991);
emit_16(1925);
emit_16(1992);
emit_16(1926);
emit_16(1992);
emit_16(1925);
emit_16(1992);
emit_16(1926);
emit_16(1993);
emit_16(1927);
emit_16(1993);
emit_16(1926);
emit_16(1993);
emit_16(1927);
emit_16(1994);
emit_16(1928);
emit_16(1994);
emit_16(1927);
emit_16(1994);
emit_16(1928);
emit_16(1995);
emit_16(1929);
emit_16(1995);
emit_16(1928);
emit_16(1995);
emit_16(1929);
emit_16(1996);
emit_16(1930);
emit_16(1996);
emit_16(1929);
emit_16(1996);
emit_16(1930);
emit_16(1997);
emit_16(1931);
emit_16(1997);
emit_16(1930);
emit_16(1997);
emit_16(1931);
emit_16(1998);
emit_16(1932);
emit_16(1998);
emit_16(1931);
emit_16(1998);
emit_16(1932);
emit_16(1999);
emit_16(1933);
emit_16(1999);
emit_16(1932);
emit_16(1999);
emit_16(1933);
emit_16(2000);
emit_16(1934);
emit_16(2000);
emit_16(1933);
emit_16(2000);
emit_16(1934);
emit_16(2001);
emit_16(1935);
emit_16(2001);
emit_16(1934);
emit_16(2001);
emit_16(1935);
emit_16(2002);
emit_16(1936);
emit_16(2002);
emit_16(1935);
emit_16(2002);
emit_16(1936);
emit_16(2003);
emit_16(1937);
emit_16(2003);
emit_16(1936);
emit_16(2003);
emit_16(1937);
emit_16(2004);
emit_16(1938);
emit_16(2004);
emit_16(1937);
emit_16(2004);
emit_16(1938);
emit_16(2005);
emit_16(1939);
emit_16(2005);
emit_16(1938);
emit_16(2005);
emit_16(1939);
emit_16(2006);
emit_16(1940);
emit_16(2006);
emit_16(1939);
emit_16(2006);
emit_16(1940);
emit_16(2007);
emit_16(1941);
emit_16(2007);
emit_16(1940);
emit_16(2007);
emit_16(1941);
emit_16(2008);
emit_16(1942);
emit_16(2008);
emit_16(1941);
emit_16(2008);
emit_16(1942);
emit_16(2009);
emit_16(1943);
emit_16(2009);
emit_16(1942);
emit_16(2009);
emit_16(1943);
emit_16(2010);
emit_16(1944);
emit_16(2010);
emit_16(1943);
emit_16(2010);
emit_16(1944);
emit_16(2011);
emit_16(1945);
emit_16(2011);
emit_16(1944);
emit_16(2011);
emit_16(1945);
emit_16(2012);
emit_16(1946);
emit_16(2012);
emit_16(1945);
emit_16(2012);
emit_16(1946);
emit_16(2013);
emit_16(1947);
emit_16(2013);
emit_16(1946);
emit_16(2013);
emit_16(1947);
emit_16(2014);
emit_16(1948);
emit_16(2014);
emit_16(1947);
emit_16(2014);
emit_16(1948);
emit_16(2015);
emit_16(1949);
emit_16(2015);
emit_16(1948);
emit_16(2015);
emit_16(1949);
emit_16(2016);
emit_16(1950);
emit_16(2016);
emit_16(1949);
emit_16(2016);
emit_16(1950);
emit_16(2017);
emit_16(1951);
emit_16(2017);
emit_16(1950);
emit_16(2017);
emit_16(1951);
emit_16(2018);
emit_16(1952);
emit_16(2018);
emit_16(1951);
emit_16(2018);
emit_16(1952);
emit_16(2019);
emit_16(1953);
emit_16(2019);
emit_16(1952);
emit_16(2019);
emit_16(1953);
emit_16(2020);
emit_16(1954);
emit_16(2020);
emit_16(1953);
emit_16(2020);
emit_16(1954);
emit_16(2021);
emit_16(1955);
emit_16(2021);
emit_16(1954);
emit_16(2021);
emit_16(1955);
emit_16(2022);
emit_16(1956);
emit_16(2022);
emit_16(1955);
emit_16(2022);
emit_16(1956);
emit_16(2023);
emit_16(1957);
emit_16(2023);
emit_16(1956);
emit_16(2023);
emit_16(1957);
emit_16(2024);
emit_16(1958);
emit_16(2024);
emit_16(1957);
emit_16(2024);
emit_16(1958);
emit_16(2025);
emit_16(1959);
emit_16(2025);
emit_16(1958);
emit_16(2025);
emit_16(1959);
emit_16(2026);
emit_16(1960);
emit_16(2026);
emit_16(1959);
emit_16(2026);
emit_16(1960);
emit_16(2027);
emit_16(1961);
emit_16(2027);
emit_16(1960);
emit_16(2027);
emit_16(1961);
emit_16(2028);
emit_16(1962);
emit_16(2028);
emit_16(1961);
emit_16(2028);
emit_16(1962);
emit_16(2029);
emit_16(1963);
emit_16(2029);
emit_16(1962);
emit_16(2029);
emit_16(1963);
emit_16(2030);
emit_16(1964);
emit_16(2030);
emit_16(1963);
emit_16(2030);
emit_16(1964);
emit_16(2031);
emit_16(1965);
emit_16(2031);
emit_16(1964);
emit_16(2031);
emit_16(1965);
emit_16(2032);
emit_16(1966);
emit_16(2032);
emit_16(1965);
emit_16(2032);
emit_16(1966);
emit_16(2033);
emit_16(1967);
emit_16(2033);
emit_16(1966);
emit_16(2033);
emit_16(1967);
emit_16(2034);
emit_16(1968);
emit_16(2034);
emit_16(1967);
emit_16(2034);
emit_16(1968);
emit_16(2035);
emit_16(1969);
emit_16(2035);
emit_16(1968);
emit_16(2035);
emit_16(1969);
emit_16(2036);
emit_16(1970);
emit_16(2036);
emit_16(1969);
emit_16(2036);
emit_16(1970);
emit_16(2037);
emit_16(1971);
emit_16(2037);
emit_16(1970);
emit_16(2037);
emit_16(1971);
emit_16(2038);
emit_16(1972);
emit_16(2038);
emit_16(1971);
emit_16(2038);
emit_16(1972);
emit_16(2039);
emit_16(1973);
emit_16(2039);
emit_16(1972);
emit_16(2039);
emit_16(1973);
emit_16(2040);
emit_16(1974);
emit_16(2040);
emit_16(1973);
emit_16(2040);
emit_16(1974);
emit_16(2041);
emit_16(1975);
emit_16(2041);
emit_16(1974);
emit_16(2041);
emit_16(1975);
emit_16(2042);
emit_16(1976);
emit_16(2042);
emit_16(1975);
emit_16(2042);
emit_16(1976);
emit_16(2043);
emit_16(1977);
emit_16(2043);
emit_16(1976);
emit_16(2043);
emit_16(1977);
emit_16(2044);
emit_16(1978);
emit_16(2044);
emit_16(1977);
emit_16(2044);
emit_16(1978);
emit_16(2045);
emit_16(1979);
emit_16(2045);
emit_16(1978);
emit_16(2046);
emit_16(1980);
emit_16(2047);
emit_16(1981);
emit_16(2047);
emit_16(1980);
emit_16(2047);
emit_16(1981);
emit_16(2048);
emit_16(1982);
emit_16(2048);
emit_16(1981);
emit_16(2048);
emit_16(1982);
emit_16(2049);
emit_16(1983);
emit_16(2049);
emit_16(1982);
emit_16(2049);
emit_16(1983);
emit_16(2050);
emit_16(1984);
emit_16(2050);
emit_16(1983);
emit_16(2050);
emit_16(1984);
emit_16(2051);
emit_16(1985);
emit_16(2051);
emit_16(1984);
emit_16(2051);
emit_16(1985);
emit_16(2052);
emit_16(1986);
emit_16(2052);
emit_16(1985);
emit_16(2052);
emit_16(1986);
emit_16(2053);
emit_16(1987);
emit_16(2053);
emit_16(1986);
emit_16(2053);
emit_16(1987);
emit_16(2054);
emit_16(1988);
emit_16(2054);
emit_16(1987);
emit_16(2054);
emit_16(1988);
emit_16(2055);
emit_16(1989);
emit_16(2055);
emit_16(1988);
emit_16(2055);
emit_16(1989);
emit_16(2056);
emit_16(1990);
emit_16(2056);
emit_16(1989);
emit_16(2056);
emit_16(1990);
emit_16(2057);
emit_16(1991);
emit_16(2057);
emit_16(1990);
emit_16(2057);
emit_16(1991);
emit_16(2058);
emit_16(1992);
emit_16(2058);
emit_16(1991);
emit_16(2058);
emit_16(1992);
emit_16(2059);
emit_16(1993);
emit_16(2059);
emit_16(1992);
emit_16(2059);
emit_16(1993);
emit_16(2060);
emit_16(1994);
emit_16(2060);
emit_16(1993);
emit_16(2060);
emit_16(1994);
emit_16(2061);
emit_16(1995);
emit_16(2061);
emit_16(1994);
emit_16(2061);
emit_16(1995);
emit_16(2062);
emit_16(1996);
emit_16(2062);
emit_16(1995);
emit_16(2062);
emit_16(1996);
emit_16(2063);
emit_16(1997);
emit_16(2063);
emit_16(1996);
emit_16(2063);
emit_16(1997);
emit_16(2064);
emit_16(1998);
emit_16(2064);
emit_16(1997);
emit_16(2064);
emit_16(1998);
emit_16(2065);
emit_16(1999);
emit_16(2065);
emit_16(1998);
emit_16(2065);
emit_16(1999);
emit_16(2066);
emit_16(2000);
emit_16(2066);
emit_16(1999);
emit_16(2066);
emit_16(2000);
emit_16(2067);
emit_16(2001);
emit_16(2067);
emit_16(2000);
emit_16(2067);
emit_16(2001);
emit_16(2068);
emit_16(2002);
emit_16(2068);
emit_16(2001);
emit_16(2068);
emit_16(2002);
emit_16(2069);
emit_16(2003);
emit_16(2069);
emit_16(2002);
emit_16(2069);
emit_16(2003);
emit_16(2070);
emit_16(2004);
emit_16(2070);
emit_16(2003);
emit_16(2070);
emit_16(2004);
emit_16(2071);
emit_16(2005);
emit_16(2071);
emit_16(2004);
emit_16(2071);
emit_16(2005);
emit_16(2072);
emit_16(2006);
emit_16(2072);
emit_16(2005);
emit_16(2072);
emit_16(2006);
emit_16(2073);
emit_16(2007);
emit_16(2073);
emit_16(2006);
emit_16(2073);
emit_16(2007);
emit_16(2074);
emit_16(2008);
emit_16(2074);
emit_16(2007);
emit_16(2074);
emit_16(2008);
emit_16(2075);
emit_16(2009);
emit_16(2075);
emit_16(2008);
emit_16(2075);
emit_16(2009);
emit_16(2076);
emit_16(2010);
emit_16(2076);
emit_16(2009);
emit_16(2076);
emit_16(2010);
emit_16(2077);
emit_16(2011);
emit_16(2077);
emit_16(2010);
emit_16(2077);
emit_16(2011);
emit_16(2078);
emit_16(2012);
emit_16(2078);
emit_16(2011);
emit_16(2078);
emit_16(2012);
emit_16(2079);
emit_16(2013);
emit_16(2079);
emit_16(2012);
emit_16(2079);
emit_16(2013);
emit_16(2080);
emit_16(2014);
emit_16(2080);
emit_16(2013);
emit_16(2080);
emit_16(2014);
emit_16(2081);
emit_16(2015);
emit_16(2081);
emit_16(2014);
emit_16(2081);
emit_16(2015);
emit_16(2082);
emit_16(2016);
emit_16(2082);
emit_16(2015);
emit_16(2082);
emit_16(2016);
emit_16(2083);
emit_16(2017);
emit_16(2083);
emit_16(2016);
emit_16(2083);
emit_16(2017);
emit_16(2084);
emit_16(2018);
emit_16(2084);
emit_16(2017);
emit_16(2084);
emit_16(2018);
emit_16(2085);
emit_16(2019);
emit_16(2085);
emit_16(2018);
emit_16(2085);
emit_16(2019);
emit_16(2086);
emit_16(2020);
emit_16(2086);
emit_16(2019);
emit_16(2086);
emit_16(2020);
emit_16(2087);
emit_16(2021);
emit_16(2087);
emit_16(2020);
emit_16(2087);
emit_16(2021);
emit_16(2088);
emit_16(2022);
emit_16(2088);
emit_16(2021);
emit_16(2088);
emit_16(2022);
emit_16(2089);
emit_16(2023);
emit_16(2089);
emit_16(2022);
emit_16(2089);
emit_16(2023);
emit_16(2090);
emit_16(2024);
emit_16(2090);
emit_16(2023);
emit_16(2090);
emit_16(2024);
emit_16(2091);
emit_16(2025);
emit_16(2091);
emit_16(2024);
emit_16(2091);
emit_16(2025);
emit_16(2092);
emit_16(2026);
emit_16(2092);
emit_16(2025);
emit_16(2092);
emit_16(2026);
emit_16(2093);
emit_16(2027);
emit_16(2093);
emit_16(2026);
emit_16(2093);
emit_16(2027);
emit_16(2094);
emit_16(2028);
emit_16(2094);
emit_16(2027);
emit_16(2094);
emit_16(2028);
emit_16(2095);
emit_16(2029);
emit_16(2095);
emit_16(2028);
emit_16(2095);
emit_16(2029);
emit_16(2096);
emit_16(2030);
emit_16(2096);
emit_16(2029);
emit_16(2096);
emit_16(2030);
emit_16(2097);
emit_16(2031);
emit_16(2097);
emit_16(2030);
emit_16(2097);
emit_16(2031);
emit_16(2098);
emit_16(2032);
emit_16(2098);
emit_16(2031);
emit_16(2098);
emit_16(2032);
emit_16(2099);
emit_16(2033);
emit_16(2099);
emit_16(2032);
emit_16(2099);
emit_16(2033);
emit_16(2100);
emit_16(2034);
emit_16(2100);
emit_16(2033);
emit_16(2100);
emit_16(2034);
emit_16(2101);
emit_16(2035);
emit_16(2101);
emit_16(2034);
emit_16(2101);
emit_16(2035);
emit_16(2102);
emit_16(2036);
emit_16(2102);
emit_16(2035);
emit_16(2102);
emit_16(2036);
emit_16(2103);
emit_16(2037);
emit_16(2103);
emit_16(2036);
emit_16(2103);
emit_16(2037);
emit_16(2104);
emit_16(2038);
emit_16(2104);
emit_16(2037);
emit_16(2104);
emit_16(2038);
emit_16(2105);
emit_16(2039);
emit_16(2105);
emit_16(2038);
emit_16(2105);
emit_16(2039);
emit_16(2106);
emit_16(2040);
emit_16(2106);
emit_16(2039);
emit_16(2106);
emit_16(2040);
emit_16(2107);
emit_16(2041);
emit_16(2107);
emit_16(2040);
emit_16(2107);
emit_16(2041);
emit_16(2108);
emit_16(2042);
emit_16(2108);
emit_16(2041);
emit_16(2108);
emit_16(2042);
emit_16(2109);
emit_16(2043);
emit_16(2109);
emit_16(2042);
emit_16(2109);
emit_16(2043);
emit_16(2110);
emit_16(2044);
emit_16(2110);
emit_16(2043);
emit_16(2110);
emit_16(2044);
emit_16(2111);
emit_16(2045);
emit_16(2111);
emit_16(2044);
emit_16(2112);
emit_16(2046);
emit_16(2113);
emit_16(2047);
emit_16(2113);
emit_16(2046);
emit_16(2113);
emit_16(2047);
emit_16(2114);
emit_16(2048);
emit_16(2114);
emit_16(2047);
emit_16(2114);
emit_16(2048);
emit_16(2115);
emit_16(2049);
emit_16(2115);
emit_16(2048);
emit_16(2115);
emit_16(2049);
emit_16(2116);
emit_16(2050);
emit_16(2116);
emit_16(2049);
emit_16(2116);
emit_16(2050);
emit_16(2117);
emit_16(2051);
emit_16(2117);
emit_16(2050);
emit_16(2117);
emit_16(2051);
emit_16(2118);
emit_16(2052);
emit_16(2118);
emit_16(2051);
emit_16(2118);
emit_16(2052);
emit_16(2119);
emit_16(2053);
emit_16(2119);
emit_16(2052);
emit_16(2119);
emit_16(2053);
emit_16(2120);
emit_16(2054);
emit_16(2120);
emit_16(2053);
emit_16(2120);
emit_16(2054);
emit_16(2121);
emit_16(2055);
emit_16(2121);
emit_16(2054);
emit_16(2121);
emit_16(2055);
emit_16(2122);
emit_16(2056);
emit_16(2122);
emit_16(2055);
emit_16(2122);
emit_16(2056);
emit_16(2123);
emit_16(2057);
emit_16(2123);
emit_16(2056);
emit_16(2123);
emit_16(2057);
emit_16(2124);
emit_16(2058);
emit_16(2124);
emit_16(2057);
emit_16(2124);
emit_16(2058);
emit_16(2125);
emit_16(2059);
emit_16(2125);
emit_16(2058);
emit_16(2125);
emit_16(2059);
emit_16(2126);
emit_16(2060);
emit_16(2126);
emit_16(2059);
emit_16(2126);
emit_16(2060);
emit_16(2127);
emit_16(2061);
emit_16(2127);
emit_16(2060);
emit_16(2127);
emit_16(2061);
emit_16(2128);
emit_16(2062);
emit_16(2128);
emit_16(2061);
emit_16(2128);
emit_16(2062);
emit_16(2129);
emit_16(2063);
emit_16(2129);
emit_16(2062);
emit_16(2129);
emit_16(2063);
emit_16(2130);
emit_16(2064);
emit_16(2130);
emit_16(2063);
emit_16(2130);
emit_16(2064);
emit_16(2131);
emit_16(2065);
emit_16(2131);
emit_16(2064);
emit_16(2131);
emit_16(2065);
emit_16(2132);
emit_16(2066);
emit_16(2132);
emit_16(2065);
emit_16(2132);
emit_16(2066);
emit_16(2133);
emit_16(2067);
emit_16(2133);
emit_16(2066);
emit_16(2133);
emit_16(2067);
emit_16(2134);
emit_16(2068);
emit_16(2134);
emit_16(2067);
emit_16(2134);
emit_16(2068);
emit_16(2135);
emit_16(2069);
emit_16(2135);
emit_16(2068);
emit_16(2135);
emit_16(2069);
emit_16(2136);
emit_16(2070);
emit_16(2136);
emit_16(2069);
emit_16(2136);
emit_16(2070);
emit_16(2137);
emit_16(2071);
emit_16(2137);
emit_16(2070);
emit_16(2137);
emit_16(2071);
emit_16(2138);
emit_16(2072);
emit_16(2138);
emit_16(2071);
emit_16(2138);
emit_16(2072);
emit_16(2139);
emit_16(2073);
emit_16(2139);
emit_16(2072);
emit_16(2139);
emit_16(2073);
emit_16(2140);
emit_16(2074);
emit_16(2140);
emit_16(2073);
emit_16(2140);
emit_16(2074);
emit_16(2141);
emit_16(2075);
emit_16(2141);
emit_16(2074);
emit_16(2141);
emit_16(2075);
emit_16(2142);
emit_16(2076);
emit_16(2142);
emit_16(2075);
emit_16(2142);
emit_16(2076);
emit_16(2143);
emit_16(2077);
emit_16(2143);
emit_16(2076);
emit_16(2143);
emit_16(2077);
emit_16(2144);
emit_16(2078);
emit_16(2144);
emit_16(2077);
emit_16(2144);
emit_16(2078);
emit_16(2145);
emit_16(2079);
emit_16(2145);
emit_16(2078);
emit_16(2145);
emit_16(2079);
emit_16(2146);
emit_16(2080);
emit_16(2146);
emit_16(2079);
emit_16(2146);
emit_16(2080);
emit_16(2147);
emit_16(2081);
emit_16(2147);
emit_16(2080);
emit_16(2147);
emit_16(2081);
emit_16(2148);
emit_16(2082);
emit_16(2148);
emit_16(2081);
emit_16(2148);
emit_16(2082);
emit_16(2149);
emit_16(2083);
emit_16(2149);
emit_16(2082);
emit_16(2149);
emit_16(2083);
emit_16(2150);
emit_16(2084);
emit_16(2150);
emit_16(2083);
emit_16(2150);
emit_16(2084);
emit_16(2151);
emit_16(2085);
emit_16(2151);
emit_16(2084);
emit_16(2151);
emit_16(2085);
emit_16(2152);
emit_16(2086);
emit_16(2152);
emit_16(2085);
emit_16(2152);
emit_16(2086);
emit_16(2153);
emit_16(2087);
emit_16(2153);
emit_16(2086);
emit_16(2153);
emit_16(2087);
emit_16(2154);
emit_16(2088);
emit_16(2154);
emit_16(2087);
emit_16(2154);
emit_16(2088);
emit_16(2155);
emit_16(2089);
emit_16(2155);
emit_16(2088);
emit_16(2155);
emit_16(2089);
emit_16(2156);
emit_16(2090);
emit_16(2156);
emit_16(2089);
emit_16(2156);
emit_16(2090);
emit_16(2157);
emit_16(2091);
emit_16(2157);
emit_16(2090);
emit_16(2157);
emit_16(2091);
emit_16(2158);
emit_16(2092);
emit_16(2158);
emit_16(2091);
emit_16(2158);
emit_16(2092);
emit_16(2159);
emit_16(2093);
emit_16(2159);
emit_16(2092);
emit_16(2159);
emit_16(2093);
emit_16(2160);
emit_16(2094);
emit_16(2160);
emit_16(2093);
emit_16(2160);
emit_16(2094);
emit_16(2161);
emit_16(2095);
emit_16(2161);
emit_16(2094);
emit_16(2161);
emit_16(2095);
emit_16(2162);
emit_16(2096);
emit_16(2162);
emit_16(2095);
emit_16(2162);
emit_16(2096);
emit_16(2163);
emit_16(2097);
emit_16(2163);
emit_16(2096);
emit_16(2163);
emit_16(2097);
emit_16(2164);
emit_16(2098);
emit_16(2164);
emit_16(2097);
emit_16(2164);
emit_16(2098);
emit_16(2165);
emit_16(2099);
emit_16(2165);
emit_16(2098);
emit_16(2165);
emit_16(2099);
emit_16(2166);
emit_16(2100);
emit_16(2166);
emit_16(2099);
emit_16(2166);
emit_16(2100);
emit_16(2167);
emit_16(2101);
emit_16(2167);
emit_16(2100);
emit_16(2167);
emit_16(2101);
emit_16(2168);
emit_16(2102);
emit_16(2168);
emit_16(2101);
emit_16(2168);
emit_16(2102);
emit_16(2169);
emit_16(2103);
emit_16(2169);
emit_16(2102);
emit_16(2169);
emit_16(2103);
emit_16(2170);
emit_16(2104);
emit_16(2170);
emit_16(2103);
emit_16(2170);
emit_16(2104);
emit_16(2171);
emit_16(2105);
emit_16(2171);
emit_16(2104);
emit_16(2171);
emit_16(2105);
emit_16(2172);
emit_16(2106);
emit_16(2172);
emit_16(2105);
emit_16(2172);
emit_16(2106);
emit_16(2173);
emit_16(2107);
emit_16(2173);
emit_16(2106);
emit_16(2173);
emit_16(2107);
emit_16(2174);
emit_16(2108);
emit_16(2174);
emit_16(2107);
emit_16(2174);
emit_16(2108);
emit_16(2175);
emit_16(2109);
emit_16(2175);
emit_16(2108);
emit_16(2175);
emit_16(2109);
emit_16(2176);
emit_16(2110);
emit_16(2176);
emit_16(2109);
emit_16(2176);
emit_16(2110);
emit_16(2177);
emit_16(2111);
emit_16(2177);
emit_16(2110);
emit_16(2178);
emit_16(2112);
emit_16(2179);
emit_16(2113);
emit_16(2179);
emit_16(2112);
emit_16(2179);
emit_16(2113);
emit_16(2180);
emit_16(2114);
emit_16(2180);
emit_16(2113);
emit_16(2180);
emit_16(2114);
emit_16(2181);
emit_16(2115);
emit_16(2181);
emit_16(2114);
emit_16(2181);
emit_16(2115);
emit_16(2182);
emit_16(2116);
emit_16(2182);
emit_16(2115);
emit_16(2182);
emit_16(2116);
emit_16(2183);
emit_16(2117);
emit_16(2183);
emit_16(2116);
emit_16(2183);
emit_16(2117);
emit_16(2184);
emit_16(2118);
emit_16(2184);
emit_16(2117);
emit_16(2184);
emit_16(2118);
emit_16(2185);
emit_16(2119);
emit_16(2185);
emit_16(2118);
emit_16(2185);
emit_16(2119);
emit_16(2186);
emit_16(2120);
emit_16(2186);
emit_16(2119);
emit_16(2186);
emit_16(2120);
emit_16(2187);
emit_16(2121);
emit_16(2187);
emit_16(2120);
emit_16(2187);
emit_16(2121);
emit_16(2188);
emit_16(2122);
emit_16(2188);
emit_16(2121);
emit_16(2188);
emit_16(2122);
emit_16(2189);
emit_16(2123);
emit_16(2189);
emit_16(2122);
emit_16(2189);
emit_16(2123);
emit_16(2190);
emit_16(2124);
emit_16(2190);
emit_16(2123);
emit_16(2190);
emit_16(2124);
emit_16(2191);
emit_16(2125);
emit_16(2191);
emit_16(2124);
emit_16(2191);
emit_16(2125);
emit_16(2192);
emit_16(2126);
emit_16(2192);
emit_16(2125);
emit_16(2192);
emit_16(2126);
emit_16(2193);
emit_16(2127);
emit_16(2193);
emit_16(2126);
emit_16(2193);
emit_16(2127);
emit_16(2194);
emit_16(2128);
emit_16(2194);
emit_16(2127);
emit_16(2194);
emit_16(2128);
emit_16(2195);
emit_16(2129);
emit_16(2195);
emit_16(2128);
emit_16(2195);
emit_16(2129);
emit_16(2196);
emit_16(2130);
emit_16(2196);
emit_16(2129);
emit_16(2196);
emit_16(2130);
emit_16(2197);
emit_16(2131);
emit_16(2197);
emit_16(2130);
emit_16(2197);
emit_16(2131);
emit_16(2198);
emit_16(2132);
emit_16(2198);
emit_16(2131);
emit_16(2198);
emit_16(2132);
emit_16(2199);
emit_16(2133);
emit_16(2199);
emit_16(2132);
emit_16(2199);
emit_16(2133);
emit_16(2200);
emit_16(2134);
emit_16(2200);
emit_16(2133);
emit_16(2200);
emit_16(2134);
emit_16(2201);
emit_16(2135);
emit_16(2201);
emit_16(2134);
emit_16(2201);
emit_16(2135);
emit_16(2202);
emit_16(2136);
emit_16(2202);
emit_16(2135);
emit_16(2202);
emit_16(2136);
emit_16(2203);
emit_16(2137);
emit_16(2203);
emit_16(2136);
emit_16(2203);
emit_16(2137);
emit_16(2204);
emit_16(2138);
emit_16(2204);
emit_16(2137);
emit_16(2204);
emit_16(2138);
emit_16(2205);
emit_16(2139);
emit_16(2205);
emit_16(2138);
emit_16(2205);
emit_16(2139);
emit_16(2206);
emit_16(2140);
emit_16(2206);
emit_16(2139);
emit_16(2206);
emit_16(2140);
emit_16(2207);
emit_16(2141);
emit_16(2207);
emit_16(2140);
emit_16(2207);
emit_16(2141);
emit_16(2208);
emit_16(2142);
emit_16(2208);
emit_16(2141);
emit_16(2208);
emit_16(2142);
emit_16(2209);
emit_16(2143);
emit_16(2209);
emit_16(2142);
emit_16(2209);
emit_16(2143);
emit_16(2210);
emit_16(2144);
emit_16(2210);
emit_16(2143);
emit_16(2210);
emit_16(2144);
emit_16(2211);
emit_16(2145);
emit_16(2211);
emit_16(2144);
emit_16(2211);
emit_16(2145);
emit_16(2212);
emit_16(2146);
emit_16(2212);
emit_16(2145);
emit_16(2212);
emit_16(2146);
emit_16(2213);
emit_16(2147);
emit_16(2213);
emit_16(2146);
emit_16(2213);
emit_16(2147);
emit_16(2214);
emit_16(2148);
emit_16(2214);
emit_16(2147);
emit_16(2214);
emit_16(2148);
emit_16(2215);
emit_16(2149);
emit_16(2215);
emit_16(2148);
emit_16(2215);
emit_16(2149);
emit_16(2216);
emit_16(2150);
emit_16(2216);
emit_16(2149);
emit_16(2216);
emit_16(2150);
emit_16(2217);
emit_16(2151);
emit_16(2217);
emit_16(2150);
emit_16(2217);
emit_16(2151);
emit_16(2218);
emit_16(2152);
emit_16(2218);
emit_16(2151);
emit_16(2218);
emit_16(2152);
emit_16(2219);
emit_16(2153);
emit_16(2219);
emit_16(2152);
emit_16(2219);
emit_16(2153);
emit_16(2220);
emit_16(2154);
emit_16(2220);
emit_16(2153);
emit_16(2220);
emit_16(2154);
emit_16(2221);
emit_16(2155);
emit_16(2221);
emit_16(2154);
emit_16(2221);
emit_16(2155);
emit_16(2222);
emit_16(2156);
emit_16(2222);
emit_16(2155);
emit_16(2222);
emit_16(2156);
emit_16(2223);
emit_16(2157);
emit_16(2223);
emit_16(2156);
emit_16(2223);
emit_16(2157);
emit_16(2224);
emit_16(2158);
emit_16(2224);
emit_16(2157);
emit_16(2224);
emit_16(2158);
emit_16(2225);
emit_16(2159);
emit_16(2225);
emit_16(2158);
emit_16(2225);
emit_16(2159);
emit_16(2226);
emit_16(2160);
emit_16(2226);
emit_16(2159);
emit_16(2226);
emit_16(2160);
emit_16(2227);
emit_16(2161);
emit_16(2227);
emit_16(2160);
emit_16(2227);
emit_16(2161);
emit_16(2228);
emit_16(2162);
emit_16(2228);
emit_16(2161);
emit_16(2228);
emit_16(2162);
emit_16(2229);
emit_16(2163);
emit_16(2229);
emit_16(2162);
emit_16(2229);
emit_16(2163);
emit_16(2230);
emit_16(2164);
emit_16(2230);
emit_16(2163);
emit_16(2230);
emit_16(2164);
emit_16(2231);
emit_16(2165);
emit_16(2231);
emit_16(2164);
emit_16(2231);
emit_16(2165);
emit_16(2232);
emit_16(2166);
emit_16(2232);
emit_16(2165);
emit_16(2232);
emit_16(2166);
emit_16(2233);
emit_16(2167);
emit_16(2233);
emit_16(2166);
emit_16(2233);
emit_16(2167);
emit_16(2234);
emit_16(2168);
emit_16(2234);
emit_16(2167);
emit_16(2234);
emit_16(2168);
emit_16(2235);
emit_16(2169);
emit_16(2235);
emit_16(2168);
emit_16(2235);
emit_16(2169);
emit_16(2236);
emit_16(2170);
emit_16(2236);
emit_16(2169);
emit_16(2236);
emit_16(2170);
emit_16(2237);
emit_16(2171);
emit_16(2237);
emit_16(2170);
emit_16(2237);
emit_16(2171);
emit_16(2238);
emit_16(2172);
emit_16(2238);
emit_16(2171);
emit_16(2238);
emit_16(2172);
emit_16(2239);
emit_16(2173);
emit_16(2239);
emit_16(2172);
emit_16(2239);
emit_16(2173);
emit_16(2240);
emit_16(2174);
emit_16(2240);
emit_16(2173);
emit_16(2240);
emit_16(2174);
emit_16(2241);
emit_16(2175);
emit_16(2241);
emit_16(2174);
emit_16(2241);
emit_16(2175);
emit_16(2242);
emit_16(2176);
emit_16(2242);
emit_16(2175);
emit_16(2242);
emit_16(2176);
emit_16(2243);
emit_16(2177);
emit_16(2243);
emit_16(2176);
emit_start(Landscape06Idx)
emit_16(0);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(2);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(4);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(6);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(8);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(10);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(12);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(14);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(16);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(18);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(20);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(22);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(24);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(26);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(28);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(30);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(32);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(34);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(36);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(38);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(40);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(42);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(44);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(46);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(48);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(50);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(52);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(54);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(56);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(58);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(60);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(62);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(64);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(66);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(68);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(70);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(72);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(74);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(76);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(78);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(80);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(82);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(84);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(86);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(88);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(90);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(92);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(94);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(96);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(98);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(100);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(102);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(104);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(106);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(108);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(110);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(112);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(114);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(116);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(118);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(120);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(122);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(124);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(126);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(128);
emit_16(129);
emit_16(128);
emit_16(127);
emit_16(128);
emit_16(129);
emit_16(130);
emit_16(131);
emit_16(130);
emit_16(129);
emit_16(132);
emit_16(0);
emit_16(133);
emit_16(2);
emit_16(133);
emit_16(0);
emit_16(133);
emit_16(2);
emit_16(134);
emit_16(4);
emit_16(134);
emit_16(2);
emit_16(134);
emit_16(4);
emit_16(135);
emit_16(6);
emit_16(135);
emit_16(4);
emit_16(135);
emit_16(6);
emit_16(136);
emit_16(8);
emit_16(136);
emit_16(6);
emit_16(136);
emit_16(8);
emit_16(137);
emit_16(10);
emit_16(137);
emit_16(8);
emit_16(137);
emit_16(10);
emit_16(138);
emit_16(12);
emit_16(138);
emit_16(10);
emit_16(138);
emit_16(12);
emit_16(139);
emit_16(14);
emit_16(139);
emit_16(12);
emit_16(139);
emit_16(14);
emit_16(140);
emit_16(16);
emit_16(140);
emit_16(14);
emit_16(140);
emit_16(16);
emit_16(141);
emit_16(18);
emit_16(141);
emit_16(16);
emit_16(141);
emit_16(18);
emit_16(142);
emit_16(20);
emit_16(142);
emit_16(18);
emit_16(142);
emit_16(20);
emit_16(143);
emit_16(22);
emit_16(143);
emit_16(20);
emit_16(143);
emit_16(22);
emit_16(144);
emit_16(24);
emit_16(144);
emit_16(22);
emit_16(144);
emit_16(24);
emit_16(145);
emit_16(26);
emit_16(145);
emit_16(24);
emit_16(145);
emit_16(26);
emit_16(146);
emit_16(28);
emit_16(146);
emit_16(26);
emit_16(146);
emit_16(28);
emit_16(147);
emit_16(30);
emit_16(147);
emit_16(28);
emit_16(147);
emit_16(30);
emit_16(148);
emit_16(32);
emit_16(148);
emit_16(30);
emit_16(148);
emit_16(32);
emit_16(149);
emit_16(34);
emit_16(149);
emit_16(32);
emit_16(149);
emit_16(34);
emit_16(150);
emit_16(36);
emit_16(150);
emit_16(34);
emit_16(150);
emit_16(36);
emit_16(151);
emit_16(38);
emit_16(151);
emit_16(36);
emit_16(151);
emit_16(38);
emit_16(152);
emit_16(40);
emit_16(152);
emit_16(38);
emit_16(152);
emit_16(40);
emit_16(153);
emit_16(42);
emit_16(153);
emit_16(40);
emit_16(153);
emit_16(42);
emit_16(154);
emit_16(44);
emit_16(154);
emit_16(42);
emit_16(154);
emit_16(44);
emit_16(155);
emit_16(46);
emit_16(155);
emit_16(44);
emit_16(155);
emit_16(46);
emit_16(156);
emit_16(48);
emit_16(156);
emit_16(46);
emit_16(156);
emit_16(48);
emit_16(157);
emit_16(50);
emit_16(157);
emit_16(48);
emit_16(157);
emit_16(50);
emit_16(158);
emit_16(52);
emit_16(158);
emit_16(50);
emit_16(158);
emit_16(52);
emit_16(159);
emit_16(54);
emit_16(159);
emit_16(52);
emit_16(159);
emit_16(54);
emit_16(160);
emit_16(56);
emit_16(160);
emit_16(54);
emit_16(160);
emit_16(56);
emit_16(161);
emit_16(58);
emit_16(161);
emit_16(56);
emit_16(161);
emit_16(58);
emit_16(162);
emit_16(60);
emit_16(162);
emit_16(58);
emit_16(162);
emit_16(60);
emit_16(163);
emit_16(62);
emit_16(163);
emit_16(60);
emit_16(163);
emit_16(62);
emit_16(164);
emit_16(64);
emit_16(164);
emit_16(62);
emit_16(164);
emit_16(64);
emit_16(165);
emit_16(66);
emit_16(165);
emit_16(64);
emit_16(165);
emit_16(66);
emit_16(166);
emit_16(68);
emit_16(166);
emit_16(66);
emit_16(166);
emit_16(68);
emit_16(167);
emit_16(70);
emit_16(167);
emit_16(68);
emit_16(167);
emit_16(70);
emit_16(168);
emit_16(72);
emit_16(168);
emit_16(70);
emit_16(168);
emit_16(72);
emit_16(169);
emit_16(74);
emit_16(169);
emit_16(72);
emit_16(169);
emit_16(74);
emit_16(170);
emit_16(76);
emit_16(170);
emit_16(74);
emit_16(170);
emit_16(76);
emit_16(171);
emit_16(78);
emit_16(171);
emit_16(76);
emit_16(171);
emit_16(78);
emit_16(172);
emit_16(80);
emit_16(172);
emit_16(78);
emit_16(172);
emit_16(80);
emit_16(173);
emit_16(82);
emit_16(173);
emit_16(80);
emit_16(173);
emit_16(82);
emit_16(174);
emit_16(84);
emit_16(174);
emit_16(82);
emit_16(174);
emit_16(84);
emit_16(175);
emit_16(86);
emit_16(175);
emit_16(84);
emit_16(175);
emit_16(86);
emit_16(176);
emit_16(88);
emit_16(176);
emit_16(86);
emit_16(176);
emit_16(88);
emit_16(177);
emit_16(90);
emit_16(177);
emit_16(88);
emit_16(177);
emit_16(90);
emit_16(178);
emit_16(92);
emit_16(178);
emit_16(90);
emit_16(178);
emit_16(92);
emit_16(179);
emit_16(94);
emit_16(179);
emit_16(92);
emit_16(179);
emit_16(94);
emit_16(180);
emit_16(96);
emit_16(180);
emit_16(94);
emit_16(180);
emit_16(96);
emit_16(181);
emit_16(98);
emit_16(181);
emit_16(96);
emit_16(181);
emit_16(98);
emit_16(182);
emit_16(100);
emit_16(182);
emit_16(98);
emit_16(182);
emit_16(100);
emit_16(183);
emit_16(102);
emit_16(183);
emit_16(100);
emit_16(183);
emit_16(102);
emit_16(184);
emit_16(104);
emit_16(184);
emit_16(102);
emit_16(184);
emit_16(104);
emit_16(185);
emit_16(106);
emit_16(185);
emit_16(104);
emit_16(185);
emit_16(106);
emit_16(186);
emit_16(108);
emit_16(186);
emit_16(106);
emit_16(186);
emit_16(108);
emit_16(187);
emit_16(110);
emit_16(187);
emit_16(108);
emit_16(187);
emit_16(110);
emit_16(188);
emit_16(112);
emit_16(188);
emit_16(110);
emit_16(188);
emit_16(112);
emit_16(189);
emit_16(114);
emit_16(189);
emit_16(112);
emit_16(189);
emit_16(114);
emit_16(190);
emit_16(116);
emit_16(190);
emit_16(114);
emit_16(190);
emit_16(116);
emit_16(191);
emit_16(118);
emit_16(191);
emit_16(116);
emit_16(191);
emit_16(118);
emit_16(192);
emit_16(120);
emit_16(192);
emit_16(118);
emit_16(192);
emit_16(120);
emit_16(193);
emit_16(122);
emit_16(193);
emit_16(120);
emit_16(193);
emit_16(122);
emit_16(194);
emit_16(124);
emit_16(194);
emit_16(122);
emit_16(194);
emit_16(124);
emit_16(195);
emit_16(126);
emit_16(195);
emit_16(124);
emit_16(195);
emit_16(126);
emit_16(196);
emit_16(128);
emit_16(196);
emit_16(126);
emit_16(196);
emit_16(128);
emit_16(197);
emit_16(130);
emit_16(197);
emit_16(128);
emit_16(198);
emit_16(132);
emit_16(199);
emit_16(133);
emit_16(199);
emit_16(132);
emit_16(199);
emit_16(133);
emit_16(200);
emit_16(134);
emit_16(200);
emit_16(133);
emit_16(200);
emit_16(134);
emit_16(201);
emit_16(135);
emit_16(201);
emit_16(134);
emit_16(201);
emit_16(135);
emit_16(202);
emit_16(136);
emit_16(202);
emit_16(135);
emit_16(202);
emit_16(136);
emit_16(203);
emit_16(137);
emit_16(203);
emit_16(136);
emit_16(203);
emit_16(137);
emit_16(204);
emit_16(138);
emit_16(204);
emit_16(137);
emit_16(204);
emit_16(138);
emit_16(205);
emit_16(139);
emit_16(205);
emit_16(138);
emit_16(205);
emit_16(139);
emit_16(206);
emit_16(140);
emit_16(206);
emit_16(139);
emit_16(206);
emit_16(140);
emit_16(207);
emit_16(141);
emit_16(207);
emit_16(140);
emit_16(207);
emit_16(141);
emit_16(208);
emit_16(142);
emit_16(208);
emit_16(141);
emit_16(208);
emit_16(142);
emit_16(209);
emit_16(143);
emit_16(209);
emit_16(142);
emit_16(209);
emit_16(143);
emit_16(210);
emit_16(144);
emit_16(210);
emit_16(143);
emit_16(210);
emit_16(144);
emit_16(211);
emit_16(145);
emit_16(211);
emit_16(144);
emit_16(211);
emit_16(145);
emit_16(212);
emit_16(146);
emit_16(212);
emit_16(145);
emit_16(212);
emit_16(146);
emit_16(213);
emit_16(147);
emit_16(213);
emit_16(146);
emit_16(213);
emit_16(147);
emit_16(214);
emit_16(148);
emit_16(214);
emit_16(147);
emit_16(214);
emit_16(148);
emit_16(215);
emit_16(149);
emit_16(215);
emit_16(148);
emit_16(215);
emit_16(149);
emit_16(216);
emit_16(150);
emit_16(216);
emit_16(149);
emit_16(216);
emit_16(150);
emit_16(217);
emit_16(151);
emit_16(217);
emit_16(150);
emit_16(217);
emit_16(151);
emit_16(218);
emit_16(152);
emit_16(218);
emit_16(151);
emit_16(218);
emit_16(152);
emit_16(219);
emit_16(153);
emit_16(219);
emit_16(152);
emit_16(219);
emit_16(153);
emit_16(220);
emit_16(154);
emit_16(220);
emit_16(153);
emit_16(220);
emit_16(154);
emit_16(221);
emit_16(155);
emit_16(221);
emit_16(154);
emit_16(221);
emit_16(155);
emit_16(222);
emit_16(156);
emit_16(222);
emit_16(155);
emit_16(222);
emit_16(156);
emit_16(223);
emit_16(157);
emit_16(223);
emit_16(156);
emit_16(223);
emit_16(157);
emit_16(224);
emit_16(158);
emit_16(224);
emit_16(157);
emit_16(224);
emit_16(158);
emit_16(225);
emit_16(159);
emit_16(225);
emit_16(158);
emit_16(225);
emit_16(159);
emit_16(226);
emit_16(160);
emit_16(226);
emit_16(159);
emit_16(226);
emit_16(160);
emit_16(227);
emit_16(161);
emit_16(227);
emit_16(160);
emit_16(227);
emit_16(161);
emit_16(228);
emit_16(162);
emit_16(228);
emit_16(161);
emit_16(228);
emit_16(162);
emit_16(229);
emit_16(163);
emit_16(229);
emit_16(162);
emit_16(229);
emit_16(163);
emit_16(230);
emit_16(164);
emit_16(230);
emit_16(163);
emit_16(230);
emit_16(164);
emit_16(231);
emit_16(165);
emit_16(231);
emit_16(164);
emit_16(231);
emit_16(165);
emit_16(232);
emit_16(166);
emit_16(232);
emit_16(165);
emit_16(232);
emit_16(166);
emit_16(233);
emit_16(167);
emit_16(233);
emit_16(166);
emit_16(233);
emit_16(167);
emit_16(234);
emit_16(168);
emit_16(234);
emit_16(167);
emit_16(234);
emit_16(168);
emit_16(235);
emit_16(169);
emit_16(235);
emit_16(168);
emit_16(235);
emit_16(169);
emit_16(236);
emit_16(170);
emit_16(236);
emit_16(169);
emit_16(236);
emit_16(170);
emit_16(237);
emit_16(171);
emit_16(237);
emit_16(170);
emit_16(237);
emit_16(171);
emit_16(238);
emit_16(172);
emit_16(238);
emit_16(171);
emit_16(238);
emit_16(172);
emit_16(239);
emit_16(173);
emit_16(239);
emit_16(172);
emit_16(239);
emit_16(173);
emit_16(240);
emit_16(174);
emit_16(240);
emit_16(173);
emit_16(240);
emit_16(174);
emit_16(241);
emit_16(175);
emit_16(241);
emit_16(174);
emit_16(241);
emit_16(175);
emit_16(242);
emit_16(176);
emit_16(242);
emit_16(175);
emit_16(242);
emit_16(176);
emit_16(243);
emit_16(177);
emit_16(243);
emit_16(176);
emit_16(243);
emit_16(177);
emit_16(244);
emit_16(178);
emit_16(244);
emit_16(177);
emit_16(244);
emit_16(178);
emit_16(245);
emit_16(179);
emit_16(245);
emit_16(178);
emit_16(245);
emit_16(179);
emit_16(246);
emit_16(180);
emit_16(246);
emit_16(179);
emit_16(246);
emit_16(180);
emit_16(247);
emit_16(181);
emit_16(247);
emit_16(180);
emit_16(247);
emit_16(181);
emit_16(248);
emit_16(182);
emit_16(248);
emit_16(181);
emit_16(248);
emit_16(182);
emit_16(249);
emit_16(183);
emit_16(249);
emit_16(182);
emit_16(249);
emit_16(183);
emit_16(250);
emit_16(184);
emit_16(250);
emit_16(183);
emit_16(250);
emit_16(184);
emit_16(251);
emit_16(185);
emit_16(251);
emit_16(184);
emit_16(251);
emit_16(185);
emit_16(252);
emit_16(186);
emit_16(252);
emit_16(185);
emit_16(252);
emit_16(186);
emit_16(253);
emit_16(187);
emit_16(253);
emit_16(186);
emit_16(253);
emit_16(187);
emit_16(254);
emit_16(188);
emit_16(254);
emit_16(187);
emit_16(254);
emit_16(188);
emit_16(255);
emit_16(189);
emit_16(255);
emit_16(188);
emit_16(255);
emit_16(189);
emit_16(256);
emit_16(190);
emit_16(256);
emit_16(189);
emit_16(256);
emit_16(190);
emit_16(257);
emit_16(191);
emit_16(257);
emit_16(190);
emit_16(257);
emit_16(191);
emit_16(258);
emit_16(192);
emit_16(258);
emit_16(191);
emit_16(258);
emit_16(192);
emit_16(259);
emit_16(193);
emit_16(259);
emit_16(192);
emit_16(259);
emit_16(193);
emit_16(260);
emit_16(194);
emit_16(260);
emit_16(193);
emit_16(260);
emit_16(194);
emit_16(261);
emit_16(195);
emit_16(261);
emit_16(194);
emit_16(261);
emit_16(195);
emit_16(262);
emit_16(196);
emit_16(262);
emit_16(195);
emit_16(262);
emit_16(196);
emit_16(263);
emit_16(197);
emit_16(263);
emit_16(196);
emit_16(264);
emit_16(198);
emit_16(265);
emit_16(199);
emit_16(265);
emit_16(198);
emit_16(265);
emit_16(199);
emit_16(266);
emit_16(200);
emit_16(266);
emit_16(199);
emit_16(266);
emit_16(200);
emit_16(267);
emit_16(201);
emit_16(267);
emit_16(200);
emit_16(267);
emit_16(201);
emit_16(268);
emit_16(202);
emit_16(268);
emit_16(201);
emit_16(268);
emit_16(202);
emit_16(269);
emit_16(203);
emit_16(269);
emit_16(202);
emit_16(269);
emit_16(203);
emit_16(270);
emit_16(204);
emit_16(270);
emit_16(203);
emit_16(270);
emit_16(204);
emit_16(271);
emit_16(205);
emit_16(271);
emit_16(204);
emit_16(271);
emit_16(205);
emit_16(272);
emit_16(206);
emit_16(272);
emit_16(205);
emit_16(272);
emit_16(206);
emit_16(273);
emit_16(207);
emit_16(273);
emit_16(206);
emit_16(273);
emit_16(207);
emit_16(274);
emit_16(208);
emit_16(274);
emit_16(207);
emit_16(274);
emit_16(208);
emit_16(275);
emit_16(209);
emit_16(275);
emit_16(208);
emit_16(275);
emit_16(209);
emit_16(276);
emit_16(210);
emit_16(276);
emit_16(209);
emit_16(276);
emit_16(210);
emit_16(277);
emit_16(211);
emit_16(277);
emit_16(210);
emit_16(277);
emit_16(211);
emit_16(278);
emit_16(212);
emit_16(278);
emit_16(211);
emit_16(278);
emit_16(212);
emit_16(279);
emit_16(213);
emit_16(279);
emit_16(212);
emit_16(279);
emit_16(213);
emit_16(280);
emit_16(214);
emit_16(280);
emit_16(213);
emit_16(280);
emit_16(214);
emit_16(281);
emit_16(215);
emit_16(281);
emit_16(214);
emit_16(281);
emit_16(215);
emit_16(282);
emit_16(216);
emit_16(282);
emit_16(215);
emit_16(282);
emit_16(216);
emit_16(283);
emit_16(217);
emit_16(283);
emit_16(216);
emit_16(283);
emit_16(217);
emit_16(284);
emit_16(218);
emit_16(284);
emit_16(217);
emit_16(284);
emit_16(218);
emit_16(285);
emit_16(219);
emit_16(285);
emit_16(218);
emit_16(285);
emit_16(219);
emit_16(286);
emit_16(220);
emit_16(286);
emit_16(219);
emit_16(286);
emit_16(220);
emit_16(287);
emit_16(221);
emit_16(287);
emit_16(220);
emit_16(287);
emit_16(221);
emit_16(288);
emit_16(222);
emit_16(288);
emit_16(221);
emit_16(288);
emit_16(222);
emit_16(289);
emit_16(223);
emit_16(289);
emit_16(222);
emit_16(289);
emit_16(223);
emit_16(290);
emit_16(224);
emit_16(290);
emit_16(223);
emit_16(290);
emit_16(224);
emit_16(291);
emit_16(225);
emit_16(291);
emit_16(224);
emit_16(291);
emit_16(225);
emit_16(292);
emit_16(226);
emit_16(292);
emit_16(225);
emit_16(292);
emit_16(226);
emit_16(293);
emit_16(227);
emit_16(293);
emit_16(226);
emit_16(293);
emit_16(227);
emit_16(294);
emit_16(228);
emit_16(294);
emit_16(227);
emit_16(294);
emit_16(228);
emit_16(295);
emit_16(229);
emit_16(295);
emit_16(228);
emit_16(295);
emit_16(229);
emit_16(296);
emit_16(230);
emit_16(296);
emit_16(229);
emit_16(296);
emit_16(230);
emit_16(297);
emit_16(231);
emit_16(297);
emit_16(230);
emit_16(297);
emit_16(231);
emit_16(298);
emit_16(232);
emit_16(298);
emit_16(231);
emit_16(298);
emit_16(232);
emit_16(299);
emit_16(233);
emit_16(299);
emit_16(232);
emit_16(299);
emit_16(233);
emit_16(300);
emit_16(234);
emit_16(300);
emit_16(233);
emit_16(300);
emit_16(234);
emit_16(301);
emit_16(235);
emit_16(301);
emit_16(234);
emit_16(301);
emit_16(235);
emit_16(302);
emit_16(236);
emit_16(302);
emit_16(235);
emit_16(302);
emit_16(236);
emit_16(303);
emit_16(237);
emit_16(303);
emit_16(236);
emit_16(303);
emit_16(237);
emit_16(304);
emit_16(238);
emit_16(304);
emit_16(237);
emit_16(304);
emit_16(238);
emit_16(305);
emit_16(239);
emit_16(305);
emit_16(238);
emit_16(305);
emit_16(239);
emit_16(306);
emit_16(240);
emit_16(306);
emit_16(239);
emit_16(306);
emit_16(240);
emit_16(307);
emit_16(241);
emit_16(307);
emit_16(240);
emit_16(307);
emit_16(241);
emit_16(308);
emit_16(242);
emit_16(308);
emit_16(241);
emit_16(308);
emit_16(242);
emit_16(309);
emit_16(243);
emit_16(309);
emit_16(242);
emit_16(309);
emit_16(243);
emit_16(310);
emit_16(244);
emit_16(310);
emit_16(243);
emit_16(310);
emit_16(244);
emit_16(311);
emit_16(245);
emit_16(311);
emit_16(244);
emit_16(311);
emit_16(245);
emit_16(312);
emit_16(246);
emit_16(312);
emit_16(245);
emit_16(312);
emit_16(246);
emit_16(313);
emit_16(247);
emit_16(313);
emit_16(246);
emit_16(313);
emit_16(247);
emit_16(314);
emit_16(248);
emit_16(314);
emit_16(247);
emit_16(314);
emit_16(248);
emit_16(315);
emit_16(249);
emit_16(315);
emit_16(248);
emit_16(315);
emit_16(249);
emit_16(316);
emit_16(250);
emit_16(316);
emit_16(249);
emit_16(316);
emit_16(250);
emit_16(317);
emit_16(251);
emit_16(317);
emit_16(250);
emit_16(317);
emit_16(251);
emit_16(318);
emit_16(252);
emit_16(318);
emit_16(251);
emit_16(318);
emit_16(252);
emit_16(319);
emit_16(253);
emit_16(319);
emit_16(252);
emit_16(319);
emit_16(253);
emit_16(320);
emit_16(254);
emit_16(320);
emit_16(253);
emit_16(320);
emit_16(254);
emit_16(321);
emit_16(255);
emit_16(321);
emit_16(254);
emit_16(321);
emit_16(255);
emit_16(322);
emit_16(256);
emit_16(322);
emit_16(255);
emit_16(322);
emit_16(256);
emit_16(323);
emit_16(257);
emit_16(323);
emit_16(256);
emit_16(323);
emit_16(257);
emit_16(324);
emit_16(258);
emit_16(324);
emit_16(257);
emit_16(324);
emit_16(258);
emit_16(325);
emit_16(259);
emit_16(325);
emit_16(258);
emit_16(325);
emit_16(259);
emit_16(326);
emit_16(260);
emit_16(326);
emit_16(259);
emit_16(326);
emit_16(260);
emit_16(327);
emit_16(261);
emit_16(327);
emit_16(260);
emit_16(327);
emit_16(261);
emit_16(328);
emit_16(262);
emit_16(328);
emit_16(261);
emit_16(328);
emit_16(262);
emit_16(329);
emit_16(263);
emit_16(329);
emit_16(262);
emit_16(330);
emit_16(264);
emit_16(331);
emit_16(265);
emit_16(331);
emit_16(264);
emit_16(331);
emit_16(265);
emit_16(332);
emit_16(266);
emit_16(332);
emit_16(265);
emit_16(332);
emit_16(266);
emit_16(333);
emit_16(267);
emit_16(333);
emit_16(266);
emit_16(333);
emit_16(267);
emit_16(334);
emit_16(268);
emit_16(334);
emit_16(267);
emit_16(334);
emit_16(268);
emit_16(335);
emit_16(269);
emit_16(335);
emit_16(268);
emit_16(335);
emit_16(269);
emit_16(336);
emit_16(270);
emit_16(336);
emit_16(269);
emit_16(336);
emit_16(270);
emit_16(337);
emit_16(271);
emit_16(337);
emit_16(270);
emit_16(337);
emit_16(271);
emit_16(338);
emit_16(272);
emit_16(338);
emit_16(271);
emit_16(338);
emit_16(272);
emit_16(339);
emit_16(273);
emit_16(339);
emit_16(272);
emit_16(339);
emit_16(273);
emit_16(340);
emit_16(274);
emit_16(340);
emit_16(273);
emit_16(340);
emit_16(274);
emit_16(341);
emit_16(275);
emit_16(341);
emit_16(274);
emit_16(341);
emit_16(275);
emit_16(342);
emit_16(276);
emit_16(342);
emit_16(275);
emit_16(342);
emit_16(276);
emit_16(343);
emit_16(277);
emit_16(343);
emit_16(276);
emit_16(343);
emit_16(277);
emit_16(344);
emit_16(278);
emit_16(344);
emit_16(277);
emit_16(344);
emit_16(278);
emit_16(345);
emit_16(279);
emit_16(345);
emit_16(278);
emit_16(345);
emit_16(279);
emit_16(346);
emit_16(280);
emit_16(346);
emit_16(279);
emit_16(346);
emit_16(280);
emit_16(347);
emit_16(281);
emit_16(347);
emit_16(280);
emit_16(347);
emit_16(281);
emit_16(348);
emit_16(282);
emit_16(348);
emit_16(281);
emit_16(348);
emit_16(282);
emit_16(349);
emit_16(283);
emit_16(349);
emit_16(282);
emit_16(349);
emit_16(283);
emit_16(350);
emit_16(284);
emit_16(350);
emit_16(283);
emit_16(350);
emit_16(284);
emit_16(351);
emit_16(285);
emit_16(351);
emit_16(284);
emit_16(351);
emit_16(285);
emit_16(352);
emit_16(286);
emit_16(352);
emit_16(285);
emit_16(352);
emit_16(286);
emit_16(353);
emit_16(287);
emit_16(353);
emit_16(286);
emit_16(353);
emit_16(287);
emit_16(354);
emit_16(288);
emit_16(354);
emit_16(287);
emit_16(354);
emit_16(288);
emit_16(355);
emit_16(289);
emit_16(355);
emit_16(288);
emit_16(355);
emit_16(289);
emit_16(356);
emit_16(290);
emit_16(356);
emit_16(289);
emit_16(356);
emit_16(290);
emit_16(357);
emit_16(291);
emit_16(357);
emit_16(290);
emit_16(357);
emit_16(291);
emit_16(358);
emit_16(292);
emit_16(358);
emit_16(291);
emit_16(358);
emit_16(292);
emit_16(359);
emit_16(293);
emit_16(359);
emit_16(292);
emit_16(359);
emit_16(293);
emit_16(360);
emit_16(294);
emit_16(360);
emit_16(293);
emit_16(360);
emit_16(294);
emit_16(361);
emit_16(295);
emit_16(361);
emit_16(294);
emit_16(361);
emit_16(295);
emit_16(362);
emit_16(296);
emit_16(362);
emit_16(295);
emit_16(362);
emit_16(296);
emit_16(363);
emit_16(297);
emit_16(363);
emit_16(296);
emit_16(363);
emit_16(297);
emit_16(364);
emit_16(298);
emit_16(364);
emit_16(297);
emit_16(364);
emit_16(298);
emit_16(365);
emit_16(299);
emit_16(365);
emit_16(298);
emit_16(365);
emit_16(299);
emit_16(366);
emit_16(300);
emit_16(366);
emit_16(299);
emit_16(366);
emit_16(300);
emit_16(367);
emit_16(301);
emit_16(367);
emit_16(300);
emit_16(367);
emit_16(301);
emit_16(368);
emit_16(302);
emit_16(368);
emit_16(301);
emit_16(368);
emit_16(302);
emit_16(369);
emit_16(303);
emit_16(369);
emit_16(302);
emit_16(369);
emit_16(303);
emit_16(370);
emit_16(304);
emit_16(370);
emit_16(303);
emit_16(370);
emit_16(304);
emit_16(371);
emit_16(305);
emit_16(371);
emit_16(304);
emit_16(371);
emit_16(305);
emit_16(372);
emit_16(306);
emit_16(372);
emit_16(305);
emit_16(372);
emit_16(306);
emit_16(373);
emit_16(307);
emit_16(373);
emit_16(306);
emit_16(373);
emit_16(307);
emit_16(374);
emit_16(308);
emit_16(374);
emit_16(307);
emit_16(374);
emit_16(308);
emit_16(375);
emit_16(309);
emit_16(375);
emit_16(308);
emit_16(375);
emit_16(309);
emit_16(376);
emit_16(310);
emit_16(376);
emit_16(309);
emit_16(376);
emit_16(310);
emit_16(377);
emit_16(311);
emit_16(377);
emit_16(310);
emit_16(377);
emit_16(311);
emit_16(378);
emit_16(312);
emit_16(378);
emit_16(311);
emit_16(378);
emit_16(312);
emit_16(379);
emit_16(313);
emit_16(379);
emit_16(312);
emit_16(379);
emit_16(313);
emit_16(380);
emit_16(314);
emit_16(380);
emit_16(313);
emit_16(380);
emit_16(314);
emit_16(381);
emit_16(315);
emit_16(381);
emit_16(314);
emit_16(381);
emit_16(315);
emit_16(382);
emit_16(316);
emit_16(382);
emit_16(315);
emit_16(382);
emit_16(316);
emit_16(383);
emit_16(317);
emit_16(383);
emit_16(316);
emit_16(383);
emit_16(317);
emit_16(384);
emit_16(318);
emit_16(384);
emit_16(317);
emit_16(384);
emit_16(318);
emit_16(385);
emit_16(319);
emit_16(385);
emit_16(318);
emit_16(385);
emit_16(319);
emit_16(386);
emit_16(320);
emit_16(386);
emit_16(319);
emit_16(386);
emit_16(320);
emit_16(387);
emit_16(321);
emit_16(387);
emit_16(320);
emit_16(387);
emit_16(321);
emit_16(388);
emit_16(322);
emit_16(388);
emit_16(321);
emit_16(388);
emit_16(322);
emit_16(389);
emit_16(323);
emit_16(389);
emit_16(322);
emit_16(389);
emit_16(323);
emit_16(390);
emit_16(324);
emit_16(390);
emit_16(323);
emit_16(390);
emit_16(324);
emit_16(391);
emit_16(325);
emit_16(391);
emit_16(324);
emit_16(391);
emit_16(325);
emit_16(392);
emit_16(326);
emit_16(392);
emit_16(325);
emit_16(392);
emit_16(326);
emit_16(393);
emit_16(327);
emit_16(393);
emit_16(326);
emit_16(393);
emit_16(327);
emit_16(394);
emit_16(328);
emit_16(394);
emit_16(327);
emit_16(394);
emit_16(328);
emit_16(395);
emit_16(329);
emit_16(395);
emit_16(328);
emit_16(396);
emit_16(330);
emit_16(397);
emit_16(331);
emit_16(397);
emit_16(330);
emit_16(397);
emit_16(331);
emit_16(398);
emit_16(332);
emit_16(398);
emit_16(331);
emit_16(398);
emit_16(332);
emit_16(399);
emit_16(333);
emit_16(399);
emit_16(332);
emit_16(399);
emit_16(333);
emit_16(400);
emit_16(334);
emit_16(400);
emit_16(333);
emit_16(400);
emit_16(334);
emit_16(401);
emit_16(335);
emit_16(401);
emit_16(334);
emit_16(401);
emit_16(335);
emit_16(402);
emit_16(336);
emit_16(402);
emit_16(335);
emit_16(402);
emit_16(336);
emit_16(403);
emit_16(337);
emit_16(403);
emit_16(336);
emit_16(403);
emit_16(337);
emit_16(404);
emit_16(338);
emit_16(404);
emit_16(337);
emit_16(404);
emit_16(338);
emit_16(405);
emit_16(339);
emit_16(405);
emit_16(338);
emit_16(405);
emit_16(339);
emit_16(406);
emit_16(340);
emit_16(406);
emit_16(339);
emit_16(406);
emit_16(340);
emit_16(407);
emit_16(341);
emit_16(407);
emit_16(340);
emit_16(407);
emit_16(341);
emit_16(408);
emit_16(342);
emit_16(408);
emit_16(341);
emit_16(408);
emit_16(342);
emit_16(409);
emit_16(343);
emit_16(409);
emit_16(342);
emit_16(409);
emit_16(343);
emit_16(410);
emit_16(344);
emit_16(410);
emit_16(343);
emit_16(410);
emit_16(344);
emit_16(411);
emit_16(345);
emit_16(411);
emit_16(344);
emit_16(411);
emit_16(345);
emit_16(412);
emit_16(346);
emit_16(412);
emit_16(345);
emit_16(412);
emit_16(346);
emit_16(413);
emit_16(347);
emit_16(413);
emit_16(346);
emit_16(413);
emit_16(347);
emit_16(414);
emit_16(348);
emit_16(414);
emit_16(347);
emit_16(414);
emit_16(348);
emit_16(415);
emit_16(349);
emit_16(415);
emit_16(348);
emit_16(415);
emit_16(349);
emit_16(416);
emit_16(350);
emit_16(416);
emit_16(349);
emit_16(416);
emit_16(350);
emit_16(417);
emit_16(351);
emit_16(417);
emit_16(350);
emit_16(417);
emit_16(351);
emit_16(418);
emit_16(352);
emit_16(418);
emit_16(351);
emit_16(418);
emit_16(352);
emit_16(419);
emit_16(353);
emit_16(419);
emit_16(352);
emit_16(419);
emit_16(353);
emit_16(420);
emit_16(354);
emit_16(420);
emit_16(353);
emit_16(420);
emit_16(354);
emit_16(421);
emit_16(355);
emit_16(421);
emit_16(354);
emit_16(421);
emit_16(355);
emit_16(422);
emit_16(356);
emit_16(422);
emit_16(355);
emit_16(422);
emit_16(356);
emit_16(423);
emit_16(357);
emit_16(423);
emit_16(356);
emit_16(423);
emit_16(357);
emit_16(424);
emit_16(358);
emit_16(424);
emit_16(357);
emit_16(424);
emit_16(358);
emit_16(425);
emit_16(359);
emit_16(425);
emit_16(358);
emit_16(425);
emit_16(359);
emit_16(426);
emit_16(360);
emit_16(426);
emit_16(359);
emit_16(426);
emit_16(360);
emit_16(427);
emit_16(361);
emit_16(427);
emit_16(360);
emit_16(427);
emit_16(361);
emit_16(428);
emit_16(362);
emit_16(428);
emit_16(361);
emit_16(428);
emit_16(362);
emit_16(429);
emit_16(363);
emit_16(429);
emit_16(362);
emit_16(429);
emit_16(363);
emit_16(430);
emit_16(364);
emit_16(430);
emit_16(363);
emit_16(430);
emit_16(364);
emit_16(431);
emit_16(365);
emit_16(431);
emit_16(364);
emit_16(431);
emit_16(365);
emit_16(432);
emit_16(366);
emit_16(432);
emit_16(365);
emit_16(432);
emit_16(366);
emit_16(433);
emit_16(367);
emit_16(433);
emit_16(366);
emit_16(433);
emit_16(367);
emit_16(434);
emit_16(368);
emit_16(434);
emit_16(367);
emit_16(434);
emit_16(368);
emit_16(435);
emit_16(369);
emit_16(435);
emit_16(368);
emit_16(435);
emit_16(369);
emit_16(436);
emit_16(370);
emit_16(436);
emit_16(369);
emit_16(436);
emit_16(370);
emit_16(437);
emit_16(371);
emit_16(437);
emit_16(370);
emit_16(437);
emit_16(371);
emit_16(438);
emit_16(372);
emit_16(438);
emit_16(371);
emit_16(438);
emit_16(372);
emit_16(439);
emit_16(373);
emit_16(439);
emit_16(372);
emit_16(439);
emit_16(373);
emit_16(440);
emit_16(374);
emit_16(440);
emit_16(373);
emit_16(440);
emit_16(374);
emit_16(441);
emit_16(375);
emit_16(441);
emit_16(374);
emit_16(441);
emit_16(375);
emit_16(442);
emit_16(376);
emit_16(442);
emit_16(375);
emit_16(442);
emit_16(376);
emit_16(443);
emit_16(377);
emit_16(443);
emit_16(376);
emit_16(443);
emit_16(377);
emit_16(444);
emit_16(378);
emit_16(444);
emit_16(377);
emit_16(444);
emit_16(378);
emit_16(445);
emit_16(379);
emit_16(445);
emit_16(378);
emit_16(445);
emit_16(379);
emit_16(446);
emit_16(380);
emit_16(446);
emit_16(379);
emit_16(446);
emit_16(380);
emit_16(447);
emit_16(381);
emit_16(447);
emit_16(380);
emit_16(447);
emit_16(381);
emit_16(448);
emit_16(382);
emit_16(448);
emit_16(381);
emit_16(448);
emit_16(382);
emit_16(449);
emit_16(383);
emit_16(449);
emit_16(382);
emit_16(449);
emit_16(383);
emit_16(450);
emit_16(384);
emit_16(450);
emit_16(383);
emit_16(450);
emit_16(384);
emit_16(451);
emit_16(385);
emit_16(451);
emit_16(384);
emit_16(451);
emit_16(385);
emit_16(452);
emit_16(386);
emit_16(452);
emit_16(385);
emit_16(452);
emit_16(386);
emit_16(453);
emit_16(387);
emit_16(453);
emit_16(386);
emit_16(453);
emit_16(387);
emit_16(454);
emit_16(388);
emit_16(454);
emit_16(387);
emit_16(454);
emit_16(388);
emit_16(455);
emit_16(389);
emit_16(455);
emit_16(388);
emit_16(455);
emit_16(389);
emit_16(456);
emit_16(390);
emit_16(456);
emit_16(389);
emit_16(456);
emit_16(390);
emit_16(457);
emit_16(391);
emit_16(457);
emit_16(390);
emit_16(457);
emit_16(391);
emit_16(458);
emit_16(392);
emit_16(458);
emit_16(391);
emit_16(458);
emit_16(392);
emit_16(459);
emit_16(393);
emit_16(459);
emit_16(392);
emit_16(459);
emit_16(393);
emit_16(460);
emit_16(394);
emit_16(460);
emit_16(393);
emit_16(460);
emit_16(394);
emit_16(461);
emit_16(395);
emit_16(461);
emit_16(394);
emit_16(462);
emit_16(396);
emit_16(463);
emit_16(397);
emit_16(463);
emit_16(396);
emit_16(463);
emit_16(397);
emit_16(464);
emit_16(398);
emit_16(464);
emit_16(397);
emit_16(464);
emit_16(398);
emit_16(465);
emit_16(399);
emit_16(465);
emit_16(398);
emit_16(465);
emit_16(399);
emit_16(466);
emit_16(400);
emit_16(466);
emit_16(399);
emit_16(466);
emit_16(400);
emit_16(467);
emit_16(401);
emit_16(467);
emit_16(400);
emit_16(467);
emit_16(401);
emit_16(468);
emit_16(402);
emit_16(468);
emit_16(401);
emit_16(468);
emit_16(402);
emit_16(469);
emit_16(403);
emit_16(469);
emit_16(402);
emit_16(469);
emit_16(403);
emit_16(470);
emit_16(404);
emit_16(470);
emit_16(403);
emit_16(470);
emit_16(404);
emit_16(471);
emit_16(405);
emit_16(471);
emit_16(404);
emit_16(471);
emit_16(405);
emit_16(472);
emit_16(406);
emit_16(472);
emit_16(405);
emit_16(472);
emit_16(406);
emit_16(473);
emit_16(407);
emit_16(473);
emit_16(406);
emit_16(473);
emit_16(407);
emit_16(474);
emit_16(408);
emit_16(474);
emit_16(407);
emit_16(474);
emit_16(408);
emit_16(475);
emit_16(409);
emit_16(475);
emit_16(408);
emit_16(475);
emit_16(409);
emit_16(476);
emit_16(410);
emit_16(476);
emit_16(409);
emit_16(476);
emit_16(410);
emit_16(477);
emit_16(411);
emit_16(477);
emit_16(410);
emit_16(477);
emit_16(411);
emit_16(478);
emit_16(412);
emit_16(478);
emit_16(411);
emit_16(478);
emit_16(412);
emit_16(479);
emit_16(413);
emit_16(479);
emit_16(412);
emit_16(479);
emit_16(413);
emit_16(480);
emit_16(414);
emit_16(480);
emit_16(413);
emit_16(480);
emit_16(414);
emit_16(481);
emit_16(415);
emit_16(481);
emit_16(414);
emit_16(481);
emit_16(415);
emit_16(482);
emit_16(416);
emit_16(482);
emit_16(415);
emit_16(482);
emit_16(416);
emit_16(483);
emit_16(417);
emit_16(483);
emit_16(416);
emit_16(483);
emit_16(417);
emit_16(484);
emit_16(418);
emit_16(484);
emit_16(417);
emit_16(484);
emit_16(418);
emit_16(485);
emit_16(419);
emit_16(485);
emit_16(418);
emit_16(485);
emit_16(419);
emit_16(486);
emit_16(420);
emit_16(486);
emit_16(419);
emit_16(486);
emit_16(420);
emit_16(487);
emit_16(421);
emit_16(487);
emit_16(420);
emit_16(487);
emit_16(421);
emit_16(488);
emit_16(422);
emit_16(488);
emit_16(421);
emit_16(488);
emit_16(422);
emit_16(489);
emit_16(423);
emit_16(489);
emit_16(422);
emit_16(489);
emit_16(423);
emit_16(490);
emit_16(424);
emit_16(490);
emit_16(423);
emit_16(490);
emit_16(424);
emit_16(491);
emit_16(425);
emit_16(491);
emit_16(424);
emit_16(491);
emit_16(425);
emit_16(492);
emit_16(426);
emit_16(492);
emit_16(425);
emit_16(492);
emit_16(426);
emit_16(493);
emit_16(427);
emit_16(493);
emit_16(426);
emit_16(493);
emit_16(427);
emit_16(494);
emit_16(428);
emit_16(494);
emit_16(427);
emit_16(494);
emit_16(428);
emit_16(495);
emit_16(429);
emit_16(495);
emit_16(428);
emit_16(495);
emit_16(429);
emit_16(496);
emit_16(430);
emit_16(496);
emit_16(429);
emit_16(496);
emit_16(430);
emit_16(497);
emit_16(431);
emit_16(497);
emit_16(430);
emit_16(497);
emit_16(431);
emit_16(498);
emit_16(432);
emit_16(498);
emit_16(431);
emit_16(498);
emit_16(432);
emit_16(499);
emit_16(433);
emit_16(499);
emit_16(432);
emit_16(499);
emit_16(433);
emit_16(500);
emit_16(434);
emit_16(500);
emit_16(433);
emit_16(500);
emit_16(434);
emit_16(501);
emit_16(435);
emit_16(501);
emit_16(434);
emit_16(501);
emit_16(435);
emit_16(502);
emit_16(436);
emit_16(502);
emit_16(435);
emit_16(502);
emit_16(436);
emit_16(503);
emit_16(437);
emit_16(503);
emit_16(436);
emit_16(503);
emit_16(437);
emit_16(504);
emit_16(438);
emit_16(504);
emit_16(437);
emit_16(504);
emit_16(438);
emit_16(505);
emit_16(439);
emit_16(505);
emit_16(438);
emit_16(505);
emit_16(439);
emit_16(506);
emit_16(440);
emit_16(506);
emit_16(439);
emit_16(506);
emit_16(440);
emit_16(507);
emit_16(441);
emit_16(507);
emit_16(440);
emit_16(507);
emit_16(441);
emit_16(508);
emit_16(442);
emit_16(508);
emit_16(441);
emit_16(508);
emit_16(442);
emit_16(509);
emit_16(443);
emit_16(509);
emit_16(442);
emit_16(509);
emit_16(443);
emit_16(510);
emit_16(444);
emit_16(510);
emit_16(443);
emit_16(510);
emit_16(444);
emit_16(511);
emit_16(445);
emit_16(511);
emit_16(444);
emit_16(511);
emit_16(445);
emit_16(512);
emit_16(446);
emit_16(512);
emit_16(445);
emit_16(512);
emit_16(446);
emit_16(513);
emit_16(447);
emit_16(513);
emit_16(446);
emit_16(513);
emit_16(447);
emit_16(514);
emit_16(448);
emit_16(514);
emit_16(447);
emit_16(514);
emit_16(448);
emit_16(515);
emit_16(449);
emit_16(515);
emit_16(448);
emit_16(515);
emit_16(449);
emit_16(516);
emit_16(450);
emit_16(516);
emit_16(449);
emit_16(516);
emit_16(450);
emit_16(517);
emit_16(451);
emit_16(517);
emit_16(450);
emit_16(517);
emit_16(451);
emit_16(518);
emit_16(452);
emit_16(518);
emit_16(451);
emit_16(518);
emit_16(452);
emit_16(519);
emit_16(453);
emit_16(519);
emit_16(452);
emit_16(519);
emit_16(453);
emit_16(520);
emit_16(454);
emit_16(520);
emit_16(453);
emit_16(520);
emit_16(454);
emit_16(521);
emit_16(455);
emit_16(521);
emit_16(454);
emit_16(521);
emit_16(455);
emit_16(522);
emit_16(456);
emit_16(522);
emit_16(455);
emit_16(522);
emit_16(456);
emit_16(523);
emit_16(457);
emit_16(523);
emit_16(456);
emit_16(523);
emit_16(457);
emit_16(524);
emit_16(458);
emit_16(524);
emit_16(457);
emit_16(524);
emit_16(458);
emit_16(525);
emit_16(459);
emit_16(525);
emit_16(458);
emit_16(525);
emit_16(459);
emit_16(526);
emit_16(460);
emit_16(526);
emit_16(459);
emit_16(526);
emit_16(460);
emit_16(527);
emit_16(461);
emit_16(527);
emit_16(460);
emit_16(528);
emit_16(462);
emit_16(529);
emit_16(463);
emit_16(529);
emit_16(462);
emit_16(529);
emit_16(463);
emit_16(530);
emit_16(464);
emit_16(530);
emit_16(463);
emit_16(530);
emit_16(464);
emit_16(531);
emit_16(465);
emit_16(531);
emit_16(464);
emit_16(531);
emit_16(465);
emit_16(532);
emit_16(466);
emit_16(532);
emit_16(465);
emit_16(532);
emit_16(466);
emit_16(533);
emit_16(467);
emit_16(533);
emit_16(466);
emit_16(533);
emit_16(467);
emit_16(534);
emit_16(468);
emit_16(534);
emit_16(467);
emit_16(534);
emit_16(468);
emit_16(535);
emit_16(469);
emit_16(535);
emit_16(468);
emit_16(535);
emit_16(469);
emit_16(536);
emit_16(470);
emit_16(536);
emit_16(469);
emit_16(536);
emit_16(470);
emit_16(537);
emit_16(471);
emit_16(537);
emit_16(470);
emit_16(537);
emit_16(471);
emit_16(538);
emit_16(472);
emit_16(538);
emit_16(471);
emit_16(538);
emit_16(472);
emit_16(539);
emit_16(473);
emit_16(539);
emit_16(472);
emit_16(539);
emit_16(473);
emit_16(540);
emit_16(474);
emit_16(540);
emit_16(473);
emit_16(540);
emit_16(474);
emit_16(541);
emit_16(475);
emit_16(541);
emit_16(474);
emit_16(541);
emit_16(475);
emit_16(542);
emit_16(476);
emit_16(542);
emit_16(475);
emit_16(542);
emit_16(476);
emit_16(543);
emit_16(477);
emit_16(543);
emit_16(476);
emit_16(543);
emit_16(477);
emit_16(544);
emit_16(478);
emit_16(544);
emit_16(477);
emit_16(544);
emit_16(478);
emit_16(545);
emit_16(479);
emit_16(545);
emit_16(478);
emit_16(545);
emit_16(479);
emit_16(546);
emit_16(480);
emit_16(546);
emit_16(479);
emit_16(546);
emit_16(480);
emit_16(547);
emit_16(481);
emit_16(547);
emit_16(480);
emit_16(547);
emit_16(481);
emit_16(548);
emit_16(482);
emit_16(548);
emit_16(481);
emit_16(548);
emit_16(482);
emit_16(549);
emit_16(483);
emit_16(549);
emit_16(482);
emit_16(549);
emit_16(483);
emit_16(550);
emit_16(484);
emit_16(550);
emit_16(483);
emit_16(550);
emit_16(484);
emit_16(551);
emit_16(485);
emit_16(551);
emit_16(484);
emit_16(551);
emit_16(485);
emit_16(552);
emit_16(486);
emit_16(552);
emit_16(485);
emit_16(552);
emit_16(486);
emit_16(553);
emit_16(487);
emit_16(553);
emit_16(486);
emit_16(553);
emit_16(487);
emit_16(554);
emit_16(488);
emit_16(554);
emit_16(487);
emit_16(554);
emit_16(488);
emit_16(555);
emit_16(489);
emit_16(555);
emit_16(488);
emit_16(555);
emit_16(489);
emit_16(556);
emit_16(490);
emit_16(556);
emit_16(489);
emit_16(556);
emit_16(490);
emit_16(557);
emit_16(491);
emit_16(557);
emit_16(490);
emit_16(557);
emit_16(491);
emit_16(558);
emit_16(492);
emit_16(558);
emit_16(491);
emit_16(558);
emit_16(492);
emit_16(559);
emit_16(493);
emit_16(559);
emit_16(492);
emit_16(559);
emit_16(493);
emit_16(560);
emit_16(494);
emit_16(560);
emit_16(493);
emit_16(560);
emit_16(494);
emit_16(561);
emit_16(495);
emit_16(561);
emit_16(494);
emit_16(561);
emit_16(495);
emit_16(562);
emit_16(496);
emit_16(562);
emit_16(495);
emit_16(562);
emit_16(496);
emit_16(563);
emit_16(497);
emit_16(563);
emit_16(496);
emit_16(563);
emit_16(497);
emit_16(564);
emit_16(498);
emit_16(564);
emit_16(497);
emit_16(564);
emit_16(498);
emit_16(565);
emit_16(499);
emit_16(565);
emit_16(498);
emit_16(565);
emit_16(499);
emit_16(566);
emit_16(500);
emit_16(566);
emit_16(499);
emit_16(566);
emit_16(500);
emit_16(567);
emit_16(501);
emit_16(567);
emit_16(500);
emit_16(567);
emit_16(501);
emit_16(568);
emit_16(502);
emit_16(568);
emit_16(501);
emit_16(568);
emit_16(502);
emit_16(569);
emit_16(503);
emit_16(569);
emit_16(502);
emit_16(569);
emit_16(503);
emit_16(570);
emit_16(504);
emit_16(570);
emit_16(503);
emit_16(570);
emit_16(504);
emit_16(571);
emit_16(505);
emit_16(571);
emit_16(504);
emit_16(571);
emit_16(505);
emit_16(572);
emit_16(506);
emit_16(572);
emit_16(505);
emit_16(572);
emit_16(506);
emit_16(573);
emit_16(507);
emit_16(573);
emit_16(506);
emit_16(573);
emit_16(507);
emit_16(574);
emit_16(508);
emit_16(574);
emit_16(507);
emit_16(574);
emit_16(508);
emit_16(575);
emit_16(509);
emit_16(575);
emit_16(508);
emit_16(575);
emit_16(509);
emit_16(576);
emit_16(510);
emit_16(576);
emit_16(509);
emit_16(576);
emit_16(510);
emit_16(577);
emit_16(511);
emit_16(577);
emit_16(510);
emit_16(577);
emit_16(511);
emit_16(578);
emit_16(512);
emit_16(578);
emit_16(511);
emit_16(578);
emit_16(512);
emit_16(579);
emit_16(513);
emit_16(579);
emit_16(512);
emit_16(579);
emit_16(513);
emit_16(580);
emit_16(514);
emit_16(580);
emit_16(513);
emit_16(580);
emit_16(514);
emit_16(581);
emit_16(515);
emit_16(581);
emit_16(514);
emit_16(581);
emit_16(515);
emit_16(582);
emit_16(516);
emit_16(582);
emit_16(515);
emit_16(582);
emit_16(516);
emit_16(583);
emit_16(517);
emit_16(583);
emit_16(516);
emit_16(583);
emit_16(517);
emit_16(584);
emit_16(518);
emit_16(584);
emit_16(517);
emit_16(584);
emit_16(518);
emit_16(585);
emit_16(519);
emit_16(585);
emit_16(518);
emit_16(585);
emit_16(519);
emit_16(586);
emit_16(520);
emit_16(586);
emit_16(519);
emit_16(586);
emit_16(520);
emit_16(587);
emit_16(521);
emit_16(587);
emit_16(520);
emit_16(587);
emit_16(521);
emit_16(588);
emit_16(522);
emit_16(588);
emit_16(521);
emit_16(588);
emit_16(522);
emit_16(589);
emit_16(523);
emit_16(589);
emit_16(522);
emit_16(589);
emit_16(523);
emit_16(590);
emit_16(524);
emit_16(590);
emit_16(523);
emit_16(590);
emit_16(524);
emit_16(591);
emit_16(525);
emit_16(591);
emit_16(524);
emit_16(591);
emit_16(525);
emit_16(592);
emit_16(526);
emit_16(592);
emit_16(525);
emit_16(592);
emit_16(526);
emit_16(593);
emit_16(527);
emit_16(593);
emit_16(526);
emit_16(594);
emit_16(528);
emit_16(595);
emit_16(529);
emit_16(595);
emit_16(528);
emit_16(595);
emit_16(529);
emit_16(596);
emit_16(530);
emit_16(596);
emit_16(529);
emit_16(596);
emit_16(530);
emit_16(597);
emit_16(531);
emit_16(597);
emit_16(530);
emit_16(597);
emit_16(531);
emit_16(598);
emit_16(532);
emit_16(598);
emit_16(531);
emit_16(598);
emit_16(532);
emit_16(599);
emit_16(533);
emit_16(599);
emit_16(532);
emit_16(599);
emit_16(533);
emit_16(600);
emit_16(534);
emit_16(600);
emit_16(533);
emit_16(600);
emit_16(534);
emit_16(601);
emit_16(535);
emit_16(601);
emit_16(534);
emit_16(601);
emit_16(535);
emit_16(602);
emit_16(536);
emit_16(602);
emit_16(535);
emit_16(602);
emit_16(536);
emit_16(603);
emit_16(537);
emit_16(603);
emit_16(536);
emit_16(603);
emit_16(537);
emit_16(604);
emit_16(538);
emit_16(604);
emit_16(537);
emit_16(604);
emit_16(538);
emit_16(605);
emit_16(539);
emit_16(605);
emit_16(538);
emit_16(605);
emit_16(539);
emit_16(606);
emit_16(540);
emit_16(606);
emit_16(539);
emit_16(606);
emit_16(540);
emit_16(607);
emit_16(541);
emit_16(607);
emit_16(540);
emit_16(607);
emit_16(541);
emit_16(608);
emit_16(542);
emit_16(608);
emit_16(541);
emit_16(608);
emit_16(542);
emit_16(609);
emit_16(543);
emit_16(609);
emit_16(542);
emit_16(609);
emit_16(543);
emit_16(610);
emit_16(544);
emit_16(610);
emit_16(543);
emit_16(610);
emit_16(544);
emit_16(611);
emit_16(545);
emit_16(611);
emit_16(544);
emit_16(611);
emit_16(545);
emit_16(612);
emit_16(546);
emit_16(612);
emit_16(545);
emit_16(612);
emit_16(546);
emit_16(613);
emit_16(547);
emit_16(613);
emit_16(546);
emit_16(613);
emit_16(547);
emit_16(614);
emit_16(548);
emit_16(614);
emit_16(547);
emit_16(614);
emit_16(548);
emit_16(615);
emit_16(549);
emit_16(615);
emit_16(548);
emit_16(615);
emit_16(549);
emit_16(616);
emit_16(550);
emit_16(616);
emit_16(549);
emit_16(616);
emit_16(550);
emit_16(617);
emit_16(551);
emit_16(617);
emit_16(550);
emit_16(617);
emit_16(551);
emit_16(618);
emit_16(552);
emit_16(618);
emit_16(551);
emit_16(618);
emit_16(552);
emit_16(619);
emit_16(553);
emit_16(619);
emit_16(552);
emit_16(619);
emit_16(553);
emit_16(620);
emit_16(554);
emit_16(620);
emit_16(553);
emit_16(620);
emit_16(554);
emit_16(621);
emit_16(555);
emit_16(621);
emit_16(554);
emit_16(621);
emit_16(555);
emit_16(622);
emit_16(556);
emit_16(622);
emit_16(555);
emit_16(622);
emit_16(556);
emit_16(623);
emit_16(557);
emit_16(623);
emit_16(556);
emit_16(623);
emit_16(557);
emit_16(624);
emit_16(558);
emit_16(624);
emit_16(557);
emit_16(624);
emit_16(558);
emit_16(625);
emit_16(559);
emit_16(625);
emit_16(558);
emit_16(625);
emit_16(559);
emit_16(626);
emit_16(560);
emit_16(626);
emit_16(559);
emit_16(626);
emit_16(560);
emit_16(627);
emit_16(561);
emit_16(627);
emit_16(560);
emit_16(627);
emit_16(561);
emit_16(628);
emit_16(562);
emit_16(628);
emit_16(561);
emit_16(628);
emit_16(562);
emit_16(629);
emit_16(563);
emit_16(629);
emit_16(562);
emit_16(629);
emit_16(563);
emit_16(630);
emit_16(564);
emit_16(630);
emit_16(563);
emit_16(630);
emit_16(564);
emit_16(631);
emit_16(565);
emit_16(631);
emit_16(564);
emit_16(631);
emit_16(565);
emit_16(632);
emit_16(566);
emit_16(632);
emit_16(565);
emit_16(632);
emit_16(566);
emit_16(633);
emit_16(567);
emit_16(633);
emit_16(566);
emit_16(633);
emit_16(567);
emit_16(634);
emit_16(568);
emit_16(634);
emit_16(567);
emit_16(634);
emit_16(568);
emit_16(635);
emit_16(569);
emit_16(635);
emit_16(568);
emit_16(635);
emit_16(569);
emit_16(636);
emit_16(570);
emit_16(636);
emit_16(569);
emit_16(636);
emit_16(570);
emit_16(637);
emit_16(571);
emit_16(637);
emit_16(570);
emit_16(637);
emit_16(571);
emit_16(638);
emit_16(572);
emit_16(638);
emit_16(571);
emit_16(638);
emit_16(572);
emit_16(639);
emit_16(573);
emit_16(639);
emit_16(572);
emit_16(639);
emit_16(573);
emit_16(640);
emit_16(574);
emit_16(640);
emit_16(573);
emit_16(640);
emit_16(574);
emit_16(641);
emit_16(575);
emit_16(641);
emit_16(574);
emit_16(641);
emit_16(575);
emit_16(642);
emit_16(576);
emit_16(642);
emit_16(575);
emit_16(642);
emit_16(576);
emit_16(643);
emit_16(577);
emit_16(643);
emit_16(576);
emit_16(643);
emit_16(577);
emit_16(644);
emit_16(578);
emit_16(644);
emit_16(577);
emit_16(644);
emit_16(578);
emit_16(645);
emit_16(579);
emit_16(645);
emit_16(578);
emit_16(645);
emit_16(579);
emit_16(646);
emit_16(580);
emit_16(646);
emit_16(579);
emit_16(646);
emit_16(580);
emit_16(647);
emit_16(581);
emit_16(647);
emit_16(580);
emit_16(647);
emit_16(581);
emit_16(648);
emit_16(582);
emit_16(648);
emit_16(581);
emit_16(648);
emit_16(582);
emit_16(649);
emit_16(583);
emit_16(649);
emit_16(582);
emit_16(649);
emit_16(583);
emit_16(650);
emit_16(584);
emit_16(650);
emit_16(583);
emit_16(650);
emit_16(584);
emit_16(651);
emit_16(585);
emit_16(651);
emit_16(584);
emit_16(651);
emit_16(585);
emit_16(652);
emit_16(586);
emit_16(652);
emit_16(585);
emit_16(652);
emit_16(586);
emit_16(653);
emit_16(587);
emit_16(653);
emit_16(586);
emit_16(653);
emit_16(587);
emit_16(654);
emit_16(588);
emit_16(654);
emit_16(587);
emit_16(654);
emit_16(588);
emit_16(655);
emit_16(589);
emit_16(655);
emit_16(588);
emit_16(655);
emit_16(589);
emit_16(656);
emit_16(590);
emit_16(656);
emit_16(589);
emit_16(656);
emit_16(590);
emit_16(657);
emit_16(591);
emit_16(657);
emit_16(590);
emit_16(657);
emit_16(591);
emit_16(658);
emit_16(592);
emit_16(658);
emit_16(591);
emit_16(658);
emit_16(592);
emit_16(659);
emit_16(593);
emit_16(659);
emit_16(592);
emit_16(660);
emit_16(594);
emit_16(661);
emit_16(595);
emit_16(661);
emit_16(594);
emit_16(661);
emit_16(595);
emit_16(662);
emit_16(596);
emit_16(662);
emit_16(595);
emit_16(662);
emit_16(596);
emit_16(663);
emit_16(597);
emit_16(663);
emit_16(596);
emit_16(663);
emit_16(597);
emit_16(664);
emit_16(598);
emit_16(664);
emit_16(597);
emit_16(664);
emit_16(598);
emit_16(665);
emit_16(599);
emit_16(665);
emit_16(598);
emit_16(665);
emit_16(599);
emit_16(666);
emit_16(600);
emit_16(666);
emit_16(599);
emit_16(666);
emit_16(600);
emit_16(667);
emit_16(601);
emit_16(667);
emit_16(600);
emit_16(667);
emit_16(601);
emit_16(668);
emit_16(602);
emit_16(668);
emit_16(601);
emit_16(668);
emit_16(602);
emit_16(669);
emit_16(603);
emit_16(669);
emit_16(602);
emit_16(669);
emit_16(603);
emit_16(670);
emit_16(604);
emit_16(670);
emit_16(603);
emit_16(670);
emit_16(604);
emit_16(671);
emit_16(605);
emit_16(671);
emit_16(604);
emit_16(671);
emit_16(605);
emit_16(672);
emit_16(606);
emit_16(672);
emit_16(605);
emit_16(672);
emit_16(606);
emit_16(673);
emit_16(607);
emit_16(673);
emit_16(606);
emit_16(673);
emit_16(607);
emit_16(674);
emit_16(608);
emit_16(674);
emit_16(607);
emit_16(674);
emit_16(608);
emit_16(675);
emit_16(609);
emit_16(675);
emit_16(608);
emit_16(675);
emit_16(609);
emit_16(676);
emit_16(610);
emit_16(676);
emit_16(609);
emit_16(676);
emit_16(610);
emit_16(677);
emit_16(611);
emit_16(677);
emit_16(610);
emit_16(677);
emit_16(611);
emit_16(678);
emit_16(612);
emit_16(678);
emit_16(611);
emit_16(678);
emit_16(612);
emit_16(679);
emit_16(613);
emit_16(679);
emit_16(612);
emit_16(679);
emit_16(613);
emit_16(680);
emit_16(614);
emit_16(680);
emit_16(613);
emit_16(680);
emit_16(614);
emit_16(681);
emit_16(615);
emit_16(681);
emit_16(614);
emit_16(681);
emit_16(615);
emit_16(682);
emit_16(616);
emit_16(682);
emit_16(615);
emit_16(682);
emit_16(616);
emit_16(683);
emit_16(617);
emit_16(683);
emit_16(616);
emit_16(683);
emit_16(617);
emit_16(684);
emit_16(618);
emit_16(684);
emit_16(617);
emit_16(684);
emit_16(618);
emit_16(685);
emit_16(619);
emit_16(685);
emit_16(618);
emit_16(685);
emit_16(619);
emit_16(686);
emit_16(620);
emit_16(686);
emit_16(619);
emit_16(686);
emit_16(620);
emit_16(687);
emit_16(621);
emit_16(687);
emit_16(620);
emit_16(687);
emit_16(621);
emit_16(688);
emit_16(622);
emit_16(688);
emit_16(621);
emit_16(688);
emit_16(622);
emit_16(689);
emit_16(623);
emit_16(689);
emit_16(622);
emit_16(689);
emit_16(623);
emit_16(690);
emit_16(624);
emit_16(690);
emit_16(623);
emit_16(690);
emit_16(624);
emit_16(691);
emit_16(625);
emit_16(691);
emit_16(624);
emit_16(691);
emit_16(625);
emit_16(692);
emit_16(626);
emit_16(692);
emit_16(625);
emit_16(692);
emit_16(626);
emit_16(693);
emit_16(627);
emit_16(693);
emit_16(626);
emit_16(693);
emit_16(627);
emit_16(694);
emit_16(628);
emit_16(694);
emit_16(627);
emit_16(694);
emit_16(628);
emit_16(695);
emit_16(629);
emit_16(695);
emit_16(628);
emit_16(695);
emit_16(629);
emit_16(696);
emit_16(630);
emit_16(696);
emit_16(629);
emit_16(696);
emit_16(630);
emit_16(697);
emit_16(631);
emit_16(697);
emit_16(630);
emit_16(697);
emit_16(631);
emit_16(698);
emit_16(632);
emit_16(698);
emit_16(631);
emit_16(698);
emit_16(632);
emit_16(699);
emit_16(633);
emit_16(699);
emit_16(632);
emit_16(699);
emit_16(633);
emit_16(700);
emit_16(634);
emit_16(700);
emit_16(633);
emit_16(700);
emit_16(634);
emit_16(701);
emit_16(635);
emit_16(701);
emit_16(634);
emit_16(701);
emit_16(635);
emit_16(702);
emit_16(636);
emit_16(702);
emit_16(635);
emit_16(702);
emit_16(636);
emit_16(703);
emit_16(637);
emit_16(703);
emit_16(636);
emit_16(703);
emit_16(637);
emit_16(704);
emit_16(638);
emit_16(704);
emit_16(637);
emit_16(704);
emit_16(638);
emit_16(705);
emit_16(639);
emit_16(705);
emit_16(638);
emit_16(705);
emit_16(639);
emit_16(706);
emit_16(640);
emit_16(706);
emit_16(639);
emit_16(706);
emit_16(640);
emit_16(707);
emit_16(641);
emit_16(707);
emit_16(640);
emit_16(707);
emit_16(641);
emit_16(708);
emit_16(642);
emit_16(708);
emit_16(641);
emit_16(708);
emit_16(642);
emit_16(709);
emit_16(643);
emit_16(709);
emit_16(642);
emit_16(709);
emit_16(643);
emit_16(710);
emit_16(644);
emit_16(710);
emit_16(643);
emit_16(710);
emit_16(644);
emit_16(711);
emit_16(645);
emit_16(711);
emit_16(644);
emit_16(711);
emit_16(645);
emit_16(712);
emit_16(646);
emit_16(712);
emit_16(645);
emit_16(712);
emit_16(646);
emit_16(713);
emit_16(647);
emit_16(713);
emit_16(646);
emit_16(713);
emit_16(647);
emit_16(714);
emit_16(648);
emit_16(714);
emit_16(647);
emit_16(714);
emit_16(648);
emit_16(715);
emit_16(649);
emit_16(715);
emit_16(648);
emit_16(715);
emit_16(649);
emit_16(716);
emit_16(650);
emit_16(716);
emit_16(649);
emit_16(716);
emit_16(650);
emit_16(717);
emit_16(651);
emit_16(717);
emit_16(650);
emit_16(717);
emit_16(651);
emit_16(718);
emit_16(652);
emit_16(718);
emit_16(651);
emit_16(718);
emit_16(652);
emit_16(719);
emit_16(653);
emit_16(719);
emit_16(652);
emit_16(719);
emit_16(653);
emit_16(720);
emit_16(654);
emit_16(720);
emit_16(653);
emit_16(720);
emit_16(654);
emit_16(721);
emit_16(655);
emit_16(721);
emit_16(654);
emit_16(721);
emit_16(655);
emit_16(722);
emit_16(656);
emit_16(722);
emit_16(655);
emit_16(722);
emit_16(656);
emit_16(723);
emit_16(657);
emit_16(723);
emit_16(656);
emit_16(723);
emit_16(657);
emit_16(724);
emit_16(658);
emit_16(724);
emit_16(657);
emit_16(724);
emit_16(658);
emit_16(725);
emit_16(659);
emit_16(725);
emit_16(658);
emit_16(726);
emit_16(660);
emit_16(727);
emit_16(661);
emit_16(727);
emit_16(660);
emit_16(727);
emit_16(661);
emit_16(728);
emit_16(662);
emit_16(728);
emit_16(661);
emit_16(728);
emit_16(662);
emit_16(729);
emit_16(663);
emit_16(729);
emit_16(662);
emit_16(729);
emit_16(663);
emit_16(730);
emit_16(664);
emit_16(730);
emit_16(663);
emit_16(730);
emit_16(664);
emit_16(731);
emit_16(665);
emit_16(731);
emit_16(664);
emit_16(731);
emit_16(665);
emit_16(732);
emit_16(666);
emit_16(732);
emit_16(665);
emit_16(732);
emit_16(666);
emit_16(733);
emit_16(667);
emit_16(733);
emit_16(666);
emit_16(733);
emit_16(667);
emit_16(734);
emit_16(668);
emit_16(734);
emit_16(667);
emit_16(734);
emit_16(668);
emit_16(735);
emit_16(669);
emit_16(735);
emit_16(668);
emit_16(735);
emit_16(669);
emit_16(736);
emit_16(670);
emit_16(736);
emit_16(669);
emit_16(736);
emit_16(670);
emit_16(737);
emit_16(671);
emit_16(737);
emit_16(670);
emit_16(737);
emit_16(671);
emit_16(738);
emit_16(672);
emit_16(738);
emit_16(671);
emit_16(738);
emit_16(672);
emit_16(739);
emit_16(673);
emit_16(739);
emit_16(672);
emit_16(739);
emit_16(673);
emit_16(740);
emit_16(674);
emit_16(740);
emit_16(673);
emit_16(740);
emit_16(674);
emit_16(741);
emit_16(675);
emit_16(741);
emit_16(674);
emit_16(741);
emit_16(675);
emit_16(742);
emit_16(676);
emit_16(742);
emit_16(675);
emit_16(742);
emit_16(676);
emit_16(743);
emit_16(677);
emit_16(743);
emit_16(676);
emit_16(743);
emit_16(677);
emit_16(744);
emit_16(678);
emit_16(744);
emit_16(677);
emit_16(744);
emit_16(678);
emit_16(745);
emit_16(679);
emit_16(745);
emit_16(678);
emit_16(745);
emit_16(679);
emit_16(746);
emit_16(680);
emit_16(746);
emit_16(679);
emit_16(746);
emit_16(680);
emit_16(747);
emit_16(681);
emit_16(747);
emit_16(680);
emit_16(747);
emit_16(681);
emit_16(748);
emit_16(682);
emit_16(748);
emit_16(681);
emit_16(748);
emit_16(682);
emit_16(749);
emit_16(683);
emit_16(749);
emit_16(682);
emit_16(749);
emit_16(683);
emit_16(750);
emit_16(684);
emit_16(750);
emit_16(683);
emit_16(750);
emit_16(684);
emit_16(751);
emit_16(685);
emit_16(751);
emit_16(684);
emit_16(751);
emit_16(685);
emit_16(752);
emit_16(686);
emit_16(752);
emit_16(685);
emit_16(752);
emit_16(686);
emit_16(753);
emit_16(687);
emit_16(753);
emit_16(686);
emit_16(753);
emit_16(687);
emit_16(754);
emit_16(688);
emit_16(754);
emit_16(687);
emit_16(754);
emit_16(688);
emit_16(755);
emit_16(689);
emit_16(755);
emit_16(688);
emit_16(755);
emit_16(689);
emit_16(756);
emit_16(690);
emit_16(756);
emit_16(689);
emit_16(756);
emit_16(690);
emit_16(757);
emit_16(691);
emit_16(757);
emit_16(690);
emit_16(757);
emit_16(691);
emit_16(758);
emit_16(692);
emit_16(758);
emit_16(691);
emit_16(758);
emit_16(692);
emit_16(759);
emit_16(693);
emit_16(759);
emit_16(692);
emit_16(759);
emit_16(693);
emit_16(760);
emit_16(694);
emit_16(760);
emit_16(693);
emit_16(760);
emit_16(694);
emit_16(761);
emit_16(695);
emit_16(761);
emit_16(694);
emit_16(761);
emit_16(695);
emit_16(762);
emit_16(696);
emit_16(762);
emit_16(695);
emit_16(762);
emit_16(696);
emit_16(763);
emit_16(697);
emit_16(763);
emit_16(696);
emit_16(763);
emit_16(697);
emit_16(764);
emit_16(698);
emit_16(764);
emit_16(697);
emit_16(764);
emit_16(698);
emit_16(765);
emit_16(699);
emit_16(765);
emit_16(698);
emit_16(765);
emit_16(699);
emit_16(766);
emit_16(700);
emit_16(766);
emit_16(699);
emit_16(766);
emit_16(700);
emit_16(767);
emit_16(701);
emit_16(767);
emit_16(700);
emit_16(767);
emit_16(701);
emit_16(768);
emit_16(702);
emit_16(768);
emit_16(701);
emit_16(768);
emit_16(702);
emit_16(769);
emit_16(703);
emit_16(769);
emit_16(702);
emit_16(769);
emit_16(703);
emit_16(770);
emit_16(704);
emit_16(770);
emit_16(703);
emit_16(770);
emit_16(704);
emit_16(771);
emit_16(705);
emit_16(771);
emit_16(704);
emit_16(771);
emit_16(705);
emit_16(772);
emit_16(706);
emit_16(772);
emit_16(705);
emit_16(772);
emit_16(706);
emit_16(773);
emit_16(707);
emit_16(773);
emit_16(706);
emit_16(773);
emit_16(707);
emit_16(774);
emit_16(708);
emit_16(774);
emit_16(707);
emit_16(774);
emit_16(708);
emit_16(775);
emit_16(709);
emit_16(775);
emit_16(708);
emit_16(775);
emit_16(709);
emit_16(776);
emit_16(710);
emit_16(776);
emit_16(709);
emit_16(776);
emit_16(710);
emit_16(777);
emit_16(711);
emit_16(777);
emit_16(710);
emit_16(777);
emit_16(711);
emit_16(778);
emit_16(712);
emit_16(778);
emit_16(711);
emit_16(778);
emit_16(712);
emit_16(779);
emit_16(713);
emit_16(779);
emit_16(712);
emit_16(779);
emit_16(713);
emit_16(780);
emit_16(714);
emit_16(780);
emit_16(713);
emit_16(780);
emit_16(714);
emit_16(781);
emit_16(715);
emit_16(781);
emit_16(714);
emit_16(781);
emit_16(715);
emit_16(782);
emit_16(716);
emit_16(782);
emit_16(715);
emit_16(782);
emit_16(716);
emit_16(783);
emit_16(717);
emit_16(783);
emit_16(716);
emit_16(783);
emit_16(717);
emit_16(784);
emit_16(718);
emit_16(784);
emit_16(717);
emit_16(784);
emit_16(718);
emit_16(785);
emit_16(719);
emit_16(785);
emit_16(718);
emit_16(785);
emit_16(719);
emit_16(786);
emit_16(720);
emit_16(786);
emit_16(719);
emit_16(786);
emit_16(720);
emit_16(787);
emit_16(721);
emit_16(787);
emit_16(720);
emit_16(787);
emit_16(721);
emit_16(788);
emit_16(722);
emit_16(788);
emit_16(721);
emit_16(788);
emit_16(722);
emit_16(789);
emit_16(723);
emit_16(789);
emit_16(722);
emit_16(789);
emit_16(723);
emit_16(790);
emit_16(724);
emit_16(790);
emit_16(723);
emit_16(790);
emit_16(724);
emit_16(791);
emit_16(725);
emit_16(791);
emit_16(724);
emit_16(792);
emit_16(726);
emit_16(793);
emit_16(727);
emit_16(793);
emit_16(726);
emit_16(793);
emit_16(727);
emit_16(794);
emit_16(728);
emit_16(794);
emit_16(727);
emit_16(794);
emit_16(728);
emit_16(795);
emit_16(729);
emit_16(795);
emit_16(728);
emit_16(795);
emit_16(729);
emit_16(796);
emit_16(730);
emit_16(796);
emit_16(729);
emit_16(796);
emit_16(730);
emit_16(797);
emit_16(731);
emit_16(797);
emit_16(730);
emit_16(797);
emit_16(731);
emit_16(798);
emit_16(732);
emit_16(798);
emit_16(731);
emit_16(798);
emit_16(732);
emit_16(799);
emit_16(733);
emit_16(799);
emit_16(732);
emit_16(799);
emit_16(733);
emit_16(800);
emit_16(734);
emit_16(800);
emit_16(733);
emit_16(800);
emit_16(734);
emit_16(801);
emit_16(735);
emit_16(801);
emit_16(734);
emit_16(801);
emit_16(735);
emit_16(802);
emit_16(736);
emit_16(802);
emit_16(735);
emit_16(802);
emit_16(736);
emit_16(803);
emit_16(737);
emit_16(803);
emit_16(736);
emit_16(803);
emit_16(737);
emit_16(804);
emit_16(738);
emit_16(804);
emit_16(737);
emit_16(804);
emit_16(738);
emit_16(805);
emit_16(739);
emit_16(805);
emit_16(738);
emit_16(805);
emit_16(739);
emit_16(806);
emit_16(740);
emit_16(806);
emit_16(739);
emit_16(806);
emit_16(740);
emit_16(807);
emit_16(741);
emit_16(807);
emit_16(740);
emit_16(807);
emit_16(741);
emit_16(808);
emit_16(742);
emit_16(808);
emit_16(741);
emit_16(808);
emit_16(742);
emit_16(809);
emit_16(743);
emit_16(809);
emit_16(742);
emit_16(809);
emit_16(743);
emit_16(810);
emit_16(744);
emit_16(810);
emit_16(743);
emit_16(810);
emit_16(744);
emit_16(811);
emit_16(745);
emit_16(811);
emit_16(744);
emit_16(811);
emit_16(745);
emit_16(812);
emit_16(746);
emit_16(812);
emit_16(745);
emit_16(812);
emit_16(746);
emit_16(813);
emit_16(747);
emit_16(813);
emit_16(746);
emit_16(813);
emit_16(747);
emit_16(814);
emit_16(748);
emit_16(814);
emit_16(747);
emit_16(814);
emit_16(748);
emit_16(815);
emit_16(749);
emit_16(815);
emit_16(748);
emit_16(815);
emit_16(749);
emit_16(816);
emit_16(750);
emit_16(816);
emit_16(749);
emit_16(816);
emit_16(750);
emit_16(817);
emit_16(751);
emit_16(817);
emit_16(750);
emit_16(817);
emit_16(751);
emit_16(818);
emit_16(752);
emit_16(818);
emit_16(751);
emit_16(818);
emit_16(752);
emit_16(819);
emit_16(753);
emit_16(819);
emit_16(752);
emit_16(819);
emit_16(753);
emit_16(820);
emit_16(754);
emit_16(820);
emit_16(753);
emit_16(820);
emit_16(754);
emit_16(821);
emit_16(755);
emit_16(821);
emit_16(754);
emit_16(821);
emit_16(755);
emit_16(822);
emit_16(756);
emit_16(822);
emit_16(755);
emit_16(822);
emit_16(756);
emit_16(823);
emit_16(757);
emit_16(823);
emit_16(756);
emit_16(823);
emit_16(757);
emit_16(824);
emit_16(758);
emit_16(824);
emit_16(757);
emit_16(824);
emit_16(758);
emit_16(825);
emit_16(759);
emit_16(825);
emit_16(758);
emit_16(825);
emit_16(759);
emit_16(826);
emit_16(760);
emit_16(826);
emit_16(759);
emit_16(826);
emit_16(760);
emit_16(827);
emit_16(761);
emit_16(827);
emit_16(760);
emit_16(827);
emit_16(761);
emit_16(828);
emit_16(762);
emit_16(828);
emit_16(761);
emit_16(828);
emit_16(762);
emit_16(829);
emit_16(763);
emit_16(829);
emit_16(762);
emit_16(829);
emit_16(763);
emit_16(830);
emit_16(764);
emit_16(830);
emit_16(763);
emit_16(830);
emit_16(764);
emit_16(831);
emit_16(765);
emit_16(831);
emit_16(764);
emit_16(831);
emit_16(765);
emit_16(832);
emit_16(766);
emit_16(832);
emit_16(765);
emit_16(832);
emit_16(766);
emit_16(833);
emit_16(767);
emit_16(833);
emit_16(766);
emit_16(833);
emit_16(767);
emit_16(834);
emit_16(768);
emit_16(834);
emit_16(767);
emit_16(834);
emit_16(768);
emit_16(835);
emit_16(769);
emit_16(835);
emit_16(768);
emit_16(835);
emit_16(769);
emit_16(836);
emit_16(770);
emit_16(836);
emit_16(769);
emit_16(836);
emit_16(770);
emit_16(837);
emit_16(771);
emit_16(837);
emit_16(770);
emit_16(837);
emit_16(771);
emit_16(838);
emit_16(772);
emit_16(838);
emit_16(771);
emit_16(838);
emit_16(772);
emit_16(839);
emit_16(773);
emit_16(839);
emit_16(772);
emit_16(839);
emit_16(773);
emit_16(840);
emit_16(774);
emit_16(840);
emit_16(773);
emit_16(840);
emit_16(774);
emit_16(841);
emit_16(775);
emit_16(841);
emit_16(774);
emit_16(841);
emit_16(775);
emit_16(842);
emit_16(776);
emit_16(842);
emit_16(775);
emit_16(842);
emit_16(776);
emit_16(843);
emit_16(777);
emit_16(843);
emit_16(776);
emit_16(843);
emit_16(777);
emit_16(844);
emit_16(778);
emit_16(844);
emit_16(777);
emit_16(844);
emit_16(778);
emit_16(845);
emit_16(779);
emit_16(845);
emit_16(778);
emit_16(845);
emit_16(779);
emit_16(846);
emit_16(780);
emit_16(846);
emit_16(779);
emit_16(846);
emit_16(780);
emit_16(847);
emit_16(781);
emit_16(847);
emit_16(780);
emit_16(847);
emit_16(781);
emit_16(848);
emit_16(782);
emit_16(848);
emit_16(781);
emit_16(848);
emit_16(782);
emit_16(849);
emit_16(783);
emit_16(849);
emit_16(782);
emit_16(849);
emit_16(783);
emit_16(850);
emit_16(784);
emit_16(850);
emit_16(783);
emit_16(850);
emit_16(784);
emit_16(851);
emit_16(785);
emit_16(851);
emit_16(784);
emit_16(851);
emit_16(785);
emit_16(852);
emit_16(786);
emit_16(852);
emit_16(785);
emit_16(852);
emit_16(786);
emit_16(853);
emit_16(787);
emit_16(853);
emit_16(786);
emit_16(853);
emit_16(787);
emit_16(854);
emit_16(788);
emit_16(854);
emit_16(787);
emit_16(854);
emit_16(788);
emit_16(855);
emit_16(789);
emit_16(855);
emit_16(788);
emit_16(855);
emit_16(789);
emit_16(856);
emit_16(790);
emit_16(856);
emit_16(789);
emit_16(856);
emit_16(790);
emit_16(857);
emit_16(791);
emit_16(857);
emit_16(790);
emit_16(858);
emit_16(792);
emit_16(859);
emit_16(793);
emit_16(859);
emit_16(792);
emit_16(859);
emit_16(793);
emit_16(860);
emit_16(794);
emit_16(860);
emit_16(793);
emit_16(860);
emit_16(794);
emit_16(861);
emit_16(795);
emit_16(861);
emit_16(794);
emit_16(861);
emit_16(795);
emit_16(862);
emit_16(796);
emit_16(862);
emit_16(795);
emit_16(862);
emit_16(796);
emit_16(863);
emit_16(797);
emit_16(863);
emit_16(796);
emit_16(863);
emit_16(797);
emit_16(864);
emit_16(798);
emit_16(864);
emit_16(797);
emit_16(864);
emit_16(798);
emit_16(865);
emit_16(799);
emit_16(865);
emit_16(798);
emit_16(865);
emit_16(799);
emit_16(866);
emit_16(800);
emit_16(866);
emit_16(799);
emit_16(866);
emit_16(800);
emit_16(867);
emit_16(801);
emit_16(867);
emit_16(800);
emit_16(867);
emit_16(801);
emit_16(868);
emit_16(802);
emit_16(868);
emit_16(801);
emit_16(868);
emit_16(802);
emit_16(869);
emit_16(803);
emit_16(869);
emit_16(802);
emit_16(869);
emit_16(803);
emit_16(870);
emit_16(804);
emit_16(870);
emit_16(803);
emit_16(870);
emit_16(804);
emit_16(871);
emit_16(805);
emit_16(871);
emit_16(804);
emit_16(871);
emit_16(805);
emit_16(872);
emit_16(806);
emit_16(872);
emit_16(805);
emit_16(872);
emit_16(806);
emit_16(873);
emit_16(807);
emit_16(873);
emit_16(806);
emit_16(873);
emit_16(807);
emit_16(874);
emit_16(808);
emit_16(874);
emit_16(807);
emit_16(874);
emit_16(808);
emit_16(875);
emit_16(809);
emit_16(875);
emit_16(808);
emit_16(875);
emit_16(809);
emit_16(876);
emit_16(810);
emit_16(876);
emit_16(809);
emit_16(876);
emit_16(810);
emit_16(877);
emit_16(811);
emit_16(877);
emit_16(810);
emit_16(877);
emit_16(811);
emit_16(878);
emit_16(812);
emit_16(878);
emit_16(811);
emit_16(878);
emit_16(812);
emit_16(879);
emit_16(813);
emit_16(879);
emit_16(812);
emit_16(879);
emit_16(813);
emit_16(880);
emit_16(814);
emit_16(880);
emit_16(813);
emit_16(880);
emit_16(814);
emit_16(881);
emit_16(815);
emit_16(881);
emit_16(814);
emit_16(881);
emit_16(815);
emit_16(882);
emit_16(816);
emit_16(882);
emit_16(815);
emit_16(882);
emit_16(816);
emit_16(883);
emit_16(817);
emit_16(883);
emit_16(816);
emit_16(883);
emit_16(817);
emit_16(884);
emit_16(818);
emit_16(884);
emit_16(817);
emit_16(884);
emit_16(818);
emit_16(885);
emit_16(819);
emit_16(885);
emit_16(818);
emit_16(885);
emit_16(819);
emit_16(886);
emit_16(820);
emit_16(886);
emit_16(819);
emit_16(886);
emit_16(820);
emit_16(887);
emit_16(821);
emit_16(887);
emit_16(820);
emit_16(887);
emit_16(821);
emit_16(888);
emit_16(822);
emit_16(888);
emit_16(821);
emit_16(888);
emit_16(822);
emit_16(889);
emit_16(823);
emit_16(889);
emit_16(822);
emit_16(889);
emit_16(823);
emit_16(890);
emit_16(824);
emit_16(890);
emit_16(823);
emit_16(890);
emit_16(824);
emit_16(891);
emit_16(825);
emit_16(891);
emit_16(824);
emit_16(891);
emit_16(825);
emit_16(892);
emit_16(826);
emit_16(892);
emit_16(825);
emit_16(892);
emit_16(826);
emit_16(893);
emit_16(827);
emit_16(893);
emit_16(826);
emit_16(893);
emit_16(827);
emit_16(894);
emit_16(828);
emit_16(894);
emit_16(827);
emit_16(894);
emit_16(828);
emit_16(895);
emit_16(829);
emit_16(895);
emit_16(828);
emit_16(895);
emit_16(829);
emit_16(896);
emit_16(830);
emit_16(896);
emit_16(829);
emit_16(896);
emit_16(830);
emit_16(897);
emit_16(831);
emit_16(897);
emit_16(830);
emit_16(897);
emit_16(831);
emit_16(898);
emit_16(832);
emit_16(898);
emit_16(831);
emit_16(898);
emit_16(832);
emit_16(899);
emit_16(833);
emit_16(899);
emit_16(832);
emit_16(899);
emit_16(833);
emit_16(900);
emit_16(834);
emit_16(900);
emit_16(833);
emit_16(900);
emit_16(834);
emit_16(901);
emit_16(835);
emit_16(901);
emit_16(834);
emit_16(901);
emit_16(835);
emit_16(902);
emit_16(836);
emit_16(902);
emit_16(835);
emit_16(902);
emit_16(836);
emit_16(903);
emit_16(837);
emit_16(903);
emit_16(836);
emit_16(903);
emit_16(837);
emit_16(904);
emit_16(838);
emit_16(904);
emit_16(837);
emit_16(904);
emit_16(838);
emit_16(905);
emit_16(839);
emit_16(905);
emit_16(838);
emit_16(905);
emit_16(839);
emit_16(906);
emit_16(840);
emit_16(906);
emit_16(839);
emit_16(906);
emit_16(840);
emit_16(907);
emit_16(841);
emit_16(907);
emit_16(840);
emit_16(907);
emit_16(841);
emit_16(908);
emit_16(842);
emit_16(908);
emit_16(841);
emit_16(908);
emit_16(842);
emit_16(909);
emit_16(843);
emit_16(909);
emit_16(842);
emit_16(909);
emit_16(843);
emit_16(910);
emit_16(844);
emit_16(910);
emit_16(843);
emit_16(910);
emit_16(844);
emit_16(911);
emit_16(845);
emit_16(911);
emit_16(844);
emit_16(911);
emit_16(845);
emit_16(912);
emit_16(846);
emit_16(912);
emit_16(845);
emit_16(912);
emit_16(846);
emit_16(913);
emit_16(847);
emit_16(913);
emit_16(846);
emit_16(913);
emit_16(847);
emit_16(914);
emit_16(848);
emit_16(914);
emit_16(847);
emit_16(914);
emit_16(848);
emit_16(915);
emit_16(849);
emit_16(915);
emit_16(848);
emit_16(915);
emit_16(849);
emit_16(916);
emit_16(850);
emit_16(916);
emit_16(849);
emit_16(916);
emit_16(850);
emit_16(917);
emit_16(851);
emit_16(917);
emit_16(850);
emit_16(917);
emit_16(851);
emit_16(918);
emit_16(852);
emit_16(918);
emit_16(851);
emit_16(918);
emit_16(852);
emit_16(919);
emit_16(853);
emit_16(919);
emit_16(852);
emit_16(919);
emit_16(853);
emit_16(920);
emit_16(854);
emit_16(920);
emit_16(853);
emit_16(920);
emit_16(854);
emit_16(921);
emit_16(855);
emit_16(921);
emit_16(854);
emit_16(921);
emit_16(855);
emit_16(922);
emit_16(856);
emit_16(922);
emit_16(855);
emit_16(922);
emit_16(856);
emit_16(923);
emit_16(857);
emit_16(923);
emit_16(856);
emit_16(924);
emit_16(858);
emit_16(925);
emit_16(859);
emit_16(925);
emit_16(858);
emit_16(925);
emit_16(859);
emit_16(926);
emit_16(860);
emit_16(926);
emit_16(859);
emit_16(926);
emit_16(860);
emit_16(927);
emit_16(861);
emit_16(927);
emit_16(860);
emit_16(927);
emit_16(861);
emit_16(928);
emit_16(862);
emit_16(928);
emit_16(861);
emit_16(928);
emit_16(862);
emit_16(929);
emit_16(863);
emit_16(929);
emit_16(862);
emit_16(929);
emit_16(863);
emit_16(930);
emit_16(864);
emit_16(930);
emit_16(863);
emit_16(930);
emit_16(864);
emit_16(931);
emit_16(865);
emit_16(931);
emit_16(864);
emit_16(931);
emit_16(865);
emit_16(932);
emit_16(866);
emit_16(932);
emit_16(865);
emit_16(932);
emit_16(866);
emit_16(933);
emit_16(867);
emit_16(933);
emit_16(866);
emit_16(933);
emit_16(867);
emit_16(934);
emit_16(868);
emit_16(934);
emit_16(867);
emit_16(934);
emit_16(868);
emit_16(935);
emit_16(869);
emit_16(935);
emit_16(868);
emit_16(935);
emit_16(869);
emit_16(936);
emit_16(870);
emit_16(936);
emit_16(869);
emit_16(936);
emit_16(870);
emit_16(937);
emit_16(871);
emit_16(937);
emit_16(870);
emit_16(937);
emit_16(871);
emit_16(938);
emit_16(872);
emit_16(938);
emit_16(871);
emit_16(938);
emit_16(872);
emit_16(939);
emit_16(873);
emit_16(939);
emit_16(872);
emit_16(939);
emit_16(873);
emit_16(940);
emit_16(874);
emit_16(940);
emit_16(873);
emit_16(940);
emit_16(874);
emit_16(941);
emit_16(875);
emit_16(941);
emit_16(874);
emit_16(941);
emit_16(875);
emit_16(942);
emit_16(876);
emit_16(942);
emit_16(875);
emit_16(942);
emit_16(876);
emit_16(943);
emit_16(877);
emit_16(943);
emit_16(876);
emit_16(943);
emit_16(877);
emit_16(944);
emit_16(878);
emit_16(944);
emit_16(877);
emit_16(944);
emit_16(878);
emit_16(945);
emit_16(879);
emit_16(945);
emit_16(878);
emit_16(945);
emit_16(879);
emit_16(946);
emit_16(880);
emit_16(946);
emit_16(879);
emit_16(946);
emit_16(880);
emit_16(947);
emit_16(881);
emit_16(947);
emit_16(880);
emit_16(947);
emit_16(881);
emit_16(948);
emit_16(882);
emit_16(948);
emit_16(881);
emit_16(948);
emit_16(882);
emit_16(949);
emit_16(883);
emit_16(949);
emit_16(882);
emit_16(949);
emit_16(883);
emit_16(950);
emit_16(884);
emit_16(950);
emit_16(883);
emit_16(950);
emit_16(884);
emit_16(951);
emit_16(885);
emit_16(951);
emit_16(884);
emit_16(951);
emit_16(885);
emit_16(952);
emit_16(886);
emit_16(952);
emit_16(885);
emit_16(952);
emit_16(886);
emit_16(953);
emit_16(887);
emit_16(953);
emit_16(886);
emit_16(953);
emit_16(887);
emit_16(954);
emit_16(888);
emit_16(954);
emit_16(887);
emit_16(954);
emit_16(888);
emit_16(955);
emit_16(889);
emit_16(955);
emit_16(888);
emit_16(955);
emit_16(889);
emit_16(956);
emit_16(890);
emit_16(956);
emit_16(889);
emit_16(956);
emit_16(890);
emit_16(957);
emit_16(891);
emit_16(957);
emit_16(890);
emit_16(957);
emit_16(891);
emit_16(958);
emit_16(892);
emit_16(958);
emit_16(891);
emit_16(958);
emit_16(892);
emit_16(959);
emit_16(893);
emit_16(959);
emit_16(892);
emit_16(959);
emit_16(893);
emit_16(960);
emit_16(894);
emit_16(960);
emit_16(893);
emit_16(960);
emit_16(894);
emit_16(961);
emit_16(895);
emit_16(961);
emit_16(894);
emit_16(961);
emit_16(895);
emit_16(962);
emit_16(896);
emit_16(962);
emit_16(895);
emit_16(962);
emit_16(896);
emit_16(963);
emit_16(897);
emit_16(963);
emit_16(896);
emit_16(963);
emit_16(897);
emit_16(964);
emit_16(898);
emit_16(964);
emit_16(897);
emit_16(964);
emit_16(898);
emit_16(965);
emit_16(899);
emit_16(965);
emit_16(898);
emit_16(965);
emit_16(899);
emit_16(966);
emit_16(900);
emit_16(966);
emit_16(899);
emit_16(966);
emit_16(900);
emit_16(967);
emit_16(901);
emit_16(967);
emit_16(900);
emit_16(967);
emit_16(901);
emit_16(968);
emit_16(902);
emit_16(968);
emit_16(901);
emit_16(968);
emit_16(902);
emit_16(969);
emit_16(903);
emit_16(969);
emit_16(902);
emit_16(969);
emit_16(903);
emit_16(970);
emit_16(904);
emit_16(970);
emit_16(903);
emit_16(970);
emit_16(904);
emit_16(971);
emit_16(905);
emit_16(971);
emit_16(904);
emit_16(971);
emit_16(905);
emit_16(972);
emit_16(906);
emit_16(972);
emit_16(905);
emit_16(972);
emit_16(906);
emit_16(973);
emit_16(907);
emit_16(973);
emit_16(906);
emit_16(973);
emit_16(907);
emit_16(974);
emit_16(908);
emit_16(974);
emit_16(907);
emit_16(974);
emit_16(908);
emit_16(975);
emit_16(909);
emit_16(975);
emit_16(908);
emit_16(975);
emit_16(909);
emit_16(976);
emit_16(910);
emit_16(976);
emit_16(909);
emit_16(976);
emit_16(910);
emit_16(977);
emit_16(911);
emit_16(977);
emit_16(910);
emit_16(977);
emit_16(911);
emit_16(978);
emit_16(912);
emit_16(978);
emit_16(911);
emit_16(978);
emit_16(912);
emit_16(979);
emit_16(913);
emit_16(979);
emit_16(912);
emit_16(979);
emit_16(913);
emit_16(980);
emit_16(914);
emit_16(980);
emit_16(913);
emit_16(980);
emit_16(914);
emit_16(981);
emit_16(915);
emit_16(981);
emit_16(914);
emit_16(981);
emit_16(915);
emit_16(982);
emit_16(916);
emit_16(982);
emit_16(915);
emit_16(982);
emit_16(916);
emit_16(983);
emit_16(917);
emit_16(983);
emit_16(916);
emit_16(983);
emit_16(917);
emit_16(984);
emit_16(918);
emit_16(984);
emit_16(917);
emit_16(984);
emit_16(918);
emit_16(985);
emit_16(919);
emit_16(985);
emit_16(918);
emit_16(985);
emit_16(919);
emit_16(986);
emit_16(920);
emit_16(986);
emit_16(919);
emit_16(986);
emit_16(920);
emit_16(987);
emit_16(921);
emit_16(987);
emit_16(920);
emit_16(987);
emit_16(921);
emit_16(988);
emit_16(922);
emit_16(988);
emit_16(921);
emit_16(988);
emit_16(922);
emit_16(989);
emit_16(923);
emit_16(989);
emit_16(922);
emit_16(990);
emit_16(924);
emit_16(991);
emit_16(925);
emit_16(991);
emit_16(924);
emit_16(991);
emit_16(925);
emit_16(992);
emit_16(926);
emit_16(992);
emit_16(925);
emit_16(992);
emit_16(926);
emit_16(993);
emit_16(927);
emit_16(993);
emit_16(926);
emit_16(993);
emit_16(927);
emit_16(994);
emit_16(928);
emit_16(994);
emit_16(927);
emit_16(994);
emit_16(928);
emit_16(995);
emit_16(929);
emit_16(995);
emit_16(928);
emit_16(995);
emit_16(929);
emit_16(996);
emit_16(930);
emit_16(996);
emit_16(929);
emit_16(996);
emit_16(930);
emit_16(997);
emit_16(931);
emit_16(997);
emit_16(930);
emit_16(997);
emit_16(931);
emit_16(998);
emit_16(932);
emit_16(998);
emit_16(931);
emit_16(998);
emit_16(932);
emit_16(999);
emit_16(933);
emit_16(999);
emit_16(932);
emit_16(999);
emit_16(933);
emit_16(1000);
emit_16(934);
emit_16(1000);
emit_16(933);
emit_16(1000);
emit_16(934);
emit_16(1001);
emit_16(935);
emit_16(1001);
emit_16(934);
emit_16(1001);
emit_16(935);
emit_16(1002);
emit_16(936);
emit_16(1002);
emit_16(935);
emit_16(1002);
emit_16(936);
emit_16(1003);
emit_16(937);
emit_16(1003);
emit_16(936);
emit_16(1003);
emit_16(937);
emit_16(1004);
emit_16(938);
emit_16(1004);
emit_16(937);
emit_16(1004);
emit_16(938);
emit_16(1005);
emit_16(939);
emit_16(1005);
emit_16(938);
emit_16(1005);
emit_16(939);
emit_16(1006);
emit_16(940);
emit_16(1006);
emit_16(939);
emit_16(1006);
emit_16(940);
emit_16(1007);
emit_16(941);
emit_16(1007);
emit_16(940);
emit_16(1007);
emit_16(941);
emit_16(1008);
emit_16(942);
emit_16(1008);
emit_16(941);
emit_16(1008);
emit_16(942);
emit_16(1009);
emit_16(943);
emit_16(1009);
emit_16(942);
emit_16(1009);
emit_16(943);
emit_16(1010);
emit_16(944);
emit_16(1010);
emit_16(943);
emit_16(1010);
emit_16(944);
emit_16(1011);
emit_16(945);
emit_16(1011);
emit_16(944);
emit_16(1011);
emit_16(945);
emit_16(1012);
emit_16(946);
emit_16(1012);
emit_16(945);
emit_16(1012);
emit_16(946);
emit_16(1013);
emit_16(947);
emit_16(1013);
emit_16(946);
emit_16(1013);
emit_16(947);
emit_16(1014);
emit_16(948);
emit_16(1014);
emit_16(947);
emit_16(1014);
emit_16(948);
emit_16(1015);
emit_16(949);
emit_16(1015);
emit_16(948);
emit_16(1015);
emit_16(949);
emit_16(1016);
emit_16(950);
emit_16(1016);
emit_16(949);
emit_16(1016);
emit_16(950);
emit_16(1017);
emit_16(951);
emit_16(1017);
emit_16(950);
emit_16(1017);
emit_16(951);
emit_16(1018);
emit_16(952);
emit_16(1018);
emit_16(951);
emit_16(1018);
emit_16(952);
emit_16(1019);
emit_16(953);
emit_16(1019);
emit_16(952);
emit_16(1019);
emit_16(953);
emit_16(1020);
emit_16(954);
emit_16(1020);
emit_16(953);
emit_16(1020);
emit_16(954);
emit_16(1021);
emit_16(955);
emit_16(1021);
emit_16(954);
emit_16(1021);
emit_16(955);
emit_16(1022);
emit_16(956);
emit_16(1022);
emit_16(955);
emit_16(1022);
emit_16(956);
emit_16(1023);
emit_16(957);
emit_16(1023);
emit_16(956);
emit_16(1023);
emit_16(957);
emit_16(1024);
emit_16(958);
emit_16(1024);
emit_16(957);
emit_16(1024);
emit_16(958);
emit_16(1025);
emit_16(959);
emit_16(1025);
emit_16(958);
emit_16(1025);
emit_16(959);
emit_16(1026);
emit_16(960);
emit_16(1026);
emit_16(959);
emit_16(1026);
emit_16(960);
emit_16(1027);
emit_16(961);
emit_16(1027);
emit_16(960);
emit_16(1027);
emit_16(961);
emit_16(1028);
emit_16(962);
emit_16(1028);
emit_16(961);
emit_16(1028);
emit_16(962);
emit_16(1029);
emit_16(963);
emit_16(1029);
emit_16(962);
emit_16(1029);
emit_16(963);
emit_16(1030);
emit_16(964);
emit_16(1030);
emit_16(963);
emit_16(1030);
emit_16(964);
emit_16(1031);
emit_16(965);
emit_16(1031);
emit_16(964);
emit_16(1031);
emit_16(965);
emit_16(1032);
emit_16(966);
emit_16(1032);
emit_16(965);
emit_16(1032);
emit_16(966);
emit_16(1033);
emit_16(967);
emit_16(1033);
emit_16(966);
emit_16(1033);
emit_16(967);
emit_16(1034);
emit_16(968);
emit_16(1034);
emit_16(967);
emit_16(1034);
emit_16(968);
emit_16(1035);
emit_16(969);
emit_16(1035);
emit_16(968);
emit_16(1035);
emit_16(969);
emit_16(1036);
emit_16(970);
emit_16(1036);
emit_16(969);
emit_16(1036);
emit_16(970);
emit_16(1037);
emit_16(971);
emit_16(1037);
emit_16(970);
emit_16(1037);
emit_16(971);
emit_16(1038);
emit_16(972);
emit_16(1038);
emit_16(971);
emit_16(1038);
emit_16(972);
emit_16(1039);
emit_16(973);
emit_16(1039);
emit_16(972);
emit_16(1039);
emit_16(973);
emit_16(1040);
emit_16(974);
emit_16(1040);
emit_16(973);
emit_16(1040);
emit_16(974);
emit_16(1041);
emit_16(975);
emit_16(1041);
emit_16(974);
emit_16(1041);
emit_16(975);
emit_16(1042);
emit_16(976);
emit_16(1042);
emit_16(975);
emit_16(1042);
emit_16(976);
emit_16(1043);
emit_16(977);
emit_16(1043);
emit_16(976);
emit_16(1043);
emit_16(977);
emit_16(1044);
emit_16(978);
emit_16(1044);
emit_16(977);
emit_16(1044);
emit_16(978);
emit_16(1045);
emit_16(979);
emit_16(1045);
emit_16(978);
emit_16(1045);
emit_16(979);
emit_16(1046);
emit_16(980);
emit_16(1046);
emit_16(979);
emit_16(1046);
emit_16(980);
emit_16(1047);
emit_16(981);
emit_16(1047);
emit_16(980);
emit_16(1047);
emit_16(981);
emit_16(1048);
emit_16(982);
emit_16(1048);
emit_16(981);
emit_16(1048);
emit_16(982);
emit_16(1049);
emit_16(983);
emit_16(1049);
emit_16(982);
emit_16(1049);
emit_16(983);
emit_16(1050);
emit_16(984);
emit_16(1050);
emit_16(983);
emit_16(1050);
emit_16(984);
emit_16(1051);
emit_16(985);
emit_16(1051);
emit_16(984);
emit_16(1051);
emit_16(985);
emit_16(1052);
emit_16(986);
emit_16(1052);
emit_16(985);
emit_16(1052);
emit_16(986);
emit_16(1053);
emit_16(987);
emit_16(1053);
emit_16(986);
emit_16(1053);
emit_16(987);
emit_16(1054);
emit_16(988);
emit_16(1054);
emit_16(987);
emit_16(1054);
emit_16(988);
emit_16(1055);
emit_16(989);
emit_16(1055);
emit_16(988);
emit_16(1056);
emit_16(990);
emit_16(1057);
emit_16(991);
emit_16(1057);
emit_16(990);
emit_16(1057);
emit_16(991);
emit_16(1058);
emit_16(992);
emit_16(1058);
emit_16(991);
emit_16(1058);
emit_16(992);
emit_16(1059);
emit_16(993);
emit_16(1059);
emit_16(992);
emit_16(1059);
emit_16(993);
emit_16(1060);
emit_16(994);
emit_16(1060);
emit_16(993);
emit_16(1060);
emit_16(994);
emit_16(1061);
emit_16(995);
emit_16(1061);
emit_16(994);
emit_16(1061);
emit_16(995);
emit_16(1062);
emit_16(996);
emit_16(1062);
emit_16(995);
emit_16(1062);
emit_16(996);
emit_16(1063);
emit_16(997);
emit_16(1063);
emit_16(996);
emit_16(1063);
emit_16(997);
emit_16(1064);
emit_16(998);
emit_16(1064);
emit_16(997);
emit_16(1064);
emit_16(998);
emit_16(1065);
emit_16(999);
emit_16(1065);
emit_16(998);
emit_16(1065);
emit_16(999);
emit_16(1066);
emit_16(1000);
emit_16(1066);
emit_16(999);
emit_16(1066);
emit_16(1000);
emit_16(1067);
emit_16(1001);
emit_16(1067);
emit_16(1000);
emit_16(1067);
emit_16(1001);
emit_16(1068);
emit_16(1002);
emit_16(1068);
emit_16(1001);
emit_16(1068);
emit_16(1002);
emit_16(1069);
emit_16(1003);
emit_16(1069);
emit_16(1002);
emit_16(1069);
emit_16(1003);
emit_16(1070);
emit_16(1004);
emit_16(1070);
emit_16(1003);
emit_16(1070);
emit_16(1004);
emit_16(1071);
emit_16(1005);
emit_16(1071);
emit_16(1004);
emit_16(1071);
emit_16(1005);
emit_16(1072);
emit_16(1006);
emit_16(1072);
emit_16(1005);
emit_16(1072);
emit_16(1006);
emit_16(1073);
emit_16(1007);
emit_16(1073);
emit_16(1006);
emit_16(1073);
emit_16(1007);
emit_16(1074);
emit_16(1008);
emit_16(1074);
emit_16(1007);
emit_16(1074);
emit_16(1008);
emit_16(1075);
emit_16(1009);
emit_16(1075);
emit_16(1008);
emit_16(1075);
emit_16(1009);
emit_16(1076);
emit_16(1010);
emit_16(1076);
emit_16(1009);
emit_16(1076);
emit_16(1010);
emit_16(1077);
emit_16(1011);
emit_16(1077);
emit_16(1010);
emit_16(1077);
emit_16(1011);
emit_16(1078);
emit_16(1012);
emit_16(1078);
emit_16(1011);
emit_16(1078);
emit_16(1012);
emit_16(1079);
emit_16(1013);
emit_16(1079);
emit_16(1012);
emit_16(1079);
emit_16(1013);
emit_16(1080);
emit_16(1014);
emit_16(1080);
emit_16(1013);
emit_16(1080);
emit_16(1014);
emit_16(1081);
emit_16(1015);
emit_16(1081);
emit_16(1014);
emit_16(1081);
emit_16(1015);
emit_16(1082);
emit_16(1016);
emit_16(1082);
emit_16(1015);
emit_16(1082);
emit_16(1016);
emit_16(1083);
emit_16(1017);
emit_16(1083);
emit_16(1016);
emit_16(1083);
emit_16(1017);
emit_16(1084);
emit_16(1018);
emit_16(1084);
emit_16(1017);
emit_16(1084);
emit_16(1018);
emit_16(1085);
emit_16(1019);
emit_16(1085);
emit_16(1018);
emit_16(1085);
emit_16(1019);
emit_16(1086);
emit_16(1020);
emit_16(1086);
emit_16(1019);
emit_16(1086);
emit_16(1020);
emit_16(1087);
emit_16(1021);
emit_16(1087);
emit_16(1020);
emit_16(1087);
emit_16(1021);
emit_16(1088);
emit_16(1022);
emit_16(1088);
emit_16(1021);
emit_16(1088);
emit_16(1022);
emit_16(1089);
emit_16(1023);
emit_16(1089);
emit_16(1022);
emit_16(1089);
emit_16(1023);
emit_16(1090);
emit_16(1024);
emit_16(1090);
emit_16(1023);
emit_16(1090);
emit_16(1024);
emit_16(1091);
emit_16(1025);
emit_16(1091);
emit_16(1024);
emit_16(1091);
emit_16(1025);
emit_16(1092);
emit_16(1026);
emit_16(1092);
emit_16(1025);
emit_16(1092);
emit_16(1026);
emit_16(1093);
emit_16(1027);
emit_16(1093);
emit_16(1026);
emit_16(1093);
emit_16(1027);
emit_16(1094);
emit_16(1028);
emit_16(1094);
emit_16(1027);
emit_16(1094);
emit_16(1028);
emit_16(1095);
emit_16(1029);
emit_16(1095);
emit_16(1028);
emit_16(1095);
emit_16(1029);
emit_16(1096);
emit_16(1030);
emit_16(1096);
emit_16(1029);
emit_16(1096);
emit_16(1030);
emit_16(1097);
emit_16(1031);
emit_16(1097);
emit_16(1030);
emit_16(1097);
emit_16(1031);
emit_16(1098);
emit_16(1032);
emit_16(1098);
emit_16(1031);
emit_16(1098);
emit_16(1032);
emit_16(1099);
emit_16(1033);
emit_16(1099);
emit_16(1032);
emit_16(1099);
emit_16(1033);
emit_16(1100);
emit_16(1034);
emit_16(1100);
emit_16(1033);
emit_16(1100);
emit_16(1034);
emit_16(1101);
emit_16(1035);
emit_16(1101);
emit_16(1034);
emit_16(1101);
emit_16(1035);
emit_16(1102);
emit_16(1036);
emit_16(1102);
emit_16(1035);
emit_16(1102);
emit_16(1036);
emit_16(1103);
emit_16(1037);
emit_16(1103);
emit_16(1036);
emit_16(1103);
emit_16(1037);
emit_16(1104);
emit_16(1038);
emit_16(1104);
emit_16(1037);
emit_16(1104);
emit_16(1038);
emit_16(1105);
emit_16(1039);
emit_16(1105);
emit_16(1038);
emit_16(1105);
emit_16(1039);
emit_16(1106);
emit_16(1040);
emit_16(1106);
emit_16(1039);
emit_16(1106);
emit_16(1040);
emit_16(1107);
emit_16(1041);
emit_16(1107);
emit_16(1040);
emit_16(1107);
emit_16(1041);
emit_16(1108);
emit_16(1042);
emit_16(1108);
emit_16(1041);
emit_16(1108);
emit_16(1042);
emit_16(1109);
emit_16(1043);
emit_16(1109);
emit_16(1042);
emit_16(1109);
emit_16(1043);
emit_16(1110);
emit_16(1044);
emit_16(1110);
emit_16(1043);
emit_16(1110);
emit_16(1044);
emit_16(1111);
emit_16(1045);
emit_16(1111);
emit_16(1044);
emit_16(1111);
emit_16(1045);
emit_16(1112);
emit_16(1046);
emit_16(1112);
emit_16(1045);
emit_16(1112);
emit_16(1046);
emit_16(1113);
emit_16(1047);
emit_16(1113);
emit_16(1046);
emit_16(1113);
emit_16(1047);
emit_16(1114);
emit_16(1048);
emit_16(1114);
emit_16(1047);
emit_16(1114);
emit_16(1048);
emit_16(1115);
emit_16(1049);
emit_16(1115);
emit_16(1048);
emit_16(1115);
emit_16(1049);
emit_16(1116);
emit_16(1050);
emit_16(1116);
emit_16(1049);
emit_16(1116);
emit_16(1050);
emit_16(1117);
emit_16(1051);
emit_16(1117);
emit_16(1050);
emit_16(1117);
emit_16(1051);
emit_16(1118);
emit_16(1052);
emit_16(1118);
emit_16(1051);
emit_16(1118);
emit_16(1052);
emit_16(1119);
emit_16(1053);
emit_16(1119);
emit_16(1052);
emit_16(1119);
emit_16(1053);
emit_16(1120);
emit_16(1054);
emit_16(1120);
emit_16(1053);
emit_16(1120);
emit_16(1054);
emit_16(1121);
emit_16(1055);
emit_16(1121);
emit_16(1054);
emit_16(1122);
emit_16(1056);
emit_16(1123);
emit_16(1057);
emit_16(1123);
emit_16(1056);
emit_16(1123);
emit_16(1057);
emit_16(1124);
emit_16(1058);
emit_16(1124);
emit_16(1057);
emit_16(1124);
emit_16(1058);
emit_16(1125);
emit_16(1059);
emit_16(1125);
emit_16(1058);
emit_16(1125);
emit_16(1059);
emit_16(1126);
emit_16(1060);
emit_16(1126);
emit_16(1059);
emit_16(1126);
emit_16(1060);
emit_16(1127);
emit_16(1061);
emit_16(1127);
emit_16(1060);
emit_16(1127);
emit_16(1061);
emit_16(1128);
emit_16(1062);
emit_16(1128);
emit_16(1061);
emit_16(1128);
emit_16(1062);
emit_16(1129);
emit_16(1063);
emit_16(1129);
emit_16(1062);
emit_16(1129);
emit_16(1063);
emit_16(1130);
emit_16(1064);
emit_16(1130);
emit_16(1063);
emit_16(1130);
emit_16(1064);
emit_16(1131);
emit_16(1065);
emit_16(1131);
emit_16(1064);
emit_16(1131);
emit_16(1065);
emit_16(1132);
emit_16(1066);
emit_16(1132);
emit_16(1065);
emit_16(1132);
emit_16(1066);
emit_16(1133);
emit_16(1067);
emit_16(1133);
emit_16(1066);
emit_16(1133);
emit_16(1067);
emit_16(1134);
emit_16(1068);
emit_16(1134);
emit_16(1067);
emit_16(1134);
emit_16(1068);
emit_16(1135);
emit_16(1069);
emit_16(1135);
emit_16(1068);
emit_16(1135);
emit_16(1069);
emit_16(1136);
emit_16(1070);
emit_16(1136);
emit_16(1069);
emit_16(1136);
emit_16(1070);
emit_16(1137);
emit_16(1071);
emit_16(1137);
emit_16(1070);
emit_16(1137);
emit_16(1071);
emit_16(1138);
emit_16(1072);
emit_16(1138);
emit_16(1071);
emit_16(1138);
emit_16(1072);
emit_16(1139);
emit_16(1073);
emit_16(1139);
emit_16(1072);
emit_16(1139);
emit_16(1073);
emit_16(1140);
emit_16(1074);
emit_16(1140);
emit_16(1073);
emit_16(1140);
emit_16(1074);
emit_16(1141);
emit_16(1075);
emit_16(1141);
emit_16(1074);
emit_16(1141);
emit_16(1075);
emit_16(1142);
emit_16(1076);
emit_16(1142);
emit_16(1075);
emit_16(1142);
emit_16(1076);
emit_16(1143);
emit_16(1077);
emit_16(1143);
emit_16(1076);
emit_16(1143);
emit_16(1077);
emit_16(1144);
emit_16(1078);
emit_16(1144);
emit_16(1077);
emit_16(1144);
emit_16(1078);
emit_16(1145);
emit_16(1079);
emit_16(1145);
emit_16(1078);
emit_16(1145);
emit_16(1079);
emit_16(1146);
emit_16(1080);
emit_16(1146);
emit_16(1079);
emit_16(1146);
emit_16(1080);
emit_16(1147);
emit_16(1081);
emit_16(1147);
emit_16(1080);
emit_16(1147);
emit_16(1081);
emit_16(1148);
emit_16(1082);
emit_16(1148);
emit_16(1081);
emit_16(1148);
emit_16(1082);
emit_16(1149);
emit_16(1083);
emit_16(1149);
emit_16(1082);
emit_16(1149);
emit_16(1083);
emit_16(1150);
emit_16(1084);
emit_16(1150);
emit_16(1083);
emit_16(1150);
emit_16(1084);
emit_16(1151);
emit_16(1085);
emit_16(1151);
emit_16(1084);
emit_16(1151);
emit_16(1085);
emit_16(1152);
emit_16(1086);
emit_16(1152);
emit_16(1085);
emit_16(1152);
emit_16(1086);
emit_16(1153);
emit_16(1087);
emit_16(1153);
emit_16(1086);
emit_16(1153);
emit_16(1087);
emit_16(1154);
emit_16(1088);
emit_16(1154);
emit_16(1087);
emit_16(1154);
emit_16(1088);
emit_16(1155);
emit_16(1089);
emit_16(1155);
emit_16(1088);
emit_16(1155);
emit_16(1089);
emit_16(1156);
emit_16(1090);
emit_16(1156);
emit_16(1089);
emit_16(1156);
emit_16(1090);
emit_16(1157);
emit_16(1091);
emit_16(1157);
emit_16(1090);
emit_16(1157);
emit_16(1091);
emit_16(1158);
emit_16(1092);
emit_16(1158);
emit_16(1091);
emit_16(1158);
emit_16(1092);
emit_16(1159);
emit_16(1093);
emit_16(1159);
emit_16(1092);
emit_16(1159);
emit_16(1093);
emit_16(1160);
emit_16(1094);
emit_16(1160);
emit_16(1093);
emit_16(1160);
emit_16(1094);
emit_16(1161);
emit_16(1095);
emit_16(1161);
emit_16(1094);
emit_16(1161);
emit_16(1095);
emit_16(1162);
emit_16(1096);
emit_16(1162);
emit_16(1095);
emit_16(1162);
emit_16(1096);
emit_16(1163);
emit_16(1097);
emit_16(1163);
emit_16(1096);
emit_16(1163);
emit_16(1097);
emit_16(1164);
emit_16(1098);
emit_16(1164);
emit_16(1097);
emit_16(1164);
emit_16(1098);
emit_16(1165);
emit_16(1099);
emit_16(1165);
emit_16(1098);
emit_16(1165);
emit_16(1099);
emit_16(1166);
emit_16(1100);
emit_16(1166);
emit_16(1099);
emit_16(1166);
emit_16(1100);
emit_16(1167);
emit_16(1101);
emit_16(1167);
emit_16(1100);
emit_16(1167);
emit_16(1101);
emit_16(1168);
emit_16(1102);
emit_16(1168);
emit_16(1101);
emit_16(1168);
emit_16(1102);
emit_16(1169);
emit_16(1103);
emit_16(1169);
emit_16(1102);
emit_16(1169);
emit_16(1103);
emit_16(1170);
emit_16(1104);
emit_16(1170);
emit_16(1103);
emit_16(1170);
emit_16(1104);
emit_16(1171);
emit_16(1105);
emit_16(1171);
emit_16(1104);
emit_16(1171);
emit_16(1105);
emit_16(1172);
emit_16(1106);
emit_16(1172);
emit_16(1105);
emit_16(1172);
emit_16(1106);
emit_16(1173);
emit_16(1107);
emit_16(1173);
emit_16(1106);
emit_16(1173);
emit_16(1107);
emit_16(1174);
emit_16(1108);
emit_16(1174);
emit_16(1107);
emit_16(1174);
emit_16(1108);
emit_16(1175);
emit_16(1109);
emit_16(1175);
emit_16(1108);
emit_16(1175);
emit_16(1109);
emit_16(1176);
emit_16(1110);
emit_16(1176);
emit_16(1109);
emit_16(1176);
emit_16(1110);
emit_16(1177);
emit_16(1111);
emit_16(1177);
emit_16(1110);
emit_16(1177);
emit_16(1111);
emit_16(1178);
emit_16(1112);
emit_16(1178);
emit_16(1111);
emit_16(1178);
emit_16(1112);
emit_16(1179);
emit_16(1113);
emit_16(1179);
emit_16(1112);
emit_16(1179);
emit_16(1113);
emit_16(1180);
emit_16(1114);
emit_16(1180);
emit_16(1113);
emit_16(1180);
emit_16(1114);
emit_16(1181);
emit_16(1115);
emit_16(1181);
emit_16(1114);
emit_16(1181);
emit_16(1115);
emit_16(1182);
emit_16(1116);
emit_16(1182);
emit_16(1115);
emit_16(1182);
emit_16(1116);
emit_16(1183);
emit_16(1117);
emit_16(1183);
emit_16(1116);
emit_16(1183);
emit_16(1117);
emit_16(1184);
emit_16(1118);
emit_16(1184);
emit_16(1117);
emit_16(1184);
emit_16(1118);
emit_16(1185);
emit_16(1119);
emit_16(1185);
emit_16(1118);
emit_16(1185);
emit_16(1119);
emit_16(1186);
emit_16(1120);
emit_16(1186);
emit_16(1119);
emit_16(1186);
emit_16(1120);
emit_16(1187);
emit_16(1121);
emit_16(1187);
emit_16(1120);
emit_16(1188);
emit_16(1122);
emit_16(1189);
emit_16(1123);
emit_16(1189);
emit_16(1122);
emit_16(1189);
emit_16(1123);
emit_16(1190);
emit_16(1124);
emit_16(1190);
emit_16(1123);
emit_16(1190);
emit_16(1124);
emit_16(1191);
emit_16(1125);
emit_16(1191);
emit_16(1124);
emit_16(1191);
emit_16(1125);
emit_16(1192);
emit_16(1126);
emit_16(1192);
emit_16(1125);
emit_16(1192);
emit_16(1126);
emit_16(1193);
emit_16(1127);
emit_16(1193);
emit_16(1126);
emit_16(1193);
emit_16(1127);
emit_16(1194);
emit_16(1128);
emit_16(1194);
emit_16(1127);
emit_16(1194);
emit_16(1128);
emit_16(1195);
emit_16(1129);
emit_16(1195);
emit_16(1128);
emit_16(1195);
emit_16(1129);
emit_16(1196);
emit_16(1130);
emit_16(1196);
emit_16(1129);
emit_16(1196);
emit_16(1130);
emit_16(1197);
emit_16(1131);
emit_16(1197);
emit_16(1130);
emit_16(1197);
emit_16(1131);
emit_16(1198);
emit_16(1132);
emit_16(1198);
emit_16(1131);
emit_16(1198);
emit_16(1132);
emit_16(1199);
emit_16(1133);
emit_16(1199);
emit_16(1132);
emit_16(1199);
emit_16(1133);
emit_16(1200);
emit_16(1134);
emit_16(1200);
emit_16(1133);
emit_16(1200);
emit_16(1134);
emit_16(1201);
emit_16(1135);
emit_16(1201);
emit_16(1134);
emit_16(1201);
emit_16(1135);
emit_16(1202);
emit_16(1136);
emit_16(1202);
emit_16(1135);
emit_16(1202);
emit_16(1136);
emit_16(1203);
emit_16(1137);
emit_16(1203);
emit_16(1136);
emit_16(1203);
emit_16(1137);
emit_16(1204);
emit_16(1138);
emit_16(1204);
emit_16(1137);
emit_16(1204);
emit_16(1138);
emit_16(1205);
emit_16(1139);
emit_16(1205);
emit_16(1138);
emit_16(1205);
emit_16(1139);
emit_16(1206);
emit_16(1140);
emit_16(1206);
emit_16(1139);
emit_16(1206);
emit_16(1140);
emit_16(1207);
emit_16(1141);
emit_16(1207);
emit_16(1140);
emit_16(1207);
emit_16(1141);
emit_16(1208);
emit_16(1142);
emit_16(1208);
emit_16(1141);
emit_16(1208);
emit_16(1142);
emit_16(1209);
emit_16(1143);
emit_16(1209);
emit_16(1142);
emit_16(1209);
emit_16(1143);
emit_16(1210);
emit_16(1144);
emit_16(1210);
emit_16(1143);
emit_16(1210);
emit_16(1144);
emit_16(1211);
emit_16(1145);
emit_16(1211);
emit_16(1144);
emit_16(1211);
emit_16(1145);
emit_16(1212);
emit_16(1146);
emit_16(1212);
emit_16(1145);
emit_16(1212);
emit_16(1146);
emit_16(1213);
emit_16(1147);
emit_16(1213);
emit_16(1146);
emit_16(1213);
emit_16(1147);
emit_16(1214);
emit_16(1148);
emit_16(1214);
emit_16(1147);
emit_16(1214);
emit_16(1148);
emit_16(1215);
emit_16(1149);
emit_16(1215);
emit_16(1148);
emit_16(1215);
emit_16(1149);
emit_16(1216);
emit_16(1150);
emit_16(1216);
emit_16(1149);
emit_16(1216);
emit_16(1150);
emit_16(1217);
emit_16(1151);
emit_16(1217);
emit_16(1150);
emit_16(1217);
emit_16(1151);
emit_16(1218);
emit_16(1152);
emit_16(1218);
emit_16(1151);
emit_16(1218);
emit_16(1152);
emit_16(1219);
emit_16(1153);
emit_16(1219);
emit_16(1152);
emit_16(1219);
emit_16(1153);
emit_16(1220);
emit_16(1154);
emit_16(1220);
emit_16(1153);
emit_16(1220);
emit_16(1154);
emit_16(1221);
emit_16(1155);
emit_16(1221);
emit_16(1154);
emit_16(1221);
emit_16(1155);
emit_16(1222);
emit_16(1156);
emit_16(1222);
emit_16(1155);
emit_16(1222);
emit_16(1156);
emit_16(1223);
emit_16(1157);
emit_16(1223);
emit_16(1156);
emit_16(1223);
emit_16(1157);
emit_16(1224);
emit_16(1158);
emit_16(1224);
emit_16(1157);
emit_16(1224);
emit_16(1158);
emit_16(1225);
emit_16(1159);
emit_16(1225);
emit_16(1158);
emit_16(1225);
emit_16(1159);
emit_16(1226);
emit_16(1160);
emit_16(1226);
emit_16(1159);
emit_16(1226);
emit_16(1160);
emit_16(1227);
emit_16(1161);
emit_16(1227);
emit_16(1160);
emit_16(1227);
emit_16(1161);
emit_16(1228);
emit_16(1162);
emit_16(1228);
emit_16(1161);
emit_16(1228);
emit_16(1162);
emit_16(1229);
emit_16(1163);
emit_16(1229);
emit_16(1162);
emit_16(1229);
emit_16(1163);
emit_16(1230);
emit_16(1164);
emit_16(1230);
emit_16(1163);
emit_16(1230);
emit_16(1164);
emit_16(1231);
emit_16(1165);
emit_16(1231);
emit_16(1164);
emit_16(1231);
emit_16(1165);
emit_16(1232);
emit_16(1166);
emit_16(1232);
emit_16(1165);
emit_16(1232);
emit_16(1166);
emit_16(1233);
emit_16(1167);
emit_16(1233);
emit_16(1166);
emit_16(1233);
emit_16(1167);
emit_16(1234);
emit_16(1168);
emit_16(1234);
emit_16(1167);
emit_16(1234);
emit_16(1168);
emit_16(1235);
emit_16(1169);
emit_16(1235);
emit_16(1168);
emit_16(1235);
emit_16(1169);
emit_16(1236);
emit_16(1170);
emit_16(1236);
emit_16(1169);
emit_16(1236);
emit_16(1170);
emit_16(1237);
emit_16(1171);
emit_16(1237);
emit_16(1170);
emit_16(1237);
emit_16(1171);
emit_16(1238);
emit_16(1172);
emit_16(1238);
emit_16(1171);
emit_16(1238);
emit_16(1172);
emit_16(1239);
emit_16(1173);
emit_16(1239);
emit_16(1172);
emit_16(1239);
emit_16(1173);
emit_16(1240);
emit_16(1174);
emit_16(1240);
emit_16(1173);
emit_16(1240);
emit_16(1174);
emit_16(1241);
emit_16(1175);
emit_16(1241);
emit_16(1174);
emit_16(1241);
emit_16(1175);
emit_16(1242);
emit_16(1176);
emit_16(1242);
emit_16(1175);
emit_16(1242);
emit_16(1176);
emit_16(1243);
emit_16(1177);
emit_16(1243);
emit_16(1176);
emit_16(1243);
emit_16(1177);
emit_16(1244);
emit_16(1178);
emit_16(1244);
emit_16(1177);
emit_16(1244);
emit_16(1178);
emit_16(1245);
emit_16(1179);
emit_16(1245);
emit_16(1178);
emit_16(1245);
emit_16(1179);
emit_16(1246);
emit_16(1180);
emit_16(1246);
emit_16(1179);
emit_16(1246);
emit_16(1180);
emit_16(1247);
emit_16(1181);
emit_16(1247);
emit_16(1180);
emit_16(1247);
emit_16(1181);
emit_16(1248);
emit_16(1182);
emit_16(1248);
emit_16(1181);
emit_16(1248);
emit_16(1182);
emit_16(1249);
emit_16(1183);
emit_16(1249);
emit_16(1182);
emit_16(1249);
emit_16(1183);
emit_16(1250);
emit_16(1184);
emit_16(1250);
emit_16(1183);
emit_16(1250);
emit_16(1184);
emit_16(1251);
emit_16(1185);
emit_16(1251);
emit_16(1184);
emit_16(1251);
emit_16(1185);
emit_16(1252);
emit_16(1186);
emit_16(1252);
emit_16(1185);
emit_16(1252);
emit_16(1186);
emit_16(1253);
emit_16(1187);
emit_16(1253);
emit_16(1186);
emit_16(1254);
emit_16(1188);
emit_16(1255);
emit_16(1189);
emit_16(1255);
emit_16(1188);
emit_16(1255);
emit_16(1189);
emit_16(1256);
emit_16(1190);
emit_16(1256);
emit_16(1189);
emit_16(1256);
emit_16(1190);
emit_16(1257);
emit_16(1191);
emit_16(1257);
emit_16(1190);
emit_16(1257);
emit_16(1191);
emit_16(1258);
emit_16(1192);
emit_16(1258);
emit_16(1191);
emit_16(1258);
emit_16(1192);
emit_16(1259);
emit_16(1193);
emit_16(1259);
emit_16(1192);
emit_16(1259);
emit_16(1193);
emit_16(1260);
emit_16(1194);
emit_16(1260);
emit_16(1193);
emit_16(1260);
emit_16(1194);
emit_16(1261);
emit_16(1195);
emit_16(1261);
emit_16(1194);
emit_16(1261);
emit_16(1195);
emit_16(1262);
emit_16(1196);
emit_16(1262);
emit_16(1195);
emit_16(1262);
emit_16(1196);
emit_16(1263);
emit_16(1197);
emit_16(1263);
emit_16(1196);
emit_16(1263);
emit_16(1197);
emit_16(1264);
emit_16(1198);
emit_16(1264);
emit_16(1197);
emit_16(1264);
emit_16(1198);
emit_16(1265);
emit_16(1199);
emit_16(1265);
emit_16(1198);
emit_16(1265);
emit_16(1199);
emit_16(1266);
emit_16(1200);
emit_16(1266);
emit_16(1199);
emit_16(1266);
emit_16(1200);
emit_16(1267);
emit_16(1201);
emit_16(1267);
emit_16(1200);
emit_16(1267);
emit_16(1201);
emit_16(1268);
emit_16(1202);
emit_16(1268);
emit_16(1201);
emit_16(1268);
emit_16(1202);
emit_16(1269);
emit_16(1203);
emit_16(1269);
emit_16(1202);
emit_16(1269);
emit_16(1203);
emit_16(1270);
emit_16(1204);
emit_16(1270);
emit_16(1203);
emit_16(1270);
emit_16(1204);
emit_16(1271);
emit_16(1205);
emit_16(1271);
emit_16(1204);
emit_16(1271);
emit_16(1205);
emit_16(1272);
emit_16(1206);
emit_16(1272);
emit_16(1205);
emit_16(1272);
emit_16(1206);
emit_16(1273);
emit_16(1207);
emit_16(1273);
emit_16(1206);
emit_16(1273);
emit_16(1207);
emit_16(1274);
emit_16(1208);
emit_16(1274);
emit_16(1207);
emit_16(1274);
emit_16(1208);
emit_16(1275);
emit_16(1209);
emit_16(1275);
emit_16(1208);
emit_16(1275);
emit_16(1209);
emit_16(1276);
emit_16(1210);
emit_16(1276);
emit_16(1209);
emit_16(1276);
emit_16(1210);
emit_16(1277);
emit_16(1211);
emit_16(1277);
emit_16(1210);
emit_16(1277);
emit_16(1211);
emit_16(1278);
emit_16(1212);
emit_16(1278);
emit_16(1211);
emit_16(1278);
emit_16(1212);
emit_16(1279);
emit_16(1213);
emit_16(1279);
emit_16(1212);
emit_16(1279);
emit_16(1213);
emit_16(1280);
emit_16(1214);
emit_16(1280);
emit_16(1213);
emit_16(1280);
emit_16(1214);
emit_16(1281);
emit_16(1215);
emit_16(1281);
emit_16(1214);
emit_16(1281);
emit_16(1215);
emit_16(1282);
emit_16(1216);
emit_16(1282);
emit_16(1215);
emit_16(1282);
emit_16(1216);
emit_16(1283);
emit_16(1217);
emit_16(1283);
emit_16(1216);
emit_16(1283);
emit_16(1217);
emit_16(1284);
emit_16(1218);
emit_16(1284);
emit_16(1217);
emit_16(1284);
emit_16(1218);
emit_16(1285);
emit_16(1219);
emit_16(1285);
emit_16(1218);
emit_16(1285);
emit_16(1219);
emit_16(1286);
emit_16(1220);
emit_16(1286);
emit_16(1219);
emit_16(1286);
emit_16(1220);
emit_16(1287);
emit_16(1221);
emit_16(1287);
emit_16(1220);
emit_16(1287);
emit_16(1221);
emit_16(1288);
emit_16(1222);
emit_16(1288);
emit_16(1221);
emit_16(1288);
emit_16(1222);
emit_16(1289);
emit_16(1223);
emit_16(1289);
emit_16(1222);
emit_16(1289);
emit_16(1223);
emit_16(1290);
emit_16(1224);
emit_16(1290);
emit_16(1223);
emit_16(1290);
emit_16(1224);
emit_16(1291);
emit_16(1225);
emit_16(1291);
emit_16(1224);
emit_16(1291);
emit_16(1225);
emit_16(1292);
emit_16(1226);
emit_16(1292);
emit_16(1225);
emit_16(1292);
emit_16(1226);
emit_16(1293);
emit_16(1227);
emit_16(1293);
emit_16(1226);
emit_16(1293);
emit_16(1227);
emit_16(1294);
emit_16(1228);
emit_16(1294);
emit_16(1227);
emit_16(1294);
emit_16(1228);
emit_16(1295);
emit_16(1229);
emit_16(1295);
emit_16(1228);
emit_16(1295);
emit_16(1229);
emit_16(1296);
emit_16(1230);
emit_16(1296);
emit_16(1229);
emit_16(1296);
emit_16(1230);
emit_16(1297);
emit_16(1231);
emit_16(1297);
emit_16(1230);
emit_16(1297);
emit_16(1231);
emit_16(1298);
emit_16(1232);
emit_16(1298);
emit_16(1231);
emit_16(1298);
emit_16(1232);
emit_16(1299);
emit_16(1233);
emit_16(1299);
emit_16(1232);
emit_16(1299);
emit_16(1233);
emit_16(1300);
emit_16(1234);
emit_16(1300);
emit_16(1233);
emit_16(1300);
emit_16(1234);
emit_16(1301);
emit_16(1235);
emit_16(1301);
emit_16(1234);
emit_16(1301);
emit_16(1235);
emit_16(1302);
emit_16(1236);
emit_16(1302);
emit_16(1235);
emit_16(1302);
emit_16(1236);
emit_16(1303);
emit_16(1237);
emit_16(1303);
emit_16(1236);
emit_16(1303);
emit_16(1237);
emit_16(1304);
emit_16(1238);
emit_16(1304);
emit_16(1237);
emit_16(1304);
emit_16(1238);
emit_16(1305);
emit_16(1239);
emit_16(1305);
emit_16(1238);
emit_16(1305);
emit_16(1239);
emit_16(1306);
emit_16(1240);
emit_16(1306);
emit_16(1239);
emit_16(1306);
emit_16(1240);
emit_16(1307);
emit_16(1241);
emit_16(1307);
emit_16(1240);
emit_16(1307);
emit_16(1241);
emit_16(1308);
emit_16(1242);
emit_16(1308);
emit_16(1241);
emit_16(1308);
emit_16(1242);
emit_16(1309);
emit_16(1243);
emit_16(1309);
emit_16(1242);
emit_16(1309);
emit_16(1243);
emit_16(1310);
emit_16(1244);
emit_16(1310);
emit_16(1243);
emit_16(1310);
emit_16(1244);
emit_16(1311);
emit_16(1245);
emit_16(1311);
emit_16(1244);
emit_16(1311);
emit_16(1245);
emit_16(1312);
emit_16(1246);
emit_16(1312);
emit_16(1245);
emit_16(1312);
emit_16(1246);
emit_16(1313);
emit_16(1247);
emit_16(1313);
emit_16(1246);
emit_16(1313);
emit_16(1247);
emit_16(1314);
emit_16(1248);
emit_16(1314);
emit_16(1247);
emit_16(1314);
emit_16(1248);
emit_16(1315);
emit_16(1249);
emit_16(1315);
emit_16(1248);
emit_16(1315);
emit_16(1249);
emit_16(1316);
emit_16(1250);
emit_16(1316);
emit_16(1249);
emit_16(1316);
emit_16(1250);
emit_16(1317);
emit_16(1251);
emit_16(1317);
emit_16(1250);
emit_16(1317);
emit_16(1251);
emit_16(1318);
emit_16(1252);
emit_16(1318);
emit_16(1251);
emit_16(1318);
emit_16(1252);
emit_16(1319);
emit_16(1253);
emit_16(1319);
emit_16(1252);
emit_16(1320);
emit_16(1254);
emit_16(1321);
emit_16(1255);
emit_16(1321);
emit_16(1254);
emit_16(1321);
emit_16(1255);
emit_16(1322);
emit_16(1256);
emit_16(1322);
emit_16(1255);
emit_16(1322);
emit_16(1256);
emit_16(1323);
emit_16(1257);
emit_16(1323);
emit_16(1256);
emit_16(1323);
emit_16(1257);
emit_16(1324);
emit_16(1258);
emit_16(1324);
emit_16(1257);
emit_16(1324);
emit_16(1258);
emit_16(1325);
emit_16(1259);
emit_16(1325);
emit_16(1258);
emit_16(1325);
emit_16(1259);
emit_16(1326);
emit_16(1260);
emit_16(1326);
emit_16(1259);
emit_16(1326);
emit_16(1260);
emit_16(1327);
emit_16(1261);
emit_16(1327);
emit_16(1260);
emit_16(1327);
emit_16(1261);
emit_16(1328);
emit_16(1262);
emit_16(1328);
emit_16(1261);
emit_16(1328);
emit_16(1262);
emit_16(1329);
emit_16(1263);
emit_16(1329);
emit_16(1262);
emit_16(1329);
emit_16(1263);
emit_16(1330);
emit_16(1264);
emit_16(1330);
emit_16(1263);
emit_16(1330);
emit_16(1264);
emit_16(1331);
emit_16(1265);
emit_16(1331);
emit_16(1264);
emit_16(1331);
emit_16(1265);
emit_16(1332);
emit_16(1266);
emit_16(1332);
emit_16(1265);
emit_16(1332);
emit_16(1266);
emit_16(1333);
emit_16(1267);
emit_16(1333);
emit_16(1266);
emit_16(1333);
emit_16(1267);
emit_16(1334);
emit_16(1268);
emit_16(1334);
emit_16(1267);
emit_16(1334);
emit_16(1268);
emit_16(1335);
emit_16(1269);
emit_16(1335);
emit_16(1268);
emit_16(1335);
emit_16(1269);
emit_16(1336);
emit_16(1270);
emit_16(1336);
emit_16(1269);
emit_16(1336);
emit_16(1270);
emit_16(1337);
emit_16(1271);
emit_16(1337);
emit_16(1270);
emit_16(1337);
emit_16(1271);
emit_16(1338);
emit_16(1272);
emit_16(1338);
emit_16(1271);
emit_16(1338);
emit_16(1272);
emit_16(1339);
emit_16(1273);
emit_16(1339);
emit_16(1272);
emit_16(1339);
emit_16(1273);
emit_16(1340);
emit_16(1274);
emit_16(1340);
emit_16(1273);
emit_16(1340);
emit_16(1274);
emit_16(1341);
emit_16(1275);
emit_16(1341);
emit_16(1274);
emit_16(1341);
emit_16(1275);
emit_16(1342);
emit_16(1276);
emit_16(1342);
emit_16(1275);
emit_16(1342);
emit_16(1276);
emit_16(1343);
emit_16(1277);
emit_16(1343);
emit_16(1276);
emit_16(1343);
emit_16(1277);
emit_16(1344);
emit_16(1278);
emit_16(1344);
emit_16(1277);
emit_16(1344);
emit_16(1278);
emit_16(1345);
emit_16(1279);
emit_16(1345);
emit_16(1278);
emit_16(1345);
emit_16(1279);
emit_16(1346);
emit_16(1280);
emit_16(1346);
emit_16(1279);
emit_16(1346);
emit_16(1280);
emit_16(1347);
emit_16(1281);
emit_16(1347);
emit_16(1280);
emit_16(1347);
emit_16(1281);
emit_16(1348);
emit_16(1282);
emit_16(1348);
emit_16(1281);
emit_16(1348);
emit_16(1282);
emit_16(1349);
emit_16(1283);
emit_16(1349);
emit_16(1282);
emit_16(1349);
emit_16(1283);
emit_16(1350);
emit_16(1284);
emit_16(1350);
emit_16(1283);
emit_16(1350);
emit_16(1284);
emit_16(1351);
emit_16(1285);
emit_16(1351);
emit_16(1284);
emit_16(1351);
emit_16(1285);
emit_16(1352);
emit_16(1286);
emit_16(1352);
emit_16(1285);
emit_16(1352);
emit_16(1286);
emit_16(1353);
emit_16(1287);
emit_16(1353);
emit_16(1286);
emit_16(1353);
emit_16(1287);
emit_16(1354);
emit_16(1288);
emit_16(1354);
emit_16(1287);
emit_16(1354);
emit_16(1288);
emit_16(1355);
emit_16(1289);
emit_16(1355);
emit_16(1288);
emit_16(1355);
emit_16(1289);
emit_16(1356);
emit_16(1290);
emit_16(1356);
emit_16(1289);
emit_16(1356);
emit_16(1290);
emit_16(1357);
emit_16(1291);
emit_16(1357);
emit_16(1290);
emit_16(1357);
emit_16(1291);
emit_16(1358);
emit_16(1292);
emit_16(1358);
emit_16(1291);
emit_16(1358);
emit_16(1292);
emit_16(1359);
emit_16(1293);
emit_16(1359);
emit_16(1292);
emit_16(1359);
emit_16(1293);
emit_16(1360);
emit_16(1294);
emit_16(1360);
emit_16(1293);
emit_16(1360);
emit_16(1294);
emit_16(1361);
emit_16(1295);
emit_16(1361);
emit_16(1294);
emit_16(1361);
emit_16(1295);
emit_16(1362);
emit_16(1296);
emit_16(1362);
emit_16(1295);
emit_16(1362);
emit_16(1296);
emit_16(1363);
emit_16(1297);
emit_16(1363);
emit_16(1296);
emit_16(1363);
emit_16(1297);
emit_16(1364);
emit_16(1298);
emit_16(1364);
emit_16(1297);
emit_16(1364);
emit_16(1298);
emit_16(1365);
emit_16(1299);
emit_16(1365);
emit_16(1298);
emit_16(1365);
emit_16(1299);
emit_16(1366);
emit_16(1300);
emit_16(1366);
emit_16(1299);
emit_16(1366);
emit_16(1300);
emit_16(1367);
emit_16(1301);
emit_16(1367);
emit_16(1300);
emit_16(1367);
emit_16(1301);
emit_16(1368);
emit_16(1302);
emit_16(1368);
emit_16(1301);
emit_16(1368);
emit_16(1302);
emit_16(1369);
emit_16(1303);
emit_16(1369);
emit_16(1302);
emit_16(1369);
emit_16(1303);
emit_16(1370);
emit_16(1304);
emit_16(1370);
emit_16(1303);
emit_16(1370);
emit_16(1304);
emit_16(1371);
emit_16(1305);
emit_16(1371);
emit_16(1304);
emit_16(1371);
emit_16(1305);
emit_16(1372);
emit_16(1306);
emit_16(1372);
emit_16(1305);
emit_16(1372);
emit_16(1306);
emit_16(1373);
emit_16(1307);
emit_16(1373);
emit_16(1306);
emit_16(1373);
emit_16(1307);
emit_16(1374);
emit_16(1308);
emit_16(1374);
emit_16(1307);
emit_16(1374);
emit_16(1308);
emit_16(1375);
emit_16(1309);
emit_16(1375);
emit_16(1308);
emit_16(1375);
emit_16(1309);
emit_16(1376);
emit_16(1310);
emit_16(1376);
emit_16(1309);
emit_16(1376);
emit_16(1310);
emit_16(1377);
emit_16(1311);
emit_16(1377);
emit_16(1310);
emit_16(1377);
emit_16(1311);
emit_16(1378);
emit_16(1312);
emit_16(1378);
emit_16(1311);
emit_16(1378);
emit_16(1312);
emit_16(1379);
emit_16(1313);
emit_16(1379);
emit_16(1312);
emit_16(1379);
emit_16(1313);
emit_16(1380);
emit_16(1314);
emit_16(1380);
emit_16(1313);
emit_16(1380);
emit_16(1314);
emit_16(1381);
emit_16(1315);
emit_16(1381);
emit_16(1314);
emit_16(1381);
emit_16(1315);
emit_16(1382);
emit_16(1316);
emit_16(1382);
emit_16(1315);
emit_16(1382);
emit_16(1316);
emit_16(1383);
emit_16(1317);
emit_16(1383);
emit_16(1316);
emit_16(1383);
emit_16(1317);
emit_16(1384);
emit_16(1318);
emit_16(1384);
emit_16(1317);
emit_16(1384);
emit_16(1318);
emit_16(1385);
emit_16(1319);
emit_16(1385);
emit_16(1318);
emit_16(1386);
emit_16(1320);
emit_16(1387);
emit_16(1321);
emit_16(1387);
emit_16(1320);
emit_16(1387);
emit_16(1321);
emit_16(1388);
emit_16(1322);
emit_16(1388);
emit_16(1321);
emit_16(1388);
emit_16(1322);
emit_16(1389);
emit_16(1323);
emit_16(1389);
emit_16(1322);
emit_16(1389);
emit_16(1323);
emit_16(1390);
emit_16(1324);
emit_16(1390);
emit_16(1323);
emit_16(1390);
emit_16(1324);
emit_16(1391);
emit_16(1325);
emit_16(1391);
emit_16(1324);
emit_16(1391);
emit_16(1325);
emit_16(1392);
emit_16(1326);
emit_16(1392);
emit_16(1325);
emit_16(1392);
emit_16(1326);
emit_16(1393);
emit_16(1327);
emit_16(1393);
emit_16(1326);
emit_16(1393);
emit_16(1327);
emit_16(1394);
emit_16(1328);
emit_16(1394);
emit_16(1327);
emit_16(1394);
emit_16(1328);
emit_16(1395);
emit_16(1329);
emit_16(1395);
emit_16(1328);
emit_16(1395);
emit_16(1329);
emit_16(1396);
emit_16(1330);
emit_16(1396);
emit_16(1329);
emit_16(1396);
emit_16(1330);
emit_16(1397);
emit_16(1331);
emit_16(1397);
emit_16(1330);
emit_16(1397);
emit_16(1331);
emit_16(1398);
emit_16(1332);
emit_16(1398);
emit_16(1331);
emit_16(1398);
emit_16(1332);
emit_16(1399);
emit_16(1333);
emit_16(1399);
emit_16(1332);
emit_16(1399);
emit_16(1333);
emit_16(1400);
emit_16(1334);
emit_16(1400);
emit_16(1333);
emit_16(1400);
emit_16(1334);
emit_16(1401);
emit_16(1335);
emit_16(1401);
emit_16(1334);
emit_16(1401);
emit_16(1335);
emit_16(1402);
emit_16(1336);
emit_16(1402);
emit_16(1335);
emit_16(1402);
emit_16(1336);
emit_16(1403);
emit_16(1337);
emit_16(1403);
emit_16(1336);
emit_16(1403);
emit_16(1337);
emit_16(1404);
emit_16(1338);
emit_16(1404);
emit_16(1337);
emit_16(1404);
emit_16(1338);
emit_16(1405);
emit_16(1339);
emit_16(1405);
emit_16(1338);
emit_16(1405);
emit_16(1339);
emit_16(1406);
emit_16(1340);
emit_16(1406);
emit_16(1339);
emit_16(1406);
emit_16(1340);
emit_16(1407);
emit_16(1341);
emit_16(1407);
emit_16(1340);
emit_16(1407);
emit_16(1341);
emit_16(1408);
emit_16(1342);
emit_16(1408);
emit_16(1341);
emit_16(1408);
emit_16(1342);
emit_16(1409);
emit_16(1343);
emit_16(1409);
emit_16(1342);
emit_16(1409);
emit_16(1343);
emit_16(1410);
emit_16(1344);
emit_16(1410);
emit_16(1343);
emit_16(1410);
emit_16(1344);
emit_16(1411);
emit_16(1345);
emit_16(1411);
emit_16(1344);
emit_16(1411);
emit_16(1345);
emit_16(1412);
emit_16(1346);
emit_16(1412);
emit_16(1345);
emit_16(1412);
emit_16(1346);
emit_16(1413);
emit_16(1347);
emit_16(1413);
emit_16(1346);
emit_16(1413);
emit_16(1347);
emit_16(1414);
emit_16(1348);
emit_16(1414);
emit_16(1347);
emit_16(1414);
emit_16(1348);
emit_16(1415);
emit_16(1349);
emit_16(1415);
emit_16(1348);
emit_16(1415);
emit_16(1349);
emit_16(1416);
emit_16(1350);
emit_16(1416);
emit_16(1349);
emit_16(1416);
emit_16(1350);
emit_16(1417);
emit_16(1351);
emit_16(1417);
emit_16(1350);
emit_16(1417);
emit_16(1351);
emit_16(1418);
emit_16(1352);
emit_16(1418);
emit_16(1351);
emit_16(1418);
emit_16(1352);
emit_16(1419);
emit_16(1353);
emit_16(1419);
emit_16(1352);
emit_16(1419);
emit_16(1353);
emit_16(1420);
emit_16(1354);
emit_16(1420);
emit_16(1353);
emit_16(1420);
emit_16(1354);
emit_16(1421);
emit_16(1355);
emit_16(1421);
emit_16(1354);
emit_16(1421);
emit_16(1355);
emit_16(1422);
emit_16(1356);
emit_16(1422);
emit_16(1355);
emit_16(1422);
emit_16(1356);
emit_16(1423);
emit_16(1357);
emit_16(1423);
emit_16(1356);
emit_16(1423);
emit_16(1357);
emit_16(1424);
emit_16(1358);
emit_16(1424);
emit_16(1357);
emit_16(1424);
emit_16(1358);
emit_16(1425);
emit_16(1359);
emit_16(1425);
emit_16(1358);
emit_16(1425);
emit_16(1359);
emit_16(1426);
emit_16(1360);
emit_16(1426);
emit_16(1359);
emit_16(1426);
emit_16(1360);
emit_16(1427);
emit_16(1361);
emit_16(1427);
emit_16(1360);
emit_16(1427);
emit_16(1361);
emit_16(1428);
emit_16(1362);
emit_16(1428);
emit_16(1361);
emit_16(1428);
emit_16(1362);
emit_16(1429);
emit_16(1363);
emit_16(1429);
emit_16(1362);
emit_16(1429);
emit_16(1363);
emit_16(1430);
emit_16(1364);
emit_16(1430);
emit_16(1363);
emit_16(1430);
emit_16(1364);
emit_16(1431);
emit_16(1365);
emit_16(1431);
emit_16(1364);
emit_16(1431);
emit_16(1365);
emit_16(1432);
emit_16(1366);
emit_16(1432);
emit_16(1365);
emit_16(1432);
emit_16(1366);
emit_16(1433);
emit_16(1367);
emit_16(1433);
emit_16(1366);
emit_16(1433);
emit_16(1367);
emit_16(1434);
emit_16(1368);
emit_16(1434);
emit_16(1367);
emit_16(1434);
emit_16(1368);
emit_16(1435);
emit_16(1369);
emit_16(1435);
emit_16(1368);
emit_16(1435);
emit_16(1369);
emit_16(1436);
emit_16(1370);
emit_16(1436);
emit_16(1369);
emit_16(1436);
emit_16(1370);
emit_16(1437);
emit_16(1371);
emit_16(1437);
emit_16(1370);
emit_16(1437);
emit_16(1371);
emit_16(1438);
emit_16(1372);
emit_16(1438);
emit_16(1371);
emit_16(1438);
emit_16(1372);
emit_16(1439);
emit_16(1373);
emit_16(1439);
emit_16(1372);
emit_16(1439);
emit_16(1373);
emit_16(1440);
emit_16(1374);
emit_16(1440);
emit_16(1373);
emit_16(1440);
emit_16(1374);
emit_16(1441);
emit_16(1375);
emit_16(1441);
emit_16(1374);
emit_16(1441);
emit_16(1375);
emit_16(1442);
emit_16(1376);
emit_16(1442);
emit_16(1375);
emit_16(1442);
emit_16(1376);
emit_16(1443);
emit_16(1377);
emit_16(1443);
emit_16(1376);
emit_16(1443);
emit_16(1377);
emit_16(1444);
emit_16(1378);
emit_16(1444);
emit_16(1377);
emit_16(1444);
emit_16(1378);
emit_16(1445);
emit_16(1379);
emit_16(1445);
emit_16(1378);
emit_16(1445);
emit_16(1379);
emit_16(1446);
emit_16(1380);
emit_16(1446);
emit_16(1379);
emit_16(1446);
emit_16(1380);
emit_16(1447);
emit_16(1381);
emit_16(1447);
emit_16(1380);
emit_16(1447);
emit_16(1381);
emit_16(1448);
emit_16(1382);
emit_16(1448);
emit_16(1381);
emit_16(1448);
emit_16(1382);
emit_16(1449);
emit_16(1383);
emit_16(1449);
emit_16(1382);
emit_16(1449);
emit_16(1383);
emit_16(1450);
emit_16(1384);
emit_16(1450);
emit_16(1383);
emit_16(1450);
emit_16(1384);
emit_16(1451);
emit_16(1385);
emit_16(1451);
emit_16(1384);
emit_16(1452);
emit_16(1386);
emit_16(1453);
emit_16(1387);
emit_16(1453);
emit_16(1386);
emit_16(1453);
emit_16(1387);
emit_16(1454);
emit_16(1388);
emit_16(1454);
emit_16(1387);
emit_16(1454);
emit_16(1388);
emit_16(1455);
emit_16(1389);
emit_16(1455);
emit_16(1388);
emit_16(1455);
emit_16(1389);
emit_16(1456);
emit_16(1390);
emit_16(1456);
emit_16(1389);
emit_16(1456);
emit_16(1390);
emit_16(1457);
emit_16(1391);
emit_16(1457);
emit_16(1390);
emit_16(1457);
emit_16(1391);
emit_16(1458);
emit_16(1392);
emit_16(1458);
emit_16(1391);
emit_16(1458);
emit_16(1392);
emit_16(1459);
emit_16(1393);
emit_16(1459);
emit_16(1392);
emit_16(1459);
emit_16(1393);
emit_16(1460);
emit_16(1394);
emit_16(1460);
emit_16(1393);
emit_16(1460);
emit_16(1394);
emit_16(1461);
emit_16(1395);
emit_16(1461);
emit_16(1394);
emit_16(1461);
emit_16(1395);
emit_16(1462);
emit_16(1396);
emit_16(1462);
emit_16(1395);
emit_16(1462);
emit_16(1396);
emit_16(1463);
emit_16(1397);
emit_16(1463);
emit_16(1396);
emit_16(1463);
emit_16(1397);
emit_16(1464);
emit_16(1398);
emit_16(1464);
emit_16(1397);
emit_16(1464);
emit_16(1398);
emit_16(1465);
emit_16(1399);
emit_16(1465);
emit_16(1398);
emit_16(1465);
emit_16(1399);
emit_16(1466);
emit_16(1400);
emit_16(1466);
emit_16(1399);
emit_16(1466);
emit_16(1400);
emit_16(1467);
emit_16(1401);
emit_16(1467);
emit_16(1400);
emit_16(1467);
emit_16(1401);
emit_16(1468);
emit_16(1402);
emit_16(1468);
emit_16(1401);
emit_16(1468);
emit_16(1402);
emit_16(1469);
emit_16(1403);
emit_16(1469);
emit_16(1402);
emit_16(1469);
emit_16(1403);
emit_16(1470);
emit_16(1404);
emit_16(1470);
emit_16(1403);
emit_16(1470);
emit_16(1404);
emit_16(1471);
emit_16(1405);
emit_16(1471);
emit_16(1404);
emit_16(1471);
emit_16(1405);
emit_16(1472);
emit_16(1406);
emit_16(1472);
emit_16(1405);
emit_16(1472);
emit_16(1406);
emit_16(1473);
emit_16(1407);
emit_16(1473);
emit_16(1406);
emit_16(1473);
emit_16(1407);
emit_16(1474);
emit_16(1408);
emit_16(1474);
emit_16(1407);
emit_16(1474);
emit_16(1408);
emit_16(1475);
emit_16(1409);
emit_16(1475);
emit_16(1408);
emit_16(1475);
emit_16(1409);
emit_16(1476);
emit_16(1410);
emit_16(1476);
emit_16(1409);
emit_16(1476);
emit_16(1410);
emit_16(1477);
emit_16(1411);
emit_16(1477);
emit_16(1410);
emit_16(1477);
emit_16(1411);
emit_16(1478);
emit_16(1412);
emit_16(1478);
emit_16(1411);
emit_16(1478);
emit_16(1412);
emit_16(1479);
emit_16(1413);
emit_16(1479);
emit_16(1412);
emit_16(1479);
emit_16(1413);
emit_16(1480);
emit_16(1414);
emit_16(1480);
emit_16(1413);
emit_16(1480);
emit_16(1414);
emit_16(1481);
emit_16(1415);
emit_16(1481);
emit_16(1414);
emit_16(1481);
emit_16(1415);
emit_16(1482);
emit_16(1416);
emit_16(1482);
emit_16(1415);
emit_16(1482);
emit_16(1416);
emit_16(1483);
emit_16(1417);
emit_16(1483);
emit_16(1416);
emit_16(1483);
emit_16(1417);
emit_16(1484);
emit_16(1418);
emit_16(1484);
emit_16(1417);
emit_16(1484);
emit_16(1418);
emit_16(1485);
emit_16(1419);
emit_16(1485);
emit_16(1418);
emit_16(1485);
emit_16(1419);
emit_16(1486);
emit_16(1420);
emit_16(1486);
emit_16(1419);
emit_16(1486);
emit_16(1420);
emit_16(1487);
emit_16(1421);
emit_16(1487);
emit_16(1420);
emit_16(1487);
emit_16(1421);
emit_16(1488);
emit_16(1422);
emit_16(1488);
emit_16(1421);
emit_16(1488);
emit_16(1422);
emit_16(1489);
emit_16(1423);
emit_16(1489);
emit_16(1422);
emit_16(1489);
emit_16(1423);
emit_16(1490);
emit_16(1424);
emit_16(1490);
emit_16(1423);
emit_16(1490);
emit_16(1424);
emit_16(1491);
emit_16(1425);
emit_16(1491);
emit_16(1424);
emit_16(1491);
emit_16(1425);
emit_16(1492);
emit_16(1426);
emit_16(1492);
emit_16(1425);
emit_16(1492);
emit_16(1426);
emit_16(1493);
emit_16(1427);
emit_16(1493);
emit_16(1426);
emit_16(1493);
emit_16(1427);
emit_16(1494);
emit_16(1428);
emit_16(1494);
emit_16(1427);
emit_16(1494);
emit_16(1428);
emit_16(1495);
emit_16(1429);
emit_16(1495);
emit_16(1428);
emit_16(1495);
emit_16(1429);
emit_16(1496);
emit_16(1430);
emit_16(1496);
emit_16(1429);
emit_16(1496);
emit_16(1430);
emit_16(1497);
emit_16(1431);
emit_16(1497);
emit_16(1430);
emit_16(1497);
emit_16(1431);
emit_16(1498);
emit_16(1432);
emit_16(1498);
emit_16(1431);
emit_16(1498);
emit_16(1432);
emit_16(1499);
emit_16(1433);
emit_16(1499);
emit_16(1432);
emit_16(1499);
emit_16(1433);
emit_16(1500);
emit_16(1434);
emit_16(1500);
emit_16(1433);
emit_16(1500);
emit_16(1434);
emit_16(1501);
emit_16(1435);
emit_16(1501);
emit_16(1434);
emit_16(1501);
emit_16(1435);
emit_16(1502);
emit_16(1436);
emit_16(1502);
emit_16(1435);
emit_16(1502);
emit_16(1436);
emit_16(1503);
emit_16(1437);
emit_16(1503);
emit_16(1436);
emit_16(1503);
emit_16(1437);
emit_16(1504);
emit_16(1438);
emit_16(1504);
emit_16(1437);
emit_16(1504);
emit_16(1438);
emit_16(1505);
emit_16(1439);
emit_16(1505);
emit_16(1438);
emit_16(1505);
emit_16(1439);
emit_16(1506);
emit_16(1440);
emit_16(1506);
emit_16(1439);
emit_16(1506);
emit_16(1440);
emit_16(1507);
emit_16(1441);
emit_16(1507);
emit_16(1440);
emit_16(1507);
emit_16(1441);
emit_16(1508);
emit_16(1442);
emit_16(1508);
emit_16(1441);
emit_16(1508);
emit_16(1442);
emit_16(1509);
emit_16(1443);
emit_16(1509);
emit_16(1442);
emit_16(1509);
emit_16(1443);
emit_16(1510);
emit_16(1444);
emit_16(1510);
emit_16(1443);
emit_16(1510);
emit_16(1444);
emit_16(1511);
emit_16(1445);
emit_16(1511);
emit_16(1444);
emit_16(1511);
emit_16(1445);
emit_16(1512);
emit_16(1446);
emit_16(1512);
emit_16(1445);
emit_16(1512);
emit_16(1446);
emit_16(1513);
emit_16(1447);
emit_16(1513);
emit_16(1446);
emit_16(1513);
emit_16(1447);
emit_16(1514);
emit_16(1448);
emit_16(1514);
emit_16(1447);
emit_16(1514);
emit_16(1448);
emit_16(1515);
emit_16(1449);
emit_16(1515);
emit_16(1448);
emit_16(1515);
emit_16(1449);
emit_16(1516);
emit_16(1450);
emit_16(1516);
emit_16(1449);
emit_16(1516);
emit_16(1450);
emit_16(1517);
emit_16(1451);
emit_16(1517);
emit_16(1450);
emit_16(1518);
emit_16(1452);
emit_16(1519);
emit_16(1453);
emit_16(1519);
emit_16(1452);
emit_16(1519);
emit_16(1453);
emit_16(1520);
emit_16(1454);
emit_16(1520);
emit_16(1453);
emit_16(1520);
emit_16(1454);
emit_16(1521);
emit_16(1455);
emit_16(1521);
emit_16(1454);
emit_16(1521);
emit_16(1455);
emit_16(1522);
emit_16(1456);
emit_16(1522);
emit_16(1455);
emit_16(1522);
emit_16(1456);
emit_16(1523);
emit_16(1457);
emit_16(1523);
emit_16(1456);
emit_16(1523);
emit_16(1457);
emit_16(1524);
emit_16(1458);
emit_16(1524);
emit_16(1457);
emit_16(1524);
emit_16(1458);
emit_16(1525);
emit_16(1459);
emit_16(1525);
emit_16(1458);
emit_16(1525);
emit_16(1459);
emit_16(1526);
emit_16(1460);
emit_16(1526);
emit_16(1459);
emit_16(1526);
emit_16(1460);
emit_16(1527);
emit_16(1461);
emit_16(1527);
emit_16(1460);
emit_16(1527);
emit_16(1461);
emit_16(1528);
emit_16(1462);
emit_16(1528);
emit_16(1461);
emit_16(1528);
emit_16(1462);
emit_16(1529);
emit_16(1463);
emit_16(1529);
emit_16(1462);
emit_16(1529);
emit_16(1463);
emit_16(1530);
emit_16(1464);
emit_16(1530);
emit_16(1463);
emit_16(1530);
emit_16(1464);
emit_16(1531);
emit_16(1465);
emit_16(1531);
emit_16(1464);
emit_16(1531);
emit_16(1465);
emit_16(1532);
emit_16(1466);
emit_16(1532);
emit_16(1465);
emit_16(1532);
emit_16(1466);
emit_16(1533);
emit_16(1467);
emit_16(1533);
emit_16(1466);
emit_16(1533);
emit_16(1467);
emit_16(1534);
emit_16(1468);
emit_16(1534);
emit_16(1467);
emit_16(1534);
emit_16(1468);
emit_16(1535);
emit_16(1469);
emit_16(1535);
emit_16(1468);
emit_16(1535);
emit_16(1469);
emit_16(1536);
emit_16(1470);
emit_16(1536);
emit_16(1469);
emit_16(1536);
emit_16(1470);
emit_16(1537);
emit_16(1471);
emit_16(1537);
emit_16(1470);
emit_16(1537);
emit_16(1471);
emit_16(1538);
emit_16(1472);
emit_16(1538);
emit_16(1471);
emit_16(1538);
emit_16(1472);
emit_16(1539);
emit_16(1473);
emit_16(1539);
emit_16(1472);
emit_16(1539);
emit_16(1473);
emit_16(1540);
emit_16(1474);
emit_16(1540);
emit_16(1473);
emit_16(1540);
emit_16(1474);
emit_16(1541);
emit_16(1475);
emit_16(1541);
emit_16(1474);
emit_16(1541);
emit_16(1475);
emit_16(1542);
emit_16(1476);
emit_16(1542);
emit_16(1475);
emit_16(1542);
emit_16(1476);
emit_16(1543);
emit_16(1477);
emit_16(1543);
emit_16(1476);
emit_16(1543);
emit_16(1477);
emit_16(1544);
emit_16(1478);
emit_16(1544);
emit_16(1477);
emit_16(1544);
emit_16(1478);
emit_16(1545);
emit_16(1479);
emit_16(1545);
emit_16(1478);
emit_16(1545);
emit_16(1479);
emit_16(1546);
emit_16(1480);
emit_16(1546);
emit_16(1479);
emit_16(1546);
emit_16(1480);
emit_16(1547);
emit_16(1481);
emit_16(1547);
emit_16(1480);
emit_16(1547);
emit_16(1481);
emit_16(1548);
emit_16(1482);
emit_16(1548);
emit_16(1481);
emit_16(1548);
emit_16(1482);
emit_16(1549);
emit_16(1483);
emit_16(1549);
emit_16(1482);
emit_16(1549);
emit_16(1483);
emit_16(1550);
emit_16(1484);
emit_16(1550);
emit_16(1483);
emit_16(1550);
emit_16(1484);
emit_16(1551);
emit_16(1485);
emit_16(1551);
emit_16(1484);
emit_16(1551);
emit_16(1485);
emit_16(1552);
emit_16(1486);
emit_16(1552);
emit_16(1485);
emit_16(1552);
emit_16(1486);
emit_16(1553);
emit_16(1487);
emit_16(1553);
emit_16(1486);
emit_16(1553);
emit_16(1487);
emit_16(1554);
emit_16(1488);
emit_16(1554);
emit_16(1487);
emit_16(1554);
emit_16(1488);
emit_16(1555);
emit_16(1489);
emit_16(1555);
emit_16(1488);
emit_16(1555);
emit_16(1489);
emit_16(1556);
emit_16(1490);
emit_16(1556);
emit_16(1489);
emit_16(1556);
emit_16(1490);
emit_16(1557);
emit_16(1491);
emit_16(1557);
emit_16(1490);
emit_16(1557);
emit_16(1491);
emit_16(1558);
emit_16(1492);
emit_16(1558);
emit_16(1491);
emit_16(1558);
emit_16(1492);
emit_16(1559);
emit_16(1493);
emit_16(1559);
emit_16(1492);
emit_16(1559);
emit_16(1493);
emit_16(1560);
emit_16(1494);
emit_16(1560);
emit_16(1493);
emit_16(1560);
emit_16(1494);
emit_16(1561);
emit_16(1495);
emit_16(1561);
emit_16(1494);
emit_16(1561);
emit_16(1495);
emit_16(1562);
emit_16(1496);
emit_16(1562);
emit_16(1495);
emit_16(1562);
emit_16(1496);
emit_16(1563);
emit_16(1497);
emit_16(1563);
emit_16(1496);
emit_16(1563);
emit_16(1497);
emit_16(1564);
emit_16(1498);
emit_16(1564);
emit_16(1497);
emit_16(1564);
emit_16(1498);
emit_16(1565);
emit_16(1499);
emit_16(1565);
emit_16(1498);
emit_16(1565);
emit_16(1499);
emit_16(1566);
emit_16(1500);
emit_16(1566);
emit_16(1499);
emit_16(1566);
emit_16(1500);
emit_16(1567);
emit_16(1501);
emit_16(1567);
emit_16(1500);
emit_16(1567);
emit_16(1501);
emit_16(1568);
emit_16(1502);
emit_16(1568);
emit_16(1501);
emit_16(1568);
emit_16(1502);
emit_16(1569);
emit_16(1503);
emit_16(1569);
emit_16(1502);
emit_16(1569);
emit_16(1503);
emit_16(1570);
emit_16(1504);
emit_16(1570);
emit_16(1503);
emit_16(1570);
emit_16(1504);
emit_16(1571);
emit_16(1505);
emit_16(1571);
emit_16(1504);
emit_16(1571);
emit_16(1505);
emit_16(1572);
emit_16(1506);
emit_16(1572);
emit_16(1505);
emit_16(1572);
emit_16(1506);
emit_16(1573);
emit_16(1507);
emit_16(1573);
emit_16(1506);
emit_16(1573);
emit_16(1507);
emit_16(1574);
emit_16(1508);
emit_16(1574);
emit_16(1507);
emit_16(1574);
emit_16(1508);
emit_16(1575);
emit_16(1509);
emit_16(1575);
emit_16(1508);
emit_16(1575);
emit_16(1509);
emit_16(1576);
emit_16(1510);
emit_16(1576);
emit_16(1509);
emit_16(1576);
emit_16(1510);
emit_16(1577);
emit_16(1511);
emit_16(1577);
emit_16(1510);
emit_16(1577);
emit_16(1511);
emit_16(1578);
emit_16(1512);
emit_16(1578);
emit_16(1511);
emit_16(1578);
emit_16(1512);
emit_16(1579);
emit_16(1513);
emit_16(1579);
emit_16(1512);
emit_16(1579);
emit_16(1513);
emit_16(1580);
emit_16(1514);
emit_16(1580);
emit_16(1513);
emit_16(1580);
emit_16(1514);
emit_16(1581);
emit_16(1515);
emit_16(1581);
emit_16(1514);
emit_16(1581);
emit_16(1515);
emit_16(1582);
emit_16(1516);
emit_16(1582);
emit_16(1515);
emit_16(1582);
emit_16(1516);
emit_16(1583);
emit_16(1517);
emit_16(1583);
emit_16(1516);
emit_16(1584);
emit_16(1518);
emit_16(1585);
emit_16(1519);
emit_16(1585);
emit_16(1518);
emit_16(1585);
emit_16(1519);
emit_16(1586);
emit_16(1520);
emit_16(1586);
emit_16(1519);
emit_16(1586);
emit_16(1520);
emit_16(1587);
emit_16(1521);
emit_16(1587);
emit_16(1520);
emit_16(1587);
emit_16(1521);
emit_16(1588);
emit_16(1522);
emit_16(1588);
emit_16(1521);
emit_16(1588);
emit_16(1522);
emit_16(1589);
emit_16(1523);
emit_16(1589);
emit_16(1522);
emit_16(1589);
emit_16(1523);
emit_16(1590);
emit_16(1524);
emit_16(1590);
emit_16(1523);
emit_16(1590);
emit_16(1524);
emit_16(1591);
emit_16(1525);
emit_16(1591);
emit_16(1524);
emit_16(1591);
emit_16(1525);
emit_16(1592);
emit_16(1526);
emit_16(1592);
emit_16(1525);
emit_16(1592);
emit_16(1526);
emit_16(1593);
emit_16(1527);
emit_16(1593);
emit_16(1526);
emit_16(1593);
emit_16(1527);
emit_16(1594);
emit_16(1528);
emit_16(1594);
emit_16(1527);
emit_16(1594);
emit_16(1528);
emit_16(1595);
emit_16(1529);
emit_16(1595);
emit_16(1528);
emit_16(1595);
emit_16(1529);
emit_16(1596);
emit_16(1530);
emit_16(1596);
emit_16(1529);
emit_16(1596);
emit_16(1530);
emit_16(1597);
emit_16(1531);
emit_16(1597);
emit_16(1530);
emit_16(1597);
emit_16(1531);
emit_16(1598);
emit_16(1532);
emit_16(1598);
emit_16(1531);
emit_16(1598);
emit_16(1532);
emit_16(1599);
emit_16(1533);
emit_16(1599);
emit_16(1532);
emit_16(1599);
emit_16(1533);
emit_16(1600);
emit_16(1534);
emit_16(1600);
emit_16(1533);
emit_16(1600);
emit_16(1534);
emit_16(1601);
emit_16(1535);
emit_16(1601);
emit_16(1534);
emit_16(1601);
emit_16(1535);
emit_16(1602);
emit_16(1536);
emit_16(1602);
emit_16(1535);
emit_16(1602);
emit_16(1536);
emit_16(1603);
emit_16(1537);
emit_16(1603);
emit_16(1536);
emit_16(1603);
emit_16(1537);
emit_16(1604);
emit_16(1538);
emit_16(1604);
emit_16(1537);
emit_16(1604);
emit_16(1538);
emit_16(1605);
emit_16(1539);
emit_16(1605);
emit_16(1538);
emit_16(1605);
emit_16(1539);
emit_16(1606);
emit_16(1540);
emit_16(1606);
emit_16(1539);
emit_16(1606);
emit_16(1540);
emit_16(1607);
emit_16(1541);
emit_16(1607);
emit_16(1540);
emit_16(1607);
emit_16(1541);
emit_16(1608);
emit_16(1542);
emit_16(1608);
emit_16(1541);
emit_16(1608);
emit_16(1542);
emit_16(1609);
emit_16(1543);
emit_16(1609);
emit_16(1542);
emit_16(1609);
emit_16(1543);
emit_16(1610);
emit_16(1544);
emit_16(1610);
emit_16(1543);
emit_16(1610);
emit_16(1544);
emit_16(1611);
emit_16(1545);
emit_16(1611);
emit_16(1544);
emit_16(1611);
emit_16(1545);
emit_16(1612);
emit_16(1546);
emit_16(1612);
emit_16(1545);
emit_16(1612);
emit_16(1546);
emit_16(1613);
emit_16(1547);
emit_16(1613);
emit_16(1546);
emit_16(1613);
emit_16(1547);
emit_16(1614);
emit_16(1548);
emit_16(1614);
emit_16(1547);
emit_16(1614);
emit_16(1548);
emit_16(1615);
emit_16(1549);
emit_16(1615);
emit_16(1548);
emit_16(1615);
emit_16(1549);
emit_16(1616);
emit_16(1550);
emit_16(1616);
emit_16(1549);
emit_16(1616);
emit_16(1550);
emit_16(1617);
emit_16(1551);
emit_16(1617);
emit_16(1550);
emit_16(1617);
emit_16(1551);
emit_16(1618);
emit_16(1552);
emit_16(1618);
emit_16(1551);
emit_16(1618);
emit_16(1552);
emit_16(1619);
emit_16(1553);
emit_16(1619);
emit_16(1552);
emit_16(1619);
emit_16(1553);
emit_16(1620);
emit_16(1554);
emit_16(1620);
emit_16(1553);
emit_16(1620);
emit_16(1554);
emit_16(1621);
emit_16(1555);
emit_16(1621);
emit_16(1554);
emit_16(1621);
emit_16(1555);
emit_16(1622);
emit_16(1556);
emit_16(1622);
emit_16(1555);
emit_16(1622);
emit_16(1556);
emit_16(1623);
emit_16(1557);
emit_16(1623);
emit_16(1556);
emit_16(1623);
emit_16(1557);
emit_16(1624);
emit_16(1558);
emit_16(1624);
emit_16(1557);
emit_16(1624);
emit_16(1558);
emit_16(1625);
emit_16(1559);
emit_16(1625);
emit_16(1558);
emit_16(1625);
emit_16(1559);
emit_16(1626);
emit_16(1560);
emit_16(1626);
emit_16(1559);
emit_16(1626);
emit_16(1560);
emit_16(1627);
emit_16(1561);
emit_16(1627);
emit_16(1560);
emit_16(1627);
emit_16(1561);
emit_16(1628);
emit_16(1562);
emit_16(1628);
emit_16(1561);
emit_16(1628);
emit_16(1562);
emit_16(1629);
emit_16(1563);
emit_16(1629);
emit_16(1562);
emit_16(1629);
emit_16(1563);
emit_16(1630);
emit_16(1564);
emit_16(1630);
emit_16(1563);
emit_16(1630);
emit_16(1564);
emit_16(1631);
emit_16(1565);
emit_16(1631);
emit_16(1564);
emit_16(1631);
emit_16(1565);
emit_16(1632);
emit_16(1566);
emit_16(1632);
emit_16(1565);
emit_16(1632);
emit_16(1566);
emit_16(1633);
emit_16(1567);
emit_16(1633);
emit_16(1566);
emit_16(1633);
emit_16(1567);
emit_16(1634);
emit_16(1568);
emit_16(1634);
emit_16(1567);
emit_16(1634);
emit_16(1568);
emit_16(1635);
emit_16(1569);
emit_16(1635);
emit_16(1568);
emit_16(1635);
emit_16(1569);
emit_16(1636);
emit_16(1570);
emit_16(1636);
emit_16(1569);
emit_16(1636);
emit_16(1570);
emit_16(1637);
emit_16(1571);
emit_16(1637);
emit_16(1570);
emit_16(1637);
emit_16(1571);
emit_16(1638);
emit_16(1572);
emit_16(1638);
emit_16(1571);
emit_16(1638);
emit_16(1572);
emit_16(1639);
emit_16(1573);
emit_16(1639);
emit_16(1572);
emit_16(1639);
emit_16(1573);
emit_16(1640);
emit_16(1574);
emit_16(1640);
emit_16(1573);
emit_16(1640);
emit_16(1574);
emit_16(1641);
emit_16(1575);
emit_16(1641);
emit_16(1574);
emit_16(1641);
emit_16(1575);
emit_16(1642);
emit_16(1576);
emit_16(1642);
emit_16(1575);
emit_16(1642);
emit_16(1576);
emit_16(1643);
emit_16(1577);
emit_16(1643);
emit_16(1576);
emit_16(1643);
emit_16(1577);
emit_16(1644);
emit_16(1578);
emit_16(1644);
emit_16(1577);
emit_16(1644);
emit_16(1578);
emit_16(1645);
emit_16(1579);
emit_16(1645);
emit_16(1578);
emit_16(1645);
emit_16(1579);
emit_16(1646);
emit_16(1580);
emit_16(1646);
emit_16(1579);
emit_16(1646);
emit_16(1580);
emit_16(1647);
emit_16(1581);
emit_16(1647);
emit_16(1580);
emit_16(1647);
emit_16(1581);
emit_16(1648);
emit_16(1582);
emit_16(1648);
emit_16(1581);
emit_16(1648);
emit_16(1582);
emit_16(1649);
emit_16(1583);
emit_16(1649);
emit_16(1582);
emit_16(1650);
emit_16(1584);
emit_16(1651);
emit_16(1585);
emit_16(1651);
emit_16(1584);
emit_16(1651);
emit_16(1585);
emit_16(1652);
emit_16(1586);
emit_16(1652);
emit_16(1585);
emit_16(1652);
emit_16(1586);
emit_16(1653);
emit_16(1587);
emit_16(1653);
emit_16(1586);
emit_16(1653);
emit_16(1587);
emit_16(1654);
emit_16(1588);
emit_16(1654);
emit_16(1587);
emit_16(1654);
emit_16(1588);
emit_16(1655);
emit_16(1589);
emit_16(1655);
emit_16(1588);
emit_16(1655);
emit_16(1589);
emit_16(1656);
emit_16(1590);
emit_16(1656);
emit_16(1589);
emit_16(1656);
emit_16(1590);
emit_16(1657);
emit_16(1591);
emit_16(1657);
emit_16(1590);
emit_16(1657);
emit_16(1591);
emit_16(1658);
emit_16(1592);
emit_16(1658);
emit_16(1591);
emit_16(1658);
emit_16(1592);
emit_16(1659);
emit_16(1593);
emit_16(1659);
emit_16(1592);
emit_16(1659);
emit_16(1593);
emit_16(1660);
emit_16(1594);
emit_16(1660);
emit_16(1593);
emit_16(1660);
emit_16(1594);
emit_16(1661);
emit_16(1595);
emit_16(1661);
emit_16(1594);
emit_16(1661);
emit_16(1595);
emit_16(1662);
emit_16(1596);
emit_16(1662);
emit_16(1595);
emit_16(1662);
emit_16(1596);
emit_16(1663);
emit_16(1597);
emit_16(1663);
emit_16(1596);
emit_16(1663);
emit_16(1597);
emit_16(1664);
emit_16(1598);
emit_16(1664);
emit_16(1597);
emit_16(1664);
emit_16(1598);
emit_16(1665);
emit_16(1599);
emit_16(1665);
emit_16(1598);
emit_16(1665);
emit_16(1599);
emit_16(1666);
emit_16(1600);
emit_16(1666);
emit_16(1599);
emit_16(1666);
emit_16(1600);
emit_16(1667);
emit_16(1601);
emit_16(1667);
emit_16(1600);
emit_16(1667);
emit_16(1601);
emit_16(1668);
emit_16(1602);
emit_16(1668);
emit_16(1601);
emit_16(1668);
emit_16(1602);
emit_16(1669);
emit_16(1603);
emit_16(1669);
emit_16(1602);
emit_16(1669);
emit_16(1603);
emit_16(1670);
emit_16(1604);
emit_16(1670);
emit_16(1603);
emit_16(1670);
emit_16(1604);
emit_16(1671);
emit_16(1605);
emit_16(1671);
emit_16(1604);
emit_16(1671);
emit_16(1605);
emit_16(1672);
emit_16(1606);
emit_16(1672);
emit_16(1605);
emit_16(1672);
emit_16(1606);
emit_16(1673);
emit_16(1607);
emit_16(1673);
emit_16(1606);
emit_16(1673);
emit_16(1607);
emit_16(1674);
emit_16(1608);
emit_16(1674);
emit_16(1607);
emit_16(1674);
emit_16(1608);
emit_16(1675);
emit_16(1609);
emit_16(1675);
emit_16(1608);
emit_16(1675);
emit_16(1609);
emit_16(1676);
emit_16(1610);
emit_16(1676);
emit_16(1609);
emit_16(1676);
emit_16(1610);
emit_16(1677);
emit_16(1611);
emit_16(1677);
emit_16(1610);
emit_16(1677);
emit_16(1611);
emit_16(1678);
emit_16(1612);
emit_16(1678);
emit_16(1611);
emit_16(1678);
emit_16(1612);
emit_16(1679);
emit_16(1613);
emit_16(1679);
emit_16(1612);
emit_16(1679);
emit_16(1613);
emit_16(1680);
emit_16(1614);
emit_16(1680);
emit_16(1613);
emit_16(1680);
emit_16(1614);
emit_16(1681);
emit_16(1615);
emit_16(1681);
emit_16(1614);
emit_16(1681);
emit_16(1615);
emit_16(1682);
emit_16(1616);
emit_16(1682);
emit_16(1615);
emit_16(1682);
emit_16(1616);
emit_16(1683);
emit_16(1617);
emit_16(1683);
emit_16(1616);
emit_16(1683);
emit_16(1617);
emit_16(1684);
emit_16(1618);
emit_16(1684);
emit_16(1617);
emit_16(1684);
emit_16(1618);
emit_16(1685);
emit_16(1619);
emit_16(1685);
emit_16(1618);
emit_16(1685);
emit_16(1619);
emit_16(1686);
emit_16(1620);
emit_16(1686);
emit_16(1619);
emit_16(1686);
emit_16(1620);
emit_16(1687);
emit_16(1621);
emit_16(1687);
emit_16(1620);
emit_16(1687);
emit_16(1621);
emit_16(1688);
emit_16(1622);
emit_16(1688);
emit_16(1621);
emit_16(1688);
emit_16(1622);
emit_16(1689);
emit_16(1623);
emit_16(1689);
emit_16(1622);
emit_16(1689);
emit_16(1623);
emit_16(1690);
emit_16(1624);
emit_16(1690);
emit_16(1623);
emit_16(1690);
emit_16(1624);
emit_16(1691);
emit_16(1625);
emit_16(1691);
emit_16(1624);
emit_16(1691);
emit_16(1625);
emit_16(1692);
emit_16(1626);
emit_16(1692);
emit_16(1625);
emit_16(1692);
emit_16(1626);
emit_16(1693);
emit_16(1627);
emit_16(1693);
emit_16(1626);
emit_16(1693);
emit_16(1627);
emit_16(1694);
emit_16(1628);
emit_16(1694);
emit_16(1627);
emit_16(1694);
emit_16(1628);
emit_16(1695);
emit_16(1629);
emit_16(1695);
emit_16(1628);
emit_16(1695);
emit_16(1629);
emit_16(1696);
emit_16(1630);
emit_16(1696);
emit_16(1629);
emit_16(1696);
emit_16(1630);
emit_16(1697);
emit_16(1631);
emit_16(1697);
emit_16(1630);
emit_16(1697);
emit_16(1631);
emit_16(1698);
emit_16(1632);
emit_16(1698);
emit_16(1631);
emit_16(1698);
emit_16(1632);
emit_16(1699);
emit_16(1633);
emit_16(1699);
emit_16(1632);
emit_16(1699);
emit_16(1633);
emit_16(1700);
emit_16(1634);
emit_16(1700);
emit_16(1633);
emit_16(1700);
emit_16(1634);
emit_16(1701);
emit_16(1635);
emit_16(1701);
emit_16(1634);
emit_16(1701);
emit_16(1635);
emit_16(1702);
emit_16(1636);
emit_16(1702);
emit_16(1635);
emit_16(1702);
emit_16(1636);
emit_16(1703);
emit_16(1637);
emit_16(1703);
emit_16(1636);
emit_16(1703);
emit_16(1637);
emit_16(1704);
emit_16(1638);
emit_16(1704);
emit_16(1637);
emit_16(1704);
emit_16(1638);
emit_16(1705);
emit_16(1639);
emit_16(1705);
emit_16(1638);
emit_16(1705);
emit_16(1639);
emit_16(1706);
emit_16(1640);
emit_16(1706);
emit_16(1639);
emit_16(1706);
emit_16(1640);
emit_16(1707);
emit_16(1641);
emit_16(1707);
emit_16(1640);
emit_16(1707);
emit_16(1641);
emit_16(1708);
emit_16(1642);
emit_16(1708);
emit_16(1641);
emit_16(1708);
emit_16(1642);
emit_16(1709);
emit_16(1643);
emit_16(1709);
emit_16(1642);
emit_16(1709);
emit_16(1643);
emit_16(1710);
emit_16(1644);
emit_16(1710);
emit_16(1643);
emit_16(1710);
emit_16(1644);
emit_16(1711);
emit_16(1645);
emit_16(1711);
emit_16(1644);
emit_16(1711);
emit_16(1645);
emit_16(1712);
emit_16(1646);
emit_16(1712);
emit_16(1645);
emit_16(1712);
emit_16(1646);
emit_16(1713);
emit_16(1647);
emit_16(1713);
emit_16(1646);
emit_16(1713);
emit_16(1647);
emit_16(1714);
emit_16(1648);
emit_16(1714);
emit_16(1647);
emit_16(1714);
emit_16(1648);
emit_16(1715);
emit_16(1649);
emit_16(1715);
emit_16(1648);
emit_16(1716);
emit_16(1650);
emit_16(1717);
emit_16(1651);
emit_16(1717);
emit_16(1650);
emit_16(1717);
emit_16(1651);
emit_16(1718);
emit_16(1652);
emit_16(1718);
emit_16(1651);
emit_16(1718);
emit_16(1652);
emit_16(1719);
emit_16(1653);
emit_16(1719);
emit_16(1652);
emit_16(1719);
emit_16(1653);
emit_16(1720);
emit_16(1654);
emit_16(1720);
emit_16(1653);
emit_16(1720);
emit_16(1654);
emit_16(1721);
emit_16(1655);
emit_16(1721);
emit_16(1654);
emit_16(1721);
emit_16(1655);
emit_16(1722);
emit_16(1656);
emit_16(1722);
emit_16(1655);
emit_16(1722);
emit_16(1656);
emit_16(1723);
emit_16(1657);
emit_16(1723);
emit_16(1656);
emit_16(1723);
emit_16(1657);
emit_16(1724);
emit_16(1658);
emit_16(1724);
emit_16(1657);
emit_16(1724);
emit_16(1658);
emit_16(1725);
emit_16(1659);
emit_16(1725);
emit_16(1658);
emit_16(1725);
emit_16(1659);
emit_16(1726);
emit_16(1660);
emit_16(1726);
emit_16(1659);
emit_16(1726);
emit_16(1660);
emit_16(1727);
emit_16(1661);
emit_16(1727);
emit_16(1660);
emit_16(1727);
emit_16(1661);
emit_16(1728);
emit_16(1662);
emit_16(1728);
emit_16(1661);
emit_16(1728);
emit_16(1662);
emit_16(1729);
emit_16(1663);
emit_16(1729);
emit_16(1662);
emit_16(1729);
emit_16(1663);
emit_16(1730);
emit_16(1664);
emit_16(1730);
emit_16(1663);
emit_16(1730);
emit_16(1664);
emit_16(1731);
emit_16(1665);
emit_16(1731);
emit_16(1664);
emit_16(1731);
emit_16(1665);
emit_16(1732);
emit_16(1666);
emit_16(1732);
emit_16(1665);
emit_16(1732);
emit_16(1666);
emit_16(1733);
emit_16(1667);
emit_16(1733);
emit_16(1666);
emit_16(1733);
emit_16(1667);
emit_16(1734);
emit_16(1668);
emit_16(1734);
emit_16(1667);
emit_16(1734);
emit_16(1668);
emit_16(1735);
emit_16(1669);
emit_16(1735);
emit_16(1668);
emit_16(1735);
emit_16(1669);
emit_16(1736);
emit_16(1670);
emit_16(1736);
emit_16(1669);
emit_16(1736);
emit_16(1670);
emit_16(1737);
emit_16(1671);
emit_16(1737);
emit_16(1670);
emit_16(1737);
emit_16(1671);
emit_16(1738);
emit_16(1672);
emit_16(1738);
emit_16(1671);
emit_16(1738);
emit_16(1672);
emit_16(1739);
emit_16(1673);
emit_16(1739);
emit_16(1672);
emit_16(1739);
emit_16(1673);
emit_16(1740);
emit_16(1674);
emit_16(1740);
emit_16(1673);
emit_16(1740);
emit_16(1674);
emit_16(1741);
emit_16(1675);
emit_16(1741);
emit_16(1674);
emit_16(1741);
emit_16(1675);
emit_16(1742);
emit_16(1676);
emit_16(1742);
emit_16(1675);
emit_16(1742);
emit_16(1676);
emit_16(1743);
emit_16(1677);
emit_16(1743);
emit_16(1676);
emit_16(1743);
emit_16(1677);
emit_16(1744);
emit_16(1678);
emit_16(1744);
emit_16(1677);
emit_16(1744);
emit_16(1678);
emit_16(1745);
emit_16(1679);
emit_16(1745);
emit_16(1678);
emit_16(1745);
emit_16(1679);
emit_16(1746);
emit_16(1680);
emit_16(1746);
emit_16(1679);
emit_16(1746);
emit_16(1680);
emit_16(1747);
emit_16(1681);
emit_16(1747);
emit_16(1680);
emit_16(1747);
emit_16(1681);
emit_16(1748);
emit_16(1682);
emit_16(1748);
emit_16(1681);
emit_16(1748);
emit_16(1682);
emit_16(1749);
emit_16(1683);
emit_16(1749);
emit_16(1682);
emit_16(1749);
emit_16(1683);
emit_16(1750);
emit_16(1684);
emit_16(1750);
emit_16(1683);
emit_16(1750);
emit_16(1684);
emit_16(1751);
emit_16(1685);
emit_16(1751);
emit_16(1684);
emit_16(1751);
emit_16(1685);
emit_16(1752);
emit_16(1686);
emit_16(1752);
emit_16(1685);
emit_16(1752);
emit_16(1686);
emit_16(1753);
emit_16(1687);
emit_16(1753);
emit_16(1686);
emit_16(1753);
emit_16(1687);
emit_16(1754);
emit_16(1688);
emit_16(1754);
emit_16(1687);
emit_16(1754);
emit_16(1688);
emit_16(1755);
emit_16(1689);
emit_16(1755);
emit_16(1688);
emit_16(1755);
emit_16(1689);
emit_16(1756);
emit_16(1690);
emit_16(1756);
emit_16(1689);
emit_16(1756);
emit_16(1690);
emit_16(1757);
emit_16(1691);
emit_16(1757);
emit_16(1690);
emit_16(1757);
emit_16(1691);
emit_16(1758);
emit_16(1692);
emit_16(1758);
emit_16(1691);
emit_16(1758);
emit_16(1692);
emit_16(1759);
emit_16(1693);
emit_16(1759);
emit_16(1692);
emit_16(1759);
emit_16(1693);
emit_16(1760);
emit_16(1694);
emit_16(1760);
emit_16(1693);
emit_16(1760);
emit_16(1694);
emit_16(1761);
emit_16(1695);
emit_16(1761);
emit_16(1694);
emit_16(1761);
emit_16(1695);
emit_16(1762);
emit_16(1696);
emit_16(1762);
emit_16(1695);
emit_16(1762);
emit_16(1696);
emit_16(1763);
emit_16(1697);
emit_16(1763);
emit_16(1696);
emit_16(1763);
emit_16(1697);
emit_16(1764);
emit_16(1698);
emit_16(1764);
emit_16(1697);
emit_16(1764);
emit_16(1698);
emit_16(1765);
emit_16(1699);
emit_16(1765);
emit_16(1698);
emit_16(1765);
emit_16(1699);
emit_16(1766);
emit_16(1700);
emit_16(1766);
emit_16(1699);
emit_16(1766);
emit_16(1700);
emit_16(1767);
emit_16(1701);
emit_16(1767);
emit_16(1700);
emit_16(1767);
emit_16(1701);
emit_16(1768);
emit_16(1702);
emit_16(1768);
emit_16(1701);
emit_16(1768);
emit_16(1702);
emit_16(1769);
emit_16(1703);
emit_16(1769);
emit_16(1702);
emit_16(1769);
emit_16(1703);
emit_16(1770);
emit_16(1704);
emit_16(1770);
emit_16(1703);
emit_16(1770);
emit_16(1704);
emit_16(1771);
emit_16(1705);
emit_16(1771);
emit_16(1704);
emit_16(1771);
emit_16(1705);
emit_16(1772);
emit_16(1706);
emit_16(1772);
emit_16(1705);
emit_16(1772);
emit_16(1706);
emit_16(1773);
emit_16(1707);
emit_16(1773);
emit_16(1706);
emit_16(1773);
emit_16(1707);
emit_16(1774);
emit_16(1708);
emit_16(1774);
emit_16(1707);
emit_16(1774);
emit_16(1708);
emit_16(1775);
emit_16(1709);
emit_16(1775);
emit_16(1708);
emit_16(1775);
emit_16(1709);
emit_16(1776);
emit_16(1710);
emit_16(1776);
emit_16(1709);
emit_16(1776);
emit_16(1710);
emit_16(1777);
emit_16(1711);
emit_16(1777);
emit_16(1710);
emit_16(1777);
emit_16(1711);
emit_16(1778);
emit_16(1712);
emit_16(1778);
emit_16(1711);
emit_16(1778);
emit_16(1712);
emit_16(1779);
emit_16(1713);
emit_16(1779);
emit_16(1712);
emit_16(1779);
emit_16(1713);
emit_16(1780);
emit_16(1714);
emit_16(1780);
emit_16(1713);
emit_16(1780);
emit_16(1714);
emit_16(1781);
emit_16(1715);
emit_16(1781);
emit_16(1714);
emit_16(1782);
emit_16(1716);
emit_16(1783);
emit_16(1717);
emit_16(1783);
emit_16(1716);
emit_16(1783);
emit_16(1717);
emit_16(1784);
emit_16(1718);
emit_16(1784);
emit_16(1717);
emit_16(1784);
emit_16(1718);
emit_16(1785);
emit_16(1719);
emit_16(1785);
emit_16(1718);
emit_16(1785);
emit_16(1719);
emit_16(1786);
emit_16(1720);
emit_16(1786);
emit_16(1719);
emit_16(1786);
emit_16(1720);
emit_16(1787);
emit_16(1721);
emit_16(1787);
emit_16(1720);
emit_16(1787);
emit_16(1721);
emit_16(1788);
emit_16(1722);
emit_16(1788);
emit_16(1721);
emit_16(1788);
emit_16(1722);
emit_16(1789);
emit_16(1723);
emit_16(1789);
emit_16(1722);
emit_16(1789);
emit_16(1723);
emit_16(1790);
emit_16(1724);
emit_16(1790);
emit_16(1723);
emit_16(1790);
emit_16(1724);
emit_16(1791);
emit_16(1725);
emit_16(1791);
emit_16(1724);
emit_16(1791);
emit_16(1725);
emit_16(1792);
emit_16(1726);
emit_16(1792);
emit_16(1725);
emit_16(1792);
emit_16(1726);
emit_16(1793);
emit_16(1727);
emit_16(1793);
emit_16(1726);
emit_16(1793);
emit_16(1727);
emit_16(1794);
emit_16(1728);
emit_16(1794);
emit_16(1727);
emit_16(1794);
emit_16(1728);
emit_16(1795);
emit_16(1729);
emit_16(1795);
emit_16(1728);
emit_16(1795);
emit_16(1729);
emit_16(1796);
emit_16(1730);
emit_16(1796);
emit_16(1729);
emit_16(1796);
emit_16(1730);
emit_16(1797);
emit_16(1731);
emit_16(1797);
emit_16(1730);
emit_16(1797);
emit_16(1731);
emit_16(1798);
emit_16(1732);
emit_16(1798);
emit_16(1731);
emit_16(1798);
emit_16(1732);
emit_16(1799);
emit_16(1733);
emit_16(1799);
emit_16(1732);
emit_16(1799);
emit_16(1733);
emit_16(1800);
emit_16(1734);
emit_16(1800);
emit_16(1733);
emit_16(1800);
emit_16(1734);
emit_16(1801);
emit_16(1735);
emit_16(1801);
emit_16(1734);
emit_16(1801);
emit_16(1735);
emit_16(1802);
emit_16(1736);
emit_16(1802);
emit_16(1735);
emit_16(1802);
emit_16(1736);
emit_16(1803);
emit_16(1737);
emit_16(1803);
emit_16(1736);
emit_16(1803);
emit_16(1737);
emit_16(1804);
emit_16(1738);
emit_16(1804);
emit_16(1737);
emit_16(1804);
emit_16(1738);
emit_16(1805);
emit_16(1739);
emit_16(1805);
emit_16(1738);
emit_16(1805);
emit_16(1739);
emit_16(1806);
emit_16(1740);
emit_16(1806);
emit_16(1739);
emit_16(1806);
emit_16(1740);
emit_16(1807);
emit_16(1741);
emit_16(1807);
emit_16(1740);
emit_16(1807);
emit_16(1741);
emit_16(1808);
emit_16(1742);
emit_16(1808);
emit_16(1741);
emit_16(1808);
emit_16(1742);
emit_16(1809);
emit_16(1743);
emit_16(1809);
emit_16(1742);
emit_16(1809);
emit_16(1743);
emit_16(1810);
emit_16(1744);
emit_16(1810);
emit_16(1743);
emit_16(1810);
emit_16(1744);
emit_16(1811);
emit_16(1745);
emit_16(1811);
emit_16(1744);
emit_16(1811);
emit_16(1745);
emit_16(1812);
emit_16(1746);
emit_16(1812);
emit_16(1745);
emit_16(1812);
emit_16(1746);
emit_16(1813);
emit_16(1747);
emit_16(1813);
emit_16(1746);
emit_16(1813);
emit_16(1747);
emit_16(1814);
emit_16(1748);
emit_16(1814);
emit_16(1747);
emit_16(1814);
emit_16(1748);
emit_16(1815);
emit_16(1749);
emit_16(1815);
emit_16(1748);
emit_16(1815);
emit_16(1749);
emit_16(1816);
emit_16(1750);
emit_16(1816);
emit_16(1749);
emit_16(1816);
emit_16(1750);
emit_16(1817);
emit_16(1751);
emit_16(1817);
emit_16(1750);
emit_16(1817);
emit_16(1751);
emit_16(1818);
emit_16(1752);
emit_16(1818);
emit_16(1751);
emit_16(1818);
emit_16(1752);
emit_16(1819);
emit_16(1753);
emit_16(1819);
emit_16(1752);
emit_16(1819);
emit_16(1753);
emit_16(1820);
emit_16(1754);
emit_16(1820);
emit_16(1753);
emit_16(1820);
emit_16(1754);
emit_16(1821);
emit_16(1755);
emit_16(1821);
emit_16(1754);
emit_16(1821);
emit_16(1755);
emit_16(1822);
emit_16(1756);
emit_16(1822);
emit_16(1755);
emit_16(1822);
emit_16(1756);
emit_16(1823);
emit_16(1757);
emit_16(1823);
emit_16(1756);
emit_16(1823);
emit_16(1757);
emit_16(1824);
emit_16(1758);
emit_16(1824);
emit_16(1757);
emit_16(1824);
emit_16(1758);
emit_16(1825);
emit_16(1759);
emit_16(1825);
emit_16(1758);
emit_16(1825);
emit_16(1759);
emit_16(1826);
emit_16(1760);
emit_16(1826);
emit_16(1759);
emit_16(1826);
emit_16(1760);
emit_16(1827);
emit_16(1761);
emit_16(1827);
emit_16(1760);
emit_16(1827);
emit_16(1761);
emit_16(1828);
emit_16(1762);
emit_16(1828);
emit_16(1761);
emit_16(1828);
emit_16(1762);
emit_16(1829);
emit_16(1763);
emit_16(1829);
emit_16(1762);
emit_16(1829);
emit_16(1763);
emit_16(1830);
emit_16(1764);
emit_16(1830);
emit_16(1763);
emit_16(1830);
emit_16(1764);
emit_16(1831);
emit_16(1765);
emit_16(1831);
emit_16(1764);
emit_16(1831);
emit_16(1765);
emit_16(1832);
emit_16(1766);
emit_16(1832);
emit_16(1765);
emit_16(1832);
emit_16(1766);
emit_16(1833);
emit_16(1767);
emit_16(1833);
emit_16(1766);
emit_16(1833);
emit_16(1767);
emit_16(1834);
emit_16(1768);
emit_16(1834);
emit_16(1767);
emit_16(1834);
emit_16(1768);
emit_16(1835);
emit_16(1769);
emit_16(1835);
emit_16(1768);
emit_16(1835);
emit_16(1769);
emit_16(1836);
emit_16(1770);
emit_16(1836);
emit_16(1769);
emit_16(1836);
emit_16(1770);
emit_16(1837);
emit_16(1771);
emit_16(1837);
emit_16(1770);
emit_16(1837);
emit_16(1771);
emit_16(1838);
emit_16(1772);
emit_16(1838);
emit_16(1771);
emit_16(1838);
emit_16(1772);
emit_16(1839);
emit_16(1773);
emit_16(1839);
emit_16(1772);
emit_16(1839);
emit_16(1773);
emit_16(1840);
emit_16(1774);
emit_16(1840);
emit_16(1773);
emit_16(1840);
emit_16(1774);
emit_16(1841);
emit_16(1775);
emit_16(1841);
emit_16(1774);
emit_16(1841);
emit_16(1775);
emit_16(1842);
emit_16(1776);
emit_16(1842);
emit_16(1775);
emit_16(1842);
emit_16(1776);
emit_16(1843);
emit_16(1777);
emit_16(1843);
emit_16(1776);
emit_16(1843);
emit_16(1777);
emit_16(1844);
emit_16(1778);
emit_16(1844);
emit_16(1777);
emit_16(1844);
emit_16(1778);
emit_16(1845);
emit_16(1779);
emit_16(1845);
emit_16(1778);
emit_16(1845);
emit_16(1779);
emit_16(1846);
emit_16(1780);
emit_16(1846);
emit_16(1779);
emit_16(1846);
emit_16(1780);
emit_16(1847);
emit_16(1781);
emit_16(1847);
emit_16(1780);
emit_16(1848);
emit_16(1782);
emit_16(1849);
emit_16(1783);
emit_16(1849);
emit_16(1782);
emit_16(1849);
emit_16(1783);
emit_16(1850);
emit_16(1784);
emit_16(1850);
emit_16(1783);
emit_16(1850);
emit_16(1784);
emit_16(1851);
emit_16(1785);
emit_16(1851);
emit_16(1784);
emit_16(1851);
emit_16(1785);
emit_16(1852);
emit_16(1786);
emit_16(1852);
emit_16(1785);
emit_16(1852);
emit_16(1786);
emit_16(1853);
emit_16(1787);
emit_16(1853);
emit_16(1786);
emit_16(1853);
emit_16(1787);
emit_16(1854);
emit_16(1788);
emit_16(1854);
emit_16(1787);
emit_16(1854);
emit_16(1788);
emit_16(1855);
emit_16(1789);
emit_16(1855);
emit_16(1788);
emit_16(1855);
emit_16(1789);
emit_16(1856);
emit_16(1790);
emit_16(1856);
emit_16(1789);
emit_16(1856);
emit_16(1790);
emit_16(1857);
emit_16(1791);
emit_16(1857);
emit_16(1790);
emit_16(1857);
emit_16(1791);
emit_16(1858);
emit_16(1792);
emit_16(1858);
emit_16(1791);
emit_16(1858);
emit_16(1792);
emit_16(1859);
emit_16(1793);
emit_16(1859);
emit_16(1792);
emit_16(1859);
emit_16(1793);
emit_16(1860);
emit_16(1794);
emit_16(1860);
emit_16(1793);
emit_16(1860);
emit_16(1794);
emit_16(1861);
emit_16(1795);
emit_16(1861);
emit_16(1794);
emit_16(1861);
emit_16(1795);
emit_16(1862);
emit_16(1796);
emit_16(1862);
emit_16(1795);
emit_16(1862);
emit_16(1796);
emit_16(1863);
emit_16(1797);
emit_16(1863);
emit_16(1796);
emit_16(1863);
emit_16(1797);
emit_16(1864);
emit_16(1798);
emit_16(1864);
emit_16(1797);
emit_16(1864);
emit_16(1798);
emit_16(1865);
emit_16(1799);
emit_16(1865);
emit_16(1798);
emit_16(1865);
emit_16(1799);
emit_16(1866);
emit_16(1800);
emit_16(1866);
emit_16(1799);
emit_16(1866);
emit_16(1800);
emit_16(1867);
emit_16(1801);
emit_16(1867);
emit_16(1800);
emit_16(1867);
emit_16(1801);
emit_16(1868);
emit_16(1802);
emit_16(1868);
emit_16(1801);
emit_16(1868);
emit_16(1802);
emit_16(1869);
emit_16(1803);
emit_16(1869);
emit_16(1802);
emit_16(1869);
emit_16(1803);
emit_16(1870);
emit_16(1804);
emit_16(1870);
emit_16(1803);
emit_16(1870);
emit_16(1804);
emit_16(1871);
emit_16(1805);
emit_16(1871);
emit_16(1804);
emit_16(1871);
emit_16(1805);
emit_16(1872);
emit_16(1806);
emit_16(1872);
emit_16(1805);
emit_16(1872);
emit_16(1806);
emit_16(1873);
emit_16(1807);
emit_16(1873);
emit_16(1806);
emit_16(1873);
emit_16(1807);
emit_16(1874);
emit_16(1808);
emit_16(1874);
emit_16(1807);
emit_16(1874);
emit_16(1808);
emit_16(1875);
emit_16(1809);
emit_16(1875);
emit_16(1808);
emit_16(1875);
emit_16(1809);
emit_16(1876);
emit_16(1810);
emit_16(1876);
emit_16(1809);
emit_16(1876);
emit_16(1810);
emit_16(1877);
emit_16(1811);
emit_16(1877);
emit_16(1810);
emit_16(1877);
emit_16(1811);
emit_16(1878);
emit_16(1812);
emit_16(1878);
emit_16(1811);
emit_16(1878);
emit_16(1812);
emit_16(1879);
emit_16(1813);
emit_16(1879);
emit_16(1812);
emit_16(1879);
emit_16(1813);
emit_16(1880);
emit_16(1814);
emit_16(1880);
emit_16(1813);
emit_16(1880);
emit_16(1814);
emit_16(1881);
emit_16(1815);
emit_16(1881);
emit_16(1814);
emit_16(1881);
emit_16(1815);
emit_16(1882);
emit_16(1816);
emit_16(1882);
emit_16(1815);
emit_16(1882);
emit_16(1816);
emit_16(1883);
emit_16(1817);
emit_16(1883);
emit_16(1816);
emit_16(1883);
emit_16(1817);
emit_16(1884);
emit_16(1818);
emit_16(1884);
emit_16(1817);
emit_16(1884);
emit_16(1818);
emit_16(1885);
emit_16(1819);
emit_16(1885);
emit_16(1818);
emit_16(1885);
emit_16(1819);
emit_16(1886);
emit_16(1820);
emit_16(1886);
emit_16(1819);
emit_16(1886);
emit_16(1820);
emit_16(1887);
emit_16(1821);
emit_16(1887);
emit_16(1820);
emit_16(1887);
emit_16(1821);
emit_16(1888);
emit_16(1822);
emit_16(1888);
emit_16(1821);
emit_16(1888);
emit_16(1822);
emit_16(1889);
emit_16(1823);
emit_16(1889);
emit_16(1822);
emit_16(1889);
emit_16(1823);
emit_16(1890);
emit_16(1824);
emit_16(1890);
emit_16(1823);
emit_16(1890);
emit_16(1824);
emit_16(1891);
emit_16(1825);
emit_16(1891);
emit_16(1824);
emit_16(1891);
emit_16(1825);
emit_16(1892);
emit_16(1826);
emit_16(1892);
emit_16(1825);
emit_16(1892);
emit_16(1826);
emit_16(1893);
emit_16(1827);
emit_16(1893);
emit_16(1826);
emit_16(1893);
emit_16(1827);
emit_16(1894);
emit_16(1828);
emit_16(1894);
emit_16(1827);
emit_16(1894);
emit_16(1828);
emit_16(1895);
emit_16(1829);
emit_16(1895);
emit_16(1828);
emit_16(1895);
emit_16(1829);
emit_16(1896);
emit_16(1830);
emit_16(1896);
emit_16(1829);
emit_16(1896);
emit_16(1830);
emit_16(1897);
emit_16(1831);
emit_16(1897);
emit_16(1830);
emit_16(1897);
emit_16(1831);
emit_16(1898);
emit_16(1832);
emit_16(1898);
emit_16(1831);
emit_16(1898);
emit_16(1832);
emit_16(1899);
emit_16(1833);
emit_16(1899);
emit_16(1832);
emit_16(1899);
emit_16(1833);
emit_16(1900);
emit_16(1834);
emit_16(1900);
emit_16(1833);
emit_16(1900);
emit_16(1834);
emit_16(1901);
emit_16(1835);
emit_16(1901);
emit_16(1834);
emit_16(1901);
emit_16(1835);
emit_16(1902);
emit_16(1836);
emit_16(1902);
emit_16(1835);
emit_16(1902);
emit_16(1836);
emit_16(1903);
emit_16(1837);
emit_16(1903);
emit_16(1836);
emit_16(1903);
emit_16(1837);
emit_16(1904);
emit_16(1838);
emit_16(1904);
emit_16(1837);
emit_16(1904);
emit_16(1838);
emit_16(1905);
emit_16(1839);
emit_16(1905);
emit_16(1838);
emit_16(1905);
emit_16(1839);
emit_16(1906);
emit_16(1840);
emit_16(1906);
emit_16(1839);
emit_16(1906);
emit_16(1840);
emit_16(1907);
emit_16(1841);
emit_16(1907);
emit_16(1840);
emit_16(1907);
emit_16(1841);
emit_16(1908);
emit_16(1842);
emit_16(1908);
emit_16(1841);
emit_16(1908);
emit_16(1842);
emit_16(1909);
emit_16(1843);
emit_16(1909);
emit_16(1842);
emit_16(1909);
emit_16(1843);
emit_16(1910);
emit_16(1844);
emit_16(1910);
emit_16(1843);
emit_16(1910);
emit_16(1844);
emit_16(1911);
emit_16(1845);
emit_16(1911);
emit_16(1844);
emit_16(1911);
emit_16(1845);
emit_16(1912);
emit_16(1846);
emit_16(1912);
emit_16(1845);
emit_16(1912);
emit_16(1846);
emit_16(1913);
emit_16(1847);
emit_16(1913);
emit_16(1846);
emit_16(1914);
emit_16(1848);
emit_16(1915);
emit_16(1849);
emit_16(1915);
emit_16(1848);
emit_16(1915);
emit_16(1849);
emit_16(1916);
emit_16(1850);
emit_16(1916);
emit_16(1849);
emit_16(1916);
emit_16(1850);
emit_16(1917);
emit_16(1851);
emit_16(1917);
emit_16(1850);
emit_16(1917);
emit_16(1851);
emit_16(1918);
emit_16(1852);
emit_16(1918);
emit_16(1851);
emit_16(1918);
emit_16(1852);
emit_16(1919);
emit_16(1853);
emit_16(1919);
emit_16(1852);
emit_16(1919);
emit_16(1853);
emit_16(1920);
emit_16(1854);
emit_16(1920);
emit_16(1853);
emit_16(1920);
emit_16(1854);
emit_16(1921);
emit_16(1855);
emit_16(1921);
emit_16(1854);
emit_16(1921);
emit_16(1855);
emit_16(1922);
emit_16(1856);
emit_16(1922);
emit_16(1855);
emit_16(1922);
emit_16(1856);
emit_16(1923);
emit_16(1857);
emit_16(1923);
emit_16(1856);
emit_16(1923);
emit_16(1857);
emit_16(1924);
emit_16(1858);
emit_16(1924);
emit_16(1857);
emit_16(1924);
emit_16(1858);
emit_16(1925);
emit_16(1859);
emit_16(1925);
emit_16(1858);
emit_16(1925);
emit_16(1859);
emit_16(1926);
emit_16(1860);
emit_16(1926);
emit_16(1859);
emit_16(1926);
emit_16(1860);
emit_16(1927);
emit_16(1861);
emit_16(1927);
emit_16(1860);
emit_16(1927);
emit_16(1861);
emit_16(1928);
emit_16(1862);
emit_16(1928);
emit_16(1861);
emit_16(1928);
emit_16(1862);
emit_16(1929);
emit_16(1863);
emit_16(1929);
emit_16(1862);
emit_16(1929);
emit_16(1863);
emit_16(1930);
emit_16(1864);
emit_16(1930);
emit_16(1863);
emit_16(1930);
emit_16(1864);
emit_16(1931);
emit_16(1865);
emit_16(1931);
emit_16(1864);
emit_16(1931);
emit_16(1865);
emit_16(1932);
emit_16(1866);
emit_16(1932);
emit_16(1865);
emit_16(1932);
emit_16(1866);
emit_16(1933);
emit_16(1867);
emit_16(1933);
emit_16(1866);
emit_16(1933);
emit_16(1867);
emit_16(1934);
emit_16(1868);
emit_16(1934);
emit_16(1867);
emit_16(1934);
emit_16(1868);
emit_16(1935);
emit_16(1869);
emit_16(1935);
emit_16(1868);
emit_16(1935);
emit_16(1869);
emit_16(1936);
emit_16(1870);
emit_16(1936);
emit_16(1869);
emit_16(1936);
emit_16(1870);
emit_16(1937);
emit_16(1871);
emit_16(1937);
emit_16(1870);
emit_16(1937);
emit_16(1871);
emit_16(1938);
emit_16(1872);
emit_16(1938);
emit_16(1871);
emit_16(1938);
emit_16(1872);
emit_16(1939);
emit_16(1873);
emit_16(1939);
emit_16(1872);
emit_16(1939);
emit_16(1873);
emit_16(1940);
emit_16(1874);
emit_16(1940);
emit_16(1873);
emit_16(1940);
emit_16(1874);
emit_16(1941);
emit_16(1875);
emit_16(1941);
emit_16(1874);
emit_16(1941);
emit_16(1875);
emit_16(1942);
emit_16(1876);
emit_16(1942);
emit_16(1875);
emit_16(1942);
emit_16(1876);
emit_16(1943);
emit_16(1877);
emit_16(1943);
emit_16(1876);
emit_16(1943);
emit_16(1877);
emit_16(1944);
emit_16(1878);
emit_16(1944);
emit_16(1877);
emit_16(1944);
emit_16(1878);
emit_16(1945);
emit_16(1879);
emit_16(1945);
emit_16(1878);
emit_16(1945);
emit_16(1879);
emit_16(1946);
emit_16(1880);
emit_16(1946);
emit_16(1879);
emit_16(1946);
emit_16(1880);
emit_16(1947);
emit_16(1881);
emit_16(1947);
emit_16(1880);
emit_16(1947);
emit_16(1881);
emit_16(1948);
emit_16(1882);
emit_16(1948);
emit_16(1881);
emit_16(1948);
emit_16(1882);
emit_16(1949);
emit_16(1883);
emit_16(1949);
emit_16(1882);
emit_16(1949);
emit_16(1883);
emit_16(1950);
emit_16(1884);
emit_16(1950);
emit_16(1883);
emit_16(1950);
emit_16(1884);
emit_16(1951);
emit_16(1885);
emit_16(1951);
emit_16(1884);
emit_16(1951);
emit_16(1885);
emit_16(1952);
emit_16(1886);
emit_16(1952);
emit_16(1885);
emit_16(1952);
emit_16(1886);
emit_16(1953);
emit_16(1887);
emit_16(1953);
emit_16(1886);
emit_16(1953);
emit_16(1887);
emit_16(1954);
emit_16(1888);
emit_16(1954);
emit_16(1887);
emit_16(1954);
emit_16(1888);
emit_16(1955);
emit_16(1889);
emit_16(1955);
emit_16(1888);
emit_16(1955);
emit_16(1889);
emit_16(1956);
emit_16(1890);
emit_16(1956);
emit_16(1889);
emit_16(1956);
emit_16(1890);
emit_16(1957);
emit_16(1891);
emit_16(1957);
emit_16(1890);
emit_16(1957);
emit_16(1891);
emit_16(1958);
emit_16(1892);
emit_16(1958);
emit_16(1891);
emit_16(1958);
emit_16(1892);
emit_16(1959);
emit_16(1893);
emit_16(1959);
emit_16(1892);
emit_16(1959);
emit_16(1893);
emit_16(1960);
emit_16(1894);
emit_16(1960);
emit_16(1893);
emit_16(1960);
emit_16(1894);
emit_16(1961);
emit_16(1895);
emit_16(1961);
emit_16(1894);
emit_16(1961);
emit_16(1895);
emit_16(1962);
emit_16(1896);
emit_16(1962);
emit_16(1895);
emit_16(1962);
emit_16(1896);
emit_16(1963);
emit_16(1897);
emit_16(1963);
emit_16(1896);
emit_16(1963);
emit_16(1897);
emit_16(1964);
emit_16(1898);
emit_16(1964);
emit_16(1897);
emit_16(1964);
emit_16(1898);
emit_16(1965);
emit_16(1899);
emit_16(1965);
emit_16(1898);
emit_16(1965);
emit_16(1899);
emit_16(1966);
emit_16(1900);
emit_16(1966);
emit_16(1899);
emit_16(1966);
emit_16(1900);
emit_16(1967);
emit_16(1901);
emit_16(1967);
emit_16(1900);
emit_16(1967);
emit_16(1901);
emit_16(1968);
emit_16(1902);
emit_16(1968);
emit_16(1901);
emit_16(1968);
emit_16(1902);
emit_16(1969);
emit_16(1903);
emit_16(1969);
emit_16(1902);
emit_16(1969);
emit_16(1903);
emit_16(1970);
emit_16(1904);
emit_16(1970);
emit_16(1903);
emit_16(1970);
emit_16(1904);
emit_16(1971);
emit_16(1905);
emit_16(1971);
emit_16(1904);
emit_16(1971);
emit_16(1905);
emit_16(1972);
emit_16(1906);
emit_16(1972);
emit_16(1905);
emit_16(1972);
emit_16(1906);
emit_16(1973);
emit_16(1907);
emit_16(1973);
emit_16(1906);
emit_16(1973);
emit_16(1907);
emit_16(1974);
emit_16(1908);
emit_16(1974);
emit_16(1907);
emit_16(1974);
emit_16(1908);
emit_16(1975);
emit_16(1909);
emit_16(1975);
emit_16(1908);
emit_16(1975);
emit_16(1909);
emit_16(1976);
emit_16(1910);
emit_16(1976);
emit_16(1909);
emit_16(1976);
emit_16(1910);
emit_16(1977);
emit_16(1911);
emit_16(1977);
emit_16(1910);
emit_16(1977);
emit_16(1911);
emit_16(1978);
emit_16(1912);
emit_16(1978);
emit_16(1911);
emit_16(1978);
emit_16(1912);
emit_16(1979);
emit_16(1913);
emit_16(1979);
emit_16(1912);
emit_16(1980);
emit_16(1914);
emit_16(1981);
emit_16(1915);
emit_16(1981);
emit_16(1914);
emit_16(1981);
emit_16(1915);
emit_16(1982);
emit_16(1916);
emit_16(1982);
emit_16(1915);
emit_16(1982);
emit_16(1916);
emit_16(1983);
emit_16(1917);
emit_16(1983);
emit_16(1916);
emit_16(1983);
emit_16(1917);
emit_16(1984);
emit_16(1918);
emit_16(1984);
emit_16(1917);
emit_16(1984);
emit_16(1918);
emit_16(1985);
emit_16(1919);
emit_16(1985);
emit_16(1918);
emit_16(1985);
emit_16(1919);
emit_16(1986);
emit_16(1920);
emit_16(1986);
emit_16(1919);
emit_16(1986);
emit_16(1920);
emit_16(1987);
emit_16(1921);
emit_16(1987);
emit_16(1920);
emit_16(1987);
emit_16(1921);
emit_16(1988);
emit_16(1922);
emit_16(1988);
emit_16(1921);
emit_16(1988);
emit_16(1922);
emit_16(1989);
emit_16(1923);
emit_16(1989);
emit_16(1922);
emit_16(1989);
emit_16(1923);
emit_16(1990);
emit_16(1924);
emit_16(1990);
emit_16(1923);
emit_16(1990);
emit_16(1924);
emit_16(1991);
emit_16(1925);
emit_16(1991);
emit_16(1924);
emit_16(1991);
emit_16(1925);
emit_16(1992);
emit_16(1926);
emit_16(1992);
emit_16(1925);
emit_16(1992);
emit_16(1926);
emit_16(1993);
emit_16(1927);
emit_16(1993);
emit_16(1926);
emit_16(1993);
emit_16(1927);
emit_16(1994);
emit_16(1928);
emit_16(1994);
emit_16(1927);
emit_16(1994);
emit_16(1928);
emit_16(1995);
emit_16(1929);
emit_16(1995);
emit_16(1928);
emit_16(1995);
emit_16(1929);
emit_16(1996);
emit_16(1930);
emit_16(1996);
emit_16(1929);
emit_16(1996);
emit_16(1930);
emit_16(1997);
emit_16(1931);
emit_16(1997);
emit_16(1930);
emit_16(1997);
emit_16(1931);
emit_16(1998);
emit_16(1932);
emit_16(1998);
emit_16(1931);
emit_16(1998);
emit_16(1932);
emit_16(1999);
emit_16(1933);
emit_16(1999);
emit_16(1932);
emit_16(1999);
emit_16(1933);
emit_16(2000);
emit_16(1934);
emit_16(2000);
emit_16(1933);
emit_16(2000);
emit_16(1934);
emit_16(2001);
emit_16(1935);
emit_16(2001);
emit_16(1934);
emit_16(2001);
emit_16(1935);
emit_16(2002);
emit_16(1936);
emit_16(2002);
emit_16(1935);
emit_16(2002);
emit_16(1936);
emit_16(2003);
emit_16(1937);
emit_16(2003);
emit_16(1936);
emit_16(2003);
emit_16(1937);
emit_16(2004);
emit_16(1938);
emit_16(2004);
emit_16(1937);
emit_16(2004);
emit_16(1938);
emit_16(2005);
emit_16(1939);
emit_16(2005);
emit_16(1938);
emit_16(2005);
emit_16(1939);
emit_16(2006);
emit_16(1940);
emit_16(2006);
emit_16(1939);
emit_16(2006);
emit_16(1940);
emit_16(2007);
emit_16(1941);
emit_16(2007);
emit_16(1940);
emit_16(2007);
emit_16(1941);
emit_16(2008);
emit_16(1942);
emit_16(2008);
emit_16(1941);
emit_16(2008);
emit_16(1942);
emit_16(2009);
emit_16(1943);
emit_16(2009);
emit_16(1942);
emit_16(2009);
emit_16(1943);
emit_16(2010);
emit_16(1944);
emit_16(2010);
emit_16(1943);
emit_16(2010);
emit_16(1944);
emit_16(2011);
emit_16(1945);
emit_16(2011);
emit_16(1944);
emit_16(2011);
emit_16(1945);
emit_16(2012);
emit_16(1946);
emit_16(2012);
emit_16(1945);
emit_16(2012);
emit_16(1946);
emit_16(2013);
emit_16(1947);
emit_16(2013);
emit_16(1946);
emit_16(2013);
emit_16(1947);
emit_16(2014);
emit_16(1948);
emit_16(2014);
emit_16(1947);
emit_16(2014);
emit_16(1948);
emit_16(2015);
emit_16(1949);
emit_16(2015);
emit_16(1948);
emit_16(2015);
emit_16(1949);
emit_16(2016);
emit_16(1950);
emit_16(2016);
emit_16(1949);
emit_16(2016);
emit_16(1950);
emit_16(2017);
emit_16(1951);
emit_16(2017);
emit_16(1950);
emit_16(2017);
emit_16(1951);
emit_16(2018);
emit_16(1952);
emit_16(2018);
emit_16(1951);
emit_16(2018);
emit_16(1952);
emit_16(2019);
emit_16(1953);
emit_16(2019);
emit_16(1952);
emit_16(2019);
emit_16(1953);
emit_16(2020);
emit_16(1954);
emit_16(2020);
emit_16(1953);
emit_16(2020);
emit_16(1954);
emit_16(2021);
emit_16(1955);
emit_16(2021);
emit_16(1954);
emit_16(2021);
emit_16(1955);
emit_16(2022);
emit_16(1956);
emit_16(2022);
emit_16(1955);
emit_16(2022);
emit_16(1956);
emit_16(2023);
emit_16(1957);
emit_16(2023);
emit_16(1956);
emit_16(2023);
emit_16(1957);
emit_16(2024);
emit_16(1958);
emit_16(2024);
emit_16(1957);
emit_16(2024);
emit_16(1958);
emit_16(2025);
emit_16(1959);
emit_16(2025);
emit_16(1958);
emit_16(2025);
emit_16(1959);
emit_16(2026);
emit_16(1960);
emit_16(2026);
emit_16(1959);
emit_16(2026);
emit_16(1960);
emit_16(2027);
emit_16(1961);
emit_16(2027);
emit_16(1960);
emit_16(2027);
emit_16(1961);
emit_16(2028);
emit_16(1962);
emit_16(2028);
emit_16(1961);
emit_16(2028);
emit_16(1962);
emit_16(2029);
emit_16(1963);
emit_16(2029);
emit_16(1962);
emit_16(2029);
emit_16(1963);
emit_16(2030);
emit_16(1964);
emit_16(2030);
emit_16(1963);
emit_16(2030);
emit_16(1964);
emit_16(2031);
emit_16(1965);
emit_16(2031);
emit_16(1964);
emit_16(2031);
emit_16(1965);
emit_16(2032);
emit_16(1966);
emit_16(2032);
emit_16(1965);
emit_16(2032);
emit_16(1966);
emit_16(2033);
emit_16(1967);
emit_16(2033);
emit_16(1966);
emit_16(2033);
emit_16(1967);
emit_16(2034);
emit_16(1968);
emit_16(2034);
emit_16(1967);
emit_16(2034);
emit_16(1968);
emit_16(2035);
emit_16(1969);
emit_16(2035);
emit_16(1968);
emit_16(2035);
emit_16(1969);
emit_16(2036);
emit_16(1970);
emit_16(2036);
emit_16(1969);
emit_16(2036);
emit_16(1970);
emit_16(2037);
emit_16(1971);
emit_16(2037);
emit_16(1970);
emit_16(2037);
emit_16(1971);
emit_16(2038);
emit_16(1972);
emit_16(2038);
emit_16(1971);
emit_16(2038);
emit_16(1972);
emit_16(2039);
emit_16(1973);
emit_16(2039);
emit_16(1972);
emit_16(2039);
emit_16(1973);
emit_16(2040);
emit_16(1974);
emit_16(2040);
emit_16(1973);
emit_16(2040);
emit_16(1974);
emit_16(2041);
emit_16(1975);
emit_16(2041);
emit_16(1974);
emit_16(2041);
emit_16(1975);
emit_16(2042);
emit_16(1976);
emit_16(2042);
emit_16(1975);
emit_16(2042);
emit_16(1976);
emit_16(2043);
emit_16(1977);
emit_16(2043);
emit_16(1976);
emit_16(2043);
emit_16(1977);
emit_16(2044);
emit_16(1978);
emit_16(2044);
emit_16(1977);
emit_16(2044);
emit_16(1978);
emit_16(2045);
emit_16(1979);
emit_16(2045);
emit_16(1978);
emit_16(2046);
emit_16(1980);
emit_16(2047);
emit_16(1981);
emit_16(2047);
emit_16(1980);
emit_16(2047);
emit_16(1981);
emit_16(2048);
emit_16(1982);
emit_16(2048);
emit_16(1981);
emit_16(2048);
emit_16(1982);
emit_16(2049);
emit_16(1983);
emit_16(2049);
emit_16(1982);
emit_16(2049);
emit_16(1983);
emit_16(2050);
emit_16(1984);
emit_16(2050);
emit_16(1983);
emit_16(2050);
emit_16(1984);
emit_16(2051);
emit_16(1985);
emit_16(2051);
emit_16(1984);
emit_16(2051);
emit_16(1985);
emit_16(2052);
emit_16(1986);
emit_16(2052);
emit_16(1985);
emit_16(2052);
emit_16(1986);
emit_16(2053);
emit_16(1987);
emit_16(2053);
emit_16(1986);
emit_16(2053);
emit_16(1987);
emit_16(2054);
emit_16(1988);
emit_16(2054);
emit_16(1987);
emit_16(2054);
emit_16(1988);
emit_16(2055);
emit_16(1989);
emit_16(2055);
emit_16(1988);
emit_16(2055);
emit_16(1989);
emit_16(2056);
emit_16(1990);
emit_16(2056);
emit_16(1989);
emit_16(2056);
emit_16(1990);
emit_16(2057);
emit_16(1991);
emit_16(2057);
emit_16(1990);
emit_16(2057);
emit_16(1991);
emit_16(2058);
emit_16(1992);
emit_16(2058);
emit_16(1991);
emit_16(2058);
emit_16(1992);
emit_16(2059);
emit_16(1993);
emit_16(2059);
emit_16(1992);
emit_16(2059);
emit_16(1993);
emit_16(2060);
emit_16(1994);
emit_16(2060);
emit_16(1993);
emit_16(2060);
emit_16(1994);
emit_16(2061);
emit_16(1995);
emit_16(2061);
emit_16(1994);
emit_16(2061);
emit_16(1995);
emit_16(2062);
emit_16(1996);
emit_16(2062);
emit_16(1995);
emit_16(2062);
emit_16(1996);
emit_16(2063);
emit_16(1997);
emit_16(2063);
emit_16(1996);
emit_16(2063);
emit_16(1997);
emit_16(2064);
emit_16(1998);
emit_16(2064);
emit_16(1997);
emit_16(2064);
emit_16(1998);
emit_16(2065);
emit_16(1999);
emit_16(2065);
emit_16(1998);
emit_16(2065);
emit_16(1999);
emit_16(2066);
emit_16(2000);
emit_16(2066);
emit_16(1999);
emit_16(2066);
emit_16(2000);
emit_16(2067);
emit_16(2001);
emit_16(2067);
emit_16(2000);
emit_16(2067);
emit_16(2001);
emit_16(2068);
emit_16(2002);
emit_16(2068);
emit_16(2001);
emit_16(2068);
emit_16(2002);
emit_16(2069);
emit_16(2003);
emit_16(2069);
emit_16(2002);
emit_16(2069);
emit_16(2003);
emit_16(2070);
emit_16(2004);
emit_16(2070);
emit_16(2003);
emit_16(2070);
emit_16(2004);
emit_16(2071);
emit_16(2005);
emit_16(2071);
emit_16(2004);
emit_16(2071);
emit_16(2005);
emit_16(2072);
emit_16(2006);
emit_16(2072);
emit_16(2005);
emit_16(2072);
emit_16(2006);
emit_16(2073);
emit_16(2007);
emit_16(2073);
emit_16(2006);
emit_16(2073);
emit_16(2007);
emit_16(2074);
emit_16(2008);
emit_16(2074);
emit_16(2007);
emit_16(2074);
emit_16(2008);
emit_16(2075);
emit_16(2009);
emit_16(2075);
emit_16(2008);
emit_16(2075);
emit_16(2009);
emit_16(2076);
emit_16(2010);
emit_16(2076);
emit_16(2009);
emit_16(2076);
emit_16(2010);
emit_16(2077);
emit_16(2011);
emit_16(2077);
emit_16(2010);
emit_16(2077);
emit_16(2011);
emit_16(2078);
emit_16(2012);
emit_16(2078);
emit_16(2011);
emit_16(2078);
emit_16(2012);
emit_16(2079);
emit_16(2013);
emit_16(2079);
emit_16(2012);
emit_16(2079);
emit_16(2013);
emit_16(2080);
emit_16(2014);
emit_16(2080);
emit_16(2013);
emit_16(2080);
emit_16(2014);
emit_16(2081);
emit_16(2015);
emit_16(2081);
emit_16(2014);
emit_16(2081);
emit_16(2015);
emit_16(2082);
emit_16(2016);
emit_16(2082);
emit_16(2015);
emit_16(2082);
emit_16(2016);
emit_16(2083);
emit_16(2017);
emit_16(2083);
emit_16(2016);
emit_16(2083);
emit_16(2017);
emit_16(2084);
emit_16(2018);
emit_16(2084);
emit_16(2017);
emit_16(2084);
emit_16(2018);
emit_16(2085);
emit_16(2019);
emit_16(2085);
emit_16(2018);
emit_16(2085);
emit_16(2019);
emit_16(2086);
emit_16(2020);
emit_16(2086);
emit_16(2019);
emit_16(2086);
emit_16(2020);
emit_16(2087);
emit_16(2021);
emit_16(2087);
emit_16(2020);
emit_16(2087);
emit_16(2021);
emit_16(2088);
emit_16(2022);
emit_16(2088);
emit_16(2021);
emit_16(2088);
emit_16(2022);
emit_16(2089);
emit_16(2023);
emit_16(2089);
emit_16(2022);
emit_16(2089);
emit_16(2023);
emit_16(2090);
emit_16(2024);
emit_16(2090);
emit_16(2023);
emit_16(2090);
emit_16(2024);
emit_16(2091);
emit_16(2025);
emit_16(2091);
emit_16(2024);
emit_16(2091);
emit_16(2025);
emit_16(2092);
emit_16(2026);
emit_16(2092);
emit_16(2025);
emit_16(2092);
emit_16(2026);
emit_16(2093);
emit_16(2027);
emit_16(2093);
emit_16(2026);
emit_16(2093);
emit_16(2027);
emit_16(2094);
emit_16(2028);
emit_16(2094);
emit_16(2027);
emit_16(2094);
emit_16(2028);
emit_16(2095);
emit_16(2029);
emit_16(2095);
emit_16(2028);
emit_16(2095);
emit_16(2029);
emit_16(2096);
emit_16(2030);
emit_16(2096);
emit_16(2029);
emit_16(2096);
emit_16(2030);
emit_16(2097);
emit_16(2031);
emit_16(2097);
emit_16(2030);
emit_16(2097);
emit_16(2031);
emit_16(2098);
emit_16(2032);
emit_16(2098);
emit_16(2031);
emit_16(2098);
emit_16(2032);
emit_16(2099);
emit_16(2033);
emit_16(2099);
emit_16(2032);
emit_16(2099);
emit_16(2033);
emit_16(2100);
emit_16(2034);
emit_16(2100);
emit_16(2033);
emit_16(2100);
emit_16(2034);
emit_16(2101);
emit_16(2035);
emit_16(2101);
emit_16(2034);
emit_16(2101);
emit_16(2035);
emit_16(2102);
emit_16(2036);
emit_16(2102);
emit_16(2035);
emit_16(2102);
emit_16(2036);
emit_16(2103);
emit_16(2037);
emit_16(2103);
emit_16(2036);
emit_16(2103);
emit_16(2037);
emit_16(2104);
emit_16(2038);
emit_16(2104);
emit_16(2037);
emit_16(2104);
emit_16(2038);
emit_16(2105);
emit_16(2039);
emit_16(2105);
emit_16(2038);
emit_16(2105);
emit_16(2039);
emit_16(2106);
emit_16(2040);
emit_16(2106);
emit_16(2039);
emit_16(2106);
emit_16(2040);
emit_16(2107);
emit_16(2041);
emit_16(2107);
emit_16(2040);
emit_16(2107);
emit_16(2041);
emit_16(2108);
emit_16(2042);
emit_16(2108);
emit_16(2041);
emit_16(2108);
emit_16(2042);
emit_16(2109);
emit_16(2043);
emit_16(2109);
emit_16(2042);
emit_16(2109);
emit_16(2043);
emit_16(2110);
emit_16(2044);
emit_16(2110);
emit_16(2043);
emit_16(2110);
emit_16(2044);
emit_16(2111);
emit_16(2045);
emit_16(2111);
emit_16(2044);
emit_16(2112);
emit_16(2046);
emit_16(2113);
emit_16(2047);
emit_16(2113);
emit_16(2046);
emit_16(2113);
emit_16(2047);
emit_16(2114);
emit_16(2048);
emit_16(2114);
emit_16(2047);
emit_16(2114);
emit_16(2048);
emit_16(2115);
emit_16(2049);
emit_16(2115);
emit_16(2048);
emit_16(2115);
emit_16(2049);
emit_16(2116);
emit_16(2050);
emit_16(2116);
emit_16(2049);
emit_16(2116);
emit_16(2050);
emit_16(2117);
emit_16(2051);
emit_16(2117);
emit_16(2050);
emit_16(2117);
emit_16(2051);
emit_16(2118);
emit_16(2052);
emit_16(2118);
emit_16(2051);
emit_16(2118);
emit_16(2052);
emit_16(2119);
emit_16(2053);
emit_16(2119);
emit_16(2052);
emit_16(2119);
emit_16(2053);
emit_16(2120);
emit_16(2054);
emit_16(2120);
emit_16(2053);
emit_16(2120);
emit_16(2054);
emit_16(2121);
emit_16(2055);
emit_16(2121);
emit_16(2054);
emit_16(2121);
emit_16(2055);
emit_16(2122);
emit_16(2056);
emit_16(2122);
emit_16(2055);
emit_16(2122);
emit_16(2056);
emit_16(2123);
emit_16(2057);
emit_16(2123);
emit_16(2056);
emit_16(2123);
emit_16(2057);
emit_16(2124);
emit_16(2058);
emit_16(2124);
emit_16(2057);
emit_16(2124);
emit_16(2058);
emit_16(2125);
emit_16(2059);
emit_16(2125);
emit_16(2058);
emit_16(2125);
emit_16(2059);
emit_16(2126);
emit_16(2060);
emit_16(2126);
emit_16(2059);
emit_16(2126);
emit_16(2060);
emit_16(2127);
emit_16(2061);
emit_16(2127);
emit_16(2060);
emit_16(2127);
emit_16(2061);
emit_16(2128);
emit_16(2062);
emit_16(2128);
emit_16(2061);
emit_16(2128);
emit_16(2062);
emit_16(2129);
emit_16(2063);
emit_16(2129);
emit_16(2062);
emit_16(2129);
emit_16(2063);
emit_16(2130);
emit_16(2064);
emit_16(2130);
emit_16(2063);
emit_16(2130);
emit_16(2064);
emit_16(2131);
emit_16(2065);
emit_16(2131);
emit_16(2064);
emit_16(2131);
emit_16(2065);
emit_16(2132);
emit_16(2066);
emit_16(2132);
emit_16(2065);
emit_16(2132);
emit_16(2066);
emit_16(2133);
emit_16(2067);
emit_16(2133);
emit_16(2066);
emit_16(2133);
emit_16(2067);
emit_16(2134);
emit_16(2068);
emit_16(2134);
emit_16(2067);
emit_16(2134);
emit_16(2068);
emit_16(2135);
emit_16(2069);
emit_16(2135);
emit_16(2068);
emit_16(2135);
emit_16(2069);
emit_16(2136);
emit_16(2070);
emit_16(2136);
emit_16(2069);
emit_16(2136);
emit_16(2070);
emit_16(2137);
emit_16(2071);
emit_16(2137);
emit_16(2070);
emit_16(2137);
emit_16(2071);
emit_16(2138);
emit_16(2072);
emit_16(2138);
emit_16(2071);
emit_16(2138);
emit_16(2072);
emit_16(2139);
emit_16(2073);
emit_16(2139);
emit_16(2072);
emit_16(2139);
emit_16(2073);
emit_16(2140);
emit_16(2074);
emit_16(2140);
emit_16(2073);
emit_16(2140);
emit_16(2074);
emit_16(2141);
emit_16(2075);
emit_16(2141);
emit_16(2074);
emit_16(2141);
emit_16(2075);
emit_16(2142);
emit_16(2076);
emit_16(2142);
emit_16(2075);
emit_16(2142);
emit_16(2076);
emit_16(2143);
emit_16(2077);
emit_16(2143);
emit_16(2076);
emit_16(2143);
emit_16(2077);
emit_16(2144);
emit_16(2078);
emit_16(2144);
emit_16(2077);
emit_16(2144);
emit_16(2078);
emit_16(2145);
emit_16(2079);
emit_16(2145);
emit_16(2078);
emit_16(2145);
emit_16(2079);
emit_16(2146);
emit_16(2080);
emit_16(2146);
emit_16(2079);
emit_16(2146);
emit_16(2080);
emit_16(2147);
emit_16(2081);
emit_16(2147);
emit_16(2080);
emit_16(2147);
emit_16(2081);
emit_16(2148);
emit_16(2082);
emit_16(2148);
emit_16(2081);
emit_16(2148);
emit_16(2082);
emit_16(2149);
emit_16(2083);
emit_16(2149);
emit_16(2082);
emit_16(2149);
emit_16(2083);
emit_16(2150);
emit_16(2084);
emit_16(2150);
emit_16(2083);
emit_16(2150);
emit_16(2084);
emit_16(2151);
emit_16(2085);
emit_16(2151);
emit_16(2084);
emit_16(2151);
emit_16(2085);
emit_16(2152);
emit_16(2086);
emit_16(2152);
emit_16(2085);
emit_16(2152);
emit_16(2086);
emit_16(2153);
emit_16(2087);
emit_16(2153);
emit_16(2086);
emit_16(2153);
emit_16(2087);
emit_16(2154);
emit_16(2088);
emit_16(2154);
emit_16(2087);
emit_16(2154);
emit_16(2088);
emit_16(2155);
emit_16(2089);
emit_16(2155);
emit_16(2088);
emit_16(2155);
emit_16(2089);
emit_16(2156);
emit_16(2090);
emit_16(2156);
emit_16(2089);
emit_16(2156);
emit_16(2090);
emit_16(2157);
emit_16(2091);
emit_16(2157);
emit_16(2090);
emit_16(2157);
emit_16(2091);
emit_16(2158);
emit_16(2092);
emit_16(2158);
emit_16(2091);
emit_16(2158);
emit_16(2092);
emit_16(2159);
emit_16(2093);
emit_16(2159);
emit_16(2092);
emit_16(2159);
emit_16(2093);
emit_16(2160);
emit_16(2094);
emit_16(2160);
emit_16(2093);
emit_16(2160);
emit_16(2094);
emit_16(2161);
emit_16(2095);
emit_16(2161);
emit_16(2094);
emit_16(2161);
emit_16(2095);
emit_16(2162);
emit_16(2096);
emit_16(2162);
emit_16(2095);
emit_16(2162);
emit_16(2096);
emit_16(2163);
emit_16(2097);
emit_16(2163);
emit_16(2096);
emit_16(2163);
emit_16(2097);
emit_16(2164);
emit_16(2098);
emit_16(2164);
emit_16(2097);
emit_16(2164);
emit_16(2098);
emit_16(2165);
emit_16(2099);
emit_16(2165);
emit_16(2098);
emit_16(2165);
emit_16(2099);
emit_16(2166);
emit_16(2100);
emit_16(2166);
emit_16(2099);
emit_16(2166);
emit_16(2100);
emit_16(2167);
emit_16(2101);
emit_16(2167);
emit_16(2100);
emit_16(2167);
emit_16(2101);
emit_16(2168);
emit_16(2102);
emit_16(2168);
emit_16(2101);
emit_16(2168);
emit_16(2102);
emit_16(2169);
emit_16(2103);
emit_16(2169);
emit_16(2102);
emit_16(2169);
emit_16(2103);
emit_16(2170);
emit_16(2104);
emit_16(2170);
emit_16(2103);
emit_16(2170);
emit_16(2104);
emit_16(2171);
emit_16(2105);
emit_16(2171);
emit_16(2104);
emit_16(2171);
emit_16(2105);
emit_16(2172);
emit_16(2106);
emit_16(2172);
emit_16(2105);
emit_16(2172);
emit_16(2106);
emit_16(2173);
emit_16(2107);
emit_16(2173);
emit_16(2106);
emit_16(2173);
emit_16(2107);
emit_16(2174);
emit_16(2108);
emit_16(2174);
emit_16(2107);
emit_16(2174);
emit_16(2108);
emit_16(2175);
emit_16(2109);
emit_16(2175);
emit_16(2108);
emit_16(2175);
emit_16(2109);
emit_16(2176);
emit_16(2110);
emit_16(2176);
emit_16(2109);
emit_16(2176);
emit_16(2110);
emit_16(2177);
emit_16(2111);
emit_16(2177);
emit_16(2110);
emit_16(2178);
emit_16(2112);
emit_16(2179);
emit_16(2113);
emit_16(2179);
emit_16(2112);
emit_16(2179);
emit_16(2113);
emit_16(2180);
emit_16(2114);
emit_16(2180);
emit_16(2113);
emit_16(2180);
emit_16(2114);
emit_16(2181);
emit_16(2115);
emit_16(2181);
emit_16(2114);
emit_16(2181);
emit_16(2115);
emit_16(2182);
emit_16(2116);
emit_16(2182);
emit_16(2115);
emit_16(2182);
emit_16(2116);
emit_16(2183);
emit_16(2117);
emit_16(2183);
emit_16(2116);
emit_16(2183);
emit_16(2117);
emit_16(2184);
emit_16(2118);
emit_16(2184);
emit_16(2117);
emit_16(2184);
emit_16(2118);
emit_16(2185);
emit_16(2119);
emit_16(2185);
emit_16(2118);
emit_16(2185);
emit_16(2119);
emit_16(2186);
emit_16(2120);
emit_16(2186);
emit_16(2119);
emit_16(2186);
emit_16(2120);
emit_16(2187);
emit_16(2121);
emit_16(2187);
emit_16(2120);
emit_16(2187);
emit_16(2121);
emit_16(2188);
emit_16(2122);
emit_16(2188);
emit_16(2121);
emit_16(2188);
emit_16(2122);
emit_16(2189);
emit_16(2123);
emit_16(2189);
emit_16(2122);
emit_16(2189);
emit_16(2123);
emit_16(2190);
emit_16(2124);
emit_16(2190);
emit_16(2123);
emit_16(2190);
emit_16(2124);
emit_16(2191);
emit_16(2125);
emit_16(2191);
emit_16(2124);
emit_16(2191);
emit_16(2125);
emit_16(2192);
emit_16(2126);
emit_16(2192);
emit_16(2125);
emit_16(2192);
emit_16(2126);
emit_16(2193);
emit_16(2127);
emit_16(2193);
emit_16(2126);
emit_16(2193);
emit_16(2127);
emit_16(2194);
emit_16(2128);
emit_16(2194);
emit_16(2127);
emit_16(2194);
emit_16(2128);
emit_16(2195);
emit_16(2129);
emit_16(2195);
emit_16(2128);
emit_16(2195);
emit_16(2129);
emit_16(2196);
emit_16(2130);
emit_16(2196);
emit_16(2129);
emit_16(2196);
emit_16(2130);
emit_16(2197);
emit_16(2131);
emit_16(2197);
emit_16(2130);
emit_16(2197);
emit_16(2131);
emit_16(2198);
emit_16(2132);
emit_16(2198);
emit_16(2131);
emit_16(2198);
emit_16(2132);
emit_16(2199);
emit_16(2133);
emit_16(2199);
emit_16(2132);
emit_16(2199);
emit_16(2133);
emit_16(2200);
emit_16(2134);
emit_16(2200);
emit_16(2133);
emit_16(2200);
emit_16(2134);
emit_16(2201);
emit_16(2135);
emit_16(2201);
emit_16(2134);
emit_16(2201);
emit_16(2135);
emit_16(2202);
emit_16(2136);
emit_16(2202);
emit_16(2135);
emit_16(2202);
emit_16(2136);
emit_16(2203);
emit_16(2137);
emit_16(2203);
emit_16(2136);
emit_16(2203);
emit_16(2137);
emit_16(2204);
emit_16(2138);
emit_16(2204);
emit_16(2137);
emit_16(2204);
emit_16(2138);
emit_16(2205);
emit_16(2139);
emit_16(2205);
emit_16(2138);
emit_16(2205);
emit_16(2139);
emit_16(2206);
emit_16(2140);
emit_16(2206);
emit_16(2139);
emit_16(2206);
emit_16(2140);
emit_16(2207);
emit_16(2141);
emit_16(2207);
emit_16(2140);
emit_16(2207);
emit_16(2141);
emit_16(2208);
emit_16(2142);
emit_16(2208);
emit_16(2141);
emit_16(2208);
emit_16(2142);
emit_16(2209);
emit_16(2143);
emit_16(2209);
emit_16(2142);
emit_16(2209);
emit_16(2143);
emit_16(2210);
emit_16(2144);
emit_16(2210);
emit_16(2143);
emit_16(2210);
emit_16(2144);
emit_16(2211);
emit_16(2145);
emit_16(2211);
emit_16(2144);
emit_16(2211);
emit_16(2145);
emit_16(2212);
emit_16(2146);
emit_16(2212);
emit_16(2145);
emit_16(2212);
emit_16(2146);
emit_16(2213);
emit_16(2147);
emit_16(2213);
emit_16(2146);
emit_16(2213);
emit_16(2147);
emit_16(2214);
emit_16(2148);
emit_16(2214);
emit_16(2147);
emit_16(2214);
emit_16(2148);
emit_16(2215);
emit_16(2149);
emit_16(2215);
emit_16(2148);
emit_16(2215);
emit_16(2149);
emit_16(2216);
emit_16(2150);
emit_16(2216);
emit_16(2149);
emit_16(2216);
emit_16(2150);
emit_16(2217);
emit_16(2151);
emit_16(2217);
emit_16(2150);
emit_16(2217);
emit_16(2151);
emit_16(2218);
emit_16(2152);
emit_16(2218);
emit_16(2151);
emit_16(2218);
emit_16(2152);
emit_16(2219);
emit_16(2153);
emit_16(2219);
emit_16(2152);
emit_16(2219);
emit_16(2153);
emit_16(2220);
emit_16(2154);
emit_16(2220);
emit_16(2153);
emit_16(2220);
emit_16(2154);
emit_16(2221);
emit_16(2155);
emit_16(2221);
emit_16(2154);
emit_16(2221);
emit_16(2155);
emit_16(2222);
emit_16(2156);
emit_16(2222);
emit_16(2155);
emit_16(2222);
emit_16(2156);
emit_16(2223);
emit_16(2157);
emit_16(2223);
emit_16(2156);
emit_16(2223);
emit_16(2157);
emit_16(2224);
emit_16(2158);
emit_16(2224);
emit_16(2157);
emit_16(2224);
emit_16(2158);
emit_16(2225);
emit_16(2159);
emit_16(2225);
emit_16(2158);
emit_16(2225);
emit_16(2159);
emit_16(2226);
emit_16(2160);
emit_16(2226);
emit_16(2159);
emit_16(2226);
emit_16(2160);
emit_16(2227);
emit_16(2161);
emit_16(2227);
emit_16(2160);
emit_16(2227);
emit_16(2161);
emit_16(2228);
emit_16(2162);
emit_16(2228);
emit_16(2161);
emit_16(2228);
emit_16(2162);
emit_16(2229);
emit_16(2163);
emit_16(2229);
emit_16(2162);
emit_16(2229);
emit_16(2163);
emit_16(2230);
emit_16(2164);
emit_16(2230);
emit_16(2163);
emit_16(2230);
emit_16(2164);
emit_16(2231);
emit_16(2165);
emit_16(2231);
emit_16(2164);
emit_16(2231);
emit_16(2165);
emit_16(2232);
emit_16(2166);
emit_16(2232);
emit_16(2165);
emit_16(2232);
emit_16(2166);
emit_16(2233);
emit_16(2167);
emit_16(2233);
emit_16(2166);
emit_16(2233);
emit_16(2167);
emit_16(2234);
emit_16(2168);
emit_16(2234);
emit_16(2167);
emit_16(2234);
emit_16(2168);
emit_16(2235);
emit_16(2169);
emit_16(2235);
emit_16(2168);
emit_16(2235);
emit_16(2169);
emit_16(2236);
emit_16(2170);
emit_16(2236);
emit_16(2169);
emit_16(2236);
emit_16(2170);
emit_16(2237);
emit_16(2171);
emit_16(2237);
emit_16(2170);
emit_16(2237);
emit_16(2171);
emit_16(2238);
emit_16(2172);
emit_16(2238);
emit_16(2171);
emit_16(2238);
emit_16(2172);
emit_16(2239);
emit_16(2173);
emit_16(2239);
emit_16(2172);
emit_16(2239);
emit_16(2173);
emit_16(2240);
emit_16(2174);
emit_16(2240);
emit_16(2173);
emit_16(2240);
emit_16(2174);
emit_16(2241);
emit_16(2175);
emit_16(2241);
emit_16(2174);
emit_16(2241);
emit_16(2175);
emit_16(2242);
emit_16(2176);
emit_16(2242);
emit_16(2175);
emit_16(2242);
emit_16(2176);
emit_16(2243);
emit_16(2177);
emit_16(2243);
emit_16(2176);
emit_16(2244);
emit_16(2178);
emit_16(2245);
emit_16(2179);
emit_16(2245);
emit_16(2178);
emit_16(2245);
emit_16(2179);
emit_16(2246);
emit_16(2180);
emit_16(2246);
emit_16(2179);
emit_16(2246);
emit_16(2180);
emit_16(2247);
emit_16(2181);
emit_16(2247);
emit_16(2180);
emit_16(2247);
emit_16(2181);
emit_16(2248);
emit_16(2182);
emit_16(2248);
emit_16(2181);
emit_16(2248);
emit_16(2182);
emit_16(2249);
emit_16(2183);
emit_16(2249);
emit_16(2182);
emit_16(2249);
emit_16(2183);
emit_16(2250);
emit_16(2184);
emit_16(2250);
emit_16(2183);
emit_16(2250);
emit_16(2184);
emit_16(2251);
emit_16(2185);
emit_16(2251);
emit_16(2184);
emit_16(2251);
emit_16(2185);
emit_16(2252);
emit_16(2186);
emit_16(2252);
emit_16(2185);
emit_16(2252);
emit_16(2186);
emit_16(2253);
emit_16(2187);
emit_16(2253);
emit_16(2186);
emit_16(2253);
emit_16(2187);
emit_16(2254);
emit_16(2188);
emit_16(2254);
emit_16(2187);
emit_16(2254);
emit_16(2188);
emit_16(2255);
emit_16(2189);
emit_16(2255);
emit_16(2188);
emit_16(2255);
emit_16(2189);
emit_16(2256);
emit_16(2190);
emit_16(2256);
emit_16(2189);
emit_16(2256);
emit_16(2190);
emit_16(2257);
emit_16(2191);
emit_16(2257);
emit_16(2190);
emit_16(2257);
emit_16(2191);
emit_16(2258);
emit_16(2192);
emit_16(2258);
emit_16(2191);
emit_16(2258);
emit_16(2192);
emit_16(2259);
emit_16(2193);
emit_16(2259);
emit_16(2192);
emit_16(2259);
emit_16(2193);
emit_16(2260);
emit_16(2194);
emit_16(2260);
emit_16(2193);
emit_16(2260);
emit_16(2194);
emit_16(2261);
emit_16(2195);
emit_16(2261);
emit_16(2194);
emit_16(2261);
emit_16(2195);
emit_16(2262);
emit_16(2196);
emit_16(2262);
emit_16(2195);
emit_16(2262);
emit_16(2196);
emit_16(2263);
emit_16(2197);
emit_16(2263);
emit_16(2196);
emit_16(2263);
emit_16(2197);
emit_16(2264);
emit_16(2198);
emit_16(2264);
emit_16(2197);
emit_16(2264);
emit_16(2198);
emit_16(2265);
emit_16(2199);
emit_16(2265);
emit_16(2198);
emit_16(2265);
emit_16(2199);
emit_16(2266);
emit_16(2200);
emit_16(2266);
emit_16(2199);
emit_16(2266);
emit_16(2200);
emit_16(2267);
emit_16(2201);
emit_16(2267);
emit_16(2200);
emit_16(2267);
emit_16(2201);
emit_16(2268);
emit_16(2202);
emit_16(2268);
emit_16(2201);
emit_16(2268);
emit_16(2202);
emit_16(2269);
emit_16(2203);
emit_16(2269);
emit_16(2202);
emit_16(2269);
emit_16(2203);
emit_16(2270);
emit_16(2204);
emit_16(2270);
emit_16(2203);
emit_16(2270);
emit_16(2204);
emit_16(2271);
emit_16(2205);
emit_16(2271);
emit_16(2204);
emit_16(2271);
emit_16(2205);
emit_16(2272);
emit_16(2206);
emit_16(2272);
emit_16(2205);
emit_16(2272);
emit_16(2206);
emit_16(2273);
emit_16(2207);
emit_16(2273);
emit_16(2206);
emit_16(2273);
emit_16(2207);
emit_16(2274);
emit_16(2208);
emit_16(2274);
emit_16(2207);
emit_16(2274);
emit_16(2208);
emit_16(2275);
emit_16(2209);
emit_16(2275);
emit_16(2208);
emit_16(2275);
emit_16(2209);
emit_16(2276);
emit_16(2210);
emit_16(2276);
emit_16(2209);
emit_16(2276);
emit_16(2210);
emit_16(2277);
emit_16(2211);
emit_16(2277);
emit_16(2210);
emit_16(2277);
emit_16(2211);
emit_16(2278);
emit_16(2212);
emit_16(2278);
emit_16(2211);
emit_16(2278);
emit_16(2212);
emit_16(2279);
emit_16(2213);
emit_16(2279);
emit_16(2212);
emit_16(2279);
emit_16(2213);
emit_16(2280);
emit_16(2214);
emit_16(2280);
emit_16(2213);
emit_16(2280);
emit_16(2214);
emit_16(2281);
emit_16(2215);
emit_16(2281);
emit_16(2214);
emit_16(2281);
emit_16(2215);
emit_16(2282);
emit_16(2216);
emit_16(2282);
emit_16(2215);
emit_16(2282);
emit_16(2216);
emit_16(2283);
emit_16(2217);
emit_16(2283);
emit_16(2216);
emit_16(2283);
emit_16(2217);
emit_16(2284);
emit_16(2218);
emit_16(2284);
emit_16(2217);
emit_16(2284);
emit_16(2218);
emit_16(2285);
emit_16(2219);
emit_16(2285);
emit_16(2218);
emit_16(2285);
emit_16(2219);
emit_16(2286);
emit_16(2220);
emit_16(2286);
emit_16(2219);
emit_16(2286);
emit_16(2220);
emit_16(2287);
emit_16(2221);
emit_16(2287);
emit_16(2220);
emit_16(2287);
emit_16(2221);
emit_16(2288);
emit_16(2222);
emit_16(2288);
emit_16(2221);
emit_16(2288);
emit_16(2222);
emit_16(2289);
emit_16(2223);
emit_16(2289);
emit_16(2222);
emit_16(2289);
emit_16(2223);
emit_16(2290);
emit_16(2224);
emit_16(2290);
emit_16(2223);
emit_16(2290);
emit_16(2224);
emit_16(2291);
emit_16(2225);
emit_16(2291);
emit_16(2224);
emit_16(2291);
emit_16(2225);
emit_16(2292);
emit_16(2226);
emit_16(2292);
emit_16(2225);
emit_16(2292);
emit_16(2226);
emit_16(2293);
emit_16(2227);
emit_16(2293);
emit_16(2226);
emit_16(2293);
emit_16(2227);
emit_16(2294);
emit_16(2228);
emit_16(2294);
emit_16(2227);
emit_16(2294);
emit_16(2228);
emit_16(2295);
emit_16(2229);
emit_16(2295);
emit_16(2228);
emit_16(2295);
emit_16(2229);
emit_16(2296);
emit_16(2230);
emit_16(2296);
emit_16(2229);
emit_16(2296);
emit_16(2230);
emit_16(2297);
emit_16(2231);
emit_16(2297);
emit_16(2230);
emit_16(2297);
emit_16(2231);
emit_16(2298);
emit_16(2232);
emit_16(2298);
emit_16(2231);
emit_16(2298);
emit_16(2232);
emit_16(2299);
emit_16(2233);
emit_16(2299);
emit_16(2232);
emit_16(2299);
emit_16(2233);
emit_16(2300);
emit_16(2234);
emit_16(2300);
emit_16(2233);
emit_16(2300);
emit_16(2234);
emit_16(2301);
emit_16(2235);
emit_16(2301);
emit_16(2234);
emit_16(2301);
emit_16(2235);
emit_16(2302);
emit_16(2236);
emit_16(2302);
emit_16(2235);
emit_16(2302);
emit_16(2236);
emit_16(2303);
emit_16(2237);
emit_16(2303);
emit_16(2236);
emit_16(2303);
emit_16(2237);
emit_16(2304);
emit_16(2238);
emit_16(2304);
emit_16(2237);
emit_16(2304);
emit_16(2238);
emit_16(2305);
emit_16(2239);
emit_16(2305);
emit_16(2238);
emit_16(2305);
emit_16(2239);
emit_16(2306);
emit_16(2240);
emit_16(2306);
emit_16(2239);
emit_16(2306);
emit_16(2240);
emit_16(2307);
emit_16(2241);
emit_16(2307);
emit_16(2240);
emit_16(2307);
emit_16(2241);
emit_16(2308);
emit_16(2242);
emit_16(2308);
emit_16(2241);
emit_16(2308);
emit_16(2242);
emit_16(2309);
emit_16(2243);
emit_16(2309);
emit_16(2242);
emit_start(Landscape07Idx)
emit_16(0);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(2);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(4);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(6);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(8);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(10);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(12);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(14);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(16);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(18);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(20);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(22);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(24);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(26);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(28);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(30);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(32);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(34);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(36);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(38);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(40);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(42);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(44);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(46);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(48);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(50);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(52);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(54);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(56);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(58);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(60);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(62);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(64);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(66);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(68);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(70);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(72);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(74);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(76);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(78);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(80);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(82);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(84);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(86);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(88);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(90);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(92);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(94);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(96);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(98);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(100);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(102);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(104);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(106);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(108);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(110);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(112);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(114);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(116);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(118);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(120);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(122);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(124);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(126);
emit_16(125);
emit_16(128);
emit_16(0);
emit_16(129);
emit_16(2);
emit_16(129);
emit_16(0);
emit_16(129);
emit_16(2);
emit_16(130);
emit_16(4);
emit_16(130);
emit_16(2);
emit_16(130);
emit_16(4);
emit_16(131);
emit_16(6);
emit_16(131);
emit_16(4);
emit_16(131);
emit_16(6);
emit_16(132);
emit_16(8);
emit_16(132);
emit_16(6);
emit_16(132);
emit_16(8);
emit_16(133);
emit_16(10);
emit_16(133);
emit_16(8);
emit_16(133);
emit_16(10);
emit_16(134);
emit_16(12);
emit_16(134);
emit_16(10);
emit_16(134);
emit_16(12);
emit_16(135);
emit_16(14);
emit_16(135);
emit_16(12);
emit_16(135);
emit_16(14);
emit_16(136);
emit_16(16);
emit_16(136);
emit_16(14);
emit_16(136);
emit_16(16);
emit_16(137);
emit_16(18);
emit_16(137);
emit_16(16);
emit_16(137);
emit_16(18);
emit_16(138);
emit_16(20);
emit_16(138);
emit_16(18);
emit_16(138);
emit_16(20);
emit_16(139);
emit_16(22);
emit_16(139);
emit_16(20);
emit_16(139);
emit_16(22);
emit_16(140);
emit_16(24);
emit_16(140);
emit_16(22);
emit_16(140);
emit_16(24);
emit_16(141);
emit_16(26);
emit_16(141);
emit_16(24);
emit_16(141);
emit_16(26);
emit_16(142);
emit_16(28);
emit_16(142);
emit_16(26);
emit_16(142);
emit_16(28);
emit_16(143);
emit_16(30);
emit_16(143);
emit_16(28);
emit_16(143);
emit_16(30);
emit_16(144);
emit_16(32);
emit_16(144);
emit_16(30);
emit_16(144);
emit_16(32);
emit_16(145);
emit_16(34);
emit_16(145);
emit_16(32);
emit_16(145);
emit_16(34);
emit_16(146);
emit_16(36);
emit_16(146);
emit_16(34);
emit_16(146);
emit_16(36);
emit_16(147);
emit_16(38);
emit_16(147);
emit_16(36);
emit_16(147);
emit_16(38);
emit_16(148);
emit_16(40);
emit_16(148);
emit_16(38);
emit_16(148);
emit_16(40);
emit_16(149);
emit_16(42);
emit_16(149);
emit_16(40);
emit_16(149);
emit_16(42);
emit_16(150);
emit_16(44);
emit_16(150);
emit_16(42);
emit_16(150);
emit_16(44);
emit_16(151);
emit_16(46);
emit_16(151);
emit_16(44);
emit_16(151);
emit_16(46);
emit_16(152);
emit_16(48);
emit_16(152);
emit_16(46);
emit_16(152);
emit_16(48);
emit_16(153);
emit_16(50);
emit_16(153);
emit_16(48);
emit_16(153);
emit_16(50);
emit_16(154);
emit_16(52);
emit_16(154);
emit_16(50);
emit_16(154);
emit_16(52);
emit_16(155);
emit_16(54);
emit_16(155);
emit_16(52);
emit_16(155);
emit_16(54);
emit_16(156);
emit_16(56);
emit_16(156);
emit_16(54);
emit_16(156);
emit_16(56);
emit_16(157);
emit_16(58);
emit_16(157);
emit_16(56);
emit_16(157);
emit_16(58);
emit_16(158);
emit_16(60);
emit_16(158);
emit_16(58);
emit_16(158);
emit_16(60);
emit_16(159);
emit_16(62);
emit_16(159);
emit_16(60);
emit_16(159);
emit_16(62);
emit_16(160);
emit_16(64);
emit_16(160);
emit_16(62);
emit_16(160);
emit_16(64);
emit_16(161);
emit_16(66);
emit_16(161);
emit_16(64);
emit_16(161);
emit_16(66);
emit_16(162);
emit_16(68);
emit_16(162);
emit_16(66);
emit_16(162);
emit_16(68);
emit_16(163);
emit_16(70);
emit_16(163);
emit_16(68);
emit_16(163);
emit_16(70);
emit_16(164);
emit_16(72);
emit_16(164);
emit_16(70);
emit_16(164);
emit_16(72);
emit_16(165);
emit_16(74);
emit_16(165);
emit_16(72);
emit_16(165);
emit_16(74);
emit_16(166);
emit_16(76);
emit_16(166);
emit_16(74);
emit_16(166);
emit_16(76);
emit_16(167);
emit_16(78);
emit_16(167);
emit_16(76);
emit_16(167);
emit_16(78);
emit_16(168);
emit_16(80);
emit_16(168);
emit_16(78);
emit_16(168);
emit_16(80);
emit_16(169);
emit_16(82);
emit_16(169);
emit_16(80);
emit_16(169);
emit_16(82);
emit_16(170);
emit_16(84);
emit_16(170);
emit_16(82);
emit_16(170);
emit_16(84);
emit_16(171);
emit_16(86);
emit_16(171);
emit_16(84);
emit_16(171);
emit_16(86);
emit_16(172);
emit_16(88);
emit_16(172);
emit_16(86);
emit_16(172);
emit_16(88);
emit_16(173);
emit_16(90);
emit_16(173);
emit_16(88);
emit_16(173);
emit_16(90);
emit_16(174);
emit_16(92);
emit_16(174);
emit_16(90);
emit_16(174);
emit_16(92);
emit_16(175);
emit_16(94);
emit_16(175);
emit_16(92);
emit_16(175);
emit_16(94);
emit_16(176);
emit_16(96);
emit_16(176);
emit_16(94);
emit_16(176);
emit_16(96);
emit_16(177);
emit_16(98);
emit_16(177);
emit_16(96);
emit_16(177);
emit_16(98);
emit_16(178);
emit_16(100);
emit_16(178);
emit_16(98);
emit_16(178);
emit_16(100);
emit_16(179);
emit_16(102);
emit_16(179);
emit_16(100);
emit_16(179);
emit_16(102);
emit_16(180);
emit_16(104);
emit_16(180);
emit_16(102);
emit_16(180);
emit_16(104);
emit_16(181);
emit_16(106);
emit_16(181);
emit_16(104);
emit_16(181);
emit_16(106);
emit_16(182);
emit_16(108);
emit_16(182);
emit_16(106);
emit_16(182);
emit_16(108);
emit_16(183);
emit_16(110);
emit_16(183);
emit_16(108);
emit_16(183);
emit_16(110);
emit_16(184);
emit_16(112);
emit_16(184);
emit_16(110);
emit_16(184);
emit_16(112);
emit_16(185);
emit_16(114);
emit_16(185);
emit_16(112);
emit_16(185);
emit_16(114);
emit_16(186);
emit_16(116);
emit_16(186);
emit_16(114);
emit_16(186);
emit_16(116);
emit_16(187);
emit_16(118);
emit_16(187);
emit_16(116);
emit_16(187);
emit_16(118);
emit_16(188);
emit_16(120);
emit_16(188);
emit_16(118);
emit_16(188);
emit_16(120);
emit_16(189);
emit_16(122);
emit_16(189);
emit_16(120);
emit_16(189);
emit_16(122);
emit_16(190);
emit_16(124);
emit_16(190);
emit_16(122);
emit_16(190);
emit_16(124);
emit_16(191);
emit_16(126);
emit_16(191);
emit_16(124);
emit_16(192);
emit_16(128);
emit_16(193);
emit_16(129);
emit_16(193);
emit_16(128);
emit_16(193);
emit_16(129);
emit_16(194);
emit_16(130);
emit_16(194);
emit_16(129);
emit_16(194);
emit_16(130);
emit_16(195);
emit_16(131);
emit_16(195);
emit_16(130);
emit_16(195);
emit_16(131);
emit_16(196);
emit_16(132);
emit_16(196);
emit_16(131);
emit_16(196);
emit_16(132);
emit_16(197);
emit_16(133);
emit_16(197);
emit_16(132);
emit_16(197);
emit_16(133);
emit_16(198);
emit_16(134);
emit_16(198);
emit_16(133);
emit_16(198);
emit_16(134);
emit_16(199);
emit_16(135);
emit_16(199);
emit_16(134);
emit_16(199);
emit_16(135);
emit_16(200);
emit_16(136);
emit_16(200);
emit_16(135);
emit_16(200);
emit_16(136);
emit_16(201);
emit_16(137);
emit_16(201);
emit_16(136);
emit_16(201);
emit_16(137);
emit_16(202);
emit_16(138);
emit_16(202);
emit_16(137);
emit_16(202);
emit_16(138);
emit_16(203);
emit_16(139);
emit_16(203);
emit_16(138);
emit_16(203);
emit_16(139);
emit_16(204);
emit_16(140);
emit_16(204);
emit_16(139);
emit_16(204);
emit_16(140);
emit_16(205);
emit_16(141);
emit_16(205);
emit_16(140);
emit_16(205);
emit_16(141);
emit_16(206);
emit_16(142);
emit_16(206);
emit_16(141);
emit_16(206);
emit_16(142);
emit_16(207);
emit_16(143);
emit_16(207);
emit_16(142);
emit_16(207);
emit_16(143);
emit_16(208);
emit_16(144);
emit_16(208);
emit_16(143);
emit_16(208);
emit_16(144);
emit_16(209);
emit_16(145);
emit_16(209);
emit_16(144);
emit_16(209);
emit_16(145);
emit_16(210);
emit_16(146);
emit_16(210);
emit_16(145);
emit_16(210);
emit_16(146);
emit_16(211);
emit_16(147);
emit_16(211);
emit_16(146);
emit_16(211);
emit_16(147);
emit_16(212);
emit_16(148);
emit_16(212);
emit_16(147);
emit_16(212);
emit_16(148);
emit_16(213);
emit_16(149);
emit_16(213);
emit_16(148);
emit_16(213);
emit_16(149);
emit_16(214);
emit_16(150);
emit_16(214);
emit_16(149);
emit_16(214);
emit_16(150);
emit_16(215);
emit_16(151);
emit_16(215);
emit_16(150);
emit_16(215);
emit_16(151);
emit_16(216);
emit_16(152);
emit_16(216);
emit_16(151);
emit_16(216);
emit_16(152);
emit_16(217);
emit_16(153);
emit_16(217);
emit_16(152);
emit_16(217);
emit_16(153);
emit_16(218);
emit_16(154);
emit_16(218);
emit_16(153);
emit_16(218);
emit_16(154);
emit_16(219);
emit_16(155);
emit_16(219);
emit_16(154);
emit_16(219);
emit_16(155);
emit_16(220);
emit_16(156);
emit_16(220);
emit_16(155);
emit_16(220);
emit_16(156);
emit_16(221);
emit_16(157);
emit_16(221);
emit_16(156);
emit_16(221);
emit_16(157);
emit_16(222);
emit_16(158);
emit_16(222);
emit_16(157);
emit_16(222);
emit_16(158);
emit_16(223);
emit_16(159);
emit_16(223);
emit_16(158);
emit_16(223);
emit_16(159);
emit_16(224);
emit_16(160);
emit_16(224);
emit_16(159);
emit_16(224);
emit_16(160);
emit_16(225);
emit_16(161);
emit_16(225);
emit_16(160);
emit_16(225);
emit_16(161);
emit_16(226);
emit_16(162);
emit_16(226);
emit_16(161);
emit_16(226);
emit_16(162);
emit_16(227);
emit_16(163);
emit_16(227);
emit_16(162);
emit_16(227);
emit_16(163);
emit_16(228);
emit_16(164);
emit_16(228);
emit_16(163);
emit_16(228);
emit_16(164);
emit_16(229);
emit_16(165);
emit_16(229);
emit_16(164);
emit_16(229);
emit_16(165);
emit_16(230);
emit_16(166);
emit_16(230);
emit_16(165);
emit_16(230);
emit_16(166);
emit_16(231);
emit_16(167);
emit_16(231);
emit_16(166);
emit_16(231);
emit_16(167);
emit_16(232);
emit_16(168);
emit_16(232);
emit_16(167);
emit_16(232);
emit_16(168);
emit_16(233);
emit_16(169);
emit_16(233);
emit_16(168);
emit_16(233);
emit_16(169);
emit_16(234);
emit_16(170);
emit_16(234);
emit_16(169);
emit_16(234);
emit_16(170);
emit_16(235);
emit_16(171);
emit_16(235);
emit_16(170);
emit_16(235);
emit_16(171);
emit_16(236);
emit_16(172);
emit_16(236);
emit_16(171);
emit_16(236);
emit_16(172);
emit_16(237);
emit_16(173);
emit_16(237);
emit_16(172);
emit_16(237);
emit_16(173);
emit_16(238);
emit_16(174);
emit_16(238);
emit_16(173);
emit_16(238);
emit_16(174);
emit_16(239);
emit_16(175);
emit_16(239);
emit_16(174);
emit_16(239);
emit_16(175);
emit_16(240);
emit_16(176);
emit_16(240);
emit_16(175);
emit_16(240);
emit_16(176);
emit_16(241);
emit_16(177);
emit_16(241);
emit_16(176);
emit_16(241);
emit_16(177);
emit_16(242);
emit_16(178);
emit_16(242);
emit_16(177);
emit_16(242);
emit_16(178);
emit_16(243);
emit_16(179);
emit_16(243);
emit_16(178);
emit_16(243);
emit_16(179);
emit_16(244);
emit_16(180);
emit_16(244);
emit_16(179);
emit_16(244);
emit_16(180);
emit_16(245);
emit_16(181);
emit_16(245);
emit_16(180);
emit_16(245);
emit_16(181);
emit_16(246);
emit_16(182);
emit_16(246);
emit_16(181);
emit_16(246);
emit_16(182);
emit_16(247);
emit_16(183);
emit_16(247);
emit_16(182);
emit_16(247);
emit_16(183);
emit_16(248);
emit_16(184);
emit_16(248);
emit_16(183);
emit_16(248);
emit_16(184);
emit_16(249);
emit_16(185);
emit_16(249);
emit_16(184);
emit_16(249);
emit_16(185);
emit_16(250);
emit_16(186);
emit_16(250);
emit_16(185);
emit_16(250);
emit_16(186);
emit_16(251);
emit_16(187);
emit_16(251);
emit_16(186);
emit_16(251);
emit_16(187);
emit_16(252);
emit_16(188);
emit_16(252);
emit_16(187);
emit_16(252);
emit_16(188);
emit_16(253);
emit_16(189);
emit_16(253);
emit_16(188);
emit_16(253);
emit_16(189);
emit_16(254);
emit_16(190);
emit_16(254);
emit_16(189);
emit_16(254);
emit_16(190);
emit_16(255);
emit_16(191);
emit_16(255);
emit_16(190);
emit_16(256);
emit_16(192);
emit_16(257);
emit_16(193);
emit_16(257);
emit_16(192);
emit_16(257);
emit_16(193);
emit_16(258);
emit_16(194);
emit_16(258);
emit_16(193);
emit_16(258);
emit_16(194);
emit_16(259);
emit_16(195);
emit_16(259);
emit_16(194);
emit_16(259);
emit_16(195);
emit_16(260);
emit_16(196);
emit_16(260);
emit_16(195);
emit_16(260);
emit_16(196);
emit_16(261);
emit_16(197);
emit_16(261);
emit_16(196);
emit_16(261);
emit_16(197);
emit_16(262);
emit_16(198);
emit_16(262);
emit_16(197);
emit_16(262);
emit_16(198);
emit_16(263);
emit_16(199);
emit_16(263);
emit_16(198);
emit_16(263);
emit_16(199);
emit_16(264);
emit_16(200);
emit_16(264);
emit_16(199);
emit_16(264);
emit_16(200);
emit_16(265);
emit_16(201);
emit_16(265);
emit_16(200);
emit_16(265);
emit_16(201);
emit_16(266);
emit_16(202);
emit_16(266);
emit_16(201);
emit_16(266);
emit_16(202);
emit_16(267);
emit_16(203);
emit_16(267);
emit_16(202);
emit_16(267);
emit_16(203);
emit_16(268);
emit_16(204);
emit_16(268);
emit_16(203);
emit_16(268);
emit_16(204);
emit_16(269);
emit_16(205);
emit_16(269);
emit_16(204);
emit_16(269);
emit_16(205);
emit_16(270);
emit_16(206);
emit_16(270);
emit_16(205);
emit_16(270);
emit_16(206);
emit_16(271);
emit_16(207);
emit_16(271);
emit_16(206);
emit_16(271);
emit_16(207);
emit_16(272);
emit_16(208);
emit_16(272);
emit_16(207);
emit_16(272);
emit_16(208);
emit_16(273);
emit_16(209);
emit_16(273);
emit_16(208);
emit_16(273);
emit_16(209);
emit_16(274);
emit_16(210);
emit_16(274);
emit_16(209);
emit_16(274);
emit_16(210);
emit_16(275);
emit_16(211);
emit_16(275);
emit_16(210);
emit_16(275);
emit_16(211);
emit_16(276);
emit_16(212);
emit_16(276);
emit_16(211);
emit_16(276);
emit_16(212);
emit_16(277);
emit_16(213);
emit_16(277);
emit_16(212);
emit_16(277);
emit_16(213);
emit_16(278);
emit_16(214);
emit_16(278);
emit_16(213);
emit_16(278);
emit_16(214);
emit_16(279);
emit_16(215);
emit_16(279);
emit_16(214);
emit_16(279);
emit_16(215);
emit_16(280);
emit_16(216);
emit_16(280);
emit_16(215);
emit_16(280);
emit_16(216);
emit_16(281);
emit_16(217);
emit_16(281);
emit_16(216);
emit_16(281);
emit_16(217);
emit_16(282);
emit_16(218);
emit_16(282);
emit_16(217);
emit_16(282);
emit_16(218);
emit_16(283);
emit_16(219);
emit_16(283);
emit_16(218);
emit_16(283);
emit_16(219);
emit_16(284);
emit_16(220);
emit_16(284);
emit_16(219);
emit_16(284);
emit_16(220);
emit_16(285);
emit_16(221);
emit_16(285);
emit_16(220);
emit_16(285);
emit_16(221);
emit_16(286);
emit_16(222);
emit_16(286);
emit_16(221);
emit_16(286);
emit_16(222);
emit_16(287);
emit_16(223);
emit_16(287);
emit_16(222);
emit_16(287);
emit_16(223);
emit_16(288);
emit_16(224);
emit_16(288);
emit_16(223);
emit_16(288);
emit_16(224);
emit_16(289);
emit_16(225);
emit_16(289);
emit_16(224);
emit_16(289);
emit_16(225);
emit_16(290);
emit_16(226);
emit_16(290);
emit_16(225);
emit_16(290);
emit_16(226);
emit_16(291);
emit_16(227);
emit_16(291);
emit_16(226);
emit_16(291);
emit_16(227);
emit_16(292);
emit_16(228);
emit_16(292);
emit_16(227);
emit_16(292);
emit_16(228);
emit_16(293);
emit_16(229);
emit_16(293);
emit_16(228);
emit_16(293);
emit_16(229);
emit_16(294);
emit_16(230);
emit_16(294);
emit_16(229);
emit_16(294);
emit_16(230);
emit_16(295);
emit_16(231);
emit_16(295);
emit_16(230);
emit_16(295);
emit_16(231);
emit_16(296);
emit_16(232);
emit_16(296);
emit_16(231);
emit_16(296);
emit_16(232);
emit_16(297);
emit_16(233);
emit_16(297);
emit_16(232);
emit_16(297);
emit_16(233);
emit_16(298);
emit_16(234);
emit_16(298);
emit_16(233);
emit_16(298);
emit_16(234);
emit_16(299);
emit_16(235);
emit_16(299);
emit_16(234);
emit_16(299);
emit_16(235);
emit_16(300);
emit_16(236);
emit_16(300);
emit_16(235);
emit_16(300);
emit_16(236);
emit_16(301);
emit_16(237);
emit_16(301);
emit_16(236);
emit_16(301);
emit_16(237);
emit_16(302);
emit_16(238);
emit_16(302);
emit_16(237);
emit_16(302);
emit_16(238);
emit_16(303);
emit_16(239);
emit_16(303);
emit_16(238);
emit_16(303);
emit_16(239);
emit_16(304);
emit_16(240);
emit_16(304);
emit_16(239);
emit_16(304);
emit_16(240);
emit_16(305);
emit_16(241);
emit_16(305);
emit_16(240);
emit_16(305);
emit_16(241);
emit_16(306);
emit_16(242);
emit_16(306);
emit_16(241);
emit_16(306);
emit_16(242);
emit_16(307);
emit_16(243);
emit_16(307);
emit_16(242);
emit_16(307);
emit_16(243);
emit_16(308);
emit_16(244);
emit_16(308);
emit_16(243);
emit_16(308);
emit_16(244);
emit_16(309);
emit_16(245);
emit_16(309);
emit_16(244);
emit_16(309);
emit_16(245);
emit_16(310);
emit_16(246);
emit_16(310);
emit_16(245);
emit_16(310);
emit_16(246);
emit_16(311);
emit_16(247);
emit_16(311);
emit_16(246);
emit_16(311);
emit_16(247);
emit_16(312);
emit_16(248);
emit_16(312);
emit_16(247);
emit_16(312);
emit_16(248);
emit_16(313);
emit_16(249);
emit_16(313);
emit_16(248);
emit_16(313);
emit_16(249);
emit_16(314);
emit_16(250);
emit_16(314);
emit_16(249);
emit_16(314);
emit_16(250);
emit_16(315);
emit_16(251);
emit_16(315);
emit_16(250);
emit_16(315);
emit_16(251);
emit_16(316);
emit_16(252);
emit_16(316);
emit_16(251);
emit_16(316);
emit_16(252);
emit_16(317);
emit_16(253);
emit_16(317);
emit_16(252);
emit_16(317);
emit_16(253);
emit_16(318);
emit_16(254);
emit_16(318);
emit_16(253);
emit_16(318);
emit_16(254);
emit_16(319);
emit_16(255);
emit_16(319);
emit_16(254);
emit_16(320);
emit_16(256);
emit_16(321);
emit_16(257);
emit_16(321);
emit_16(256);
emit_16(321);
emit_16(257);
emit_16(322);
emit_16(258);
emit_16(322);
emit_16(257);
emit_16(322);
emit_16(258);
emit_16(323);
emit_16(259);
emit_16(323);
emit_16(258);
emit_16(323);
emit_16(259);
emit_16(324);
emit_16(260);
emit_16(324);
emit_16(259);
emit_16(324);
emit_16(260);
emit_16(325);
emit_16(261);
emit_16(325);
emit_16(260);
emit_16(325);
emit_16(261);
emit_16(326);
emit_16(262);
emit_16(326);
emit_16(261);
emit_16(326);
emit_16(262);
emit_16(327);
emit_16(263);
emit_16(327);
emit_16(262);
emit_16(327);
emit_16(263);
emit_16(328);
emit_16(264);
emit_16(328);
emit_16(263);
emit_16(328);
emit_16(264);
emit_16(329);
emit_16(265);
emit_16(329);
emit_16(264);
emit_16(329);
emit_16(265);
emit_16(330);
emit_16(266);
emit_16(330);
emit_16(265);
emit_16(330);
emit_16(266);
emit_16(331);
emit_16(267);
emit_16(331);
emit_16(266);
emit_16(331);
emit_16(267);
emit_16(332);
emit_16(268);
emit_16(332);
emit_16(267);
emit_16(332);
emit_16(268);
emit_16(333);
emit_16(269);
emit_16(333);
emit_16(268);
emit_16(333);
emit_16(269);
emit_16(334);
emit_16(270);
emit_16(334);
emit_16(269);
emit_16(334);
emit_16(270);
emit_16(335);
emit_16(271);
emit_16(335);
emit_16(270);
emit_16(335);
emit_16(271);
emit_16(336);
emit_16(272);
emit_16(336);
emit_16(271);
emit_16(336);
emit_16(272);
emit_16(337);
emit_16(273);
emit_16(337);
emit_16(272);
emit_16(337);
emit_16(273);
emit_16(338);
emit_16(274);
emit_16(338);
emit_16(273);
emit_16(338);
emit_16(274);
emit_16(339);
emit_16(275);
emit_16(339);
emit_16(274);
emit_16(339);
emit_16(275);
emit_16(340);
emit_16(276);
emit_16(340);
emit_16(275);
emit_16(340);
emit_16(276);
emit_16(341);
emit_16(277);
emit_16(341);
emit_16(276);
emit_16(341);
emit_16(277);
emit_16(342);
emit_16(278);
emit_16(342);
emit_16(277);
emit_16(342);
emit_16(278);
emit_16(343);
emit_16(279);
emit_16(343);
emit_16(278);
emit_16(343);
emit_16(279);
emit_16(344);
emit_16(280);
emit_16(344);
emit_16(279);
emit_16(344);
emit_16(280);
emit_16(345);
emit_16(281);
emit_16(345);
emit_16(280);
emit_16(345);
emit_16(281);
emit_16(346);
emit_16(282);
emit_16(346);
emit_16(281);
emit_16(346);
emit_16(282);
emit_16(347);
emit_16(283);
emit_16(347);
emit_16(282);
emit_16(347);
emit_16(283);
emit_16(348);
emit_16(284);
emit_16(348);
emit_16(283);
emit_16(348);
emit_16(284);
emit_16(349);
emit_16(285);
emit_16(349);
emit_16(284);
emit_16(349);
emit_16(285);
emit_16(350);
emit_16(286);
emit_16(350);
emit_16(285);
emit_16(350);
emit_16(286);
emit_16(351);
emit_16(287);
emit_16(351);
emit_16(286);
emit_16(351);
emit_16(287);
emit_16(352);
emit_16(288);
emit_16(352);
emit_16(287);
emit_16(352);
emit_16(288);
emit_16(353);
emit_16(289);
emit_16(353);
emit_16(288);
emit_16(353);
emit_16(289);
emit_16(354);
emit_16(290);
emit_16(354);
emit_16(289);
emit_16(354);
emit_16(290);
emit_16(355);
emit_16(291);
emit_16(355);
emit_16(290);
emit_16(355);
emit_16(291);
emit_16(356);
emit_16(292);
emit_16(356);
emit_16(291);
emit_16(356);
emit_16(292);
emit_16(357);
emit_16(293);
emit_16(357);
emit_16(292);
emit_16(357);
emit_16(293);
emit_16(358);
emit_16(294);
emit_16(358);
emit_16(293);
emit_16(358);
emit_16(294);
emit_16(359);
emit_16(295);
emit_16(359);
emit_16(294);
emit_16(359);
emit_16(295);
emit_16(360);
emit_16(296);
emit_16(360);
emit_16(295);
emit_16(360);
emit_16(296);
emit_16(361);
emit_16(297);
emit_16(361);
emit_16(296);
emit_16(361);
emit_16(297);
emit_16(362);
emit_16(298);
emit_16(362);
emit_16(297);
emit_16(362);
emit_16(298);
emit_16(363);
emit_16(299);
emit_16(363);
emit_16(298);
emit_16(363);
emit_16(299);
emit_16(364);
emit_16(300);
emit_16(364);
emit_16(299);
emit_16(364);
emit_16(300);
emit_16(365);
emit_16(301);
emit_16(365);
emit_16(300);
emit_16(365);
emit_16(301);
emit_16(366);
emit_16(302);
emit_16(366);
emit_16(301);
emit_16(366);
emit_16(302);
emit_16(367);
emit_16(303);
emit_16(367);
emit_16(302);
emit_16(367);
emit_16(303);
emit_16(368);
emit_16(304);
emit_16(368);
emit_16(303);
emit_16(368);
emit_16(304);
emit_16(369);
emit_16(305);
emit_16(369);
emit_16(304);
emit_16(369);
emit_16(305);
emit_16(370);
emit_16(306);
emit_16(370);
emit_16(305);
emit_16(370);
emit_16(306);
emit_16(371);
emit_16(307);
emit_16(371);
emit_16(306);
emit_16(371);
emit_16(307);
emit_16(372);
emit_16(308);
emit_16(372);
emit_16(307);
emit_16(372);
emit_16(308);
emit_16(373);
emit_16(309);
emit_16(373);
emit_16(308);
emit_16(373);
emit_16(309);
emit_16(374);
emit_16(310);
emit_16(374);
emit_16(309);
emit_16(374);
emit_16(310);
emit_16(375);
emit_16(311);
emit_16(375);
emit_16(310);
emit_16(375);
emit_16(311);
emit_16(376);
emit_16(312);
emit_16(376);
emit_16(311);
emit_16(376);
emit_16(312);
emit_16(377);
emit_16(313);
emit_16(377);
emit_16(312);
emit_16(377);
emit_16(313);
emit_16(378);
emit_16(314);
emit_16(378);
emit_16(313);
emit_16(378);
emit_16(314);
emit_16(379);
emit_16(315);
emit_16(379);
emit_16(314);
emit_16(379);
emit_16(315);
emit_16(380);
emit_16(316);
emit_16(380);
emit_16(315);
emit_16(380);
emit_16(316);
emit_16(381);
emit_16(317);
emit_16(381);
emit_16(316);
emit_16(381);
emit_16(317);
emit_16(382);
emit_16(318);
emit_16(382);
emit_16(317);
emit_16(382);
emit_16(318);
emit_16(383);
emit_16(319);
emit_16(383);
emit_16(318);
emit_16(384);
emit_16(320);
emit_16(385);
emit_16(321);
emit_16(385);
emit_16(320);
emit_16(385);
emit_16(321);
emit_16(386);
emit_16(322);
emit_16(386);
emit_16(321);
emit_16(386);
emit_16(322);
emit_16(387);
emit_16(323);
emit_16(387);
emit_16(322);
emit_16(387);
emit_16(323);
emit_16(388);
emit_16(324);
emit_16(388);
emit_16(323);
emit_16(388);
emit_16(324);
emit_16(389);
emit_16(325);
emit_16(389);
emit_16(324);
emit_16(389);
emit_16(325);
emit_16(390);
emit_16(326);
emit_16(390);
emit_16(325);
emit_16(390);
emit_16(326);
emit_16(391);
emit_16(327);
emit_16(391);
emit_16(326);
emit_16(391);
emit_16(327);
emit_16(392);
emit_16(328);
emit_16(392);
emit_16(327);
emit_16(392);
emit_16(328);
emit_16(393);
emit_16(329);
emit_16(393);
emit_16(328);
emit_16(393);
emit_16(329);
emit_16(394);
emit_16(330);
emit_16(394);
emit_16(329);
emit_16(394);
emit_16(330);
emit_16(395);
emit_16(331);
emit_16(395);
emit_16(330);
emit_16(395);
emit_16(331);
emit_16(396);
emit_16(332);
emit_16(396);
emit_16(331);
emit_16(396);
emit_16(332);
emit_16(397);
emit_16(333);
emit_16(397);
emit_16(332);
emit_16(397);
emit_16(333);
emit_16(398);
emit_16(334);
emit_16(398);
emit_16(333);
emit_16(398);
emit_16(334);
emit_16(399);
emit_16(335);
emit_16(399);
emit_16(334);
emit_16(399);
emit_16(335);
emit_16(400);
emit_16(336);
emit_16(400);
emit_16(335);
emit_16(400);
emit_16(336);
emit_16(401);
emit_16(337);
emit_16(401);
emit_16(336);
emit_16(401);
emit_16(337);
emit_16(402);
emit_16(338);
emit_16(402);
emit_16(337);
emit_16(402);
emit_16(338);
emit_16(403);
emit_16(339);
emit_16(403);
emit_16(338);
emit_16(403);
emit_16(339);
emit_16(404);
emit_16(340);
emit_16(404);
emit_16(339);
emit_16(404);
emit_16(340);
emit_16(405);
emit_16(341);
emit_16(405);
emit_16(340);
emit_16(405);
emit_16(341);
emit_16(406);
emit_16(342);
emit_16(406);
emit_16(341);
emit_16(406);
emit_16(342);
emit_16(407);
emit_16(343);
emit_16(407);
emit_16(342);
emit_16(407);
emit_16(343);
emit_16(408);
emit_16(344);
emit_16(408);
emit_16(343);
emit_16(408);
emit_16(344);
emit_16(409);
emit_16(345);
emit_16(409);
emit_16(344);
emit_16(409);
emit_16(345);
emit_16(410);
emit_16(346);
emit_16(410);
emit_16(345);
emit_16(410);
emit_16(346);
emit_16(411);
emit_16(347);
emit_16(411);
emit_16(346);
emit_16(411);
emit_16(347);
emit_16(412);
emit_16(348);
emit_16(412);
emit_16(347);
emit_16(412);
emit_16(348);
emit_16(413);
emit_16(349);
emit_16(413);
emit_16(348);
emit_16(413);
emit_16(349);
emit_16(414);
emit_16(350);
emit_16(414);
emit_16(349);
emit_16(414);
emit_16(350);
emit_16(415);
emit_16(351);
emit_16(415);
emit_16(350);
emit_16(415);
emit_16(351);
emit_16(416);
emit_16(352);
emit_16(416);
emit_16(351);
emit_16(416);
emit_16(352);
emit_16(417);
emit_16(353);
emit_16(417);
emit_16(352);
emit_16(417);
emit_16(353);
emit_16(418);
emit_16(354);
emit_16(418);
emit_16(353);
emit_16(418);
emit_16(354);
emit_16(419);
emit_16(355);
emit_16(419);
emit_16(354);
emit_16(419);
emit_16(355);
emit_16(420);
emit_16(356);
emit_16(420);
emit_16(355);
emit_16(420);
emit_16(356);
emit_16(421);
emit_16(357);
emit_16(421);
emit_16(356);
emit_16(421);
emit_16(357);
emit_16(422);
emit_16(358);
emit_16(422);
emit_16(357);
emit_16(422);
emit_16(358);
emit_16(423);
emit_16(359);
emit_16(423);
emit_16(358);
emit_16(423);
emit_16(359);
emit_16(424);
emit_16(360);
emit_16(424);
emit_16(359);
emit_16(424);
emit_16(360);
emit_16(425);
emit_16(361);
emit_16(425);
emit_16(360);
emit_16(425);
emit_16(361);
emit_16(426);
emit_16(362);
emit_16(426);
emit_16(361);
emit_16(426);
emit_16(362);
emit_16(427);
emit_16(363);
emit_16(427);
emit_16(362);
emit_16(427);
emit_16(363);
emit_16(428);
emit_16(364);
emit_16(428);
emit_16(363);
emit_16(428);
emit_16(364);
emit_16(429);
emit_16(365);
emit_16(429);
emit_16(364);
emit_16(429);
emit_16(365);
emit_16(430);
emit_16(366);
emit_16(430);
emit_16(365);
emit_16(430);
emit_16(366);
emit_16(431);
emit_16(367);
emit_16(431);
emit_16(366);
emit_16(431);
emit_16(367);
emit_16(432);
emit_16(368);
emit_16(432);
emit_16(367);
emit_16(432);
emit_16(368);
emit_16(433);
emit_16(369);
emit_16(433);
emit_16(368);
emit_16(433);
emit_16(369);
emit_16(434);
emit_16(370);
emit_16(434);
emit_16(369);
emit_16(434);
emit_16(370);
emit_16(435);
emit_16(371);
emit_16(435);
emit_16(370);
emit_16(435);
emit_16(371);
emit_16(436);
emit_16(372);
emit_16(436);
emit_16(371);
emit_16(436);
emit_16(372);
emit_16(437);
emit_16(373);
emit_16(437);
emit_16(372);
emit_16(437);
emit_16(373);
emit_16(438);
emit_16(374);
emit_16(438);
emit_16(373);
emit_16(438);
emit_16(374);
emit_16(439);
emit_16(375);
emit_16(439);
emit_16(374);
emit_16(439);
emit_16(375);
emit_16(440);
emit_16(376);
emit_16(440);
emit_16(375);
emit_16(440);
emit_16(376);
emit_16(441);
emit_16(377);
emit_16(441);
emit_16(376);
emit_16(441);
emit_16(377);
emit_16(442);
emit_16(378);
emit_16(442);
emit_16(377);
emit_16(442);
emit_16(378);
emit_16(443);
emit_16(379);
emit_16(443);
emit_16(378);
emit_16(443);
emit_16(379);
emit_16(444);
emit_16(380);
emit_16(444);
emit_16(379);
emit_16(444);
emit_16(380);
emit_16(445);
emit_16(381);
emit_16(445);
emit_16(380);
emit_16(445);
emit_16(381);
emit_16(446);
emit_16(382);
emit_16(446);
emit_16(381);
emit_16(446);
emit_16(382);
emit_16(447);
emit_16(383);
emit_16(447);
emit_16(382);
emit_16(448);
emit_16(384);
emit_16(449);
emit_16(385);
emit_16(449);
emit_16(384);
emit_16(449);
emit_16(385);
emit_16(450);
emit_16(386);
emit_16(450);
emit_16(385);
emit_16(450);
emit_16(386);
emit_16(451);
emit_16(387);
emit_16(451);
emit_16(386);
emit_16(451);
emit_16(387);
emit_16(452);
emit_16(388);
emit_16(452);
emit_16(387);
emit_16(452);
emit_16(388);
emit_16(453);
emit_16(389);
emit_16(453);
emit_16(388);
emit_16(453);
emit_16(389);
emit_16(454);
emit_16(390);
emit_16(454);
emit_16(389);
emit_16(454);
emit_16(390);
emit_16(455);
emit_16(391);
emit_16(455);
emit_16(390);
emit_16(455);
emit_16(391);
emit_16(456);
emit_16(392);
emit_16(456);
emit_16(391);
emit_16(456);
emit_16(392);
emit_16(457);
emit_16(393);
emit_16(457);
emit_16(392);
emit_16(457);
emit_16(393);
emit_16(458);
emit_16(394);
emit_16(458);
emit_16(393);
emit_16(458);
emit_16(394);
emit_16(459);
emit_16(395);
emit_16(459);
emit_16(394);
emit_16(459);
emit_16(395);
emit_16(460);
emit_16(396);
emit_16(460);
emit_16(395);
emit_16(460);
emit_16(396);
emit_16(461);
emit_16(397);
emit_16(461);
emit_16(396);
emit_16(461);
emit_16(397);
emit_16(462);
emit_16(398);
emit_16(462);
emit_16(397);
emit_16(462);
emit_16(398);
emit_16(463);
emit_16(399);
emit_16(463);
emit_16(398);
emit_16(463);
emit_16(399);
emit_16(464);
emit_16(400);
emit_16(464);
emit_16(399);
emit_16(464);
emit_16(400);
emit_16(465);
emit_16(401);
emit_16(465);
emit_16(400);
emit_16(465);
emit_16(401);
emit_16(466);
emit_16(402);
emit_16(466);
emit_16(401);
emit_16(466);
emit_16(402);
emit_16(467);
emit_16(403);
emit_16(467);
emit_16(402);
emit_16(467);
emit_16(403);
emit_16(468);
emit_16(404);
emit_16(468);
emit_16(403);
emit_16(468);
emit_16(404);
emit_16(469);
emit_16(405);
emit_16(469);
emit_16(404);
emit_16(469);
emit_16(405);
emit_16(470);
emit_16(406);
emit_16(470);
emit_16(405);
emit_16(470);
emit_16(406);
emit_16(471);
emit_16(407);
emit_16(471);
emit_16(406);
emit_16(471);
emit_16(407);
emit_16(472);
emit_16(408);
emit_16(472);
emit_16(407);
emit_16(472);
emit_16(408);
emit_16(473);
emit_16(409);
emit_16(473);
emit_16(408);
emit_16(473);
emit_16(409);
emit_16(474);
emit_16(410);
emit_16(474);
emit_16(409);
emit_16(474);
emit_16(410);
emit_16(475);
emit_16(411);
emit_16(475);
emit_16(410);
emit_16(475);
emit_16(411);
emit_16(476);
emit_16(412);
emit_16(476);
emit_16(411);
emit_16(476);
emit_16(412);
emit_16(477);
emit_16(413);
emit_16(477);
emit_16(412);
emit_16(477);
emit_16(413);
emit_16(478);
emit_16(414);
emit_16(478);
emit_16(413);
emit_16(478);
emit_16(414);
emit_16(479);
emit_16(415);
emit_16(479);
emit_16(414);
emit_16(479);
emit_16(415);
emit_16(480);
emit_16(416);
emit_16(480);
emit_16(415);
emit_16(480);
emit_16(416);
emit_16(481);
emit_16(417);
emit_16(481);
emit_16(416);
emit_16(481);
emit_16(417);
emit_16(482);
emit_16(418);
emit_16(482);
emit_16(417);
emit_16(482);
emit_16(418);
emit_16(483);
emit_16(419);
emit_16(483);
emit_16(418);
emit_16(483);
emit_16(419);
emit_16(484);
emit_16(420);
emit_16(484);
emit_16(419);
emit_16(484);
emit_16(420);
emit_16(485);
emit_16(421);
emit_16(485);
emit_16(420);
emit_16(485);
emit_16(421);
emit_16(486);
emit_16(422);
emit_16(486);
emit_16(421);
emit_16(486);
emit_16(422);
emit_16(487);
emit_16(423);
emit_16(487);
emit_16(422);
emit_16(487);
emit_16(423);
emit_16(488);
emit_16(424);
emit_16(488);
emit_16(423);
emit_16(488);
emit_16(424);
emit_16(489);
emit_16(425);
emit_16(489);
emit_16(424);
emit_16(489);
emit_16(425);
emit_16(490);
emit_16(426);
emit_16(490);
emit_16(425);
emit_16(490);
emit_16(426);
emit_16(491);
emit_16(427);
emit_16(491);
emit_16(426);
emit_16(491);
emit_16(427);
emit_16(492);
emit_16(428);
emit_16(492);
emit_16(427);
emit_16(492);
emit_16(428);
emit_16(493);
emit_16(429);
emit_16(493);
emit_16(428);
emit_16(493);
emit_16(429);
emit_16(494);
emit_16(430);
emit_16(494);
emit_16(429);
emit_16(494);
emit_16(430);
emit_16(495);
emit_16(431);
emit_16(495);
emit_16(430);
emit_16(495);
emit_16(431);
emit_16(496);
emit_16(432);
emit_16(496);
emit_16(431);
emit_16(496);
emit_16(432);
emit_16(497);
emit_16(433);
emit_16(497);
emit_16(432);
emit_16(497);
emit_16(433);
emit_16(498);
emit_16(434);
emit_16(498);
emit_16(433);
emit_16(498);
emit_16(434);
emit_16(499);
emit_16(435);
emit_16(499);
emit_16(434);
emit_16(499);
emit_16(435);
emit_16(500);
emit_16(436);
emit_16(500);
emit_16(435);
emit_16(500);
emit_16(436);
emit_16(501);
emit_16(437);
emit_16(501);
emit_16(436);
emit_16(501);
emit_16(437);
emit_16(502);
emit_16(438);
emit_16(502);
emit_16(437);
emit_16(502);
emit_16(438);
emit_16(503);
emit_16(439);
emit_16(503);
emit_16(438);
emit_16(503);
emit_16(439);
emit_16(504);
emit_16(440);
emit_16(504);
emit_16(439);
emit_16(504);
emit_16(440);
emit_16(505);
emit_16(441);
emit_16(505);
emit_16(440);
emit_16(505);
emit_16(441);
emit_16(506);
emit_16(442);
emit_16(506);
emit_16(441);
emit_16(506);
emit_16(442);
emit_16(507);
emit_16(443);
emit_16(507);
emit_16(442);
emit_16(507);
emit_16(443);
emit_16(508);
emit_16(444);
emit_16(508);
emit_16(443);
emit_16(508);
emit_16(444);
emit_16(509);
emit_16(445);
emit_16(509);
emit_16(444);
emit_16(509);
emit_16(445);
emit_16(510);
emit_16(446);
emit_16(510);
emit_16(445);
emit_16(510);
emit_16(446);
emit_16(511);
emit_16(447);
emit_16(511);
emit_16(446);
emit_16(512);
emit_16(448);
emit_16(513);
emit_16(449);
emit_16(513);
emit_16(448);
emit_16(513);
emit_16(449);
emit_16(514);
emit_16(450);
emit_16(514);
emit_16(449);
emit_16(514);
emit_16(450);
emit_16(515);
emit_16(451);
emit_16(515);
emit_16(450);
emit_16(515);
emit_16(451);
emit_16(516);
emit_16(452);
emit_16(516);
emit_16(451);
emit_16(516);
emit_16(452);
emit_16(517);
emit_16(453);
emit_16(517);
emit_16(452);
emit_16(517);
emit_16(453);
emit_16(518);
emit_16(454);
emit_16(518);
emit_16(453);
emit_16(518);
emit_16(454);
emit_16(519);
emit_16(455);
emit_16(519);
emit_16(454);
emit_16(519);
emit_16(455);
emit_16(520);
emit_16(456);
emit_16(520);
emit_16(455);
emit_16(520);
emit_16(456);
emit_16(521);
emit_16(457);
emit_16(521);
emit_16(456);
emit_16(521);
emit_16(457);
emit_16(522);
emit_16(458);
emit_16(522);
emit_16(457);
emit_16(522);
emit_16(458);
emit_16(523);
emit_16(459);
emit_16(523);
emit_16(458);
emit_16(523);
emit_16(459);
emit_16(524);
emit_16(460);
emit_16(524);
emit_16(459);
emit_16(524);
emit_16(460);
emit_16(525);
emit_16(461);
emit_16(525);
emit_16(460);
emit_16(525);
emit_16(461);
emit_16(526);
emit_16(462);
emit_16(526);
emit_16(461);
emit_16(526);
emit_16(462);
emit_16(527);
emit_16(463);
emit_16(527);
emit_16(462);
emit_16(527);
emit_16(463);
emit_16(528);
emit_16(464);
emit_16(528);
emit_16(463);
emit_16(528);
emit_16(464);
emit_16(529);
emit_16(465);
emit_16(529);
emit_16(464);
emit_16(529);
emit_16(465);
emit_16(530);
emit_16(466);
emit_16(530);
emit_16(465);
emit_16(530);
emit_16(466);
emit_16(531);
emit_16(467);
emit_16(531);
emit_16(466);
emit_16(531);
emit_16(467);
emit_16(532);
emit_16(468);
emit_16(532);
emit_16(467);
emit_16(532);
emit_16(468);
emit_16(533);
emit_16(469);
emit_16(533);
emit_16(468);
emit_16(533);
emit_16(469);
emit_16(534);
emit_16(470);
emit_16(534);
emit_16(469);
emit_16(534);
emit_16(470);
emit_16(535);
emit_16(471);
emit_16(535);
emit_16(470);
emit_16(535);
emit_16(471);
emit_16(536);
emit_16(472);
emit_16(536);
emit_16(471);
emit_16(536);
emit_16(472);
emit_16(537);
emit_16(473);
emit_16(537);
emit_16(472);
emit_16(537);
emit_16(473);
emit_16(538);
emit_16(474);
emit_16(538);
emit_16(473);
emit_16(538);
emit_16(474);
emit_16(539);
emit_16(475);
emit_16(539);
emit_16(474);
emit_16(539);
emit_16(475);
emit_16(540);
emit_16(476);
emit_16(540);
emit_16(475);
emit_16(540);
emit_16(476);
emit_16(541);
emit_16(477);
emit_16(541);
emit_16(476);
emit_16(541);
emit_16(477);
emit_16(542);
emit_16(478);
emit_16(542);
emit_16(477);
emit_16(542);
emit_16(478);
emit_16(543);
emit_16(479);
emit_16(543);
emit_16(478);
emit_16(543);
emit_16(479);
emit_16(544);
emit_16(480);
emit_16(544);
emit_16(479);
emit_16(544);
emit_16(480);
emit_16(545);
emit_16(481);
emit_16(545);
emit_16(480);
emit_16(545);
emit_16(481);
emit_16(546);
emit_16(482);
emit_16(546);
emit_16(481);
emit_16(546);
emit_16(482);
emit_16(547);
emit_16(483);
emit_16(547);
emit_16(482);
emit_16(547);
emit_16(483);
emit_16(548);
emit_16(484);
emit_16(548);
emit_16(483);
emit_16(548);
emit_16(484);
emit_16(549);
emit_16(485);
emit_16(549);
emit_16(484);
emit_16(549);
emit_16(485);
emit_16(550);
emit_16(486);
emit_16(550);
emit_16(485);
emit_16(550);
emit_16(486);
emit_16(551);
emit_16(487);
emit_16(551);
emit_16(486);
emit_16(551);
emit_16(487);
emit_16(552);
emit_16(488);
emit_16(552);
emit_16(487);
emit_16(552);
emit_16(488);
emit_16(553);
emit_16(489);
emit_16(553);
emit_16(488);
emit_16(553);
emit_16(489);
emit_16(554);
emit_16(490);
emit_16(554);
emit_16(489);
emit_16(554);
emit_16(490);
emit_16(555);
emit_16(491);
emit_16(555);
emit_16(490);
emit_16(555);
emit_16(491);
emit_16(556);
emit_16(492);
emit_16(556);
emit_16(491);
emit_16(556);
emit_16(492);
emit_16(557);
emit_16(493);
emit_16(557);
emit_16(492);
emit_16(557);
emit_16(493);
emit_16(558);
emit_16(494);
emit_16(558);
emit_16(493);
emit_16(558);
emit_16(494);
emit_16(559);
emit_16(495);
emit_16(559);
emit_16(494);
emit_16(559);
emit_16(495);
emit_16(560);
emit_16(496);
emit_16(560);
emit_16(495);
emit_16(560);
emit_16(496);
emit_16(561);
emit_16(497);
emit_16(561);
emit_16(496);
emit_16(561);
emit_16(497);
emit_16(562);
emit_16(498);
emit_16(562);
emit_16(497);
emit_16(562);
emit_16(498);
emit_16(563);
emit_16(499);
emit_16(563);
emit_16(498);
emit_16(563);
emit_16(499);
emit_16(564);
emit_16(500);
emit_16(564);
emit_16(499);
emit_16(564);
emit_16(500);
emit_16(565);
emit_16(501);
emit_16(565);
emit_16(500);
emit_16(565);
emit_16(501);
emit_16(566);
emit_16(502);
emit_16(566);
emit_16(501);
emit_16(566);
emit_16(502);
emit_16(567);
emit_16(503);
emit_16(567);
emit_16(502);
emit_16(567);
emit_16(503);
emit_16(568);
emit_16(504);
emit_16(568);
emit_16(503);
emit_16(568);
emit_16(504);
emit_16(569);
emit_16(505);
emit_16(569);
emit_16(504);
emit_16(569);
emit_16(505);
emit_16(570);
emit_16(506);
emit_16(570);
emit_16(505);
emit_16(570);
emit_16(506);
emit_16(571);
emit_16(507);
emit_16(571);
emit_16(506);
emit_16(571);
emit_16(507);
emit_16(572);
emit_16(508);
emit_16(572);
emit_16(507);
emit_16(572);
emit_16(508);
emit_16(573);
emit_16(509);
emit_16(573);
emit_16(508);
emit_16(573);
emit_16(509);
emit_16(574);
emit_16(510);
emit_16(574);
emit_16(509);
emit_16(574);
emit_16(510);
emit_16(575);
emit_16(511);
emit_16(575);
emit_16(510);
emit_16(576);
emit_16(512);
emit_16(577);
emit_16(513);
emit_16(577);
emit_16(512);
emit_16(577);
emit_16(513);
emit_16(578);
emit_16(514);
emit_16(578);
emit_16(513);
emit_16(578);
emit_16(514);
emit_16(579);
emit_16(515);
emit_16(579);
emit_16(514);
emit_16(579);
emit_16(515);
emit_16(580);
emit_16(516);
emit_16(580);
emit_16(515);
emit_16(580);
emit_16(516);
emit_16(581);
emit_16(517);
emit_16(581);
emit_16(516);
emit_16(581);
emit_16(517);
emit_16(582);
emit_16(518);
emit_16(582);
emit_16(517);
emit_16(582);
emit_16(518);
emit_16(583);
emit_16(519);
emit_16(583);
emit_16(518);
emit_16(583);
emit_16(519);
emit_16(584);
emit_16(520);
emit_16(584);
emit_16(519);
emit_16(584);
emit_16(520);
emit_16(585);
emit_16(521);
emit_16(585);
emit_16(520);
emit_16(585);
emit_16(521);
emit_16(586);
emit_16(522);
emit_16(586);
emit_16(521);
emit_16(586);
emit_16(522);
emit_16(587);
emit_16(523);
emit_16(587);
emit_16(522);
emit_16(587);
emit_16(523);
emit_16(588);
emit_16(524);
emit_16(588);
emit_16(523);
emit_16(588);
emit_16(524);
emit_16(589);
emit_16(525);
emit_16(589);
emit_16(524);
emit_16(589);
emit_16(525);
emit_16(590);
emit_16(526);
emit_16(590);
emit_16(525);
emit_16(590);
emit_16(526);
emit_16(591);
emit_16(527);
emit_16(591);
emit_16(526);
emit_16(591);
emit_16(527);
emit_16(592);
emit_16(528);
emit_16(592);
emit_16(527);
emit_16(592);
emit_16(528);
emit_16(593);
emit_16(529);
emit_16(593);
emit_16(528);
emit_16(593);
emit_16(529);
emit_16(594);
emit_16(530);
emit_16(594);
emit_16(529);
emit_16(594);
emit_16(530);
emit_16(595);
emit_16(531);
emit_16(595);
emit_16(530);
emit_16(595);
emit_16(531);
emit_16(596);
emit_16(532);
emit_16(596);
emit_16(531);
emit_16(596);
emit_16(532);
emit_16(597);
emit_16(533);
emit_16(597);
emit_16(532);
emit_16(597);
emit_16(533);
emit_16(598);
emit_16(534);
emit_16(598);
emit_16(533);
emit_16(598);
emit_16(534);
emit_16(599);
emit_16(535);
emit_16(599);
emit_16(534);
emit_16(599);
emit_16(535);
emit_16(600);
emit_16(536);
emit_16(600);
emit_16(535);
emit_16(600);
emit_16(536);
emit_16(601);
emit_16(537);
emit_16(601);
emit_16(536);
emit_16(601);
emit_16(537);
emit_16(602);
emit_16(538);
emit_16(602);
emit_16(537);
emit_16(602);
emit_16(538);
emit_16(603);
emit_16(539);
emit_16(603);
emit_16(538);
emit_16(603);
emit_16(539);
emit_16(604);
emit_16(540);
emit_16(604);
emit_16(539);
emit_16(604);
emit_16(540);
emit_16(605);
emit_16(541);
emit_16(605);
emit_16(540);
emit_16(605);
emit_16(541);
emit_16(606);
emit_16(542);
emit_16(606);
emit_16(541);
emit_16(606);
emit_16(542);
emit_16(607);
emit_16(543);
emit_16(607);
emit_16(542);
emit_16(607);
emit_16(543);
emit_16(608);
emit_16(544);
emit_16(608);
emit_16(543);
emit_16(608);
emit_16(544);
emit_16(609);
emit_16(545);
emit_16(609);
emit_16(544);
emit_16(609);
emit_16(545);
emit_16(610);
emit_16(546);
emit_16(610);
emit_16(545);
emit_16(610);
emit_16(546);
emit_16(611);
emit_16(547);
emit_16(611);
emit_16(546);
emit_16(611);
emit_16(547);
emit_16(612);
emit_16(548);
emit_16(612);
emit_16(547);
emit_16(612);
emit_16(548);
emit_16(613);
emit_16(549);
emit_16(613);
emit_16(548);
emit_16(613);
emit_16(549);
emit_16(614);
emit_16(550);
emit_16(614);
emit_16(549);
emit_16(614);
emit_16(550);
emit_16(615);
emit_16(551);
emit_16(615);
emit_16(550);
emit_16(615);
emit_16(551);
emit_16(616);
emit_16(552);
emit_16(616);
emit_16(551);
emit_16(616);
emit_16(552);
emit_16(617);
emit_16(553);
emit_16(617);
emit_16(552);
emit_16(617);
emit_16(553);
emit_16(618);
emit_16(554);
emit_16(618);
emit_16(553);
emit_16(618);
emit_16(554);
emit_16(619);
emit_16(555);
emit_16(619);
emit_16(554);
emit_16(619);
emit_16(555);
emit_16(620);
emit_16(556);
emit_16(620);
emit_16(555);
emit_16(620);
emit_16(556);
emit_16(621);
emit_16(557);
emit_16(621);
emit_16(556);
emit_16(621);
emit_16(557);
emit_16(622);
emit_16(558);
emit_16(622);
emit_16(557);
emit_16(622);
emit_16(558);
emit_16(623);
emit_16(559);
emit_16(623);
emit_16(558);
emit_16(623);
emit_16(559);
emit_16(624);
emit_16(560);
emit_16(624);
emit_16(559);
emit_16(624);
emit_16(560);
emit_16(625);
emit_16(561);
emit_16(625);
emit_16(560);
emit_16(625);
emit_16(561);
emit_16(626);
emit_16(562);
emit_16(626);
emit_16(561);
emit_16(626);
emit_16(562);
emit_16(627);
emit_16(563);
emit_16(627);
emit_16(562);
emit_16(627);
emit_16(563);
emit_16(628);
emit_16(564);
emit_16(628);
emit_16(563);
emit_16(628);
emit_16(564);
emit_16(629);
emit_16(565);
emit_16(629);
emit_16(564);
emit_16(629);
emit_16(565);
emit_16(630);
emit_16(566);
emit_16(630);
emit_16(565);
emit_16(630);
emit_16(566);
emit_16(631);
emit_16(567);
emit_16(631);
emit_16(566);
emit_16(631);
emit_16(567);
emit_16(632);
emit_16(568);
emit_16(632);
emit_16(567);
emit_16(632);
emit_16(568);
emit_16(633);
emit_16(569);
emit_16(633);
emit_16(568);
emit_16(633);
emit_16(569);
emit_16(634);
emit_16(570);
emit_16(634);
emit_16(569);
emit_16(634);
emit_16(570);
emit_16(635);
emit_16(571);
emit_16(635);
emit_16(570);
emit_16(635);
emit_16(571);
emit_16(636);
emit_16(572);
emit_16(636);
emit_16(571);
emit_16(636);
emit_16(572);
emit_16(637);
emit_16(573);
emit_16(637);
emit_16(572);
emit_16(637);
emit_16(573);
emit_16(638);
emit_16(574);
emit_16(638);
emit_16(573);
emit_16(638);
emit_16(574);
emit_16(639);
emit_16(575);
emit_16(639);
emit_16(574);
emit_16(640);
emit_16(576);
emit_16(641);
emit_16(577);
emit_16(641);
emit_16(576);
emit_16(641);
emit_16(577);
emit_16(642);
emit_16(578);
emit_16(642);
emit_16(577);
emit_16(642);
emit_16(578);
emit_16(643);
emit_16(579);
emit_16(643);
emit_16(578);
emit_16(643);
emit_16(579);
emit_16(644);
emit_16(580);
emit_16(644);
emit_16(579);
emit_16(644);
emit_16(580);
emit_16(645);
emit_16(581);
emit_16(645);
emit_16(580);
emit_16(645);
emit_16(581);
emit_16(646);
emit_16(582);
emit_16(646);
emit_16(581);
emit_16(646);
emit_16(582);
emit_16(647);
emit_16(583);
emit_16(647);
emit_16(582);
emit_16(647);
emit_16(583);
emit_16(648);
emit_16(584);
emit_16(648);
emit_16(583);
emit_16(648);
emit_16(584);
emit_16(649);
emit_16(585);
emit_16(649);
emit_16(584);
emit_16(649);
emit_16(585);
emit_16(650);
emit_16(586);
emit_16(650);
emit_16(585);
emit_16(650);
emit_16(586);
emit_16(651);
emit_16(587);
emit_16(651);
emit_16(586);
emit_16(651);
emit_16(587);
emit_16(652);
emit_16(588);
emit_16(652);
emit_16(587);
emit_16(652);
emit_16(588);
emit_16(653);
emit_16(589);
emit_16(653);
emit_16(588);
emit_16(653);
emit_16(589);
emit_16(654);
emit_16(590);
emit_16(654);
emit_16(589);
emit_16(654);
emit_16(590);
emit_16(655);
emit_16(591);
emit_16(655);
emit_16(590);
emit_16(655);
emit_16(591);
emit_16(656);
emit_16(592);
emit_16(656);
emit_16(591);
emit_16(656);
emit_16(592);
emit_16(657);
emit_16(593);
emit_16(657);
emit_16(592);
emit_16(657);
emit_16(593);
emit_16(658);
emit_16(594);
emit_16(658);
emit_16(593);
emit_16(658);
emit_16(594);
emit_16(659);
emit_16(595);
emit_16(659);
emit_16(594);
emit_16(659);
emit_16(595);
emit_16(660);
emit_16(596);
emit_16(660);
emit_16(595);
emit_16(660);
emit_16(596);
emit_16(661);
emit_16(597);
emit_16(661);
emit_16(596);
emit_16(661);
emit_16(597);
emit_16(662);
emit_16(598);
emit_16(662);
emit_16(597);
emit_16(662);
emit_16(598);
emit_16(663);
emit_16(599);
emit_16(663);
emit_16(598);
emit_16(663);
emit_16(599);
emit_16(664);
emit_16(600);
emit_16(664);
emit_16(599);
emit_16(664);
emit_16(600);
emit_16(665);
emit_16(601);
emit_16(665);
emit_16(600);
emit_16(665);
emit_16(601);
emit_16(666);
emit_16(602);
emit_16(666);
emit_16(601);
emit_16(666);
emit_16(602);
emit_16(667);
emit_16(603);
emit_16(667);
emit_16(602);
emit_16(667);
emit_16(603);
emit_16(668);
emit_16(604);
emit_16(668);
emit_16(603);
emit_16(668);
emit_16(604);
emit_16(669);
emit_16(605);
emit_16(669);
emit_16(604);
emit_16(669);
emit_16(605);
emit_16(670);
emit_16(606);
emit_16(670);
emit_16(605);
emit_16(670);
emit_16(606);
emit_16(671);
emit_16(607);
emit_16(671);
emit_16(606);
emit_16(671);
emit_16(607);
emit_16(672);
emit_16(608);
emit_16(672);
emit_16(607);
emit_16(672);
emit_16(608);
emit_16(673);
emit_16(609);
emit_16(673);
emit_16(608);
emit_16(673);
emit_16(609);
emit_16(674);
emit_16(610);
emit_16(674);
emit_16(609);
emit_16(674);
emit_16(610);
emit_16(675);
emit_16(611);
emit_16(675);
emit_16(610);
emit_16(675);
emit_16(611);
emit_16(676);
emit_16(612);
emit_16(676);
emit_16(611);
emit_16(676);
emit_16(612);
emit_16(677);
emit_16(613);
emit_16(677);
emit_16(612);
emit_16(677);
emit_16(613);
emit_16(678);
emit_16(614);
emit_16(678);
emit_16(613);
emit_16(678);
emit_16(614);
emit_16(679);
emit_16(615);
emit_16(679);
emit_16(614);
emit_16(679);
emit_16(615);
emit_16(680);
emit_16(616);
emit_16(680);
emit_16(615);
emit_16(680);
emit_16(616);
emit_16(681);
emit_16(617);
emit_16(681);
emit_16(616);
emit_16(681);
emit_16(617);
emit_16(682);
emit_16(618);
emit_16(682);
emit_16(617);
emit_16(682);
emit_16(618);
emit_16(683);
emit_16(619);
emit_16(683);
emit_16(618);
emit_16(683);
emit_16(619);
emit_16(684);
emit_16(620);
emit_16(684);
emit_16(619);
emit_16(684);
emit_16(620);
emit_16(685);
emit_16(621);
emit_16(685);
emit_16(620);
emit_16(685);
emit_16(621);
emit_16(686);
emit_16(622);
emit_16(686);
emit_16(621);
emit_16(686);
emit_16(622);
emit_16(687);
emit_16(623);
emit_16(687);
emit_16(622);
emit_16(687);
emit_16(623);
emit_16(688);
emit_16(624);
emit_16(688);
emit_16(623);
emit_16(688);
emit_16(624);
emit_16(689);
emit_16(625);
emit_16(689);
emit_16(624);
emit_16(689);
emit_16(625);
emit_16(690);
emit_16(626);
emit_16(690);
emit_16(625);
emit_16(690);
emit_16(626);
emit_16(691);
emit_16(627);
emit_16(691);
emit_16(626);
emit_16(691);
emit_16(627);
emit_16(692);
emit_16(628);
emit_16(692);
emit_16(627);
emit_16(692);
emit_16(628);
emit_16(693);
emit_16(629);
emit_16(693);
emit_16(628);
emit_16(693);
emit_16(629);
emit_16(694);
emit_16(630);
emit_16(694);
emit_16(629);
emit_16(694);
emit_16(630);
emit_16(695);
emit_16(631);
emit_16(695);
emit_16(630);
emit_16(695);
emit_16(631);
emit_16(696);
emit_16(632);
emit_16(696);
emit_16(631);
emit_16(696);
emit_16(632);
emit_16(697);
emit_16(633);
emit_16(697);
emit_16(632);
emit_16(697);
emit_16(633);
emit_16(698);
emit_16(634);
emit_16(698);
emit_16(633);
emit_16(698);
emit_16(634);
emit_16(699);
emit_16(635);
emit_16(699);
emit_16(634);
emit_16(699);
emit_16(635);
emit_16(700);
emit_16(636);
emit_16(700);
emit_16(635);
emit_16(700);
emit_16(636);
emit_16(701);
emit_16(637);
emit_16(701);
emit_16(636);
emit_16(701);
emit_16(637);
emit_16(702);
emit_16(638);
emit_16(702);
emit_16(637);
emit_16(702);
emit_16(638);
emit_16(703);
emit_16(639);
emit_16(703);
emit_16(638);
emit_16(704);
emit_16(640);
emit_16(705);
emit_16(641);
emit_16(705);
emit_16(640);
emit_16(705);
emit_16(641);
emit_16(706);
emit_16(642);
emit_16(706);
emit_16(641);
emit_16(706);
emit_16(642);
emit_16(707);
emit_16(643);
emit_16(707);
emit_16(642);
emit_16(707);
emit_16(643);
emit_16(708);
emit_16(644);
emit_16(708);
emit_16(643);
emit_16(708);
emit_16(644);
emit_16(709);
emit_16(645);
emit_16(709);
emit_16(644);
emit_16(709);
emit_16(645);
emit_16(710);
emit_16(646);
emit_16(710);
emit_16(645);
emit_16(710);
emit_16(646);
emit_16(711);
emit_16(647);
emit_16(711);
emit_16(646);
emit_16(711);
emit_16(647);
emit_16(712);
emit_16(648);
emit_16(712);
emit_16(647);
emit_16(712);
emit_16(648);
emit_16(713);
emit_16(649);
emit_16(713);
emit_16(648);
emit_16(713);
emit_16(649);
emit_16(714);
emit_16(650);
emit_16(714);
emit_16(649);
emit_16(714);
emit_16(650);
emit_16(715);
emit_16(651);
emit_16(715);
emit_16(650);
emit_16(715);
emit_16(651);
emit_16(716);
emit_16(652);
emit_16(716);
emit_16(651);
emit_16(716);
emit_16(652);
emit_16(717);
emit_16(653);
emit_16(717);
emit_16(652);
emit_16(717);
emit_16(653);
emit_16(718);
emit_16(654);
emit_16(718);
emit_16(653);
emit_16(718);
emit_16(654);
emit_16(719);
emit_16(655);
emit_16(719);
emit_16(654);
emit_16(719);
emit_16(655);
emit_16(720);
emit_16(656);
emit_16(720);
emit_16(655);
emit_16(720);
emit_16(656);
emit_16(721);
emit_16(657);
emit_16(721);
emit_16(656);
emit_16(721);
emit_16(657);
emit_16(722);
emit_16(658);
emit_16(722);
emit_16(657);
emit_16(722);
emit_16(658);
emit_16(723);
emit_16(659);
emit_16(723);
emit_16(658);
emit_16(723);
emit_16(659);
emit_16(724);
emit_16(660);
emit_16(724);
emit_16(659);
emit_16(724);
emit_16(660);
emit_16(725);
emit_16(661);
emit_16(725);
emit_16(660);
emit_16(725);
emit_16(661);
emit_16(726);
emit_16(662);
emit_16(726);
emit_16(661);
emit_16(726);
emit_16(662);
emit_16(727);
emit_16(663);
emit_16(727);
emit_16(662);
emit_16(727);
emit_16(663);
emit_16(728);
emit_16(664);
emit_16(728);
emit_16(663);
emit_16(728);
emit_16(664);
emit_16(729);
emit_16(665);
emit_16(729);
emit_16(664);
emit_16(729);
emit_16(665);
emit_16(730);
emit_16(666);
emit_16(730);
emit_16(665);
emit_16(730);
emit_16(666);
emit_16(731);
emit_16(667);
emit_16(731);
emit_16(666);
emit_16(731);
emit_16(667);
emit_16(732);
emit_16(668);
emit_16(732);
emit_16(667);
emit_16(732);
emit_16(668);
emit_16(733);
emit_16(669);
emit_16(733);
emit_16(668);
emit_16(733);
emit_16(669);
emit_16(734);
emit_16(670);
emit_16(734);
emit_16(669);
emit_16(734);
emit_16(670);
emit_16(735);
emit_16(671);
emit_16(735);
emit_16(670);
emit_16(735);
emit_16(671);
emit_16(736);
emit_16(672);
emit_16(736);
emit_16(671);
emit_16(736);
emit_16(672);
emit_16(737);
emit_16(673);
emit_16(737);
emit_16(672);
emit_16(737);
emit_16(673);
emit_16(738);
emit_16(674);
emit_16(738);
emit_16(673);
emit_16(738);
emit_16(674);
emit_16(739);
emit_16(675);
emit_16(739);
emit_16(674);
emit_16(739);
emit_16(675);
emit_16(740);
emit_16(676);
emit_16(740);
emit_16(675);
emit_16(740);
emit_16(676);
emit_16(741);
emit_16(677);
emit_16(741);
emit_16(676);
emit_16(741);
emit_16(677);
emit_16(742);
emit_16(678);
emit_16(742);
emit_16(677);
emit_16(742);
emit_16(678);
emit_16(743);
emit_16(679);
emit_16(743);
emit_16(678);
emit_16(743);
emit_16(679);
emit_16(744);
emit_16(680);
emit_16(744);
emit_16(679);
emit_16(744);
emit_16(680);
emit_16(745);
emit_16(681);
emit_16(745);
emit_16(680);
emit_16(745);
emit_16(681);
emit_16(746);
emit_16(682);
emit_16(746);
emit_16(681);
emit_16(746);
emit_16(682);
emit_16(747);
emit_16(683);
emit_16(747);
emit_16(682);
emit_16(747);
emit_16(683);
emit_16(748);
emit_16(684);
emit_16(748);
emit_16(683);
emit_16(748);
emit_16(684);
emit_16(749);
emit_16(685);
emit_16(749);
emit_16(684);
emit_16(749);
emit_16(685);
emit_16(750);
emit_16(686);
emit_16(750);
emit_16(685);
emit_16(750);
emit_16(686);
emit_16(751);
emit_16(687);
emit_16(751);
emit_16(686);
emit_16(751);
emit_16(687);
emit_16(752);
emit_16(688);
emit_16(752);
emit_16(687);
emit_16(752);
emit_16(688);
emit_16(753);
emit_16(689);
emit_16(753);
emit_16(688);
emit_16(753);
emit_16(689);
emit_16(754);
emit_16(690);
emit_16(754);
emit_16(689);
emit_16(754);
emit_16(690);
emit_16(755);
emit_16(691);
emit_16(755);
emit_16(690);
emit_16(755);
emit_16(691);
emit_16(756);
emit_16(692);
emit_16(756);
emit_16(691);
emit_16(756);
emit_16(692);
emit_16(757);
emit_16(693);
emit_16(757);
emit_16(692);
emit_16(757);
emit_16(693);
emit_16(758);
emit_16(694);
emit_16(758);
emit_16(693);
emit_16(758);
emit_16(694);
emit_16(759);
emit_16(695);
emit_16(759);
emit_16(694);
emit_16(759);
emit_16(695);
emit_16(760);
emit_16(696);
emit_16(760);
emit_16(695);
emit_16(760);
emit_16(696);
emit_16(761);
emit_16(697);
emit_16(761);
emit_16(696);
emit_16(761);
emit_16(697);
emit_16(762);
emit_16(698);
emit_16(762);
emit_16(697);
emit_16(762);
emit_16(698);
emit_16(763);
emit_16(699);
emit_16(763);
emit_16(698);
emit_16(763);
emit_16(699);
emit_16(764);
emit_16(700);
emit_16(764);
emit_16(699);
emit_16(764);
emit_16(700);
emit_16(765);
emit_16(701);
emit_16(765);
emit_16(700);
emit_16(765);
emit_16(701);
emit_16(766);
emit_16(702);
emit_16(766);
emit_16(701);
emit_16(766);
emit_16(702);
emit_16(767);
emit_16(703);
emit_16(767);
emit_16(702);
emit_16(768);
emit_16(704);
emit_16(769);
emit_16(705);
emit_16(769);
emit_16(704);
emit_16(769);
emit_16(705);
emit_16(770);
emit_16(706);
emit_16(770);
emit_16(705);
emit_16(770);
emit_16(706);
emit_16(771);
emit_16(707);
emit_16(771);
emit_16(706);
emit_16(771);
emit_16(707);
emit_16(772);
emit_16(708);
emit_16(772);
emit_16(707);
emit_16(772);
emit_16(708);
emit_16(773);
emit_16(709);
emit_16(773);
emit_16(708);
emit_16(773);
emit_16(709);
emit_16(774);
emit_16(710);
emit_16(774);
emit_16(709);
emit_16(774);
emit_16(710);
emit_16(775);
emit_16(711);
emit_16(775);
emit_16(710);
emit_16(775);
emit_16(711);
emit_16(776);
emit_16(712);
emit_16(776);
emit_16(711);
emit_16(776);
emit_16(712);
emit_16(777);
emit_16(713);
emit_16(777);
emit_16(712);
emit_16(777);
emit_16(713);
emit_16(778);
emit_16(714);
emit_16(778);
emit_16(713);
emit_16(778);
emit_16(714);
emit_16(779);
emit_16(715);
emit_16(779);
emit_16(714);
emit_16(779);
emit_16(715);
emit_16(780);
emit_16(716);
emit_16(780);
emit_16(715);
emit_16(780);
emit_16(716);
emit_16(781);
emit_16(717);
emit_16(781);
emit_16(716);
emit_16(781);
emit_16(717);
emit_16(782);
emit_16(718);
emit_16(782);
emit_16(717);
emit_16(782);
emit_16(718);
emit_16(783);
emit_16(719);
emit_16(783);
emit_16(718);
emit_16(783);
emit_16(719);
emit_16(784);
emit_16(720);
emit_16(784);
emit_16(719);
emit_16(784);
emit_16(720);
emit_16(785);
emit_16(721);
emit_16(785);
emit_16(720);
emit_16(785);
emit_16(721);
emit_16(786);
emit_16(722);
emit_16(786);
emit_16(721);
emit_16(786);
emit_16(722);
emit_16(787);
emit_16(723);
emit_16(787);
emit_16(722);
emit_16(787);
emit_16(723);
emit_16(788);
emit_16(724);
emit_16(788);
emit_16(723);
emit_16(788);
emit_16(724);
emit_16(789);
emit_16(725);
emit_16(789);
emit_16(724);
emit_16(789);
emit_16(725);
emit_16(790);
emit_16(726);
emit_16(790);
emit_16(725);
emit_16(790);
emit_16(726);
emit_16(791);
emit_16(727);
emit_16(791);
emit_16(726);
emit_16(791);
emit_16(727);
emit_16(792);
emit_16(728);
emit_16(792);
emit_16(727);
emit_16(792);
emit_16(728);
emit_16(793);
emit_16(729);
emit_16(793);
emit_16(728);
emit_16(793);
emit_16(729);
emit_16(794);
emit_16(730);
emit_16(794);
emit_16(729);
emit_16(794);
emit_16(730);
emit_16(795);
emit_16(731);
emit_16(795);
emit_16(730);
emit_16(795);
emit_16(731);
emit_16(796);
emit_16(732);
emit_16(796);
emit_16(731);
emit_16(796);
emit_16(732);
emit_16(797);
emit_16(733);
emit_16(797);
emit_16(732);
emit_16(797);
emit_16(733);
emit_16(798);
emit_16(734);
emit_16(798);
emit_16(733);
emit_16(798);
emit_16(734);
emit_16(799);
emit_16(735);
emit_16(799);
emit_16(734);
emit_16(799);
emit_16(735);
emit_16(800);
emit_16(736);
emit_16(800);
emit_16(735);
emit_16(800);
emit_16(736);
emit_16(801);
emit_16(737);
emit_16(801);
emit_16(736);
emit_16(801);
emit_16(737);
emit_16(802);
emit_16(738);
emit_16(802);
emit_16(737);
emit_16(802);
emit_16(738);
emit_16(803);
emit_16(739);
emit_16(803);
emit_16(738);
emit_16(803);
emit_16(739);
emit_16(804);
emit_16(740);
emit_16(804);
emit_16(739);
emit_16(804);
emit_16(740);
emit_16(805);
emit_16(741);
emit_16(805);
emit_16(740);
emit_16(805);
emit_16(741);
emit_16(806);
emit_16(742);
emit_16(806);
emit_16(741);
emit_16(806);
emit_16(742);
emit_16(807);
emit_16(743);
emit_16(807);
emit_16(742);
emit_16(807);
emit_16(743);
emit_16(808);
emit_16(744);
emit_16(808);
emit_16(743);
emit_16(808);
emit_16(744);
emit_16(809);
emit_16(745);
emit_16(809);
emit_16(744);
emit_16(809);
emit_16(745);
emit_16(810);
emit_16(746);
emit_16(810);
emit_16(745);
emit_16(810);
emit_16(746);
emit_16(811);
emit_16(747);
emit_16(811);
emit_16(746);
emit_16(811);
emit_16(747);
emit_16(812);
emit_16(748);
emit_16(812);
emit_16(747);
emit_16(812);
emit_16(748);
emit_16(813);
emit_16(749);
emit_16(813);
emit_16(748);
emit_16(813);
emit_16(749);
emit_16(814);
emit_16(750);
emit_16(814);
emit_16(749);
emit_16(814);
emit_16(750);
emit_16(815);
emit_16(751);
emit_16(815);
emit_16(750);
emit_16(815);
emit_16(751);
emit_16(816);
emit_16(752);
emit_16(816);
emit_16(751);
emit_16(816);
emit_16(752);
emit_16(817);
emit_16(753);
emit_16(817);
emit_16(752);
emit_16(817);
emit_16(753);
emit_16(818);
emit_16(754);
emit_16(818);
emit_16(753);
emit_16(818);
emit_16(754);
emit_16(819);
emit_16(755);
emit_16(819);
emit_16(754);
emit_16(819);
emit_16(755);
emit_16(820);
emit_16(756);
emit_16(820);
emit_16(755);
emit_16(820);
emit_16(756);
emit_16(821);
emit_16(757);
emit_16(821);
emit_16(756);
emit_16(821);
emit_16(757);
emit_16(822);
emit_16(758);
emit_16(822);
emit_16(757);
emit_16(822);
emit_16(758);
emit_16(823);
emit_16(759);
emit_16(823);
emit_16(758);
emit_16(823);
emit_16(759);
emit_16(824);
emit_16(760);
emit_16(824);
emit_16(759);
emit_16(824);
emit_16(760);
emit_16(825);
emit_16(761);
emit_16(825);
emit_16(760);
emit_16(825);
emit_16(761);
emit_16(826);
emit_16(762);
emit_16(826);
emit_16(761);
emit_16(826);
emit_16(762);
emit_16(827);
emit_16(763);
emit_16(827);
emit_16(762);
emit_16(827);
emit_16(763);
emit_16(828);
emit_16(764);
emit_16(828);
emit_16(763);
emit_16(828);
emit_16(764);
emit_16(829);
emit_16(765);
emit_16(829);
emit_16(764);
emit_16(829);
emit_16(765);
emit_16(830);
emit_16(766);
emit_16(830);
emit_16(765);
emit_16(830);
emit_16(766);
emit_16(831);
emit_16(767);
emit_16(831);
emit_16(766);
emit_16(832);
emit_16(768);
emit_16(833);
emit_16(769);
emit_16(833);
emit_16(768);
emit_16(833);
emit_16(769);
emit_16(834);
emit_16(770);
emit_16(834);
emit_16(769);
emit_16(834);
emit_16(770);
emit_16(835);
emit_16(771);
emit_16(835);
emit_16(770);
emit_16(835);
emit_16(771);
emit_16(836);
emit_16(772);
emit_16(836);
emit_16(771);
emit_16(836);
emit_16(772);
emit_16(837);
emit_16(773);
emit_16(837);
emit_16(772);
emit_16(837);
emit_16(773);
emit_16(838);
emit_16(774);
emit_16(838);
emit_16(773);
emit_16(838);
emit_16(774);
emit_16(839);
emit_16(775);
emit_16(839);
emit_16(774);
emit_16(839);
emit_16(775);
emit_16(840);
emit_16(776);
emit_16(840);
emit_16(775);
emit_16(840);
emit_16(776);
emit_16(841);
emit_16(777);
emit_16(841);
emit_16(776);
emit_16(841);
emit_16(777);
emit_16(842);
emit_16(778);
emit_16(842);
emit_16(777);
emit_16(842);
emit_16(778);
emit_16(843);
emit_16(779);
emit_16(843);
emit_16(778);
emit_16(843);
emit_16(779);
emit_16(844);
emit_16(780);
emit_16(844);
emit_16(779);
emit_16(844);
emit_16(780);
emit_16(845);
emit_16(781);
emit_16(845);
emit_16(780);
emit_16(845);
emit_16(781);
emit_16(846);
emit_16(782);
emit_16(846);
emit_16(781);
emit_16(846);
emit_16(782);
emit_16(847);
emit_16(783);
emit_16(847);
emit_16(782);
emit_16(847);
emit_16(783);
emit_16(848);
emit_16(784);
emit_16(848);
emit_16(783);
emit_16(848);
emit_16(784);
emit_16(849);
emit_16(785);
emit_16(849);
emit_16(784);
emit_16(849);
emit_16(785);
emit_16(850);
emit_16(786);
emit_16(850);
emit_16(785);
emit_16(850);
emit_16(786);
emit_16(851);
emit_16(787);
emit_16(851);
emit_16(786);
emit_16(851);
emit_16(787);
emit_16(852);
emit_16(788);
emit_16(852);
emit_16(787);
emit_16(852);
emit_16(788);
emit_16(853);
emit_16(789);
emit_16(853);
emit_16(788);
emit_16(853);
emit_16(789);
emit_16(854);
emit_16(790);
emit_16(854);
emit_16(789);
emit_16(854);
emit_16(790);
emit_16(855);
emit_16(791);
emit_16(855);
emit_16(790);
emit_16(855);
emit_16(791);
emit_16(856);
emit_16(792);
emit_16(856);
emit_16(791);
emit_16(856);
emit_16(792);
emit_16(857);
emit_16(793);
emit_16(857);
emit_16(792);
emit_16(857);
emit_16(793);
emit_16(858);
emit_16(794);
emit_16(858);
emit_16(793);
emit_16(858);
emit_16(794);
emit_16(859);
emit_16(795);
emit_16(859);
emit_16(794);
emit_16(859);
emit_16(795);
emit_16(860);
emit_16(796);
emit_16(860);
emit_16(795);
emit_16(860);
emit_16(796);
emit_16(861);
emit_16(797);
emit_16(861);
emit_16(796);
emit_16(861);
emit_16(797);
emit_16(862);
emit_16(798);
emit_16(862);
emit_16(797);
emit_16(862);
emit_16(798);
emit_16(863);
emit_16(799);
emit_16(863);
emit_16(798);
emit_16(863);
emit_16(799);
emit_16(864);
emit_16(800);
emit_16(864);
emit_16(799);
emit_16(864);
emit_16(800);
emit_16(865);
emit_16(801);
emit_16(865);
emit_16(800);
emit_16(865);
emit_16(801);
emit_16(866);
emit_16(802);
emit_16(866);
emit_16(801);
emit_16(866);
emit_16(802);
emit_16(867);
emit_16(803);
emit_16(867);
emit_16(802);
emit_16(867);
emit_16(803);
emit_16(868);
emit_16(804);
emit_16(868);
emit_16(803);
emit_16(868);
emit_16(804);
emit_16(869);
emit_16(805);
emit_16(869);
emit_16(804);
emit_16(869);
emit_16(805);
emit_16(870);
emit_16(806);
emit_16(870);
emit_16(805);
emit_16(870);
emit_16(806);
emit_16(871);
emit_16(807);
emit_16(871);
emit_16(806);
emit_16(871);
emit_16(807);
emit_16(872);
emit_16(808);
emit_16(872);
emit_16(807);
emit_16(872);
emit_16(808);
emit_16(873);
emit_16(809);
emit_16(873);
emit_16(808);
emit_16(873);
emit_16(809);
emit_16(874);
emit_16(810);
emit_16(874);
emit_16(809);
emit_16(874);
emit_16(810);
emit_16(875);
emit_16(811);
emit_16(875);
emit_16(810);
emit_16(875);
emit_16(811);
emit_16(876);
emit_16(812);
emit_16(876);
emit_16(811);
emit_16(876);
emit_16(812);
emit_16(877);
emit_16(813);
emit_16(877);
emit_16(812);
emit_16(877);
emit_16(813);
emit_16(878);
emit_16(814);
emit_16(878);
emit_16(813);
emit_16(878);
emit_16(814);
emit_16(879);
emit_16(815);
emit_16(879);
emit_16(814);
emit_16(879);
emit_16(815);
emit_16(880);
emit_16(816);
emit_16(880);
emit_16(815);
emit_16(880);
emit_16(816);
emit_16(881);
emit_16(817);
emit_16(881);
emit_16(816);
emit_16(881);
emit_16(817);
emit_16(882);
emit_16(818);
emit_16(882);
emit_16(817);
emit_16(882);
emit_16(818);
emit_16(883);
emit_16(819);
emit_16(883);
emit_16(818);
emit_16(883);
emit_16(819);
emit_16(884);
emit_16(820);
emit_16(884);
emit_16(819);
emit_16(884);
emit_16(820);
emit_16(885);
emit_16(821);
emit_16(885);
emit_16(820);
emit_16(885);
emit_16(821);
emit_16(886);
emit_16(822);
emit_16(886);
emit_16(821);
emit_16(886);
emit_16(822);
emit_16(887);
emit_16(823);
emit_16(887);
emit_16(822);
emit_16(887);
emit_16(823);
emit_16(888);
emit_16(824);
emit_16(888);
emit_16(823);
emit_16(888);
emit_16(824);
emit_16(889);
emit_16(825);
emit_16(889);
emit_16(824);
emit_16(889);
emit_16(825);
emit_16(890);
emit_16(826);
emit_16(890);
emit_16(825);
emit_16(890);
emit_16(826);
emit_16(891);
emit_16(827);
emit_16(891);
emit_16(826);
emit_16(891);
emit_16(827);
emit_16(892);
emit_16(828);
emit_16(892);
emit_16(827);
emit_16(892);
emit_16(828);
emit_16(893);
emit_16(829);
emit_16(893);
emit_16(828);
emit_16(893);
emit_16(829);
emit_16(894);
emit_16(830);
emit_16(894);
emit_16(829);
emit_16(894);
emit_16(830);
emit_16(895);
emit_16(831);
emit_16(895);
emit_16(830);
emit_16(896);
emit_16(832);
emit_16(897);
emit_16(833);
emit_16(897);
emit_16(832);
emit_16(897);
emit_16(833);
emit_16(898);
emit_16(834);
emit_16(898);
emit_16(833);
emit_16(898);
emit_16(834);
emit_16(899);
emit_16(835);
emit_16(899);
emit_16(834);
emit_16(899);
emit_16(835);
emit_16(900);
emit_16(836);
emit_16(900);
emit_16(835);
emit_16(900);
emit_16(836);
emit_16(901);
emit_16(837);
emit_16(901);
emit_16(836);
emit_16(901);
emit_16(837);
emit_16(902);
emit_16(838);
emit_16(902);
emit_16(837);
emit_16(902);
emit_16(838);
emit_16(903);
emit_16(839);
emit_16(903);
emit_16(838);
emit_16(903);
emit_16(839);
emit_16(904);
emit_16(840);
emit_16(904);
emit_16(839);
emit_16(904);
emit_16(840);
emit_16(905);
emit_16(841);
emit_16(905);
emit_16(840);
emit_16(905);
emit_16(841);
emit_16(906);
emit_16(842);
emit_16(906);
emit_16(841);
emit_16(906);
emit_16(842);
emit_16(907);
emit_16(843);
emit_16(907);
emit_16(842);
emit_16(907);
emit_16(843);
emit_16(908);
emit_16(844);
emit_16(908);
emit_16(843);
emit_16(908);
emit_16(844);
emit_16(909);
emit_16(845);
emit_16(909);
emit_16(844);
emit_16(909);
emit_16(845);
emit_16(910);
emit_16(846);
emit_16(910);
emit_16(845);
emit_16(910);
emit_16(846);
emit_16(911);
emit_16(847);
emit_16(911);
emit_16(846);
emit_16(911);
emit_16(847);
emit_16(912);
emit_16(848);
emit_16(912);
emit_16(847);
emit_16(912);
emit_16(848);
emit_16(913);
emit_16(849);
emit_16(913);
emit_16(848);
emit_16(913);
emit_16(849);
emit_16(914);
emit_16(850);
emit_16(914);
emit_16(849);
emit_16(914);
emit_16(850);
emit_16(915);
emit_16(851);
emit_16(915);
emit_16(850);
emit_16(915);
emit_16(851);
emit_16(916);
emit_16(852);
emit_16(916);
emit_16(851);
emit_16(916);
emit_16(852);
emit_16(917);
emit_16(853);
emit_16(917);
emit_16(852);
emit_16(917);
emit_16(853);
emit_16(918);
emit_16(854);
emit_16(918);
emit_16(853);
emit_16(918);
emit_16(854);
emit_16(919);
emit_16(855);
emit_16(919);
emit_16(854);
emit_16(919);
emit_16(855);
emit_16(920);
emit_16(856);
emit_16(920);
emit_16(855);
emit_16(920);
emit_16(856);
emit_16(921);
emit_16(857);
emit_16(921);
emit_16(856);
emit_16(921);
emit_16(857);
emit_16(922);
emit_16(858);
emit_16(922);
emit_16(857);
emit_16(922);
emit_16(858);
emit_16(923);
emit_16(859);
emit_16(923);
emit_16(858);
emit_16(923);
emit_16(859);
emit_16(924);
emit_16(860);
emit_16(924);
emit_16(859);
emit_16(924);
emit_16(860);
emit_16(925);
emit_16(861);
emit_16(925);
emit_16(860);
emit_16(925);
emit_16(861);
emit_16(926);
emit_16(862);
emit_16(926);
emit_16(861);
emit_16(926);
emit_16(862);
emit_16(927);
emit_16(863);
emit_16(927);
emit_16(862);
emit_16(927);
emit_16(863);
emit_16(928);
emit_16(864);
emit_16(928);
emit_16(863);
emit_16(928);
emit_16(864);
emit_16(929);
emit_16(865);
emit_16(929);
emit_16(864);
emit_16(929);
emit_16(865);
emit_16(930);
emit_16(866);
emit_16(930);
emit_16(865);
emit_16(930);
emit_16(866);
emit_16(931);
emit_16(867);
emit_16(931);
emit_16(866);
emit_16(931);
emit_16(867);
emit_16(932);
emit_16(868);
emit_16(932);
emit_16(867);
emit_16(932);
emit_16(868);
emit_16(933);
emit_16(869);
emit_16(933);
emit_16(868);
emit_16(933);
emit_16(869);
emit_16(934);
emit_16(870);
emit_16(934);
emit_16(869);
emit_16(934);
emit_16(870);
emit_16(935);
emit_16(871);
emit_16(935);
emit_16(870);
emit_16(935);
emit_16(871);
emit_16(936);
emit_16(872);
emit_16(936);
emit_16(871);
emit_16(936);
emit_16(872);
emit_16(937);
emit_16(873);
emit_16(937);
emit_16(872);
emit_16(937);
emit_16(873);
emit_16(938);
emit_16(874);
emit_16(938);
emit_16(873);
emit_16(938);
emit_16(874);
emit_16(939);
emit_16(875);
emit_16(939);
emit_16(874);
emit_16(939);
emit_16(875);
emit_16(940);
emit_16(876);
emit_16(940);
emit_16(875);
emit_16(940);
emit_16(876);
emit_16(941);
emit_16(877);
emit_16(941);
emit_16(876);
emit_16(941);
emit_16(877);
emit_16(942);
emit_16(878);
emit_16(942);
emit_16(877);
emit_16(942);
emit_16(878);
emit_16(943);
emit_16(879);
emit_16(943);
emit_16(878);
emit_16(943);
emit_16(879);
emit_16(944);
emit_16(880);
emit_16(944);
emit_16(879);
emit_16(944);
emit_16(880);
emit_16(945);
emit_16(881);
emit_16(945);
emit_16(880);
emit_16(945);
emit_16(881);
emit_16(946);
emit_16(882);
emit_16(946);
emit_16(881);
emit_16(946);
emit_16(882);
emit_16(947);
emit_16(883);
emit_16(947);
emit_16(882);
emit_16(947);
emit_16(883);
emit_16(948);
emit_16(884);
emit_16(948);
emit_16(883);
emit_16(948);
emit_16(884);
emit_16(949);
emit_16(885);
emit_16(949);
emit_16(884);
emit_16(949);
emit_16(885);
emit_16(950);
emit_16(886);
emit_16(950);
emit_16(885);
emit_16(950);
emit_16(886);
emit_16(951);
emit_16(887);
emit_16(951);
emit_16(886);
emit_16(951);
emit_16(887);
emit_16(952);
emit_16(888);
emit_16(952);
emit_16(887);
emit_16(952);
emit_16(888);
emit_16(953);
emit_16(889);
emit_16(953);
emit_16(888);
emit_16(953);
emit_16(889);
emit_16(954);
emit_16(890);
emit_16(954);
emit_16(889);
emit_16(954);
emit_16(890);
emit_16(955);
emit_16(891);
emit_16(955);
emit_16(890);
emit_16(955);
emit_16(891);
emit_16(956);
emit_16(892);
emit_16(956);
emit_16(891);
emit_16(956);
emit_16(892);
emit_16(957);
emit_16(893);
emit_16(957);
emit_16(892);
emit_16(957);
emit_16(893);
emit_16(958);
emit_16(894);
emit_16(958);
emit_16(893);
emit_16(958);
emit_16(894);
emit_16(959);
emit_16(895);
emit_16(959);
emit_16(894);
emit_16(960);
emit_16(896);
emit_16(961);
emit_16(897);
emit_16(961);
emit_16(896);
emit_16(961);
emit_16(897);
emit_16(962);
emit_16(898);
emit_16(962);
emit_16(897);
emit_16(962);
emit_16(898);
emit_16(963);
emit_16(899);
emit_16(963);
emit_16(898);
emit_16(963);
emit_16(899);
emit_16(964);
emit_16(900);
emit_16(964);
emit_16(899);
emit_16(964);
emit_16(900);
emit_16(965);
emit_16(901);
emit_16(965);
emit_16(900);
emit_16(965);
emit_16(901);
emit_16(966);
emit_16(902);
emit_16(966);
emit_16(901);
emit_16(966);
emit_16(902);
emit_16(967);
emit_16(903);
emit_16(967);
emit_16(902);
emit_16(967);
emit_16(903);
emit_16(968);
emit_16(904);
emit_16(968);
emit_16(903);
emit_16(968);
emit_16(904);
emit_16(969);
emit_16(905);
emit_16(969);
emit_16(904);
emit_16(969);
emit_16(905);
emit_16(970);
emit_16(906);
emit_16(970);
emit_16(905);
emit_16(970);
emit_16(906);
emit_16(971);
emit_16(907);
emit_16(971);
emit_16(906);
emit_16(971);
emit_16(907);
emit_16(972);
emit_16(908);
emit_16(972);
emit_16(907);
emit_16(972);
emit_16(908);
emit_16(973);
emit_16(909);
emit_16(973);
emit_16(908);
emit_16(973);
emit_16(909);
emit_16(974);
emit_16(910);
emit_16(974);
emit_16(909);
emit_16(974);
emit_16(910);
emit_16(975);
emit_16(911);
emit_16(975);
emit_16(910);
emit_16(975);
emit_16(911);
emit_16(976);
emit_16(912);
emit_16(976);
emit_16(911);
emit_16(976);
emit_16(912);
emit_16(977);
emit_16(913);
emit_16(977);
emit_16(912);
emit_16(977);
emit_16(913);
emit_16(978);
emit_16(914);
emit_16(978);
emit_16(913);
emit_16(978);
emit_16(914);
emit_16(979);
emit_16(915);
emit_16(979);
emit_16(914);
emit_16(979);
emit_16(915);
emit_16(980);
emit_16(916);
emit_16(980);
emit_16(915);
emit_16(980);
emit_16(916);
emit_16(981);
emit_16(917);
emit_16(981);
emit_16(916);
emit_16(981);
emit_16(917);
emit_16(982);
emit_16(918);
emit_16(982);
emit_16(917);
emit_16(982);
emit_16(918);
emit_16(983);
emit_16(919);
emit_16(983);
emit_16(918);
emit_16(983);
emit_16(919);
emit_16(984);
emit_16(920);
emit_16(984);
emit_16(919);
emit_16(984);
emit_16(920);
emit_16(985);
emit_16(921);
emit_16(985);
emit_16(920);
emit_16(985);
emit_16(921);
emit_16(986);
emit_16(922);
emit_16(986);
emit_16(921);
emit_16(986);
emit_16(922);
emit_16(987);
emit_16(923);
emit_16(987);
emit_16(922);
emit_16(987);
emit_16(923);
emit_16(988);
emit_16(924);
emit_16(988);
emit_16(923);
emit_16(988);
emit_16(924);
emit_16(989);
emit_16(925);
emit_16(989);
emit_16(924);
emit_16(989);
emit_16(925);
emit_16(990);
emit_16(926);
emit_16(990);
emit_16(925);
emit_16(990);
emit_16(926);
emit_16(991);
emit_16(927);
emit_16(991);
emit_16(926);
emit_16(991);
emit_16(927);
emit_16(992);
emit_16(928);
emit_16(992);
emit_16(927);
emit_16(992);
emit_16(928);
emit_16(993);
emit_16(929);
emit_16(993);
emit_16(928);
emit_16(993);
emit_16(929);
emit_16(994);
emit_16(930);
emit_16(994);
emit_16(929);
emit_16(994);
emit_16(930);
emit_16(995);
emit_16(931);
emit_16(995);
emit_16(930);
emit_16(995);
emit_16(931);
emit_16(996);
emit_16(932);
emit_16(996);
emit_16(931);
emit_16(996);
emit_16(932);
emit_16(997);
emit_16(933);
emit_16(997);
emit_16(932);
emit_16(997);
emit_16(933);
emit_16(998);
emit_16(934);
emit_16(998);
emit_16(933);
emit_16(998);
emit_16(934);
emit_16(999);
emit_16(935);
emit_16(999);
emit_16(934);
emit_16(999);
emit_16(935);
emit_16(1000);
emit_16(936);
emit_16(1000);
emit_16(935);
emit_16(1000);
emit_16(936);
emit_16(1001);
emit_16(937);
emit_16(1001);
emit_16(936);
emit_16(1001);
emit_16(937);
emit_16(1002);
emit_16(938);
emit_16(1002);
emit_16(937);
emit_16(1002);
emit_16(938);
emit_16(1003);
emit_16(939);
emit_16(1003);
emit_16(938);
emit_16(1003);
emit_16(939);
emit_16(1004);
emit_16(940);
emit_16(1004);
emit_16(939);
emit_16(1004);
emit_16(940);
emit_16(1005);
emit_16(941);
emit_16(1005);
emit_16(940);
emit_16(1005);
emit_16(941);
emit_16(1006);
emit_16(942);
emit_16(1006);
emit_16(941);
emit_16(1006);
emit_16(942);
emit_16(1007);
emit_16(943);
emit_16(1007);
emit_16(942);
emit_16(1007);
emit_16(943);
emit_16(1008);
emit_16(944);
emit_16(1008);
emit_16(943);
emit_16(1008);
emit_16(944);
emit_16(1009);
emit_16(945);
emit_16(1009);
emit_16(944);
emit_16(1009);
emit_16(945);
emit_16(1010);
emit_16(946);
emit_16(1010);
emit_16(945);
emit_16(1010);
emit_16(946);
emit_16(1011);
emit_16(947);
emit_16(1011);
emit_16(946);
emit_16(1011);
emit_16(947);
emit_16(1012);
emit_16(948);
emit_16(1012);
emit_16(947);
emit_16(1012);
emit_16(948);
emit_16(1013);
emit_16(949);
emit_16(1013);
emit_16(948);
emit_16(1013);
emit_16(949);
emit_16(1014);
emit_16(950);
emit_16(1014);
emit_16(949);
emit_16(1014);
emit_16(950);
emit_16(1015);
emit_16(951);
emit_16(1015);
emit_16(950);
emit_16(1015);
emit_16(951);
emit_16(1016);
emit_16(952);
emit_16(1016);
emit_16(951);
emit_16(1016);
emit_16(952);
emit_16(1017);
emit_16(953);
emit_16(1017);
emit_16(952);
emit_16(1017);
emit_16(953);
emit_16(1018);
emit_16(954);
emit_16(1018);
emit_16(953);
emit_16(1018);
emit_16(954);
emit_16(1019);
emit_16(955);
emit_16(1019);
emit_16(954);
emit_16(1019);
emit_16(955);
emit_16(1020);
emit_16(956);
emit_16(1020);
emit_16(955);
emit_16(1020);
emit_16(956);
emit_16(1021);
emit_16(957);
emit_16(1021);
emit_16(956);
emit_16(1021);
emit_16(957);
emit_16(1022);
emit_16(958);
emit_16(1022);
emit_16(957);
emit_16(1022);
emit_16(958);
emit_16(1023);
emit_16(959);
emit_16(1023);
emit_16(958);
emit_16(1024);
emit_16(960);
emit_16(1025);
emit_16(961);
emit_16(1025);
emit_16(960);
emit_16(1025);
emit_16(961);
emit_16(1026);
emit_16(962);
emit_16(1026);
emit_16(961);
emit_16(1026);
emit_16(962);
emit_16(1027);
emit_16(963);
emit_16(1027);
emit_16(962);
emit_16(1027);
emit_16(963);
emit_16(1028);
emit_16(964);
emit_16(1028);
emit_16(963);
emit_16(1028);
emit_16(964);
emit_16(1029);
emit_16(965);
emit_16(1029);
emit_16(964);
emit_16(1029);
emit_16(965);
emit_16(1030);
emit_16(966);
emit_16(1030);
emit_16(965);
emit_16(1030);
emit_16(966);
emit_16(1031);
emit_16(967);
emit_16(1031);
emit_16(966);
emit_16(1031);
emit_16(967);
emit_16(1032);
emit_16(968);
emit_16(1032);
emit_16(967);
emit_16(1032);
emit_16(968);
emit_16(1033);
emit_16(969);
emit_16(1033);
emit_16(968);
emit_16(1033);
emit_16(969);
emit_16(1034);
emit_16(970);
emit_16(1034);
emit_16(969);
emit_16(1034);
emit_16(970);
emit_16(1035);
emit_16(971);
emit_16(1035);
emit_16(970);
emit_16(1035);
emit_16(971);
emit_16(1036);
emit_16(972);
emit_16(1036);
emit_16(971);
emit_16(1036);
emit_16(972);
emit_16(1037);
emit_16(973);
emit_16(1037);
emit_16(972);
emit_16(1037);
emit_16(973);
emit_16(1038);
emit_16(974);
emit_16(1038);
emit_16(973);
emit_16(1038);
emit_16(974);
emit_16(1039);
emit_16(975);
emit_16(1039);
emit_16(974);
emit_16(1039);
emit_16(975);
emit_16(1040);
emit_16(976);
emit_16(1040);
emit_16(975);
emit_16(1040);
emit_16(976);
emit_16(1041);
emit_16(977);
emit_16(1041);
emit_16(976);
emit_16(1041);
emit_16(977);
emit_16(1042);
emit_16(978);
emit_16(1042);
emit_16(977);
emit_16(1042);
emit_16(978);
emit_16(1043);
emit_16(979);
emit_16(1043);
emit_16(978);
emit_16(1043);
emit_16(979);
emit_16(1044);
emit_16(980);
emit_16(1044);
emit_16(979);
emit_16(1044);
emit_16(980);
emit_16(1045);
emit_16(981);
emit_16(1045);
emit_16(980);
emit_16(1045);
emit_16(981);
emit_16(1046);
emit_16(982);
emit_16(1046);
emit_16(981);
emit_16(1046);
emit_16(982);
emit_16(1047);
emit_16(983);
emit_16(1047);
emit_16(982);
emit_16(1047);
emit_16(983);
emit_16(1048);
emit_16(984);
emit_16(1048);
emit_16(983);
emit_16(1048);
emit_16(984);
emit_16(1049);
emit_16(985);
emit_16(1049);
emit_16(984);
emit_16(1049);
emit_16(985);
emit_16(1050);
emit_16(986);
emit_16(1050);
emit_16(985);
emit_16(1050);
emit_16(986);
emit_16(1051);
emit_16(987);
emit_16(1051);
emit_16(986);
emit_16(1051);
emit_16(987);
emit_16(1052);
emit_16(988);
emit_16(1052);
emit_16(987);
emit_16(1052);
emit_16(988);
emit_16(1053);
emit_16(989);
emit_16(1053);
emit_16(988);
emit_16(1053);
emit_16(989);
emit_16(1054);
emit_16(990);
emit_16(1054);
emit_16(989);
emit_16(1054);
emit_16(990);
emit_16(1055);
emit_16(991);
emit_16(1055);
emit_16(990);
emit_16(1055);
emit_16(991);
emit_16(1056);
emit_16(992);
emit_16(1056);
emit_16(991);
emit_16(1056);
emit_16(992);
emit_16(1057);
emit_16(993);
emit_16(1057);
emit_16(992);
emit_16(1057);
emit_16(993);
emit_16(1058);
emit_16(994);
emit_16(1058);
emit_16(993);
emit_16(1058);
emit_16(994);
emit_16(1059);
emit_16(995);
emit_16(1059);
emit_16(994);
emit_16(1059);
emit_16(995);
emit_16(1060);
emit_16(996);
emit_16(1060);
emit_16(995);
emit_16(1060);
emit_16(996);
emit_16(1061);
emit_16(997);
emit_16(1061);
emit_16(996);
emit_16(1061);
emit_16(997);
emit_16(1062);
emit_16(998);
emit_16(1062);
emit_16(997);
emit_16(1062);
emit_16(998);
emit_16(1063);
emit_16(999);
emit_16(1063);
emit_16(998);
emit_16(1063);
emit_16(999);
emit_16(1064);
emit_16(1000);
emit_16(1064);
emit_16(999);
emit_16(1064);
emit_16(1000);
emit_16(1065);
emit_16(1001);
emit_16(1065);
emit_16(1000);
emit_16(1065);
emit_16(1001);
emit_16(1066);
emit_16(1002);
emit_16(1066);
emit_16(1001);
emit_16(1066);
emit_16(1002);
emit_16(1067);
emit_16(1003);
emit_16(1067);
emit_16(1002);
emit_16(1067);
emit_16(1003);
emit_16(1068);
emit_16(1004);
emit_16(1068);
emit_16(1003);
emit_16(1068);
emit_16(1004);
emit_16(1069);
emit_16(1005);
emit_16(1069);
emit_16(1004);
emit_16(1069);
emit_16(1005);
emit_16(1070);
emit_16(1006);
emit_16(1070);
emit_16(1005);
emit_16(1070);
emit_16(1006);
emit_16(1071);
emit_16(1007);
emit_16(1071);
emit_16(1006);
emit_16(1071);
emit_16(1007);
emit_16(1072);
emit_16(1008);
emit_16(1072);
emit_16(1007);
emit_16(1072);
emit_16(1008);
emit_16(1073);
emit_16(1009);
emit_16(1073);
emit_16(1008);
emit_16(1073);
emit_16(1009);
emit_16(1074);
emit_16(1010);
emit_16(1074);
emit_16(1009);
emit_16(1074);
emit_16(1010);
emit_16(1075);
emit_16(1011);
emit_16(1075);
emit_16(1010);
emit_16(1075);
emit_16(1011);
emit_16(1076);
emit_16(1012);
emit_16(1076);
emit_16(1011);
emit_16(1076);
emit_16(1012);
emit_16(1077);
emit_16(1013);
emit_16(1077);
emit_16(1012);
emit_16(1077);
emit_16(1013);
emit_16(1078);
emit_16(1014);
emit_16(1078);
emit_16(1013);
emit_16(1078);
emit_16(1014);
emit_16(1079);
emit_16(1015);
emit_16(1079);
emit_16(1014);
emit_16(1079);
emit_16(1015);
emit_16(1080);
emit_16(1016);
emit_16(1080);
emit_16(1015);
emit_16(1080);
emit_16(1016);
emit_16(1081);
emit_16(1017);
emit_16(1081);
emit_16(1016);
emit_16(1081);
emit_16(1017);
emit_16(1082);
emit_16(1018);
emit_16(1082);
emit_16(1017);
emit_16(1082);
emit_16(1018);
emit_16(1083);
emit_16(1019);
emit_16(1083);
emit_16(1018);
emit_16(1083);
emit_16(1019);
emit_16(1084);
emit_16(1020);
emit_16(1084);
emit_16(1019);
emit_16(1084);
emit_16(1020);
emit_16(1085);
emit_16(1021);
emit_16(1085);
emit_16(1020);
emit_16(1085);
emit_16(1021);
emit_16(1086);
emit_16(1022);
emit_16(1086);
emit_16(1021);
emit_16(1086);
emit_16(1022);
emit_16(1087);
emit_16(1023);
emit_16(1087);
emit_16(1022);
emit_16(1088);
emit_16(1024);
emit_16(1089);
emit_16(1025);
emit_16(1089);
emit_16(1024);
emit_16(1089);
emit_16(1025);
emit_16(1090);
emit_16(1026);
emit_16(1090);
emit_16(1025);
emit_16(1090);
emit_16(1026);
emit_16(1091);
emit_16(1027);
emit_16(1091);
emit_16(1026);
emit_16(1091);
emit_16(1027);
emit_16(1092);
emit_16(1028);
emit_16(1092);
emit_16(1027);
emit_16(1092);
emit_16(1028);
emit_16(1093);
emit_16(1029);
emit_16(1093);
emit_16(1028);
emit_16(1093);
emit_16(1029);
emit_16(1094);
emit_16(1030);
emit_16(1094);
emit_16(1029);
emit_16(1094);
emit_16(1030);
emit_16(1095);
emit_16(1031);
emit_16(1095);
emit_16(1030);
emit_16(1095);
emit_16(1031);
emit_16(1096);
emit_16(1032);
emit_16(1096);
emit_16(1031);
emit_16(1096);
emit_16(1032);
emit_16(1097);
emit_16(1033);
emit_16(1097);
emit_16(1032);
emit_16(1097);
emit_16(1033);
emit_16(1098);
emit_16(1034);
emit_16(1098);
emit_16(1033);
emit_16(1098);
emit_16(1034);
emit_16(1099);
emit_16(1035);
emit_16(1099);
emit_16(1034);
emit_16(1099);
emit_16(1035);
emit_16(1100);
emit_16(1036);
emit_16(1100);
emit_16(1035);
emit_16(1100);
emit_16(1036);
emit_16(1101);
emit_16(1037);
emit_16(1101);
emit_16(1036);
emit_16(1101);
emit_16(1037);
emit_16(1102);
emit_16(1038);
emit_16(1102);
emit_16(1037);
emit_16(1102);
emit_16(1038);
emit_16(1103);
emit_16(1039);
emit_16(1103);
emit_16(1038);
emit_16(1103);
emit_16(1039);
emit_16(1104);
emit_16(1040);
emit_16(1104);
emit_16(1039);
emit_16(1104);
emit_16(1040);
emit_16(1105);
emit_16(1041);
emit_16(1105);
emit_16(1040);
emit_16(1105);
emit_16(1041);
emit_16(1106);
emit_16(1042);
emit_16(1106);
emit_16(1041);
emit_16(1106);
emit_16(1042);
emit_16(1107);
emit_16(1043);
emit_16(1107);
emit_16(1042);
emit_16(1107);
emit_16(1043);
emit_16(1108);
emit_16(1044);
emit_16(1108);
emit_16(1043);
emit_16(1108);
emit_16(1044);
emit_16(1109);
emit_16(1045);
emit_16(1109);
emit_16(1044);
emit_16(1109);
emit_16(1045);
emit_16(1110);
emit_16(1046);
emit_16(1110);
emit_16(1045);
emit_16(1110);
emit_16(1046);
emit_16(1111);
emit_16(1047);
emit_16(1111);
emit_16(1046);
emit_16(1111);
emit_16(1047);
emit_16(1112);
emit_16(1048);
emit_16(1112);
emit_16(1047);
emit_16(1112);
emit_16(1048);
emit_16(1113);
emit_16(1049);
emit_16(1113);
emit_16(1048);
emit_16(1113);
emit_16(1049);
emit_16(1114);
emit_16(1050);
emit_16(1114);
emit_16(1049);
emit_16(1114);
emit_16(1050);
emit_16(1115);
emit_16(1051);
emit_16(1115);
emit_16(1050);
emit_16(1115);
emit_16(1051);
emit_16(1116);
emit_16(1052);
emit_16(1116);
emit_16(1051);
emit_16(1116);
emit_16(1052);
emit_16(1117);
emit_16(1053);
emit_16(1117);
emit_16(1052);
emit_16(1117);
emit_16(1053);
emit_16(1118);
emit_16(1054);
emit_16(1118);
emit_16(1053);
emit_16(1118);
emit_16(1054);
emit_16(1119);
emit_16(1055);
emit_16(1119);
emit_16(1054);
emit_16(1119);
emit_16(1055);
emit_16(1120);
emit_16(1056);
emit_16(1120);
emit_16(1055);
emit_16(1120);
emit_16(1056);
emit_16(1121);
emit_16(1057);
emit_16(1121);
emit_16(1056);
emit_16(1121);
emit_16(1057);
emit_16(1122);
emit_16(1058);
emit_16(1122);
emit_16(1057);
emit_16(1122);
emit_16(1058);
emit_16(1123);
emit_16(1059);
emit_16(1123);
emit_16(1058);
emit_16(1123);
emit_16(1059);
emit_16(1124);
emit_16(1060);
emit_16(1124);
emit_16(1059);
emit_16(1124);
emit_16(1060);
emit_16(1125);
emit_16(1061);
emit_16(1125);
emit_16(1060);
emit_16(1125);
emit_16(1061);
emit_16(1126);
emit_16(1062);
emit_16(1126);
emit_16(1061);
emit_16(1126);
emit_16(1062);
emit_16(1127);
emit_16(1063);
emit_16(1127);
emit_16(1062);
emit_16(1127);
emit_16(1063);
emit_16(1128);
emit_16(1064);
emit_16(1128);
emit_16(1063);
emit_16(1128);
emit_16(1064);
emit_16(1129);
emit_16(1065);
emit_16(1129);
emit_16(1064);
emit_16(1129);
emit_16(1065);
emit_16(1130);
emit_16(1066);
emit_16(1130);
emit_16(1065);
emit_16(1130);
emit_16(1066);
emit_16(1131);
emit_16(1067);
emit_16(1131);
emit_16(1066);
emit_16(1131);
emit_16(1067);
emit_16(1132);
emit_16(1068);
emit_16(1132);
emit_16(1067);
emit_16(1132);
emit_16(1068);
emit_16(1133);
emit_16(1069);
emit_16(1133);
emit_16(1068);
emit_16(1133);
emit_16(1069);
emit_16(1134);
emit_16(1070);
emit_16(1134);
emit_16(1069);
emit_16(1134);
emit_16(1070);
emit_16(1135);
emit_16(1071);
emit_16(1135);
emit_16(1070);
emit_16(1135);
emit_16(1071);
emit_16(1136);
emit_16(1072);
emit_16(1136);
emit_16(1071);
emit_16(1136);
emit_16(1072);
emit_16(1137);
emit_16(1073);
emit_16(1137);
emit_16(1072);
emit_16(1137);
emit_16(1073);
emit_16(1138);
emit_16(1074);
emit_16(1138);
emit_16(1073);
emit_16(1138);
emit_16(1074);
emit_16(1139);
emit_16(1075);
emit_16(1139);
emit_16(1074);
emit_16(1139);
emit_16(1075);
emit_16(1140);
emit_16(1076);
emit_16(1140);
emit_16(1075);
emit_16(1140);
emit_16(1076);
emit_16(1141);
emit_16(1077);
emit_16(1141);
emit_16(1076);
emit_16(1141);
emit_16(1077);
emit_16(1142);
emit_16(1078);
emit_16(1142);
emit_16(1077);
emit_16(1142);
emit_16(1078);
emit_16(1143);
emit_16(1079);
emit_16(1143);
emit_16(1078);
emit_16(1143);
emit_16(1079);
emit_16(1144);
emit_16(1080);
emit_16(1144);
emit_16(1079);
emit_16(1144);
emit_16(1080);
emit_16(1145);
emit_16(1081);
emit_16(1145);
emit_16(1080);
emit_16(1145);
emit_16(1081);
emit_16(1146);
emit_16(1082);
emit_16(1146);
emit_16(1081);
emit_16(1146);
emit_16(1082);
emit_16(1147);
emit_16(1083);
emit_16(1147);
emit_16(1082);
emit_16(1147);
emit_16(1083);
emit_16(1148);
emit_16(1084);
emit_16(1148);
emit_16(1083);
emit_16(1148);
emit_16(1084);
emit_16(1149);
emit_16(1085);
emit_16(1149);
emit_16(1084);
emit_16(1149);
emit_16(1085);
emit_16(1150);
emit_16(1086);
emit_16(1150);
emit_16(1085);
emit_16(1150);
emit_16(1086);
emit_16(1151);
emit_16(1087);
emit_16(1151);
emit_16(1086);
emit_16(1152);
emit_16(1088);
emit_16(1153);
emit_16(1089);
emit_16(1153);
emit_16(1088);
emit_16(1153);
emit_16(1089);
emit_16(1154);
emit_16(1090);
emit_16(1154);
emit_16(1089);
emit_16(1154);
emit_16(1090);
emit_16(1155);
emit_16(1091);
emit_16(1155);
emit_16(1090);
emit_16(1155);
emit_16(1091);
emit_16(1156);
emit_16(1092);
emit_16(1156);
emit_16(1091);
emit_16(1156);
emit_16(1092);
emit_16(1157);
emit_16(1093);
emit_16(1157);
emit_16(1092);
emit_16(1157);
emit_16(1093);
emit_16(1158);
emit_16(1094);
emit_16(1158);
emit_16(1093);
emit_16(1158);
emit_16(1094);
emit_16(1159);
emit_16(1095);
emit_16(1159);
emit_16(1094);
emit_16(1159);
emit_16(1095);
emit_16(1160);
emit_16(1096);
emit_16(1160);
emit_16(1095);
emit_16(1160);
emit_16(1096);
emit_16(1161);
emit_16(1097);
emit_16(1161);
emit_16(1096);
emit_16(1161);
emit_16(1097);
emit_16(1162);
emit_16(1098);
emit_16(1162);
emit_16(1097);
emit_16(1162);
emit_16(1098);
emit_16(1163);
emit_16(1099);
emit_16(1163);
emit_16(1098);
emit_16(1163);
emit_16(1099);
emit_16(1164);
emit_16(1100);
emit_16(1164);
emit_16(1099);
emit_16(1164);
emit_16(1100);
emit_16(1165);
emit_16(1101);
emit_16(1165);
emit_16(1100);
emit_16(1165);
emit_16(1101);
emit_16(1166);
emit_16(1102);
emit_16(1166);
emit_16(1101);
emit_16(1166);
emit_16(1102);
emit_16(1167);
emit_16(1103);
emit_16(1167);
emit_16(1102);
emit_16(1167);
emit_16(1103);
emit_16(1168);
emit_16(1104);
emit_16(1168);
emit_16(1103);
emit_16(1168);
emit_16(1104);
emit_16(1169);
emit_16(1105);
emit_16(1169);
emit_16(1104);
emit_16(1169);
emit_16(1105);
emit_16(1170);
emit_16(1106);
emit_16(1170);
emit_16(1105);
emit_16(1170);
emit_16(1106);
emit_16(1171);
emit_16(1107);
emit_16(1171);
emit_16(1106);
emit_16(1171);
emit_16(1107);
emit_16(1172);
emit_16(1108);
emit_16(1172);
emit_16(1107);
emit_16(1172);
emit_16(1108);
emit_16(1173);
emit_16(1109);
emit_16(1173);
emit_16(1108);
emit_16(1173);
emit_16(1109);
emit_16(1174);
emit_16(1110);
emit_16(1174);
emit_16(1109);
emit_16(1174);
emit_16(1110);
emit_16(1175);
emit_16(1111);
emit_16(1175);
emit_16(1110);
emit_16(1175);
emit_16(1111);
emit_16(1176);
emit_16(1112);
emit_16(1176);
emit_16(1111);
emit_16(1176);
emit_16(1112);
emit_16(1177);
emit_16(1113);
emit_16(1177);
emit_16(1112);
emit_16(1177);
emit_16(1113);
emit_16(1178);
emit_16(1114);
emit_16(1178);
emit_16(1113);
emit_16(1178);
emit_16(1114);
emit_16(1179);
emit_16(1115);
emit_16(1179);
emit_16(1114);
emit_16(1179);
emit_16(1115);
emit_16(1180);
emit_16(1116);
emit_16(1180);
emit_16(1115);
emit_16(1180);
emit_16(1116);
emit_16(1181);
emit_16(1117);
emit_16(1181);
emit_16(1116);
emit_16(1181);
emit_16(1117);
emit_16(1182);
emit_16(1118);
emit_16(1182);
emit_16(1117);
emit_16(1182);
emit_16(1118);
emit_16(1183);
emit_16(1119);
emit_16(1183);
emit_16(1118);
emit_16(1183);
emit_16(1119);
emit_16(1184);
emit_16(1120);
emit_16(1184);
emit_16(1119);
emit_16(1184);
emit_16(1120);
emit_16(1185);
emit_16(1121);
emit_16(1185);
emit_16(1120);
emit_16(1185);
emit_16(1121);
emit_16(1186);
emit_16(1122);
emit_16(1186);
emit_16(1121);
emit_16(1186);
emit_16(1122);
emit_16(1187);
emit_16(1123);
emit_16(1187);
emit_16(1122);
emit_16(1187);
emit_16(1123);
emit_16(1188);
emit_16(1124);
emit_16(1188);
emit_16(1123);
emit_16(1188);
emit_16(1124);
emit_16(1189);
emit_16(1125);
emit_16(1189);
emit_16(1124);
emit_16(1189);
emit_16(1125);
emit_16(1190);
emit_16(1126);
emit_16(1190);
emit_16(1125);
emit_16(1190);
emit_16(1126);
emit_16(1191);
emit_16(1127);
emit_16(1191);
emit_16(1126);
emit_16(1191);
emit_16(1127);
emit_16(1192);
emit_16(1128);
emit_16(1192);
emit_16(1127);
emit_16(1192);
emit_16(1128);
emit_16(1193);
emit_16(1129);
emit_16(1193);
emit_16(1128);
emit_16(1193);
emit_16(1129);
emit_16(1194);
emit_16(1130);
emit_16(1194);
emit_16(1129);
emit_16(1194);
emit_16(1130);
emit_16(1195);
emit_16(1131);
emit_16(1195);
emit_16(1130);
emit_16(1195);
emit_16(1131);
emit_16(1196);
emit_16(1132);
emit_16(1196);
emit_16(1131);
emit_16(1196);
emit_16(1132);
emit_16(1197);
emit_16(1133);
emit_16(1197);
emit_16(1132);
emit_16(1197);
emit_16(1133);
emit_16(1198);
emit_16(1134);
emit_16(1198);
emit_16(1133);
emit_16(1198);
emit_16(1134);
emit_16(1199);
emit_16(1135);
emit_16(1199);
emit_16(1134);
emit_16(1199);
emit_16(1135);
emit_16(1200);
emit_16(1136);
emit_16(1200);
emit_16(1135);
emit_16(1200);
emit_16(1136);
emit_16(1201);
emit_16(1137);
emit_16(1201);
emit_16(1136);
emit_16(1201);
emit_16(1137);
emit_16(1202);
emit_16(1138);
emit_16(1202);
emit_16(1137);
emit_16(1202);
emit_16(1138);
emit_16(1203);
emit_16(1139);
emit_16(1203);
emit_16(1138);
emit_16(1203);
emit_16(1139);
emit_16(1204);
emit_16(1140);
emit_16(1204);
emit_16(1139);
emit_16(1204);
emit_16(1140);
emit_16(1205);
emit_16(1141);
emit_16(1205);
emit_16(1140);
emit_16(1205);
emit_16(1141);
emit_16(1206);
emit_16(1142);
emit_16(1206);
emit_16(1141);
emit_16(1206);
emit_16(1142);
emit_16(1207);
emit_16(1143);
emit_16(1207);
emit_16(1142);
emit_16(1207);
emit_16(1143);
emit_16(1208);
emit_16(1144);
emit_16(1208);
emit_16(1143);
emit_16(1208);
emit_16(1144);
emit_16(1209);
emit_16(1145);
emit_16(1209);
emit_16(1144);
emit_16(1209);
emit_16(1145);
emit_16(1210);
emit_16(1146);
emit_16(1210);
emit_16(1145);
emit_16(1210);
emit_16(1146);
emit_16(1211);
emit_16(1147);
emit_16(1211);
emit_16(1146);
emit_16(1211);
emit_16(1147);
emit_16(1212);
emit_16(1148);
emit_16(1212);
emit_16(1147);
emit_16(1212);
emit_16(1148);
emit_16(1213);
emit_16(1149);
emit_16(1213);
emit_16(1148);
emit_16(1213);
emit_16(1149);
emit_16(1214);
emit_16(1150);
emit_16(1214);
emit_16(1149);
emit_16(1214);
emit_16(1150);
emit_16(1215);
emit_16(1151);
emit_16(1215);
emit_16(1150);
emit_16(1216);
emit_16(1152);
emit_16(1217);
emit_16(1153);
emit_16(1217);
emit_16(1152);
emit_16(1217);
emit_16(1153);
emit_16(1218);
emit_16(1154);
emit_16(1218);
emit_16(1153);
emit_16(1218);
emit_16(1154);
emit_16(1219);
emit_16(1155);
emit_16(1219);
emit_16(1154);
emit_16(1219);
emit_16(1155);
emit_16(1220);
emit_16(1156);
emit_16(1220);
emit_16(1155);
emit_16(1220);
emit_16(1156);
emit_16(1221);
emit_16(1157);
emit_16(1221);
emit_16(1156);
emit_16(1221);
emit_16(1157);
emit_16(1222);
emit_16(1158);
emit_16(1222);
emit_16(1157);
emit_16(1222);
emit_16(1158);
emit_16(1223);
emit_16(1159);
emit_16(1223);
emit_16(1158);
emit_16(1223);
emit_16(1159);
emit_16(1224);
emit_16(1160);
emit_16(1224);
emit_16(1159);
emit_16(1224);
emit_16(1160);
emit_16(1225);
emit_16(1161);
emit_16(1225);
emit_16(1160);
emit_16(1225);
emit_16(1161);
emit_16(1226);
emit_16(1162);
emit_16(1226);
emit_16(1161);
emit_16(1226);
emit_16(1162);
emit_16(1227);
emit_16(1163);
emit_16(1227);
emit_16(1162);
emit_16(1227);
emit_16(1163);
emit_16(1228);
emit_16(1164);
emit_16(1228);
emit_16(1163);
emit_16(1228);
emit_16(1164);
emit_16(1229);
emit_16(1165);
emit_16(1229);
emit_16(1164);
emit_16(1229);
emit_16(1165);
emit_16(1230);
emit_16(1166);
emit_16(1230);
emit_16(1165);
emit_16(1230);
emit_16(1166);
emit_16(1231);
emit_16(1167);
emit_16(1231);
emit_16(1166);
emit_16(1231);
emit_16(1167);
emit_16(1232);
emit_16(1168);
emit_16(1232);
emit_16(1167);
emit_16(1232);
emit_16(1168);
emit_16(1233);
emit_16(1169);
emit_16(1233);
emit_16(1168);
emit_16(1233);
emit_16(1169);
emit_16(1234);
emit_16(1170);
emit_16(1234);
emit_16(1169);
emit_16(1234);
emit_16(1170);
emit_16(1235);
emit_16(1171);
emit_16(1235);
emit_16(1170);
emit_16(1235);
emit_16(1171);
emit_16(1236);
emit_16(1172);
emit_16(1236);
emit_16(1171);
emit_16(1236);
emit_16(1172);
emit_16(1237);
emit_16(1173);
emit_16(1237);
emit_16(1172);
emit_16(1237);
emit_16(1173);
emit_16(1238);
emit_16(1174);
emit_16(1238);
emit_16(1173);
emit_16(1238);
emit_16(1174);
emit_16(1239);
emit_16(1175);
emit_16(1239);
emit_16(1174);
emit_16(1239);
emit_16(1175);
emit_16(1240);
emit_16(1176);
emit_16(1240);
emit_16(1175);
emit_16(1240);
emit_16(1176);
emit_16(1241);
emit_16(1177);
emit_16(1241);
emit_16(1176);
emit_16(1241);
emit_16(1177);
emit_16(1242);
emit_16(1178);
emit_16(1242);
emit_16(1177);
emit_16(1242);
emit_16(1178);
emit_16(1243);
emit_16(1179);
emit_16(1243);
emit_16(1178);
emit_16(1243);
emit_16(1179);
emit_16(1244);
emit_16(1180);
emit_16(1244);
emit_16(1179);
emit_16(1244);
emit_16(1180);
emit_16(1245);
emit_16(1181);
emit_16(1245);
emit_16(1180);
emit_16(1245);
emit_16(1181);
emit_16(1246);
emit_16(1182);
emit_16(1246);
emit_16(1181);
emit_16(1246);
emit_16(1182);
emit_16(1247);
emit_16(1183);
emit_16(1247);
emit_16(1182);
emit_16(1247);
emit_16(1183);
emit_16(1248);
emit_16(1184);
emit_16(1248);
emit_16(1183);
emit_16(1248);
emit_16(1184);
emit_16(1249);
emit_16(1185);
emit_16(1249);
emit_16(1184);
emit_16(1249);
emit_16(1185);
emit_16(1250);
emit_16(1186);
emit_16(1250);
emit_16(1185);
emit_16(1250);
emit_16(1186);
emit_16(1251);
emit_16(1187);
emit_16(1251);
emit_16(1186);
emit_16(1251);
emit_16(1187);
emit_16(1252);
emit_16(1188);
emit_16(1252);
emit_16(1187);
emit_16(1252);
emit_16(1188);
emit_16(1253);
emit_16(1189);
emit_16(1253);
emit_16(1188);
emit_16(1253);
emit_16(1189);
emit_16(1254);
emit_16(1190);
emit_16(1254);
emit_16(1189);
emit_16(1254);
emit_16(1190);
emit_16(1255);
emit_16(1191);
emit_16(1255);
emit_16(1190);
emit_16(1255);
emit_16(1191);
emit_16(1256);
emit_16(1192);
emit_16(1256);
emit_16(1191);
emit_16(1256);
emit_16(1192);
emit_16(1257);
emit_16(1193);
emit_16(1257);
emit_16(1192);
emit_16(1257);
emit_16(1193);
emit_16(1258);
emit_16(1194);
emit_16(1258);
emit_16(1193);
emit_16(1258);
emit_16(1194);
emit_16(1259);
emit_16(1195);
emit_16(1259);
emit_16(1194);
emit_16(1259);
emit_16(1195);
emit_16(1260);
emit_16(1196);
emit_16(1260);
emit_16(1195);
emit_16(1260);
emit_16(1196);
emit_16(1261);
emit_16(1197);
emit_16(1261);
emit_16(1196);
emit_16(1261);
emit_16(1197);
emit_16(1262);
emit_16(1198);
emit_16(1262);
emit_16(1197);
emit_16(1262);
emit_16(1198);
emit_16(1263);
emit_16(1199);
emit_16(1263);
emit_16(1198);
emit_16(1263);
emit_16(1199);
emit_16(1264);
emit_16(1200);
emit_16(1264);
emit_16(1199);
emit_16(1264);
emit_16(1200);
emit_16(1265);
emit_16(1201);
emit_16(1265);
emit_16(1200);
emit_16(1265);
emit_16(1201);
emit_16(1266);
emit_16(1202);
emit_16(1266);
emit_16(1201);
emit_16(1266);
emit_16(1202);
emit_16(1267);
emit_16(1203);
emit_16(1267);
emit_16(1202);
emit_16(1267);
emit_16(1203);
emit_16(1268);
emit_16(1204);
emit_16(1268);
emit_16(1203);
emit_16(1268);
emit_16(1204);
emit_16(1269);
emit_16(1205);
emit_16(1269);
emit_16(1204);
emit_16(1269);
emit_16(1205);
emit_16(1270);
emit_16(1206);
emit_16(1270);
emit_16(1205);
emit_16(1270);
emit_16(1206);
emit_16(1271);
emit_16(1207);
emit_16(1271);
emit_16(1206);
emit_16(1271);
emit_16(1207);
emit_16(1272);
emit_16(1208);
emit_16(1272);
emit_16(1207);
emit_16(1272);
emit_16(1208);
emit_16(1273);
emit_16(1209);
emit_16(1273);
emit_16(1208);
emit_16(1273);
emit_16(1209);
emit_16(1274);
emit_16(1210);
emit_16(1274);
emit_16(1209);
emit_16(1274);
emit_16(1210);
emit_16(1275);
emit_16(1211);
emit_16(1275);
emit_16(1210);
emit_16(1275);
emit_16(1211);
emit_16(1276);
emit_16(1212);
emit_16(1276);
emit_16(1211);
emit_16(1276);
emit_16(1212);
emit_16(1277);
emit_16(1213);
emit_16(1277);
emit_16(1212);
emit_16(1277);
emit_16(1213);
emit_16(1278);
emit_16(1214);
emit_16(1278);
emit_16(1213);
emit_16(1278);
emit_16(1214);
emit_16(1279);
emit_16(1215);
emit_16(1279);
emit_16(1214);
emit_16(1280);
emit_16(1216);
emit_16(1281);
emit_16(1217);
emit_16(1281);
emit_16(1216);
emit_16(1281);
emit_16(1217);
emit_16(1282);
emit_16(1218);
emit_16(1282);
emit_16(1217);
emit_16(1282);
emit_16(1218);
emit_16(1283);
emit_16(1219);
emit_16(1283);
emit_16(1218);
emit_16(1283);
emit_16(1219);
emit_16(1284);
emit_16(1220);
emit_16(1284);
emit_16(1219);
emit_16(1284);
emit_16(1220);
emit_16(1285);
emit_16(1221);
emit_16(1285);
emit_16(1220);
emit_16(1285);
emit_16(1221);
emit_16(1286);
emit_16(1222);
emit_16(1286);
emit_16(1221);
emit_16(1286);
emit_16(1222);
emit_16(1287);
emit_16(1223);
emit_16(1287);
emit_16(1222);
emit_16(1287);
emit_16(1223);
emit_16(1288);
emit_16(1224);
emit_16(1288);
emit_16(1223);
emit_16(1288);
emit_16(1224);
emit_16(1289);
emit_16(1225);
emit_16(1289);
emit_16(1224);
emit_16(1289);
emit_16(1225);
emit_16(1290);
emit_16(1226);
emit_16(1290);
emit_16(1225);
emit_16(1290);
emit_16(1226);
emit_16(1291);
emit_16(1227);
emit_16(1291);
emit_16(1226);
emit_16(1291);
emit_16(1227);
emit_16(1292);
emit_16(1228);
emit_16(1292);
emit_16(1227);
emit_16(1292);
emit_16(1228);
emit_16(1293);
emit_16(1229);
emit_16(1293);
emit_16(1228);
emit_16(1293);
emit_16(1229);
emit_16(1294);
emit_16(1230);
emit_16(1294);
emit_16(1229);
emit_16(1294);
emit_16(1230);
emit_16(1295);
emit_16(1231);
emit_16(1295);
emit_16(1230);
emit_16(1295);
emit_16(1231);
emit_16(1296);
emit_16(1232);
emit_16(1296);
emit_16(1231);
emit_16(1296);
emit_16(1232);
emit_16(1297);
emit_16(1233);
emit_16(1297);
emit_16(1232);
emit_16(1297);
emit_16(1233);
emit_16(1298);
emit_16(1234);
emit_16(1298);
emit_16(1233);
emit_16(1298);
emit_16(1234);
emit_16(1299);
emit_16(1235);
emit_16(1299);
emit_16(1234);
emit_16(1299);
emit_16(1235);
emit_16(1300);
emit_16(1236);
emit_16(1300);
emit_16(1235);
emit_16(1300);
emit_16(1236);
emit_16(1301);
emit_16(1237);
emit_16(1301);
emit_16(1236);
emit_16(1301);
emit_16(1237);
emit_16(1302);
emit_16(1238);
emit_16(1302);
emit_16(1237);
emit_16(1302);
emit_16(1238);
emit_16(1303);
emit_16(1239);
emit_16(1303);
emit_16(1238);
emit_16(1303);
emit_16(1239);
emit_16(1304);
emit_16(1240);
emit_16(1304);
emit_16(1239);
emit_16(1304);
emit_16(1240);
emit_16(1305);
emit_16(1241);
emit_16(1305);
emit_16(1240);
emit_16(1305);
emit_16(1241);
emit_16(1306);
emit_16(1242);
emit_16(1306);
emit_16(1241);
emit_16(1306);
emit_16(1242);
emit_16(1307);
emit_16(1243);
emit_16(1307);
emit_16(1242);
emit_16(1307);
emit_16(1243);
emit_16(1308);
emit_16(1244);
emit_16(1308);
emit_16(1243);
emit_16(1308);
emit_16(1244);
emit_16(1309);
emit_16(1245);
emit_16(1309);
emit_16(1244);
emit_16(1309);
emit_16(1245);
emit_16(1310);
emit_16(1246);
emit_16(1310);
emit_16(1245);
emit_16(1310);
emit_16(1246);
emit_16(1311);
emit_16(1247);
emit_16(1311);
emit_16(1246);
emit_16(1311);
emit_16(1247);
emit_16(1312);
emit_16(1248);
emit_16(1312);
emit_16(1247);
emit_16(1312);
emit_16(1248);
emit_16(1313);
emit_16(1249);
emit_16(1313);
emit_16(1248);
emit_16(1313);
emit_16(1249);
emit_16(1314);
emit_16(1250);
emit_16(1314);
emit_16(1249);
emit_16(1314);
emit_16(1250);
emit_16(1315);
emit_16(1251);
emit_16(1315);
emit_16(1250);
emit_16(1315);
emit_16(1251);
emit_16(1316);
emit_16(1252);
emit_16(1316);
emit_16(1251);
emit_16(1316);
emit_16(1252);
emit_16(1317);
emit_16(1253);
emit_16(1317);
emit_16(1252);
emit_16(1317);
emit_16(1253);
emit_16(1318);
emit_16(1254);
emit_16(1318);
emit_16(1253);
emit_16(1318);
emit_16(1254);
emit_16(1319);
emit_16(1255);
emit_16(1319);
emit_16(1254);
emit_16(1319);
emit_16(1255);
emit_16(1320);
emit_16(1256);
emit_16(1320);
emit_16(1255);
emit_16(1320);
emit_16(1256);
emit_16(1321);
emit_16(1257);
emit_16(1321);
emit_16(1256);
emit_16(1321);
emit_16(1257);
emit_16(1322);
emit_16(1258);
emit_16(1322);
emit_16(1257);
emit_16(1322);
emit_16(1258);
emit_16(1323);
emit_16(1259);
emit_16(1323);
emit_16(1258);
emit_16(1323);
emit_16(1259);
emit_16(1324);
emit_16(1260);
emit_16(1324);
emit_16(1259);
emit_16(1324);
emit_16(1260);
emit_16(1325);
emit_16(1261);
emit_16(1325);
emit_16(1260);
emit_16(1325);
emit_16(1261);
emit_16(1326);
emit_16(1262);
emit_16(1326);
emit_16(1261);
emit_16(1326);
emit_16(1262);
emit_16(1327);
emit_16(1263);
emit_16(1327);
emit_16(1262);
emit_16(1327);
emit_16(1263);
emit_16(1328);
emit_16(1264);
emit_16(1328);
emit_16(1263);
emit_16(1328);
emit_16(1264);
emit_16(1329);
emit_16(1265);
emit_16(1329);
emit_16(1264);
emit_16(1329);
emit_16(1265);
emit_16(1330);
emit_16(1266);
emit_16(1330);
emit_16(1265);
emit_16(1330);
emit_16(1266);
emit_16(1331);
emit_16(1267);
emit_16(1331);
emit_16(1266);
emit_16(1331);
emit_16(1267);
emit_16(1332);
emit_16(1268);
emit_16(1332);
emit_16(1267);
emit_16(1332);
emit_16(1268);
emit_16(1333);
emit_16(1269);
emit_16(1333);
emit_16(1268);
emit_16(1333);
emit_16(1269);
emit_16(1334);
emit_16(1270);
emit_16(1334);
emit_16(1269);
emit_16(1334);
emit_16(1270);
emit_16(1335);
emit_16(1271);
emit_16(1335);
emit_16(1270);
emit_16(1335);
emit_16(1271);
emit_16(1336);
emit_16(1272);
emit_16(1336);
emit_16(1271);
emit_16(1336);
emit_16(1272);
emit_16(1337);
emit_16(1273);
emit_16(1337);
emit_16(1272);
emit_16(1337);
emit_16(1273);
emit_16(1338);
emit_16(1274);
emit_16(1338);
emit_16(1273);
emit_16(1338);
emit_16(1274);
emit_16(1339);
emit_16(1275);
emit_16(1339);
emit_16(1274);
emit_16(1339);
emit_16(1275);
emit_16(1340);
emit_16(1276);
emit_16(1340);
emit_16(1275);
emit_16(1340);
emit_16(1276);
emit_16(1341);
emit_16(1277);
emit_16(1341);
emit_16(1276);
emit_16(1341);
emit_16(1277);
emit_16(1342);
emit_16(1278);
emit_16(1342);
emit_16(1277);
emit_16(1342);
emit_16(1278);
emit_16(1343);
emit_16(1279);
emit_16(1343);
emit_16(1278);
emit_16(1344);
emit_16(1280);
emit_16(1345);
emit_16(1281);
emit_16(1345);
emit_16(1280);
emit_16(1345);
emit_16(1281);
emit_16(1346);
emit_16(1282);
emit_16(1346);
emit_16(1281);
emit_16(1346);
emit_16(1282);
emit_16(1347);
emit_16(1283);
emit_16(1347);
emit_16(1282);
emit_16(1347);
emit_16(1283);
emit_16(1348);
emit_16(1284);
emit_16(1348);
emit_16(1283);
emit_16(1348);
emit_16(1284);
emit_16(1349);
emit_16(1285);
emit_16(1349);
emit_16(1284);
emit_16(1349);
emit_16(1285);
emit_16(1350);
emit_16(1286);
emit_16(1350);
emit_16(1285);
emit_16(1350);
emit_16(1286);
emit_16(1351);
emit_16(1287);
emit_16(1351);
emit_16(1286);
emit_16(1351);
emit_16(1287);
emit_16(1352);
emit_16(1288);
emit_16(1352);
emit_16(1287);
emit_16(1352);
emit_16(1288);
emit_16(1353);
emit_16(1289);
emit_16(1353);
emit_16(1288);
emit_16(1353);
emit_16(1289);
emit_16(1354);
emit_16(1290);
emit_16(1354);
emit_16(1289);
emit_16(1354);
emit_16(1290);
emit_16(1355);
emit_16(1291);
emit_16(1355);
emit_16(1290);
emit_16(1355);
emit_16(1291);
emit_16(1356);
emit_16(1292);
emit_16(1356);
emit_16(1291);
emit_16(1356);
emit_16(1292);
emit_16(1357);
emit_16(1293);
emit_16(1357);
emit_16(1292);
emit_16(1357);
emit_16(1293);
emit_16(1358);
emit_16(1294);
emit_16(1358);
emit_16(1293);
emit_16(1358);
emit_16(1294);
emit_16(1359);
emit_16(1295);
emit_16(1359);
emit_16(1294);
emit_16(1359);
emit_16(1295);
emit_16(1360);
emit_16(1296);
emit_16(1360);
emit_16(1295);
emit_16(1360);
emit_16(1296);
emit_16(1361);
emit_16(1297);
emit_16(1361);
emit_16(1296);
emit_16(1361);
emit_16(1297);
emit_16(1362);
emit_16(1298);
emit_16(1362);
emit_16(1297);
emit_16(1362);
emit_16(1298);
emit_16(1363);
emit_16(1299);
emit_16(1363);
emit_16(1298);
emit_16(1363);
emit_16(1299);
emit_16(1364);
emit_16(1300);
emit_16(1364);
emit_16(1299);
emit_16(1364);
emit_16(1300);
emit_16(1365);
emit_16(1301);
emit_16(1365);
emit_16(1300);
emit_16(1365);
emit_16(1301);
emit_16(1366);
emit_16(1302);
emit_16(1366);
emit_16(1301);
emit_16(1366);
emit_16(1302);
emit_16(1367);
emit_16(1303);
emit_16(1367);
emit_16(1302);
emit_16(1367);
emit_16(1303);
emit_16(1368);
emit_16(1304);
emit_16(1368);
emit_16(1303);
emit_16(1368);
emit_16(1304);
emit_16(1369);
emit_16(1305);
emit_16(1369);
emit_16(1304);
emit_16(1369);
emit_16(1305);
emit_16(1370);
emit_16(1306);
emit_16(1370);
emit_16(1305);
emit_16(1370);
emit_16(1306);
emit_16(1371);
emit_16(1307);
emit_16(1371);
emit_16(1306);
emit_16(1371);
emit_16(1307);
emit_16(1372);
emit_16(1308);
emit_16(1372);
emit_16(1307);
emit_16(1372);
emit_16(1308);
emit_16(1373);
emit_16(1309);
emit_16(1373);
emit_16(1308);
emit_16(1373);
emit_16(1309);
emit_16(1374);
emit_16(1310);
emit_16(1374);
emit_16(1309);
emit_16(1374);
emit_16(1310);
emit_16(1375);
emit_16(1311);
emit_16(1375);
emit_16(1310);
emit_16(1375);
emit_16(1311);
emit_16(1376);
emit_16(1312);
emit_16(1376);
emit_16(1311);
emit_16(1376);
emit_16(1312);
emit_16(1377);
emit_16(1313);
emit_16(1377);
emit_16(1312);
emit_16(1377);
emit_16(1313);
emit_16(1378);
emit_16(1314);
emit_16(1378);
emit_16(1313);
emit_16(1378);
emit_16(1314);
emit_16(1379);
emit_16(1315);
emit_16(1379);
emit_16(1314);
emit_16(1379);
emit_16(1315);
emit_16(1380);
emit_16(1316);
emit_16(1380);
emit_16(1315);
emit_16(1380);
emit_16(1316);
emit_16(1381);
emit_16(1317);
emit_16(1381);
emit_16(1316);
emit_16(1381);
emit_16(1317);
emit_16(1382);
emit_16(1318);
emit_16(1382);
emit_16(1317);
emit_16(1382);
emit_16(1318);
emit_16(1383);
emit_16(1319);
emit_16(1383);
emit_16(1318);
emit_16(1383);
emit_16(1319);
emit_16(1384);
emit_16(1320);
emit_16(1384);
emit_16(1319);
emit_16(1384);
emit_16(1320);
emit_16(1385);
emit_16(1321);
emit_16(1385);
emit_16(1320);
emit_16(1385);
emit_16(1321);
emit_16(1386);
emit_16(1322);
emit_16(1386);
emit_16(1321);
emit_16(1386);
emit_16(1322);
emit_16(1387);
emit_16(1323);
emit_16(1387);
emit_16(1322);
emit_16(1387);
emit_16(1323);
emit_16(1388);
emit_16(1324);
emit_16(1388);
emit_16(1323);
emit_16(1388);
emit_16(1324);
emit_16(1389);
emit_16(1325);
emit_16(1389);
emit_16(1324);
emit_16(1389);
emit_16(1325);
emit_16(1390);
emit_16(1326);
emit_16(1390);
emit_16(1325);
emit_16(1390);
emit_16(1326);
emit_16(1391);
emit_16(1327);
emit_16(1391);
emit_16(1326);
emit_16(1391);
emit_16(1327);
emit_16(1392);
emit_16(1328);
emit_16(1392);
emit_16(1327);
emit_16(1392);
emit_16(1328);
emit_16(1393);
emit_16(1329);
emit_16(1393);
emit_16(1328);
emit_16(1393);
emit_16(1329);
emit_16(1394);
emit_16(1330);
emit_16(1394);
emit_16(1329);
emit_16(1394);
emit_16(1330);
emit_16(1395);
emit_16(1331);
emit_16(1395);
emit_16(1330);
emit_16(1395);
emit_16(1331);
emit_16(1396);
emit_16(1332);
emit_16(1396);
emit_16(1331);
emit_16(1396);
emit_16(1332);
emit_16(1397);
emit_16(1333);
emit_16(1397);
emit_16(1332);
emit_16(1397);
emit_16(1333);
emit_16(1398);
emit_16(1334);
emit_16(1398);
emit_16(1333);
emit_16(1398);
emit_16(1334);
emit_16(1399);
emit_16(1335);
emit_16(1399);
emit_16(1334);
emit_16(1399);
emit_16(1335);
emit_16(1400);
emit_16(1336);
emit_16(1400);
emit_16(1335);
emit_16(1400);
emit_16(1336);
emit_16(1401);
emit_16(1337);
emit_16(1401);
emit_16(1336);
emit_16(1401);
emit_16(1337);
emit_16(1402);
emit_16(1338);
emit_16(1402);
emit_16(1337);
emit_16(1402);
emit_16(1338);
emit_16(1403);
emit_16(1339);
emit_16(1403);
emit_16(1338);
emit_16(1403);
emit_16(1339);
emit_16(1404);
emit_16(1340);
emit_16(1404);
emit_16(1339);
emit_16(1404);
emit_16(1340);
emit_16(1405);
emit_16(1341);
emit_16(1405);
emit_16(1340);
emit_16(1405);
emit_16(1341);
emit_16(1406);
emit_16(1342);
emit_16(1406);
emit_16(1341);
emit_16(1406);
emit_16(1342);
emit_16(1407);
emit_16(1343);
emit_16(1407);
emit_16(1342);
emit_16(1408);
emit_16(1344);
emit_16(1409);
emit_16(1345);
emit_16(1409);
emit_16(1344);
emit_16(1409);
emit_16(1345);
emit_16(1410);
emit_16(1346);
emit_16(1410);
emit_16(1345);
emit_16(1410);
emit_16(1346);
emit_16(1411);
emit_16(1347);
emit_16(1411);
emit_16(1346);
emit_16(1411);
emit_16(1347);
emit_16(1412);
emit_16(1348);
emit_16(1412);
emit_16(1347);
emit_16(1412);
emit_16(1348);
emit_16(1413);
emit_16(1349);
emit_16(1413);
emit_16(1348);
emit_16(1413);
emit_16(1349);
emit_16(1414);
emit_16(1350);
emit_16(1414);
emit_16(1349);
emit_16(1414);
emit_16(1350);
emit_16(1415);
emit_16(1351);
emit_16(1415);
emit_16(1350);
emit_16(1415);
emit_16(1351);
emit_16(1416);
emit_16(1352);
emit_16(1416);
emit_16(1351);
emit_16(1416);
emit_16(1352);
emit_16(1417);
emit_16(1353);
emit_16(1417);
emit_16(1352);
emit_16(1417);
emit_16(1353);
emit_16(1418);
emit_16(1354);
emit_16(1418);
emit_16(1353);
emit_16(1418);
emit_16(1354);
emit_16(1419);
emit_16(1355);
emit_16(1419);
emit_16(1354);
emit_16(1419);
emit_16(1355);
emit_16(1420);
emit_16(1356);
emit_16(1420);
emit_16(1355);
emit_16(1420);
emit_16(1356);
emit_16(1421);
emit_16(1357);
emit_16(1421);
emit_16(1356);
emit_16(1421);
emit_16(1357);
emit_16(1422);
emit_16(1358);
emit_16(1422);
emit_16(1357);
emit_16(1422);
emit_16(1358);
emit_16(1423);
emit_16(1359);
emit_16(1423);
emit_16(1358);
emit_16(1423);
emit_16(1359);
emit_16(1424);
emit_16(1360);
emit_16(1424);
emit_16(1359);
emit_16(1424);
emit_16(1360);
emit_16(1425);
emit_16(1361);
emit_16(1425);
emit_16(1360);
emit_16(1425);
emit_16(1361);
emit_16(1426);
emit_16(1362);
emit_16(1426);
emit_16(1361);
emit_16(1426);
emit_16(1362);
emit_16(1427);
emit_16(1363);
emit_16(1427);
emit_16(1362);
emit_16(1427);
emit_16(1363);
emit_16(1428);
emit_16(1364);
emit_16(1428);
emit_16(1363);
emit_16(1428);
emit_16(1364);
emit_16(1429);
emit_16(1365);
emit_16(1429);
emit_16(1364);
emit_16(1429);
emit_16(1365);
emit_16(1430);
emit_16(1366);
emit_16(1430);
emit_16(1365);
emit_16(1430);
emit_16(1366);
emit_16(1431);
emit_16(1367);
emit_16(1431);
emit_16(1366);
emit_16(1431);
emit_16(1367);
emit_16(1432);
emit_16(1368);
emit_16(1432);
emit_16(1367);
emit_16(1432);
emit_16(1368);
emit_16(1433);
emit_16(1369);
emit_16(1433);
emit_16(1368);
emit_16(1433);
emit_16(1369);
emit_16(1434);
emit_16(1370);
emit_16(1434);
emit_16(1369);
emit_16(1434);
emit_16(1370);
emit_16(1435);
emit_16(1371);
emit_16(1435);
emit_16(1370);
emit_16(1435);
emit_16(1371);
emit_16(1436);
emit_16(1372);
emit_16(1436);
emit_16(1371);
emit_16(1436);
emit_16(1372);
emit_16(1437);
emit_16(1373);
emit_16(1437);
emit_16(1372);
emit_16(1437);
emit_16(1373);
emit_16(1438);
emit_16(1374);
emit_16(1438);
emit_16(1373);
emit_16(1438);
emit_16(1374);
emit_16(1439);
emit_16(1375);
emit_16(1439);
emit_16(1374);
emit_16(1439);
emit_16(1375);
emit_16(1440);
emit_16(1376);
emit_16(1440);
emit_16(1375);
emit_16(1440);
emit_16(1376);
emit_16(1441);
emit_16(1377);
emit_16(1441);
emit_16(1376);
emit_16(1441);
emit_16(1377);
emit_16(1442);
emit_16(1378);
emit_16(1442);
emit_16(1377);
emit_16(1442);
emit_16(1378);
emit_16(1443);
emit_16(1379);
emit_16(1443);
emit_16(1378);
emit_16(1443);
emit_16(1379);
emit_16(1444);
emit_16(1380);
emit_16(1444);
emit_16(1379);
emit_16(1444);
emit_16(1380);
emit_16(1445);
emit_16(1381);
emit_16(1445);
emit_16(1380);
emit_16(1445);
emit_16(1381);
emit_16(1446);
emit_16(1382);
emit_16(1446);
emit_16(1381);
emit_16(1446);
emit_16(1382);
emit_16(1447);
emit_16(1383);
emit_16(1447);
emit_16(1382);
emit_16(1447);
emit_16(1383);
emit_16(1448);
emit_16(1384);
emit_16(1448);
emit_16(1383);
emit_16(1448);
emit_16(1384);
emit_16(1449);
emit_16(1385);
emit_16(1449);
emit_16(1384);
emit_16(1449);
emit_16(1385);
emit_16(1450);
emit_16(1386);
emit_16(1450);
emit_16(1385);
emit_16(1450);
emit_16(1386);
emit_16(1451);
emit_16(1387);
emit_16(1451);
emit_16(1386);
emit_16(1451);
emit_16(1387);
emit_16(1452);
emit_16(1388);
emit_16(1452);
emit_16(1387);
emit_16(1452);
emit_16(1388);
emit_16(1453);
emit_16(1389);
emit_16(1453);
emit_16(1388);
emit_16(1453);
emit_16(1389);
emit_16(1454);
emit_16(1390);
emit_16(1454);
emit_16(1389);
emit_16(1454);
emit_16(1390);
emit_16(1455);
emit_16(1391);
emit_16(1455);
emit_16(1390);
emit_16(1455);
emit_16(1391);
emit_16(1456);
emit_16(1392);
emit_16(1456);
emit_16(1391);
emit_16(1456);
emit_16(1392);
emit_16(1457);
emit_16(1393);
emit_16(1457);
emit_16(1392);
emit_16(1457);
emit_16(1393);
emit_16(1458);
emit_16(1394);
emit_16(1458);
emit_16(1393);
emit_16(1458);
emit_16(1394);
emit_16(1459);
emit_16(1395);
emit_16(1459);
emit_16(1394);
emit_16(1459);
emit_16(1395);
emit_16(1460);
emit_16(1396);
emit_16(1460);
emit_16(1395);
emit_16(1460);
emit_16(1396);
emit_16(1461);
emit_16(1397);
emit_16(1461);
emit_16(1396);
emit_16(1461);
emit_16(1397);
emit_16(1462);
emit_16(1398);
emit_16(1462);
emit_16(1397);
emit_16(1462);
emit_16(1398);
emit_16(1463);
emit_16(1399);
emit_16(1463);
emit_16(1398);
emit_16(1463);
emit_16(1399);
emit_16(1464);
emit_16(1400);
emit_16(1464);
emit_16(1399);
emit_16(1464);
emit_16(1400);
emit_16(1465);
emit_16(1401);
emit_16(1465);
emit_16(1400);
emit_16(1465);
emit_16(1401);
emit_16(1466);
emit_16(1402);
emit_16(1466);
emit_16(1401);
emit_16(1466);
emit_16(1402);
emit_16(1467);
emit_16(1403);
emit_16(1467);
emit_16(1402);
emit_16(1467);
emit_16(1403);
emit_16(1468);
emit_16(1404);
emit_16(1468);
emit_16(1403);
emit_16(1468);
emit_16(1404);
emit_16(1469);
emit_16(1405);
emit_16(1469);
emit_16(1404);
emit_16(1469);
emit_16(1405);
emit_16(1470);
emit_16(1406);
emit_16(1470);
emit_16(1405);
emit_16(1470);
emit_16(1406);
emit_16(1471);
emit_16(1407);
emit_16(1471);
emit_16(1406);
emit_16(1472);
emit_16(1408);
emit_16(1473);
emit_16(1409);
emit_16(1473);
emit_16(1408);
emit_16(1473);
emit_16(1409);
emit_16(1474);
emit_16(1410);
emit_16(1474);
emit_16(1409);
emit_16(1474);
emit_16(1410);
emit_16(1475);
emit_16(1411);
emit_16(1475);
emit_16(1410);
emit_16(1475);
emit_16(1411);
emit_16(1476);
emit_16(1412);
emit_16(1476);
emit_16(1411);
emit_16(1476);
emit_16(1412);
emit_16(1477);
emit_16(1413);
emit_16(1477);
emit_16(1412);
emit_16(1477);
emit_16(1413);
emit_16(1478);
emit_16(1414);
emit_16(1478);
emit_16(1413);
emit_16(1478);
emit_16(1414);
emit_16(1479);
emit_16(1415);
emit_16(1479);
emit_16(1414);
emit_16(1479);
emit_16(1415);
emit_16(1480);
emit_16(1416);
emit_16(1480);
emit_16(1415);
emit_16(1480);
emit_16(1416);
emit_16(1481);
emit_16(1417);
emit_16(1481);
emit_16(1416);
emit_16(1481);
emit_16(1417);
emit_16(1482);
emit_16(1418);
emit_16(1482);
emit_16(1417);
emit_16(1482);
emit_16(1418);
emit_16(1483);
emit_16(1419);
emit_16(1483);
emit_16(1418);
emit_16(1483);
emit_16(1419);
emit_16(1484);
emit_16(1420);
emit_16(1484);
emit_16(1419);
emit_16(1484);
emit_16(1420);
emit_16(1485);
emit_16(1421);
emit_16(1485);
emit_16(1420);
emit_16(1485);
emit_16(1421);
emit_16(1486);
emit_16(1422);
emit_16(1486);
emit_16(1421);
emit_16(1486);
emit_16(1422);
emit_16(1487);
emit_16(1423);
emit_16(1487);
emit_16(1422);
emit_16(1487);
emit_16(1423);
emit_16(1488);
emit_16(1424);
emit_16(1488);
emit_16(1423);
emit_16(1488);
emit_16(1424);
emit_16(1489);
emit_16(1425);
emit_16(1489);
emit_16(1424);
emit_16(1489);
emit_16(1425);
emit_16(1490);
emit_16(1426);
emit_16(1490);
emit_16(1425);
emit_16(1490);
emit_16(1426);
emit_16(1491);
emit_16(1427);
emit_16(1491);
emit_16(1426);
emit_16(1491);
emit_16(1427);
emit_16(1492);
emit_16(1428);
emit_16(1492);
emit_16(1427);
emit_16(1492);
emit_16(1428);
emit_16(1493);
emit_16(1429);
emit_16(1493);
emit_16(1428);
emit_16(1493);
emit_16(1429);
emit_16(1494);
emit_16(1430);
emit_16(1494);
emit_16(1429);
emit_16(1494);
emit_16(1430);
emit_16(1495);
emit_16(1431);
emit_16(1495);
emit_16(1430);
emit_16(1495);
emit_16(1431);
emit_16(1496);
emit_16(1432);
emit_16(1496);
emit_16(1431);
emit_16(1496);
emit_16(1432);
emit_16(1497);
emit_16(1433);
emit_16(1497);
emit_16(1432);
emit_16(1497);
emit_16(1433);
emit_16(1498);
emit_16(1434);
emit_16(1498);
emit_16(1433);
emit_16(1498);
emit_16(1434);
emit_16(1499);
emit_16(1435);
emit_16(1499);
emit_16(1434);
emit_16(1499);
emit_16(1435);
emit_16(1500);
emit_16(1436);
emit_16(1500);
emit_16(1435);
emit_16(1500);
emit_16(1436);
emit_16(1501);
emit_16(1437);
emit_16(1501);
emit_16(1436);
emit_16(1501);
emit_16(1437);
emit_16(1502);
emit_16(1438);
emit_16(1502);
emit_16(1437);
emit_16(1502);
emit_16(1438);
emit_16(1503);
emit_16(1439);
emit_16(1503);
emit_16(1438);
emit_16(1503);
emit_16(1439);
emit_16(1504);
emit_16(1440);
emit_16(1504);
emit_16(1439);
emit_16(1504);
emit_16(1440);
emit_16(1505);
emit_16(1441);
emit_16(1505);
emit_16(1440);
emit_16(1505);
emit_16(1441);
emit_16(1506);
emit_16(1442);
emit_16(1506);
emit_16(1441);
emit_16(1506);
emit_16(1442);
emit_16(1507);
emit_16(1443);
emit_16(1507);
emit_16(1442);
emit_16(1507);
emit_16(1443);
emit_16(1508);
emit_16(1444);
emit_16(1508);
emit_16(1443);
emit_16(1508);
emit_16(1444);
emit_16(1509);
emit_16(1445);
emit_16(1509);
emit_16(1444);
emit_16(1509);
emit_16(1445);
emit_16(1510);
emit_16(1446);
emit_16(1510);
emit_16(1445);
emit_16(1510);
emit_16(1446);
emit_16(1511);
emit_16(1447);
emit_16(1511);
emit_16(1446);
emit_16(1511);
emit_16(1447);
emit_16(1512);
emit_16(1448);
emit_16(1512);
emit_16(1447);
emit_16(1512);
emit_16(1448);
emit_16(1513);
emit_16(1449);
emit_16(1513);
emit_16(1448);
emit_16(1513);
emit_16(1449);
emit_16(1514);
emit_16(1450);
emit_16(1514);
emit_16(1449);
emit_16(1514);
emit_16(1450);
emit_16(1515);
emit_16(1451);
emit_16(1515);
emit_16(1450);
emit_16(1515);
emit_16(1451);
emit_16(1516);
emit_16(1452);
emit_16(1516);
emit_16(1451);
emit_16(1516);
emit_16(1452);
emit_16(1517);
emit_16(1453);
emit_16(1517);
emit_16(1452);
emit_16(1517);
emit_16(1453);
emit_16(1518);
emit_16(1454);
emit_16(1518);
emit_16(1453);
emit_16(1518);
emit_16(1454);
emit_16(1519);
emit_16(1455);
emit_16(1519);
emit_16(1454);
emit_16(1519);
emit_16(1455);
emit_16(1520);
emit_16(1456);
emit_16(1520);
emit_16(1455);
emit_16(1520);
emit_16(1456);
emit_16(1521);
emit_16(1457);
emit_16(1521);
emit_16(1456);
emit_16(1521);
emit_16(1457);
emit_16(1522);
emit_16(1458);
emit_16(1522);
emit_16(1457);
emit_16(1522);
emit_16(1458);
emit_16(1523);
emit_16(1459);
emit_16(1523);
emit_16(1458);
emit_16(1523);
emit_16(1459);
emit_16(1524);
emit_16(1460);
emit_16(1524);
emit_16(1459);
emit_16(1524);
emit_16(1460);
emit_16(1525);
emit_16(1461);
emit_16(1525);
emit_16(1460);
emit_16(1525);
emit_16(1461);
emit_16(1526);
emit_16(1462);
emit_16(1526);
emit_16(1461);
emit_16(1526);
emit_16(1462);
emit_16(1527);
emit_16(1463);
emit_16(1527);
emit_16(1462);
emit_16(1527);
emit_16(1463);
emit_16(1528);
emit_16(1464);
emit_16(1528);
emit_16(1463);
emit_16(1528);
emit_16(1464);
emit_16(1529);
emit_16(1465);
emit_16(1529);
emit_16(1464);
emit_16(1529);
emit_16(1465);
emit_16(1530);
emit_16(1466);
emit_16(1530);
emit_16(1465);
emit_16(1530);
emit_16(1466);
emit_16(1531);
emit_16(1467);
emit_16(1531);
emit_16(1466);
emit_16(1531);
emit_16(1467);
emit_16(1532);
emit_16(1468);
emit_16(1532);
emit_16(1467);
emit_16(1532);
emit_16(1468);
emit_16(1533);
emit_16(1469);
emit_16(1533);
emit_16(1468);
emit_16(1533);
emit_16(1469);
emit_16(1534);
emit_16(1470);
emit_16(1534);
emit_16(1469);
emit_16(1534);
emit_16(1470);
emit_16(1535);
emit_16(1471);
emit_16(1535);
emit_16(1470);
emit_16(1536);
emit_16(1472);
emit_16(1537);
emit_16(1473);
emit_16(1537);
emit_16(1472);
emit_16(1537);
emit_16(1473);
emit_16(1538);
emit_16(1474);
emit_16(1538);
emit_16(1473);
emit_16(1538);
emit_16(1474);
emit_16(1539);
emit_16(1475);
emit_16(1539);
emit_16(1474);
emit_16(1539);
emit_16(1475);
emit_16(1540);
emit_16(1476);
emit_16(1540);
emit_16(1475);
emit_16(1540);
emit_16(1476);
emit_16(1541);
emit_16(1477);
emit_16(1541);
emit_16(1476);
emit_16(1541);
emit_16(1477);
emit_16(1542);
emit_16(1478);
emit_16(1542);
emit_16(1477);
emit_16(1542);
emit_16(1478);
emit_16(1543);
emit_16(1479);
emit_16(1543);
emit_16(1478);
emit_16(1543);
emit_16(1479);
emit_16(1544);
emit_16(1480);
emit_16(1544);
emit_16(1479);
emit_16(1544);
emit_16(1480);
emit_16(1545);
emit_16(1481);
emit_16(1545);
emit_16(1480);
emit_16(1545);
emit_16(1481);
emit_16(1546);
emit_16(1482);
emit_16(1546);
emit_16(1481);
emit_16(1546);
emit_16(1482);
emit_16(1547);
emit_16(1483);
emit_16(1547);
emit_16(1482);
emit_16(1547);
emit_16(1483);
emit_16(1548);
emit_16(1484);
emit_16(1548);
emit_16(1483);
emit_16(1548);
emit_16(1484);
emit_16(1549);
emit_16(1485);
emit_16(1549);
emit_16(1484);
emit_16(1549);
emit_16(1485);
emit_16(1550);
emit_16(1486);
emit_16(1550);
emit_16(1485);
emit_16(1550);
emit_16(1486);
emit_16(1551);
emit_16(1487);
emit_16(1551);
emit_16(1486);
emit_16(1551);
emit_16(1487);
emit_16(1552);
emit_16(1488);
emit_16(1552);
emit_16(1487);
emit_16(1552);
emit_16(1488);
emit_16(1553);
emit_16(1489);
emit_16(1553);
emit_16(1488);
emit_16(1553);
emit_16(1489);
emit_16(1554);
emit_16(1490);
emit_16(1554);
emit_16(1489);
emit_16(1554);
emit_16(1490);
emit_16(1555);
emit_16(1491);
emit_16(1555);
emit_16(1490);
emit_16(1555);
emit_16(1491);
emit_16(1556);
emit_16(1492);
emit_16(1556);
emit_16(1491);
emit_16(1556);
emit_16(1492);
emit_16(1557);
emit_16(1493);
emit_16(1557);
emit_16(1492);
emit_16(1557);
emit_16(1493);
emit_16(1558);
emit_16(1494);
emit_16(1558);
emit_16(1493);
emit_16(1558);
emit_16(1494);
emit_16(1559);
emit_16(1495);
emit_16(1559);
emit_16(1494);
emit_16(1559);
emit_16(1495);
emit_16(1560);
emit_16(1496);
emit_16(1560);
emit_16(1495);
emit_16(1560);
emit_16(1496);
emit_16(1561);
emit_16(1497);
emit_16(1561);
emit_16(1496);
emit_16(1561);
emit_16(1497);
emit_16(1562);
emit_16(1498);
emit_16(1562);
emit_16(1497);
emit_16(1562);
emit_16(1498);
emit_16(1563);
emit_16(1499);
emit_16(1563);
emit_16(1498);
emit_16(1563);
emit_16(1499);
emit_16(1564);
emit_16(1500);
emit_16(1564);
emit_16(1499);
emit_16(1564);
emit_16(1500);
emit_16(1565);
emit_16(1501);
emit_16(1565);
emit_16(1500);
emit_16(1565);
emit_16(1501);
emit_16(1566);
emit_16(1502);
emit_16(1566);
emit_16(1501);
emit_16(1566);
emit_16(1502);
emit_16(1567);
emit_16(1503);
emit_16(1567);
emit_16(1502);
emit_16(1567);
emit_16(1503);
emit_16(1568);
emit_16(1504);
emit_16(1568);
emit_16(1503);
emit_16(1568);
emit_16(1504);
emit_16(1569);
emit_16(1505);
emit_16(1569);
emit_16(1504);
emit_16(1569);
emit_16(1505);
emit_16(1570);
emit_16(1506);
emit_16(1570);
emit_16(1505);
emit_16(1570);
emit_16(1506);
emit_16(1571);
emit_16(1507);
emit_16(1571);
emit_16(1506);
emit_16(1571);
emit_16(1507);
emit_16(1572);
emit_16(1508);
emit_16(1572);
emit_16(1507);
emit_16(1572);
emit_16(1508);
emit_16(1573);
emit_16(1509);
emit_16(1573);
emit_16(1508);
emit_16(1573);
emit_16(1509);
emit_16(1574);
emit_16(1510);
emit_16(1574);
emit_16(1509);
emit_16(1574);
emit_16(1510);
emit_16(1575);
emit_16(1511);
emit_16(1575);
emit_16(1510);
emit_16(1575);
emit_16(1511);
emit_16(1576);
emit_16(1512);
emit_16(1576);
emit_16(1511);
emit_16(1576);
emit_16(1512);
emit_16(1577);
emit_16(1513);
emit_16(1577);
emit_16(1512);
emit_16(1577);
emit_16(1513);
emit_16(1578);
emit_16(1514);
emit_16(1578);
emit_16(1513);
emit_16(1578);
emit_16(1514);
emit_16(1579);
emit_16(1515);
emit_16(1579);
emit_16(1514);
emit_16(1579);
emit_16(1515);
emit_16(1580);
emit_16(1516);
emit_16(1580);
emit_16(1515);
emit_16(1580);
emit_16(1516);
emit_16(1581);
emit_16(1517);
emit_16(1581);
emit_16(1516);
emit_16(1581);
emit_16(1517);
emit_16(1582);
emit_16(1518);
emit_16(1582);
emit_16(1517);
emit_16(1582);
emit_16(1518);
emit_16(1583);
emit_16(1519);
emit_16(1583);
emit_16(1518);
emit_16(1583);
emit_16(1519);
emit_16(1584);
emit_16(1520);
emit_16(1584);
emit_16(1519);
emit_16(1584);
emit_16(1520);
emit_16(1585);
emit_16(1521);
emit_16(1585);
emit_16(1520);
emit_16(1585);
emit_16(1521);
emit_16(1586);
emit_16(1522);
emit_16(1586);
emit_16(1521);
emit_16(1586);
emit_16(1522);
emit_16(1587);
emit_16(1523);
emit_16(1587);
emit_16(1522);
emit_16(1587);
emit_16(1523);
emit_16(1588);
emit_16(1524);
emit_16(1588);
emit_16(1523);
emit_16(1588);
emit_16(1524);
emit_16(1589);
emit_16(1525);
emit_16(1589);
emit_16(1524);
emit_16(1589);
emit_16(1525);
emit_16(1590);
emit_16(1526);
emit_16(1590);
emit_16(1525);
emit_16(1590);
emit_16(1526);
emit_16(1591);
emit_16(1527);
emit_16(1591);
emit_16(1526);
emit_16(1591);
emit_16(1527);
emit_16(1592);
emit_16(1528);
emit_16(1592);
emit_16(1527);
emit_16(1592);
emit_16(1528);
emit_16(1593);
emit_16(1529);
emit_16(1593);
emit_16(1528);
emit_16(1593);
emit_16(1529);
emit_16(1594);
emit_16(1530);
emit_16(1594);
emit_16(1529);
emit_16(1594);
emit_16(1530);
emit_16(1595);
emit_16(1531);
emit_16(1595);
emit_16(1530);
emit_16(1595);
emit_16(1531);
emit_16(1596);
emit_16(1532);
emit_16(1596);
emit_16(1531);
emit_16(1596);
emit_16(1532);
emit_16(1597);
emit_16(1533);
emit_16(1597);
emit_16(1532);
emit_16(1597);
emit_16(1533);
emit_16(1598);
emit_16(1534);
emit_16(1598);
emit_16(1533);
emit_16(1598);
emit_16(1534);
emit_16(1599);
emit_16(1535);
emit_16(1599);
emit_16(1534);
emit_16(1600);
emit_16(1536);
emit_16(1601);
emit_16(1537);
emit_16(1601);
emit_16(1536);
emit_16(1601);
emit_16(1537);
emit_16(1602);
emit_16(1538);
emit_16(1602);
emit_16(1537);
emit_16(1602);
emit_16(1538);
emit_16(1603);
emit_16(1539);
emit_16(1603);
emit_16(1538);
emit_16(1603);
emit_16(1539);
emit_16(1604);
emit_16(1540);
emit_16(1604);
emit_16(1539);
emit_16(1604);
emit_16(1540);
emit_16(1605);
emit_16(1541);
emit_16(1605);
emit_16(1540);
emit_16(1605);
emit_16(1541);
emit_16(1606);
emit_16(1542);
emit_16(1606);
emit_16(1541);
emit_16(1606);
emit_16(1542);
emit_16(1607);
emit_16(1543);
emit_16(1607);
emit_16(1542);
emit_16(1607);
emit_16(1543);
emit_16(1608);
emit_16(1544);
emit_16(1608);
emit_16(1543);
emit_16(1608);
emit_16(1544);
emit_16(1609);
emit_16(1545);
emit_16(1609);
emit_16(1544);
emit_16(1609);
emit_16(1545);
emit_16(1610);
emit_16(1546);
emit_16(1610);
emit_16(1545);
emit_16(1610);
emit_16(1546);
emit_16(1611);
emit_16(1547);
emit_16(1611);
emit_16(1546);
emit_16(1611);
emit_16(1547);
emit_16(1612);
emit_16(1548);
emit_16(1612);
emit_16(1547);
emit_16(1612);
emit_16(1548);
emit_16(1613);
emit_16(1549);
emit_16(1613);
emit_16(1548);
emit_16(1613);
emit_16(1549);
emit_16(1614);
emit_16(1550);
emit_16(1614);
emit_16(1549);
emit_16(1614);
emit_16(1550);
emit_16(1615);
emit_16(1551);
emit_16(1615);
emit_16(1550);
emit_16(1615);
emit_16(1551);
emit_16(1616);
emit_16(1552);
emit_16(1616);
emit_16(1551);
emit_16(1616);
emit_16(1552);
emit_16(1617);
emit_16(1553);
emit_16(1617);
emit_16(1552);
emit_16(1617);
emit_16(1553);
emit_16(1618);
emit_16(1554);
emit_16(1618);
emit_16(1553);
emit_16(1618);
emit_16(1554);
emit_16(1619);
emit_16(1555);
emit_16(1619);
emit_16(1554);
emit_16(1619);
emit_16(1555);
emit_16(1620);
emit_16(1556);
emit_16(1620);
emit_16(1555);
emit_16(1620);
emit_16(1556);
emit_16(1621);
emit_16(1557);
emit_16(1621);
emit_16(1556);
emit_16(1621);
emit_16(1557);
emit_16(1622);
emit_16(1558);
emit_16(1622);
emit_16(1557);
emit_16(1622);
emit_16(1558);
emit_16(1623);
emit_16(1559);
emit_16(1623);
emit_16(1558);
emit_16(1623);
emit_16(1559);
emit_16(1624);
emit_16(1560);
emit_16(1624);
emit_16(1559);
emit_16(1624);
emit_16(1560);
emit_16(1625);
emit_16(1561);
emit_16(1625);
emit_16(1560);
emit_16(1625);
emit_16(1561);
emit_16(1626);
emit_16(1562);
emit_16(1626);
emit_16(1561);
emit_16(1626);
emit_16(1562);
emit_16(1627);
emit_16(1563);
emit_16(1627);
emit_16(1562);
emit_16(1627);
emit_16(1563);
emit_16(1628);
emit_16(1564);
emit_16(1628);
emit_16(1563);
emit_16(1628);
emit_16(1564);
emit_16(1629);
emit_16(1565);
emit_16(1629);
emit_16(1564);
emit_16(1629);
emit_16(1565);
emit_16(1630);
emit_16(1566);
emit_16(1630);
emit_16(1565);
emit_16(1630);
emit_16(1566);
emit_16(1631);
emit_16(1567);
emit_16(1631);
emit_16(1566);
emit_16(1631);
emit_16(1567);
emit_16(1632);
emit_16(1568);
emit_16(1632);
emit_16(1567);
emit_16(1632);
emit_16(1568);
emit_16(1633);
emit_16(1569);
emit_16(1633);
emit_16(1568);
emit_16(1633);
emit_16(1569);
emit_16(1634);
emit_16(1570);
emit_16(1634);
emit_16(1569);
emit_16(1634);
emit_16(1570);
emit_16(1635);
emit_16(1571);
emit_16(1635);
emit_16(1570);
emit_16(1635);
emit_16(1571);
emit_16(1636);
emit_16(1572);
emit_16(1636);
emit_16(1571);
emit_16(1636);
emit_16(1572);
emit_16(1637);
emit_16(1573);
emit_16(1637);
emit_16(1572);
emit_16(1637);
emit_16(1573);
emit_16(1638);
emit_16(1574);
emit_16(1638);
emit_16(1573);
emit_16(1638);
emit_16(1574);
emit_16(1639);
emit_16(1575);
emit_16(1639);
emit_16(1574);
emit_16(1639);
emit_16(1575);
emit_16(1640);
emit_16(1576);
emit_16(1640);
emit_16(1575);
emit_16(1640);
emit_16(1576);
emit_16(1641);
emit_16(1577);
emit_16(1641);
emit_16(1576);
emit_16(1641);
emit_16(1577);
emit_16(1642);
emit_16(1578);
emit_16(1642);
emit_16(1577);
emit_16(1642);
emit_16(1578);
emit_16(1643);
emit_16(1579);
emit_16(1643);
emit_16(1578);
emit_16(1643);
emit_16(1579);
emit_16(1644);
emit_16(1580);
emit_16(1644);
emit_16(1579);
emit_16(1644);
emit_16(1580);
emit_16(1645);
emit_16(1581);
emit_16(1645);
emit_16(1580);
emit_16(1645);
emit_16(1581);
emit_16(1646);
emit_16(1582);
emit_16(1646);
emit_16(1581);
emit_16(1646);
emit_16(1582);
emit_16(1647);
emit_16(1583);
emit_16(1647);
emit_16(1582);
emit_16(1647);
emit_16(1583);
emit_16(1648);
emit_16(1584);
emit_16(1648);
emit_16(1583);
emit_16(1648);
emit_16(1584);
emit_16(1649);
emit_16(1585);
emit_16(1649);
emit_16(1584);
emit_16(1649);
emit_16(1585);
emit_16(1650);
emit_16(1586);
emit_16(1650);
emit_16(1585);
emit_16(1650);
emit_16(1586);
emit_16(1651);
emit_16(1587);
emit_16(1651);
emit_16(1586);
emit_16(1651);
emit_16(1587);
emit_16(1652);
emit_16(1588);
emit_16(1652);
emit_16(1587);
emit_16(1652);
emit_16(1588);
emit_16(1653);
emit_16(1589);
emit_16(1653);
emit_16(1588);
emit_16(1653);
emit_16(1589);
emit_16(1654);
emit_16(1590);
emit_16(1654);
emit_16(1589);
emit_16(1654);
emit_16(1590);
emit_16(1655);
emit_16(1591);
emit_16(1655);
emit_16(1590);
emit_16(1655);
emit_16(1591);
emit_16(1656);
emit_16(1592);
emit_16(1656);
emit_16(1591);
emit_16(1656);
emit_16(1592);
emit_16(1657);
emit_16(1593);
emit_16(1657);
emit_16(1592);
emit_16(1657);
emit_16(1593);
emit_16(1658);
emit_16(1594);
emit_16(1658);
emit_16(1593);
emit_16(1658);
emit_16(1594);
emit_16(1659);
emit_16(1595);
emit_16(1659);
emit_16(1594);
emit_16(1659);
emit_16(1595);
emit_16(1660);
emit_16(1596);
emit_16(1660);
emit_16(1595);
emit_16(1660);
emit_16(1596);
emit_16(1661);
emit_16(1597);
emit_16(1661);
emit_16(1596);
emit_16(1661);
emit_16(1597);
emit_16(1662);
emit_16(1598);
emit_16(1662);
emit_16(1597);
emit_16(1662);
emit_16(1598);
emit_16(1663);
emit_16(1599);
emit_16(1663);
emit_16(1598);
emit_16(1664);
emit_16(1600);
emit_16(1665);
emit_16(1601);
emit_16(1665);
emit_16(1600);
emit_16(1665);
emit_16(1601);
emit_16(1666);
emit_16(1602);
emit_16(1666);
emit_16(1601);
emit_16(1666);
emit_16(1602);
emit_16(1667);
emit_16(1603);
emit_16(1667);
emit_16(1602);
emit_16(1667);
emit_16(1603);
emit_16(1668);
emit_16(1604);
emit_16(1668);
emit_16(1603);
emit_16(1668);
emit_16(1604);
emit_16(1669);
emit_16(1605);
emit_16(1669);
emit_16(1604);
emit_16(1669);
emit_16(1605);
emit_16(1670);
emit_16(1606);
emit_16(1670);
emit_16(1605);
emit_16(1670);
emit_16(1606);
emit_16(1671);
emit_16(1607);
emit_16(1671);
emit_16(1606);
emit_16(1671);
emit_16(1607);
emit_16(1672);
emit_16(1608);
emit_16(1672);
emit_16(1607);
emit_16(1672);
emit_16(1608);
emit_16(1673);
emit_16(1609);
emit_16(1673);
emit_16(1608);
emit_16(1673);
emit_16(1609);
emit_16(1674);
emit_16(1610);
emit_16(1674);
emit_16(1609);
emit_16(1674);
emit_16(1610);
emit_16(1675);
emit_16(1611);
emit_16(1675);
emit_16(1610);
emit_16(1675);
emit_16(1611);
emit_16(1676);
emit_16(1612);
emit_16(1676);
emit_16(1611);
emit_16(1676);
emit_16(1612);
emit_16(1677);
emit_16(1613);
emit_16(1677);
emit_16(1612);
emit_16(1677);
emit_16(1613);
emit_16(1678);
emit_16(1614);
emit_16(1678);
emit_16(1613);
emit_16(1678);
emit_16(1614);
emit_16(1679);
emit_16(1615);
emit_16(1679);
emit_16(1614);
emit_16(1679);
emit_16(1615);
emit_16(1680);
emit_16(1616);
emit_16(1680);
emit_16(1615);
emit_16(1680);
emit_16(1616);
emit_16(1681);
emit_16(1617);
emit_16(1681);
emit_16(1616);
emit_16(1681);
emit_16(1617);
emit_16(1682);
emit_16(1618);
emit_16(1682);
emit_16(1617);
emit_16(1682);
emit_16(1618);
emit_16(1683);
emit_16(1619);
emit_16(1683);
emit_16(1618);
emit_16(1683);
emit_16(1619);
emit_16(1684);
emit_16(1620);
emit_16(1684);
emit_16(1619);
emit_16(1684);
emit_16(1620);
emit_16(1685);
emit_16(1621);
emit_16(1685);
emit_16(1620);
emit_16(1685);
emit_16(1621);
emit_16(1686);
emit_16(1622);
emit_16(1686);
emit_16(1621);
emit_16(1686);
emit_16(1622);
emit_16(1687);
emit_16(1623);
emit_16(1687);
emit_16(1622);
emit_16(1687);
emit_16(1623);
emit_16(1688);
emit_16(1624);
emit_16(1688);
emit_16(1623);
emit_16(1688);
emit_16(1624);
emit_16(1689);
emit_16(1625);
emit_16(1689);
emit_16(1624);
emit_16(1689);
emit_16(1625);
emit_16(1690);
emit_16(1626);
emit_16(1690);
emit_16(1625);
emit_16(1690);
emit_16(1626);
emit_16(1691);
emit_16(1627);
emit_16(1691);
emit_16(1626);
emit_16(1691);
emit_16(1627);
emit_16(1692);
emit_16(1628);
emit_16(1692);
emit_16(1627);
emit_16(1692);
emit_16(1628);
emit_16(1693);
emit_16(1629);
emit_16(1693);
emit_16(1628);
emit_16(1693);
emit_16(1629);
emit_16(1694);
emit_16(1630);
emit_16(1694);
emit_16(1629);
emit_16(1694);
emit_16(1630);
emit_16(1695);
emit_16(1631);
emit_16(1695);
emit_16(1630);
emit_16(1695);
emit_16(1631);
emit_16(1696);
emit_16(1632);
emit_16(1696);
emit_16(1631);
emit_16(1696);
emit_16(1632);
emit_16(1697);
emit_16(1633);
emit_16(1697);
emit_16(1632);
emit_16(1697);
emit_16(1633);
emit_16(1698);
emit_16(1634);
emit_16(1698);
emit_16(1633);
emit_16(1698);
emit_16(1634);
emit_16(1699);
emit_16(1635);
emit_16(1699);
emit_16(1634);
emit_16(1699);
emit_16(1635);
emit_16(1700);
emit_16(1636);
emit_16(1700);
emit_16(1635);
emit_16(1700);
emit_16(1636);
emit_16(1701);
emit_16(1637);
emit_16(1701);
emit_16(1636);
emit_16(1701);
emit_16(1637);
emit_16(1702);
emit_16(1638);
emit_16(1702);
emit_16(1637);
emit_16(1702);
emit_16(1638);
emit_16(1703);
emit_16(1639);
emit_16(1703);
emit_16(1638);
emit_16(1703);
emit_16(1639);
emit_16(1704);
emit_16(1640);
emit_16(1704);
emit_16(1639);
emit_16(1704);
emit_16(1640);
emit_16(1705);
emit_16(1641);
emit_16(1705);
emit_16(1640);
emit_16(1705);
emit_16(1641);
emit_16(1706);
emit_16(1642);
emit_16(1706);
emit_16(1641);
emit_16(1706);
emit_16(1642);
emit_16(1707);
emit_16(1643);
emit_16(1707);
emit_16(1642);
emit_16(1707);
emit_16(1643);
emit_16(1708);
emit_16(1644);
emit_16(1708);
emit_16(1643);
emit_16(1708);
emit_16(1644);
emit_16(1709);
emit_16(1645);
emit_16(1709);
emit_16(1644);
emit_16(1709);
emit_16(1645);
emit_16(1710);
emit_16(1646);
emit_16(1710);
emit_16(1645);
emit_16(1710);
emit_16(1646);
emit_16(1711);
emit_16(1647);
emit_16(1711);
emit_16(1646);
emit_16(1711);
emit_16(1647);
emit_16(1712);
emit_16(1648);
emit_16(1712);
emit_16(1647);
emit_16(1712);
emit_16(1648);
emit_16(1713);
emit_16(1649);
emit_16(1713);
emit_16(1648);
emit_16(1713);
emit_16(1649);
emit_16(1714);
emit_16(1650);
emit_16(1714);
emit_16(1649);
emit_16(1714);
emit_16(1650);
emit_16(1715);
emit_16(1651);
emit_16(1715);
emit_16(1650);
emit_16(1715);
emit_16(1651);
emit_16(1716);
emit_16(1652);
emit_16(1716);
emit_16(1651);
emit_16(1716);
emit_16(1652);
emit_16(1717);
emit_16(1653);
emit_16(1717);
emit_16(1652);
emit_16(1717);
emit_16(1653);
emit_16(1718);
emit_16(1654);
emit_16(1718);
emit_16(1653);
emit_16(1718);
emit_16(1654);
emit_16(1719);
emit_16(1655);
emit_16(1719);
emit_16(1654);
emit_16(1719);
emit_16(1655);
emit_16(1720);
emit_16(1656);
emit_16(1720);
emit_16(1655);
emit_16(1720);
emit_16(1656);
emit_16(1721);
emit_16(1657);
emit_16(1721);
emit_16(1656);
emit_16(1721);
emit_16(1657);
emit_16(1722);
emit_16(1658);
emit_16(1722);
emit_16(1657);
emit_16(1722);
emit_16(1658);
emit_16(1723);
emit_16(1659);
emit_16(1723);
emit_16(1658);
emit_16(1723);
emit_16(1659);
emit_16(1724);
emit_16(1660);
emit_16(1724);
emit_16(1659);
emit_16(1724);
emit_16(1660);
emit_16(1725);
emit_16(1661);
emit_16(1725);
emit_16(1660);
emit_16(1725);
emit_16(1661);
emit_16(1726);
emit_16(1662);
emit_16(1726);
emit_16(1661);
emit_16(1726);
emit_16(1662);
emit_16(1727);
emit_16(1663);
emit_16(1727);
emit_16(1662);
emit_16(1728);
emit_16(1664);
emit_16(1729);
emit_16(1665);
emit_16(1729);
emit_16(1664);
emit_16(1729);
emit_16(1665);
emit_16(1730);
emit_16(1666);
emit_16(1730);
emit_16(1665);
emit_16(1730);
emit_16(1666);
emit_16(1731);
emit_16(1667);
emit_16(1731);
emit_16(1666);
emit_16(1731);
emit_16(1667);
emit_16(1732);
emit_16(1668);
emit_16(1732);
emit_16(1667);
emit_16(1732);
emit_16(1668);
emit_16(1733);
emit_16(1669);
emit_16(1733);
emit_16(1668);
emit_16(1733);
emit_16(1669);
emit_16(1734);
emit_16(1670);
emit_16(1734);
emit_16(1669);
emit_16(1734);
emit_16(1670);
emit_16(1735);
emit_16(1671);
emit_16(1735);
emit_16(1670);
emit_16(1735);
emit_16(1671);
emit_16(1736);
emit_16(1672);
emit_16(1736);
emit_16(1671);
emit_16(1736);
emit_16(1672);
emit_16(1737);
emit_16(1673);
emit_16(1737);
emit_16(1672);
emit_16(1737);
emit_16(1673);
emit_16(1738);
emit_16(1674);
emit_16(1738);
emit_16(1673);
emit_16(1738);
emit_16(1674);
emit_16(1739);
emit_16(1675);
emit_16(1739);
emit_16(1674);
emit_16(1739);
emit_16(1675);
emit_16(1740);
emit_16(1676);
emit_16(1740);
emit_16(1675);
emit_16(1740);
emit_16(1676);
emit_16(1741);
emit_16(1677);
emit_16(1741);
emit_16(1676);
emit_16(1741);
emit_16(1677);
emit_16(1742);
emit_16(1678);
emit_16(1742);
emit_16(1677);
emit_16(1742);
emit_16(1678);
emit_16(1743);
emit_16(1679);
emit_16(1743);
emit_16(1678);
emit_16(1743);
emit_16(1679);
emit_16(1744);
emit_16(1680);
emit_16(1744);
emit_16(1679);
emit_16(1744);
emit_16(1680);
emit_16(1745);
emit_16(1681);
emit_16(1745);
emit_16(1680);
emit_16(1745);
emit_16(1681);
emit_16(1746);
emit_16(1682);
emit_16(1746);
emit_16(1681);
emit_16(1746);
emit_16(1682);
emit_16(1747);
emit_16(1683);
emit_16(1747);
emit_16(1682);
emit_16(1747);
emit_16(1683);
emit_16(1748);
emit_16(1684);
emit_16(1748);
emit_16(1683);
emit_16(1748);
emit_16(1684);
emit_16(1749);
emit_16(1685);
emit_16(1749);
emit_16(1684);
emit_16(1749);
emit_16(1685);
emit_16(1750);
emit_16(1686);
emit_16(1750);
emit_16(1685);
emit_16(1750);
emit_16(1686);
emit_16(1751);
emit_16(1687);
emit_16(1751);
emit_16(1686);
emit_16(1751);
emit_16(1687);
emit_16(1752);
emit_16(1688);
emit_16(1752);
emit_16(1687);
emit_16(1752);
emit_16(1688);
emit_16(1753);
emit_16(1689);
emit_16(1753);
emit_16(1688);
emit_16(1753);
emit_16(1689);
emit_16(1754);
emit_16(1690);
emit_16(1754);
emit_16(1689);
emit_16(1754);
emit_16(1690);
emit_16(1755);
emit_16(1691);
emit_16(1755);
emit_16(1690);
emit_16(1755);
emit_16(1691);
emit_16(1756);
emit_16(1692);
emit_16(1756);
emit_16(1691);
emit_16(1756);
emit_16(1692);
emit_16(1757);
emit_16(1693);
emit_16(1757);
emit_16(1692);
emit_16(1757);
emit_16(1693);
emit_16(1758);
emit_16(1694);
emit_16(1758);
emit_16(1693);
emit_16(1758);
emit_16(1694);
emit_16(1759);
emit_16(1695);
emit_16(1759);
emit_16(1694);
emit_16(1759);
emit_16(1695);
emit_16(1760);
emit_16(1696);
emit_16(1760);
emit_16(1695);
emit_16(1760);
emit_16(1696);
emit_16(1761);
emit_16(1697);
emit_16(1761);
emit_16(1696);
emit_16(1761);
emit_16(1697);
emit_16(1762);
emit_16(1698);
emit_16(1762);
emit_16(1697);
emit_16(1762);
emit_16(1698);
emit_16(1763);
emit_16(1699);
emit_16(1763);
emit_16(1698);
emit_16(1763);
emit_16(1699);
emit_16(1764);
emit_16(1700);
emit_16(1764);
emit_16(1699);
emit_16(1764);
emit_16(1700);
emit_16(1765);
emit_16(1701);
emit_16(1765);
emit_16(1700);
emit_16(1765);
emit_16(1701);
emit_16(1766);
emit_16(1702);
emit_16(1766);
emit_16(1701);
emit_16(1766);
emit_16(1702);
emit_16(1767);
emit_16(1703);
emit_16(1767);
emit_16(1702);
emit_16(1767);
emit_16(1703);
emit_16(1768);
emit_16(1704);
emit_16(1768);
emit_16(1703);
emit_16(1768);
emit_16(1704);
emit_16(1769);
emit_16(1705);
emit_16(1769);
emit_16(1704);
emit_16(1769);
emit_16(1705);
emit_16(1770);
emit_16(1706);
emit_16(1770);
emit_16(1705);
emit_16(1770);
emit_16(1706);
emit_16(1771);
emit_16(1707);
emit_16(1771);
emit_16(1706);
emit_16(1771);
emit_16(1707);
emit_16(1772);
emit_16(1708);
emit_16(1772);
emit_16(1707);
emit_16(1772);
emit_16(1708);
emit_16(1773);
emit_16(1709);
emit_16(1773);
emit_16(1708);
emit_16(1773);
emit_16(1709);
emit_16(1774);
emit_16(1710);
emit_16(1774);
emit_16(1709);
emit_16(1774);
emit_16(1710);
emit_16(1775);
emit_16(1711);
emit_16(1775);
emit_16(1710);
emit_16(1775);
emit_16(1711);
emit_16(1776);
emit_16(1712);
emit_16(1776);
emit_16(1711);
emit_16(1776);
emit_16(1712);
emit_16(1777);
emit_16(1713);
emit_16(1777);
emit_16(1712);
emit_16(1777);
emit_16(1713);
emit_16(1778);
emit_16(1714);
emit_16(1778);
emit_16(1713);
emit_16(1778);
emit_16(1714);
emit_16(1779);
emit_16(1715);
emit_16(1779);
emit_16(1714);
emit_16(1779);
emit_16(1715);
emit_16(1780);
emit_16(1716);
emit_16(1780);
emit_16(1715);
emit_16(1780);
emit_16(1716);
emit_16(1781);
emit_16(1717);
emit_16(1781);
emit_16(1716);
emit_16(1781);
emit_16(1717);
emit_16(1782);
emit_16(1718);
emit_16(1782);
emit_16(1717);
emit_16(1782);
emit_16(1718);
emit_16(1783);
emit_16(1719);
emit_16(1783);
emit_16(1718);
emit_16(1783);
emit_16(1719);
emit_16(1784);
emit_16(1720);
emit_16(1784);
emit_16(1719);
emit_16(1784);
emit_16(1720);
emit_16(1785);
emit_16(1721);
emit_16(1785);
emit_16(1720);
emit_16(1785);
emit_16(1721);
emit_16(1786);
emit_16(1722);
emit_16(1786);
emit_16(1721);
emit_16(1786);
emit_16(1722);
emit_16(1787);
emit_16(1723);
emit_16(1787);
emit_16(1722);
emit_16(1787);
emit_16(1723);
emit_16(1788);
emit_16(1724);
emit_16(1788);
emit_16(1723);
emit_16(1788);
emit_16(1724);
emit_16(1789);
emit_16(1725);
emit_16(1789);
emit_16(1724);
emit_16(1789);
emit_16(1725);
emit_16(1790);
emit_16(1726);
emit_16(1790);
emit_16(1725);
emit_16(1790);
emit_16(1726);
emit_16(1791);
emit_16(1727);
emit_16(1791);
emit_16(1726);
emit_16(1792);
emit_16(1728);
emit_16(1793);
emit_16(1729);
emit_16(1793);
emit_16(1728);
emit_16(1793);
emit_16(1729);
emit_16(1794);
emit_16(1730);
emit_16(1794);
emit_16(1729);
emit_16(1794);
emit_16(1730);
emit_16(1795);
emit_16(1731);
emit_16(1795);
emit_16(1730);
emit_16(1795);
emit_16(1731);
emit_16(1796);
emit_16(1732);
emit_16(1796);
emit_16(1731);
emit_16(1796);
emit_16(1732);
emit_16(1797);
emit_16(1733);
emit_16(1797);
emit_16(1732);
emit_16(1797);
emit_16(1733);
emit_16(1798);
emit_16(1734);
emit_16(1798);
emit_16(1733);
emit_16(1798);
emit_16(1734);
emit_16(1799);
emit_16(1735);
emit_16(1799);
emit_16(1734);
emit_16(1799);
emit_16(1735);
emit_16(1800);
emit_16(1736);
emit_16(1800);
emit_16(1735);
emit_16(1800);
emit_16(1736);
emit_16(1801);
emit_16(1737);
emit_16(1801);
emit_16(1736);
emit_16(1801);
emit_16(1737);
emit_16(1802);
emit_16(1738);
emit_16(1802);
emit_16(1737);
emit_16(1802);
emit_16(1738);
emit_16(1803);
emit_16(1739);
emit_16(1803);
emit_16(1738);
emit_16(1803);
emit_16(1739);
emit_16(1804);
emit_16(1740);
emit_16(1804);
emit_16(1739);
emit_16(1804);
emit_16(1740);
emit_16(1805);
emit_16(1741);
emit_16(1805);
emit_16(1740);
emit_16(1805);
emit_16(1741);
emit_16(1806);
emit_16(1742);
emit_16(1806);
emit_16(1741);
emit_16(1806);
emit_16(1742);
emit_16(1807);
emit_16(1743);
emit_16(1807);
emit_16(1742);
emit_16(1807);
emit_16(1743);
emit_16(1808);
emit_16(1744);
emit_16(1808);
emit_16(1743);
emit_16(1808);
emit_16(1744);
emit_16(1809);
emit_16(1745);
emit_16(1809);
emit_16(1744);
emit_16(1809);
emit_16(1745);
emit_16(1810);
emit_16(1746);
emit_16(1810);
emit_16(1745);
emit_16(1810);
emit_16(1746);
emit_16(1811);
emit_16(1747);
emit_16(1811);
emit_16(1746);
emit_16(1811);
emit_16(1747);
emit_16(1812);
emit_16(1748);
emit_16(1812);
emit_16(1747);
emit_16(1812);
emit_16(1748);
emit_16(1813);
emit_16(1749);
emit_16(1813);
emit_16(1748);
emit_16(1813);
emit_16(1749);
emit_16(1814);
emit_16(1750);
emit_16(1814);
emit_16(1749);
emit_16(1814);
emit_16(1750);
emit_16(1815);
emit_16(1751);
emit_16(1815);
emit_16(1750);
emit_16(1815);
emit_16(1751);
emit_16(1816);
emit_16(1752);
emit_16(1816);
emit_16(1751);
emit_16(1816);
emit_16(1752);
emit_16(1817);
emit_16(1753);
emit_16(1817);
emit_16(1752);
emit_16(1817);
emit_16(1753);
emit_16(1818);
emit_16(1754);
emit_16(1818);
emit_16(1753);
emit_16(1818);
emit_16(1754);
emit_16(1819);
emit_16(1755);
emit_16(1819);
emit_16(1754);
emit_16(1819);
emit_16(1755);
emit_16(1820);
emit_16(1756);
emit_16(1820);
emit_16(1755);
emit_16(1820);
emit_16(1756);
emit_16(1821);
emit_16(1757);
emit_16(1821);
emit_16(1756);
emit_16(1821);
emit_16(1757);
emit_16(1822);
emit_16(1758);
emit_16(1822);
emit_16(1757);
emit_16(1822);
emit_16(1758);
emit_16(1823);
emit_16(1759);
emit_16(1823);
emit_16(1758);
emit_16(1823);
emit_16(1759);
emit_16(1824);
emit_16(1760);
emit_16(1824);
emit_16(1759);
emit_16(1824);
emit_16(1760);
emit_16(1825);
emit_16(1761);
emit_16(1825);
emit_16(1760);
emit_16(1825);
emit_16(1761);
emit_16(1826);
emit_16(1762);
emit_16(1826);
emit_16(1761);
emit_16(1826);
emit_16(1762);
emit_16(1827);
emit_16(1763);
emit_16(1827);
emit_16(1762);
emit_16(1827);
emit_16(1763);
emit_16(1828);
emit_16(1764);
emit_16(1828);
emit_16(1763);
emit_16(1828);
emit_16(1764);
emit_16(1829);
emit_16(1765);
emit_16(1829);
emit_16(1764);
emit_16(1829);
emit_16(1765);
emit_16(1830);
emit_16(1766);
emit_16(1830);
emit_16(1765);
emit_16(1830);
emit_16(1766);
emit_16(1831);
emit_16(1767);
emit_16(1831);
emit_16(1766);
emit_16(1831);
emit_16(1767);
emit_16(1832);
emit_16(1768);
emit_16(1832);
emit_16(1767);
emit_16(1832);
emit_16(1768);
emit_16(1833);
emit_16(1769);
emit_16(1833);
emit_16(1768);
emit_16(1833);
emit_16(1769);
emit_16(1834);
emit_16(1770);
emit_16(1834);
emit_16(1769);
emit_16(1834);
emit_16(1770);
emit_16(1835);
emit_16(1771);
emit_16(1835);
emit_16(1770);
emit_16(1835);
emit_16(1771);
emit_16(1836);
emit_16(1772);
emit_16(1836);
emit_16(1771);
emit_16(1836);
emit_16(1772);
emit_16(1837);
emit_16(1773);
emit_16(1837);
emit_16(1772);
emit_16(1837);
emit_16(1773);
emit_16(1838);
emit_16(1774);
emit_16(1838);
emit_16(1773);
emit_16(1838);
emit_16(1774);
emit_16(1839);
emit_16(1775);
emit_16(1839);
emit_16(1774);
emit_16(1839);
emit_16(1775);
emit_16(1840);
emit_16(1776);
emit_16(1840);
emit_16(1775);
emit_16(1840);
emit_16(1776);
emit_16(1841);
emit_16(1777);
emit_16(1841);
emit_16(1776);
emit_16(1841);
emit_16(1777);
emit_16(1842);
emit_16(1778);
emit_16(1842);
emit_16(1777);
emit_16(1842);
emit_16(1778);
emit_16(1843);
emit_16(1779);
emit_16(1843);
emit_16(1778);
emit_16(1843);
emit_16(1779);
emit_16(1844);
emit_16(1780);
emit_16(1844);
emit_16(1779);
emit_16(1844);
emit_16(1780);
emit_16(1845);
emit_16(1781);
emit_16(1845);
emit_16(1780);
emit_16(1845);
emit_16(1781);
emit_16(1846);
emit_16(1782);
emit_16(1846);
emit_16(1781);
emit_16(1846);
emit_16(1782);
emit_16(1847);
emit_16(1783);
emit_16(1847);
emit_16(1782);
emit_16(1847);
emit_16(1783);
emit_16(1848);
emit_16(1784);
emit_16(1848);
emit_16(1783);
emit_16(1848);
emit_16(1784);
emit_16(1849);
emit_16(1785);
emit_16(1849);
emit_16(1784);
emit_16(1849);
emit_16(1785);
emit_16(1850);
emit_16(1786);
emit_16(1850);
emit_16(1785);
emit_16(1850);
emit_16(1786);
emit_16(1851);
emit_16(1787);
emit_16(1851);
emit_16(1786);
emit_16(1851);
emit_16(1787);
emit_16(1852);
emit_16(1788);
emit_16(1852);
emit_16(1787);
emit_16(1852);
emit_16(1788);
emit_16(1853);
emit_16(1789);
emit_16(1853);
emit_16(1788);
emit_16(1853);
emit_16(1789);
emit_16(1854);
emit_16(1790);
emit_16(1854);
emit_16(1789);
emit_16(1854);
emit_16(1790);
emit_16(1855);
emit_16(1791);
emit_16(1855);
emit_16(1790);
emit_16(1856);
emit_16(1792);
emit_16(1857);
emit_16(1793);
emit_16(1857);
emit_16(1792);
emit_16(1857);
emit_16(1793);
emit_16(1858);
emit_16(1794);
emit_16(1858);
emit_16(1793);
emit_16(1858);
emit_16(1794);
emit_16(1859);
emit_16(1795);
emit_16(1859);
emit_16(1794);
emit_16(1859);
emit_16(1795);
emit_16(1860);
emit_16(1796);
emit_16(1860);
emit_16(1795);
emit_16(1860);
emit_16(1796);
emit_16(1861);
emit_16(1797);
emit_16(1861);
emit_16(1796);
emit_16(1861);
emit_16(1797);
emit_16(1862);
emit_16(1798);
emit_16(1862);
emit_16(1797);
emit_16(1862);
emit_16(1798);
emit_16(1863);
emit_16(1799);
emit_16(1863);
emit_16(1798);
emit_16(1863);
emit_16(1799);
emit_16(1864);
emit_16(1800);
emit_16(1864);
emit_16(1799);
emit_16(1864);
emit_16(1800);
emit_16(1865);
emit_16(1801);
emit_16(1865);
emit_16(1800);
emit_16(1865);
emit_16(1801);
emit_16(1866);
emit_16(1802);
emit_16(1866);
emit_16(1801);
emit_16(1866);
emit_16(1802);
emit_16(1867);
emit_16(1803);
emit_16(1867);
emit_16(1802);
emit_16(1867);
emit_16(1803);
emit_16(1868);
emit_16(1804);
emit_16(1868);
emit_16(1803);
emit_16(1868);
emit_16(1804);
emit_16(1869);
emit_16(1805);
emit_16(1869);
emit_16(1804);
emit_16(1869);
emit_16(1805);
emit_16(1870);
emit_16(1806);
emit_16(1870);
emit_16(1805);
emit_16(1870);
emit_16(1806);
emit_16(1871);
emit_16(1807);
emit_16(1871);
emit_16(1806);
emit_16(1871);
emit_16(1807);
emit_16(1872);
emit_16(1808);
emit_16(1872);
emit_16(1807);
emit_16(1872);
emit_16(1808);
emit_16(1873);
emit_16(1809);
emit_16(1873);
emit_16(1808);
emit_16(1873);
emit_16(1809);
emit_16(1874);
emit_16(1810);
emit_16(1874);
emit_16(1809);
emit_16(1874);
emit_16(1810);
emit_16(1875);
emit_16(1811);
emit_16(1875);
emit_16(1810);
emit_16(1875);
emit_16(1811);
emit_16(1876);
emit_16(1812);
emit_16(1876);
emit_16(1811);
emit_16(1876);
emit_16(1812);
emit_16(1877);
emit_16(1813);
emit_16(1877);
emit_16(1812);
emit_16(1877);
emit_16(1813);
emit_16(1878);
emit_16(1814);
emit_16(1878);
emit_16(1813);
emit_16(1878);
emit_16(1814);
emit_16(1879);
emit_16(1815);
emit_16(1879);
emit_16(1814);
emit_16(1879);
emit_16(1815);
emit_16(1880);
emit_16(1816);
emit_16(1880);
emit_16(1815);
emit_16(1880);
emit_16(1816);
emit_16(1881);
emit_16(1817);
emit_16(1881);
emit_16(1816);
emit_16(1881);
emit_16(1817);
emit_16(1882);
emit_16(1818);
emit_16(1882);
emit_16(1817);
emit_16(1882);
emit_16(1818);
emit_16(1883);
emit_16(1819);
emit_16(1883);
emit_16(1818);
emit_16(1883);
emit_16(1819);
emit_16(1884);
emit_16(1820);
emit_16(1884);
emit_16(1819);
emit_16(1884);
emit_16(1820);
emit_16(1885);
emit_16(1821);
emit_16(1885);
emit_16(1820);
emit_16(1885);
emit_16(1821);
emit_16(1886);
emit_16(1822);
emit_16(1886);
emit_16(1821);
emit_16(1886);
emit_16(1822);
emit_16(1887);
emit_16(1823);
emit_16(1887);
emit_16(1822);
emit_16(1887);
emit_16(1823);
emit_16(1888);
emit_16(1824);
emit_16(1888);
emit_16(1823);
emit_16(1888);
emit_16(1824);
emit_16(1889);
emit_16(1825);
emit_16(1889);
emit_16(1824);
emit_16(1889);
emit_16(1825);
emit_16(1890);
emit_16(1826);
emit_16(1890);
emit_16(1825);
emit_16(1890);
emit_16(1826);
emit_16(1891);
emit_16(1827);
emit_16(1891);
emit_16(1826);
emit_16(1891);
emit_16(1827);
emit_16(1892);
emit_16(1828);
emit_16(1892);
emit_16(1827);
emit_16(1892);
emit_16(1828);
emit_16(1893);
emit_16(1829);
emit_16(1893);
emit_16(1828);
emit_16(1893);
emit_16(1829);
emit_16(1894);
emit_16(1830);
emit_16(1894);
emit_16(1829);
emit_16(1894);
emit_16(1830);
emit_16(1895);
emit_16(1831);
emit_16(1895);
emit_16(1830);
emit_16(1895);
emit_16(1831);
emit_16(1896);
emit_16(1832);
emit_16(1896);
emit_16(1831);
emit_16(1896);
emit_16(1832);
emit_16(1897);
emit_16(1833);
emit_16(1897);
emit_16(1832);
emit_16(1897);
emit_16(1833);
emit_16(1898);
emit_16(1834);
emit_16(1898);
emit_16(1833);
emit_16(1898);
emit_16(1834);
emit_16(1899);
emit_16(1835);
emit_16(1899);
emit_16(1834);
emit_16(1899);
emit_16(1835);
emit_16(1900);
emit_16(1836);
emit_16(1900);
emit_16(1835);
emit_16(1900);
emit_16(1836);
emit_16(1901);
emit_16(1837);
emit_16(1901);
emit_16(1836);
emit_16(1901);
emit_16(1837);
emit_16(1902);
emit_16(1838);
emit_16(1902);
emit_16(1837);
emit_16(1902);
emit_16(1838);
emit_16(1903);
emit_16(1839);
emit_16(1903);
emit_16(1838);
emit_16(1903);
emit_16(1839);
emit_16(1904);
emit_16(1840);
emit_16(1904);
emit_16(1839);
emit_16(1904);
emit_16(1840);
emit_16(1905);
emit_16(1841);
emit_16(1905);
emit_16(1840);
emit_16(1905);
emit_16(1841);
emit_16(1906);
emit_16(1842);
emit_16(1906);
emit_16(1841);
emit_16(1906);
emit_16(1842);
emit_16(1907);
emit_16(1843);
emit_16(1907);
emit_16(1842);
emit_16(1907);
emit_16(1843);
emit_16(1908);
emit_16(1844);
emit_16(1908);
emit_16(1843);
emit_16(1908);
emit_16(1844);
emit_16(1909);
emit_16(1845);
emit_16(1909);
emit_16(1844);
emit_16(1909);
emit_16(1845);
emit_16(1910);
emit_16(1846);
emit_16(1910);
emit_16(1845);
emit_16(1910);
emit_16(1846);
emit_16(1911);
emit_16(1847);
emit_16(1911);
emit_16(1846);
emit_16(1911);
emit_16(1847);
emit_16(1912);
emit_16(1848);
emit_16(1912);
emit_16(1847);
emit_16(1912);
emit_16(1848);
emit_16(1913);
emit_16(1849);
emit_16(1913);
emit_16(1848);
emit_16(1913);
emit_16(1849);
emit_16(1914);
emit_16(1850);
emit_16(1914);
emit_16(1849);
emit_16(1914);
emit_16(1850);
emit_16(1915);
emit_16(1851);
emit_16(1915);
emit_16(1850);
emit_16(1915);
emit_16(1851);
emit_16(1916);
emit_16(1852);
emit_16(1916);
emit_16(1851);
emit_16(1916);
emit_16(1852);
emit_16(1917);
emit_16(1853);
emit_16(1917);
emit_16(1852);
emit_16(1917);
emit_16(1853);
emit_16(1918);
emit_16(1854);
emit_16(1918);
emit_16(1853);
emit_16(1918);
emit_16(1854);
emit_16(1919);
emit_16(1855);
emit_16(1919);
emit_16(1854);
emit_16(1920);
emit_16(1856);
emit_16(1921);
emit_16(1857);
emit_16(1921);
emit_16(1856);
emit_16(1921);
emit_16(1857);
emit_16(1922);
emit_16(1858);
emit_16(1922);
emit_16(1857);
emit_16(1922);
emit_16(1858);
emit_16(1923);
emit_16(1859);
emit_16(1923);
emit_16(1858);
emit_16(1923);
emit_16(1859);
emit_16(1924);
emit_16(1860);
emit_16(1924);
emit_16(1859);
emit_16(1924);
emit_16(1860);
emit_16(1925);
emit_16(1861);
emit_16(1925);
emit_16(1860);
emit_16(1925);
emit_16(1861);
emit_16(1926);
emit_16(1862);
emit_16(1926);
emit_16(1861);
emit_16(1926);
emit_16(1862);
emit_16(1927);
emit_16(1863);
emit_16(1927);
emit_16(1862);
emit_16(1927);
emit_16(1863);
emit_16(1928);
emit_16(1864);
emit_16(1928);
emit_16(1863);
emit_16(1928);
emit_16(1864);
emit_16(1929);
emit_16(1865);
emit_16(1929);
emit_16(1864);
emit_16(1929);
emit_16(1865);
emit_16(1930);
emit_16(1866);
emit_16(1930);
emit_16(1865);
emit_16(1930);
emit_16(1866);
emit_16(1931);
emit_16(1867);
emit_16(1931);
emit_16(1866);
emit_16(1931);
emit_16(1867);
emit_16(1932);
emit_16(1868);
emit_16(1932);
emit_16(1867);
emit_16(1932);
emit_16(1868);
emit_16(1933);
emit_16(1869);
emit_16(1933);
emit_16(1868);
emit_16(1933);
emit_16(1869);
emit_16(1934);
emit_16(1870);
emit_16(1934);
emit_16(1869);
emit_16(1934);
emit_16(1870);
emit_16(1935);
emit_16(1871);
emit_16(1935);
emit_16(1870);
emit_16(1935);
emit_16(1871);
emit_16(1936);
emit_16(1872);
emit_16(1936);
emit_16(1871);
emit_16(1936);
emit_16(1872);
emit_16(1937);
emit_16(1873);
emit_16(1937);
emit_16(1872);
emit_16(1937);
emit_16(1873);
emit_16(1938);
emit_16(1874);
emit_16(1938);
emit_16(1873);
emit_16(1938);
emit_16(1874);
emit_16(1939);
emit_16(1875);
emit_16(1939);
emit_16(1874);
emit_16(1939);
emit_16(1875);
emit_16(1940);
emit_16(1876);
emit_16(1940);
emit_16(1875);
emit_16(1940);
emit_16(1876);
emit_16(1941);
emit_16(1877);
emit_16(1941);
emit_16(1876);
emit_16(1941);
emit_16(1877);
emit_16(1942);
emit_16(1878);
emit_16(1942);
emit_16(1877);
emit_16(1942);
emit_16(1878);
emit_16(1943);
emit_16(1879);
emit_16(1943);
emit_16(1878);
emit_16(1943);
emit_16(1879);
emit_16(1944);
emit_16(1880);
emit_16(1944);
emit_16(1879);
emit_16(1944);
emit_16(1880);
emit_16(1945);
emit_16(1881);
emit_16(1945);
emit_16(1880);
emit_16(1945);
emit_16(1881);
emit_16(1946);
emit_16(1882);
emit_16(1946);
emit_16(1881);
emit_16(1946);
emit_16(1882);
emit_16(1947);
emit_16(1883);
emit_16(1947);
emit_16(1882);
emit_16(1947);
emit_16(1883);
emit_16(1948);
emit_16(1884);
emit_16(1948);
emit_16(1883);
emit_16(1948);
emit_16(1884);
emit_16(1949);
emit_16(1885);
emit_16(1949);
emit_16(1884);
emit_16(1949);
emit_16(1885);
emit_16(1950);
emit_16(1886);
emit_16(1950);
emit_16(1885);
emit_16(1950);
emit_16(1886);
emit_16(1951);
emit_16(1887);
emit_16(1951);
emit_16(1886);
emit_16(1951);
emit_16(1887);
emit_16(1952);
emit_16(1888);
emit_16(1952);
emit_16(1887);
emit_16(1952);
emit_16(1888);
emit_16(1953);
emit_16(1889);
emit_16(1953);
emit_16(1888);
emit_16(1953);
emit_16(1889);
emit_16(1954);
emit_16(1890);
emit_16(1954);
emit_16(1889);
emit_16(1954);
emit_16(1890);
emit_16(1955);
emit_16(1891);
emit_16(1955);
emit_16(1890);
emit_16(1955);
emit_16(1891);
emit_16(1956);
emit_16(1892);
emit_16(1956);
emit_16(1891);
emit_16(1956);
emit_16(1892);
emit_16(1957);
emit_16(1893);
emit_16(1957);
emit_16(1892);
emit_16(1957);
emit_16(1893);
emit_16(1958);
emit_16(1894);
emit_16(1958);
emit_16(1893);
emit_16(1958);
emit_16(1894);
emit_16(1959);
emit_16(1895);
emit_16(1959);
emit_16(1894);
emit_16(1959);
emit_16(1895);
emit_16(1960);
emit_16(1896);
emit_16(1960);
emit_16(1895);
emit_16(1960);
emit_16(1896);
emit_16(1961);
emit_16(1897);
emit_16(1961);
emit_16(1896);
emit_16(1961);
emit_16(1897);
emit_16(1962);
emit_16(1898);
emit_16(1962);
emit_16(1897);
emit_16(1962);
emit_16(1898);
emit_16(1963);
emit_16(1899);
emit_16(1963);
emit_16(1898);
emit_16(1963);
emit_16(1899);
emit_16(1964);
emit_16(1900);
emit_16(1964);
emit_16(1899);
emit_16(1964);
emit_16(1900);
emit_16(1965);
emit_16(1901);
emit_16(1965);
emit_16(1900);
emit_16(1965);
emit_16(1901);
emit_16(1966);
emit_16(1902);
emit_16(1966);
emit_16(1901);
emit_16(1966);
emit_16(1902);
emit_16(1967);
emit_16(1903);
emit_16(1967);
emit_16(1902);
emit_16(1967);
emit_16(1903);
emit_16(1968);
emit_16(1904);
emit_16(1968);
emit_16(1903);
emit_16(1968);
emit_16(1904);
emit_16(1969);
emit_16(1905);
emit_16(1969);
emit_16(1904);
emit_16(1969);
emit_16(1905);
emit_16(1970);
emit_16(1906);
emit_16(1970);
emit_16(1905);
emit_16(1970);
emit_16(1906);
emit_16(1971);
emit_16(1907);
emit_16(1971);
emit_16(1906);
emit_16(1971);
emit_16(1907);
emit_16(1972);
emit_16(1908);
emit_16(1972);
emit_16(1907);
emit_16(1972);
emit_16(1908);
emit_16(1973);
emit_16(1909);
emit_16(1973);
emit_16(1908);
emit_16(1973);
emit_16(1909);
emit_16(1974);
emit_16(1910);
emit_16(1974);
emit_16(1909);
emit_16(1974);
emit_16(1910);
emit_16(1975);
emit_16(1911);
emit_16(1975);
emit_16(1910);
emit_16(1975);
emit_16(1911);
emit_16(1976);
emit_16(1912);
emit_16(1976);
emit_16(1911);
emit_16(1976);
emit_16(1912);
emit_16(1977);
emit_16(1913);
emit_16(1977);
emit_16(1912);
emit_16(1977);
emit_16(1913);
emit_16(1978);
emit_16(1914);
emit_16(1978);
emit_16(1913);
emit_16(1978);
emit_16(1914);
emit_16(1979);
emit_16(1915);
emit_16(1979);
emit_16(1914);
emit_16(1979);
emit_16(1915);
emit_16(1980);
emit_16(1916);
emit_16(1980);
emit_16(1915);
emit_16(1980);
emit_16(1916);
emit_16(1981);
emit_16(1917);
emit_16(1981);
emit_16(1916);
emit_16(1981);
emit_16(1917);
emit_16(1982);
emit_16(1918);
emit_16(1982);
emit_16(1917);
emit_16(1982);
emit_16(1918);
emit_16(1983);
emit_16(1919);
emit_16(1983);
emit_16(1918);
emit_16(1984);
emit_16(1920);
emit_16(1985);
emit_16(1921);
emit_16(1985);
emit_16(1920);
emit_16(1985);
emit_16(1921);
emit_16(1986);
emit_16(1922);
emit_16(1986);
emit_16(1921);
emit_16(1986);
emit_16(1922);
emit_16(1987);
emit_16(1923);
emit_16(1987);
emit_16(1922);
emit_16(1987);
emit_16(1923);
emit_16(1988);
emit_16(1924);
emit_16(1988);
emit_16(1923);
emit_16(1988);
emit_16(1924);
emit_16(1989);
emit_16(1925);
emit_16(1989);
emit_16(1924);
emit_16(1989);
emit_16(1925);
emit_16(1990);
emit_16(1926);
emit_16(1990);
emit_16(1925);
emit_16(1990);
emit_16(1926);
emit_16(1991);
emit_16(1927);
emit_16(1991);
emit_16(1926);
emit_16(1991);
emit_16(1927);
emit_16(1992);
emit_16(1928);
emit_16(1992);
emit_16(1927);
emit_16(1992);
emit_16(1928);
emit_16(1993);
emit_16(1929);
emit_16(1993);
emit_16(1928);
emit_16(1993);
emit_16(1929);
emit_16(1994);
emit_16(1930);
emit_16(1994);
emit_16(1929);
emit_16(1994);
emit_16(1930);
emit_16(1995);
emit_16(1931);
emit_16(1995);
emit_16(1930);
emit_16(1995);
emit_16(1931);
emit_16(1996);
emit_16(1932);
emit_16(1996);
emit_16(1931);
emit_16(1996);
emit_16(1932);
emit_16(1997);
emit_16(1933);
emit_16(1997);
emit_16(1932);
emit_16(1997);
emit_16(1933);
emit_16(1998);
emit_16(1934);
emit_16(1998);
emit_16(1933);
emit_16(1998);
emit_16(1934);
emit_16(1999);
emit_16(1935);
emit_16(1999);
emit_16(1934);
emit_16(1999);
emit_16(1935);
emit_16(2000);
emit_16(1936);
emit_16(2000);
emit_16(1935);
emit_16(2000);
emit_16(1936);
emit_16(2001);
emit_16(1937);
emit_16(2001);
emit_16(1936);
emit_16(2001);
emit_16(1937);
emit_16(2002);
emit_16(1938);
emit_16(2002);
emit_16(1937);
emit_16(2002);
emit_16(1938);
emit_16(2003);
emit_16(1939);
emit_16(2003);
emit_16(1938);
emit_16(2003);
emit_16(1939);
emit_16(2004);
emit_16(1940);
emit_16(2004);
emit_16(1939);
emit_16(2004);
emit_16(1940);
emit_16(2005);
emit_16(1941);
emit_16(2005);
emit_16(1940);
emit_16(2005);
emit_16(1941);
emit_16(2006);
emit_16(1942);
emit_16(2006);
emit_16(1941);
emit_16(2006);
emit_16(1942);
emit_16(2007);
emit_16(1943);
emit_16(2007);
emit_16(1942);
emit_16(2007);
emit_16(1943);
emit_16(2008);
emit_16(1944);
emit_16(2008);
emit_16(1943);
emit_16(2008);
emit_16(1944);
emit_16(2009);
emit_16(1945);
emit_16(2009);
emit_16(1944);
emit_16(2009);
emit_16(1945);
emit_16(2010);
emit_16(1946);
emit_16(2010);
emit_16(1945);
emit_16(2010);
emit_16(1946);
emit_16(2011);
emit_16(1947);
emit_16(2011);
emit_16(1946);
emit_16(2011);
emit_16(1947);
emit_16(2012);
emit_16(1948);
emit_16(2012);
emit_16(1947);
emit_16(2012);
emit_16(1948);
emit_16(2013);
emit_16(1949);
emit_16(2013);
emit_16(1948);
emit_16(2013);
emit_16(1949);
emit_16(2014);
emit_16(1950);
emit_16(2014);
emit_16(1949);
emit_16(2014);
emit_16(1950);
emit_16(2015);
emit_16(1951);
emit_16(2015);
emit_16(1950);
emit_16(2015);
emit_16(1951);
emit_16(2016);
emit_16(1952);
emit_16(2016);
emit_16(1951);
emit_16(2016);
emit_16(1952);
emit_16(2017);
emit_16(1953);
emit_16(2017);
emit_16(1952);
emit_16(2017);
emit_16(1953);
emit_16(2018);
emit_16(1954);
emit_16(2018);
emit_16(1953);
emit_16(2018);
emit_16(1954);
emit_16(2019);
emit_16(1955);
emit_16(2019);
emit_16(1954);
emit_16(2019);
emit_16(1955);
emit_16(2020);
emit_16(1956);
emit_16(2020);
emit_16(1955);
emit_16(2020);
emit_16(1956);
emit_16(2021);
emit_16(1957);
emit_16(2021);
emit_16(1956);
emit_16(2021);
emit_16(1957);
emit_16(2022);
emit_16(1958);
emit_16(2022);
emit_16(1957);
emit_16(2022);
emit_16(1958);
emit_16(2023);
emit_16(1959);
emit_16(2023);
emit_16(1958);
emit_16(2023);
emit_16(1959);
emit_16(2024);
emit_16(1960);
emit_16(2024);
emit_16(1959);
emit_16(2024);
emit_16(1960);
emit_16(2025);
emit_16(1961);
emit_16(2025);
emit_16(1960);
emit_16(2025);
emit_16(1961);
emit_16(2026);
emit_16(1962);
emit_16(2026);
emit_16(1961);
emit_16(2026);
emit_16(1962);
emit_16(2027);
emit_16(1963);
emit_16(2027);
emit_16(1962);
emit_16(2027);
emit_16(1963);
emit_16(2028);
emit_16(1964);
emit_16(2028);
emit_16(1963);
emit_16(2028);
emit_16(1964);
emit_16(2029);
emit_16(1965);
emit_16(2029);
emit_16(1964);
emit_16(2029);
emit_16(1965);
emit_16(2030);
emit_16(1966);
emit_16(2030);
emit_16(1965);
emit_16(2030);
emit_16(1966);
emit_16(2031);
emit_16(1967);
emit_16(2031);
emit_16(1966);
emit_16(2031);
emit_16(1967);
emit_16(2032);
emit_16(1968);
emit_16(2032);
emit_16(1967);
emit_16(2032);
emit_16(1968);
emit_16(2033);
emit_16(1969);
emit_16(2033);
emit_16(1968);
emit_16(2033);
emit_16(1969);
emit_16(2034);
emit_16(1970);
emit_16(2034);
emit_16(1969);
emit_16(2034);
emit_16(1970);
emit_16(2035);
emit_16(1971);
emit_16(2035);
emit_16(1970);
emit_16(2035);
emit_16(1971);
emit_16(2036);
emit_16(1972);
emit_16(2036);
emit_16(1971);
emit_16(2036);
emit_16(1972);
emit_16(2037);
emit_16(1973);
emit_16(2037);
emit_16(1972);
emit_16(2037);
emit_16(1973);
emit_16(2038);
emit_16(1974);
emit_16(2038);
emit_16(1973);
emit_16(2038);
emit_16(1974);
emit_16(2039);
emit_16(1975);
emit_16(2039);
emit_16(1974);
emit_16(2039);
emit_16(1975);
emit_16(2040);
emit_16(1976);
emit_16(2040);
emit_16(1975);
emit_16(2040);
emit_16(1976);
emit_16(2041);
emit_16(1977);
emit_16(2041);
emit_16(1976);
emit_16(2041);
emit_16(1977);
emit_16(2042);
emit_16(1978);
emit_16(2042);
emit_16(1977);
emit_16(2042);
emit_16(1978);
emit_16(2043);
emit_16(1979);
emit_16(2043);
emit_16(1978);
emit_16(2043);
emit_16(1979);
emit_16(2044);
emit_16(1980);
emit_16(2044);
emit_16(1979);
emit_16(2044);
emit_16(1980);
emit_16(2045);
emit_16(1981);
emit_16(2045);
emit_16(1980);
emit_16(2045);
emit_16(1981);
emit_16(2046);
emit_16(1982);
emit_16(2046);
emit_16(1981);
emit_16(2046);
emit_16(1982);
emit_16(2047);
emit_16(1983);
emit_16(2047);
emit_16(1982);
emit_16(2048);
emit_16(1984);
emit_16(2049);
emit_16(1985);
emit_16(2049);
emit_16(1984);
emit_16(2049);
emit_16(1985);
emit_16(2050);
emit_16(1986);
emit_16(2050);
emit_16(1985);
emit_16(2050);
emit_16(1986);
emit_16(2051);
emit_16(1987);
emit_16(2051);
emit_16(1986);
emit_16(2051);
emit_16(1987);
emit_16(2052);
emit_16(1988);
emit_16(2052);
emit_16(1987);
emit_16(2052);
emit_16(1988);
emit_16(2053);
emit_16(1989);
emit_16(2053);
emit_16(1988);
emit_16(2053);
emit_16(1989);
emit_16(2054);
emit_16(1990);
emit_16(2054);
emit_16(1989);
emit_16(2054);
emit_16(1990);
emit_16(2055);
emit_16(1991);
emit_16(2055);
emit_16(1990);
emit_16(2055);
emit_16(1991);
emit_16(2056);
emit_16(1992);
emit_16(2056);
emit_16(1991);
emit_16(2056);
emit_16(1992);
emit_16(2057);
emit_16(1993);
emit_16(2057);
emit_16(1992);
emit_16(2057);
emit_16(1993);
emit_16(2058);
emit_16(1994);
emit_16(2058);
emit_16(1993);
emit_16(2058);
emit_16(1994);
emit_16(2059);
emit_16(1995);
emit_16(2059);
emit_16(1994);
emit_16(2059);
emit_16(1995);
emit_16(2060);
emit_16(1996);
emit_16(2060);
emit_16(1995);
emit_16(2060);
emit_16(1996);
emit_16(2061);
emit_16(1997);
emit_16(2061);
emit_16(1996);
emit_16(2061);
emit_16(1997);
emit_16(2062);
emit_16(1998);
emit_16(2062);
emit_16(1997);
emit_16(2062);
emit_16(1998);
emit_16(2063);
emit_16(1999);
emit_16(2063);
emit_16(1998);
emit_16(2063);
emit_16(1999);
emit_16(2064);
emit_16(2000);
emit_16(2064);
emit_16(1999);
emit_16(2064);
emit_16(2000);
emit_16(2065);
emit_16(2001);
emit_16(2065);
emit_16(2000);
emit_16(2065);
emit_16(2001);
emit_16(2066);
emit_16(2002);
emit_16(2066);
emit_16(2001);
emit_16(2066);
emit_16(2002);
emit_16(2067);
emit_16(2003);
emit_16(2067);
emit_16(2002);
emit_16(2067);
emit_16(2003);
emit_16(2068);
emit_16(2004);
emit_16(2068);
emit_16(2003);
emit_16(2068);
emit_16(2004);
emit_16(2069);
emit_16(2005);
emit_16(2069);
emit_16(2004);
emit_16(2069);
emit_16(2005);
emit_16(2070);
emit_16(2006);
emit_16(2070);
emit_16(2005);
emit_16(2070);
emit_16(2006);
emit_16(2071);
emit_16(2007);
emit_16(2071);
emit_16(2006);
emit_16(2071);
emit_16(2007);
emit_16(2072);
emit_16(2008);
emit_16(2072);
emit_16(2007);
emit_16(2072);
emit_16(2008);
emit_16(2073);
emit_16(2009);
emit_16(2073);
emit_16(2008);
emit_16(2073);
emit_16(2009);
emit_16(2074);
emit_16(2010);
emit_16(2074);
emit_16(2009);
emit_16(2074);
emit_16(2010);
emit_16(2075);
emit_16(2011);
emit_16(2075);
emit_16(2010);
emit_16(2075);
emit_16(2011);
emit_16(2076);
emit_16(2012);
emit_16(2076);
emit_16(2011);
emit_16(2076);
emit_16(2012);
emit_16(2077);
emit_16(2013);
emit_16(2077);
emit_16(2012);
emit_16(2077);
emit_16(2013);
emit_16(2078);
emit_16(2014);
emit_16(2078);
emit_16(2013);
emit_16(2078);
emit_16(2014);
emit_16(2079);
emit_16(2015);
emit_16(2079);
emit_16(2014);
emit_16(2079);
emit_16(2015);
emit_16(2080);
emit_16(2016);
emit_16(2080);
emit_16(2015);
emit_16(2080);
emit_16(2016);
emit_16(2081);
emit_16(2017);
emit_16(2081);
emit_16(2016);
emit_16(2081);
emit_16(2017);
emit_16(2082);
emit_16(2018);
emit_16(2082);
emit_16(2017);
emit_16(2082);
emit_16(2018);
emit_16(2083);
emit_16(2019);
emit_16(2083);
emit_16(2018);
emit_16(2083);
emit_16(2019);
emit_16(2084);
emit_16(2020);
emit_16(2084);
emit_16(2019);
emit_16(2084);
emit_16(2020);
emit_16(2085);
emit_16(2021);
emit_16(2085);
emit_16(2020);
emit_16(2085);
emit_16(2021);
emit_16(2086);
emit_16(2022);
emit_16(2086);
emit_16(2021);
emit_16(2086);
emit_16(2022);
emit_16(2087);
emit_16(2023);
emit_16(2087);
emit_16(2022);
emit_16(2087);
emit_16(2023);
emit_16(2088);
emit_16(2024);
emit_16(2088);
emit_16(2023);
emit_16(2088);
emit_16(2024);
emit_16(2089);
emit_16(2025);
emit_16(2089);
emit_16(2024);
emit_16(2089);
emit_16(2025);
emit_16(2090);
emit_16(2026);
emit_16(2090);
emit_16(2025);
emit_16(2090);
emit_16(2026);
emit_16(2091);
emit_16(2027);
emit_16(2091);
emit_16(2026);
emit_16(2091);
emit_16(2027);
emit_16(2092);
emit_16(2028);
emit_16(2092);
emit_16(2027);
emit_16(2092);
emit_16(2028);
emit_16(2093);
emit_16(2029);
emit_16(2093);
emit_16(2028);
emit_16(2093);
emit_16(2029);
emit_16(2094);
emit_16(2030);
emit_16(2094);
emit_16(2029);
emit_16(2094);
emit_16(2030);
emit_16(2095);
emit_16(2031);
emit_16(2095);
emit_16(2030);
emit_16(2095);
emit_16(2031);
emit_16(2096);
emit_16(2032);
emit_16(2096);
emit_16(2031);
emit_16(2096);
emit_16(2032);
emit_16(2097);
emit_16(2033);
emit_16(2097);
emit_16(2032);
emit_16(2097);
emit_16(2033);
emit_16(2098);
emit_16(2034);
emit_16(2098);
emit_16(2033);
emit_16(2098);
emit_16(2034);
emit_16(2099);
emit_16(2035);
emit_16(2099);
emit_16(2034);
emit_16(2099);
emit_16(2035);
emit_16(2100);
emit_16(2036);
emit_16(2100);
emit_16(2035);
emit_16(2100);
emit_16(2036);
emit_16(2101);
emit_16(2037);
emit_16(2101);
emit_16(2036);
emit_16(2101);
emit_16(2037);
emit_16(2102);
emit_16(2038);
emit_16(2102);
emit_16(2037);
emit_16(2102);
emit_16(2038);
emit_16(2103);
emit_16(2039);
emit_16(2103);
emit_16(2038);
emit_16(2103);
emit_16(2039);
emit_16(2104);
emit_16(2040);
emit_16(2104);
emit_16(2039);
emit_16(2104);
emit_16(2040);
emit_16(2105);
emit_16(2041);
emit_16(2105);
emit_16(2040);
emit_16(2105);
emit_16(2041);
emit_16(2106);
emit_16(2042);
emit_16(2106);
emit_16(2041);
emit_16(2106);
emit_16(2042);
emit_16(2107);
emit_16(2043);
emit_16(2107);
emit_16(2042);
emit_16(2107);
emit_16(2043);
emit_16(2108);
emit_16(2044);
emit_16(2108);
emit_16(2043);
emit_16(2108);
emit_16(2044);
emit_16(2109);
emit_16(2045);
emit_16(2109);
emit_16(2044);
emit_16(2109);
emit_16(2045);
emit_16(2110);
emit_16(2046);
emit_16(2110);
emit_16(2045);
emit_16(2110);
emit_16(2046);
emit_16(2111);
emit_16(2047);
emit_16(2111);
emit_16(2046);
emit_16(2112);
emit_16(2048);
emit_16(2113);
emit_16(2049);
emit_16(2113);
emit_16(2048);
emit_16(2113);
emit_16(2049);
emit_16(2114);
emit_16(2050);
emit_16(2114);
emit_16(2049);
emit_16(2114);
emit_16(2050);
emit_16(2115);
emit_16(2051);
emit_16(2115);
emit_16(2050);
emit_16(2115);
emit_16(2051);
emit_16(2116);
emit_16(2052);
emit_16(2116);
emit_16(2051);
emit_16(2116);
emit_16(2052);
emit_16(2117);
emit_16(2053);
emit_16(2117);
emit_16(2052);
emit_16(2117);
emit_16(2053);
emit_16(2118);
emit_16(2054);
emit_16(2118);
emit_16(2053);
emit_16(2118);
emit_16(2054);
emit_16(2119);
emit_16(2055);
emit_16(2119);
emit_16(2054);
emit_16(2119);
emit_16(2055);
emit_16(2120);
emit_16(2056);
emit_16(2120);
emit_16(2055);
emit_16(2120);
emit_16(2056);
emit_16(2121);
emit_16(2057);
emit_16(2121);
emit_16(2056);
emit_16(2121);
emit_16(2057);
emit_16(2122);
emit_16(2058);
emit_16(2122);
emit_16(2057);
emit_16(2122);
emit_16(2058);
emit_16(2123);
emit_16(2059);
emit_16(2123);
emit_16(2058);
emit_16(2123);
emit_16(2059);
emit_16(2124);
emit_16(2060);
emit_16(2124);
emit_16(2059);
emit_16(2124);
emit_16(2060);
emit_16(2125);
emit_16(2061);
emit_16(2125);
emit_16(2060);
emit_16(2125);
emit_16(2061);
emit_16(2126);
emit_16(2062);
emit_16(2126);
emit_16(2061);
emit_16(2126);
emit_16(2062);
emit_16(2127);
emit_16(2063);
emit_16(2127);
emit_16(2062);
emit_16(2127);
emit_16(2063);
emit_16(2128);
emit_16(2064);
emit_16(2128);
emit_16(2063);
emit_16(2128);
emit_16(2064);
emit_16(2129);
emit_16(2065);
emit_16(2129);
emit_16(2064);
emit_16(2129);
emit_16(2065);
emit_16(2130);
emit_16(2066);
emit_16(2130);
emit_16(2065);
emit_16(2130);
emit_16(2066);
emit_16(2131);
emit_16(2067);
emit_16(2131);
emit_16(2066);
emit_16(2131);
emit_16(2067);
emit_16(2132);
emit_16(2068);
emit_16(2132);
emit_16(2067);
emit_16(2132);
emit_16(2068);
emit_16(2133);
emit_16(2069);
emit_16(2133);
emit_16(2068);
emit_16(2133);
emit_16(2069);
emit_16(2134);
emit_16(2070);
emit_16(2134);
emit_16(2069);
emit_16(2134);
emit_16(2070);
emit_16(2135);
emit_16(2071);
emit_16(2135);
emit_16(2070);
emit_16(2135);
emit_16(2071);
emit_16(2136);
emit_16(2072);
emit_16(2136);
emit_16(2071);
emit_16(2136);
emit_16(2072);
emit_16(2137);
emit_16(2073);
emit_16(2137);
emit_16(2072);
emit_16(2137);
emit_16(2073);
emit_16(2138);
emit_16(2074);
emit_16(2138);
emit_16(2073);
emit_16(2138);
emit_16(2074);
emit_16(2139);
emit_16(2075);
emit_16(2139);
emit_16(2074);
emit_16(2139);
emit_16(2075);
emit_16(2140);
emit_16(2076);
emit_16(2140);
emit_16(2075);
emit_16(2140);
emit_16(2076);
emit_16(2141);
emit_16(2077);
emit_16(2141);
emit_16(2076);
emit_16(2141);
emit_16(2077);
emit_16(2142);
emit_16(2078);
emit_16(2142);
emit_16(2077);
emit_16(2142);
emit_16(2078);
emit_16(2143);
emit_16(2079);
emit_16(2143);
emit_16(2078);
emit_16(2143);
emit_16(2079);
emit_16(2144);
emit_16(2080);
emit_16(2144);
emit_16(2079);
emit_16(2144);
emit_16(2080);
emit_16(2145);
emit_16(2081);
emit_16(2145);
emit_16(2080);
emit_16(2145);
emit_16(2081);
emit_16(2146);
emit_16(2082);
emit_16(2146);
emit_16(2081);
emit_16(2146);
emit_16(2082);
emit_16(2147);
emit_16(2083);
emit_16(2147);
emit_16(2082);
emit_16(2147);
emit_16(2083);
emit_16(2148);
emit_16(2084);
emit_16(2148);
emit_16(2083);
emit_16(2148);
emit_16(2084);
emit_16(2149);
emit_16(2085);
emit_16(2149);
emit_16(2084);
emit_16(2149);
emit_16(2085);
emit_16(2150);
emit_16(2086);
emit_16(2150);
emit_16(2085);
emit_16(2150);
emit_16(2086);
emit_16(2151);
emit_16(2087);
emit_16(2151);
emit_16(2086);
emit_16(2151);
emit_16(2087);
emit_16(2152);
emit_16(2088);
emit_16(2152);
emit_16(2087);
emit_16(2152);
emit_16(2088);
emit_16(2153);
emit_16(2089);
emit_16(2153);
emit_16(2088);
emit_16(2153);
emit_16(2089);
emit_16(2154);
emit_16(2090);
emit_16(2154);
emit_16(2089);
emit_16(2154);
emit_16(2090);
emit_16(2155);
emit_16(2091);
emit_16(2155);
emit_16(2090);
emit_16(2155);
emit_16(2091);
emit_16(2156);
emit_16(2092);
emit_16(2156);
emit_16(2091);
emit_16(2156);
emit_16(2092);
emit_16(2157);
emit_16(2093);
emit_16(2157);
emit_16(2092);
emit_16(2157);
emit_16(2093);
emit_16(2158);
emit_16(2094);
emit_16(2158);
emit_16(2093);
emit_16(2158);
emit_16(2094);
emit_16(2159);
emit_16(2095);
emit_16(2159);
emit_16(2094);
emit_16(2159);
emit_16(2095);
emit_16(2160);
emit_16(2096);
emit_16(2160);
emit_16(2095);
emit_16(2160);
emit_16(2096);
emit_16(2161);
emit_16(2097);
emit_16(2161);
emit_16(2096);
emit_16(2161);
emit_16(2097);
emit_16(2162);
emit_16(2098);
emit_16(2162);
emit_16(2097);
emit_16(2162);
emit_16(2098);
emit_16(2163);
emit_16(2099);
emit_16(2163);
emit_16(2098);
emit_16(2163);
emit_16(2099);
emit_16(2164);
emit_16(2100);
emit_16(2164);
emit_16(2099);
emit_16(2164);
emit_16(2100);
emit_16(2165);
emit_16(2101);
emit_16(2165);
emit_16(2100);
emit_16(2165);
emit_16(2101);
emit_16(2166);
emit_16(2102);
emit_16(2166);
emit_16(2101);
emit_16(2166);
emit_16(2102);
emit_16(2167);
emit_16(2103);
emit_16(2167);
emit_16(2102);
emit_16(2167);
emit_16(2103);
emit_16(2168);
emit_16(2104);
emit_16(2168);
emit_16(2103);
emit_16(2168);
emit_16(2104);
emit_16(2169);
emit_16(2105);
emit_16(2169);
emit_16(2104);
emit_16(2169);
emit_16(2105);
emit_16(2170);
emit_16(2106);
emit_16(2170);
emit_16(2105);
emit_16(2170);
emit_16(2106);
emit_16(2171);
emit_16(2107);
emit_16(2171);
emit_16(2106);
emit_16(2171);
emit_16(2107);
emit_16(2172);
emit_16(2108);
emit_16(2172);
emit_16(2107);
emit_16(2172);
emit_16(2108);
emit_16(2173);
emit_16(2109);
emit_16(2173);
emit_16(2108);
emit_16(2173);
emit_16(2109);
emit_16(2174);
emit_16(2110);
emit_16(2174);
emit_16(2109);
emit_16(2174);
emit_16(2110);
emit_16(2175);
emit_16(2111);
emit_16(2175);
emit_16(2110);
emit_16(2176);
emit_16(2112);
emit_16(2177);
emit_16(2113);
emit_16(2177);
emit_16(2112);
emit_16(2177);
emit_16(2113);
emit_16(2178);
emit_16(2114);
emit_16(2178);
emit_16(2113);
emit_16(2178);
emit_16(2114);
emit_16(2179);
emit_16(2115);
emit_16(2179);
emit_16(2114);
emit_16(2179);
emit_16(2115);
emit_16(2180);
emit_16(2116);
emit_16(2180);
emit_16(2115);
emit_16(2180);
emit_16(2116);
emit_16(2181);
emit_16(2117);
emit_16(2181);
emit_16(2116);
emit_16(2181);
emit_16(2117);
emit_16(2182);
emit_16(2118);
emit_16(2182);
emit_16(2117);
emit_16(2182);
emit_16(2118);
emit_16(2183);
emit_16(2119);
emit_16(2183);
emit_16(2118);
emit_16(2183);
emit_16(2119);
emit_16(2184);
emit_16(2120);
emit_16(2184);
emit_16(2119);
emit_16(2184);
emit_16(2120);
emit_16(2185);
emit_16(2121);
emit_16(2185);
emit_16(2120);
emit_16(2185);
emit_16(2121);
emit_16(2186);
emit_16(2122);
emit_16(2186);
emit_16(2121);
emit_16(2186);
emit_16(2122);
emit_16(2187);
emit_16(2123);
emit_16(2187);
emit_16(2122);
emit_16(2187);
emit_16(2123);
emit_16(2188);
emit_16(2124);
emit_16(2188);
emit_16(2123);
emit_16(2188);
emit_16(2124);
emit_16(2189);
emit_16(2125);
emit_16(2189);
emit_16(2124);
emit_16(2189);
emit_16(2125);
emit_16(2190);
emit_16(2126);
emit_16(2190);
emit_16(2125);
emit_16(2190);
emit_16(2126);
emit_16(2191);
emit_16(2127);
emit_16(2191);
emit_16(2126);
emit_16(2191);
emit_16(2127);
emit_16(2192);
emit_16(2128);
emit_16(2192);
emit_16(2127);
emit_16(2192);
emit_16(2128);
emit_16(2193);
emit_16(2129);
emit_16(2193);
emit_16(2128);
emit_16(2193);
emit_16(2129);
emit_16(2194);
emit_16(2130);
emit_16(2194);
emit_16(2129);
emit_16(2194);
emit_16(2130);
emit_16(2195);
emit_16(2131);
emit_16(2195);
emit_16(2130);
emit_16(2195);
emit_16(2131);
emit_16(2196);
emit_16(2132);
emit_16(2196);
emit_16(2131);
emit_16(2196);
emit_16(2132);
emit_16(2197);
emit_16(2133);
emit_16(2197);
emit_16(2132);
emit_16(2197);
emit_16(2133);
emit_16(2198);
emit_16(2134);
emit_16(2198);
emit_16(2133);
emit_16(2198);
emit_16(2134);
emit_16(2199);
emit_16(2135);
emit_16(2199);
emit_16(2134);
emit_16(2199);
emit_16(2135);
emit_16(2200);
emit_16(2136);
emit_16(2200);
emit_16(2135);
emit_16(2200);
emit_16(2136);
emit_16(2201);
emit_16(2137);
emit_16(2201);
emit_16(2136);
emit_16(2201);
emit_16(2137);
emit_16(2202);
emit_16(2138);
emit_16(2202);
emit_16(2137);
emit_16(2202);
emit_16(2138);
emit_16(2203);
emit_16(2139);
emit_16(2203);
emit_16(2138);
emit_16(2203);
emit_16(2139);
emit_16(2204);
emit_16(2140);
emit_16(2204);
emit_16(2139);
emit_16(2204);
emit_16(2140);
emit_16(2205);
emit_16(2141);
emit_16(2205);
emit_16(2140);
emit_16(2205);
emit_16(2141);
emit_16(2206);
emit_16(2142);
emit_16(2206);
emit_16(2141);
emit_16(2206);
emit_16(2142);
emit_16(2207);
emit_16(2143);
emit_16(2207);
emit_16(2142);
emit_16(2207);
emit_16(2143);
emit_16(2208);
emit_16(2144);
emit_16(2208);
emit_16(2143);
emit_16(2208);
emit_16(2144);
emit_16(2209);
emit_16(2145);
emit_16(2209);
emit_16(2144);
emit_16(2209);
emit_16(2145);
emit_16(2210);
emit_16(2146);
emit_16(2210);
emit_16(2145);
emit_16(2210);
emit_16(2146);
emit_16(2211);
emit_16(2147);
emit_16(2211);
emit_16(2146);
emit_16(2211);
emit_16(2147);
emit_16(2212);
emit_16(2148);
emit_16(2212);
emit_16(2147);
emit_16(2212);
emit_16(2148);
emit_16(2213);
emit_16(2149);
emit_16(2213);
emit_16(2148);
emit_16(2213);
emit_16(2149);
emit_16(2214);
emit_16(2150);
emit_16(2214);
emit_16(2149);
emit_16(2214);
emit_16(2150);
emit_16(2215);
emit_16(2151);
emit_16(2215);
emit_16(2150);
emit_16(2215);
emit_16(2151);
emit_16(2216);
emit_16(2152);
emit_16(2216);
emit_16(2151);
emit_16(2216);
emit_16(2152);
emit_16(2217);
emit_16(2153);
emit_16(2217);
emit_16(2152);
emit_16(2217);
emit_16(2153);
emit_16(2218);
emit_16(2154);
emit_16(2218);
emit_16(2153);
emit_16(2218);
emit_16(2154);
emit_16(2219);
emit_16(2155);
emit_16(2219);
emit_16(2154);
emit_16(2219);
emit_16(2155);
emit_16(2220);
emit_16(2156);
emit_16(2220);
emit_16(2155);
emit_16(2220);
emit_16(2156);
emit_16(2221);
emit_16(2157);
emit_16(2221);
emit_16(2156);
emit_16(2221);
emit_16(2157);
emit_16(2222);
emit_16(2158);
emit_16(2222);
emit_16(2157);
emit_16(2222);
emit_16(2158);
emit_16(2223);
emit_16(2159);
emit_16(2223);
emit_16(2158);
emit_16(2223);
emit_16(2159);
emit_16(2224);
emit_16(2160);
emit_16(2224);
emit_16(2159);
emit_16(2224);
emit_16(2160);
emit_16(2225);
emit_16(2161);
emit_16(2225);
emit_16(2160);
emit_16(2225);
emit_16(2161);
emit_16(2226);
emit_16(2162);
emit_16(2226);
emit_16(2161);
emit_16(2226);
emit_16(2162);
emit_16(2227);
emit_16(2163);
emit_16(2227);
emit_16(2162);
emit_16(2227);
emit_16(2163);
emit_16(2228);
emit_16(2164);
emit_16(2228);
emit_16(2163);
emit_16(2228);
emit_16(2164);
emit_16(2229);
emit_16(2165);
emit_16(2229);
emit_16(2164);
emit_16(2229);
emit_16(2165);
emit_16(2230);
emit_16(2166);
emit_16(2230);
emit_16(2165);
emit_16(2230);
emit_16(2166);
emit_16(2231);
emit_16(2167);
emit_16(2231);
emit_16(2166);
emit_16(2231);
emit_16(2167);
emit_16(2232);
emit_16(2168);
emit_16(2232);
emit_16(2167);
emit_16(2232);
emit_16(2168);
emit_16(2233);
emit_16(2169);
emit_16(2233);
emit_16(2168);
emit_16(2233);
emit_16(2169);
emit_16(2234);
emit_16(2170);
emit_16(2234);
emit_16(2169);
emit_16(2234);
emit_16(2170);
emit_16(2235);
emit_16(2171);
emit_16(2235);
emit_16(2170);
emit_16(2235);
emit_16(2171);
emit_16(2236);
emit_16(2172);
emit_16(2236);
emit_16(2171);
emit_16(2236);
emit_16(2172);
emit_16(2237);
emit_16(2173);
emit_16(2237);
emit_16(2172);
emit_16(2237);
emit_16(2173);
emit_16(2238);
emit_16(2174);
emit_16(2238);
emit_16(2173);
emit_16(2238);
emit_16(2174);
emit_16(2239);
emit_16(2175);
emit_16(2239);
emit_16(2174);
emit_start(Landscape08Idx)
emit_16(0);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(2);
emit_16(1);
emit_16(2);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(4);
emit_16(3);
emit_16(4);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(6);
emit_16(5);
emit_16(6);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(8);
emit_16(7);
emit_16(8);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(10);
emit_16(9);
emit_16(10);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(12);
emit_16(11);
emit_16(12);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(14);
emit_16(13);
emit_16(14);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(16);
emit_16(15);
emit_16(16);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(18);
emit_16(17);
emit_16(18);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(20);
emit_16(19);
emit_16(20);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(22);
emit_16(21);
emit_16(22);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(24);
emit_16(23);
emit_16(24);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(26);
emit_16(25);
emit_16(26);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(28);
emit_16(27);
emit_16(28);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(30);
emit_16(29);
emit_16(30);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(32);
emit_16(31);
emit_16(32);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(34);
emit_16(33);
emit_16(34);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(36);
emit_16(35);
emit_16(36);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(38);
emit_16(37);
emit_16(38);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(40);
emit_16(39);
emit_16(40);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(42);
emit_16(41);
emit_16(42);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(44);
emit_16(43);
emit_16(44);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(46);
emit_16(45);
emit_16(46);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(48);
emit_16(47);
emit_16(48);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(50);
emit_16(49);
emit_16(50);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(52);
emit_16(51);
emit_16(52);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(54);
emit_16(53);
emit_16(54);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(56);
emit_16(55);
emit_16(56);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(58);
emit_16(57);
emit_16(58);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(60);
emit_16(59);
emit_16(60);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(62);
emit_16(61);
emit_16(62);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(64);
emit_16(63);
emit_16(64);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(66);
emit_16(65);
emit_16(66);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(68);
emit_16(67);
emit_16(68);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(70);
emit_16(69);
emit_16(70);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(72);
emit_16(71);
emit_16(72);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(74);
emit_16(73);
emit_16(74);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(76);
emit_16(75);
emit_16(76);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(78);
emit_16(77);
emit_16(78);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(80);
emit_16(79);
emit_16(80);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(82);
emit_16(81);
emit_16(82);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(84);
emit_16(83);
emit_16(84);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(86);
emit_16(85);
emit_16(86);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(88);
emit_16(87);
emit_16(88);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(90);
emit_16(89);
emit_16(90);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(92);
emit_16(91);
emit_16(92);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(94);
emit_16(93);
emit_16(94);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(96);
emit_16(95);
emit_16(96);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(98);
emit_16(97);
emit_16(98);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(100);
emit_16(99);
emit_16(100);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(102);
emit_16(101);
emit_16(102);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(104);
emit_16(103);
emit_16(104);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(106);
emit_16(105);
emit_16(106);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(108);
emit_16(107);
emit_16(108);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(110);
emit_16(109);
emit_16(110);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(112);
emit_16(111);
emit_16(112);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(114);
emit_16(113);
emit_16(114);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(116);
emit_16(115);
emit_16(116);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(118);
emit_16(117);
emit_16(118);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(120);
emit_16(119);
emit_16(120);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(122);
emit_16(121);
emit_16(122);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(124);
emit_16(123);
emit_16(124);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(126);
emit_16(125);
emit_16(126);
emit_16(127);
emit_16(128);
emit_16(129);
emit_16(128);
emit_16(127);
emit_16(128);
emit_16(129);
emit_16(130);
emit_16(131);
emit_16(130);
emit_16(129);
emit_16(132);
emit_16(0);
emit_16(133);
emit_16(2);
emit_16(133);
emit_16(0);
emit_16(133);
emit_16(2);
emit_16(134);
emit_16(4);
emit_16(134);
emit_16(2);
emit_16(134);
emit_16(4);
emit_16(135);
emit_16(6);
emit_16(135);
emit_16(4);
emit_16(135);
emit_16(6);
emit_16(136);
emit_16(8);
emit_16(136);
emit_16(6);
emit_16(136);
emit_16(8);
emit_16(137);
emit_16(10);
emit_16(137);
emit_16(8);
emit_16(137);
emit_16(10);
emit_16(138);
emit_16(12);
emit_16(138);
emit_16(10);
emit_16(138);
emit_16(12);
emit_16(139);
emit_16(14);
emit_16(139);
emit_16(12);
emit_16(139);
emit_16(14);
emit_16(140);
emit_16(16);
emit_16(140);
emit_16(14);
emit_16(140);
emit_16(16);
emit_16(141);
emit_16(18);
emit_16(141);
emit_16(16);
emit_16(141);
emit_16(18);
emit_16(142);
emit_16(20);
emit_16(142);
emit_16(18);
emit_16(142);
emit_16(20);
emit_16(143);
emit_16(22);
emit_16(143);
emit_16(20);
emit_16(143);
emit_16(22);
emit_16(144);
emit_16(24);
emit_16(144);
emit_16(22);
emit_16(144);
emit_16(24);
emit_16(145);
emit_16(26);
emit_16(145);
emit_16(24);
emit_16(145);
emit_16(26);
emit_16(146);
emit_16(28);
emit_16(146);
emit_16(26);
emit_16(146);
emit_16(28);
emit_16(147);
emit_16(30);
emit_16(147);
emit_16(28);
emit_16(147);
emit_16(30);
emit_16(148);
emit_16(32);
emit_16(148);
emit_16(30);
emit_16(148);
emit_16(32);
emit_16(149);
emit_16(34);
emit_16(149);
emit_16(32);
emit_16(149);
emit_16(34);
emit_16(150);
emit_16(36);
emit_16(150);
emit_16(34);
emit_16(150);
emit_16(36);
emit_16(151);
emit_16(38);
emit_16(151);
emit_16(36);
emit_16(151);
emit_16(38);
emit_16(152);
emit_16(40);
emit_16(152);
emit_16(38);
emit_16(152);
emit_16(40);
emit_16(153);
emit_16(42);
emit_16(153);
emit_16(40);
emit_16(153);
emit_16(42);
emit_16(154);
emit_16(44);
emit_16(154);
emit_16(42);
emit_16(154);
emit_16(44);
emit_16(155);
emit_16(46);
emit_16(155);
emit_16(44);
emit_16(155);
emit_16(46);
emit_16(156);
emit_16(48);
emit_16(156);
emit_16(46);
emit_16(156);
emit_16(48);
emit_16(157);
emit_16(50);
emit_16(157);
emit_16(48);
emit_16(157);
emit_16(50);
emit_16(158);
emit_16(52);
emit_16(158);
emit_16(50);
emit_16(158);
emit_16(52);
emit_16(159);
emit_16(54);
emit_16(159);
emit_16(52);
emit_16(159);
emit_16(54);
emit_16(160);
emit_16(56);
emit_16(160);
emit_16(54);
emit_16(160);
emit_16(56);
emit_16(161);
emit_16(58);
emit_16(161);
emit_16(56);
emit_16(161);
emit_16(58);
emit_16(162);
emit_16(60);
emit_16(162);
emit_16(58);
emit_16(162);
emit_16(60);
emit_16(163);
emit_16(62);
emit_16(163);
emit_16(60);
emit_16(163);
emit_16(62);
emit_16(164);
emit_16(64);
emit_16(164);
emit_16(62);
emit_16(164);
emit_16(64);
emit_16(165);
emit_16(66);
emit_16(165);
emit_16(64);
emit_16(165);
emit_16(66);
emit_16(166);
emit_16(68);
emit_16(166);
emit_16(66);
emit_16(166);
emit_16(68);
emit_16(167);
emit_16(70);
emit_16(167);
emit_16(68);
emit_16(167);
emit_16(70);
emit_16(168);
emit_16(72);
emit_16(168);
emit_16(70);
emit_16(168);
emit_16(72);
emit_16(169);
emit_16(74);
emit_16(169);
emit_16(72);
emit_16(169);
emit_16(74);
emit_16(170);
emit_16(76);
emit_16(170);
emit_16(74);
emit_16(170);
emit_16(76);
emit_16(171);
emit_16(78);
emit_16(171);
emit_16(76);
emit_16(171);
emit_16(78);
emit_16(172);
emit_16(80);
emit_16(172);
emit_16(78);
emit_16(172);
emit_16(80);
emit_16(173);
emit_16(82);
emit_16(173);
emit_16(80);
emit_16(173);
emit_16(82);
emit_16(174);
emit_16(84);
emit_16(174);
emit_16(82);
emit_16(174);
emit_16(84);
emit_16(175);
emit_16(86);
emit_16(175);
emit_16(84);
emit_16(175);
emit_16(86);
emit_16(176);
emit_16(88);
emit_16(176);
emit_16(86);
emit_16(176);
emit_16(88);
emit_16(177);
emit_16(90);
emit_16(177);
emit_16(88);
emit_16(177);
emit_16(90);
emit_16(178);
emit_16(92);
emit_16(178);
emit_16(90);
emit_16(178);
emit_16(92);
emit_16(179);
emit_16(94);
emit_16(179);
emit_16(92);
emit_16(179);
emit_16(94);
emit_16(180);
emit_16(96);
emit_16(180);
emit_16(94);
emit_16(180);
emit_16(96);
emit_16(181);
emit_16(98);
emit_16(181);
emit_16(96);
emit_16(181);
emit_16(98);
emit_16(182);
emit_16(100);
emit_16(182);
emit_16(98);
emit_16(182);
emit_16(100);
emit_16(183);
emit_16(102);
emit_16(183);
emit_16(100);
emit_16(183);
emit_16(102);
emit_16(184);
emit_16(104);
emit_16(184);
emit_16(102);
emit_16(184);
emit_16(104);
emit_16(185);
emit_16(106);
emit_16(185);
emit_16(104);
emit_16(185);
emit_16(106);
emit_16(186);
emit_16(108);
emit_16(186);
emit_16(106);
emit_16(186);
emit_16(108);
emit_16(187);
emit_16(110);
emit_16(187);
emit_16(108);
emit_16(187);
emit_16(110);
emit_16(188);
emit_16(112);
emit_16(188);
emit_16(110);
emit_16(188);
emit_16(112);
emit_16(189);
emit_16(114);
emit_16(189);
emit_16(112);
emit_16(189);
emit_16(114);
emit_16(190);
emit_16(116);
emit_16(190);
emit_16(114);
emit_16(190);
emit_16(116);
emit_16(191);
emit_16(118);
emit_16(191);
emit_16(116);
emit_16(191);
emit_16(118);
emit_16(192);
emit_16(120);
emit_16(192);
emit_16(118);
emit_16(192);
emit_16(120);
emit_16(193);
emit_16(122);
emit_16(193);
emit_16(120);
emit_16(193);
emit_16(122);
emit_16(194);
emit_16(124);
emit_16(194);
emit_16(122);
emit_16(194);
emit_16(124);
emit_16(195);
emit_16(126);
emit_16(195);
emit_16(124);
emit_16(195);
emit_16(126);
emit_16(196);
emit_16(128);
emit_16(196);
emit_16(126);
emit_16(196);
emit_16(128);
emit_16(197);
emit_16(130);
emit_16(197);
emit_16(128);
emit_16(198);
emit_16(132);
emit_16(199);
emit_16(133);
emit_16(199);
emit_16(132);
emit_16(199);
emit_16(133);
emit_16(200);
emit_16(134);
emit_16(200);
emit_16(133);
emit_16(200);
emit_16(134);
emit_16(201);
emit_16(135);
emit_16(201);
emit_16(134);
emit_16(201);
emit_16(135);
emit_16(202);
emit_16(136);
emit_16(202);
emit_16(135);
emit_16(202);
emit_16(136);
emit_16(203);
emit_16(137);
emit_16(203);
emit_16(136);
emit_16(203);
emit_16(137);
emit_16(204);
emit_16(138);
emit_16(204);
emit_16(137);
emit_16(204);
emit_16(138);
emit_16(205);
emit_16(139);
emit_16(205);
emit_16(138);
emit_16(205);
emit_16(139);
emit_16(206);
emit_16(140);
emit_16(206);
emit_16(139);
emit_16(206);
emit_16(140);
emit_16(207);
emit_16(141);
emit_16(207);
emit_16(140);
emit_16(207);
emit_16(141);
emit_16(208);
emit_16(142);
emit_16(208);
emit_16(141);
emit_16(208);
emit_16(142);
emit_16(209);
emit_16(143);
emit_16(209);
emit_16(142);
emit_16(209);
emit_16(143);
emit_16(210);
emit_16(144);
emit_16(210);
emit_16(143);
emit_16(210);
emit_16(144);
emit_16(211);
emit_16(145);
emit_16(211);
emit_16(144);
emit_16(211);
emit_16(145);
emit_16(212);
emit_16(146);
emit_16(212);
emit_16(145);
emit_16(212);
emit_16(146);
emit_16(213);
emit_16(147);
emit_16(213);
emit_16(146);
emit_16(213);
emit_16(147);
emit_16(214);
emit_16(148);
emit_16(214);
emit_16(147);
emit_16(214);
emit_16(148);
emit_16(215);
emit_16(149);
emit_16(215);
emit_16(148);
emit_16(215);
emit_16(149);
emit_16(216);
emit_16(150);
emit_16(216);
emit_16(149);
emit_16(216);
emit_16(150);
emit_16(217);
emit_16(151);
emit_16(217);
emit_16(150);
emit_16(217);
emit_16(151);
emit_16(218);
emit_16(152);
emit_16(218);
emit_16(151);
emit_16(218);
emit_16(152);
emit_16(219);
emit_16(153);
emit_16(219);
emit_16(152);
emit_16(219);
emit_16(153);
emit_16(220);
emit_16(154);
emit_16(220);
emit_16(153);
emit_16(220);
emit_16(154);
emit_16(221);
emit_16(155);
emit_16(221);
emit_16(154);
emit_16(221);
emit_16(155);
emit_16(222);
emit_16(156);
emit_16(222);
emit_16(155);
emit_16(222);
emit_16(156);
emit_16(223);
emit_16(157);
emit_16(223);
emit_16(156);
emit_16(223);
emit_16(157);
emit_16(224);
emit_16(158);
emit_16(224);
emit_16(157);
emit_16(224);
emit_16(158);
emit_16(225);
emit_16(159);
emit_16(225);
emit_16(158);
emit_16(225);
emit_16(159);
emit_16(226);
emit_16(160);
emit_16(226);
emit_16(159);
emit_16(226);
emit_16(160);
emit_16(227);
emit_16(161);
emit_16(227);
emit_16(160);
emit_16(227);
emit_16(161);
emit_16(228);
emit_16(162);
emit_16(228);
emit_16(161);
emit_16(228);
emit_16(162);
emit_16(229);
emit_16(163);
emit_16(229);
emit_16(162);
emit_16(229);
emit_16(163);
emit_16(230);
emit_16(164);
emit_16(230);
emit_16(163);
emit_16(230);
emit_16(164);
emit_16(231);
emit_16(165);
emit_16(231);
emit_16(164);
emit_16(231);
emit_16(165);
emit_16(232);
emit_16(166);
emit_16(232);
emit_16(165);
emit_16(232);
emit_16(166);
emit_16(233);
emit_16(167);
emit_16(233);
emit_16(166);
emit_16(233);
emit_16(167);
emit_16(234);
emit_16(168);
emit_16(234);
emit_16(167);
emit_16(234);
emit_16(168);
emit_16(235);
emit_16(169);
emit_16(235);
emit_16(168);
emit_16(235);
emit_16(169);
emit_16(236);
emit_16(170);
emit_16(236);
emit_16(169);
emit_16(236);
emit_16(170);
emit_16(237);
emit_16(171);
emit_16(237);
emit_16(170);
emit_16(237);
emit_16(171);
emit_16(238);
emit_16(172);
emit_16(238);
emit_16(171);
emit_16(238);
emit_16(172);
emit_16(239);
emit_16(173);
emit_16(239);
emit_16(172);
emit_16(239);
emit_16(173);
emit_16(240);
emit_16(174);
emit_16(240);
emit_16(173);
emit_16(240);
emit_16(174);
emit_16(241);
emit_16(175);
emit_16(241);
emit_16(174);
emit_16(241);
emit_16(175);
emit_16(242);
emit_16(176);
emit_16(242);
emit_16(175);
emit_16(242);
emit_16(176);
emit_16(243);
emit_16(177);
emit_16(243);
emit_16(176);
emit_16(243);
emit_16(177);
emit_16(244);
emit_16(178);
emit_16(244);
emit_16(177);
emit_16(244);
emit_16(178);
emit_16(245);
emit_16(179);
emit_16(245);
emit_16(178);
emit_16(245);
emit_16(179);
emit_16(246);
emit_16(180);
emit_16(246);
emit_16(179);
emit_16(246);
emit_16(180);
emit_16(247);
emit_16(181);
emit_16(247);
emit_16(180);
emit_16(247);
emit_16(181);
emit_16(248);
emit_16(182);
emit_16(248);
emit_16(181);
emit_16(248);
emit_16(182);
emit_16(249);
emit_16(183);
emit_16(249);
emit_16(182);
emit_16(249);
emit_16(183);
emit_16(250);
emit_16(184);
emit_16(250);
emit_16(183);
emit_16(250);
emit_16(184);
emit_16(251);
emit_16(185);
emit_16(251);
emit_16(184);
emit_16(251);
emit_16(185);
emit_16(252);
emit_16(186);
emit_16(252);
emit_16(185);
emit_16(252);
emit_16(186);
emit_16(253);
emit_16(187);
emit_16(253);
emit_16(186);
emit_16(253);
emit_16(187);
emit_16(254);
emit_16(188);
emit_16(254);
emit_16(187);
emit_16(254);
emit_16(188);
emit_16(255);
emit_16(189);
emit_16(255);
emit_16(188);
emit_16(255);
emit_16(189);
emit_16(256);
emit_16(190);
emit_16(256);
emit_16(189);
emit_16(256);
emit_16(190);
emit_16(257);
emit_16(191);
emit_16(257);
emit_16(190);
emit_16(257);
emit_16(191);
emit_16(258);
emit_16(192);
emit_16(258);
emit_16(191);
emit_16(258);
emit_16(192);
emit_16(259);
emit_16(193);
emit_16(259);
emit_16(192);
emit_16(259);
emit_16(193);
emit_16(260);
emit_16(194);
emit_16(260);
emit_16(193);
emit_16(260);
emit_16(194);
emit_16(261);
emit_16(195);
emit_16(261);
emit_16(194);
emit_16(261);
emit_16(195);
emit_16(262);
emit_16(196);
emit_16(262);
emit_16(195);
emit_16(262);
emit_16(196);
emit_16(263);
emit_16(197);
emit_16(263);
emit_16(196);
emit_16(264);
emit_16(198);
emit_16(265);
emit_16(199);
emit_16(265);
emit_16(198);
emit_16(265);
emit_16(199);
emit_16(266);
emit_16(200);
emit_16(266);
emit_16(199);
emit_16(266);
emit_16(200);
emit_16(267);
emit_16(201);
emit_16(267);
emit_16(200);
emit_16(267);
emit_16(201);
emit_16(268);
emit_16(202);
emit_16(268);
emit_16(201);
emit_16(268);
emit_16(202);
emit_16(269);
emit_16(203);
emit_16(269);
emit_16(202);
emit_16(269);
emit_16(203);
emit_16(270);
emit_16(204);
emit_16(270);
emit_16(203);
emit_16(270);
emit_16(204);
emit_16(271);
emit_16(205);
emit_16(271);
emit_16(204);
emit_16(271);
emit_16(205);
emit_16(272);
emit_16(206);
emit_16(272);
emit_16(205);
emit_16(272);
emit_16(206);
emit_16(273);
emit_16(207);
emit_16(273);
emit_16(206);
emit_16(273);
emit_16(207);
emit_16(274);
emit_16(208);
emit_16(274);
emit_16(207);
emit_16(274);
emit_16(208);
emit_16(275);
emit_16(209);
emit_16(275);
emit_16(208);
emit_16(275);
emit_16(209);
emit_16(276);
emit_16(210);
emit_16(276);
emit_16(209);
emit_16(276);
emit_16(210);
emit_16(277);
emit_16(211);
emit_16(277);
emit_16(210);
emit_16(277);
emit_16(211);
emit_16(278);
emit_16(212);
emit_16(278);
emit_16(211);
emit_16(278);
emit_16(212);
emit_16(279);
emit_16(213);
emit_16(279);
emit_16(212);
emit_16(279);
emit_16(213);
emit_16(280);
emit_16(214);
emit_16(280);
emit_16(213);
emit_16(280);
emit_16(214);
emit_16(281);
emit_16(215);
emit_16(281);
emit_16(214);
emit_16(281);
emit_16(215);
emit_16(282);
emit_16(216);
emit_16(282);
emit_16(215);
emit_16(282);
emit_16(216);
emit_16(283);
emit_16(217);
emit_16(283);
emit_16(216);
emit_16(283);
emit_16(217);
emit_16(284);
emit_16(218);
emit_16(284);
emit_16(217);
emit_16(284);
emit_16(218);
emit_16(285);
emit_16(219);
emit_16(285);
emit_16(218);
emit_16(285);
emit_16(219);
emit_16(286);
emit_16(220);
emit_16(286);
emit_16(219);
emit_16(286);
emit_16(220);
emit_16(287);
emit_16(221);
emit_16(287);
emit_16(220);
emit_16(287);
emit_16(221);
emit_16(288);
emit_16(222);
emit_16(288);
emit_16(221);
emit_16(288);
emit_16(222);
emit_16(289);
emit_16(223);
emit_16(289);
emit_16(222);
emit_16(289);
emit_16(223);
emit_16(290);
emit_16(224);
emit_16(290);
emit_16(223);
emit_16(290);
emit_16(224);
emit_16(291);
emit_16(225);
emit_16(291);
emit_16(224);
emit_16(291);
emit_16(225);
emit_16(292);
emit_16(226);
emit_16(292);
emit_16(225);
emit_16(292);
emit_16(226);
emit_16(293);
emit_16(227);
emit_16(293);
emit_16(226);
emit_16(293);
emit_16(227);
emit_16(294);
emit_16(228);
emit_16(294);
emit_16(227);
emit_16(294);
emit_16(228);
emit_16(295);
emit_16(229);
emit_16(295);
emit_16(228);
emit_16(295);
emit_16(229);
emit_16(296);
emit_16(230);
emit_16(296);
emit_16(229);
emit_16(296);
emit_16(230);
emit_16(297);
emit_16(231);
emit_16(297);
emit_16(230);
emit_16(297);
emit_16(231);
emit_16(298);
emit_16(232);
emit_16(298);
emit_16(231);
emit_16(298);
emit_16(232);
emit_16(299);
emit_16(233);
emit_16(299);
emit_16(232);
emit_16(299);
emit_16(233);
emit_16(300);
emit_16(234);
emit_16(300);
emit_16(233);
emit_16(300);
emit_16(234);
emit_16(301);
emit_16(235);
emit_16(301);
emit_16(234);
emit_16(301);
emit_16(235);
emit_16(302);
emit_16(236);
emit_16(302);
emit_16(235);
emit_16(302);
emit_16(236);
emit_16(303);
emit_16(237);
emit_16(303);
emit_16(236);
emit_16(303);
emit_16(237);
emit_16(304);
emit_16(238);
emit_16(304);
emit_16(237);
emit_16(304);
emit_16(238);
emit_16(305);
emit_16(239);
emit_16(305);
emit_16(238);
emit_16(305);
emit_16(239);
emit_16(306);
emit_16(240);
emit_16(306);
emit_16(239);
emit_16(306);
emit_16(240);
emit_16(307);
emit_16(241);
emit_16(307);
emit_16(240);
emit_16(307);
emit_16(241);
emit_16(308);
emit_16(242);
emit_16(308);
emit_16(241);
emit_16(308);
emit_16(242);
emit_16(309);
emit_16(243);
emit_16(309);
emit_16(242);
emit_16(309);
emit_16(243);
emit_16(310);
emit_16(244);
emit_16(310);
emit_16(243);
emit_16(310);
emit_16(244);
emit_16(311);
emit_16(245);
emit_16(311);
emit_16(244);
emit_16(311);
emit_16(245);
emit_16(312);
emit_16(246);
emit_16(312);
emit_16(245);
emit_16(312);
emit_16(246);
emit_16(313);
emit_16(247);
emit_16(313);
emit_16(246);
emit_16(313);
emit_16(247);
emit_16(314);
emit_16(248);
emit_16(314);
emit_16(247);
emit_16(314);
emit_16(248);
emit_16(315);
emit_16(249);
emit_16(315);
emit_16(248);
emit_16(315);
emit_16(249);
emit_16(316);
emit_16(250);
emit_16(316);
emit_16(249);
emit_16(316);
emit_16(250);
emit_16(317);
emit_16(251);
emit_16(317);
emit_16(250);
emit_16(317);
emit_16(251);
emit_16(318);
emit_16(252);
emit_16(318);
emit_16(251);
emit_16(318);
emit_16(252);
emit_16(319);
emit_16(253);
emit_16(319);
emit_16(252);
emit_16(319);
emit_16(253);
emit_16(320);
emit_16(254);
emit_16(320);
emit_16(253);
emit_16(320);
emit_16(254);
emit_16(321);
emit_16(255);
emit_16(321);
emit_16(254);
emit_16(321);
emit_16(255);
emit_16(322);
emit_16(256);
emit_16(322);
emit_16(255);
emit_16(322);
emit_16(256);
emit_16(323);
emit_16(257);
emit_16(323);
emit_16(256);
emit_16(323);
emit_16(257);
emit_16(324);
emit_16(258);
emit_16(324);
emit_16(257);
emit_16(324);
emit_16(258);
emit_16(325);
emit_16(259);
emit_16(325);
emit_16(258);
emit_16(325);
emit_16(259);
emit_16(326);
emit_16(260);
emit_16(326);
emit_16(259);
emit_16(326);
emit_16(260);
emit_16(327);
emit_16(261);
emit_16(327);
emit_16(260);
emit_16(327);
emit_16(261);
emit_16(328);
emit_16(262);
emit_16(328);
emit_16(261);
emit_16(328);
emit_16(262);
emit_16(329);
emit_16(263);
emit_16(329);
emit_16(262);
emit_16(330);
emit_16(264);
emit_16(331);
emit_16(265);
emit_16(331);
emit_16(264);
emit_16(331);
emit_16(265);
emit_16(332);
emit_16(266);
emit_16(332);
emit_16(265);
emit_16(332);
emit_16(266);
emit_16(333);
emit_16(267);
emit_16(333);
emit_16(266);
emit_16(333);
emit_16(267);
emit_16(334);
emit_16(268);
emit_16(334);
emit_16(267);
emit_16(334);
emit_16(268);
emit_16(335);
emit_16(269);
emit_16(335);
emit_16(268);
emit_16(335);
emit_16(269);
emit_16(336);
emit_16(270);
emit_16(336);
emit_16(269);
emit_16(336);
emit_16(270);
emit_16(337);
emit_16(271);
emit_16(337);
emit_16(270);
emit_16(337);
emit_16(271);
emit_16(338);
emit_16(272);
emit_16(338);
emit_16(271);
emit_16(338);
emit_16(272);
emit_16(339);
emit_16(273);
emit_16(339);
emit_16(272);
emit_16(339);
emit_16(273);
emit_16(340);
emit_16(274);
emit_16(340);
emit_16(273);
emit_16(340);
emit_16(274);
emit_16(341);
emit_16(275);
emit_16(341);
emit_16(274);
emit_16(341);
emit_16(275);
emit_16(342);
emit_16(276);
emit_16(342);
emit_16(275);
emit_16(342);
emit_16(276);
emit_16(343);
emit_16(277);
emit_16(343);
emit_16(276);
emit_16(343);
emit_16(277);
emit_16(344);
emit_16(278);
emit_16(344);
emit_16(277);
emit_16(344);
emit_16(278);
emit_16(345);
emit_16(279);
emit_16(345);
emit_16(278);
emit_16(345);
emit_16(279);
emit_16(346);
emit_16(280);
emit_16(346);
emit_16(279);
emit_16(346);
emit_16(280);
emit_16(347);
emit_16(281);
emit_16(347);
emit_16(280);
emit_16(347);
emit_16(281);
emit_16(348);
emit_16(282);
emit_16(348);
emit_16(281);
emit_16(348);
emit_16(282);
emit_16(349);
emit_16(283);
emit_16(349);
emit_16(282);
emit_16(349);
emit_16(283);
emit_16(350);
emit_16(284);
emit_16(350);
emit_16(283);
emit_16(350);
emit_16(284);
emit_16(351);
emit_16(285);
emit_16(351);
emit_16(284);
emit_16(351);
emit_16(285);
emit_16(352);
emit_16(286);
emit_16(352);
emit_16(285);
emit_16(352);
emit_16(286);
emit_16(353);
emit_16(287);
emit_16(353);
emit_16(286);
emit_16(353);
emit_16(287);
emit_16(354);
emit_16(288);
emit_16(354);
emit_16(287);
emit_16(354);
emit_16(288);
emit_16(355);
emit_16(289);
emit_16(355);
emit_16(288);
emit_16(355);
emit_16(289);
emit_16(356);
emit_16(290);
emit_16(356);
emit_16(289);
emit_16(356);
emit_16(290);
emit_16(357);
emit_16(291);
emit_16(357);
emit_16(290);
emit_16(357);
emit_16(291);
emit_16(358);
emit_16(292);
emit_16(358);
emit_16(291);
emit_16(358);
emit_16(292);
emit_16(359);
emit_16(293);
emit_16(359);
emit_16(292);
emit_16(359);
emit_16(293);
emit_16(360);
emit_16(294);
emit_16(360);
emit_16(293);
emit_16(360);
emit_16(294);
emit_16(361);
emit_16(295);
emit_16(361);
emit_16(294);
emit_16(361);
emit_16(295);
emit_16(362);
emit_16(296);
emit_16(362);
emit_16(295);
emit_16(362);
emit_16(296);
emit_16(363);
emit_16(297);
emit_16(363);
emit_16(296);
emit_16(363);
emit_16(297);
emit_16(364);
emit_16(298);
emit_16(364);
emit_16(297);
emit_16(364);
emit_16(298);
emit_16(365);
emit_16(299);
emit_16(365);
emit_16(298);
emit_16(365);
emit_16(299);
emit_16(366);
emit_16(300);
emit_16(366);
emit_16(299);
emit_16(366);
emit_16(300);
emit_16(367);
emit_16(301);
emit_16(367);
emit_16(300);
emit_16(367);
emit_16(301);
emit_16(368);
emit_16(302);
emit_16(368);
emit_16(301);
emit_16(368);
emit_16(302);
emit_16(369);
emit_16(303);
emit_16(369);
emit_16(302);
emit_16(369);
emit_16(303);
emit_16(370);
emit_16(304);
emit_16(370);
emit_16(303);
emit_16(370);
emit_16(304);
emit_16(371);
emit_16(305);
emit_16(371);
emit_16(304);
emit_16(371);
emit_16(305);
emit_16(372);
emit_16(306);
emit_16(372);
emit_16(305);
emit_16(372);
emit_16(306);
emit_16(373);
emit_16(307);
emit_16(373);
emit_16(306);
emit_16(373);
emit_16(307);
emit_16(374);
emit_16(308);
emit_16(374);
emit_16(307);
emit_16(374);
emit_16(308);
emit_16(375);
emit_16(309);
emit_16(375);
emit_16(308);
emit_16(375);
emit_16(309);
emit_16(376);
emit_16(310);
emit_16(376);
emit_16(309);
emit_16(376);
emit_16(310);
emit_16(377);
emit_16(311);
emit_16(377);
emit_16(310);
emit_16(377);
emit_16(311);
emit_16(378);
emit_16(312);
emit_16(378);
emit_16(311);
emit_16(378);
emit_16(312);
emit_16(379);
emit_16(313);
emit_16(379);
emit_16(312);
emit_16(379);
emit_16(313);
emit_16(380);
emit_16(314);
emit_16(380);
emit_16(313);
emit_16(380);
emit_16(314);
emit_16(381);
emit_16(315);
emit_16(381);
emit_16(314);
emit_16(381);
emit_16(315);
emit_16(382);
emit_16(316);
emit_16(382);
emit_16(315);
emit_16(382);
emit_16(316);
emit_16(383);
emit_16(317);
emit_16(383);
emit_16(316);
emit_16(383);
emit_16(317);
emit_16(384);
emit_16(318);
emit_16(384);
emit_16(317);
emit_16(384);
emit_16(318);
emit_16(385);
emit_16(319);
emit_16(385);
emit_16(318);
emit_16(385);
emit_16(319);
emit_16(386);
emit_16(320);
emit_16(386);
emit_16(319);
emit_16(386);
emit_16(320);
emit_16(387);
emit_16(321);
emit_16(387);
emit_16(320);
emit_16(387);
emit_16(321);
emit_16(388);
emit_16(322);
emit_16(388);
emit_16(321);
emit_16(388);
emit_16(322);
emit_16(389);
emit_16(323);
emit_16(389);
emit_16(322);
emit_16(389);
emit_16(323);
emit_16(390);
emit_16(324);
emit_16(390);
emit_16(323);
emit_16(390);
emit_16(324);
emit_16(391);
emit_16(325);
emit_16(391);
emit_16(324);
emit_16(391);
emit_16(325);
emit_16(392);
emit_16(326);
emit_16(392);
emit_16(325);
emit_16(392);
emit_16(326);
emit_16(393);
emit_16(327);
emit_16(393);
emit_16(326);
emit_16(393);
emit_16(327);
emit_16(394);
emit_16(328);
emit_16(394);
emit_16(327);
emit_16(394);
emit_16(328);
emit_16(395);
emit_16(329);
emit_16(395);
emit_16(328);
emit_16(396);
emit_16(330);
emit_16(397);
emit_16(331);
emit_16(397);
emit_16(330);
emit_16(397);
emit_16(331);
emit_16(398);
emit_16(332);
emit_16(398);
emit_16(331);
emit_16(398);
emit_16(332);
emit_16(399);
emit_16(333);
emit_16(399);
emit_16(332);
emit_16(399);
emit_16(333);
emit_16(400);
emit_16(334);
emit_16(400);
emit_16(333);
emit_16(400);
emit_16(334);
emit_16(401);
emit_16(335);
emit_16(401);
emit_16(334);
emit_16(401);
emit_16(335);
emit_16(402);
emit_16(336);
emit_16(402);
emit_16(335);
emit_16(402);
emit_16(336);
emit_16(403);
emit_16(337);
emit_16(403);
emit_16(336);
emit_16(403);
emit_16(337);
emit_16(404);
emit_16(338);
emit_16(404);
emit_16(337);
emit_16(404);
emit_16(338);
emit_16(405);
emit_16(339);
emit_16(405);
emit_16(338);
emit_16(405);
emit_16(339);
emit_16(406);
emit_16(340);
emit_16(406);
emit_16(339);
emit_16(406);
emit_16(340);
emit_16(407);
emit_16(341);
emit_16(407);
emit_16(340);
emit_16(407);
emit_16(341);
emit_16(408);
emit_16(342);
emit_16(408);
emit_16(341);
emit_16(408);
emit_16(342);
emit_16(409);
emit_16(343);
emit_16(409);
emit_16(342);
emit_16(409);
emit_16(343);
emit_16(410);
emit_16(344);
emit_16(410);
emit_16(343);
emit_16(410);
emit_16(344);
emit_16(411);
emit_16(345);
emit_16(411);
emit_16(344);
emit_16(411);
emit_16(345);
emit_16(412);
emit_16(346);
emit_16(412);
emit_16(345);
emit_16(412);
emit_16(346);
emit_16(413);
emit_16(347);
emit_16(413);
emit_16(346);
emit_16(413);
emit_16(347);
emit_16(414);
emit_16(348);
emit_16(414);
emit_16(347);
emit_16(414);
emit_16(348);
emit_16(415);
emit_16(349);
emit_16(415);
emit_16(348);
emit_16(415);
emit_16(349);
emit_16(416);
emit_16(350);
emit_16(416);
emit_16(349);
emit_16(416);
emit_16(350);
emit_16(417);
emit_16(351);
emit_16(417);
emit_16(350);
emit_16(417);
emit_16(351);
emit_16(418);
emit_16(352);
emit_16(418);
emit_16(351);
emit_16(418);
emit_16(352);
emit_16(419);
emit_16(353);
emit_16(419);
emit_16(352);
emit_16(419);
emit_16(353);
emit_16(420);
emit_16(354);
emit_16(420);
emit_16(353);
emit_16(420);
emit_16(354);
emit_16(421);
emit_16(355);
emit_16(421);
emit_16(354);
emit_16(421);
emit_16(355);
emit_16(422);
emit_16(356);
emit_16(422);
emit_16(355);
emit_16(422);
emit_16(356);
emit_16(423);
emit_16(357);
emit_16(423);
emit_16(356);
emit_16(423);
emit_16(357);
emit_16(424);
emit_16(358);
emit_16(424);
emit_16(357);
emit_16(424);
emit_16(358);
emit_16(425);
emit_16(359);
emit_16(425);
emit_16(358);
emit_16(425);
emit_16(359);
emit_16(426);
emit_16(360);
emit_16(426);
emit_16(359);
emit_16(426);
emit_16(360);
emit_16(427);
emit_16(361);
emit_16(427);
emit_16(360);
emit_16(427);
emit_16(361);
emit_16(428);
emit_16(362);
emit_16(428);
emit_16(361);
emit_16(428);
emit_16(362);
emit_16(429);
emit_16(363);
emit_16(429);
emit_16(362);
emit_16(429);
emit_16(363);
emit_16(430);
emit_16(364);
emit_16(430);
emit_16(363);
emit_16(430);
emit_16(364);
emit_16(431);
emit_16(365);
emit_16(431);
emit_16(364);
emit_16(431);
emit_16(365);
emit_16(432);
emit_16(366);
emit_16(432);
emit_16(365);
emit_16(432);
emit_16(366);
emit_16(433);
emit_16(367);
emit_16(433);
emit_16(366);
emit_16(433);
emit_16(367);
emit_16(434);
emit_16(368);
emit_16(434);
emit_16(367);
emit_16(434);
emit_16(368);
emit_16(435);
emit_16(369);
emit_16(435);
emit_16(368);
emit_16(435);
emit_16(369);
emit_16(436);
emit_16(370);
emit_16(436);
emit_16(369);
emit_16(436);
emit_16(370);
emit_16(437);
emit_16(371);
emit_16(437);
emit_16(370);
emit_16(437);
emit_16(371);
emit_16(438);
emit_16(372);
emit_16(438);
emit_16(371);
emit_16(438);
emit_16(372);
emit_16(439);
emit_16(373);
emit_16(439);
emit_16(372);
emit_16(439);
emit_16(373);
emit_16(440);
emit_16(374);
emit_16(440);
emit_16(373);
emit_16(440);
emit_16(374);
emit_16(441);
emit_16(375);
emit_16(441);
emit_16(374);
emit_16(441);
emit_16(375);
emit_16(442);
emit_16(376);
emit_16(442);
emit_16(375);
emit_16(442);
emit_16(376);
emit_16(443);
emit_16(377);
emit_16(443);
emit_16(376);
emit_16(443);
emit_16(377);
emit_16(444);
emit_16(378);
emit_16(444);
emit_16(377);
emit_16(444);
emit_16(378);
emit_16(445);
emit_16(379);
emit_16(445);
emit_16(378);
emit_16(445);
emit_16(379);
emit_16(446);
emit_16(380);
emit_16(446);
emit_16(379);
emit_16(446);
emit_16(380);
emit_16(447);
emit_16(381);
emit_16(447);
emit_16(380);
emit_16(447);
emit_16(381);
emit_16(448);
emit_16(382);
emit_16(448);
emit_16(381);
emit_16(448);
emit_16(382);
emit_16(449);
emit_16(383);
emit_16(449);
emit_16(382);
emit_16(449);
emit_16(383);
emit_16(450);
emit_16(384);
emit_16(450);
emit_16(383);
emit_16(450);
emit_16(384);
emit_16(451);
emit_16(385);
emit_16(451);
emit_16(384);
emit_16(451);
emit_16(385);
emit_16(452);
emit_16(386);
emit_16(452);
emit_16(385);
emit_16(452);
emit_16(386);
emit_16(453);
emit_16(387);
emit_16(453);
emit_16(386);
emit_16(453);
emit_16(387);
emit_16(454);
emit_16(388);
emit_16(454);
emit_16(387);
emit_16(454);
emit_16(388);
emit_16(455);
emit_16(389);
emit_16(455);
emit_16(388);
emit_16(455);
emit_16(389);
emit_16(456);
emit_16(390);
emit_16(456);
emit_16(389);
emit_16(456);
emit_16(390);
emit_16(457);
emit_16(391);
emit_16(457);
emit_16(390);
emit_16(457);
emit_16(391);
emit_16(458);
emit_16(392);
emit_16(458);
emit_16(391);
emit_16(458);
emit_16(392);
emit_16(459);
emit_16(393);
emit_16(459);
emit_16(392);
emit_16(459);
emit_16(393);
emit_16(460);
emit_16(394);
emit_16(460);
emit_16(393);
emit_16(460);
emit_16(394);
emit_16(461);
emit_16(395);
emit_16(461);
emit_16(394);
emit_16(462);
emit_16(396);
emit_16(463);
emit_16(397);
emit_16(463);
emit_16(396);
emit_16(463);
emit_16(397);
emit_16(464);
emit_16(398);
emit_16(464);
emit_16(397);
emit_16(464);
emit_16(398);
emit_16(465);
emit_16(399);
emit_16(465);
emit_16(398);
emit_16(465);
emit_16(399);
emit_16(466);
emit_16(400);
emit_16(466);
emit_16(399);
emit_16(466);
emit_16(400);
emit_16(467);
emit_16(401);
emit_16(467);
emit_16(400);
emit_16(467);
emit_16(401);
emit_16(468);
emit_16(402);
emit_16(468);
emit_16(401);
emit_16(468);
emit_16(402);
emit_16(469);
emit_16(403);
emit_16(469);
emit_16(402);
emit_16(469);
emit_16(403);
emit_16(470);
emit_16(404);
emit_16(470);
emit_16(403);
emit_16(470);
emit_16(404);
emit_16(471);
emit_16(405);
emit_16(471);
emit_16(404);
emit_16(471);
emit_16(405);
emit_16(472);
emit_16(406);
emit_16(472);
emit_16(405);
emit_16(472);
emit_16(406);
emit_16(473);
emit_16(407);
emit_16(473);
emit_16(406);
emit_16(473);
emit_16(407);
emit_16(474);
emit_16(408);
emit_16(474);
emit_16(407);
emit_16(474);
emit_16(408);
emit_16(475);
emit_16(409);
emit_16(475);
emit_16(408);
emit_16(475);
emit_16(409);
emit_16(476);
emit_16(410);
emit_16(476);
emit_16(409);
emit_16(476);
emit_16(410);
emit_16(477);
emit_16(411);
emit_16(477);
emit_16(410);
emit_16(477);
emit_16(411);
emit_16(478);
emit_16(412);
emit_16(478);
emit_16(411);
emit_16(478);
emit_16(412);
emit_16(479);
emit_16(413);
emit_16(479);
emit_16(412);
emit_16(479);
emit_16(413);
emit_16(480);
emit_16(414);
emit_16(480);
emit_16(413);
emit_16(480);
emit_16(414);
emit_16(481);
emit_16(415);
emit_16(481);
emit_16(414);
emit_16(481);
emit_16(415);
emit_16(482);
emit_16(416);
emit_16(482);
emit_16(415);
emit_16(482);
emit_16(416);
emit_16(483);
emit_16(417);
emit_16(483);
emit_16(416);
emit_16(483);
emit_16(417);
emit_16(484);
emit_16(418);
emit_16(484);
emit_16(417);
emit_16(484);
emit_16(418);
emit_16(485);
emit_16(419);
emit_16(485);
emit_16(418);
emit_16(485);
emit_16(419);
emit_16(486);
emit_16(420);
emit_16(486);
emit_16(419);
emit_16(486);
emit_16(420);
emit_16(487);
emit_16(421);
emit_16(487);
emit_16(420);
emit_16(487);
emit_16(421);
emit_16(488);
emit_16(422);
emit_16(488);
emit_16(421);
emit_16(488);
emit_16(422);
emit_16(489);
emit_16(423);
emit_16(489);
emit_16(422);
emit_16(489);
emit_16(423);
emit_16(490);
emit_16(424);
emit_16(490);
emit_16(423);
emit_16(490);
emit_16(424);
emit_16(491);
emit_16(425);
emit_16(491);
emit_16(424);
emit_16(491);
emit_16(425);
emit_16(492);
emit_16(426);
emit_16(492);
emit_16(425);
emit_16(492);
emit_16(426);
emit_16(493);
emit_16(427);
emit_16(493);
emit_16(426);
emit_16(493);
emit_16(427);
emit_16(494);
emit_16(428);
emit_16(494);
emit_16(427);
emit_16(494);
emit_16(428);
emit_16(495);
emit_16(429);
emit_16(495);
emit_16(428);
emit_16(495);
emit_16(429);
emit_16(496);
emit_16(430);
emit_16(496);
emit_16(429);
emit_16(496);
emit_16(430);
emit_16(497);
emit_16(431);
emit_16(497);
emit_16(430);
emit_16(497);
emit_16(431);
emit_16(498);
emit_16(432);
emit_16(498);
emit_16(431);
emit_16(498);
emit_16(432);
emit_16(499);
emit_16(433);
emit_16(499);
emit_16(432);
emit_16(499);
emit_16(433);
emit_16(500);
emit_16(434);
emit_16(500);
emit_16(433);
emit_16(500);
emit_16(434);
emit_16(501);
emit_16(435);
emit_16(501);
emit_16(434);
emit_16(501);
emit_16(435);
emit_16(502);
emit_16(436);
emit_16(502);
emit_16(435);
emit_16(502);
emit_16(436);
emit_16(503);
emit_16(437);
emit_16(503);
emit_16(436);
emit_16(503);
emit_16(437);
emit_16(504);
emit_16(438);
emit_16(504);
emit_16(437);
emit_16(504);
emit_16(438);
emit_16(505);
emit_16(439);
emit_16(505);
emit_16(438);
emit_16(505);
emit_16(439);
emit_16(506);
emit_16(440);
emit_16(506);
emit_16(439);
emit_16(506);
emit_16(440);
emit_16(507);
emit_16(441);
emit_16(507);
emit_16(440);
emit_16(507);
emit_16(441);
emit_16(508);
emit_16(442);
emit_16(508);
emit_16(441);
emit_16(508);
emit_16(442);
emit_16(509);
emit_16(443);
emit_16(509);
emit_16(442);
emit_16(509);
emit_16(443);
emit_16(510);
emit_16(444);
emit_16(510);
emit_16(443);
emit_16(510);
emit_16(444);
emit_16(511);
emit_16(445);
emit_16(511);
emit_16(444);
emit_16(511);
emit_16(445);
emit_16(512);
emit_16(446);
emit_16(512);
emit_16(445);
emit_16(512);
emit_16(446);
emit_16(513);
emit_16(447);
emit_16(513);
emit_16(446);
emit_16(513);
emit_16(447);
emit_16(514);
emit_16(448);
emit_16(514);
emit_16(447);
emit_16(514);
emit_16(448);
emit_16(515);
emit_16(449);
emit_16(515);
emit_16(448);
emit_16(515);
emit_16(449);
emit_16(516);
emit_16(450);
emit_16(516);
emit_16(449);
emit_16(516);
emit_16(450);
emit_16(517);
emit_16(451);
emit_16(517);
emit_16(450);
emit_16(517);
emit_16(451);
emit_16(518);
emit_16(452);
emit_16(518);
emit_16(451);
emit_16(518);
emit_16(452);
emit_16(519);
emit_16(453);
emit_16(519);
emit_16(452);
emit_16(519);
emit_16(453);
emit_16(520);
emit_16(454);
emit_16(520);
emit_16(453);
emit_16(520);
emit_16(454);
emit_16(521);
emit_16(455);
emit_16(521);
emit_16(454);
emit_16(521);
emit_16(455);
emit_16(522);
emit_16(456);
emit_16(522);
emit_16(455);
emit_16(522);
emit_16(456);
emit_16(523);
emit_16(457);
emit_16(523);
emit_16(456);
emit_16(523);
emit_16(457);
emit_16(524);
emit_16(458);
emit_16(524);
emit_16(457);
emit_16(524);
emit_16(458);
emit_16(525);
emit_16(459);
emit_16(525);
emit_16(458);
emit_16(525);
emit_16(459);
emit_16(526);
emit_16(460);
emit_16(526);
emit_16(459);
emit_16(526);
emit_16(460);
emit_16(527);
emit_16(461);
emit_16(527);
emit_16(460);
emit_16(528);
emit_16(462);
emit_16(529);
emit_16(463);
emit_16(529);
emit_16(462);
emit_16(529);
emit_16(463);
emit_16(530);
emit_16(464);
emit_16(530);
emit_16(463);
emit_16(530);
emit_16(464);
emit_16(531);
emit_16(465);
emit_16(531);
emit_16(464);
emit_16(531);
emit_16(465);
emit_16(532);
emit_16(466);
emit_16(532);
emit_16(465);
emit_16(532);
emit_16(466);
emit_16(533);
emit_16(467);
emit_16(533);
emit_16(466);
emit_16(533);
emit_16(467);
emit_16(534);
emit_16(468);
emit_16(534);
emit_16(467);
emit_16(534);
emit_16(468);
emit_16(535);
emit_16(469);
emit_16(535);
emit_16(468);
emit_16(535);
emit_16(469);
emit_16(536);
emit_16(470);
emit_16(536);
emit_16(469);
emit_16(536);
emit_16(470);
emit_16(537);
emit_16(471);
emit_16(537);
emit_16(470);
emit_16(537);
emit_16(471);
emit_16(538);
emit_16(472);
emit_16(538);
emit_16(471);
emit_16(538);
emit_16(472);
emit_16(539);
emit_16(473);
emit_16(539);
emit_16(472);
emit_16(539);
emit_16(473);
emit_16(540);
emit_16(474);
emit_16(540);
emit_16(473);
emit_16(540);
emit_16(474);
emit_16(541);
emit_16(475);
emit_16(541);
emit_16(474);
emit_16(541);
emit_16(475);
emit_16(542);
emit_16(476);
emit_16(542);
emit_16(475);
emit_16(542);
emit_16(476);
emit_16(543);
emit_16(477);
emit_16(543);
emit_16(476);
emit_16(543);
emit_16(477);
emit_16(544);
emit_16(478);
emit_16(544);
emit_16(477);
emit_16(544);
emit_16(478);
emit_16(545);
emit_16(479);
emit_16(545);
emit_16(478);
emit_16(545);
emit_16(479);
emit_16(546);
emit_16(480);
emit_16(546);
emit_16(479);
emit_16(546);
emit_16(480);
emit_16(547);
emit_16(481);
emit_16(547);
emit_16(480);
emit_16(547);
emit_16(481);
emit_16(548);
emit_16(482);
emit_16(548);
emit_16(481);
emit_16(548);
emit_16(482);
emit_16(549);
emit_16(483);
emit_16(549);
emit_16(482);
emit_16(549);
emit_16(483);
emit_16(550);
emit_16(484);
emit_16(550);
emit_16(483);
emit_16(550);
emit_16(484);
emit_16(551);
emit_16(485);
emit_16(551);
emit_16(484);
emit_16(551);
emit_16(485);
emit_16(552);
emit_16(486);
emit_16(552);
emit_16(485);
emit_16(552);
emit_16(486);
emit_16(553);
emit_16(487);
emit_16(553);
emit_16(486);
emit_16(553);
emit_16(487);
emit_16(554);
emit_16(488);
emit_16(554);
emit_16(487);
emit_16(554);
emit_16(488);
emit_16(555);
emit_16(489);
emit_16(555);
emit_16(488);
emit_16(555);
emit_16(489);
emit_16(556);
emit_16(490);
emit_16(556);
emit_16(489);
emit_16(556);
emit_16(490);
emit_16(557);
emit_16(491);
emit_16(557);
emit_16(490);
emit_16(557);
emit_16(491);
emit_16(558);
emit_16(492);
emit_16(558);
emit_16(491);
emit_16(558);
emit_16(492);
emit_16(559);
emit_16(493);
emit_16(559);
emit_16(492);
emit_16(559);
emit_16(493);
emit_16(560);
emit_16(494);
emit_16(560);
emit_16(493);
emit_16(560);
emit_16(494);
emit_16(561);
emit_16(495);
emit_16(561);
emit_16(494);
emit_16(561);
emit_16(495);
emit_16(562);
emit_16(496);
emit_16(562);
emit_16(495);
emit_16(562);
emit_16(496);
emit_16(563);
emit_16(497);
emit_16(563);
emit_16(496);
emit_16(563);
emit_16(497);
emit_16(564);
emit_16(498);
emit_16(564);
emit_16(497);
emit_16(564);
emit_16(498);
emit_16(565);
emit_16(499);
emit_16(565);
emit_16(498);
emit_16(565);
emit_16(499);
emit_16(566);
emit_16(500);
emit_16(566);
emit_16(499);
emit_16(566);
emit_16(500);
emit_16(567);
emit_16(501);
emit_16(567);
emit_16(500);
emit_16(567);
emit_16(501);
emit_16(568);
emit_16(502);
emit_16(568);
emit_16(501);
emit_16(568);
emit_16(502);
emit_16(569);
emit_16(503);
emit_16(569);
emit_16(502);
emit_16(569);
emit_16(503);
emit_16(570);
emit_16(504);
emit_16(570);
emit_16(503);
emit_16(570);
emit_16(504);
emit_16(571);
emit_16(505);
emit_16(571);
emit_16(504);
emit_16(571);
emit_16(505);
emit_16(572);
emit_16(506);
emit_16(572);
emit_16(505);
emit_16(572);
emit_16(506);
emit_16(573);
emit_16(507);
emit_16(573);
emit_16(506);
emit_16(573);
emit_16(507);
emit_16(574);
emit_16(508);
emit_16(574);
emit_16(507);
emit_16(574);
emit_16(508);
emit_16(575);
emit_16(509);
emit_16(575);
emit_16(508);
emit_16(575);
emit_16(509);
emit_16(576);
emit_16(510);
emit_16(576);
emit_16(509);
emit_16(576);
emit_16(510);
emit_16(577);
emit_16(511);
emit_16(577);
emit_16(510);
emit_16(577);
emit_16(511);
emit_16(578);
emit_16(512);
emit_16(578);
emit_16(511);
emit_16(578);
emit_16(512);
emit_16(579);
emit_16(513);
emit_16(579);
emit_16(512);
emit_16(579);
emit_16(513);
emit_16(580);
emit_16(514);
emit_16(580);
emit_16(513);
emit_16(580);
emit_16(514);
emit_16(581);
emit_16(515);
emit_16(581);
emit_16(514);
emit_16(581);
emit_16(515);
emit_16(582);
emit_16(516);
emit_16(582);
emit_16(515);
emit_16(582);
emit_16(516);
emit_16(583);
emit_16(517);
emit_16(583);
emit_16(516);
emit_16(583);
emit_16(517);
emit_16(584);
emit_16(518);
emit_16(584);
emit_16(517);
emit_16(584);
emit_16(518);
emit_16(585);
emit_16(519);
emit_16(585);
emit_16(518);
emit_16(585);
emit_16(519);
emit_16(586);
emit_16(520);
emit_16(586);
emit_16(519);
emit_16(586);
emit_16(520);
emit_16(587);
emit_16(521);
emit_16(587);
emit_16(520);
emit_16(587);
emit_16(521);
emit_16(588);
emit_16(522);
emit_16(588);
emit_16(521);
emit_16(588);
emit_16(522);
emit_16(589);
emit_16(523);
emit_16(589);
emit_16(522);
emit_16(589);
emit_16(523);
emit_16(590);
emit_16(524);
emit_16(590);
emit_16(523);
emit_16(590);
emit_16(524);
emit_16(591);
emit_16(525);
emit_16(591);
emit_16(524);
emit_16(591);
emit_16(525);
emit_16(592);
emit_16(526);
emit_16(592);
emit_16(525);
emit_16(592);
emit_16(526);
emit_16(593);
emit_16(527);
emit_16(593);
emit_16(526);
emit_16(594);
emit_16(528);
emit_16(595);
emit_16(529);
emit_16(595);
emit_16(528);
emit_16(595);
emit_16(529);
emit_16(596);
emit_16(530);
emit_16(596);
emit_16(529);
emit_16(596);
emit_16(530);
emit_16(597);
emit_16(531);
emit_16(597);
emit_16(530);
emit_16(597);
emit_16(531);
emit_16(598);
emit_16(532);
emit_16(598);
emit_16(531);
emit_16(598);
emit_16(532);
emit_16(599);
emit_16(533);
emit_16(599);
emit_16(532);
emit_16(599);
emit_16(533);
emit_16(600);
emit_16(534);
emit_16(600);
emit_16(533);
emit_16(600);
emit_16(534);
emit_16(601);
emit_16(535);
emit_16(601);
emit_16(534);
emit_16(601);
emit_16(535);
emit_16(602);
emit_16(536);
emit_16(602);
emit_16(535);
emit_16(602);
emit_16(536);
emit_16(603);
emit_16(537);
emit_16(603);
emit_16(536);
emit_16(603);
emit_16(537);
emit_16(604);
emit_16(538);
emit_16(604);
emit_16(537);
emit_16(604);
emit_16(538);
emit_16(605);
emit_16(539);
emit_16(605);
emit_16(538);
emit_16(605);
emit_16(539);
emit_16(606);
emit_16(540);
emit_16(606);
emit_16(539);
emit_16(606);
emit_16(540);
emit_16(607);
emit_16(541);
emit_16(607);
emit_16(540);
emit_16(607);
emit_16(541);
emit_16(608);
emit_16(542);
emit_16(608);
emit_16(541);
emit_16(608);
emit_16(542);
emit_16(609);
emit_16(543);
emit_16(609);
emit_16(542);
emit_16(609);
emit_16(543);
emit_16(610);
emit_16(544);
emit_16(610);
emit_16(543);
emit_16(610);
emit_16(544);
emit_16(611);
emit_16(545);
emit_16(611);
emit_16(544);
emit_16(611);
emit_16(545);
emit_16(612);
emit_16(546);
emit_16(612);
emit_16(545);
emit_16(612);
emit_16(546);
emit_16(613);
emit_16(547);
emit_16(613);
emit_16(546);
emit_16(613);
emit_16(547);
emit_16(614);
emit_16(548);
emit_16(614);
emit_16(547);
emit_16(614);
emit_16(548);
emit_16(615);
emit_16(549);
emit_16(615);
emit_16(548);
emit_16(615);
emit_16(549);
emit_16(616);
emit_16(550);
emit_16(616);
emit_16(549);
emit_16(616);
emit_16(550);
emit_16(617);
emit_16(551);
emit_16(617);
emit_16(550);
emit_16(617);
emit_16(551);
emit_16(618);
emit_16(552);
emit_16(618);
emit_16(551);
emit_16(618);
emit_16(552);
emit_16(619);
emit_16(553);
emit_16(619);
emit_16(552);
emit_16(619);
emit_16(553);
emit_16(620);
emit_16(554);
emit_16(620);
emit_16(553);
emit_16(620);
emit_16(554);
emit_16(621);
emit_16(555);
emit_16(621);
emit_16(554);
emit_16(621);
emit_16(555);
emit_16(622);
emit_16(556);
emit_16(622);
emit_16(555);
emit_16(622);
emit_16(556);
emit_16(623);
emit_16(557);
emit_16(623);
emit_16(556);
emit_16(623);
emit_16(557);
emit_16(624);
emit_16(558);
emit_16(624);
emit_16(557);
emit_16(624);
emit_16(558);
emit_16(625);
emit_16(559);
emit_16(625);
emit_16(558);
emit_16(625);
emit_16(559);
emit_16(626);
emit_16(560);
emit_16(626);
emit_16(559);
emit_16(626);
emit_16(560);
emit_16(627);
emit_16(561);
emit_16(627);
emit_16(560);
emit_16(627);
emit_16(561);
emit_16(628);
emit_16(562);
emit_16(628);
emit_16(561);
emit_16(628);
emit_16(562);
emit_16(629);
emit_16(563);
emit_16(629);
emit_16(562);
emit_16(629);
emit_16(563);
emit_16(630);
emit_16(564);
emit_16(630);
emit_16(563);
emit_16(630);
emit_16(564);
emit_16(631);
emit_16(565);
emit_16(631);
emit_16(564);
emit_16(631);
emit_16(565);
emit_16(632);
emit_16(566);
emit_16(632);
emit_16(565);
emit_16(632);
emit_16(566);
emit_16(633);
emit_16(567);
emit_16(633);
emit_16(566);
emit_16(633);
emit_16(567);
emit_16(634);
emit_16(568);
emit_16(634);
emit_16(567);
emit_16(634);
emit_16(568);
emit_16(635);
emit_16(569);
emit_16(635);
emit_16(568);
emit_16(635);
emit_16(569);
emit_16(636);
emit_16(570);
emit_16(636);
emit_16(569);
emit_16(636);
emit_16(570);
emit_16(637);
emit_16(571);
emit_16(637);
emit_16(570);
emit_16(637);
emit_16(571);
emit_16(638);
emit_16(572);
emit_16(638);
emit_16(571);
emit_16(638);
emit_16(572);
emit_16(639);
emit_16(573);
emit_16(639);
emit_16(572);
emit_16(639);
emit_16(573);
emit_16(640);
emit_16(574);
emit_16(640);
emit_16(573);
emit_16(640);
emit_16(574);
emit_16(641);
emit_16(575);
emit_16(641);
emit_16(574);
emit_16(641);
emit_16(575);
emit_16(642);
emit_16(576);
emit_16(642);
emit_16(575);
emit_16(642);
emit_16(576);
emit_16(643);
emit_16(577);
emit_16(643);
emit_16(576);
emit_16(643);
emit_16(577);
emit_16(644);
emit_16(578);
emit_16(644);
emit_16(577);
emit_16(644);
emit_16(578);
emit_16(645);
emit_16(579);
emit_16(645);
emit_16(578);
emit_16(645);
emit_16(579);
emit_16(646);
emit_16(580);
emit_16(646);
emit_16(579);
emit_16(646);
emit_16(580);
emit_16(647);
emit_16(581);
emit_16(647);
emit_16(580);
emit_16(647);
emit_16(581);
emit_16(648);
emit_16(582);
emit_16(648);
emit_16(581);
emit_16(648);
emit_16(582);
emit_16(649);
emit_16(583);
emit_16(649);
emit_16(582);
emit_16(649);
emit_16(583);
emit_16(650);
emit_16(584);
emit_16(650);
emit_16(583);
emit_16(650);
emit_16(584);
emit_16(651);
emit_16(585);
emit_16(651);
emit_16(584);
emit_16(651);
emit_16(585);
emit_16(652);
emit_16(586);
emit_16(652);
emit_16(585);
emit_16(652);
emit_16(586);
emit_16(653);
emit_16(587);
emit_16(653);
emit_16(586);
emit_16(653);
emit_16(587);
emit_16(654);
emit_16(588);
emit_16(654);
emit_16(587);
emit_16(654);
emit_16(588);
emit_16(655);
emit_16(589);
emit_16(655);
emit_16(588);
emit_16(655);
emit_16(589);
emit_16(656);
emit_16(590);
emit_16(656);
emit_16(589);
emit_16(656);
emit_16(590);
emit_16(657);
emit_16(591);
emit_16(657);
emit_16(590);
emit_16(657);
emit_16(591);
emit_16(658);
emit_16(592);
emit_16(658);
emit_16(591);
emit_16(658);
emit_16(592);
emit_16(659);
emit_16(593);
emit_16(659);
emit_16(592);
emit_16(660);
emit_16(594);
emit_16(661);
emit_16(595);
emit_16(661);
emit_16(594);
emit_16(661);
emit_16(595);
emit_16(662);
emit_16(596);
emit_16(662);
emit_16(595);
emit_16(662);
emit_16(596);
emit_16(663);
emit_16(597);
emit_16(663);
emit_16(596);
emit_16(663);
emit_16(597);
emit_16(664);
emit_16(598);
emit_16(664);
emit_16(597);
emit_16(664);
emit_16(598);
emit_16(665);
emit_16(599);
emit_16(665);
emit_16(598);
emit_16(665);
emit_16(599);
emit_16(666);
emit_16(600);
emit_16(666);
emit_16(599);
emit_16(666);
emit_16(600);
emit_16(667);
emit_16(601);
emit_16(667);
emit_16(600);
emit_16(667);
emit_16(601);
emit_16(668);
emit_16(602);
emit_16(668);
emit_16(601);
emit_16(668);
emit_16(602);
emit_16(669);
emit_16(603);
emit_16(669);
emit_16(602);
emit_16(669);
emit_16(603);
emit_16(670);
emit_16(604);
emit_16(670);
emit_16(603);
emit_16(670);
emit_16(604);
emit_16(671);
emit_16(605);
emit_16(671);
emit_16(604);
emit_16(671);
emit_16(605);
emit_16(672);
emit_16(606);
emit_16(672);
emit_16(605);
emit_16(672);
emit_16(606);
emit_16(673);
emit_16(607);
emit_16(673);
emit_16(606);
emit_16(673);
emit_16(607);
emit_16(674);
emit_16(608);
emit_16(674);
emit_16(607);
emit_16(674);
emit_16(608);
emit_16(675);
emit_16(609);
emit_16(675);
emit_16(608);
emit_16(675);
emit_16(609);
emit_16(676);
emit_16(610);
emit_16(676);
emit_16(609);
emit_16(676);
emit_16(610);
emit_16(677);
emit_16(611);
emit_16(677);
emit_16(610);
emit_16(677);
emit_16(611);
emit_16(678);
emit_16(612);
emit_16(678);
emit_16(611);
emit_16(678);
emit_16(612);
emit_16(679);
emit_16(613);
emit_16(679);
emit_16(612);
emit_16(679);
emit_16(613);
emit_16(680);
emit_16(614);
emit_16(680);
emit_16(613);
emit_16(680);
emit_16(614);
emit_16(681);
emit_16(615);
emit_16(681);
emit_16(614);
emit_16(681);
emit_16(615);
emit_16(682);
emit_16(616);
emit_16(682);
emit_16(615);
emit_16(682);
emit_16(616);
emit_16(683);
emit_16(617);
emit_16(683);
emit_16(616);
emit_16(683);
emit_16(617);
emit_16(684);
emit_16(618);
emit_16(684);
emit_16(617);
emit_16(684);
emit_16(618);
emit_16(685);
emit_16(619);
emit_16(685);
emit_16(618);
emit_16(685);
emit_16(619);
emit_16(686);
emit_16(620);
emit_16(686);
emit_16(619);
emit_16(686);
emit_16(620);
emit_16(687);
emit_16(621);
emit_16(687);
emit_16(620);
emit_16(687);
emit_16(621);
emit_16(688);
emit_16(622);
emit_16(688);
emit_16(621);
emit_16(688);
emit_16(622);
emit_16(689);
emit_16(623);
emit_16(689);
emit_16(622);
emit_16(689);
emit_16(623);
emit_16(690);
emit_16(624);
emit_16(690);
emit_16(623);
emit_16(690);
emit_16(624);
emit_16(691);
emit_16(625);
emit_16(691);
emit_16(624);
emit_16(691);
emit_16(625);
emit_16(692);
emit_16(626);
emit_16(692);
emit_16(625);
emit_16(692);
emit_16(626);
emit_16(693);
emit_16(627);
emit_16(693);
emit_16(626);
emit_16(693);
emit_16(627);
emit_16(694);
emit_16(628);
emit_16(694);
emit_16(627);
emit_16(694);
emit_16(628);
emit_16(695);
emit_16(629);
emit_16(695);
emit_16(628);
emit_16(695);
emit_16(629);
emit_16(696);
emit_16(630);
emit_16(696);
emit_16(629);
emit_16(696);
emit_16(630);
emit_16(697);
emit_16(631);
emit_16(697);
emit_16(630);
emit_16(697);
emit_16(631);
emit_16(698);
emit_16(632);
emit_16(698);
emit_16(631);
emit_16(698);
emit_16(632);
emit_16(699);
emit_16(633);
emit_16(699);
emit_16(632);
emit_16(699);
emit_16(633);
emit_16(700);
emit_16(634);
emit_16(700);
emit_16(633);
emit_16(700);
emit_16(634);
emit_16(701);
emit_16(635);
emit_16(701);
emit_16(634);
emit_16(701);
emit_16(635);
emit_16(702);
emit_16(636);
emit_16(702);
emit_16(635);
emit_16(702);
emit_16(636);
emit_16(703);
emit_16(637);
emit_16(703);
emit_16(636);
emit_16(703);
emit_16(637);
emit_16(704);
emit_16(638);
emit_16(704);
emit_16(637);
emit_16(704);
emit_16(638);
emit_16(705);
emit_16(639);
emit_16(705);
emit_16(638);
emit_16(705);
emit_16(639);
emit_16(706);
emit_16(640);
emit_16(706);
emit_16(639);
emit_16(706);
emit_16(640);
emit_16(707);
emit_16(641);
emit_16(707);
emit_16(640);
emit_16(707);
emit_16(641);
emit_16(708);
emit_16(642);
emit_16(708);
emit_16(641);
emit_16(708);
emit_16(642);
emit_16(709);
emit_16(643);
emit_16(709);
emit_16(642);
emit_16(709);
emit_16(643);
emit_16(710);
emit_16(644);
emit_16(710);
emit_16(643);
emit_16(710);
emit_16(644);
emit_16(711);
emit_16(645);
emit_16(711);
emit_16(644);
emit_16(711);
emit_16(645);
emit_16(712);
emit_16(646);
emit_16(712);
emit_16(645);
emit_16(712);
emit_16(646);
emit_16(713);
emit_16(647);
emit_16(713);
emit_16(646);
emit_16(713);
emit_16(647);
emit_16(714);
emit_16(648);
emit_16(714);
emit_16(647);
emit_16(714);
emit_16(648);
emit_16(715);
emit_16(649);
emit_16(715);
emit_16(648);
emit_16(715);
emit_16(649);
emit_16(716);
emit_16(650);
emit_16(716);
emit_16(649);
emit_16(716);
emit_16(650);
emit_16(717);
emit_16(651);
emit_16(717);
emit_16(650);
emit_16(717);
emit_16(651);
emit_16(718);
emit_16(652);
emit_16(718);
emit_16(651);
emit_16(718);
emit_16(652);
emit_16(719);
emit_16(653);
emit_16(719);
emit_16(652);
emit_16(719);
emit_16(653);
emit_16(720);
emit_16(654);
emit_16(720);
emit_16(653);
emit_16(720);
emit_16(654);
emit_16(721);
emit_16(655);
emit_16(721);
emit_16(654);
emit_16(721);
emit_16(655);
emit_16(722);
emit_16(656);
emit_16(722);
emit_16(655);
emit_16(722);
emit_16(656);
emit_16(723);
emit_16(657);
emit_16(723);
emit_16(656);
emit_16(723);
emit_16(657);
emit_16(724);
emit_16(658);
emit_16(724);
emit_16(657);
emit_16(724);
emit_16(658);
emit_16(725);
emit_16(659);
emit_16(725);
emit_16(658);
emit_16(726);
emit_16(660);
emit_16(727);
emit_16(661);
emit_16(727);
emit_16(660);
emit_16(727);
emit_16(661);
emit_16(728);
emit_16(662);
emit_16(728);
emit_16(661);
emit_16(728);
emit_16(662);
emit_16(729);
emit_16(663);
emit_16(729);
emit_16(662);
emit_16(729);
emit_16(663);
emit_16(730);
emit_16(664);
emit_16(730);
emit_16(663);
emit_16(730);
emit_16(664);
emit_16(731);
emit_16(665);
emit_16(731);
emit_16(664);
emit_16(731);
emit_16(665);
emit_16(732);
emit_16(666);
emit_16(732);
emit_16(665);
emit_16(732);
emit_16(666);
emit_16(733);
emit_16(667);
emit_16(733);
emit_16(666);
emit_16(733);
emit_16(667);
emit_16(734);
emit_16(668);
emit_16(734);
emit_16(667);
emit_16(734);
emit_16(668);
emit_16(735);
emit_16(669);
emit_16(735);
emit_16(668);
emit_16(735);
emit_16(669);
emit_16(736);
emit_16(670);
emit_16(736);
emit_16(669);
emit_16(736);
emit_16(670);
emit_16(737);
emit_16(671);
emit_16(737);
emit_16(670);
emit_16(737);
emit_16(671);
emit_16(738);
emit_16(672);
emit_16(738);
emit_16(671);
emit_16(738);
emit_16(672);
emit_16(739);
emit_16(673);
emit_16(739);
emit_16(672);
emit_16(739);
emit_16(673);
emit_16(740);
emit_16(674);
emit_16(740);
emit_16(673);
emit_16(740);
emit_16(674);
emit_16(741);
emit_16(675);
emit_16(741);
emit_16(674);
emit_16(741);
emit_16(675);
emit_16(742);
emit_16(676);
emit_16(742);
emit_16(675);
emit_16(742);
emit_16(676);
emit_16(743);
emit_16(677);
emit_16(743);
emit_16(676);
emit_16(743);
emit_16(677);
emit_16(744);
emit_16(678);
emit_16(744);
emit_16(677);
emit_16(744);
emit_16(678);
emit_16(745);
emit_16(679);
emit_16(745);
emit_16(678);
emit_16(745);
emit_16(679);
emit_16(746);
emit_16(680);
emit_16(746);
emit_16(679);
emit_16(746);
emit_16(680);
emit_16(747);
emit_16(681);
emit_16(747);
emit_16(680);
emit_16(747);
emit_16(681);
emit_16(748);
emit_16(682);
emit_16(748);
emit_16(681);
emit_16(748);
emit_16(682);
emit_16(749);
emit_16(683);
emit_16(749);
emit_16(682);
emit_16(749);
emit_16(683);
emit_16(750);
emit_16(684);
emit_16(750);
emit_16(683);
emit_16(750);
emit_16(684);
emit_16(751);
emit_16(685);
emit_16(751);
emit_16(684);
emit_16(751);
emit_16(685);
emit_16(752);
emit_16(686);
emit_16(752);
emit_16(685);
emit_16(752);
emit_16(686);
emit_16(753);
emit_16(687);
emit_16(753);
emit_16(686);
emit_16(753);
emit_16(687);
emit_16(754);
emit_16(688);
emit_16(754);
emit_16(687);
emit_16(754);
emit_16(688);
emit_16(755);
emit_16(689);
emit_16(755);
emit_16(688);
emit_16(755);
emit_16(689);
emit_16(756);
emit_16(690);
emit_16(756);
emit_16(689);
emit_16(756);
emit_16(690);
emit_16(757);
emit_16(691);
emit_16(757);
emit_16(690);
emit_16(757);
emit_16(691);
emit_16(758);
emit_16(692);
emit_16(758);
emit_16(691);
emit_16(758);
emit_16(692);
emit_16(759);
emit_16(693);
emit_16(759);
emit_16(692);
emit_16(759);
emit_16(693);
emit_16(760);
emit_16(694);
emit_16(760);
emit_16(693);
emit_16(760);
emit_16(694);
emit_16(761);
emit_16(695);
emit_16(761);
emit_16(694);
emit_16(761);
emit_16(695);
emit_16(762);
emit_16(696);
emit_16(762);
emit_16(695);
emit_16(762);
emit_16(696);
emit_16(763);
emit_16(697);
emit_16(763);
emit_16(696);
emit_16(763);
emit_16(697);
emit_16(764);
emit_16(698);
emit_16(764);
emit_16(697);
emit_16(764);
emit_16(698);
emit_16(765);
emit_16(699);
emit_16(765);
emit_16(698);
emit_16(765);
emit_16(699);
emit_16(766);
emit_16(700);
emit_16(766);
emit_16(699);
emit_16(766);
emit_16(700);
emit_16(767);
emit_16(701);
emit_16(767);
emit_16(700);
emit_16(767);
emit_16(701);
emit_16(768);
emit_16(702);
emit_16(768);
emit_16(701);
emit_16(768);
emit_16(702);
emit_16(769);
emit_16(703);
emit_16(769);
emit_16(702);
emit_16(769);
emit_16(703);
emit_16(770);
emit_16(704);
emit_16(770);
emit_16(703);
emit_16(770);
emit_16(704);
emit_16(771);
emit_16(705);
emit_16(771);
emit_16(704);
emit_16(771);
emit_16(705);
emit_16(772);
emit_16(706);
emit_16(772);
emit_16(705);
emit_16(772);
emit_16(706);
emit_16(773);
emit_16(707);
emit_16(773);
emit_16(706);
emit_16(773);
emit_16(707);
emit_16(774);
emit_16(708);
emit_16(774);
emit_16(707);
emit_16(774);
emit_16(708);
emit_16(775);
emit_16(709);
emit_16(775);
emit_16(708);
emit_16(775);
emit_16(709);
emit_16(776);
emit_16(710);
emit_16(776);
emit_16(709);
emit_16(776);
emit_16(710);
emit_16(777);
emit_16(711);
emit_16(777);
emit_16(710);
emit_16(777);
emit_16(711);
emit_16(778);
emit_16(712);
emit_16(778);
emit_16(711);
emit_16(778);
emit_16(712);
emit_16(779);
emit_16(713);
emit_16(779);
emit_16(712);
emit_16(779);
emit_16(713);
emit_16(780);
emit_16(714);
emit_16(780);
emit_16(713);
emit_16(780);
emit_16(714);
emit_16(781);
emit_16(715);
emit_16(781);
emit_16(714);
emit_16(781);
emit_16(715);
emit_16(782);
emit_16(716);
emit_16(782);
emit_16(715);
emit_16(782);
emit_16(716);
emit_16(783);
emit_16(717);
emit_16(783);
emit_16(716);
emit_16(783);
emit_16(717);
emit_16(784);
emit_16(718);
emit_16(784);
emit_16(717);
emit_16(784);
emit_16(718);
emit_16(785);
emit_16(719);
emit_16(785);
emit_16(718);
emit_16(785);
emit_16(719);
emit_16(786);
emit_16(720);
emit_16(786);
emit_16(719);
emit_16(786);
emit_16(720);
emit_16(787);
emit_16(721);
emit_16(787);
emit_16(720);
emit_16(787);
emit_16(721);
emit_16(788);
emit_16(722);
emit_16(788);
emit_16(721);
emit_16(788);
emit_16(722);
emit_16(789);
emit_16(723);
emit_16(789);
emit_16(722);
emit_16(789);
emit_16(723);
emit_16(790);
emit_16(724);
emit_16(790);
emit_16(723);
emit_16(790);
emit_16(724);
emit_16(791);
emit_16(725);
emit_16(791);
emit_16(724);
emit_16(792);
emit_16(726);
emit_16(793);
emit_16(727);
emit_16(793);
emit_16(726);
emit_16(793);
emit_16(727);
emit_16(794);
emit_16(728);
emit_16(794);
emit_16(727);
emit_16(794);
emit_16(728);
emit_16(795);
emit_16(729);
emit_16(795);
emit_16(728);
emit_16(795);
emit_16(729);
emit_16(796);
emit_16(730);
emit_16(796);
emit_16(729);
emit_16(796);
emit_16(730);
emit_16(797);
emit_16(731);
emit_16(797);
emit_16(730);
emit_16(797);
emit_16(731);
emit_16(798);
emit_16(732);
emit_16(798);
emit_16(731);
emit_16(798);
emit_16(732);
emit_16(799);
emit_16(733);
emit_16(799);
emit_16(732);
emit_16(799);
emit_16(733);
emit_16(800);
emit_16(734);
emit_16(800);
emit_16(733);
emit_16(800);
emit_16(734);
emit_16(801);
emit_16(735);
emit_16(801);
emit_16(734);
emit_16(801);
emit_16(735);
emit_16(802);
emit_16(736);
emit_16(802);
emit_16(735);
emit_16(802);
emit_16(736);
emit_16(803);
emit_16(737);
emit_16(803);
emit_16(736);
emit_16(803);
emit_16(737);
emit_16(804);
emit_16(738);
emit_16(804);
emit_16(737);
emit_16(804);
emit_16(738);
emit_16(805);
emit_16(739);
emit_16(805);
emit_16(738);
emit_16(805);
emit_16(739);
emit_16(806);
emit_16(740);
emit_16(806);
emit_16(739);
emit_16(806);
emit_16(740);
emit_16(807);
emit_16(741);
emit_16(807);
emit_16(740);
emit_16(807);
emit_16(741);
emit_16(808);
emit_16(742);
emit_16(808);
emit_16(741);
emit_16(808);
emit_16(742);
emit_16(809);
emit_16(743);
emit_16(809);
emit_16(742);
emit_16(809);
emit_16(743);
emit_16(810);
emit_16(744);
emit_16(810);
emit_16(743);
emit_16(810);
emit_16(744);
emit_16(811);
emit_16(745);
emit_16(811);
emit_16(744);
emit_16(811);
emit_16(745);
emit_16(812);
emit_16(746);
emit_16(812);
emit_16(745);
emit_16(812);
emit_16(746);
emit_16(813);
emit_16(747);
emit_16(813);
emit_16(746);
emit_16(813);
emit_16(747);
emit_16(814);
emit_16(748);
emit_16(814);
emit_16(747);
emit_16(814);
emit_16(748);
emit_16(815);
emit_16(749);
emit_16(815);
emit_16(748);
emit_16(815);
emit_16(749);
emit_16(816);
emit_16(750);
emit_16(816);
emit_16(749);
emit_16(816);
emit_16(750);
emit_16(817);
emit_16(751);
emit_16(817);
emit_16(750);
emit_16(817);
emit_16(751);
emit_16(818);
emit_16(752);
emit_16(818);
emit_16(751);
emit_16(818);
emit_16(752);
emit_16(819);
emit_16(753);
emit_16(819);
emit_16(752);
emit_16(819);
emit_16(753);
emit_16(820);
emit_16(754);
emit_16(820);
emit_16(753);
emit_16(820);
emit_16(754);
emit_16(821);
emit_16(755);
emit_16(821);
emit_16(754);
emit_16(821);
emit_16(755);
emit_16(822);
emit_16(756);
emit_16(822);
emit_16(755);
emit_16(822);
emit_16(756);
emit_16(823);
emit_16(757);
emit_16(823);
emit_16(756);
emit_16(823);
emit_16(757);
emit_16(824);
emit_16(758);
emit_16(824);
emit_16(757);
emit_16(824);
emit_16(758);
emit_16(825);
emit_16(759);
emit_16(825);
emit_16(758);
emit_16(825);
emit_16(759);
emit_16(826);
emit_16(760);
emit_16(826);
emit_16(759);
emit_16(826);
emit_16(760);
emit_16(827);
emit_16(761);
emit_16(827);
emit_16(760);
emit_16(827);
emit_16(761);
emit_16(828);
emit_16(762);
emit_16(828);
emit_16(761);
emit_16(828);
emit_16(762);
emit_16(829);
emit_16(763);
emit_16(829);
emit_16(762);
emit_16(829);
emit_16(763);
emit_16(830);
emit_16(764);
emit_16(830);
emit_16(763);
emit_16(830);
emit_16(764);
emit_16(831);
emit_16(765);
emit_16(831);
emit_16(764);
emit_16(831);
emit_16(765);
emit_16(832);
emit_16(766);
emit_16(832);
emit_16(765);
emit_16(832);
emit_16(766);
emit_16(833);
emit_16(767);
emit_16(833);
emit_16(766);
emit_16(833);
emit_16(767);
emit_16(834);
emit_16(768);
emit_16(834);
emit_16(767);
emit_16(834);
emit_16(768);
emit_16(835);
emit_16(769);
emit_16(835);
emit_16(768);
emit_16(835);
emit_16(769);
emit_16(836);
emit_16(770);
emit_16(836);
emit_16(769);
emit_16(836);
emit_16(770);
emit_16(837);
emit_16(771);
emit_16(837);
emit_16(770);
emit_16(837);
emit_16(771);
emit_16(838);
emit_16(772);
emit_16(838);
emit_16(771);
emit_16(838);
emit_16(772);
emit_16(839);
emit_16(773);
emit_16(839);
emit_16(772);
emit_16(839);
emit_16(773);
emit_16(840);
emit_16(774);
emit_16(840);
emit_16(773);
emit_16(840);
emit_16(774);
emit_16(841);
emit_16(775);
emit_16(841);
emit_16(774);
emit_16(841);
emit_16(775);
emit_16(842);
emit_16(776);
emit_16(842);
emit_16(775);
emit_16(842);
emit_16(776);
emit_16(843);
emit_16(777);
emit_16(843);
emit_16(776);
emit_16(843);
emit_16(777);
emit_16(844);
emit_16(778);
emit_16(844);
emit_16(777);
emit_16(844);
emit_16(778);
emit_16(845);
emit_16(779);
emit_16(845);
emit_16(778);
emit_16(845);
emit_16(779);
emit_16(846);
emit_16(780);
emit_16(846);
emit_16(779);
emit_16(846);
emit_16(780);
emit_16(847);
emit_16(781);
emit_16(847);
emit_16(780);
emit_16(847);
emit_16(781);
emit_16(848);
emit_16(782);
emit_16(848);
emit_16(781);
emit_16(848);
emit_16(782);
emit_16(849);
emit_16(783);
emit_16(849);
emit_16(782);
emit_16(849);
emit_16(783);
emit_16(850);
emit_16(784);
emit_16(850);
emit_16(783);
emit_16(850);
emit_16(784);
emit_16(851);
emit_16(785);
emit_16(851);
emit_16(784);
emit_16(851);
emit_16(785);
emit_16(852);
emit_16(786);
emit_16(852);
emit_16(785);
emit_16(852);
emit_16(786);
emit_16(853);
emit_16(787);
emit_16(853);
emit_16(786);
emit_16(853);
emit_16(787);
emit_16(854);
emit_16(788);
emit_16(854);
emit_16(787);
emit_16(854);
emit_16(788);
emit_16(855);
emit_16(789);
emit_16(855);
emit_16(788);
emit_16(855);
emit_16(789);
emit_16(856);
emit_16(790);
emit_16(856);
emit_16(789);
emit_16(856);
emit_16(790);
emit_16(857);
emit_16(791);
emit_16(857);
emit_16(790);
emit_16(858);
emit_16(792);
emit_16(859);
emit_16(793);
emit_16(859);
emit_16(792);
emit_16(859);
emit_16(793);
emit_16(860);
emit_16(794);
emit_16(860);
emit_16(793);
emit_16(860);
emit_16(794);
emit_16(861);
emit_16(795);
emit_16(861);
emit_16(794);
emit_16(861);
emit_16(795);
emit_16(862);
emit_16(796);
emit_16(862);
emit_16(795);
emit_16(862);
emit_16(796);
emit_16(863);
emit_16(797);
emit_16(863);
emit_16(796);
emit_16(863);
emit_16(797);
emit_16(864);
emit_16(798);
emit_16(864);
emit_16(797);
emit_16(864);
emit_16(798);
emit_16(865);
emit_16(799);
emit_16(865);
emit_16(798);
emit_16(865);
emit_16(799);
emit_16(866);
emit_16(800);
emit_16(866);
emit_16(799);
emit_16(866);
emit_16(800);
emit_16(867);
emit_16(801);
emit_16(867);
emit_16(800);
emit_16(867);
emit_16(801);
emit_16(868);
emit_16(802);
emit_16(868);
emit_16(801);
emit_16(868);
emit_16(802);
emit_16(869);
emit_16(803);
emit_16(869);
emit_16(802);
emit_16(869);
emit_16(803);
emit_16(870);
emit_16(804);
emit_16(870);
emit_16(803);
emit_16(870);
emit_16(804);
emit_16(871);
emit_16(805);
emit_16(871);
emit_16(804);
emit_16(871);
emit_16(805);
emit_16(872);
emit_16(806);
emit_16(872);
emit_16(805);
emit_16(872);
emit_16(806);
emit_16(873);
emit_16(807);
emit_16(873);
emit_16(806);
emit_16(873);
emit_16(807);
emit_16(874);
emit_16(808);
emit_16(874);
emit_16(807);
emit_16(874);
emit_16(808);
emit_16(875);
emit_16(809);
emit_16(875);
emit_16(808);
emit_16(875);
emit_16(809);
emit_16(876);
emit_16(810);
emit_16(876);
emit_16(809);
emit_16(876);
emit_16(810);
emit_16(877);
emit_16(811);
emit_16(877);
emit_16(810);
emit_16(877);
emit_16(811);
emit_16(878);
emit_16(812);
emit_16(878);
emit_16(811);
emit_16(878);
emit_16(812);
emit_16(879);
emit_16(813);
emit_16(879);
emit_16(812);
emit_16(879);
emit_16(813);
emit_16(880);
emit_16(814);
emit_16(880);
emit_16(813);
emit_16(880);
emit_16(814);
emit_16(881);
emit_16(815);
emit_16(881);
emit_16(814);
emit_16(881);
emit_16(815);
emit_16(882);
emit_16(816);
emit_16(882);
emit_16(815);
emit_16(882);
emit_16(816);
emit_16(883);
emit_16(817);
emit_16(883);
emit_16(816);
emit_16(883);
emit_16(817);
emit_16(884);
emit_16(818);
emit_16(884);
emit_16(817);
emit_16(884);
emit_16(818);
emit_16(885);
emit_16(819);
emit_16(885);
emit_16(818);
emit_16(885);
emit_16(819);
emit_16(886);
emit_16(820);
emit_16(886);
emit_16(819);
emit_16(886);
emit_16(820);
emit_16(887);
emit_16(821);
emit_16(887);
emit_16(820);
emit_16(887);
emit_16(821);
emit_16(888);
emit_16(822);
emit_16(888);
emit_16(821);
emit_16(888);
emit_16(822);
emit_16(889);
emit_16(823);
emit_16(889);
emit_16(822);
emit_16(889);
emit_16(823);
emit_16(890);
emit_16(824);
emit_16(890);
emit_16(823);
emit_16(890);
emit_16(824);
emit_16(891);
emit_16(825);
emit_16(891);
emit_16(824);
emit_16(891);
emit_16(825);
emit_16(892);
emit_16(826);
emit_16(892);
emit_16(825);
emit_16(892);
emit_16(826);
emit_16(893);
emit_16(827);
emit_16(893);
emit_16(826);
emit_16(893);
emit_16(827);
emit_16(894);
emit_16(828);
emit_16(894);
emit_16(827);
emit_16(894);
emit_16(828);
emit_16(895);
emit_16(829);
emit_16(895);
emit_16(828);
emit_16(895);
emit_16(829);
emit_16(896);
emit_16(830);
emit_16(896);
emit_16(829);
emit_16(896);
emit_16(830);
emit_16(897);
emit_16(831);
emit_16(897);
emit_16(830);
emit_16(897);
emit_16(831);
emit_16(898);
emit_16(832);
emit_16(898);
emit_16(831);
emit_16(898);
emit_16(832);
emit_16(899);
emit_16(833);
emit_16(899);
emit_16(832);
emit_16(899);
emit_16(833);
emit_16(900);
emit_16(834);
emit_16(900);
emit_16(833);
emit_16(900);
emit_16(834);
emit_16(901);
emit_16(835);
emit_16(901);
emit_16(834);
emit_16(901);
emit_16(835);
emit_16(902);
emit_16(836);
emit_16(902);
emit_16(835);
emit_16(902);
emit_16(836);
emit_16(903);
emit_16(837);
emit_16(903);
emit_16(836);
emit_16(903);
emit_16(837);
emit_16(904);
emit_16(838);
emit_16(904);
emit_16(837);
emit_16(904);
emit_16(838);
emit_16(905);
emit_16(839);
emit_16(905);
emit_16(838);
emit_16(905);
emit_16(839);
emit_16(906);
emit_16(840);
emit_16(906);
emit_16(839);
emit_16(906);
emit_16(840);
emit_16(907);
emit_16(841);
emit_16(907);
emit_16(840);
emit_16(907);
emit_16(841);
emit_16(908);
emit_16(842);
emit_16(908);
emit_16(841);
emit_16(908);
emit_16(842);
emit_16(909);
emit_16(843);
emit_16(909);
emit_16(842);
emit_16(909);
emit_16(843);
emit_16(910);
emit_16(844);
emit_16(910);
emit_16(843);
emit_16(910);
emit_16(844);
emit_16(911);
emit_16(845);
emit_16(911);
emit_16(844);
emit_16(911);
emit_16(845);
emit_16(912);
emit_16(846);
emit_16(912);
emit_16(845);
emit_16(912);
emit_16(846);
emit_16(913);
emit_16(847);
emit_16(913);
emit_16(846);
emit_16(913);
emit_16(847);
emit_16(914);
emit_16(848);
emit_16(914);
emit_16(847);
emit_16(914);
emit_16(848);
emit_16(915);
emit_16(849);
emit_16(915);
emit_16(848);
emit_16(915);
emit_16(849);
emit_16(916);
emit_16(850);
emit_16(916);
emit_16(849);
emit_16(916);
emit_16(850);
emit_16(917);
emit_16(851);
emit_16(917);
emit_16(850);
emit_16(917);
emit_16(851);
emit_16(918);
emit_16(852);
emit_16(918);
emit_16(851);
emit_16(918);
emit_16(852);
emit_16(919);
emit_16(853);
emit_16(919);
emit_16(852);
emit_16(919);
emit_16(853);
emit_16(920);
emit_16(854);
emit_16(920);
emit_16(853);
emit_16(920);
emit_16(854);
emit_16(921);
emit_16(855);
emit_16(921);
emit_16(854);
emit_16(921);
emit_16(855);
emit_16(922);
emit_16(856);
emit_16(922);
emit_16(855);
emit_16(922);
emit_16(856);
emit_16(923);
emit_16(857);
emit_16(923);
emit_16(856);
emit_16(924);
emit_16(858);
emit_16(925);
emit_16(859);
emit_16(925);
emit_16(858);
emit_16(925);
emit_16(859);
emit_16(926);
emit_16(860);
emit_16(926);
emit_16(859);
emit_16(926);
emit_16(860);
emit_16(927);
emit_16(861);
emit_16(927);
emit_16(860);
emit_16(927);
emit_16(861);
emit_16(928);
emit_16(862);
emit_16(928);
emit_16(861);
emit_16(928);
emit_16(862);
emit_16(929);
emit_16(863);
emit_16(929);
emit_16(862);
emit_16(929);
emit_16(863);
emit_16(930);
emit_16(864);
emit_16(930);
emit_16(863);
emit_16(930);
emit_16(864);
emit_16(931);
emit_16(865);
emit_16(931);
emit_16(864);
emit_16(931);
emit_16(865);
emit_16(932);
emit_16(866);
emit_16(932);
emit_16(865);
emit_16(932);
emit_16(866);
emit_16(933);
emit_16(867);
emit_16(933);
emit_16(866);
emit_16(933);
emit_16(867);
emit_16(934);
emit_16(868);
emit_16(934);
emit_16(867);
emit_16(934);
emit_16(868);
emit_16(935);
emit_16(869);
emit_16(935);
emit_16(868);
emit_16(935);
emit_16(869);
emit_16(936);
emit_16(870);
emit_16(936);
emit_16(869);
emit_16(936);
emit_16(870);
emit_16(937);
emit_16(871);
emit_16(937);
emit_16(870);
emit_16(937);
emit_16(871);
emit_16(938);
emit_16(872);
emit_16(938);
emit_16(871);
emit_16(938);
emit_16(872);
emit_16(939);
emit_16(873);
emit_16(939);
emit_16(872);
emit_16(939);
emit_16(873);
emit_16(940);
emit_16(874);
emit_16(940);
emit_16(873);
emit_16(940);
emit_16(874);
emit_16(941);
emit_16(875);
emit_16(941);
emit_16(874);
emit_16(941);
emit_16(875);
emit_16(942);
emit_16(876);
emit_16(942);
emit_16(875);
emit_16(942);
emit_16(876);
emit_16(943);
emit_16(877);
emit_16(943);
emit_16(876);
emit_16(943);
emit_16(877);
emit_16(944);
emit_16(878);
emit_16(944);
emit_16(877);
emit_16(944);
emit_16(878);
emit_16(945);
emit_16(879);
emit_16(945);
emit_16(878);
emit_16(945);
emit_16(879);
emit_16(946);
emit_16(880);
emit_16(946);
emit_16(879);
emit_16(946);
emit_16(880);
emit_16(947);
emit_16(881);
emit_16(947);
emit_16(880);
emit_16(947);
emit_16(881);
emit_16(948);
emit_16(882);
emit_16(948);
emit_16(881);
emit_16(948);
emit_16(882);
emit_16(949);
emit_16(883);
emit_16(949);
emit_16(882);
emit_16(949);
emit_16(883);
emit_16(950);
emit_16(884);
emit_16(950);
emit_16(883);
emit_16(950);
emit_16(884);
emit_16(951);
emit_16(885);
emit_16(951);
emit_16(884);
emit_16(951);
emit_16(885);
emit_16(952);
emit_16(886);
emit_16(952);
emit_16(885);
emit_16(952);
emit_16(886);
emit_16(953);
emit_16(887);
emit_16(953);
emit_16(886);
emit_16(953);
emit_16(887);
emit_16(954);
emit_16(888);
emit_16(954);
emit_16(887);
emit_16(954);
emit_16(888);
emit_16(955);
emit_16(889);
emit_16(955);
emit_16(888);
emit_16(955);
emit_16(889);
emit_16(956);
emit_16(890);
emit_16(956);
emit_16(889);
emit_16(956);
emit_16(890);
emit_16(957);
emit_16(891);
emit_16(957);
emit_16(890);
emit_16(957);
emit_16(891);
emit_16(958);
emit_16(892);
emit_16(958);
emit_16(891);
emit_16(958);
emit_16(892);
emit_16(959);
emit_16(893);
emit_16(959);
emit_16(892);
emit_16(959);
emit_16(893);
emit_16(960);
emit_16(894);
emit_16(960);
emit_16(893);
emit_16(960);
emit_16(894);
emit_16(961);
emit_16(895);
emit_16(961);
emit_16(894);
emit_16(961);
emit_16(895);
emit_16(962);
emit_16(896);
emit_16(962);
emit_16(895);
emit_16(962);
emit_16(896);
emit_16(963);
emit_16(897);
emit_16(963);
emit_16(896);
emit_16(963);
emit_16(897);
emit_16(964);
emit_16(898);
emit_16(964);
emit_16(897);
emit_16(964);
emit_16(898);
emit_16(965);
emit_16(899);
emit_16(965);
emit_16(898);
emit_16(965);
emit_16(899);
emit_16(966);
emit_16(900);
emit_16(966);
emit_16(899);
emit_16(966);
emit_16(900);
emit_16(967);
emit_16(901);
emit_16(967);
emit_16(900);
emit_16(967);
emit_16(901);
emit_16(968);
emit_16(902);
emit_16(968);
emit_16(901);
emit_16(968);
emit_16(902);
emit_16(969);
emit_16(903);
emit_16(969);
emit_16(902);
emit_16(969);
emit_16(903);
emit_16(970);
emit_16(904);
emit_16(970);
emit_16(903);
emit_16(970);
emit_16(904);
emit_16(971);
emit_16(905);
emit_16(971);
emit_16(904);
emit_16(971);
emit_16(905);
emit_16(972);
emit_16(906);
emit_16(972);
emit_16(905);
emit_16(972);
emit_16(906);
emit_16(973);
emit_16(907);
emit_16(973);
emit_16(906);
emit_16(973);
emit_16(907);
emit_16(974);
emit_16(908);
emit_16(974);
emit_16(907);
emit_16(974);
emit_16(908);
emit_16(975);
emit_16(909);
emit_16(975);
emit_16(908);
emit_16(975);
emit_16(909);
emit_16(976);
emit_16(910);
emit_16(976);
emit_16(909);
emit_16(976);
emit_16(910);
emit_16(977);
emit_16(911);
emit_16(977);
emit_16(910);
emit_16(977);
emit_16(911);
emit_16(978);
emit_16(912);
emit_16(978);
emit_16(911);
emit_16(978);
emit_16(912);
emit_16(979);
emit_16(913);
emit_16(979);
emit_16(912);
emit_16(979);
emit_16(913);
emit_16(980);
emit_16(914);
emit_16(980);
emit_16(913);
emit_16(980);
emit_16(914);
emit_16(981);
emit_16(915);
emit_16(981);
emit_16(914);
emit_16(981);
emit_16(915);
emit_16(982);
emit_16(916);
emit_16(982);
emit_16(915);
emit_16(982);
emit_16(916);
emit_16(983);
emit_16(917);
emit_16(983);
emit_16(916);
emit_16(983);
emit_16(917);
emit_16(984);
emit_16(918);
emit_16(984);
emit_16(917);
emit_16(984);
emit_16(918);
emit_16(985);
emit_16(919);
emit_16(985);
emit_16(918);
emit_16(985);
emit_16(919);
emit_16(986);
emit_16(920);
emit_16(986);
emit_16(919);
emit_16(986);
emit_16(920);
emit_16(987);
emit_16(921);
emit_16(987);
emit_16(920);
emit_16(987);
emit_16(921);
emit_16(988);
emit_16(922);
emit_16(988);
emit_16(921);
emit_16(988);
emit_16(922);
emit_16(989);
emit_16(923);
emit_16(989);
emit_16(922);
emit_16(990);
emit_16(924);
emit_16(991);
emit_16(925);
emit_16(991);
emit_16(924);
emit_16(991);
emit_16(925);
emit_16(992);
emit_16(926);
emit_16(992);
emit_16(925);
emit_16(992);
emit_16(926);
emit_16(993);
emit_16(927);
emit_16(993);
emit_16(926);
emit_16(993);
emit_16(927);
emit_16(994);
emit_16(928);
emit_16(994);
emit_16(927);
emit_16(994);
emit_16(928);
emit_16(995);
emit_16(929);
emit_16(995);
emit_16(928);
emit_16(995);
emit_16(929);
emit_16(996);
emit_16(930);
emit_16(996);
emit_16(929);
emit_16(996);
emit_16(930);
emit_16(997);
emit_16(931);
emit_16(997);
emit_16(930);
emit_16(997);
emit_16(931);
emit_16(998);
emit_16(932);
emit_16(998);
emit_16(931);
emit_16(998);
emit_16(932);
emit_16(999);
emit_16(933);
emit_16(999);
emit_16(932);
emit_16(999);
emit_16(933);
emit_16(1000);
emit_16(934);
emit_16(1000);
emit_16(933);
emit_16(1000);
emit_16(934);
emit_16(1001);
emit_16(935);
emit_16(1001);
emit_16(934);
emit_16(1001);
emit_16(935);
emit_16(1002);
emit_16(936);
emit_16(1002);
emit_16(935);
emit_16(1002);
emit_16(936);
emit_16(1003);
emit_16(937);
emit_16(1003);
emit_16(936);
emit_16(1003);
emit_16(937);
emit_16(1004);
emit_16(938);
emit_16(1004);
emit_16(937);
emit_16(1004);
emit_16(938);
emit_16(1005);
emit_16(939);
emit_16(1005);
emit_16(938);
emit_16(1005);
emit_16(939);
emit_16(1006);
emit_16(940);
emit_16(1006);
emit_16(939);
emit_16(1006);
emit_16(940);
emit_16(1007);
emit_16(941);
emit_16(1007);
emit_16(940);
emit_16(1007);
emit_16(941);
emit_16(1008);
emit_16(942);
emit_16(1008);
emit_16(941);
emit_16(1008);
emit_16(942);
emit_16(1009);
emit_16(943);
emit_16(1009);
emit_16(942);
emit_16(1009);
emit_16(943);
emit_16(1010);
emit_16(944);
emit_16(1010);
emit_16(943);
emit_16(1010);
emit_16(944);
emit_16(1011);
emit_16(945);
emit_16(1011);
emit_16(944);
emit_16(1011);
emit_16(945);
emit_16(1012);
emit_16(946);
emit_16(1012);
emit_16(945);
emit_16(1012);
emit_16(946);
emit_16(1013);
emit_16(947);
emit_16(1013);
emit_16(946);
emit_16(1013);
emit_16(947);
emit_16(1014);
emit_16(948);
emit_16(1014);
emit_16(947);
emit_16(1014);
emit_16(948);
emit_16(1015);
emit_16(949);
emit_16(1015);
emit_16(948);
emit_16(1015);
emit_16(949);
emit_16(1016);
emit_16(950);
emit_16(1016);
emit_16(949);
emit_16(1016);
emit_16(950);
emit_16(1017);
emit_16(951);
emit_16(1017);
emit_16(950);
emit_16(1017);
emit_16(951);
emit_16(1018);
emit_16(952);
emit_16(1018);
emit_16(951);
emit_16(1018);
emit_16(952);
emit_16(1019);
emit_16(953);
emit_16(1019);
emit_16(952);
emit_16(1019);
emit_16(953);
emit_16(1020);
emit_16(954);
emit_16(1020);
emit_16(953);
emit_16(1020);
emit_16(954);
emit_16(1021);
emit_16(955);
emit_16(1021);
emit_16(954);
emit_16(1021);
emit_16(955);
emit_16(1022);
emit_16(956);
emit_16(1022);
emit_16(955);
emit_16(1022);
emit_16(956);
emit_16(1023);
emit_16(957);
emit_16(1023);
emit_16(956);
emit_16(1023);
emit_16(957);
emit_16(1024);
emit_16(958);
emit_16(1024);
emit_16(957);
emit_16(1024);
emit_16(958);
emit_16(1025);
emit_16(959);
emit_16(1025);
emit_16(958);
emit_16(1025);
emit_16(959);
emit_16(1026);
emit_16(960);
emit_16(1026);
emit_16(959);
emit_16(1026);
emit_16(960);
emit_16(1027);
emit_16(961);
emit_16(1027);
emit_16(960);
emit_16(1027);
emit_16(961);
emit_16(1028);
emit_16(962);
emit_16(1028);
emit_16(961);
emit_16(1028);
emit_16(962);
emit_16(1029);
emit_16(963);
emit_16(1029);
emit_16(962);
emit_16(1029);
emit_16(963);
emit_16(1030);
emit_16(964);
emit_16(1030);
emit_16(963);
emit_16(1030);
emit_16(964);
emit_16(1031);
emit_16(965);
emit_16(1031);
emit_16(964);
emit_16(1031);
emit_16(965);
emit_16(1032);
emit_16(966);
emit_16(1032);
emit_16(965);
emit_16(1032);
emit_16(966);
emit_16(1033);
emit_16(967);
emit_16(1033);
emit_16(966);
emit_16(1033);
emit_16(967);
emit_16(1034);
emit_16(968);
emit_16(1034);
emit_16(967);
emit_16(1034);
emit_16(968);
emit_16(1035);
emit_16(969);
emit_16(1035);
emit_16(968);
emit_16(1035);
emit_16(969);
emit_16(1036);
emit_16(970);
emit_16(1036);
emit_16(969);
emit_16(1036);
emit_16(970);
emit_16(1037);
emit_16(971);
emit_16(1037);
emit_16(970);
emit_16(1037);
emit_16(971);
emit_16(1038);
emit_16(972);
emit_16(1038);
emit_16(971);
emit_16(1038);
emit_16(972);
emit_16(1039);
emit_16(973);
emit_16(1039);
emit_16(972);
emit_16(1039);
emit_16(973);
emit_16(1040);
emit_16(974);
emit_16(1040);
emit_16(973);
emit_16(1040);
emit_16(974);
emit_16(1041);
emit_16(975);
emit_16(1041);
emit_16(974);
emit_16(1041);
emit_16(975);
emit_16(1042);
emit_16(976);
emit_16(1042);
emit_16(975);
emit_16(1042);
emit_16(976);
emit_16(1043);
emit_16(977);
emit_16(1043);
emit_16(976);
emit_16(1043);
emit_16(977);
emit_16(1044);
emit_16(978);
emit_16(1044);
emit_16(977);
emit_16(1044);
emit_16(978);
emit_16(1045);
emit_16(979);
emit_16(1045);
emit_16(978);
emit_16(1045);
emit_16(979);
emit_16(1046);
emit_16(980);
emit_16(1046);
emit_16(979);
emit_16(1046);
emit_16(980);
emit_16(1047);
emit_16(981);
emit_16(1047);
emit_16(980);
emit_16(1047);
emit_16(981);
emit_16(1048);
emit_16(982);
emit_16(1048);
emit_16(981);
emit_16(1048);
emit_16(982);
emit_16(1049);
emit_16(983);
emit_16(1049);
emit_16(982);
emit_16(1049);
emit_16(983);
emit_16(1050);
emit_16(984);
emit_16(1050);
emit_16(983);
emit_16(1050);
emit_16(984);
emit_16(1051);
emit_16(985);
emit_16(1051);
emit_16(984);
emit_16(1051);
emit_16(985);
emit_16(1052);
emit_16(986);
emit_16(1052);
emit_16(985);
emit_16(1052);
emit_16(986);
emit_16(1053);
emit_16(987);
emit_16(1053);
emit_16(986);
emit_16(1053);
emit_16(987);
emit_16(1054);
emit_16(988);
emit_16(1054);
emit_16(987);
emit_16(1054);
emit_16(988);
emit_16(1055);
emit_16(989);
emit_16(1055);
emit_16(988);
emit_16(1056);
emit_16(990);
emit_16(1057);
emit_16(991);
emit_16(1057);
emit_16(990);
emit_16(1057);
emit_16(991);
emit_16(1058);
emit_16(992);
emit_16(1058);
emit_16(991);
emit_16(1058);
emit_16(992);
emit_16(1059);
emit_16(993);
emit_16(1059);
emit_16(992);
emit_16(1059);
emit_16(993);
emit_16(1060);
emit_16(994);
emit_16(1060);
emit_16(993);
emit_16(1060);
emit_16(994);
emit_16(1061);
emit_16(995);
emit_16(1061);
emit_16(994);
emit_16(1061);
emit_16(995);
emit_16(1062);
emit_16(996);
emit_16(1062);
emit_16(995);
emit_16(1062);
emit_16(996);
emit_16(1063);
emit_16(997);
emit_16(1063);
emit_16(996);
emit_16(1063);
emit_16(997);
emit_16(1064);
emit_16(998);
emit_16(1064);
emit_16(997);
emit_16(1064);
emit_16(998);
emit_16(1065);
emit_16(999);
emit_16(1065);
emit_16(998);
emit_16(1065);
emit_16(999);
emit_16(1066);
emit_16(1000);
emit_16(1066);
emit_16(999);
emit_16(1066);
emit_16(1000);
emit_16(1067);
emit_16(1001);
emit_16(1067);
emit_16(1000);
emit_16(1067);
emit_16(1001);
emit_16(1068);
emit_16(1002);
emit_16(1068);
emit_16(1001);
emit_16(1068);
emit_16(1002);
emit_16(1069);
emit_16(1003);
emit_16(1069);
emit_16(1002);
emit_16(1069);
emit_16(1003);
emit_16(1070);
emit_16(1004);
emit_16(1070);
emit_16(1003);
emit_16(1070);
emit_16(1004);
emit_16(1071);
emit_16(1005);
emit_16(1071);
emit_16(1004);
emit_16(1071);
emit_16(1005);
emit_16(1072);
emit_16(1006);
emit_16(1072);
emit_16(1005);
emit_16(1072);
emit_16(1006);
emit_16(1073);
emit_16(1007);
emit_16(1073);
emit_16(1006);
emit_16(1073);
emit_16(1007);
emit_16(1074);
emit_16(1008);
emit_16(1074);
emit_16(1007);
emit_16(1074);
emit_16(1008);
emit_16(1075);
emit_16(1009);
emit_16(1075);
emit_16(1008);
emit_16(1075);
emit_16(1009);
emit_16(1076);
emit_16(1010);
emit_16(1076);
emit_16(1009);
emit_16(1076);
emit_16(1010);
emit_16(1077);
emit_16(1011);
emit_16(1077);
emit_16(1010);
emit_16(1077);
emit_16(1011);
emit_16(1078);
emit_16(1012);
emit_16(1078);
emit_16(1011);
emit_16(1078);
emit_16(1012);
emit_16(1079);
emit_16(1013);
emit_16(1079);
emit_16(1012);
emit_16(1079);
emit_16(1013);
emit_16(1080);
emit_16(1014);
emit_16(1080);
emit_16(1013);
emit_16(1080);
emit_16(1014);
emit_16(1081);
emit_16(1015);
emit_16(1081);
emit_16(1014);
emit_16(1081);
emit_16(1015);
emit_16(1082);
emit_16(1016);
emit_16(1082);
emit_16(1015);
emit_16(1082);
emit_16(1016);
emit_16(1083);
emit_16(1017);
emit_16(1083);
emit_16(1016);
emit_16(1083);
emit_16(1017);
emit_16(1084);
emit_16(1018);
emit_16(1084);
emit_16(1017);
emit_16(1084);
emit_16(1018);
emit_16(1085);
emit_16(1019);
emit_16(1085);
emit_16(1018);
emit_16(1085);
emit_16(1019);
emit_16(1086);
emit_16(1020);
emit_16(1086);
emit_16(1019);
emit_16(1086);
emit_16(1020);
emit_16(1087);
emit_16(1021);
emit_16(1087);
emit_16(1020);
emit_16(1087);
emit_16(1021);
emit_16(1088);
emit_16(1022);
emit_16(1088);
emit_16(1021);
emit_16(1088);
emit_16(1022);
emit_16(1089);
emit_16(1023);
emit_16(1089);
emit_16(1022);
emit_16(1089);
emit_16(1023);
emit_16(1090);
emit_16(1024);
emit_16(1090);
emit_16(1023);
emit_16(1090);
emit_16(1024);
emit_16(1091);
emit_16(1025);
emit_16(1091);
emit_16(1024);
emit_16(1091);
emit_16(1025);
emit_16(1092);
emit_16(1026);
emit_16(1092);
emit_16(1025);
emit_16(1092);
emit_16(1026);
emit_16(1093);
emit_16(1027);
emit_16(1093);
emit_16(1026);
emit_16(1093);
emit_16(1027);
emit_16(1094);
emit_16(1028);
emit_16(1094);
emit_16(1027);
emit_16(1094);
emit_16(1028);
emit_16(1095);
emit_16(1029);
emit_16(1095);
emit_16(1028);
emit_16(1095);
emit_16(1029);
emit_16(1096);
emit_16(1030);
emit_16(1096);
emit_16(1029);
emit_16(1096);
emit_16(1030);
emit_16(1097);
emit_16(1031);
emit_16(1097);
emit_16(1030);
emit_16(1097);
emit_16(1031);
emit_16(1098);
emit_16(1032);
emit_16(1098);
emit_16(1031);
emit_16(1098);
emit_16(1032);
emit_16(1099);
emit_16(1033);
emit_16(1099);
emit_16(1032);
emit_16(1099);
emit_16(1033);
emit_16(1100);
emit_16(1034);
emit_16(1100);
emit_16(1033);
emit_16(1100);
emit_16(1034);
emit_16(1101);
emit_16(1035);
emit_16(1101);
emit_16(1034);
emit_16(1101);
emit_16(1035);
emit_16(1102);
emit_16(1036);
emit_16(1102);
emit_16(1035);
emit_16(1102);
emit_16(1036);
emit_16(1103);
emit_16(1037);
emit_16(1103);
emit_16(1036);
emit_16(1103);
emit_16(1037);
emit_16(1104);
emit_16(1038);
emit_16(1104);
emit_16(1037);
emit_16(1104);
emit_16(1038);
emit_16(1105);
emit_16(1039);
emit_16(1105);
emit_16(1038);
emit_16(1105);
emit_16(1039);
emit_16(1106);
emit_16(1040);
emit_16(1106);
emit_16(1039);
emit_16(1106);
emit_16(1040);
emit_16(1107);
emit_16(1041);
emit_16(1107);
emit_16(1040);
emit_16(1107);
emit_16(1041);
emit_16(1108);
emit_16(1042);
emit_16(1108);
emit_16(1041);
emit_16(1108);
emit_16(1042);
emit_16(1109);
emit_16(1043);
emit_16(1109);
emit_16(1042);
emit_16(1109);
emit_16(1043);
emit_16(1110);
emit_16(1044);
emit_16(1110);
emit_16(1043);
emit_16(1110);
emit_16(1044);
emit_16(1111);
emit_16(1045);
emit_16(1111);
emit_16(1044);
emit_16(1111);
emit_16(1045);
emit_16(1112);
emit_16(1046);
emit_16(1112);
emit_16(1045);
emit_16(1112);
emit_16(1046);
emit_16(1113);
emit_16(1047);
emit_16(1113);
emit_16(1046);
emit_16(1113);
emit_16(1047);
emit_16(1114);
emit_16(1048);
emit_16(1114);
emit_16(1047);
emit_16(1114);
emit_16(1048);
emit_16(1115);
emit_16(1049);
emit_16(1115);
emit_16(1048);
emit_16(1115);
emit_16(1049);
emit_16(1116);
emit_16(1050);
emit_16(1116);
emit_16(1049);
emit_16(1116);
emit_16(1050);
emit_16(1117);
emit_16(1051);
emit_16(1117);
emit_16(1050);
emit_16(1117);
emit_16(1051);
emit_16(1118);
emit_16(1052);
emit_16(1118);
emit_16(1051);
emit_16(1118);
emit_16(1052);
emit_16(1119);
emit_16(1053);
emit_16(1119);
emit_16(1052);
emit_16(1119);
emit_16(1053);
emit_16(1120);
emit_16(1054);
emit_16(1120);
emit_16(1053);
emit_16(1120);
emit_16(1054);
emit_16(1121);
emit_16(1055);
emit_16(1121);
emit_16(1054);
emit_16(1122);
emit_16(1056);
emit_16(1123);
emit_16(1057);
emit_16(1123);
emit_16(1056);
emit_16(1123);
emit_16(1057);
emit_16(1124);
emit_16(1058);
emit_16(1124);
emit_16(1057);
emit_16(1124);
emit_16(1058);
emit_16(1125);
emit_16(1059);
emit_16(1125);
emit_16(1058);
emit_16(1125);
emit_16(1059);
emit_16(1126);
emit_16(1060);
emit_16(1126);
emit_16(1059);
emit_16(1126);
emit_16(1060);
emit_16(1127);
emit_16(1061);
emit_16(1127);
emit_16(1060);
emit_16(1127);
emit_16(1061);
emit_16(1128);
emit_16(1062);
emit_16(1128);
emit_16(1061);
emit_16(1128);
emit_16(1062);
emit_16(1129);
emit_16(1063);
emit_16(1129);
emit_16(1062);
emit_16(1129);
emit_16(1063);
emit_16(1130);
emit_16(1064);
emit_16(1130);
emit_16(1063);
emit_16(1130);
emit_16(1064);
emit_16(1131);
emit_16(1065);
emit_16(1131);
emit_16(1064);
emit_16(1131);
emit_16(1065);
emit_16(1132);
emit_16(1066);
emit_16(1132);
emit_16(1065);
emit_16(1132);
emit_16(1066);
emit_16(1133);
emit_16(1067);
emit_16(1133);
emit_16(1066);
emit_16(1133);
emit_16(1067);
emit_16(1134);
emit_16(1068);
emit_16(1134);
emit_16(1067);
emit_16(1134);
emit_16(1068);
emit_16(1135);
emit_16(1069);
emit_16(1135);
emit_16(1068);
emit_16(1135);
emit_16(1069);
emit_16(1136);
emit_16(1070);
emit_16(1136);
emit_16(1069);
emit_16(1136);
emit_16(1070);
emit_16(1137);
emit_16(1071);
emit_16(1137);
emit_16(1070);
emit_16(1137);
emit_16(1071);
emit_16(1138);
emit_16(1072);
emit_16(1138);
emit_16(1071);
emit_16(1138);
emit_16(1072);
emit_16(1139);
emit_16(1073);
emit_16(1139);
emit_16(1072);
emit_16(1139);
emit_16(1073);
emit_16(1140);
emit_16(1074);
emit_16(1140);
emit_16(1073);
emit_16(1140);
emit_16(1074);
emit_16(1141);
emit_16(1075);
emit_16(1141);
emit_16(1074);
emit_16(1141);
emit_16(1075);
emit_16(1142);
emit_16(1076);
emit_16(1142);
emit_16(1075);
emit_16(1142);
emit_16(1076);
emit_16(1143);
emit_16(1077);
emit_16(1143);
emit_16(1076);
emit_16(1143);
emit_16(1077);
emit_16(1144);
emit_16(1078);
emit_16(1144);
emit_16(1077);
emit_16(1144);
emit_16(1078);
emit_16(1145);
emit_16(1079);
emit_16(1145);
emit_16(1078);
emit_16(1145);
emit_16(1079);
emit_16(1146);
emit_16(1080);
emit_16(1146);
emit_16(1079);
emit_16(1146);
emit_16(1080);
emit_16(1147);
emit_16(1081);
emit_16(1147);
emit_16(1080);
emit_16(1147);
emit_16(1081);
emit_16(1148);
emit_16(1082);
emit_16(1148);
emit_16(1081);
emit_16(1148);
emit_16(1082);
emit_16(1149);
emit_16(1083);
emit_16(1149);
emit_16(1082);
emit_16(1149);
emit_16(1083);
emit_16(1150);
emit_16(1084);
emit_16(1150);
emit_16(1083);
emit_16(1150);
emit_16(1084);
emit_16(1151);
emit_16(1085);
emit_16(1151);
emit_16(1084);
emit_16(1151);
emit_16(1085);
emit_16(1152);
emit_16(1086);
emit_16(1152);
emit_16(1085);
emit_16(1152);
emit_16(1086);
emit_16(1153);
emit_16(1087);
emit_16(1153);
emit_16(1086);
emit_16(1153);
emit_16(1087);
emit_16(1154);
emit_16(1088);
emit_16(1154);
emit_16(1087);
emit_16(1154);
emit_16(1088);
emit_16(1155);
emit_16(1089);
emit_16(1155);
emit_16(1088);
emit_16(1155);
emit_16(1089);
emit_16(1156);
emit_16(1090);
emit_16(1156);
emit_16(1089);
emit_16(1156);
emit_16(1090);
emit_16(1157);
emit_16(1091);
emit_16(1157);
emit_16(1090);
emit_16(1157);
emit_16(1091);
emit_16(1158);
emit_16(1092);
emit_16(1158);
emit_16(1091);
emit_16(1158);
emit_16(1092);
emit_16(1159);
emit_16(1093);
emit_16(1159);
emit_16(1092);
emit_16(1159);
emit_16(1093);
emit_16(1160);
emit_16(1094);
emit_16(1160);
emit_16(1093);
emit_16(1160);
emit_16(1094);
emit_16(1161);
emit_16(1095);
emit_16(1161);
emit_16(1094);
emit_16(1161);
emit_16(1095);
emit_16(1162);
emit_16(1096);
emit_16(1162);
emit_16(1095);
emit_16(1162);
emit_16(1096);
emit_16(1163);
emit_16(1097);
emit_16(1163);
emit_16(1096);
emit_16(1163);
emit_16(1097);
emit_16(1164);
emit_16(1098);
emit_16(1164);
emit_16(1097);
emit_16(1164);
emit_16(1098);
emit_16(1165);
emit_16(1099);
emit_16(1165);
emit_16(1098);
emit_16(1165);
emit_16(1099);
emit_16(1166);
emit_16(1100);
emit_16(1166);
emit_16(1099);
emit_16(1166);
emit_16(1100);
emit_16(1167);
emit_16(1101);
emit_16(1167);
emit_16(1100);
emit_16(1167);
emit_16(1101);
emit_16(1168);
emit_16(1102);
emit_16(1168);
emit_16(1101);
emit_16(1168);
emit_16(1102);
emit_16(1169);
emit_16(1103);
emit_16(1169);
emit_16(1102);
emit_16(1169);
emit_16(1103);
emit_16(1170);
emit_16(1104);
emit_16(1170);
emit_16(1103);
emit_16(1170);
emit_16(1104);
emit_16(1171);
emit_16(1105);
emit_16(1171);
emit_16(1104);
emit_16(1171);
emit_16(1105);
emit_16(1172);
emit_16(1106);
emit_16(1172);
emit_16(1105);
emit_16(1172);
emit_16(1106);
emit_16(1173);
emit_16(1107);
emit_16(1173);
emit_16(1106);
emit_16(1173);
emit_16(1107);
emit_16(1174);
emit_16(1108);
emit_16(1174);
emit_16(1107);
emit_16(1174);
emit_16(1108);
emit_16(1175);
emit_16(1109);
emit_16(1175);
emit_16(1108);
emit_16(1175);
emit_16(1109);
emit_16(1176);
emit_16(1110);
emit_16(1176);
emit_16(1109);
emit_16(1176);
emit_16(1110);
emit_16(1177);
emit_16(1111);
emit_16(1177);
emit_16(1110);
emit_16(1177);
emit_16(1111);
emit_16(1178);
emit_16(1112);
emit_16(1178);
emit_16(1111);
emit_16(1178);
emit_16(1112);
emit_16(1179);
emit_16(1113);
emit_16(1179);
emit_16(1112);
emit_16(1179);
emit_16(1113);
emit_16(1180);
emit_16(1114);
emit_16(1180);
emit_16(1113);
emit_16(1180);
emit_16(1114);
emit_16(1181);
emit_16(1115);
emit_16(1181);
emit_16(1114);
emit_16(1181);
emit_16(1115);
emit_16(1182);
emit_16(1116);
emit_16(1182);
emit_16(1115);
emit_16(1182);
emit_16(1116);
emit_16(1183);
emit_16(1117);
emit_16(1183);
emit_16(1116);
emit_16(1183);
emit_16(1117);
emit_16(1184);
emit_16(1118);
emit_16(1184);
emit_16(1117);
emit_16(1184);
emit_16(1118);
emit_16(1185);
emit_16(1119);
emit_16(1185);
emit_16(1118);
emit_16(1185);
emit_16(1119);
emit_16(1186);
emit_16(1120);
emit_16(1186);
emit_16(1119);
emit_16(1186);
emit_16(1120);
emit_16(1187);
emit_16(1121);
emit_16(1187);
emit_16(1120);
emit_16(1188);
emit_16(1122);
emit_16(1189);
emit_16(1123);
emit_16(1189);
emit_16(1122);
emit_16(1189);
emit_16(1123);
emit_16(1190);
emit_16(1124);
emit_16(1190);
emit_16(1123);
emit_16(1190);
emit_16(1124);
emit_16(1191);
emit_16(1125);
emit_16(1191);
emit_16(1124);
emit_16(1191);
emit_16(1125);
emit_16(1192);
emit_16(1126);
emit_16(1192);
emit_16(1125);
emit_16(1192);
emit_16(1126);
emit_16(1193);
emit_16(1127);
emit_16(1193);
emit_16(1126);
emit_16(1193);
emit_16(1127);
emit_16(1194);
emit_16(1128);
emit_16(1194);
emit_16(1127);
emit_16(1194);
emit_16(1128);
emit_16(1195);
emit_16(1129);
emit_16(1195);
emit_16(1128);
emit_16(1195);
emit_16(1129);
emit_16(1196);
emit_16(1130);
emit_16(1196);
emit_16(1129);
emit_16(1196);
emit_16(1130);
emit_16(1197);
emit_16(1131);
emit_16(1197);
emit_16(1130);
emit_16(1197);
emit_16(1131);
emit_16(1198);
emit_16(1132);
emit_16(1198);
emit_16(1131);
emit_16(1198);
emit_16(1132);
emit_16(1199);
emit_16(1133);
emit_16(1199);
emit_16(1132);
emit_16(1199);
emit_16(1133);
emit_16(1200);
emit_16(1134);
emit_16(1200);
emit_16(1133);
emit_16(1200);
emit_16(1134);
emit_16(1201);
emit_16(1135);
emit_16(1201);
emit_16(1134);
emit_16(1201);
emit_16(1135);
emit_16(1202);
emit_16(1136);
emit_16(1202);
emit_16(1135);
emit_16(1202);
emit_16(1136);
emit_16(1203);
emit_16(1137);
emit_16(1203);
emit_16(1136);
emit_16(1203);
emit_16(1137);
emit_16(1204);
emit_16(1138);
emit_16(1204);
emit_16(1137);
emit_16(1204);
emit_16(1138);
emit_16(1205);
emit_16(1139);
emit_16(1205);
emit_16(1138);
emit_16(1205);
emit_16(1139);
emit_16(1206);
emit_16(1140);
emit_16(1206);
emit_16(1139);
emit_16(1206);
emit_16(1140);
emit_16(1207);
emit_16(1141);
emit_16(1207);
emit_16(1140);
emit_16(1207);
emit_16(1141);
emit_16(1208);
emit_16(1142);
emit_16(1208);
emit_16(1141);
emit_16(1208);
emit_16(1142);
emit_16(1209);
emit_16(1143);
emit_16(1209);
emit_16(1142);
emit_16(1209);
emit_16(1143);
emit_16(1210);
emit_16(1144);
emit_16(1210);
emit_16(1143);
emit_16(1210);
emit_16(1144);
emit_16(1211);
emit_16(1145);
emit_16(1211);
emit_16(1144);
emit_16(1211);
emit_16(1145);
emit_16(1212);
emit_16(1146);
emit_16(1212);
emit_16(1145);
emit_16(1212);
emit_16(1146);
emit_16(1213);
emit_16(1147);
emit_16(1213);
emit_16(1146);
emit_16(1213);
emit_16(1147);
emit_16(1214);
emit_16(1148);
emit_16(1214);
emit_16(1147);
emit_16(1214);
emit_16(1148);
emit_16(1215);
emit_16(1149);
emit_16(1215);
emit_16(1148);
emit_16(1215);
emit_16(1149);
emit_16(1216);
emit_16(1150);
emit_16(1216);
emit_16(1149);
emit_16(1216);
emit_16(1150);
emit_16(1217);
emit_16(1151);
emit_16(1217);
emit_16(1150);
emit_16(1217);
emit_16(1151);
emit_16(1218);
emit_16(1152);
emit_16(1218);
emit_16(1151);
emit_16(1218);
emit_16(1152);
emit_16(1219);
emit_16(1153);
emit_16(1219);
emit_16(1152);
emit_16(1219);
emit_16(1153);
emit_16(1220);
emit_16(1154);
emit_16(1220);
emit_16(1153);
emit_16(1220);
emit_16(1154);
emit_16(1221);
emit_16(1155);
emit_16(1221);
emit_16(1154);
emit_16(1221);
emit_16(1155);
emit_16(1222);
emit_16(1156);
emit_16(1222);
emit_16(1155);
emit_16(1222);
emit_16(1156);
emit_16(1223);
emit_16(1157);
emit_16(1223);
emit_16(1156);
emit_16(1223);
emit_16(1157);
emit_16(1224);
emit_16(1158);
emit_16(1224);
emit_16(1157);
emit_16(1224);
emit_16(1158);
emit_16(1225);
emit_16(1159);
emit_16(1225);
emit_16(1158);
emit_16(1225);
emit_16(1159);
emit_16(1226);
emit_16(1160);
emit_16(1226);
emit_16(1159);
emit_16(1226);
emit_16(1160);
emit_16(1227);
emit_16(1161);
emit_16(1227);
emit_16(1160);
emit_16(1227);
emit_16(1161);
emit_16(1228);
emit_16(1162);
emit_16(1228);
emit_16(1161);
emit_16(1228);
emit_16(1162);
emit_16(1229);
emit_16(1163);
emit_16(1229);
emit_16(1162);
emit_16(1229);
emit_16(1163);
emit_16(1230);
emit_16(1164);
emit_16(1230);
emit_16(1163);
emit_16(1230);
emit_16(1164);
emit_16(1231);
emit_16(1165);
emit_16(1231);
emit_16(1164);
emit_16(1231);
emit_16(1165);
emit_16(1232);
emit_16(1166);
emit_16(1232);
emit_16(1165);
emit_16(1232);
emit_16(1166);
emit_16(1233);
emit_16(1167);
emit_16(1233);
emit_16(1166);
emit_16(1233);
emit_16(1167);
emit_16(1234);
emit_16(1168);
emit_16(1234);
emit_16(1167);
emit_16(1234);
emit_16(1168);
emit_16(1235);
emit_16(1169);
emit_16(1235);
emit_16(1168);
emit_16(1235);
emit_16(1169);
emit_16(1236);
emit_16(1170);
emit_16(1236);
emit_16(1169);
emit_16(1236);
emit_16(1170);
emit_16(1237);
emit_16(1171);
emit_16(1237);
emit_16(1170);
emit_16(1237);
emit_16(1171);
emit_16(1238);
emit_16(1172);
emit_16(1238);
emit_16(1171);
emit_16(1238);
emit_16(1172);
emit_16(1239);
emit_16(1173);
emit_16(1239);
emit_16(1172);
emit_16(1239);
emit_16(1173);
emit_16(1240);
emit_16(1174);
emit_16(1240);
emit_16(1173);
emit_16(1240);
emit_16(1174);
emit_16(1241);
emit_16(1175);
emit_16(1241);
emit_16(1174);
emit_16(1241);
emit_16(1175);
emit_16(1242);
emit_16(1176);
emit_16(1242);
emit_16(1175);
emit_16(1242);
emit_16(1176);
emit_16(1243);
emit_16(1177);
emit_16(1243);
emit_16(1176);
emit_16(1243);
emit_16(1177);
emit_16(1244);
emit_16(1178);
emit_16(1244);
emit_16(1177);
emit_16(1244);
emit_16(1178);
emit_16(1245);
emit_16(1179);
emit_16(1245);
emit_16(1178);
emit_16(1245);
emit_16(1179);
emit_16(1246);
emit_16(1180);
emit_16(1246);
emit_16(1179);
emit_16(1246);
emit_16(1180);
emit_16(1247);
emit_16(1181);
emit_16(1247);
emit_16(1180);
emit_16(1247);
emit_16(1181);
emit_16(1248);
emit_16(1182);
emit_16(1248);
emit_16(1181);
emit_16(1248);
emit_16(1182);
emit_16(1249);
emit_16(1183);
emit_16(1249);
emit_16(1182);
emit_16(1249);
emit_16(1183);
emit_16(1250);
emit_16(1184);
emit_16(1250);
emit_16(1183);
emit_16(1250);
emit_16(1184);
emit_16(1251);
emit_16(1185);
emit_16(1251);
emit_16(1184);
emit_16(1251);
emit_16(1185);
emit_16(1252);
emit_16(1186);
emit_16(1252);
emit_16(1185);
emit_16(1252);
emit_16(1186);
emit_16(1253);
emit_16(1187);
emit_16(1253);
emit_16(1186);
emit_16(1254);
emit_16(1188);
emit_16(1255);
emit_16(1189);
emit_16(1255);
emit_16(1188);
emit_16(1255);
emit_16(1189);
emit_16(1256);
emit_16(1190);
emit_16(1256);
emit_16(1189);
emit_16(1256);
emit_16(1190);
emit_16(1257);
emit_16(1191);
emit_16(1257);
emit_16(1190);
emit_16(1257);
emit_16(1191);
emit_16(1258);
emit_16(1192);
emit_16(1258);
emit_16(1191);
emit_16(1258);
emit_16(1192);
emit_16(1259);
emit_16(1193);
emit_16(1259);
emit_16(1192);
emit_16(1259);
emit_16(1193);
emit_16(1260);
emit_16(1194);
emit_16(1260);
emit_16(1193);
emit_16(1260);
emit_16(1194);
emit_16(1261);
emit_16(1195);
emit_16(1261);
emit_16(1194);
emit_16(1261);
emit_16(1195);
emit_16(1262);
emit_16(1196);
emit_16(1262);
emit_16(1195);
emit_16(1262);
emit_16(1196);
emit_16(1263);
emit_16(1197);
emit_16(1263);
emit_16(1196);
emit_16(1263);
emit_16(1197);
emit_16(1264);
emit_16(1198);
emit_16(1264);
emit_16(1197);
emit_16(1264);
emit_16(1198);
emit_16(1265);
emit_16(1199);
emit_16(1265);
emit_16(1198);
emit_16(1265);
emit_16(1199);
emit_16(1266);
emit_16(1200);
emit_16(1266);
emit_16(1199);
emit_16(1266);
emit_16(1200);
emit_16(1267);
emit_16(1201);
emit_16(1267);
emit_16(1200);
emit_16(1267);
emit_16(1201);
emit_16(1268);
emit_16(1202);
emit_16(1268);
emit_16(1201);
emit_16(1268);
emit_16(1202);
emit_16(1269);
emit_16(1203);
emit_16(1269);
emit_16(1202);
emit_16(1269);
emit_16(1203);
emit_16(1270);
emit_16(1204);
emit_16(1270);
emit_16(1203);
emit_16(1270);
emit_16(1204);
emit_16(1271);
emit_16(1205);
emit_16(1271);
emit_16(1204);
emit_16(1271);
emit_16(1205);
emit_16(1272);
emit_16(1206);
emit_16(1272);
emit_16(1205);
emit_16(1272);
emit_16(1206);
emit_16(1273);
emit_16(1207);
emit_16(1273);
emit_16(1206);
emit_16(1273);
emit_16(1207);
emit_16(1274);
emit_16(1208);
emit_16(1274);
emit_16(1207);
emit_16(1274);
emit_16(1208);
emit_16(1275);
emit_16(1209);
emit_16(1275);
emit_16(1208);
emit_16(1275);
emit_16(1209);
emit_16(1276);
emit_16(1210);
emit_16(1276);
emit_16(1209);
emit_16(1276);
emit_16(1210);
emit_16(1277);
emit_16(1211);
emit_16(1277);
emit_16(1210);
emit_16(1277);
emit_16(1211);
emit_16(1278);
emit_16(1212);
emit_16(1278);
emit_16(1211);
emit_16(1278);
emit_16(1212);
emit_16(1279);
emit_16(1213);
emit_16(1279);
emit_16(1212);
emit_16(1279);
emit_16(1213);
emit_16(1280);
emit_16(1214);
emit_16(1280);
emit_16(1213);
emit_16(1280);
emit_16(1214);
emit_16(1281);
emit_16(1215);
emit_16(1281);
emit_16(1214);
emit_16(1281);
emit_16(1215);
emit_16(1282);
emit_16(1216);
emit_16(1282);
emit_16(1215);
emit_16(1282);
emit_16(1216);
emit_16(1283);
emit_16(1217);
emit_16(1283);
emit_16(1216);
emit_16(1283);
emit_16(1217);
emit_16(1284);
emit_16(1218);
emit_16(1284);
emit_16(1217);
emit_16(1284);
emit_16(1218);
emit_16(1285);
emit_16(1219);
emit_16(1285);
emit_16(1218);
emit_16(1285);
emit_16(1219);
emit_16(1286);
emit_16(1220);
emit_16(1286);
emit_16(1219);
emit_16(1286);
emit_16(1220);
emit_16(1287);
emit_16(1221);
emit_16(1287);
emit_16(1220);
emit_16(1287);
emit_16(1221);
emit_16(1288);
emit_16(1222);
emit_16(1288);
emit_16(1221);
emit_16(1288);
emit_16(1222);
emit_16(1289);
emit_16(1223);
emit_16(1289);
emit_16(1222);
emit_16(1289);
emit_16(1223);
emit_16(1290);
emit_16(1224);
emit_16(1290);
emit_16(1223);
emit_16(1290);
emit_16(1224);
emit_16(1291);
emit_16(1225);
emit_16(1291);
emit_16(1224);
emit_16(1291);
emit_16(1225);
emit_16(1292);
emit_16(1226);
emit_16(1292);
emit_16(1225);
emit_16(1292);
emit_16(1226);
emit_16(1293);
emit_16(1227);
emit_16(1293);
emit_16(1226);
emit_16(1293);
emit_16(1227);
emit_16(1294);
emit_16(1228);
emit_16(1294);
emit_16(1227);
emit_16(1294);
emit_16(1228);
emit_16(1295);
emit_16(1229);
emit_16(1295);
emit_16(1228);
emit_16(1295);
emit_16(1229);
emit_16(1296);
emit_16(1230);
emit_16(1296);
emit_16(1229);
emit_16(1296);
emit_16(1230);
emit_16(1297);
emit_16(1231);
emit_16(1297);
emit_16(1230);
emit_16(1297);
emit_16(1231);
emit_16(1298);
emit_16(1232);
emit_16(1298);
emit_16(1231);
emit_16(1298);
emit_16(1232);
emit_16(1299);
emit_16(1233);
emit_16(1299);
emit_16(1232);
emit_16(1299);
emit_16(1233);
emit_16(1300);
emit_16(1234);
emit_16(1300);
emit_16(1233);
emit_16(1300);
emit_16(1234);
emit_16(1301);
emit_16(1235);
emit_16(1301);
emit_16(1234);
emit_16(1301);
emit_16(1235);
emit_16(1302);
emit_16(1236);
emit_16(1302);
emit_16(1235);
emit_16(1302);
emit_16(1236);
emit_16(1303);
emit_16(1237);
emit_16(1303);
emit_16(1236);
emit_16(1303);
emit_16(1237);
emit_16(1304);
emit_16(1238);
emit_16(1304);
emit_16(1237);
emit_16(1304);
emit_16(1238);
emit_16(1305);
emit_16(1239);
emit_16(1305);
emit_16(1238);
emit_16(1305);
emit_16(1239);
emit_16(1306);
emit_16(1240);
emit_16(1306);
emit_16(1239);
emit_16(1306);
emit_16(1240);
emit_16(1307);
emit_16(1241);
emit_16(1307);
emit_16(1240);
emit_16(1307);
emit_16(1241);
emit_16(1308);
emit_16(1242);
emit_16(1308);
emit_16(1241);
emit_16(1308);
emit_16(1242);
emit_16(1309);
emit_16(1243);
emit_16(1309);
emit_16(1242);
emit_16(1309);
emit_16(1243);
emit_16(1310);
emit_16(1244);
emit_16(1310);
emit_16(1243);
emit_16(1310);
emit_16(1244);
emit_16(1311);
emit_16(1245);
emit_16(1311);
emit_16(1244);
emit_16(1311);
emit_16(1245);
emit_16(1312);
emit_16(1246);
emit_16(1312);
emit_16(1245);
emit_16(1312);
emit_16(1246);
emit_16(1313);
emit_16(1247);
emit_16(1313);
emit_16(1246);
emit_16(1313);
emit_16(1247);
emit_16(1314);
emit_16(1248);
emit_16(1314);
emit_16(1247);
emit_16(1314);
emit_16(1248);
emit_16(1315);
emit_16(1249);
emit_16(1315);
emit_16(1248);
emit_16(1315);
emit_16(1249);
emit_16(1316);
emit_16(1250);
emit_16(1316);
emit_16(1249);
emit_16(1316);
emit_16(1250);
emit_16(1317);
emit_16(1251);
emit_16(1317);
emit_16(1250);
emit_16(1317);
emit_16(1251);
emit_16(1318);
emit_16(1252);
emit_16(1318);
emit_16(1251);
emit_16(1318);
emit_16(1252);
emit_16(1319);
emit_16(1253);
emit_16(1319);
emit_16(1252);
emit_16(1320);
emit_16(1254);
emit_16(1321);
emit_16(1255);
emit_16(1321);
emit_16(1254);
emit_16(1321);
emit_16(1255);
emit_16(1322);
emit_16(1256);
emit_16(1322);
emit_16(1255);
emit_16(1322);
emit_16(1256);
emit_16(1323);
emit_16(1257);
emit_16(1323);
emit_16(1256);
emit_16(1323);
emit_16(1257);
emit_16(1324);
emit_16(1258);
emit_16(1324);
emit_16(1257);
emit_16(1324);
emit_16(1258);
emit_16(1325);
emit_16(1259);
emit_16(1325);
emit_16(1258);
emit_16(1325);
emit_16(1259);
emit_16(1326);
emit_16(1260);
emit_16(1326);
emit_16(1259);
emit_16(1326);
emit_16(1260);
emit_16(1327);
emit_16(1261);
emit_16(1327);
emit_16(1260);
emit_16(1327);
emit_16(1261);
emit_16(1328);
emit_16(1262);
emit_16(1328);
emit_16(1261);
emit_16(1328);
emit_16(1262);
emit_16(1329);
emit_16(1263);
emit_16(1329);
emit_16(1262);
emit_16(1329);
emit_16(1263);
emit_16(1330);
emit_16(1264);
emit_16(1330);
emit_16(1263);
emit_16(1330);
emit_16(1264);
emit_16(1331);
emit_16(1265);
emit_16(1331);
emit_16(1264);
emit_16(1331);
emit_16(1265);
emit_16(1332);
emit_16(1266);
emit_16(1332);
emit_16(1265);
emit_16(1332);
emit_16(1266);
emit_16(1333);
emit_16(1267);
emit_16(1333);
emit_16(1266);
emit_16(1333);
emit_16(1267);
emit_16(1334);
emit_16(1268);
emit_16(1334);
emit_16(1267);
emit_16(1334);
emit_16(1268);
emit_16(1335);
emit_16(1269);
emit_16(1335);
emit_16(1268);
emit_16(1335);
emit_16(1269);
emit_16(1336);
emit_16(1270);
emit_16(1336);
emit_16(1269);
emit_16(1336);
emit_16(1270);
emit_16(1337);
emit_16(1271);
emit_16(1337);
emit_16(1270);
emit_16(1337);
emit_16(1271);
emit_16(1338);
emit_16(1272);
emit_16(1338);
emit_16(1271);
emit_16(1338);
emit_16(1272);
emit_16(1339);
emit_16(1273);
emit_16(1339);
emit_16(1272);
emit_16(1339);
emit_16(1273);
emit_16(1340);
emit_16(1274);
emit_16(1340);
emit_16(1273);
emit_16(1340);
emit_16(1274);
emit_16(1341);
emit_16(1275);
emit_16(1341);
emit_16(1274);
emit_16(1341);
emit_16(1275);
emit_16(1342);
emit_16(1276);
emit_16(1342);
emit_16(1275);
emit_16(1342);
emit_16(1276);
emit_16(1343);
emit_16(1277);
emit_16(1343);
emit_16(1276);
emit_16(1343);
emit_16(1277);
emit_16(1344);
emit_16(1278);
emit_16(1344);
emit_16(1277);
emit_16(1344);
emit_16(1278);
emit_16(1345);
emit_16(1279);
emit_16(1345);
emit_16(1278);
emit_16(1345);
emit_16(1279);
emit_16(1346);
emit_16(1280);
emit_16(1346);
emit_16(1279);
emit_16(1346);
emit_16(1280);
emit_16(1347);
emit_16(1281);
emit_16(1347);
emit_16(1280);
emit_16(1347);
emit_16(1281);
emit_16(1348);
emit_16(1282);
emit_16(1348);
emit_16(1281);
emit_16(1348);
emit_16(1282);
emit_16(1349);
emit_16(1283);
emit_16(1349);
emit_16(1282);
emit_16(1349);
emit_16(1283);
emit_16(1350);
emit_16(1284);
emit_16(1350);
emit_16(1283);
emit_16(1350);
emit_16(1284);
emit_16(1351);
emit_16(1285);
emit_16(1351);
emit_16(1284);
emit_16(1351);
emit_16(1285);
emit_16(1352);
emit_16(1286);
emit_16(1352);
emit_16(1285);
emit_16(1352);
emit_16(1286);
emit_16(1353);
emit_16(1287);
emit_16(1353);
emit_16(1286);
emit_16(1353);
emit_16(1287);
emit_16(1354);
emit_16(1288);
emit_16(1354);
emit_16(1287);
emit_16(1354);
emit_16(1288);
emit_16(1355);
emit_16(1289);
emit_16(1355);
emit_16(1288);
emit_16(1355);
emit_16(1289);
emit_16(1356);
emit_16(1290);
emit_16(1356);
emit_16(1289);
emit_16(1356);
emit_16(1290);
emit_16(1357);
emit_16(1291);
emit_16(1357);
emit_16(1290);
emit_16(1357);
emit_16(1291);
emit_16(1358);
emit_16(1292);
emit_16(1358);
emit_16(1291);
emit_16(1358);
emit_16(1292);
emit_16(1359);
emit_16(1293);
emit_16(1359);
emit_16(1292);
emit_16(1359);
emit_16(1293);
emit_16(1360);
emit_16(1294);
emit_16(1360);
emit_16(1293);
emit_16(1360);
emit_16(1294);
emit_16(1361);
emit_16(1295);
emit_16(1361);
emit_16(1294);
emit_16(1361);
emit_16(1295);
emit_16(1362);
emit_16(1296);
emit_16(1362);
emit_16(1295);
emit_16(1362);
emit_16(1296);
emit_16(1363);
emit_16(1297);
emit_16(1363);
emit_16(1296);
emit_16(1363);
emit_16(1297);
emit_16(1364);
emit_16(1298);
emit_16(1364);
emit_16(1297);
emit_16(1364);
emit_16(1298);
emit_16(1365);
emit_16(1299);
emit_16(1365);
emit_16(1298);
emit_16(1365);
emit_16(1299);
emit_16(1366);
emit_16(1300);
emit_16(1366);
emit_16(1299);
emit_16(1366);
emit_16(1300);
emit_16(1367);
emit_16(1301);
emit_16(1367);
emit_16(1300);
emit_16(1367);
emit_16(1301);
emit_16(1368);
emit_16(1302);
emit_16(1368);
emit_16(1301);
emit_16(1368);
emit_16(1302);
emit_16(1369);
emit_16(1303);
emit_16(1369);
emit_16(1302);
emit_16(1369);
emit_16(1303);
emit_16(1370);
emit_16(1304);
emit_16(1370);
emit_16(1303);
emit_16(1370);
emit_16(1304);
emit_16(1371);
emit_16(1305);
emit_16(1371);
emit_16(1304);
emit_16(1371);
emit_16(1305);
emit_16(1372);
emit_16(1306);
emit_16(1372);
emit_16(1305);
emit_16(1372);
emit_16(1306);
emit_16(1373);
emit_16(1307);
emit_16(1373);
emit_16(1306);
emit_16(1373);
emit_16(1307);
emit_16(1374);
emit_16(1308);
emit_16(1374);
emit_16(1307);
emit_16(1374);
emit_16(1308);
emit_16(1375);
emit_16(1309);
emit_16(1375);
emit_16(1308);
emit_16(1375);
emit_16(1309);
emit_16(1376);
emit_16(1310);
emit_16(1376);
emit_16(1309);
emit_16(1376);
emit_16(1310);
emit_16(1377);
emit_16(1311);
emit_16(1377);
emit_16(1310);
emit_16(1377);
emit_16(1311);
emit_16(1378);
emit_16(1312);
emit_16(1378);
emit_16(1311);
emit_16(1378);
emit_16(1312);
emit_16(1379);
emit_16(1313);
emit_16(1379);
emit_16(1312);
emit_16(1379);
emit_16(1313);
emit_16(1380);
emit_16(1314);
emit_16(1380);
emit_16(1313);
emit_16(1380);
emit_16(1314);
emit_16(1381);
emit_16(1315);
emit_16(1381);
emit_16(1314);
emit_16(1381);
emit_16(1315);
emit_16(1382);
emit_16(1316);
emit_16(1382);
emit_16(1315);
emit_16(1382);
emit_16(1316);
emit_16(1383);
emit_16(1317);
emit_16(1383);
emit_16(1316);
emit_16(1383);
emit_16(1317);
emit_16(1384);
emit_16(1318);
emit_16(1384);
emit_16(1317);
emit_16(1384);
emit_16(1318);
emit_16(1385);
emit_16(1319);
emit_16(1385);
emit_16(1318);
emit_16(1386);
emit_16(1320);
emit_16(1387);
emit_16(1321);
emit_16(1387);
emit_16(1320);
emit_16(1387);
emit_16(1321);
emit_16(1388);
emit_16(1322);
emit_16(1388);
emit_16(1321);
emit_16(1388);
emit_16(1322);
emit_16(1389);
emit_16(1323);
emit_16(1389);
emit_16(1322);
emit_16(1389);
emit_16(1323);
emit_16(1390);
emit_16(1324);
emit_16(1390);
emit_16(1323);
emit_16(1390);
emit_16(1324);
emit_16(1391);
emit_16(1325);
emit_16(1391);
emit_16(1324);
emit_16(1391);
emit_16(1325);
emit_16(1392);
emit_16(1326);
emit_16(1392);
emit_16(1325);
emit_16(1392);
emit_16(1326);
emit_16(1393);
emit_16(1327);
emit_16(1393);
emit_16(1326);
emit_16(1393);
emit_16(1327);
emit_16(1394);
emit_16(1328);
emit_16(1394);
emit_16(1327);
emit_16(1394);
emit_16(1328);
emit_16(1395);
emit_16(1329);
emit_16(1395);
emit_16(1328);
emit_16(1395);
emit_16(1329);
emit_16(1396);
emit_16(1330);
emit_16(1396);
emit_16(1329);
emit_16(1396);
emit_16(1330);
emit_16(1397);
emit_16(1331);
emit_16(1397);
emit_16(1330);
emit_16(1397);
emit_16(1331);
emit_16(1398);
emit_16(1332);
emit_16(1398);
emit_16(1331);
emit_16(1398);
emit_16(1332);
emit_16(1399);
emit_16(1333);
emit_16(1399);
emit_16(1332);
emit_16(1399);
emit_16(1333);
emit_16(1400);
emit_16(1334);
emit_16(1400);
emit_16(1333);
emit_16(1400);
emit_16(1334);
emit_16(1401);
emit_16(1335);
emit_16(1401);
emit_16(1334);
emit_16(1401);
emit_16(1335);
emit_16(1402);
emit_16(1336);
emit_16(1402);
emit_16(1335);
emit_16(1402);
emit_16(1336);
emit_16(1403);
emit_16(1337);
emit_16(1403);
emit_16(1336);
emit_16(1403);
emit_16(1337);
emit_16(1404);
emit_16(1338);
emit_16(1404);
emit_16(1337);
emit_16(1404);
emit_16(1338);
emit_16(1405);
emit_16(1339);
emit_16(1405);
emit_16(1338);
emit_16(1405);
emit_16(1339);
emit_16(1406);
emit_16(1340);
emit_16(1406);
emit_16(1339);
emit_16(1406);
emit_16(1340);
emit_16(1407);
emit_16(1341);
emit_16(1407);
emit_16(1340);
emit_16(1407);
emit_16(1341);
emit_16(1408);
emit_16(1342);
emit_16(1408);
emit_16(1341);
emit_16(1408);
emit_16(1342);
emit_16(1409);
emit_16(1343);
emit_16(1409);
emit_16(1342);
emit_16(1409);
emit_16(1343);
emit_16(1410);
emit_16(1344);
emit_16(1410);
emit_16(1343);
emit_16(1410);
emit_16(1344);
emit_16(1411);
emit_16(1345);
emit_16(1411);
emit_16(1344);
emit_16(1411);
emit_16(1345);
emit_16(1412);
emit_16(1346);
emit_16(1412);
emit_16(1345);
emit_16(1412);
emit_16(1346);
emit_16(1413);
emit_16(1347);
emit_16(1413);
emit_16(1346);
emit_16(1413);
emit_16(1347);
emit_16(1414);
emit_16(1348);
emit_16(1414);
emit_16(1347);
emit_16(1414);
emit_16(1348);
emit_16(1415);
emit_16(1349);
emit_16(1415);
emit_16(1348);
emit_16(1415);
emit_16(1349);
emit_16(1416);
emit_16(1350);
emit_16(1416);
emit_16(1349);
emit_16(1416);
emit_16(1350);
emit_16(1417);
emit_16(1351);
emit_16(1417);
emit_16(1350);
emit_16(1417);
emit_16(1351);
emit_16(1418);
emit_16(1352);
emit_16(1418);
emit_16(1351);
emit_16(1418);
emit_16(1352);
emit_16(1419);
emit_16(1353);
emit_16(1419);
emit_16(1352);
emit_16(1419);
emit_16(1353);
emit_16(1420);
emit_16(1354);
emit_16(1420);
emit_16(1353);
emit_16(1420);
emit_16(1354);
emit_16(1421);
emit_16(1355);
emit_16(1421);
emit_16(1354);
emit_16(1421);
emit_16(1355);
emit_16(1422);
emit_16(1356);
emit_16(1422);
emit_16(1355);
emit_16(1422);
emit_16(1356);
emit_16(1423);
emit_16(1357);
emit_16(1423);
emit_16(1356);
emit_16(1423);
emit_16(1357);
emit_16(1424);
emit_16(1358);
emit_16(1424);
emit_16(1357);
emit_16(1424);
emit_16(1358);
emit_16(1425);
emit_16(1359);
emit_16(1425);
emit_16(1358);
emit_16(1425);
emit_16(1359);
emit_16(1426);
emit_16(1360);
emit_16(1426);
emit_16(1359);
emit_16(1426);
emit_16(1360);
emit_16(1427);
emit_16(1361);
emit_16(1427);
emit_16(1360);
emit_16(1427);
emit_16(1361);
emit_16(1428);
emit_16(1362);
emit_16(1428);
emit_16(1361);
emit_16(1428);
emit_16(1362);
emit_16(1429);
emit_16(1363);
emit_16(1429);
emit_16(1362);
emit_16(1429);
emit_16(1363);
emit_16(1430);
emit_16(1364);
emit_16(1430);
emit_16(1363);
emit_16(1430);
emit_16(1364);
emit_16(1431);
emit_16(1365);
emit_16(1431);
emit_16(1364);
emit_16(1431);
emit_16(1365);
emit_16(1432);
emit_16(1366);
emit_16(1432);
emit_16(1365);
emit_16(1432);
emit_16(1366);
emit_16(1433);
emit_16(1367);
emit_16(1433);
emit_16(1366);
emit_16(1433);
emit_16(1367);
emit_16(1434);
emit_16(1368);
emit_16(1434);
emit_16(1367);
emit_16(1434);
emit_16(1368);
emit_16(1435);
emit_16(1369);
emit_16(1435);
emit_16(1368);
emit_16(1435);
emit_16(1369);
emit_16(1436);
emit_16(1370);
emit_16(1436);
emit_16(1369);
emit_16(1436);
emit_16(1370);
emit_16(1437);
emit_16(1371);
emit_16(1437);
emit_16(1370);
emit_16(1437);
emit_16(1371);
emit_16(1438);
emit_16(1372);
emit_16(1438);
emit_16(1371);
emit_16(1438);
emit_16(1372);
emit_16(1439);
emit_16(1373);
emit_16(1439);
emit_16(1372);
emit_16(1439);
emit_16(1373);
emit_16(1440);
emit_16(1374);
emit_16(1440);
emit_16(1373);
emit_16(1440);
emit_16(1374);
emit_16(1441);
emit_16(1375);
emit_16(1441);
emit_16(1374);
emit_16(1441);
emit_16(1375);
emit_16(1442);
emit_16(1376);
emit_16(1442);
emit_16(1375);
emit_16(1442);
emit_16(1376);
emit_16(1443);
emit_16(1377);
emit_16(1443);
emit_16(1376);
emit_16(1443);
emit_16(1377);
emit_16(1444);
emit_16(1378);
emit_16(1444);
emit_16(1377);
emit_16(1444);
emit_16(1378);
emit_16(1445);
emit_16(1379);
emit_16(1445);
emit_16(1378);
emit_16(1445);
emit_16(1379);
emit_16(1446);
emit_16(1380);
emit_16(1446);
emit_16(1379);
emit_16(1446);
emit_16(1380);
emit_16(1447);
emit_16(1381);
emit_16(1447);
emit_16(1380);
emit_16(1447);
emit_16(1381);
emit_16(1448);
emit_16(1382);
emit_16(1448);
emit_16(1381);
emit_16(1448);
emit_16(1382);
emit_16(1449);
emit_16(1383);
emit_16(1449);
emit_16(1382);
emit_16(1449);
emit_16(1383);
emit_16(1450);
emit_16(1384);
emit_16(1450);
emit_16(1383);
emit_16(1450);
emit_16(1384);
emit_16(1451);
emit_16(1385);
emit_16(1451);
emit_16(1384);
emit_16(1452);
emit_16(1386);
emit_16(1453);
emit_16(1387);
emit_16(1453);
emit_16(1386);
emit_16(1453);
emit_16(1387);
emit_16(1454);
emit_16(1388);
emit_16(1454);
emit_16(1387);
emit_16(1454);
emit_16(1388);
emit_16(1455);
emit_16(1389);
emit_16(1455);
emit_16(1388);
emit_16(1455);
emit_16(1389);
emit_16(1456);
emit_16(1390);
emit_16(1456);
emit_16(1389);
emit_16(1456);
emit_16(1390);
emit_16(1457);
emit_16(1391);
emit_16(1457);
emit_16(1390);
emit_16(1457);
emit_16(1391);
emit_16(1458);
emit_16(1392);
emit_16(1458);
emit_16(1391);
emit_16(1458);
emit_16(1392);
emit_16(1459);
emit_16(1393);
emit_16(1459);
emit_16(1392);
emit_16(1459);
emit_16(1393);
emit_16(1460);
emit_16(1394);
emit_16(1460);
emit_16(1393);
emit_16(1460);
emit_16(1394);
emit_16(1461);
emit_16(1395);
emit_16(1461);
emit_16(1394);
emit_16(1461);
emit_16(1395);
emit_16(1462);
emit_16(1396);
emit_16(1462);
emit_16(1395);
emit_16(1462);
emit_16(1396);
emit_16(1463);
emit_16(1397);
emit_16(1463);
emit_16(1396);
emit_16(1463);
emit_16(1397);
emit_16(1464);
emit_16(1398);
emit_16(1464);
emit_16(1397);
emit_16(1464);
emit_16(1398);
emit_16(1465);
emit_16(1399);
emit_16(1465);
emit_16(1398);
emit_16(1465);
emit_16(1399);
emit_16(1466);
emit_16(1400);
emit_16(1466);
emit_16(1399);
emit_16(1466);
emit_16(1400);
emit_16(1467);
emit_16(1401);
emit_16(1467);
emit_16(1400);
emit_16(1467);
emit_16(1401);
emit_16(1468);
emit_16(1402);
emit_16(1468);
emit_16(1401);
emit_16(1468);
emit_16(1402);
emit_16(1469);
emit_16(1403);
emit_16(1469);
emit_16(1402);
emit_16(1469);
emit_16(1403);
emit_16(1470);
emit_16(1404);
emit_16(1470);
emit_16(1403);
emit_16(1470);
emit_16(1404);
emit_16(1471);
emit_16(1405);
emit_16(1471);
emit_16(1404);
emit_16(1471);
emit_16(1405);
emit_16(1472);
emit_16(1406);
emit_16(1472);
emit_16(1405);
emit_16(1472);
emit_16(1406);
emit_16(1473);
emit_16(1407);
emit_16(1473);
emit_16(1406);
emit_16(1473);
emit_16(1407);
emit_16(1474);
emit_16(1408);
emit_16(1474);
emit_16(1407);
emit_16(1474);
emit_16(1408);
emit_16(1475);
emit_16(1409);
emit_16(1475);
emit_16(1408);
emit_16(1475);
emit_16(1409);
emit_16(1476);
emit_16(1410);
emit_16(1476);
emit_16(1409);
emit_16(1476);
emit_16(1410);
emit_16(1477);
emit_16(1411);
emit_16(1477);
emit_16(1410);
emit_16(1477);
emit_16(1411);
emit_16(1478);
emit_16(1412);
emit_16(1478);
emit_16(1411);
emit_16(1478);
emit_16(1412);
emit_16(1479);
emit_16(1413);
emit_16(1479);
emit_16(1412);
emit_16(1479);
emit_16(1413);
emit_16(1480);
emit_16(1414);
emit_16(1480);
emit_16(1413);
emit_16(1480);
emit_16(1414);
emit_16(1481);
emit_16(1415);
emit_16(1481);
emit_16(1414);
emit_16(1481);
emit_16(1415);
emit_16(1482);
emit_16(1416);
emit_16(1482);
emit_16(1415);
emit_16(1482);
emit_16(1416);
emit_16(1483);
emit_16(1417);
emit_16(1483);
emit_16(1416);
emit_16(1483);
emit_16(1417);
emit_16(1484);
emit_16(1418);
emit_16(1484);
emit_16(1417);
emit_16(1484);
emit_16(1418);
emit_16(1485);
emit_16(1419);
emit_16(1485);
emit_16(1418);
emit_16(1485);
emit_16(1419);
emit_16(1486);
emit_16(1420);
emit_16(1486);
emit_16(1419);
emit_16(1486);
emit_16(1420);
emit_16(1487);
emit_16(1421);
emit_16(1487);
emit_16(1420);
emit_16(1487);
emit_16(1421);
emit_16(1488);
emit_16(1422);
emit_16(1488);
emit_16(1421);
emit_16(1488);
emit_16(1422);
emit_16(1489);
emit_16(1423);
emit_16(1489);
emit_16(1422);
emit_16(1489);
emit_16(1423);
emit_16(1490);
emit_16(1424);
emit_16(1490);
emit_16(1423);
emit_16(1490);
emit_16(1424);
emit_16(1491);
emit_16(1425);
emit_16(1491);
emit_16(1424);
emit_16(1491);
emit_16(1425);
emit_16(1492);
emit_16(1426);
emit_16(1492);
emit_16(1425);
emit_16(1492);
emit_16(1426);
emit_16(1493);
emit_16(1427);
emit_16(1493);
emit_16(1426);
emit_16(1493);
emit_16(1427);
emit_16(1494);
emit_16(1428);
emit_16(1494);
emit_16(1427);
emit_16(1494);
emit_16(1428);
emit_16(1495);
emit_16(1429);
emit_16(1495);
emit_16(1428);
emit_16(1495);
emit_16(1429);
emit_16(1496);
emit_16(1430);
emit_16(1496);
emit_16(1429);
emit_16(1496);
emit_16(1430);
emit_16(1497);
emit_16(1431);
emit_16(1497);
emit_16(1430);
emit_16(1497);
emit_16(1431);
emit_16(1498);
emit_16(1432);
emit_16(1498);
emit_16(1431);
emit_16(1498);
emit_16(1432);
emit_16(1499);
emit_16(1433);
emit_16(1499);
emit_16(1432);
emit_16(1499);
emit_16(1433);
emit_16(1500);
emit_16(1434);
emit_16(1500);
emit_16(1433);
emit_16(1500);
emit_16(1434);
emit_16(1501);
emit_16(1435);
emit_16(1501);
emit_16(1434);
emit_16(1501);
emit_16(1435);
emit_16(1502);
emit_16(1436);
emit_16(1502);
emit_16(1435);
emit_16(1502);
emit_16(1436);
emit_16(1503);
emit_16(1437);
emit_16(1503);
emit_16(1436);
emit_16(1503);
emit_16(1437);
emit_16(1504);
emit_16(1438);
emit_16(1504);
emit_16(1437);
emit_16(1504);
emit_16(1438);
emit_16(1505);
emit_16(1439);
emit_16(1505);
emit_16(1438);
emit_16(1505);
emit_16(1439);
emit_16(1506);
emit_16(1440);
emit_16(1506);
emit_16(1439);
emit_16(1506);
emit_16(1440);
emit_16(1507);
emit_16(1441);
emit_16(1507);
emit_16(1440);
emit_16(1507);
emit_16(1441);
emit_16(1508);
emit_16(1442);
emit_16(1508);
emit_16(1441);
emit_16(1508);
emit_16(1442);
emit_16(1509);
emit_16(1443);
emit_16(1509);
emit_16(1442);
emit_16(1509);
emit_16(1443);
emit_16(1510);
emit_16(1444);
emit_16(1510);
emit_16(1443);
emit_16(1510);
emit_16(1444);
emit_16(1511);
emit_16(1445);
emit_16(1511);
emit_16(1444);
emit_16(1511);
emit_16(1445);
emit_16(1512);
emit_16(1446);
emit_16(1512);
emit_16(1445);
emit_16(1512);
emit_16(1446);
emit_16(1513);
emit_16(1447);
emit_16(1513);
emit_16(1446);
emit_16(1513);
emit_16(1447);
emit_16(1514);
emit_16(1448);
emit_16(1514);
emit_16(1447);
emit_16(1514);
emit_16(1448);
emit_16(1515);
emit_16(1449);
emit_16(1515);
emit_16(1448);
emit_16(1515);
emit_16(1449);
emit_16(1516);
emit_16(1450);
emit_16(1516);
emit_16(1449);
emit_16(1516);
emit_16(1450);
emit_16(1517);
emit_16(1451);
emit_16(1517);
emit_16(1450);
emit_16(1518);
emit_16(1452);
emit_16(1519);
emit_16(1453);
emit_16(1519);
emit_16(1452);
emit_16(1519);
emit_16(1453);
emit_16(1520);
emit_16(1454);
emit_16(1520);
emit_16(1453);
emit_16(1520);
emit_16(1454);
emit_16(1521);
emit_16(1455);
emit_16(1521);
emit_16(1454);
emit_16(1521);
emit_16(1455);
emit_16(1522);
emit_16(1456);
emit_16(1522);
emit_16(1455);
emit_16(1522);
emit_16(1456);
emit_16(1523);
emit_16(1457);
emit_16(1523);
emit_16(1456);
emit_16(1523);
emit_16(1457);
emit_16(1524);
emit_16(1458);
emit_16(1524);
emit_16(1457);
emit_16(1524);
emit_16(1458);
emit_16(1525);
emit_16(1459);
emit_16(1525);
emit_16(1458);
emit_16(1525);
emit_16(1459);
emit_16(1526);
emit_16(1460);
emit_16(1526);
emit_16(1459);
emit_16(1526);
emit_16(1460);
emit_16(1527);
emit_16(1461);
emit_16(1527);
emit_16(1460);
emit_16(1527);
emit_16(1461);
emit_16(1528);
emit_16(1462);
emit_16(1528);
emit_16(1461);
emit_16(1528);
emit_16(1462);
emit_16(1529);
emit_16(1463);
emit_16(1529);
emit_16(1462);
emit_16(1529);
emit_16(1463);
emit_16(1530);
emit_16(1464);
emit_16(1530);
emit_16(1463);
emit_16(1530);
emit_16(1464);
emit_16(1531);
emit_16(1465);
emit_16(1531);
emit_16(1464);
emit_16(1531);
emit_16(1465);
emit_16(1532);
emit_16(1466);
emit_16(1532);
emit_16(1465);
emit_16(1532);
emit_16(1466);
emit_16(1533);
emit_16(1467);
emit_16(1533);
emit_16(1466);
emit_16(1533);
emit_16(1467);
emit_16(1534);
emit_16(1468);
emit_16(1534);
emit_16(1467);
emit_16(1534);
emit_16(1468);
emit_16(1535);
emit_16(1469);
emit_16(1535);
emit_16(1468);
emit_16(1535);
emit_16(1469);
emit_16(1536);
emit_16(1470);
emit_16(1536);
emit_16(1469);
emit_16(1536);
emit_16(1470);
emit_16(1537);
emit_16(1471);
emit_16(1537);
emit_16(1470);
emit_16(1537);
emit_16(1471);
emit_16(1538);
emit_16(1472);
emit_16(1538);
emit_16(1471);
emit_16(1538);
emit_16(1472);
emit_16(1539);
emit_16(1473);
emit_16(1539);
emit_16(1472);
emit_16(1539);
emit_16(1473);
emit_16(1540);
emit_16(1474);
emit_16(1540);
emit_16(1473);
emit_16(1540);
emit_16(1474);
emit_16(1541);
emit_16(1475);
emit_16(1541);
emit_16(1474);
emit_16(1541);
emit_16(1475);
emit_16(1542);
emit_16(1476);
emit_16(1542);
emit_16(1475);
emit_16(1542);
emit_16(1476);
emit_16(1543);
emit_16(1477);
emit_16(1543);
emit_16(1476);
emit_16(1543);
emit_16(1477);
emit_16(1544);
emit_16(1478);
emit_16(1544);
emit_16(1477);
emit_16(1544);
emit_16(1478);
emit_16(1545);
emit_16(1479);
emit_16(1545);
emit_16(1478);
emit_16(1545);
emit_16(1479);
emit_16(1546);
emit_16(1480);
emit_16(1546);
emit_16(1479);
emit_16(1546);
emit_16(1480);
emit_16(1547);
emit_16(1481);
emit_16(1547);
emit_16(1480);
emit_16(1547);
emit_16(1481);
emit_16(1548);
emit_16(1482);
emit_16(1548);
emit_16(1481);
emit_16(1548);
emit_16(1482);
emit_16(1549);
emit_16(1483);
emit_16(1549);
emit_16(1482);
emit_16(1549);
emit_16(1483);
emit_16(1550);
emit_16(1484);
emit_16(1550);
emit_16(1483);
emit_16(1550);
emit_16(1484);
emit_16(1551);
emit_16(1485);
emit_16(1551);
emit_16(1484);
emit_16(1551);
emit_16(1485);
emit_16(1552);
emit_16(1486);
emit_16(1552);
emit_16(1485);
emit_16(1552);
emit_16(1486);
emit_16(1553);
emit_16(1487);
emit_16(1553);
emit_16(1486);
emit_16(1553);
emit_16(1487);
emit_16(1554);
emit_16(1488);
emit_16(1554);
emit_16(1487);
emit_16(1554);
emit_16(1488);
emit_16(1555);
emit_16(1489);
emit_16(1555);
emit_16(1488);
emit_16(1555);
emit_16(1489);
emit_16(1556);
emit_16(1490);
emit_16(1556);
emit_16(1489);
emit_16(1556);
emit_16(1490);
emit_16(1557);
emit_16(1491);
emit_16(1557);
emit_16(1490);
emit_16(1557);
emit_16(1491);
emit_16(1558);
emit_16(1492);
emit_16(1558);
emit_16(1491);
emit_16(1558);
emit_16(1492);
emit_16(1559);
emit_16(1493);
emit_16(1559);
emit_16(1492);
emit_16(1559);
emit_16(1493);
emit_16(1560);
emit_16(1494);
emit_16(1560);
emit_16(1493);
emit_16(1560);
emit_16(1494);
emit_16(1561);
emit_16(1495);
emit_16(1561);
emit_16(1494);
emit_16(1561);
emit_16(1495);
emit_16(1562);
emit_16(1496);
emit_16(1562);
emit_16(1495);
emit_16(1562);
emit_16(1496);
emit_16(1563);
emit_16(1497);
emit_16(1563);
emit_16(1496);
emit_16(1563);
emit_16(1497);
emit_16(1564);
emit_16(1498);
emit_16(1564);
emit_16(1497);
emit_16(1564);
emit_16(1498);
emit_16(1565);
emit_16(1499);
emit_16(1565);
emit_16(1498);
emit_16(1565);
emit_16(1499);
emit_16(1566);
emit_16(1500);
emit_16(1566);
emit_16(1499);
emit_16(1566);
emit_16(1500);
emit_16(1567);
emit_16(1501);
emit_16(1567);
emit_16(1500);
emit_16(1567);
emit_16(1501);
emit_16(1568);
emit_16(1502);
emit_16(1568);
emit_16(1501);
emit_16(1568);
emit_16(1502);
emit_16(1569);
emit_16(1503);
emit_16(1569);
emit_16(1502);
emit_16(1569);
emit_16(1503);
emit_16(1570);
emit_16(1504);
emit_16(1570);
emit_16(1503);
emit_16(1570);
emit_16(1504);
emit_16(1571);
emit_16(1505);
emit_16(1571);
emit_16(1504);
emit_16(1571);
emit_16(1505);
emit_16(1572);
emit_16(1506);
emit_16(1572);
emit_16(1505);
emit_16(1572);
emit_16(1506);
emit_16(1573);
emit_16(1507);
emit_16(1573);
emit_16(1506);
emit_16(1573);
emit_16(1507);
emit_16(1574);
emit_16(1508);
emit_16(1574);
emit_16(1507);
emit_16(1574);
emit_16(1508);
emit_16(1575);
emit_16(1509);
emit_16(1575);
emit_16(1508);
emit_16(1575);
emit_16(1509);
emit_16(1576);
emit_16(1510);
emit_16(1576);
emit_16(1509);
emit_16(1576);
emit_16(1510);
emit_16(1577);
emit_16(1511);
emit_16(1577);
emit_16(1510);
emit_16(1577);
emit_16(1511);
emit_16(1578);
emit_16(1512);
emit_16(1578);
emit_16(1511);
emit_16(1578);
emit_16(1512);
emit_16(1579);
emit_16(1513);
emit_16(1579);
emit_16(1512);
emit_16(1579);
emit_16(1513);
emit_16(1580);
emit_16(1514);
emit_16(1580);
emit_16(1513);
emit_16(1580);
emit_16(1514);
emit_16(1581);
emit_16(1515);
emit_16(1581);
emit_16(1514);
emit_16(1581);
emit_16(1515);
emit_16(1582);
emit_16(1516);
emit_16(1582);
emit_16(1515);
emit_16(1582);
emit_16(1516);
emit_16(1583);
emit_16(1517);
emit_16(1583);
emit_16(1516);
emit_16(1584);
emit_16(1518);
emit_16(1585);
emit_16(1519);
emit_16(1585);
emit_16(1518);
emit_16(1585);
emit_16(1519);
emit_16(1586);
emit_16(1520);
emit_16(1586);
emit_16(1519);
emit_16(1586);
emit_16(1520);
emit_16(1587);
emit_16(1521);
emit_16(1587);
emit_16(1520);
emit_16(1587);
emit_16(1521);
emit_16(1588);
emit_16(1522);
emit_16(1588);
emit_16(1521);
emit_16(1588);
emit_16(1522);
emit_16(1589);
emit_16(1523);
emit_16(1589);
emit_16(1522);
emit_16(1589);
emit_16(1523);
emit_16(1590);
emit_16(1524);
emit_16(1590);
emit_16(1523);
emit_16(1590);
emit_16(1524);
emit_16(1591);
emit_16(1525);
emit_16(1591);
emit_16(1524);
emit_16(1591);
emit_16(1525);
emit_16(1592);
emit_16(1526);
emit_16(1592);
emit_16(1525);
emit_16(1592);
emit_16(1526);
emit_16(1593);
emit_16(1527);
emit_16(1593);
emit_16(1526);
emit_16(1593);
emit_16(1527);
emit_16(1594);
emit_16(1528);
emit_16(1594);
emit_16(1527);
emit_16(1594);
emit_16(1528);
emit_16(1595);
emit_16(1529);
emit_16(1595);
emit_16(1528);
emit_16(1595);
emit_16(1529);
emit_16(1596);
emit_16(1530);
emit_16(1596);
emit_16(1529);
emit_16(1596);
emit_16(1530);
emit_16(1597);
emit_16(1531);
emit_16(1597);
emit_16(1530);
emit_16(1597);
emit_16(1531);
emit_16(1598);
emit_16(1532);
emit_16(1598);
emit_16(1531);
emit_16(1598);
emit_16(1532);
emit_16(1599);
emit_16(1533);
emit_16(1599);
emit_16(1532);
emit_16(1599);
emit_16(1533);
emit_16(1600);
emit_16(1534);
emit_16(1600);
emit_16(1533);
emit_16(1600);
emit_16(1534);
emit_16(1601);
emit_16(1535);
emit_16(1601);
emit_16(1534);
emit_16(1601);
emit_16(1535);
emit_16(1602);
emit_16(1536);
emit_16(1602);
emit_16(1535);
emit_16(1602);
emit_16(1536);
emit_16(1603);
emit_16(1537);
emit_16(1603);
emit_16(1536);
emit_16(1603);
emit_16(1537);
emit_16(1604);
emit_16(1538);
emit_16(1604);
emit_16(1537);
emit_16(1604);
emit_16(1538);
emit_16(1605);
emit_16(1539);
emit_16(1605);
emit_16(1538);
emit_16(1605);
emit_16(1539);
emit_16(1606);
emit_16(1540);
emit_16(1606);
emit_16(1539);
emit_16(1606);
emit_16(1540);
emit_16(1607);
emit_16(1541);
emit_16(1607);
emit_16(1540);
emit_16(1607);
emit_16(1541);
emit_16(1608);
emit_16(1542);
emit_16(1608);
emit_16(1541);
emit_16(1608);
emit_16(1542);
emit_16(1609);
emit_16(1543);
emit_16(1609);
emit_16(1542);
emit_16(1609);
emit_16(1543);
emit_16(1610);
emit_16(1544);
emit_16(1610);
emit_16(1543);
emit_16(1610);
emit_16(1544);
emit_16(1611);
emit_16(1545);
emit_16(1611);
emit_16(1544);
emit_16(1611);
emit_16(1545);
emit_16(1612);
emit_16(1546);
emit_16(1612);
emit_16(1545);
emit_16(1612);
emit_16(1546);
emit_16(1613);
emit_16(1547);
emit_16(1613);
emit_16(1546);
emit_16(1613);
emit_16(1547);
emit_16(1614);
emit_16(1548);
emit_16(1614);
emit_16(1547);
emit_16(1614);
emit_16(1548);
emit_16(1615);
emit_16(1549);
emit_16(1615);
emit_16(1548);
emit_16(1615);
emit_16(1549);
emit_16(1616);
emit_16(1550);
emit_16(1616);
emit_16(1549);
emit_16(1616);
emit_16(1550);
emit_16(1617);
emit_16(1551);
emit_16(1617);
emit_16(1550);
emit_16(1617);
emit_16(1551);
emit_16(1618);
emit_16(1552);
emit_16(1618);
emit_16(1551);
emit_16(1618);
emit_16(1552);
emit_16(1619);
emit_16(1553);
emit_16(1619);
emit_16(1552);
emit_16(1619);
emit_16(1553);
emit_16(1620);
emit_16(1554);
emit_16(1620);
emit_16(1553);
emit_16(1620);
emit_16(1554);
emit_16(1621);
emit_16(1555);
emit_16(1621);
emit_16(1554);
emit_16(1621);
emit_16(1555);
emit_16(1622);
emit_16(1556);
emit_16(1622);
emit_16(1555);
emit_16(1622);
emit_16(1556);
emit_16(1623);
emit_16(1557);
emit_16(1623);
emit_16(1556);
emit_16(1623);
emit_16(1557);
emit_16(1624);
emit_16(1558);
emit_16(1624);
emit_16(1557);
emit_16(1624);
emit_16(1558);
emit_16(1625);
emit_16(1559);
emit_16(1625);
emit_16(1558);
emit_16(1625);
emit_16(1559);
emit_16(1626);
emit_16(1560);
emit_16(1626);
emit_16(1559);
emit_16(1626);
emit_16(1560);
emit_16(1627);
emit_16(1561);
emit_16(1627);
emit_16(1560);
emit_16(1627);
emit_16(1561);
emit_16(1628);
emit_16(1562);
emit_16(1628);
emit_16(1561);
emit_16(1628);
emit_16(1562);
emit_16(1629);
emit_16(1563);
emit_16(1629);
emit_16(1562);
emit_16(1629);
emit_16(1563);
emit_16(1630);
emit_16(1564);
emit_16(1630);
emit_16(1563);
emit_16(1630);
emit_16(1564);
emit_16(1631);
emit_16(1565);
emit_16(1631);
emit_16(1564);
emit_16(1631);
emit_16(1565);
emit_16(1632);
emit_16(1566);
emit_16(1632);
emit_16(1565);
emit_16(1632);
emit_16(1566);
emit_16(1633);
emit_16(1567);
emit_16(1633);
emit_16(1566);
emit_16(1633);
emit_16(1567);
emit_16(1634);
emit_16(1568);
emit_16(1634);
emit_16(1567);
emit_16(1634);
emit_16(1568);
emit_16(1635);
emit_16(1569);
emit_16(1635);
emit_16(1568);
emit_16(1635);
emit_16(1569);
emit_16(1636);
emit_16(1570);
emit_16(1636);
emit_16(1569);
emit_16(1636);
emit_16(1570);
emit_16(1637);
emit_16(1571);
emit_16(1637);
emit_16(1570);
emit_16(1637);
emit_16(1571);
emit_16(1638);
emit_16(1572);
emit_16(1638);
emit_16(1571);
emit_16(1638);
emit_16(1572);
emit_16(1639);
emit_16(1573);
emit_16(1639);
emit_16(1572);
emit_16(1639);
emit_16(1573);
emit_16(1640);
emit_16(1574);
emit_16(1640);
emit_16(1573);
emit_16(1640);
emit_16(1574);
emit_16(1641);
emit_16(1575);
emit_16(1641);
emit_16(1574);
emit_16(1641);
emit_16(1575);
emit_16(1642);
emit_16(1576);
emit_16(1642);
emit_16(1575);
emit_16(1642);
emit_16(1576);
emit_16(1643);
emit_16(1577);
emit_16(1643);
emit_16(1576);
emit_16(1643);
emit_16(1577);
emit_16(1644);
emit_16(1578);
emit_16(1644);
emit_16(1577);
emit_16(1644);
emit_16(1578);
emit_16(1645);
emit_16(1579);
emit_16(1645);
emit_16(1578);
emit_16(1645);
emit_16(1579);
emit_16(1646);
emit_16(1580);
emit_16(1646);
emit_16(1579);
emit_16(1646);
emit_16(1580);
emit_16(1647);
emit_16(1581);
emit_16(1647);
emit_16(1580);
emit_16(1647);
emit_16(1581);
emit_16(1648);
emit_16(1582);
emit_16(1648);
emit_16(1581);
emit_16(1648);
emit_16(1582);
emit_16(1649);
emit_16(1583);
emit_16(1649);
emit_16(1582);
emit_16(1650);
emit_16(1584);
emit_16(1651);
emit_16(1585);
emit_16(1651);
emit_16(1584);
emit_16(1651);
emit_16(1585);
emit_16(1652);
emit_16(1586);
emit_16(1652);
emit_16(1585);
emit_16(1652);
emit_16(1586);
emit_16(1653);
emit_16(1587);
emit_16(1653);
emit_16(1586);
emit_16(1653);
emit_16(1587);
emit_16(1654);
emit_16(1588);
emit_16(1654);
emit_16(1587);
emit_16(1654);
emit_16(1588);
emit_16(1655);
emit_16(1589);
emit_16(1655);
emit_16(1588);
emit_16(1655);
emit_16(1589);
emit_16(1656);
emit_16(1590);
emit_16(1656);
emit_16(1589);
emit_16(1656);
emit_16(1590);
emit_16(1657);
emit_16(1591);
emit_16(1657);
emit_16(1590);
emit_16(1657);
emit_16(1591);
emit_16(1658);
emit_16(1592);
emit_16(1658);
emit_16(1591);
emit_16(1658);
emit_16(1592);
emit_16(1659);
emit_16(1593);
emit_16(1659);
emit_16(1592);
emit_16(1659);
emit_16(1593);
emit_16(1660);
emit_16(1594);
emit_16(1660);
emit_16(1593);
emit_16(1660);
emit_16(1594);
emit_16(1661);
emit_16(1595);
emit_16(1661);
emit_16(1594);
emit_16(1661);
emit_16(1595);
emit_16(1662);
emit_16(1596);
emit_16(1662);
emit_16(1595);
emit_16(1662);
emit_16(1596);
emit_16(1663);
emit_16(1597);
emit_16(1663);
emit_16(1596);
emit_16(1663);
emit_16(1597);
emit_16(1664);
emit_16(1598);
emit_16(1664);
emit_16(1597);
emit_16(1664);
emit_16(1598);
emit_16(1665);
emit_16(1599);
emit_16(1665);
emit_16(1598);
emit_16(1665);
emit_16(1599);
emit_16(1666);
emit_16(1600);
emit_16(1666);
emit_16(1599);
emit_16(1666);
emit_16(1600);
emit_16(1667);
emit_16(1601);
emit_16(1667);
emit_16(1600);
emit_16(1667);
emit_16(1601);
emit_16(1668);
emit_16(1602);
emit_16(1668);
emit_16(1601);
emit_16(1668);
emit_16(1602);
emit_16(1669);
emit_16(1603);
emit_16(1669);
emit_16(1602);
emit_16(1669);
emit_16(1603);
emit_16(1670);
emit_16(1604);
emit_16(1670);
emit_16(1603);
emit_16(1670);
emit_16(1604);
emit_16(1671);
emit_16(1605);
emit_16(1671);
emit_16(1604);
emit_16(1671);
emit_16(1605);
emit_16(1672);
emit_16(1606);
emit_16(1672);
emit_16(1605);
emit_16(1672);
emit_16(1606);
emit_16(1673);
emit_16(1607);
emit_16(1673);
emit_16(1606);
emit_16(1673);
emit_16(1607);
emit_16(1674);
emit_16(1608);
emit_16(1674);
emit_16(1607);
emit_16(1674);
emit_16(1608);
emit_16(1675);
emit_16(1609);
emit_16(1675);
emit_16(1608);
emit_16(1675);
emit_16(1609);
emit_16(1676);
emit_16(1610);
emit_16(1676);
emit_16(1609);
emit_16(1676);
emit_16(1610);
emit_16(1677);
emit_16(1611);
emit_16(1677);
emit_16(1610);
emit_16(1677);
emit_16(1611);
emit_16(1678);
emit_16(1612);
emit_16(1678);
emit_16(1611);
emit_16(1678);
emit_16(1612);
emit_16(1679);
emit_16(1613);
emit_16(1679);
emit_16(1612);
emit_16(1679);
emit_16(1613);
emit_16(1680);
emit_16(1614);
emit_16(1680);
emit_16(1613);
emit_16(1680);
emit_16(1614);
emit_16(1681);
emit_16(1615);
emit_16(1681);
emit_16(1614);
emit_16(1681);
emit_16(1615);
emit_16(1682);
emit_16(1616);
emit_16(1682);
emit_16(1615);
emit_16(1682);
emit_16(1616);
emit_16(1683);
emit_16(1617);
emit_16(1683);
emit_16(1616);
emit_16(1683);
emit_16(1617);
emit_16(1684);
emit_16(1618);
emit_16(1684);
emit_16(1617);
emit_16(1684);
emit_16(1618);
emit_16(1685);
emit_16(1619);
emit_16(1685);
emit_16(1618);
emit_16(1685);
emit_16(1619);
emit_16(1686);
emit_16(1620);
emit_16(1686);
emit_16(1619);
emit_16(1686);
emit_16(1620);
emit_16(1687);
emit_16(1621);
emit_16(1687);
emit_16(1620);
emit_16(1687);
emit_16(1621);
emit_16(1688);
emit_16(1622);
emit_16(1688);
emit_16(1621);
emit_16(1688);
emit_16(1622);
emit_16(1689);
emit_16(1623);
emit_16(1689);
emit_16(1622);
emit_16(1689);
emit_16(1623);
emit_16(1690);
emit_16(1624);
emit_16(1690);
emit_16(1623);
emit_16(1690);
emit_16(1624);
emit_16(1691);
emit_16(1625);
emit_16(1691);
emit_16(1624);
emit_16(1691);
emit_16(1625);
emit_16(1692);
emit_16(1626);
emit_16(1692);
emit_16(1625);
emit_16(1692);
emit_16(1626);
emit_16(1693);
emit_16(1627);
emit_16(1693);
emit_16(1626);
emit_16(1693);
emit_16(1627);
emit_16(1694);
emit_16(1628);
emit_16(1694);
emit_16(1627);
emit_16(1694);
emit_16(1628);
emit_16(1695);
emit_16(1629);
emit_16(1695);
emit_16(1628);
emit_16(1695);
emit_16(1629);
emit_16(1696);
emit_16(1630);
emit_16(1696);
emit_16(1629);
emit_16(1696);
emit_16(1630);
emit_16(1697);
emit_16(1631);
emit_16(1697);
emit_16(1630);
emit_16(1697);
emit_16(1631);
emit_16(1698);
emit_16(1632);
emit_16(1698);
emit_16(1631);
emit_16(1698);
emit_16(1632);
emit_16(1699);
emit_16(1633);
emit_16(1699);
emit_16(1632);
emit_16(1699);
emit_16(1633);
emit_16(1700);
emit_16(1634);
emit_16(1700);
emit_16(1633);
emit_16(1700);
emit_16(1634);
emit_16(1701);
emit_16(1635);
emit_16(1701);
emit_16(1634);
emit_16(1701);
emit_16(1635);
emit_16(1702);
emit_16(1636);
emit_16(1702);
emit_16(1635);
emit_16(1702);
emit_16(1636);
emit_16(1703);
emit_16(1637);
emit_16(1703);
emit_16(1636);
emit_16(1703);
emit_16(1637);
emit_16(1704);
emit_16(1638);
emit_16(1704);
emit_16(1637);
emit_16(1704);
emit_16(1638);
emit_16(1705);
emit_16(1639);
emit_16(1705);
emit_16(1638);
emit_16(1705);
emit_16(1639);
emit_16(1706);
emit_16(1640);
emit_16(1706);
emit_16(1639);
emit_16(1706);
emit_16(1640);
emit_16(1707);
emit_16(1641);
emit_16(1707);
emit_16(1640);
emit_16(1707);
emit_16(1641);
emit_16(1708);
emit_16(1642);
emit_16(1708);
emit_16(1641);
emit_16(1708);
emit_16(1642);
emit_16(1709);
emit_16(1643);
emit_16(1709);
emit_16(1642);
emit_16(1709);
emit_16(1643);
emit_16(1710);
emit_16(1644);
emit_16(1710);
emit_16(1643);
emit_16(1710);
emit_16(1644);
emit_16(1711);
emit_16(1645);
emit_16(1711);
emit_16(1644);
emit_16(1711);
emit_16(1645);
emit_16(1712);
emit_16(1646);
emit_16(1712);
emit_16(1645);
emit_16(1712);
emit_16(1646);
emit_16(1713);
emit_16(1647);
emit_16(1713);
emit_16(1646);
emit_16(1713);
emit_16(1647);
emit_16(1714);
emit_16(1648);
emit_16(1714);
emit_16(1647);
emit_16(1714);
emit_16(1648);
emit_16(1715);
emit_16(1649);
emit_16(1715);
emit_16(1648);
emit_16(1716);
emit_16(1650);
emit_16(1717);
emit_16(1651);
emit_16(1717);
emit_16(1650);
emit_16(1717);
emit_16(1651);
emit_16(1718);
emit_16(1652);
emit_16(1718);
emit_16(1651);
emit_16(1718);
emit_16(1652);
emit_16(1719);
emit_16(1653);
emit_16(1719);
emit_16(1652);
emit_16(1719);
emit_16(1653);
emit_16(1720);
emit_16(1654);
emit_16(1720);
emit_16(1653);
emit_16(1720);
emit_16(1654);
emit_16(1721);
emit_16(1655);
emit_16(1721);
emit_16(1654);
emit_16(1721);
emit_16(1655);
emit_16(1722);
emit_16(1656);
emit_16(1722);
emit_16(1655);
emit_16(1722);
emit_16(1656);
emit_16(1723);
emit_16(1657);
emit_16(1723);
emit_16(1656);
emit_16(1723);
emit_16(1657);
emit_16(1724);
emit_16(1658);
emit_16(1724);
emit_16(1657);
emit_16(1724);
emit_16(1658);
emit_16(1725);
emit_16(1659);
emit_16(1725);
emit_16(1658);
emit_16(1725);
emit_16(1659);
emit_16(1726);
emit_16(1660);
emit_16(1726);
emit_16(1659);
emit_16(1726);
emit_16(1660);
emit_16(1727);
emit_16(1661);
emit_16(1727);
emit_16(1660);
emit_16(1727);
emit_16(1661);
emit_16(1728);
emit_16(1662);
emit_16(1728);
emit_16(1661);
emit_16(1728);
emit_16(1662);
emit_16(1729);
emit_16(1663);
emit_16(1729);
emit_16(1662);
emit_16(1729);
emit_16(1663);
emit_16(1730);
emit_16(1664);
emit_16(1730);
emit_16(1663);
emit_16(1730);
emit_16(1664);
emit_16(1731);
emit_16(1665);
emit_16(1731);
emit_16(1664);
emit_16(1731);
emit_16(1665);
emit_16(1732);
emit_16(1666);
emit_16(1732);
emit_16(1665);
emit_16(1732);
emit_16(1666);
emit_16(1733);
emit_16(1667);
emit_16(1733);
emit_16(1666);
emit_16(1733);
emit_16(1667);
emit_16(1734);
emit_16(1668);
emit_16(1734);
emit_16(1667);
emit_16(1734);
emit_16(1668);
emit_16(1735);
emit_16(1669);
emit_16(1735);
emit_16(1668);
emit_16(1735);
emit_16(1669);
emit_16(1736);
emit_16(1670);
emit_16(1736);
emit_16(1669);
emit_16(1736);
emit_16(1670);
emit_16(1737);
emit_16(1671);
emit_16(1737);
emit_16(1670);
emit_16(1737);
emit_16(1671);
emit_16(1738);
emit_16(1672);
emit_16(1738);
emit_16(1671);
emit_16(1738);
emit_16(1672);
emit_16(1739);
emit_16(1673);
emit_16(1739);
emit_16(1672);
emit_16(1739);
emit_16(1673);
emit_16(1740);
emit_16(1674);
emit_16(1740);
emit_16(1673);
emit_16(1740);
emit_16(1674);
emit_16(1741);
emit_16(1675);
emit_16(1741);
emit_16(1674);
emit_16(1741);
emit_16(1675);
emit_16(1742);
emit_16(1676);
emit_16(1742);
emit_16(1675);
emit_16(1742);
emit_16(1676);
emit_16(1743);
emit_16(1677);
emit_16(1743);
emit_16(1676);
emit_16(1743);
emit_16(1677);
emit_16(1744);
emit_16(1678);
emit_16(1744);
emit_16(1677);
emit_16(1744);
emit_16(1678);
emit_16(1745);
emit_16(1679);
emit_16(1745);
emit_16(1678);
emit_16(1745);
emit_16(1679);
emit_16(1746);
emit_16(1680);
emit_16(1746);
emit_16(1679);
emit_16(1746);
emit_16(1680);
emit_16(1747);
emit_16(1681);
emit_16(1747);
emit_16(1680);
emit_16(1747);
emit_16(1681);
emit_16(1748);
emit_16(1682);
emit_16(1748);
emit_16(1681);
emit_16(1748);
emit_16(1682);
emit_16(1749);
emit_16(1683);
emit_16(1749);
emit_16(1682);
emit_16(1749);
emit_16(1683);
emit_16(1750);
emit_16(1684);
emit_16(1750);
emit_16(1683);
emit_16(1750);
emit_16(1684);
emit_16(1751);
emit_16(1685);
emit_16(1751);
emit_16(1684);
emit_16(1751);
emit_16(1685);
emit_16(1752);
emit_16(1686);
emit_16(1752);
emit_16(1685);
emit_16(1752);
emit_16(1686);
emit_16(1753);
emit_16(1687);
emit_16(1753);
emit_16(1686);
emit_16(1753);
emit_16(1687);
emit_16(1754);
emit_16(1688);
emit_16(1754);
emit_16(1687);
emit_16(1754);
emit_16(1688);
emit_16(1755);
emit_16(1689);
emit_16(1755);
emit_16(1688);
emit_16(1755);
emit_16(1689);
emit_16(1756);
emit_16(1690);
emit_16(1756);
emit_16(1689);
emit_16(1756);
emit_16(1690);
emit_16(1757);
emit_16(1691);
emit_16(1757);
emit_16(1690);
emit_16(1757);
emit_16(1691);
emit_16(1758);
emit_16(1692);
emit_16(1758);
emit_16(1691);
emit_16(1758);
emit_16(1692);
emit_16(1759);
emit_16(1693);
emit_16(1759);
emit_16(1692);
emit_16(1759);
emit_16(1693);
emit_16(1760);
emit_16(1694);
emit_16(1760);
emit_16(1693);
emit_16(1760);
emit_16(1694);
emit_16(1761);
emit_16(1695);
emit_16(1761);
emit_16(1694);
emit_16(1761);
emit_16(1695);
emit_16(1762);
emit_16(1696);
emit_16(1762);
emit_16(1695);
emit_16(1762);
emit_16(1696);
emit_16(1763);
emit_16(1697);
emit_16(1763);
emit_16(1696);
emit_16(1763);
emit_16(1697);
emit_16(1764);
emit_16(1698);
emit_16(1764);
emit_16(1697);
emit_16(1764);
emit_16(1698);
emit_16(1765);
emit_16(1699);
emit_16(1765);
emit_16(1698);
emit_16(1765);
emit_16(1699);
emit_16(1766);
emit_16(1700);
emit_16(1766);
emit_16(1699);
emit_16(1766);
emit_16(1700);
emit_16(1767);
emit_16(1701);
emit_16(1767);
emit_16(1700);
emit_16(1767);
emit_16(1701);
emit_16(1768);
emit_16(1702);
emit_16(1768);
emit_16(1701);
emit_16(1768);
emit_16(1702);
emit_16(1769);
emit_16(1703);
emit_16(1769);
emit_16(1702);
emit_16(1769);
emit_16(1703);
emit_16(1770);
emit_16(1704);
emit_16(1770);
emit_16(1703);
emit_16(1770);
emit_16(1704);
emit_16(1771);
emit_16(1705);
emit_16(1771);
emit_16(1704);
emit_16(1771);
emit_16(1705);
emit_16(1772);
emit_16(1706);
emit_16(1772);
emit_16(1705);
emit_16(1772);
emit_16(1706);
emit_16(1773);
emit_16(1707);
emit_16(1773);
emit_16(1706);
emit_16(1773);
emit_16(1707);
emit_16(1774);
emit_16(1708);
emit_16(1774);
emit_16(1707);
emit_16(1774);
emit_16(1708);
emit_16(1775);
emit_16(1709);
emit_16(1775);
emit_16(1708);
emit_16(1775);
emit_16(1709);
emit_16(1776);
emit_16(1710);
emit_16(1776);
emit_16(1709);
emit_16(1776);
emit_16(1710);
emit_16(1777);
emit_16(1711);
emit_16(1777);
emit_16(1710);
emit_16(1777);
emit_16(1711);
emit_16(1778);
emit_16(1712);
emit_16(1778);
emit_16(1711);
emit_16(1778);
emit_16(1712);
emit_16(1779);
emit_16(1713);
emit_16(1779);
emit_16(1712);
emit_16(1779);
emit_16(1713);
emit_16(1780);
emit_16(1714);
emit_16(1780);
emit_16(1713);
emit_16(1780);
emit_16(1714);
emit_16(1781);
emit_16(1715);
emit_16(1781);
emit_16(1714);
emit_16(1782);
emit_16(1716);
emit_16(1783);
emit_16(1717);
emit_16(1783);
emit_16(1716);
emit_16(1783);
emit_16(1717);
emit_16(1784);
emit_16(1718);
emit_16(1784);
emit_16(1717);
emit_16(1784);
emit_16(1718);
emit_16(1785);
emit_16(1719);
emit_16(1785);
emit_16(1718);
emit_16(1785);
emit_16(1719);
emit_16(1786);
emit_16(1720);
emit_16(1786);
emit_16(1719);
emit_16(1786);
emit_16(1720);
emit_16(1787);
emit_16(1721);
emit_16(1787);
emit_16(1720);
emit_16(1787);
emit_16(1721);
emit_16(1788);
emit_16(1722);
emit_16(1788);
emit_16(1721);
emit_16(1788);
emit_16(1722);
emit_16(1789);
emit_16(1723);
emit_16(1789);
emit_16(1722);
emit_16(1789);
emit_16(1723);
emit_16(1790);
emit_16(1724);
emit_16(1790);
emit_16(1723);
emit_16(1790);
emit_16(1724);
emit_16(1791);
emit_16(1725);
emit_16(1791);
emit_16(1724);
emit_16(1791);
emit_16(1725);
emit_16(1792);
emit_16(1726);
emit_16(1792);
emit_16(1725);
emit_16(1792);
emit_16(1726);
emit_16(1793);
emit_16(1727);
emit_16(1793);
emit_16(1726);
emit_16(1793);
emit_16(1727);
emit_16(1794);
emit_16(1728);
emit_16(1794);
emit_16(1727);
emit_16(1794);
emit_16(1728);
emit_16(1795);
emit_16(1729);
emit_16(1795);
emit_16(1728);
emit_16(1795);
emit_16(1729);
emit_16(1796);
emit_16(1730);
emit_16(1796);
emit_16(1729);
emit_16(1796);
emit_16(1730);
emit_16(1797);
emit_16(1731);
emit_16(1797);
emit_16(1730);
emit_16(1797);
emit_16(1731);
emit_16(1798);
emit_16(1732);
emit_16(1798);
emit_16(1731);
emit_16(1798);
emit_16(1732);
emit_16(1799);
emit_16(1733);
emit_16(1799);
emit_16(1732);
emit_16(1799);
emit_16(1733);
emit_16(1800);
emit_16(1734);
emit_16(1800);
emit_16(1733);
emit_16(1800);
emit_16(1734);
emit_16(1801);
emit_16(1735);
emit_16(1801);
emit_16(1734);
emit_16(1801);
emit_16(1735);
emit_16(1802);
emit_16(1736);
emit_16(1802);
emit_16(1735);
emit_16(1802);
emit_16(1736);
emit_16(1803);
emit_16(1737);
emit_16(1803);
emit_16(1736);
emit_16(1803);
emit_16(1737);
emit_16(1804);
emit_16(1738);
emit_16(1804);
emit_16(1737);
emit_16(1804);
emit_16(1738);
emit_16(1805);
emit_16(1739);
emit_16(1805);
emit_16(1738);
emit_16(1805);
emit_16(1739);
emit_16(1806);
emit_16(1740);
emit_16(1806);
emit_16(1739);
emit_16(1806);
emit_16(1740);
emit_16(1807);
emit_16(1741);
emit_16(1807);
emit_16(1740);
emit_16(1807);
emit_16(1741);
emit_16(1808);
emit_16(1742);
emit_16(1808);
emit_16(1741);
emit_16(1808);
emit_16(1742);
emit_16(1809);
emit_16(1743);
emit_16(1809);
emit_16(1742);
emit_16(1809);
emit_16(1743);
emit_16(1810);
emit_16(1744);
emit_16(1810);
emit_16(1743);
emit_16(1810);
emit_16(1744);
emit_16(1811);
emit_16(1745);
emit_16(1811);
emit_16(1744);
emit_16(1811);
emit_16(1745);
emit_16(1812);
emit_16(1746);
emit_16(1812);
emit_16(1745);
emit_16(1812);
emit_16(1746);
emit_16(1813);
emit_16(1747);
emit_16(1813);
emit_16(1746);
emit_16(1813);
emit_16(1747);
emit_16(1814);
emit_16(1748);
emit_16(1814);
emit_16(1747);
emit_16(1814);
emit_16(1748);
emit_16(1815);
emit_16(1749);
emit_16(1815);
emit_16(1748);
emit_16(1815);
emit_16(1749);
emit_16(1816);
emit_16(1750);
emit_16(1816);
emit_16(1749);
emit_16(1816);
emit_16(1750);
emit_16(1817);
emit_16(1751);
emit_16(1817);
emit_16(1750);
emit_16(1817);
emit_16(1751);
emit_16(1818);
emit_16(1752);
emit_16(1818);
emit_16(1751);
emit_16(1818);
emit_16(1752);
emit_16(1819);
emit_16(1753);
emit_16(1819);
emit_16(1752);
emit_16(1819);
emit_16(1753);
emit_16(1820);
emit_16(1754);
emit_16(1820);
emit_16(1753);
emit_16(1820);
emit_16(1754);
emit_16(1821);
emit_16(1755);
emit_16(1821);
emit_16(1754);
emit_16(1821);
emit_16(1755);
emit_16(1822);
emit_16(1756);
emit_16(1822);
emit_16(1755);
emit_16(1822);
emit_16(1756);
emit_16(1823);
emit_16(1757);
emit_16(1823);
emit_16(1756);
emit_16(1823);
emit_16(1757);
emit_16(1824);
emit_16(1758);
emit_16(1824);
emit_16(1757);
emit_16(1824);
emit_16(1758);
emit_16(1825);
emit_16(1759);
emit_16(1825);
emit_16(1758);
emit_16(1825);
emit_16(1759);
emit_16(1826);
emit_16(1760);
emit_16(1826);
emit_16(1759);
emit_16(1826);
emit_16(1760);
emit_16(1827);
emit_16(1761);
emit_16(1827);
emit_16(1760);
emit_16(1827);
emit_16(1761);
emit_16(1828);
emit_16(1762);
emit_16(1828);
emit_16(1761);
emit_16(1828);
emit_16(1762);
emit_16(1829);
emit_16(1763);
emit_16(1829);
emit_16(1762);
emit_16(1829);
emit_16(1763);
emit_16(1830);
emit_16(1764);
emit_16(1830);
emit_16(1763);
emit_16(1830);
emit_16(1764);
emit_16(1831);
emit_16(1765);
emit_16(1831);
emit_16(1764);
emit_16(1831);
emit_16(1765);
emit_16(1832);
emit_16(1766);
emit_16(1832);
emit_16(1765);
emit_16(1832);
emit_16(1766);
emit_16(1833);
emit_16(1767);
emit_16(1833);
emit_16(1766);
emit_16(1833);
emit_16(1767);
emit_16(1834);
emit_16(1768);
emit_16(1834);
emit_16(1767);
emit_16(1834);
emit_16(1768);
emit_16(1835);
emit_16(1769);
emit_16(1835);
emit_16(1768);
emit_16(1835);
emit_16(1769);
emit_16(1836);
emit_16(1770);
emit_16(1836);
emit_16(1769);
emit_16(1836);
emit_16(1770);
emit_16(1837);
emit_16(1771);
emit_16(1837);
emit_16(1770);
emit_16(1837);
emit_16(1771);
emit_16(1838);
emit_16(1772);
emit_16(1838);
emit_16(1771);
emit_16(1838);
emit_16(1772);
emit_16(1839);
emit_16(1773);
emit_16(1839);
emit_16(1772);
emit_16(1839);
emit_16(1773);
emit_16(1840);
emit_16(1774);
emit_16(1840);
emit_16(1773);
emit_16(1840);
emit_16(1774);
emit_16(1841);
emit_16(1775);
emit_16(1841);
emit_16(1774);
emit_16(1841);
emit_16(1775);
emit_16(1842);
emit_16(1776);
emit_16(1842);
emit_16(1775);
emit_16(1842);
emit_16(1776);
emit_16(1843);
emit_16(1777);
emit_16(1843);
emit_16(1776);
emit_16(1843);
emit_16(1777);
emit_16(1844);
emit_16(1778);
emit_16(1844);
emit_16(1777);
emit_16(1844);
emit_16(1778);
emit_16(1845);
emit_16(1779);
emit_16(1845);
emit_16(1778);
emit_16(1845);
emit_16(1779);
emit_16(1846);
emit_16(1780);
emit_16(1846);
emit_16(1779);
emit_16(1846);
emit_16(1780);
emit_16(1847);
emit_16(1781);
emit_16(1847);
emit_16(1780);
emit_16(1848);
emit_16(1782);
emit_16(1849);
emit_16(1783);
emit_16(1849);
emit_16(1782);
emit_16(1849);
emit_16(1783);
emit_16(1850);
emit_16(1784);
emit_16(1850);
emit_16(1783);
emit_16(1850);
emit_16(1784);
emit_16(1851);
emit_16(1785);
emit_16(1851);
emit_16(1784);
emit_16(1851);
emit_16(1785);
emit_16(1852);
emit_16(1786);
emit_16(1852);
emit_16(1785);
emit_16(1852);
emit_16(1786);
emit_16(1853);
emit_16(1787);
emit_16(1853);
emit_16(1786);
emit_16(1853);
emit_16(1787);
emit_16(1854);
emit_16(1788);
emit_16(1854);
emit_16(1787);
emit_16(1854);
emit_16(1788);
emit_16(1855);
emit_16(1789);
emit_16(1855);
emit_16(1788);
emit_16(1855);
emit_16(1789);
emit_16(1856);
emit_16(1790);
emit_16(1856);
emit_16(1789);
emit_16(1856);
emit_16(1790);
emit_16(1857);
emit_16(1791);
emit_16(1857);
emit_16(1790);
emit_16(1857);
emit_16(1791);
emit_16(1858);
emit_16(1792);
emit_16(1858);
emit_16(1791);
emit_16(1858);
emit_16(1792);
emit_16(1859);
emit_16(1793);
emit_16(1859);
emit_16(1792);
emit_16(1859);
emit_16(1793);
emit_16(1860);
emit_16(1794);
emit_16(1860);
emit_16(1793);
emit_16(1860);
emit_16(1794);
emit_16(1861);
emit_16(1795);
emit_16(1861);
emit_16(1794);
emit_16(1861);
emit_16(1795);
emit_16(1862);
emit_16(1796);
emit_16(1862);
emit_16(1795);
emit_16(1862);
emit_16(1796);
emit_16(1863);
emit_16(1797);
emit_16(1863);
emit_16(1796);
emit_16(1863);
emit_16(1797);
emit_16(1864);
emit_16(1798);
emit_16(1864);
emit_16(1797);
emit_16(1864);
emit_16(1798);
emit_16(1865);
emit_16(1799);
emit_16(1865);
emit_16(1798);
emit_16(1865);
emit_16(1799);
emit_16(1866);
emit_16(1800);
emit_16(1866);
emit_16(1799);
emit_16(1866);
emit_16(1800);
emit_16(1867);
emit_16(1801);
emit_16(1867);
emit_16(1800);
emit_16(1867);
emit_16(1801);
emit_16(1868);
emit_16(1802);
emit_16(1868);
emit_16(1801);
emit_16(1868);
emit_16(1802);
emit_16(1869);
emit_16(1803);
emit_16(1869);
emit_16(1802);
emit_16(1869);
emit_16(1803);
emit_16(1870);
emit_16(1804);
emit_16(1870);
emit_16(1803);
emit_16(1870);
emit_16(1804);
emit_16(1871);
emit_16(1805);
emit_16(1871);
emit_16(1804);
emit_16(1871);
emit_16(1805);
emit_16(1872);
emit_16(1806);
emit_16(1872);
emit_16(1805);
emit_16(1872);
emit_16(1806);
emit_16(1873);
emit_16(1807);
emit_16(1873);
emit_16(1806);
emit_16(1873);
emit_16(1807);
emit_16(1874);
emit_16(1808);
emit_16(1874);
emit_16(1807);
emit_16(1874);
emit_16(1808);
emit_16(1875);
emit_16(1809);
emit_16(1875);
emit_16(1808);
emit_16(1875);
emit_16(1809);
emit_16(1876);
emit_16(1810);
emit_16(1876);
emit_16(1809);
emit_16(1876);
emit_16(1810);
emit_16(1877);
emit_16(1811);
emit_16(1877);
emit_16(1810);
emit_16(1877);
emit_16(1811);
emit_16(1878);
emit_16(1812);
emit_16(1878);
emit_16(1811);
emit_16(1878);
emit_16(1812);
emit_16(1879);
emit_16(1813);
emit_16(1879);
emit_16(1812);
emit_16(1879);
emit_16(1813);
emit_16(1880);
emit_16(1814);
emit_16(1880);
emit_16(1813);
emit_16(1880);
emit_16(1814);
emit_16(1881);
emit_16(1815);
emit_16(1881);
emit_16(1814);
emit_16(1881);
emit_16(1815);
emit_16(1882);
emit_16(1816);
emit_16(1882);
emit_16(1815);
emit_16(1882);
emit_16(1816);
emit_16(1883);
emit_16(1817);
emit_16(1883);
emit_16(1816);
emit_16(1883);
emit_16(1817);
emit_16(1884);
emit_16(1818);
emit_16(1884);
emit_16(1817);
emit_16(1884);
emit_16(1818);
emit_16(1885);
emit_16(1819);
emit_16(1885);
emit_16(1818);
emit_16(1885);
emit_16(1819);
emit_16(1886);
emit_16(1820);
emit_16(1886);
emit_16(1819);
emit_16(1886);
emit_16(1820);
emit_16(1887);
emit_16(1821);
emit_16(1887);
emit_16(1820);
emit_16(1887);
emit_16(1821);
emit_16(1888);
emit_16(1822);
emit_16(1888);
emit_16(1821);
emit_16(1888);
emit_16(1822);
emit_16(1889);
emit_16(1823);
emit_16(1889);
emit_16(1822);
emit_16(1889);
emit_16(1823);
emit_16(1890);
emit_16(1824);
emit_16(1890);
emit_16(1823);
emit_16(1890);
emit_16(1824);
emit_16(1891);
emit_16(1825);
emit_16(1891);
emit_16(1824);
emit_16(1891);
emit_16(1825);
emit_16(1892);
emit_16(1826);
emit_16(1892);
emit_16(1825);
emit_16(1892);
emit_16(1826);
emit_16(1893);
emit_16(1827);
emit_16(1893);
emit_16(1826);
emit_16(1893);
emit_16(1827);
emit_16(1894);
emit_16(1828);
emit_16(1894);
emit_16(1827);
emit_16(1894);
emit_16(1828);
emit_16(1895);
emit_16(1829);
emit_16(1895);
emit_16(1828);
emit_16(1895);
emit_16(1829);
emit_16(1896);
emit_16(1830);
emit_16(1896);
emit_16(1829);
emit_16(1896);
emit_16(1830);
emit_16(1897);
emit_16(1831);
emit_16(1897);
emit_16(1830);
emit_16(1897);
emit_16(1831);
emit_16(1898);
emit_16(1832);
emit_16(1898);
emit_16(1831);
emit_16(1898);
emit_16(1832);
emit_16(1899);
emit_16(1833);
emit_16(1899);
emit_16(1832);
emit_16(1899);
emit_16(1833);
emit_16(1900);
emit_16(1834);
emit_16(1900);
emit_16(1833);
emit_16(1900);
emit_16(1834);
emit_16(1901);
emit_16(1835);
emit_16(1901);
emit_16(1834);
emit_16(1901);
emit_16(1835);
emit_16(1902);
emit_16(1836);
emit_16(1902);
emit_16(1835);
emit_16(1902);
emit_16(1836);
emit_16(1903);
emit_16(1837);
emit_16(1903);
emit_16(1836);
emit_16(1903);
emit_16(1837);
emit_16(1904);
emit_16(1838);
emit_16(1904);
emit_16(1837);
emit_16(1904);
emit_16(1838);
emit_16(1905);
emit_16(1839);
emit_16(1905);
emit_16(1838);
emit_16(1905);
emit_16(1839);
emit_16(1906);
emit_16(1840);
emit_16(1906);
emit_16(1839);
emit_16(1906);
emit_16(1840);
emit_16(1907);
emit_16(1841);
emit_16(1907);
emit_16(1840);
emit_16(1907);
emit_16(1841);
emit_16(1908);
emit_16(1842);
emit_16(1908);
emit_16(1841);
emit_16(1908);
emit_16(1842);
emit_16(1909);
emit_16(1843);
emit_16(1909);
emit_16(1842);
emit_16(1909);
emit_16(1843);
emit_16(1910);
emit_16(1844);
emit_16(1910);
emit_16(1843);
emit_16(1910);
emit_16(1844);
emit_16(1911);
emit_16(1845);
emit_16(1911);
emit_16(1844);
emit_16(1911);
emit_16(1845);
emit_16(1912);
emit_16(1846);
emit_16(1912);
emit_16(1845);
emit_16(1912);
emit_16(1846);
emit_16(1913);
emit_16(1847);
emit_16(1913);
emit_16(1846);
emit_16(1914);
emit_16(1848);
emit_16(1915);
emit_16(1849);
emit_16(1915);
emit_16(1848);
emit_16(1915);
emit_16(1849);
emit_16(1916);
emit_16(1850);
emit_16(1916);
emit_16(1849);
emit_16(1916);
emit_16(1850);
emit_16(1917);
emit_16(1851);
emit_16(1917);
emit_16(1850);
emit_16(1917);
emit_16(1851);
emit_16(1918);
emit_16(1852);
emit_16(1918);
emit_16(1851);
emit_16(1918);
emit_16(1852);
emit_16(1919);
emit_16(1853);
emit_16(1919);
emit_16(1852);
emit_16(1919);
emit_16(1853);
emit_16(1920);
emit_16(1854);
emit_16(1920);
emit_16(1853);
emit_16(1920);
emit_16(1854);
emit_16(1921);
emit_16(1855);
emit_16(1921);
emit_16(1854);
emit_16(1921);
emit_16(1855);
emit_16(1922);
emit_16(1856);
emit_16(1922);
emit_16(1855);
emit_16(1922);
emit_16(1856);
emit_16(1923);
emit_16(1857);
emit_16(1923);
emit_16(1856);
emit_16(1923);
emit_16(1857);
emit_16(1924);
emit_16(1858);
emit_16(1924);
emit_16(1857);
emit_16(1924);
emit_16(1858);
emit_16(1925);
emit_16(1859);
emit_16(1925);
emit_16(1858);
emit_16(1925);
emit_16(1859);
emit_16(1926);
emit_16(1860);
emit_16(1926);
emit_16(1859);
emit_16(1926);
emit_16(1860);
emit_16(1927);
emit_16(1861);
emit_16(1927);
emit_16(1860);
emit_16(1927);
emit_16(1861);
emit_16(1928);
emit_16(1862);
emit_16(1928);
emit_16(1861);
emit_16(1928);
emit_16(1862);
emit_16(1929);
emit_16(1863);
emit_16(1929);
emit_16(1862);
emit_16(1929);
emit_16(1863);
emit_16(1930);
emit_16(1864);
emit_16(1930);
emit_16(1863);
emit_16(1930);
emit_16(1864);
emit_16(1931);
emit_16(1865);
emit_16(1931);
emit_16(1864);
emit_16(1931);
emit_16(1865);
emit_16(1932);
emit_16(1866);
emit_16(1932);
emit_16(1865);
emit_16(1932);
emit_16(1866);
emit_16(1933);
emit_16(1867);
emit_16(1933);
emit_16(1866);
emit_16(1933);
emit_16(1867);
emit_16(1934);
emit_16(1868);
emit_16(1934);
emit_16(1867);
emit_16(1934);
emit_16(1868);
emit_16(1935);
emit_16(1869);
emit_16(1935);
emit_16(1868);
emit_16(1935);
emit_16(1869);
emit_16(1936);
emit_16(1870);
emit_16(1936);
emit_16(1869);
emit_16(1936);
emit_16(1870);
emit_16(1937);
emit_16(1871);
emit_16(1937);
emit_16(1870);
emit_16(1937);
emit_16(1871);
emit_16(1938);
emit_16(1872);
emit_16(1938);
emit_16(1871);
emit_16(1938);
emit_16(1872);
emit_16(1939);
emit_16(1873);
emit_16(1939);
emit_16(1872);
emit_16(1939);
emit_16(1873);
emit_16(1940);
emit_16(1874);
emit_16(1940);
emit_16(1873);
emit_16(1940);
emit_16(1874);
emit_16(1941);
emit_16(1875);
emit_16(1941);
emit_16(1874);
emit_16(1941);
emit_16(1875);
emit_16(1942);
emit_16(1876);
emit_16(1942);
emit_16(1875);
emit_16(1942);
emit_16(1876);
emit_16(1943);
emit_16(1877);
emit_16(1943);
emit_16(1876);
emit_16(1943);
emit_16(1877);
emit_16(1944);
emit_16(1878);
emit_16(1944);
emit_16(1877);
emit_16(1944);
emit_16(1878);
emit_16(1945);
emit_16(1879);
emit_16(1945);
emit_16(1878);
emit_16(1945);
emit_16(1879);
emit_16(1946);
emit_16(1880);
emit_16(1946);
emit_16(1879);
emit_16(1946);
emit_16(1880);
emit_16(1947);
emit_16(1881);
emit_16(1947);
emit_16(1880);
emit_16(1947);
emit_16(1881);
emit_16(1948);
emit_16(1882);
emit_16(1948);
emit_16(1881);
emit_16(1948);
emit_16(1882);
emit_16(1949);
emit_16(1883);
emit_16(1949);
emit_16(1882);
emit_16(1949);
emit_16(1883);
emit_16(1950);
emit_16(1884);
emit_16(1950);
emit_16(1883);
emit_16(1950);
emit_16(1884);
emit_16(1951);
emit_16(1885);
emit_16(1951);
emit_16(1884);
emit_16(1951);
emit_16(1885);
emit_16(1952);
emit_16(1886);
emit_16(1952);
emit_16(1885);
emit_16(1952);
emit_16(1886);
emit_16(1953);
emit_16(1887);
emit_16(1953);
emit_16(1886);
emit_16(1953);
emit_16(1887);
emit_16(1954);
emit_16(1888);
emit_16(1954);
emit_16(1887);
emit_16(1954);
emit_16(1888);
emit_16(1955);
emit_16(1889);
emit_16(1955);
emit_16(1888);
emit_16(1955);
emit_16(1889);
emit_16(1956);
emit_16(1890);
emit_16(1956);
emit_16(1889);
emit_16(1956);
emit_16(1890);
emit_16(1957);
emit_16(1891);
emit_16(1957);
emit_16(1890);
emit_16(1957);
emit_16(1891);
emit_16(1958);
emit_16(1892);
emit_16(1958);
emit_16(1891);
emit_16(1958);
emit_16(1892);
emit_16(1959);
emit_16(1893);
emit_16(1959);
emit_16(1892);
emit_16(1959);
emit_16(1893);
emit_16(1960);
emit_16(1894);
emit_16(1960);
emit_16(1893);
emit_16(1960);
emit_16(1894);
emit_16(1961);
emit_16(1895);
emit_16(1961);
emit_16(1894);
emit_16(1961);
emit_16(1895);
emit_16(1962);
emit_16(1896);
emit_16(1962);
emit_16(1895);
emit_16(1962);
emit_16(1896);
emit_16(1963);
emit_16(1897);
emit_16(1963);
emit_16(1896);
emit_16(1963);
emit_16(1897);
emit_16(1964);
emit_16(1898);
emit_16(1964);
emit_16(1897);
emit_16(1964);
emit_16(1898);
emit_16(1965);
emit_16(1899);
emit_16(1965);
emit_16(1898);
emit_16(1965);
emit_16(1899);
emit_16(1966);
emit_16(1900);
emit_16(1966);
emit_16(1899);
emit_16(1966);
emit_16(1900);
emit_16(1967);
emit_16(1901);
emit_16(1967);
emit_16(1900);
emit_16(1967);
emit_16(1901);
emit_16(1968);
emit_16(1902);
emit_16(1968);
emit_16(1901);
emit_16(1968);
emit_16(1902);
emit_16(1969);
emit_16(1903);
emit_16(1969);
emit_16(1902);
emit_16(1969);
emit_16(1903);
emit_16(1970);
emit_16(1904);
emit_16(1970);
emit_16(1903);
emit_16(1970);
emit_16(1904);
emit_16(1971);
emit_16(1905);
emit_16(1971);
emit_16(1904);
emit_16(1971);
emit_16(1905);
emit_16(1972);
emit_16(1906);
emit_16(1972);
emit_16(1905);
emit_16(1972);
emit_16(1906);
emit_16(1973);
emit_16(1907);
emit_16(1973);
emit_16(1906);
emit_16(1973);
emit_16(1907);
emit_16(1974);
emit_16(1908);
emit_16(1974);
emit_16(1907);
emit_16(1974);
emit_16(1908);
emit_16(1975);
emit_16(1909);
emit_16(1975);
emit_16(1908);
emit_16(1975);
emit_16(1909);
emit_16(1976);
emit_16(1910);
emit_16(1976);
emit_16(1909);
emit_16(1976);
emit_16(1910);
emit_16(1977);
emit_16(1911);
emit_16(1977);
emit_16(1910);
emit_16(1977);
emit_16(1911);
emit_16(1978);
emit_16(1912);
emit_16(1978);
emit_16(1911);
emit_16(1978);
emit_16(1912);
emit_16(1979);
emit_16(1913);
emit_16(1979);
emit_16(1912);
emit_16(1980);
emit_16(1914);
emit_16(1981);
emit_16(1915);
emit_16(1981);
emit_16(1914);
emit_16(1981);
emit_16(1915);
emit_16(1982);
emit_16(1916);
emit_16(1982);
emit_16(1915);
emit_16(1982);
emit_16(1916);
emit_16(1983);
emit_16(1917);
emit_16(1983);
emit_16(1916);
emit_16(1983);
emit_16(1917);
emit_16(1984);
emit_16(1918);
emit_16(1984);
emit_16(1917);
emit_16(1984);
emit_16(1918);
emit_16(1985);
emit_16(1919);
emit_16(1985);
emit_16(1918);
emit_16(1985);
emit_16(1919);
emit_16(1986);
emit_16(1920);
emit_16(1986);
emit_16(1919);
emit_16(1986);
emit_16(1920);
emit_16(1987);
emit_16(1921);
emit_16(1987);
emit_16(1920);
emit_16(1987);
emit_16(1921);
emit_16(1988);
emit_16(1922);
emit_16(1988);
emit_16(1921);
emit_16(1988);
emit_16(1922);
emit_16(1989);
emit_16(1923);
emit_16(1989);
emit_16(1922);
emit_16(1989);
emit_16(1923);
emit_16(1990);
emit_16(1924);
emit_16(1990);
emit_16(1923);
emit_16(1990);
emit_16(1924);
emit_16(1991);
emit_16(1925);
emit_16(1991);
emit_16(1924);
emit_16(1991);
emit_16(1925);
emit_16(1992);
emit_16(1926);
emit_16(1992);
emit_16(1925);
emit_16(1992);
emit_16(1926);
emit_16(1993);
emit_16(1927);
emit_16(1993);
emit_16(1926);
emit_16(1993);
emit_16(1927);
emit_16(1994);
emit_16(1928);
emit_16(1994);
emit_16(1927);
emit_16(1994);
emit_16(1928);
emit_16(1995);
emit_16(1929);
emit_16(1995);
emit_16(1928);
emit_16(1995);
emit_16(1929);
emit_16(1996);
emit_16(1930);
emit_16(1996);
emit_16(1929);
emit_16(1996);
emit_16(1930);
emit_16(1997);
emit_16(1931);
emit_16(1997);
emit_16(1930);
emit_16(1997);
emit_16(1931);
emit_16(1998);
emit_16(1932);
emit_16(1998);
emit_16(1931);
emit_16(1998);
emit_16(1932);
emit_16(1999);
emit_16(1933);
emit_16(1999);
emit_16(1932);
emit_16(1999);
emit_16(1933);
emit_16(2000);
emit_16(1934);
emit_16(2000);
emit_16(1933);
emit_16(2000);
emit_16(1934);
emit_16(2001);
emit_16(1935);
emit_16(2001);
emit_16(1934);
emit_16(2001);
emit_16(1935);
emit_16(2002);
emit_16(1936);
emit_16(2002);
emit_16(1935);
emit_16(2002);
emit_16(1936);
emit_16(2003);
emit_16(1937);
emit_16(2003);
emit_16(1936);
emit_16(2003);
emit_16(1937);
emit_16(2004);
emit_16(1938);
emit_16(2004);
emit_16(1937);
emit_16(2004);
emit_16(1938);
emit_16(2005);
emit_16(1939);
emit_16(2005);
emit_16(1938);
emit_16(2005);
emit_16(1939);
emit_16(2006);
emit_16(1940);
emit_16(2006);
emit_16(1939);
emit_16(2006);
emit_16(1940);
emit_16(2007);
emit_16(1941);
emit_16(2007);
emit_16(1940);
emit_16(2007);
emit_16(1941);
emit_16(2008);
emit_16(1942);
emit_16(2008);
emit_16(1941);
emit_16(2008);
emit_16(1942);
emit_16(2009);
emit_16(1943);
emit_16(2009);
emit_16(1942);
emit_16(2009);
emit_16(1943);
emit_16(2010);
emit_16(1944);
emit_16(2010);
emit_16(1943);
emit_16(2010);
emit_16(1944);
emit_16(2011);
emit_16(1945);
emit_16(2011);
emit_16(1944);
emit_16(2011);
emit_16(1945);
emit_16(2012);
emit_16(1946);
emit_16(2012);
emit_16(1945);
emit_16(2012);
emit_16(1946);
emit_16(2013);
emit_16(1947);
emit_16(2013);
emit_16(1946);
emit_16(2013);
emit_16(1947);
emit_16(2014);
emit_16(1948);
emit_16(2014);
emit_16(1947);
emit_16(2014);
emit_16(1948);
emit_16(2015);
emit_16(1949);
emit_16(2015);
emit_16(1948);
emit_16(2015);
emit_16(1949);
emit_16(2016);
emit_16(1950);
emit_16(2016);
emit_16(1949);
emit_16(2016);
emit_16(1950);
emit_16(2017);
emit_16(1951);
emit_16(2017);
emit_16(1950);
emit_16(2017);
emit_16(1951);
emit_16(2018);
emit_16(1952);
emit_16(2018);
emit_16(1951);
emit_16(2018);
emit_16(1952);
emit_16(2019);
emit_16(1953);
emit_16(2019);
emit_16(1952);
emit_16(2019);
emit_16(1953);
emit_16(2020);
emit_16(1954);
emit_16(2020);
emit_16(1953);
emit_16(2020);
emit_16(1954);
emit_16(2021);
emit_16(1955);
emit_16(2021);
emit_16(1954);
emit_16(2021);
emit_16(1955);
emit_16(2022);
emit_16(1956);
emit_16(2022);
emit_16(1955);
emit_16(2022);
emit_16(1956);
emit_16(2023);
emit_16(1957);
emit_16(2023);
emit_16(1956);
emit_16(2023);
emit_16(1957);
emit_16(2024);
emit_16(1958);
emit_16(2024);
emit_16(1957);
emit_16(2024);
emit_16(1958);
emit_16(2025);
emit_16(1959);
emit_16(2025);
emit_16(1958);
emit_16(2025);
emit_16(1959);
emit_16(2026);
emit_16(1960);
emit_16(2026);
emit_16(1959);
emit_16(2026);
emit_16(1960);
emit_16(2027);
emit_16(1961);
emit_16(2027);
emit_16(1960);
emit_16(2027);
emit_16(1961);
emit_16(2028);
emit_16(1962);
emit_16(2028);
emit_16(1961);
emit_16(2028);
emit_16(1962);
emit_16(2029);
emit_16(1963);
emit_16(2029);
emit_16(1962);
emit_16(2029);
emit_16(1963);
emit_16(2030);
emit_16(1964);
emit_16(2030);
emit_16(1963);
emit_16(2030);
emit_16(1964);
emit_16(2031);
emit_16(1965);
emit_16(2031);
emit_16(1964);
emit_16(2031);
emit_16(1965);
emit_16(2032);
emit_16(1966);
emit_16(2032);
emit_16(1965);
emit_16(2032);
emit_16(1966);
emit_16(2033);
emit_16(1967);
emit_16(2033);
emit_16(1966);
emit_16(2033);
emit_16(1967);
emit_16(2034);
emit_16(1968);
emit_16(2034);
emit_16(1967);
emit_16(2034);
emit_16(1968);
emit_16(2035);
emit_16(1969);
emit_16(2035);
emit_16(1968);
emit_16(2035);
emit_16(1969);
emit_16(2036);
emit_16(1970);
emit_16(2036);
emit_16(1969);
emit_16(2036);
emit_16(1970);
emit_16(2037);
emit_16(1971);
emit_16(2037);
emit_16(1970);
emit_16(2037);
emit_16(1971);
emit_16(2038);
emit_16(1972);
emit_16(2038);
emit_16(1971);
emit_16(2038);
emit_16(1972);
emit_16(2039);
emit_16(1973);
emit_16(2039);
emit_16(1972);
emit_16(2039);
emit_16(1973);
emit_16(2040);
emit_16(1974);
emit_16(2040);
emit_16(1973);
emit_16(2040);
emit_16(1974);
emit_16(2041);
emit_16(1975);
emit_16(2041);
emit_16(1974);
emit_16(2041);
emit_16(1975);
emit_16(2042);
emit_16(1976);
emit_16(2042);
emit_16(1975);
emit_16(2042);
emit_16(1976);
emit_16(2043);
emit_16(1977);
emit_16(2043);
emit_16(1976);
emit_16(2043);
emit_16(1977);
emit_16(2044);
emit_16(1978);
emit_16(2044);
emit_16(1977);
emit_16(2044);
emit_16(1978);
emit_16(2045);
emit_16(1979);
emit_16(2045);
emit_16(1978);
emit_16(2046);
emit_16(1980);
emit_16(2047);
emit_16(1981);
emit_16(2047);
emit_16(1980);
emit_16(2047);
emit_16(1981);
emit_16(2048);
emit_16(1982);
emit_16(2048);
emit_16(1981);
emit_16(2048);
emit_16(1982);
emit_16(2049);
emit_16(1983);
emit_16(2049);
emit_16(1982);
emit_16(2049);
emit_16(1983);
emit_16(2050);
emit_16(1984);
emit_16(2050);
emit_16(1983);
emit_16(2050);
emit_16(1984);
emit_16(2051);
emit_16(1985);
emit_16(2051);
emit_16(1984);
emit_16(2051);
emit_16(1985);
emit_16(2052);
emit_16(1986);
emit_16(2052);
emit_16(1985);
emit_16(2052);
emit_16(1986);
emit_16(2053);
emit_16(1987);
emit_16(2053);
emit_16(1986);
emit_16(2053);
emit_16(1987);
emit_16(2054);
emit_16(1988);
emit_16(2054);
emit_16(1987);
emit_16(2054);
emit_16(1988);
emit_16(2055);
emit_16(1989);
emit_16(2055);
emit_16(1988);
emit_16(2055);
emit_16(1989);
emit_16(2056);
emit_16(1990);
emit_16(2056);
emit_16(1989);
emit_16(2056);
emit_16(1990);
emit_16(2057);
emit_16(1991);
emit_16(2057);
emit_16(1990);
emit_16(2057);
emit_16(1991);
emit_16(2058);
emit_16(1992);
emit_16(2058);
emit_16(1991);
emit_16(2058);
emit_16(1992);
emit_16(2059);
emit_16(1993);
emit_16(2059);
emit_16(1992);
emit_16(2059);
emit_16(1993);
emit_16(2060);
emit_16(1994);
emit_16(2060);
emit_16(1993);
emit_16(2060);
emit_16(1994);
emit_16(2061);
emit_16(1995);
emit_16(2061);
emit_16(1994);
emit_16(2061);
emit_16(1995);
emit_16(2062);
emit_16(1996);
emit_16(2062);
emit_16(1995);
emit_16(2062);
emit_16(1996);
emit_16(2063);
emit_16(1997);
emit_16(2063);
emit_16(1996);
emit_16(2063);
emit_16(1997);
emit_16(2064);
emit_16(1998);
emit_16(2064);
emit_16(1997);
emit_16(2064);
emit_16(1998);
emit_16(2065);
emit_16(1999);
emit_16(2065);
emit_16(1998);
emit_16(2065);
emit_16(1999);
emit_16(2066);
emit_16(2000);
emit_16(2066);
emit_16(1999);
emit_16(2066);
emit_16(2000);
emit_16(2067);
emit_16(2001);
emit_16(2067);
emit_16(2000);
emit_16(2067);
emit_16(2001);
emit_16(2068);
emit_16(2002);
emit_16(2068);
emit_16(2001);
emit_16(2068);
emit_16(2002);
emit_16(2069);
emit_16(2003);
emit_16(2069);
emit_16(2002);
emit_16(2069);
emit_16(2003);
emit_16(2070);
emit_16(2004);
emit_16(2070);
emit_16(2003);
emit_16(2070);
emit_16(2004);
emit_16(2071);
emit_16(2005);
emit_16(2071);
emit_16(2004);
emit_16(2071);
emit_16(2005);
emit_16(2072);
emit_16(2006);
emit_16(2072);
emit_16(2005);
emit_16(2072);
emit_16(2006);
emit_16(2073);
emit_16(2007);
emit_16(2073);
emit_16(2006);
emit_16(2073);
emit_16(2007);
emit_16(2074);
emit_16(2008);
emit_16(2074);
emit_16(2007);
emit_16(2074);
emit_16(2008);
emit_16(2075);
emit_16(2009);
emit_16(2075);
emit_16(2008);
emit_16(2075);
emit_16(2009);
emit_16(2076);
emit_16(2010);
emit_16(2076);
emit_16(2009);
emit_16(2076);
emit_16(2010);
emit_16(2077);
emit_16(2011);
emit_16(2077);
emit_16(2010);
emit_16(2077);
emit_16(2011);
emit_16(2078);
emit_16(2012);
emit_16(2078);
emit_16(2011);
emit_16(2078);
emit_16(2012);
emit_16(2079);
emit_16(2013);
emit_16(2079);
emit_16(2012);
emit_16(2079);
emit_16(2013);
emit_16(2080);
emit_16(2014);
emit_16(2080);
emit_16(2013);
emit_16(2080);
emit_16(2014);
emit_16(2081);
emit_16(2015);
emit_16(2081);
emit_16(2014);
emit_16(2081);
emit_16(2015);
emit_16(2082);
emit_16(2016);
emit_16(2082);
emit_16(2015);
emit_16(2082);
emit_16(2016);
emit_16(2083);
emit_16(2017);
emit_16(2083);
emit_16(2016);
emit_16(2083);
emit_16(2017);
emit_16(2084);
emit_16(2018);
emit_16(2084);
emit_16(2017);
emit_16(2084);
emit_16(2018);
emit_16(2085);
emit_16(2019);
emit_16(2085);
emit_16(2018);
emit_16(2085);
emit_16(2019);
emit_16(2086);
emit_16(2020);
emit_16(2086);
emit_16(2019);
emit_16(2086);
emit_16(2020);
emit_16(2087);
emit_16(2021);
emit_16(2087);
emit_16(2020);
emit_16(2087);
emit_16(2021);
emit_16(2088);
emit_16(2022);
emit_16(2088);
emit_16(2021);
emit_16(2088);
emit_16(2022);
emit_16(2089);
emit_16(2023);
emit_16(2089);
emit_16(2022);
emit_16(2089);
emit_16(2023);
emit_16(2090);
emit_16(2024);
emit_16(2090);
emit_16(2023);
emit_16(2090);
emit_16(2024);
emit_16(2091);
emit_16(2025);
emit_16(2091);
emit_16(2024);
emit_16(2091);
emit_16(2025);
emit_16(2092);
emit_16(2026);
emit_16(2092);
emit_16(2025);
emit_16(2092);
emit_16(2026);
emit_16(2093);
emit_16(2027);
emit_16(2093);
emit_16(2026);
emit_16(2093);
emit_16(2027);
emit_16(2094);
emit_16(2028);
emit_16(2094);
emit_16(2027);
emit_16(2094);
emit_16(2028);
emit_16(2095);
emit_16(2029);
emit_16(2095);
emit_16(2028);
emit_16(2095);
emit_16(2029);
emit_16(2096);
emit_16(2030);
emit_16(2096);
emit_16(2029);
emit_16(2096);
emit_16(2030);
emit_16(2097);
emit_16(2031);
emit_16(2097);
emit_16(2030);
emit_16(2097);
emit_16(2031);
emit_16(2098);
emit_16(2032);
emit_16(2098);
emit_16(2031);
emit_16(2098);
emit_16(2032);
emit_16(2099);
emit_16(2033);
emit_16(2099);
emit_16(2032);
emit_16(2099);
emit_16(2033);
emit_16(2100);
emit_16(2034);
emit_16(2100);
emit_16(2033);
emit_16(2100);
emit_16(2034);
emit_16(2101);
emit_16(2035);
emit_16(2101);
emit_16(2034);
emit_16(2101);
emit_16(2035);
emit_16(2102);
emit_16(2036);
emit_16(2102);
emit_16(2035);
emit_16(2102);
emit_16(2036);
emit_16(2103);
emit_16(2037);
emit_16(2103);
emit_16(2036);
emit_16(2103);
emit_16(2037);
emit_16(2104);
emit_16(2038);
emit_16(2104);
emit_16(2037);
emit_16(2104);
emit_16(2038);
emit_16(2105);
emit_16(2039);
emit_16(2105);
emit_16(2038);
emit_16(2105);
emit_16(2039);
emit_16(2106);
emit_16(2040);
emit_16(2106);
emit_16(2039);
emit_16(2106);
emit_16(2040);
emit_16(2107);
emit_16(2041);
emit_16(2107);
emit_16(2040);
emit_16(2107);
emit_16(2041);
emit_16(2108);
emit_16(2042);
emit_16(2108);
emit_16(2041);
emit_16(2108);
emit_16(2042);
emit_16(2109);
emit_16(2043);
emit_16(2109);
emit_16(2042);
emit_16(2109);
emit_16(2043);
emit_16(2110);
emit_16(2044);
emit_16(2110);
emit_16(2043);
emit_16(2110);
emit_16(2044);
emit_16(2111);
emit_16(2045);
emit_16(2111);
emit_16(2044);
emit_16(2112);
emit_16(2046);
emit_16(2113);
emit_16(2047);
emit_16(2113);
emit_16(2046);
emit_16(2113);
emit_16(2047);
emit_16(2114);
emit_16(2048);
emit_16(2114);
emit_16(2047);
emit_16(2114);
emit_16(2048);
emit_16(2115);
emit_16(2049);
emit_16(2115);
emit_16(2048);
emit_16(2115);
emit_16(2049);
emit_16(2116);
emit_16(2050);
emit_16(2116);
emit_16(2049);
emit_16(2116);
emit_16(2050);
emit_16(2117);
emit_16(2051);
emit_16(2117);
emit_16(2050);
emit_16(2117);
emit_16(2051);
emit_16(2118);
emit_16(2052);
emit_16(2118);
emit_16(2051);
emit_16(2118);
emit_16(2052);
emit_16(2119);
emit_16(2053);
emit_16(2119);
emit_16(2052);
emit_16(2119);
emit_16(2053);
emit_16(2120);
emit_16(2054);
emit_16(2120);
emit_16(2053);
emit_16(2120);
emit_16(2054);
emit_16(2121);
emit_16(2055);
emit_16(2121);
emit_16(2054);
emit_16(2121);
emit_16(2055);
emit_16(2122);
emit_16(2056);
emit_16(2122);
emit_16(2055);
emit_16(2122);
emit_16(2056);
emit_16(2123);
emit_16(2057);
emit_16(2123);
emit_16(2056);
emit_16(2123);
emit_16(2057);
emit_16(2124);
emit_16(2058);
emit_16(2124);
emit_16(2057);
emit_16(2124);
emit_16(2058);
emit_16(2125);
emit_16(2059);
emit_16(2125);
emit_16(2058);
emit_16(2125);
emit_16(2059);
emit_16(2126);
emit_16(2060);
emit_16(2126);
emit_16(2059);
emit_16(2126);
emit_16(2060);
emit_16(2127);
emit_16(2061);
emit_16(2127);
emit_16(2060);
emit_16(2127);
emit_16(2061);
emit_16(2128);
emit_16(2062);
emit_16(2128);
emit_16(2061);
emit_16(2128);
emit_16(2062);
emit_16(2129);
emit_16(2063);
emit_16(2129);
emit_16(2062);
emit_16(2129);
emit_16(2063);
emit_16(2130);
emit_16(2064);
emit_16(2130);
emit_16(2063);
emit_16(2130);
emit_16(2064);
emit_16(2131);
emit_16(2065);
emit_16(2131);
emit_16(2064);
emit_16(2131);
emit_16(2065);
emit_16(2132);
emit_16(2066);
emit_16(2132);
emit_16(2065);
emit_16(2132);
emit_16(2066);
emit_16(2133);
emit_16(2067);
emit_16(2133);
emit_16(2066);
emit_16(2133);
emit_16(2067);
emit_16(2134);
emit_16(2068);
emit_16(2134);
emit_16(2067);
emit_16(2134);
emit_16(2068);
emit_16(2135);
emit_16(2069);
emit_16(2135);
emit_16(2068);
emit_16(2135);
emit_16(2069);
emit_16(2136);
emit_16(2070);
emit_16(2136);
emit_16(2069);
emit_16(2136);
emit_16(2070);
emit_16(2137);
emit_16(2071);
emit_16(2137);
emit_16(2070);
emit_16(2137);
emit_16(2071);
emit_16(2138);
emit_16(2072);
emit_16(2138);
emit_16(2071);
emit_16(2138);
emit_16(2072);
emit_16(2139);
emit_16(2073);
emit_16(2139);
emit_16(2072);
emit_16(2139);
emit_16(2073);
emit_16(2140);
emit_16(2074);
emit_16(2140);
emit_16(2073);
emit_16(2140);
emit_16(2074);
emit_16(2141);
emit_16(2075);
emit_16(2141);
emit_16(2074);
emit_16(2141);
emit_16(2075);
emit_16(2142);
emit_16(2076);
emit_16(2142);
emit_16(2075);
emit_16(2142);
emit_16(2076);
emit_16(2143);
emit_16(2077);
emit_16(2143);
emit_16(2076);
emit_16(2143);
emit_16(2077);
emit_16(2144);
emit_16(2078);
emit_16(2144);
emit_16(2077);
emit_16(2144);
emit_16(2078);
emit_16(2145);
emit_16(2079);
emit_16(2145);
emit_16(2078);
emit_16(2145);
emit_16(2079);
emit_16(2146);
emit_16(2080);
emit_16(2146);
emit_16(2079);
emit_16(2146);
emit_16(2080);
emit_16(2147);
emit_16(2081);
emit_16(2147);
emit_16(2080);
emit_16(2147);
emit_16(2081);
emit_16(2148);
emit_16(2082);
emit_16(2148);
emit_16(2081);
emit_16(2148);
emit_16(2082);
emit_16(2149);
emit_16(2083);
emit_16(2149);
emit_16(2082);
emit_16(2149);
emit_16(2083);
emit_16(2150);
emit_16(2084);
emit_16(2150);
emit_16(2083);
emit_16(2150);
emit_16(2084);
emit_16(2151);
emit_16(2085);
emit_16(2151);
emit_16(2084);
emit_16(2151);
emit_16(2085);
emit_16(2152);
emit_16(2086);
emit_16(2152);
emit_16(2085);
emit_16(2152);
emit_16(2086);
emit_16(2153);
emit_16(2087);
emit_16(2153);
emit_16(2086);
emit_16(2153);
emit_16(2087);
emit_16(2154);
emit_16(2088);
emit_16(2154);
emit_16(2087);
emit_16(2154);
emit_16(2088);
emit_16(2155);
emit_16(2089);
emit_16(2155);
emit_16(2088);
emit_16(2155);
emit_16(2089);
emit_16(2156);
emit_16(2090);
emit_16(2156);
emit_16(2089);
emit_16(2156);
emit_16(2090);
emit_16(2157);
emit_16(2091);
emit_16(2157);
emit_16(2090);
emit_16(2157);
emit_16(2091);
emit_16(2158);
emit_16(2092);
emit_16(2158);
emit_16(2091);
emit_16(2158);
emit_16(2092);
emit_16(2159);
emit_16(2093);
emit_16(2159);
emit_16(2092);
emit_16(2159);
emit_16(2093);
emit_16(2160);
emit_16(2094);
emit_16(2160);
emit_16(2093);
emit_16(2160);
emit_16(2094);
emit_16(2161);
emit_16(2095);
emit_16(2161);
emit_16(2094);
emit_16(2161);
emit_16(2095);
emit_16(2162);
emit_16(2096);
emit_16(2162);
emit_16(2095);
emit_16(2162);
emit_16(2096);
emit_16(2163);
emit_16(2097);
emit_16(2163);
emit_16(2096);
emit_16(2163);
emit_16(2097);
emit_16(2164);
emit_16(2098);
emit_16(2164);
emit_16(2097);
emit_16(2164);
emit_16(2098);
emit_16(2165);
emit_16(2099);
emit_16(2165);
emit_16(2098);
emit_16(2165);
emit_16(2099);
emit_16(2166);
emit_16(2100);
emit_16(2166);
emit_16(2099);
emit_16(2166);
emit_16(2100);
emit_16(2167);
emit_16(2101);
emit_16(2167);
emit_16(2100);
emit_16(2167);
emit_16(2101);
emit_16(2168);
emit_16(2102);
emit_16(2168);
emit_16(2101);
emit_16(2168);
emit_16(2102);
emit_16(2169);
emit_16(2103);
emit_16(2169);
emit_16(2102);
emit_16(2169);
emit_16(2103);
emit_16(2170);
emit_16(2104);
emit_16(2170);
emit_16(2103);
emit_16(2170);
emit_16(2104);
emit_16(2171);
emit_16(2105);
emit_16(2171);
emit_16(2104);
emit_16(2171);
emit_16(2105);
emit_16(2172);
emit_16(2106);
emit_16(2172);
emit_16(2105);
emit_16(2172);
emit_16(2106);
emit_16(2173);
emit_16(2107);
emit_16(2173);
emit_16(2106);
emit_16(2173);
emit_16(2107);
emit_16(2174);
emit_16(2108);
emit_16(2174);
emit_16(2107);
emit_16(2174);
emit_16(2108);
emit_16(2175);
emit_16(2109);
emit_16(2175);
emit_16(2108);
emit_16(2175);
emit_16(2109);
emit_16(2176);
emit_16(2110);
emit_16(2176);
emit_16(2109);
emit_16(2176);
emit_16(2110);
emit_16(2177);
emit_16(2111);
emit_16(2177);
emit_16(2110);
emit_start(LandscapeIdxCount)
emit_32(11718);
emit_32(11310);
emit_32(11718);
emit_32(12096);
emit_32(12870);
emit_32(13260);
emit_32(12852);
emit_32(12480);
emit_start(_ZTV14BenchmarkDemo4)
emit_32(0);
emit_32(_ZTI14BenchmarkDemo4);
emit_32(_ZN15DemoApplication6myinitEv__index__);
emit_32(_ZN15DemoApplication16getDynamicsWorldEv__index__);
emit_32(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__);
emit_32(_ZN14BenchmarkDemo4D1Ev__index__);
emit_32(_ZN14BenchmarkDemo4D0Ev__index__);
emit_32(_ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__);
emit_32(_ZN13BenchmarkDemo15displayCallbackEv__index__);
emit_start(_ZTI14BenchmarkDemo4)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS14BenchmarkDemo4);
emit_32(_ZTI13BenchmarkDemo);
emit_start(_ZTS14BenchmarkDemo4)
emit_string('14BenchmarkDemo4\x00');
emit_start(_ZL14benchmarkDemo4)
emit_32(_ZTV14BenchmarkDemo4+8);
emit_32(0);
emit_32(1566444395);
emit_fill(0,1);
emit_fill(0,3);
emit_32(0);
emit_32(0);
emit_32(0);
emit_8(1);
emit_fill(0,3);
emit_fill(0,1);
emit_fill(0,3);
emit_32(0);
emit_32(0);
emit_32(0);
emit_8(1);
emit_fill(0,3);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(4);
emit_32(0);
emit_32(0);
emit_start(_ZTI21btBroadphaseInterface)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS21btBroadphaseInterface);
emit_start(_ZTS21btBroadphaseInterface)
emit_string('21btBroadphaseInterface\x00');
emit_start(_ZTI25btOverlappingPairCallback)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS25btOverlappingPairCallback);
emit_start(_ZTS25btOverlappingPairCallback)
emit_string('25btOverlappingPairCallback\x00');
emit_start(_ZTI22btOverlappingPairCache)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS22btOverlappingPairCache);
emit_32(_ZTI25btOverlappingPairCallback);
emit_start(_ZTS22btOverlappingPairCache)
emit_string('22btOverlappingPairCache\x00');
emit_start(_ZTV15btNullPairCache)
emit_32(0);
emit_32(_ZTI15btNullPairCache);
emit_32(_ZN15btNullPairCacheD1Ev__index__);
emit_32(_ZN15btNullPairCacheD0Ev__index__);
emit_32(_ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__);
emit_32(_ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__);
emit_32(_ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__);
emit_32(_ZN15btNullPairCache26getOverlappingPairArrayPtrEv__index__);
emit_32(_ZNK15btNullPairCache26getOverlappingPairArrayPtrEv__index__);
emit_32(_ZN15btNullPairCache23getOverlappingPairArrayEv__index__);
emit_32(_ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__);
emit_32(_ZNK15btNullPairCache22getNumOverlappingPairsEv__index__);
emit_32(_ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__);
emit_32(_ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__);
emit_32(_ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__);
emit_32(_ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1___index__);
emit_32(_ZN15btNullPairCache18hasDeferredRemovalEv__index__);
emit_32(_ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__);
emit_32(_ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher__index__);
emit_start(_ZTI15btNullPairCache)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS15btNullPairCache);
emit_32(_ZTI22btOverlappingPairCache);
emit_start(_ZTS15btNullPairCache)
emit_string('15btNullPairCache\x00');
emit_start(_2E_str11)
emit_string('handle > 0 && handle < m_maxHandles\x00');
emit_start(_2E_str112)
emit_string('../../../../src/BulletCollision/BroadphaseCollision/btAxisSweep3.h\x00');
emit_start(_2E_str213)
emit_string('m_firstFreeHandle\x00');
emit_start(_2E_str314)
emit_string('!pair.m_algorithm\x00');
emit_start(_ZTV20btAxisSweep3InternalItE)
emit_32(0);
emit_32(_ZTI20btAxisSweep3InternalItE);
emit_32(_ZN20btAxisSweep3InternalItED1Ev__index__);
emit_32(_ZN20btAxisSweep3InternalItED0Ev__index__);
emit_32(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__);
emit_32(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__);
emit_32(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__);
emit_32(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__);
emit_32(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__);
emit_32(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__);
emit_32(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__);
emit_32(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__);
emit_32(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__);
emit_32(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__);
emit_32(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__);
emit_32(_ZN20btAxisSweep3InternalItE10printStatsEv__index__);
emit_start(_ZTI20btAxisSweep3InternalItE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS20btAxisSweep3InternalItE);
emit_32(_ZTI21btBroadphaseInterface);
emit_start(_ZTS20btAxisSweep3InternalItE)
emit_string('20btAxisSweep3InternalItE\x00');
emit_start(_ZTV12btAxisSweep3)
emit_32(0);
emit_32(_ZTI12btAxisSweep3);
emit_32(_ZN12btAxisSweep3D1Ev__index__);
emit_32(_ZN12btAxisSweep3D0Ev__index__);
emit_32(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__);
emit_32(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__);
emit_32(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__);
emit_32(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__);
emit_32(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__);
emit_32(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__);
emit_32(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__);
emit_32(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__);
emit_32(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__);
emit_32(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__);
emit_32(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__);
emit_32(_ZN20btAxisSweep3InternalItE10printStatsEv__index__);
emit_start(_ZTI12btAxisSweep3)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS12btAxisSweep3);
emit_32(_ZTI20btAxisSweep3InternalItE);
emit_start(_ZTS12btAxisSweep3)
emit_string('12btAxisSweep3\x00');
emit_start(_ZTV20btCollisionAlgorithm)
emit_32(0);
emit_32(_ZTI20btCollisionAlgorithm);
emit_32(_ZN20btCollisionAlgorithmD1Ev__index__);
emit_32(_ZN20btCollisionAlgorithmD0Ev__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_ZTI20btCollisionAlgorithm)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS20btCollisionAlgorithm);
emit_start(_ZTS20btCollisionAlgorithm)
emit_string('20btCollisionAlgorithm\x00');
emit_start(_ZTIN6btDbvt8ICollideE)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSN6btDbvt8ICollideE);
emit_start(_ZTSN6btDbvt8ICollideE)
emit_string('N6btDbvt8ICollideE\x00');
emit_start(_2E_str1118)
emit_string('../../../../src/BulletCollision/BroadphaseCollision/btDbvt.cpp\x00');
emit_start(_2E_str22)
emit_string('n==p->childs[i]\x00');
emit_start(_ZTV18btDbvtTreeCollider)
emit_32(0);
emit_32(_ZTI18btDbvtTreeCollider);
emit_32(_ZN18btDbvtTreeColliderD1Ev__index__);
emit_32(_ZN18btDbvtTreeColliderD0Ev__index__);
emit_32(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2___index__);
emit_32(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode__index__);
emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__);
emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__);
emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__);
emit_start(_ZTI18btDbvtTreeCollider)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS18btDbvtTreeCollider);
emit_32(_ZTIN6btDbvt8ICollideE);
emit_start(_ZTS18btDbvtTreeCollider)
emit_string('18btDbvtTreeCollider\x00');
emit_start(_ZTV19BroadphaseRayTester)
emit_32(0);
emit_32(_ZTI19BroadphaseRayTester);
emit_32(_ZN19BroadphaseRayTesterD1Ev__index__);
emit_32(_ZN19BroadphaseRayTesterD0Ev__index__);
emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__);
emit_32(_ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode__index__);
emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__);
emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__);
emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__);
emit_start(_ZTI19BroadphaseRayTester)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS19BroadphaseRayTester);
emit_32(_ZTIN6btDbvt8ICollideE);
emit_start(_ZTS19BroadphaseRayTester)
emit_string('19BroadphaseRayTester\x00');
emit_start(_ZTV20BroadphaseAabbTester)
emit_32(0);
emit_32(_ZTI20BroadphaseAabbTester);
emit_32(_ZN20BroadphaseAabbTesterD1Ev__index__);
emit_32(_ZN20BroadphaseAabbTesterD0Ev__index__);
emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__);
emit_32(_ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode__index__);
emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__);
emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__);
emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__);
emit_start(_ZTI20BroadphaseAabbTester)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS20BroadphaseAabbTester);
emit_32(_ZTIN6btDbvt8ICollideE);
emit_start(_ZTS20BroadphaseAabbTester)
emit_string('20BroadphaseAabbTester\x00');
emit_start(_2E_str18)
emit_string('../../../../src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp\x00');
emit_start(_ZTV16btDbvtBroadphase)
emit_32(0);
emit_32(_ZTI16btDbvtBroadphase);
emit_32(_ZN16btDbvtBroadphaseD1Ev__index__);
emit_32(_ZN16btDbvtBroadphaseD0Ev__index__);
emit_32(_ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3___index__);
emit_32(_ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__);
emit_32(_ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher__index__);
emit_32(_ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3___index__);
emit_32(_ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2___index__);
emit_32(_ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback__index__);
emit_32(_ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher__index__);
emit_32(_ZN16btDbvtBroadphase23getOverlappingPairCacheEv__index__);
emit_32(_ZNK16btDbvtBroadphase23getOverlappingPairCacheEv__index__);
emit_32(_ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1___index__);
emit_32(_ZN16btDbvtBroadphase9resetPoolEP12btDispatcher__index__);
emit_32(_ZN16btDbvtBroadphase10printStatsEv__index__);
emit_start(_ZTI16btDbvtBroadphase)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS16btDbvtBroadphase);
emit_32(_ZTI21btBroadphaseInterface);
emit_start(_ZTS16btDbvtBroadphase)
emit_string('16btDbvtBroadphase\x00');
emit_start(_ZTV12btDispatcher)
emit_32(0);
emit_32(_ZTI12btDispatcher);
emit_32(_ZN12btDispatcherD1Ev__index__);
emit_32(_ZN12btDispatcherD0Ev__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_ZTI12btDispatcher)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS12btDispatcher);
emit_start(_ZTS12btDispatcher)
emit_string('12btDispatcher\x00');
emit_start(_ZTI21btNodeOverlapCallback)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS21btNodeOverlapCallback);
emit_start(_ZTS21btNodeOverlapCallback)
emit_string('21btNodeOverlapCallback\x00');
emit_start(_2E_str10)
emit_string('0\x00');
emit_start(_2E_str212)
emit_string('m_useQuantization\x00');
emit_start(_2E_str313)
emit_string('../../../../src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h\x00');
emit_start(_2E_str414)
emit_string('point.getX() <= m_bvhAabbMax.getX()\x00');
emit_start(_2E_str515)
emit_string('point.getY() <= m_bvhAabbMax.getY()\x00');
emit_start(_2E_str616)
emit_string('point.getZ() <= m_bvhAabbMax.getZ()\x00');
emit_start(_2E_str717)
emit_string('point.getX() >= m_bvhAabbMin.getX()\x00');
emit_start(_2E_str820)
emit_string('point.getY() >= m_bvhAabbMin.getY()\x00');
emit_start(_2E_str9)
emit_string('point.getZ() >= m_bvhAabbMin.getZ()\x00');
emit_start(_ZTI17btOverlapCallback)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS17btOverlapCallback);
emit_start(_ZTS17btOverlapCallback)
emit_string('17btOverlapCallback\x00');
emit_start(_ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback)
emit_32(0);
emit_32(_ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback);
emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev__index__);
emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev__index__);
emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair__index__);
emit_start(_ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback);
emit_32(_ZTI17btOverlapCallback);
emit_start(_ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback)
emit_string('ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback\x00');
emit_start(_ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback)
emit_32(0);
emit_32(_ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback);
emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev__index__);
emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev__index__);
emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair__index__);
emit_start(_ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback);
emit_32(_ZTI17btOverlapCallback);
emit_start(_ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback)
emit_string('ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback\x00');
emit_start(_ZTV28btHashedOverlappingPairCache)
emit_32(0);
emit_32(_ZTI28btHashedOverlappingPairCache);
emit_32(_ZN28btHashedOverlappingPairCacheD1Ev__index__);
emit_32(_ZN28btHashedOverlappingPairCacheD0Ev__index__);
emit_32(_ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__);
emit_32(_ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__);
emit_32(_ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__);
emit_32(_ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__);
emit_32(_ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__);
emit_32(_ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv__index__);
emit_32(_ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__);
emit_32(_ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv__index__);
emit_32(_ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__);
emit_32(_ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__);
emit_32(_ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__);
emit_32(_ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1___index__);
emit_32(_ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv__index__);
emit_32(_ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__);
emit_32(_ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher__index__);
emit_start(_ZTI28btHashedOverlappingPairCache)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS28btHashedOverlappingPairCache);
emit_32(_ZTI22btOverlappingPairCache);
emit_start(_ZTS28btHashedOverlappingPairCache)
emit_string('28btHashedOverlappingPairCache\x00');
emit_start(_2E_str121)
emit_string('../../../../src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp\x00');
emit_start(_2E_str222)
emit_string('index < m_overlappingPairArray.size()\x00');
emit_start(_2E_str323)
emit_string('../../../../src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h\x00');
emit_start(_2E_str424)
emit_string('pair->m_pProxy0->getUid() == proxyId1\x00');
emit_start(_2E_str525)
emit_string('pair->m_pProxy1->getUid() == proxyId2\x00');
emit_start(_2E_str626)
emit_string('pairIndex < m_overlappingPairArray.size()\x00');
emit_start(_2E_str727)
emit_string('index != BT_NULL_PAIR\x00');
emit_start(_2E_str32)
emit_string('btOptimizedBvhNodeData\x00');
emit_start(_2E_str133)
emit_string('btQuantizedBvhNodeData\x00');
emit_start(_2E_str234)
emit_string('btBvhSubtreeInfoData\x00');
emit_start(_2E_str335)
emit_string('btQuantizedBvhFloatData\x00');
emit_start(_ZTV14btQuantizedBvh)
emit_32(0);
emit_32(_ZTI14btQuantizedBvh);
emit_32(_ZN14btQuantizedBvhD1Ev__index__);
emit_32(_ZN14btQuantizedBvhD0Ev__index__);
emit_32(_ZNK14btQuantizedBvh9serializeEPvjb__index__);
emit_32(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__);
emit_32(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__);
emit_32(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__);
emit_32(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__);
emit_start(_ZTI14btQuantizedBvh)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS14btQuantizedBvh);
emit_start(_ZTS14btQuantizedBvh)
emit_string('14btQuantizedBvh\x00');
emit_start(_2E_str537)
emit_string('../../../../src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp\x00');
emit_start(_2E_str638)
emit_string('m_subtreeHeaderCount == m_SubtreeHeaders.size()\x00');
emit_start(_2E_str739)
emit_string('isLeafNode()\x00');
emit_start(_2E_str941)
emit_string('!isLeafNode()\x00');
emit_start(_2E_str1143)
emit_string('walkIterations < subTreeSize\x00');
emit_start(_2E_str1844)
emit_string('!m_useQuantization\x00');
emit_start(_2E_str1921)
emit_string('walkIterations < m_curNodeIndex\x00');
emit_start(_2E_str21)
emit_string('!unbal\x00');
emit_start(_2E_str2246)
emit_string('numIndices>0\x00');
emit_start(_ZTV30btActivatingCollisionAlgorithm)
emit_32(0);
emit_32(_ZTI30btActivatingCollisionAlgorithm);
emit_32(_ZN30btActivatingCollisionAlgorithmD1Ev__index__);
emit_32(_ZN30btActivatingCollisionAlgorithmD0Ev__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_ZTI30btActivatingCollisionAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS30btActivatingCollisionAlgorithm);
emit_32(_ZTI20btCollisionAlgorithm);
emit_start(_ZTS30btActivatingCollisionAlgorithm)
emit_string('30btActivatingCollisionAlgorithm\x00');
emit_start(_2E_str59)
emit_string('m_manifoldPtr\x00');
emit_start(_2E_str160)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btManifoldResult.h\x00');
emit_start(_ZTV26btBoxBoxCollisionAlgorithm)
emit_32(0);
emit_32(_ZTI26btBoxBoxCollisionAlgorithm);
emit_32(_ZN26btBoxBoxCollisionAlgorithmD1Ev__index__);
emit_32(_ZN26btBoxBoxCollisionAlgorithmD0Ev__index__);
emit_32(_ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
emit_start(_ZTI26btBoxBoxCollisionAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS26btBoxBoxCollisionAlgorithm);
emit_32(_ZTI30btActivatingCollisionAlgorithm);
emit_start(_ZTS26btBoxBoxCollisionAlgorithm)
emit_string('26btBoxBoxCollisionAlgorithm\x00');
emit_start(_ZTI36btDiscreteCollisionDetectorInterface)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS36btDiscreteCollisionDetectorInterface);
emit_start(_ZTS36btDiscreteCollisionDetectorInterface)
emit_string('36btDiscreteCollisionDetectorInterface\x00');
emit_start(_ZTV16btBoxBoxDetector)
emit_32(0);
emit_32(_ZTI16btBoxBoxDetector);
emit_32(_ZN16btBoxBoxDetectorD1Ev__index__);
emit_32(_ZN16btBoxBoxDetectorD0Ev__index__);
emit_32(_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__);
emit_start(_ZTI16btBoxBoxDetector)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS16btBoxBoxDetector);
emit_32(_ZTI36btDiscreteCollisionDetectorInterface);
emit_start(_ZTS16btBoxBoxDetector)
emit_string('16btBoxBoxDetector\x00');
emit_start(_2E_str65)
emit_string('*iret != i0\x00');
emit_start(_2E_str166)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp\x00');
emit_start(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSN36btDiscreteCollisionDetectorInterface6ResultE);
emit_start(_ZTSN36btDiscreteCollisionDetectorInterface6ResultE)
emit_string('N36btDiscreteCollisionDetectorInterface6ResultE\x00');
emit_start(_ZTV23btCollisionPairCallback)
emit_32(0);
emit_32(_ZTI23btCollisionPairCallback);
emit_32(_ZN23btCollisionPairCallbackD1Ev__index__);
emit_32(_ZN23btCollisionPairCallbackD0Ev__index__);
emit_32(_ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair__index__);
emit_start(_ZTI23btCollisionPairCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS23btCollisionPairCallback);
emit_32(_ZTI17btOverlapCallback);
emit_start(_ZTS23btCollisionPairCallback)
emit_string('23btCollisionPairCallback\x00');
emit_start(_2E_str169)
emit_string('../../../../src/LinearMath/btPoolAllocator.h\x00');
emit_start(_2E_str270)
emit_string('!size || size<=m_elemSize\x00');
emit_start(_2E_str371)
emit_string('m_freeCount>0\x00');
emit_start(_2E_str472)
emit_string('findIndex < m_manifoldsPtr.size()\x00');
emit_start(_2E_str573)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp\x00');
emit_start(_ZTV21btCollisionDispatcher)
emit_32(0);
emit_32(_ZTI21btCollisionDispatcher);
emit_32(_ZN21btCollisionDispatcherD1Ev__index__);
emit_32(_ZN21btCollisionDispatcherD0Ev__index__);
emit_32(_ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold__index__);
emit_32(_ZN21btCollisionDispatcher14getNewManifoldEPvS0___index__);
emit_32(_ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold__index__);
emit_32(_ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold__index__);
emit_32(_ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1___index__);
emit_32(_ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1___index__);
emit_32(_ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher__index__);
emit_32(_ZNK21btCollisionDispatcher15getNumManifoldsEv__index__);
emit_32(_ZN21btCollisionDispatcher26getManifoldByIndexInternalEi__index__);
emit_32(_ZN21btCollisionDispatcher26getInternalManifoldPointerEv__index__);
emit_32(_ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi__index__);
emit_32(_ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv__index__);
emit_start(_ZTI21btCollisionDispatcher)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS21btCollisionDispatcher);
emit_32(_ZTI12btDispatcher);
emit_start(_ZTS21btCollisionDispatcher)
emit_string('21btCollisionDispatcher\x00');
emit_start(_2E_str674)
emit_string('m_doubleDispatch[i][j]\x00');
emit_start(_2E_str775)
emit_string('body0\x00');
emit_start(_2E_str876)
emit_string('body1\x00');
emit_start(_2E_str977)
emit_string('warning btCollisionDispatcher::needsCollision: static-static collision!\x0a\x00');
emit_start(_ZTV17btCollisionObject)
emit_32(0);
emit_32(_ZTI17btCollisionObject);
emit_32(_ZN17btCollisionObject24checkCollideWithOverrideEPS___index__);
emit_32(_ZN17btCollisionObjectD1Ev__index__);
emit_32(_ZN17btCollisionObjectD0Ev__index__);
emit_32(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__);
emit_32(_ZNK17btCollisionObject28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK17btCollisionObject9serializeEPvP12btSerializer__index__);
emit_32(_ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer__index__);
emit_start(_ZTI17btCollisionObject)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS17btCollisionObject);
emit_start(_ZTS17btCollisionObject)
emit_string('17btCollisionObject\x00');
emit_start(_2E_str78)
emit_string('btCollisionObjectFloatData\x00');
emit_start(_ZTIN16btCollisionWorld20ConvexResultCallbackE)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSN16btCollisionWorld20ConvexResultCallbackE);
emit_start(_ZTSN16btCollisionWorld20ConvexResultCallbackE)
emit_string('N16btCollisionWorld20ConvexResultCallbackE\x00');
emit_start(_ZTI30btConvexPenetrationDepthSolver)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS30btConvexPenetrationDepthSolver);
emit_start(_ZTS30btConvexPenetrationDepthSolver)
emit_string('30btConvexPenetrationDepthSolver\x00');
emit_start(_ZTVN12btConvexCast10CastResultE)
emit_32(0);
emit_32(_ZTIN12btConvexCast10CastResultE);
emit_32(_ZN12btConvexCast10CastResult9DebugDrawEf__index__);
emit_32(_ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform__index__);
emit_32(_ZN12btConvexCast10CastResultD1Ev__index__);
emit_32(_ZN12btConvexCast10CastResultD0Ev__index__);
emit_start(_ZTIN12btConvexCast10CastResultE)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSN12btConvexCast10CastResultE);
emit_start(_ZTSN12btConvexCast10CastResultE)
emit_string('N12btConvexCast10CastResultE\x00');
emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2)
emit_32(0);
emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev__index__);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev__index__);
emit_32(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb__index__);
emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2);
emit_32(_ZTIN16btCollisionWorld17RayResultCallbackE);
emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2)
emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2\x00');
emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder)
emit_32(0);
emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev__index__);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev__index__);
emit_32(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb__index__);
emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder);
emit_32(_ZTIN16btCollisionWorld20ConvexResultCallbackE);
emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder)
emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder\x00');
emit_start(_ZTI24btBroadphaseAabbCallback)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS24btBroadphaseAabbCallback);
emit_start(_ZTS24btBroadphaseAabbCallback)
emit_string('24btBroadphaseAabbCallback\x00');
emit_start(_ZTI23btBroadphaseRayCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS23btBroadphaseRayCallback);
emit_32(_ZTI24btBroadphaseAabbCallback);
emit_start(_ZTS23btBroadphaseRayCallback)
emit_string('23btBroadphaseRayCallback\x00');
emit_start(_ZTV17DebugDrawcallback)
emit_32(0);
emit_32(_ZTI17DebugDrawcallback);
emit_32(_ZN17DebugDrawcallbackD1Ev__index__);
emit_32(_ZN17DebugDrawcallbackD0Ev__index__);
emit_32(_ZN17DebugDrawcallback15processTriangleEP9btVector3ii__index__);
emit_32(_ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__);
emit_32(4294967292);
emit_32(_ZTI17DebugDrawcallback);
emit_32(_ZThn4_N17DebugDrawcallbackD1Ev__index__);
emit_32(_ZThn4_N17DebugDrawcallbackD0Ev__index__);
emit_32(_ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__);
emit_start(_ZTI17DebugDrawcallback)
emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8);
emit_32(_ZTS17DebugDrawcallback);
emit_32(0);
emit_32(2);
emit_32(_ZTI18btTriangleCallback);
emit_32(2);
emit_32(_ZTI31btInternalTriangleIndexCallback);
emit_32(1026);
emit_start(_ZTS17DebugDrawcallback)
emit_string('17DebugDrawcallback\x00');
emit_start(_ZTI18btTriangleCallback)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS18btTriangleCallback);
emit_start(_ZTS18btTriangleCallback)
emit_string('18btTriangleCallback\x00');
emit_start(_ZTI31btInternalTriangleIndexCallback)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS31btInternalTriangleIndexCallback);
emit_start(_ZTS31btInternalTriangleIndexCallback)
emit_string('31btInternalTriangleIndexCallback\x00');
emit_start(_ZTV16btCollisionWorld)
emit_32(0);
emit_32(_ZTI16btCollisionWorld);
emit_32(_ZN16btCollisionWorldD1Ev__index__);
emit_32(_ZN16btCollisionWorldD0Ev__index__);
emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__);
emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__);
emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__);
emit_32(_ZN16btCollisionWorld14debugDrawWorldEv__index__);
emit_32(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__);
emit_32(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__);
emit_32(_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss__index__);
emit_32(_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject__index__);
emit_32(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__);
emit_32(_ZN16btCollisionWorld9serializeEP12btSerializer__index__);
emit_start(_ZTI16btCollisionWorld)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS16btCollisionWorld);
emit_start(_ZTS16btCollisionWorld)
emit_string('16btCollisionWorld\x00');
emit_start(_ZTI16btManifoldResult)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS16btManifoldResult);
emit_32(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE);
emit_start(_ZTS16btManifoldResult)
emit_string('16btManifoldResult\x00');
emit_start(_ZTV21btSingleSweepCallback)
emit_32(0);
emit_32(_ZTI21btSingleSweepCallback);
emit_32(_ZN21btSingleSweepCallbackD1Ev__index__);
emit_32(_ZN21btSingleSweepCallbackD0Ev__index__);
emit_32(_ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy__index__);
emit_start(_ZTI21btSingleSweepCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS21btSingleSweepCallback);
emit_32(_ZTI23btBroadphaseRayCallback);
emit_start(_ZTS21btSingleSweepCallback)
emit_string('21btSingleSweepCallback\x00');
emit_start(_ZTV19btSingleRayCallback)
emit_32(0);
emit_32(_ZTI19btSingleRayCallback);
emit_32(_ZN19btSingleRayCallbackD1Ev__index__);
emit_32(_ZN19btSingleRayCallbackD0Ev__index__);
emit_32(_ZN19btSingleRayCallback7processEPK17btBroadphaseProxy__index__);
emit_start(_ZTI19btSingleRayCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS19btSingleRayCallback);
emit_32(_ZTI23btBroadphaseRayCallback);
emit_start(_ZTS19btSingleRayCallback)
emit_string('19btSingleRayCallback\x00');
emit_start(_2E_str382)
emit_string('index < m_cachedPoints\x00');
emit_start(_2E_str483)
emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h\x00');
emit_start(_2E_str584)
emit_string('s != btScalar(0.0)\x00');
emit_start(_2E_str685)
emit_string('../../../../src/LinearMath/btQuaternion.h\x00');
emit_start(_2E_str786)
emit_string('collisionObject\x00');
emit_start(_2E_str887)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp\x00');
emit_start(_2E_str988)
emit_string('m_collisionObjects.findLinearSearch(collisionObject) == m_collisionObjects.size()\x00');
emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0)
emit_32(0);
emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v__index__);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v__index__);
emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii__index__);
emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0);
emit_32(_ZTI28btTriangleConvexcastCallback);
emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0)
emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0\x00');
emit_start(_ZTI28btTriangleConvexcastCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS28btTriangleConvexcastCallback);
emit_32(_ZTI18btTriangleCallback);
emit_start(_ZTS28btTriangleConvexcastCallback)
emit_string('28btTriangleConvexcastCallback\x00');
emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback)
emit_32(0);
emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev__index__);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev__index__);
emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__);
emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii__index__);
emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback);
emit_32(_ZTI28btTriangleConvexcastCallback);
emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback)
emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback\x00');
emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0)
emit_32(0);
emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v__index__);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v__index__);
emit_32(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii__index__);
emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0);
emit_32(_ZTI25btTriangleRaycastCallback);
emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0)
emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0\x00');
emit_start(_ZTI25btTriangleRaycastCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS25btTriangleRaycastCallback);
emit_32(_ZTI18btTriangleCallback);
emit_start(_ZTS25btTriangleRaycastCallback)
emit_string('25btTriangleRaycastCallback\x00');
emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback)
emit_32(0);
emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev__index__);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev__index__);
emit_32(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__);
emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii__index__);
emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback);
emit_32(_ZTI25btTriangleRaycastCallback);
emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback)
emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback\x00');
emit_start(_2E_str1089)
emit_string('convexSweepTest\x00');
emit_start(_2E_str1190)
emit_string('performDiscreteCollisionDetection\x00');
emit_start(_2E_str1291)
emit_string('calculateOverlappingPairs\x00');
emit_start(_2E_str1392)
emit_string('dispatchAllCollisionPairs\x00');
emit_start(_2E_str1493)
emit_string('convexSweepCompound\x00');
emit_start(_2E_str1594)
emit_string('Overflow in AABB, object removed from simulation\x00');
emit_start(_2E_str1695)
emit_string('If you can reproduce this, please email bugs@continuousphysics.com\x0a\x00');
emit_start(_2E_str1796)
emit_string('Please include above information, your Platform, version of OS.\x0a\x00');
emit_start(_2E_str1897)
emit_string('Thanks.\x0a\x00');
emit_start(_2E_str1998)
emit_string('updateAabbs\x00');
emit_start(_ZTV22btCompoundLeafCallback)
emit_32(0);
emit_32(_ZTI22btCompoundLeafCallback);
emit_32(_ZN22btCompoundLeafCallbackD1Ev__index__);
emit_32(_ZN22btCompoundLeafCallbackD0Ev__index__);
emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__);
emit_32(_ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode__index__);
emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__);
emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__);
emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__);
emit_start(_ZTI22btCompoundLeafCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS22btCompoundLeafCallback);
emit_32(_ZTIN6btDbvt8ICollideE);
emit_start(_ZTS22btCompoundLeafCallback)
emit_string('22btCompoundLeafCallback\x00');
emit_start(_2E_str99)
emit_string('colObj->getCollisionShape()->isCompound()\x00');
emit_start(_2E_str1100)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp\x00');
emit_start(_2E_str2101)
emit_string('localAabbMin.getX() <= localAabbMax.getX()\x00');
emit_start(_2E_str3102)
emit_string('../../../../src/LinearMath/btAabbUtil2.h\x00');
emit_start(_2E_str4103)
emit_string('localAabbMin.getY() <= localAabbMax.getY()\x00');
emit_start(_2E_str5104)
emit_string('localAabbMin.getZ() <= localAabbMax.getZ()\x00');
emit_start(_2E_str6105)
emit_string('index>=0\x00');
emit_start(_2E_str7106)
emit_string('index<compoundShape->getNumChildShapes()\x00');
emit_start(_ZTV28btCompoundCollisionAlgorithm)
emit_32(0);
emit_32(_ZTI28btCompoundCollisionAlgorithm);
emit_32(_ZN28btCompoundCollisionAlgorithmD1Ev__index__);
emit_32(_ZN28btCompoundCollisionAlgorithmD0Ev__index__);
emit_32(_ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
emit_start(_ZTI28btCompoundCollisionAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS28btCompoundCollisionAlgorithm);
emit_32(_ZTI30btActivatingCollisionAlgorithm);
emit_start(_ZTS28btCompoundCollisionAlgorithm)
emit_string('28btCompoundCollisionAlgorithm\x00');
emit_start(_2E_str109)
emit_string('Triangle\x00');
emit_start(_ZTV24btConvexTriangleCallback)
emit_32(0);
emit_32(_ZTI24btConvexTriangleCallback);
emit_32(_ZN24btConvexTriangleCallbackD1Ev__index__);
emit_32(_ZN24btConvexTriangleCallbackD0Ev__index__);
emit_32(_ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii__index__);
emit_start(_ZTI24btConvexTriangleCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS24btConvexTriangleCallback);
emit_32(_ZTI18btTriangleCallback);
emit_start(_ZTS24btConvexTriangleCallback)
emit_string('24btConvexTriangleCallback\x00');
emit_start(_ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback)
emit_32(0);
emit_32(_ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback);
emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev__index__);
emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev__index__);
emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii__index__);
emit_start(_ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback);
emit_32(_ZTI18btTriangleCallback);
emit_start(_ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback)
emit_string('ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback\x00');
emit_start(_ZTV15btTriangleShape)
emit_32(0);
emit_32(_ZTI15btTriangleShape);
emit_32(_ZN15btTriangleShapeD1Ev__index__);
emit_32(_ZN15btTriangleShapeD0Ev__index__);
emit_32(_ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__);
emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
emit_32(_ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3__index__);
emit_32(_ZNK15btTriangleShape7getNameEv__index__);
emit_32(_ZN21btConvexInternalShape9setMarginEf__index__);
emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__);
emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__);
emit_32(_ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
emit_32(_ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv__index__);
emit_32(_ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
emit_32(_ZNK15btTriangleShape14getNumVerticesEv__index__);
emit_32(_ZNK15btTriangleShape11getNumEdgesEv__index__);
emit_32(_ZNK15btTriangleShape7getEdgeEiR9btVector3S1___index__);
emit_32(_ZNK15btTriangleShape9getVertexEiR9btVector3__index__);
emit_32(_ZNK15btTriangleShape12getNumPlanesEv__index__);
emit_32(_ZNK15btTriangleShape8getPlaneER9btVector3S1_i__index__);
emit_32(_ZNK15btTriangleShape8isInsideERK9btVector3f__index__);
emit_32(_ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1___index__);
emit_start(_ZTI15btTriangleShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS15btTriangleShape);
emit_32(_ZTI23btPolyhedralConvexShape);
emit_start(_ZTS15btTriangleShape)
emit_string('15btTriangleShape\x00');
emit_start(_ZTI23btPolyhedralConvexShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS23btPolyhedralConvexShape);
emit_32(_ZTI21btConvexInternalShape);
emit_start(_ZTS23btPolyhedralConvexShape)
emit_string('23btPolyhedralConvexShape\x00');
emit_start(_ZTI21btConvexInternalShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS21btConvexInternalShape);
emit_32(_ZTI13btConvexShape);
emit_start(_ZTS21btConvexInternalShape)
emit_string('21btConvexInternalShape\x00');
emit_start(_ZTI13btConvexShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS13btConvexShape);
emit_32(_ZTI16btCollisionShape);
emit_start(_ZTS13btConvexShape)
emit_string('13btConvexShape\x00');
emit_start(_ZTI16btCollisionShape)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS16btCollisionShape);
emit_start(_ZTS16btCollisionShape)
emit_string('16btCollisionShape\x00');
emit_start(_2E_str1110)
emit_string('btConvexInternalShapeData\x00');
emit_start(_2E_str3112)
emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleShape.h\x00');
emit_start(_ZTV33btConvexConcaveCollisionAlgorithm)
emit_32(0);
emit_32(_ZTI33btConvexConcaveCollisionAlgorithm);
emit_32(_ZN33btConvexConcaveCollisionAlgorithmD1Ev__index__);
emit_32(_ZN33btConvexConcaveCollisionAlgorithmD0Ev__index__);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
emit_start(_ZTI33btConvexConcaveCollisionAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS33btConvexConcaveCollisionAlgorithm);
emit_32(_ZTI30btActivatingCollisionAlgorithm);
emit_start(_ZTS33btConvexConcaveCollisionAlgorithm)
emit_string('33btConvexConcaveCollisionAlgorithm\x00');
emit_start(_ZTI30btCollisionAlgorithmCreateFunc)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS30btCollisionAlgorithmCreateFunc);
emit_start(_ZTS30btCollisionAlgorithmCreateFunc)
emit_string('30btCollisionAlgorithmCreateFunc\x00');
emit_start(_ZTVN23btConvexConvexAlgorithm10CreateFuncE)
emit_32(0);
emit_32(_ZTIN23btConvexConvexAlgorithm10CreateFuncE);
emit_32(_ZN23btConvexConvexAlgorithm10CreateFuncD1Ev__index__);
emit_32(_ZN23btConvexConvexAlgorithm10CreateFuncD0Ev__index__);
emit_32(_ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN23btConvexConvexAlgorithm10CreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN23btConvexConvexAlgorithm10CreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN23btConvexConvexAlgorithm10CreateFuncE)
emit_string('N23btConvexConvexAlgorithm10CreateFuncE\x00');
emit_start(_ZTV24btPerturbedContactResult)
emit_32(0);
emit_32(_ZTI24btPerturbedContactResult);
emit_32(_ZN24btPerturbedContactResultD1Ev__index__);
emit_32(_ZN24btPerturbedContactResultD0Ev__index__);
emit_32(_ZN16btManifoldResult20setShapeIdentifiersAEii__index__);
emit_32(_ZN16btManifoldResult20setShapeIdentifiersBEii__index__);
emit_32(_ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f__index__);
emit_start(_ZTI24btPerturbedContactResult)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS24btPerturbedContactResult);
emit_32(_ZTI16btManifoldResult);
emit_start(_ZTS24btPerturbedContactResult)
emit_string('24btPerturbedContactResult\x00');
emit_start(_2E_str115)
emit_string('d != btScalar(0.0)\x00');
emit_start(_2E_str4119)
emit_string('normalOnB.length2()>=(SIMD_EPSILON*SIMD_EPSILON)\x00');
emit_start(_2E_str5120)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp\x00');
emit_start(_ZTV23btConvexConvexAlgorithm)
emit_32(0);
emit_32(_ZTI23btConvexConvexAlgorithm);
emit_32(_ZN23btConvexConvexAlgorithmD1Ev__index__);
emit_32(_ZN23btConvexConvexAlgorithmD0Ev__index__);
emit_32(_ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
emit_start(_ZTI23btConvexConvexAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS23btConvexConvexAlgorithm);
emit_32(_ZTI30btActivatingCollisionAlgorithm);
emit_start(_ZTS23btConvexConvexAlgorithm)
emit_string('23btConvexConvexAlgorithm\x00');
emit_start(_ZTV31btConvexPlaneCollisionAlgorithm)
emit_32(0);
emit_32(_ZTI31btConvexPlaneCollisionAlgorithm);
emit_32(_ZN31btConvexPlaneCollisionAlgorithmD1Ev__index__);
emit_32(_ZN31btConvexPlaneCollisionAlgorithmD0Ev__index__);
emit_32(_ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
emit_start(_ZTI31btConvexPlaneCollisionAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS31btConvexPlaneCollisionAlgorithm);
emit_32(_ZTI20btCollisionAlgorithm);
emit_start(_ZTS31btConvexPlaneCollisionAlgorithm)
emit_string('31btConvexPlaneCollisionAlgorithm\x00');
emit_start(_ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE)
emit_32(0);
emit_32(_ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE);
emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev__index__);
emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev__index__);
emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE)
emit_string('N31btConvexPlaneCollisionAlgorithm10CreateFuncE\x00');
emit_start(_ZTI24btCollisionConfiguration)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS24btCollisionConfiguration);
emit_start(_ZTS24btCollisionConfiguration)
emit_string('24btCollisionConfiguration\x00');
emit_start(_ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE)
emit_32(0);
emit_32(_ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev__index__);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev__index__);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE)
emit_string('N33btConvexConcaveCollisionAlgorithm10CreateFuncE\x00');
emit_start(_ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE)
emit_32(0);
emit_32(_ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev__index__);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev__index__);
emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE)
emit_string('N33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE\x00');
emit_start(_ZTVN28btCompoundCollisionAlgorithm10CreateFuncE)
emit_32(0);
emit_32(_ZTIN28btCompoundCollisionAlgorithm10CreateFuncE);
emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev__index__);
emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev__index__);
emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN28btCompoundCollisionAlgorithm10CreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN28btCompoundCollisionAlgorithm10CreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN28btCompoundCollisionAlgorithm10CreateFuncE)
emit_string('N28btCompoundCollisionAlgorithm10CreateFuncE\x00');
emit_start(_ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE)
emit_32(0);
emit_32(_ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE);
emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev__index__);
emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev__index__);
emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE)
emit_string('N28btCompoundCollisionAlgorithm17SwappedCreateFuncE\x00');
emit_start(_ZTVN16btEmptyAlgorithm10CreateFuncE)
emit_32(0);
emit_32(_ZTIN16btEmptyAlgorithm10CreateFuncE);
emit_32(_ZN16btEmptyAlgorithm10CreateFuncD1Ev__index__);
emit_32(_ZN16btEmptyAlgorithm10CreateFuncD0Ev__index__);
emit_32(_ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN16btEmptyAlgorithm10CreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN16btEmptyAlgorithm10CreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN16btEmptyAlgorithm10CreateFuncE)
emit_string('N16btEmptyAlgorithm10CreateFuncE\x00');
emit_start(_ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE)
emit_32(0);
emit_32(_ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE);
emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev__index__);
emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev__index__);
emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE)
emit_string('N32btSphereSphereCollisionAlgorithm10CreateFuncE\x00');
emit_start(_ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE)
emit_32(0);
emit_32(_ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE);
emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev__index__);
emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev__index__);
emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE)
emit_string('N34btSphereTriangleCollisionAlgorithm10CreateFuncE\x00');
emit_start(_ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE)
emit_32(0);
emit_32(_ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE);
emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev__index__);
emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev__index__);
emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
emit_start(_ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE);
emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
emit_start(_ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE)
emit_string('N26btBoxBoxCollisionAlgorithm10CreateFuncE\x00');
emit_start(_2E_str128)
emit_string('usedsize==0\x00');
emit_start(_2E_str1129)
emit_string('../../../../src/LinearMath/btStackAlloc.h\x00');
emit_start(_ZTV31btDefaultCollisionConfiguration)
emit_32(0);
emit_32(_ZTI31btDefaultCollisionConfiguration);
emit_32(_ZN31btDefaultCollisionConfigurationD1Ev__index__);
emit_32(_ZN31btDefaultCollisionConfigurationD0Ev__index__);
emit_32(_ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv__index__);
emit_32(_ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv__index__);
emit_32(_ZN31btDefaultCollisionConfiguration17getStackAllocatorEv__index__);
emit_32(_ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii__index__);
emit_32(_ZN31btDefaultCollisionConfiguration16getSimplexSolverEv__index__);
emit_start(_ZTI31btDefaultCollisionConfiguration)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS31btDefaultCollisionConfiguration);
emit_32(_ZTI24btCollisionConfiguration);
emit_start(_ZTS31btDefaultCollisionConfiguration)
emit_string('31btDefaultCollisionConfiguration\x00');
emit_start(_ZTV16btEmptyAlgorithm)
emit_32(0);
emit_32(_ZTI16btEmptyAlgorithm);
emit_32(_ZN16btEmptyAlgorithmD1Ev__index__);
emit_32(_ZN16btEmptyAlgorithmD0Ev__index__);
emit_32(_ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
emit_start(_ZTI16btEmptyAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS16btEmptyAlgorithm);
emit_32(_ZTI20btCollisionAlgorithm);
emit_start(_ZTS16btEmptyAlgorithm)
emit_string('16btEmptyAlgorithm\x00');
emit_start(_ZTV16btManifoldResult)
emit_32(0);
emit_32(_ZTI16btManifoldResult);
emit_32(_ZN16btManifoldResultD1Ev__index__);
emit_32(_ZN16btManifoldResultD0Ev__index__);
emit_32(_ZN16btManifoldResult20setShapeIdentifiersAEii__index__);
emit_32(_ZN16btManifoldResult20setShapeIdentifiersBEii__index__);
emit_32(_ZN16btManifoldResult15addContactPointERK9btVector3S2_f__index__);
emit_start(_2E_str2149)
emit_string('validContactDistance(newPoint)\x00');
emit_start(_2E_str3150)
emit_string('lifeTime>=0\x00');
emit_start(_2E_str5152)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btManifoldResult.cpp\x00');
emit_start(_2E_str155)
emit_string('islandUnionFindAndQuickSort\x00');
emit_start(_2E_str1156)
emit_string('(colObj0->getIslandTag() == islandId) || (colObj0->getIslandTag() == -1)\x00');
emit_start(_2E_str2157)
emit_string('../../../../src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp\x00');
emit_start(_2E_str3158)
emit_string('processIslands\x00');
emit_start(_ZTV25btSimulationIslandManager)
emit_32(0);
emit_32(_ZTI25btSimulationIslandManager);
emit_32(_ZN25btSimulationIslandManagerD1Ev__index__);
emit_32(_ZN25btSimulationIslandManagerD0Ev__index__);
emit_32(_ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher__index__);
emit_32(_ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld__index__);
emit_start(_ZTI25btSimulationIslandManager)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS25btSimulationIslandManager);
emit_start(_ZTS25btSimulationIslandManager)
emit_string('25btSimulationIslandManager\x00');
emit_start(_ZTV32btSphereSphereCollisionAlgorithm)
emit_32(0);
emit_32(_ZTI32btSphereSphereCollisionAlgorithm);
emit_32(_ZN32btSphereSphereCollisionAlgorithmD1Ev__index__);
emit_32(_ZN32btSphereSphereCollisionAlgorithmD0Ev__index__);
emit_32(_ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
emit_start(_ZTI32btSphereSphereCollisionAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS32btSphereSphereCollisionAlgorithm);
emit_32(_ZTI30btActivatingCollisionAlgorithm);
emit_start(_ZTS32btSphereSphereCollisionAlgorithm)
emit_string('32btSphereSphereCollisionAlgorithm\x00');
emit_start(_ZTV34btSphereTriangleCollisionAlgorithm)
emit_32(0);
emit_32(_ZTI34btSphereTriangleCollisionAlgorithm);
emit_32(_ZN34btSphereTriangleCollisionAlgorithmD1Ev__index__);
emit_32(_ZN34btSphereTriangleCollisionAlgorithmD0Ev__index__);
emit_32(_ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
emit_32(_ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
emit_start(_ZTI34btSphereTriangleCollisionAlgorithm)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS34btSphereTriangleCollisionAlgorithm);
emit_32(_ZTI30btActivatingCollisionAlgorithm);
emit_start(_ZTS34btSphereTriangleCollisionAlgorithm)
emit_string('34btSphereTriangleCollisionAlgorithm\x00');
emit_start(_ZTV22SphereTriangleDetector)
emit_32(0);
emit_32(_ZTI22SphereTriangleDetector);
emit_32(_ZN22SphereTriangleDetectorD1Ev__index__);
emit_32(_ZN22SphereTriangleDetectorD0Ev__index__);
emit_32(_ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__);
emit_start(_ZTI22SphereTriangleDetector)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS22SphereTriangleDetector);
emit_32(_ZTI36btDiscreteCollisionDetectorInterface);
emit_start(_ZTS22SphereTriangleDetector)
emit_string('22SphereTriangleDetector\x00');
emit_start(_2E_str173)
emit_string('Box\x00');
emit_start(_2E_str2175)
emit_string('../../../../src/BulletCollision/CollisionShapes/btBoxShape.h\x00');
emit_start(_ZTV10btBoxShape)
emit_32(0);
emit_32(_ZTI10btBoxShape);
emit_32(_ZN10btBoxShapeD1Ev__index__);
emit_32(_ZN10btBoxShapeD0Ev__index__);
emit_32(_ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(_ZN10btBoxShape15setLocalScalingERK9btVector3__index__);
emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
emit_32(_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3__index__);
emit_32(_ZNK10btBoxShape7getNameEv__index__);
emit_32(_ZN10btBoxShape9setMarginEf__index__);
emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__);
emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(_ZNK10btBoxShape24localGetSupportingVertexERK9btVector3__index__);
emit_32(_ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
emit_32(_ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv__index__);
emit_32(_ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
emit_32(_ZNK10btBoxShape14getNumVerticesEv__index__);
emit_32(_ZNK10btBoxShape11getNumEdgesEv__index__);
emit_32(_ZNK10btBoxShape7getEdgeEiR9btVector3S1___index__);
emit_32(_ZNK10btBoxShape9getVertexEiR9btVector3__index__);
emit_32(_ZNK10btBoxShape12getNumPlanesEv__index__);
emit_32(_ZNK10btBoxShape8getPlaneER9btVector3S1_i__index__);
emit_32(_ZNK10btBoxShape8isInsideERK9btVector3f__index__);
emit_32(_ZNK10btBoxShape16getPlaneEquationER9btVector4i__index__);
emit_start(_ZTI10btBoxShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS10btBoxShape);
emit_32(_ZTI23btPolyhedralConvexShape);
emit_start(_ZTS10btBoxShape)
emit_string('10btBoxShape\x00');
emit_start(_2E_str181)
emit_string('BVHTRIANGLEMESH\x00');
emit_start(_ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
emit_32(0);
emit_32(_ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback);
emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__);
emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__);
emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__);
emit_start(_ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback);
emit_32(_ZTI21btNodeOverlapCallback);
emit_start(_ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
emit_string('ZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback\x00');
emit_start(_ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback)
emit_32(0);
emit_32(_ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback);
emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev__index__);
emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev__index__);
emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii__index__);
emit_start(_ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback);
emit_32(_ZTI21btNodeOverlapCallback);
emit_start(_ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback)
emit_string('ZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback\x00');
emit_start(_ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
emit_32(0);
emit_32(_ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback);
emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__);
emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__);
emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__);
emit_start(_ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback);
emit_32(_ZTI21btNodeOverlapCallback);
emit_start(_ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
emit_string('ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback\x00');
emit_start(_2E_str5186)
emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleMeshShape.h\x00');
emit_start(_2E_str6187)
emit_string('indicestype==PHY_INTEGER||indicestype==PHY_SHORT\x00');
emit_start(_2E_str7188)
emit_string('../../../../src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp\x00');
emit_start(_2E_str8189)
emit_string('btTriangleMeshShapeData\x00');
emit_start(_ZTV22btBvhTriangleMeshShape)
emit_32(0);
emit_32(_ZTI22btBvhTriangleMeshShape);
emit_32(_ZN22btBvhTriangleMeshShapeD1Ev__index__);
emit_32(_ZN22btBvhTriangleMeshShapeD0Ev__index__);
emit_32(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(_ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3__index__);
emit_32(_ZNK19btTriangleMeshShape15getLocalScalingEv__index__);
emit_32(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__);
emit_32(_ZNK22btBvhTriangleMeshShape7getNameEv__index__);
emit_32(_ZN14btConcaveShape9setMarginEf__index__);
emit_32(_ZNK14btConcaveShape9getMarginEv__index__);
emit_32(_ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(_ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__);
emit_32(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__);
emit_32(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
emit_32(_ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer__index__);
emit_32(_ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer__index__);
emit_start(_ZTI22btBvhTriangleMeshShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS22btBvhTriangleMeshShape);
emit_32(_ZTI19btTriangleMeshShape);
emit_start(_ZTS22btBvhTriangleMeshShape)
emit_string('22btBvhTriangleMeshShape\x00');
emit_start(_ZTI19btTriangleMeshShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS19btTriangleMeshShape);
emit_32(_ZTI14btConcaveShape);
emit_start(_ZTS19btTriangleMeshShape)
emit_string('19btTriangleMeshShape\x00');
emit_start(_ZTI14btConcaveShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS14btConcaveShape);
emit_32(_ZTI16btCollisionShape);
emit_start(_ZTS14btConcaveShape)
emit_string('14btConcaveShape\x00');
emit_start(_2E_str194)
emit_string('CapsuleShape\x00');
emit_start(_2E_str4198)
emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexInternalShape.h\x00');
emit_start(_2E_str6199)
emit_string('btCapsuleShapeData\x00');
emit_start(_ZTV14btCapsuleShape)
emit_32(0);
emit_32(_ZTI14btCapsuleShape);
emit_32(_ZN14btCapsuleShapeD1Ev__index__);
emit_32(_ZN14btCapsuleShapeD0Ev__index__);
emit_32(_ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(_ZN14btCapsuleShape15setLocalScalingERK9btVector3__index__);
emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
emit_32(_ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3__index__);
emit_32(_ZNK14btCapsuleShape7getNameEv__index__);
emit_32(_ZN14btCapsuleShape9setMarginEf__index__);
emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__);
emit_32(_ZNK14btCapsuleShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK14btCapsuleShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__);
emit_32(_ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
emit_32(_ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__);
emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
emit_start(_ZTI14btCapsuleShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS14btCapsuleShape);
emit_32(_ZTI21btConvexInternalShape);
emit_start(_ZTS14btCapsuleShape)
emit_string('14btCapsuleShape\x00');
emit_start(_2E_str200)
emit_string('btCollisionShapeData\x00');
emit_start(_ZTV14btConcaveShape)
emit_32(0);
emit_32(_ZTI14btConcaveShape);
emit_32(_ZN14btConcaveShapeD1Ev__index__);
emit_32(_ZN14btConcaveShapeD0Ev__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZN14btConcaveShape9setMarginEf__index__);
emit_32(_ZNK14btConcaveShape9getMarginEv__index__);
emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_2E_str219)
emit_string('Convex\x00');
emit_start(_2E_str3222)
emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexHullShape.cpp\x00');
emit_start(_ZTV17btConvexHullShape)
emit_32(0);
emit_32(_ZTI17btConvexHullShape);
emit_32(_ZN17btConvexHullShapeD1Ev__index__);
emit_32(_ZN17btConvexHullShapeD0Ev__index__);
emit_32(_ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(_ZN17btConvexHullShape15setLocalScalingERK9btVector3__index__);
emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
emit_32(_ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3__index__);
emit_32(_ZNK17btConvexHullShape7getNameEv__index__);
emit_32(_ZN21btConvexInternalShape9setMarginEf__index__);
emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__);
emit_32(_ZNK17btConvexHullShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK17btConvexHullShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(_ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3__index__);
emit_32(_ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
emit_32(_ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__);
emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
emit_32(_ZNK17btConvexHullShape14getNumVerticesEv__index__);
emit_32(_ZNK17btConvexHullShape11getNumEdgesEv__index__);
emit_32(_ZNK17btConvexHullShape7getEdgeEiR9btVector3S1___index__);
emit_32(_ZNK17btConvexHullShape9getVertexEiR9btVector3__index__);
emit_32(_ZNK17btConvexHullShape12getNumPlanesEv__index__);
emit_32(_ZNK17btConvexHullShape8getPlaneER9btVector3S1_i__index__);
emit_32(_ZNK17btConvexHullShape8isInsideERK9btVector3f__index__);
emit_start(_ZTI17btConvexHullShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS17btConvexHullShape);
emit_32(_ZTI34btPolyhedralConvexAabbCachingShape);
emit_start(_ZTS17btConvexHullShape)
emit_string('17btConvexHullShape\x00');
emit_start(_ZTI34btPolyhedralConvexAabbCachingShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS34btPolyhedralConvexAabbCachingShape);
emit_32(_ZTI23btPolyhedralConvexShape);
emit_start(_ZTS34btPolyhedralConvexAabbCachingShape)
emit_string('34btPolyhedralConvexAabbCachingShape\x00');
emit_start(_2E_str5223)
emit_string('btVector3FloatData\x00');
emit_start(_2E_str6224)
emit_string('btConvexHullShapeData\x00');
emit_start(_2E_str6232)
emit_string('m_isLocalAabbValid\x00');
emit_start(_ZTV13btConvexShape)
emit_32(0);
emit_32(_ZTI13btConvexShape);
emit_32(_ZN13btConvexShapeD1Ev__index__);
emit_32(_ZN13btConvexShapeD0Ev__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_2E_str6249)
emit_string('ptIndex >= 0\x00');
emit_start(_2E_str7250)
emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexShape.cpp\x00');
emit_start(_ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback)
emit_32(0);
emit_32(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback);
emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev__index__);
emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev__index__);
emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__);
emit_start(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback);
emit_32(_ZTI31btInternalTriangleIndexCallback);
emit_start(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback)
emit_string('ZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback\x00');
emit_start(_ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback)
emit_32(0);
emit_32(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback);
emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev__index__);
emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev__index__);
emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__);
emit_start(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback);
emit_32(_ZTI31btInternalTriangleIndexCallback);
emit_start(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback)
emit_string('ZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback\x00');
emit_start(_2E_str10306)
emit_string('../../../../src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp\x00');
emit_start(_2E_str18314)
emit_string('partId < (1<<MAX_NUM_PARTS_IN_BITS)\x00');
emit_start(_2E_str19315)
emit_string('triangleIndex < (1<<(31-MAX_NUM_PARTS_IN_BITS))\x00');
emit_start(_2E_str20316)
emit_string('triangleIndex>=0\x00');
emit_start(_ZTV14btOptimizedBvh)
emit_32(0);
emit_32(_ZTI14btOptimizedBvh);
emit_32(_ZN14btOptimizedBvhD1Ev__index__);
emit_32(_ZN14btOptimizedBvhD0Ev__index__);
emit_32(_ZNK14btQuantizedBvh9serializeEPvjb__index__);
emit_32(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__);
emit_32(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__);
emit_32(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__);
emit_32(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__);
emit_32(_ZNK14btOptimizedBvh16serializeInPlaceEPvjb__index__);
emit_start(_ZTI14btOptimizedBvh)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS14btOptimizedBvh);
emit_32(_ZTI14btQuantizedBvh);
emit_start(_ZTS14btOptimizedBvh)
emit_string('14btOptimizedBvh\x00');
emit_start(_2E_str7331)
emit_string('../../../../src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h\x00');
emit_start(_2E_str342)
emit_string('SPHERE\x00');
emit_start(_ZTV13btSphereShape)
emit_32(0);
emit_32(_ZTI13btSphereShape);
emit_32(_ZN13btSphereShapeD1Ev__index__);
emit_32(_ZN13btSphereShapeD0Ev__index__);
emit_32(_ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__);
emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
emit_32(_ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3__index__);
emit_32(_ZNK13btSphereShape7getNameEv__index__);
emit_32(_ZN13btSphereShape9setMarginEf__index__);
emit_32(_ZNK13btSphereShape9getMarginEv__index__);
emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(_ZNK13btSphereShape24localGetSupportingVertexERK9btVector3__index__);
emit_32(_ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
emit_32(_ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__);
emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
emit_start(_ZTI13btSphereShape)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS13btSphereShape);
emit_32(_ZTI21btConvexInternalShape);
emit_start(_ZTS13btSphereShape)
emit_string('13btSphereShape\x00');
emit_start(_2E_str349)
emit_string('btIntIndexData\x00');
emit_start(_2E_str1350)
emit_string('btShortIntIndexTripletData\x00');
emit_start(_2E_str3352)
emit_string('../../../../src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp\x00');
emit_start(_2E_str5354)
emit_string('btVector3DoubleData\x00');
emit_start(_2E_str6355)
emit_string('(type == PHY_FLOAT) || (type == PHY_DOUBLE)\x00');
emit_start(_2E_str7356)
emit_string('btMeshPartData\x00');
emit_start(_2E_str8357)
emit_string('btStridingMeshInterfaceData\x00');
emit_start(_2E_str9358)
emit_string('(gfxindextype == PHY_INTEGER) || (gfxindextype == PHY_SHORT)\x00');
emit_start(_ZTV23btStridingMeshInterface)
emit_32(0);
emit_32(_ZTI23btStridingMeshInterface);
emit_32(_ZN23btStridingMeshInterfaceD1Ev__index__);
emit_32(_ZN23btStridingMeshInterfaceD0Ev__index__);
emit_32(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZNK23btStridingMeshInterface14hasPremadeAabbEv__index__);
emit_32(_ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2___index__);
emit_32(_ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1___index__);
emit_32(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__);
emit_start(_ZTI23btStridingMeshInterface)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS23btStridingMeshInterface);
emit_start(_ZTS23btStridingMeshInterface)
emit_string('23btStridingMeshInterface\x00');
emit_start(_ZTV31btInternalTriangleIndexCallback)
emit_32(0);
emit_32(_ZTI31btInternalTriangleIndexCallback);
emit_32(_ZN31btInternalTriangleIndexCallbackD1Ev__index__);
emit_32(_ZN31btInternalTriangleIndexCallbackD0Ev__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_ZTV18btTriangleCallback)
emit_32(0);
emit_32(_ZTI18btTriangleCallback);
emit_32(_ZN18btTriangleCallbackD1Ev__index__);
emit_32(_ZN18btTriangleCallbackD0Ev__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_2E_str367)
emit_string('subpart< getNumSubParts()\x00');
emit_start(_2E_str1368)
emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp\x00');
emit_start(_ZTV26btTriangleIndexVertexArray)
emit_32(0);
emit_32(_ZTI26btTriangleIndexVertexArray);
emit_32(_ZN26btTriangleIndexVertexArrayD1Ev__index__);
emit_32(_ZN26btTriangleIndexVertexArrayD0Ev__index__);
emit_32(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__);
emit_32(_ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i__index__);
emit_32(_ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i__index__);
emit_32(_ZN26btTriangleIndexVertexArray16unLockVertexBaseEi__index__);
emit_32(_ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi__index__);
emit_32(_ZNK26btTriangleIndexVertexArray14getNumSubPartsEv__index__);
emit_32(_ZN26btTriangleIndexVertexArray19preallocateVerticesEi__index__);
emit_32(_ZN26btTriangleIndexVertexArray18preallocateIndicesEi__index__);
emit_32(_ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv__index__);
emit_32(_ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2___index__);
emit_32(_ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1___index__);
emit_32(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__);
emit_start(_ZTI26btTriangleIndexVertexArray)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS26btTriangleIndexVertexArray);
emit_32(_ZTI23btStridingMeshInterface);
emit_start(_ZTS26btTriangleIndexVertexArray)
emit_string('26btTriangleIndexVertexArray\x00');
emit_start(_2E_str372)
emit_string('TRIANGLEMESH\x00');
emit_start(_ZTV21SupportVertexCallback)
emit_32(0);
emit_32(_ZTI21SupportVertexCallback);
emit_32(_ZN21SupportVertexCallbackD1Ev__index__);
emit_32(_ZN21SupportVertexCallbackD0Ev__index__);
emit_32(_ZN21SupportVertexCallback15processTriangleEP9btVector3ii__index__);
emit_start(_ZTI21SupportVertexCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS21SupportVertexCallback);
emit_32(_ZTI18btTriangleCallback);
emit_start(_ZTS21SupportVertexCallback)
emit_string('21SupportVertexCallback\x00');
emit_start(_ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback)
emit_32(0);
emit_32(_ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback);
emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev__index__);
emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev__index__);
emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii__index__);
emit_start(_ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback);
emit_32(_ZTI31btInternalTriangleIndexCallback);
emit_start(_ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback)
emit_string('ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback\x00');
emit_start(_2E_str3375)
emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp\x00');
emit_start(_ZTV19btTriangleMeshShape)
emit_32(0);
emit_32(_ZTI19btTriangleMeshShape);
emit_32(_ZN19btTriangleMeshShapeD1Ev__index__);
emit_32(_ZN19btTriangleMeshShapeD0Ev__index__);
emit_32(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__);
emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
emit_32(_ZN19btTriangleMeshShape15setLocalScalingERK9btVector3__index__);
emit_32(_ZNK19btTriangleMeshShape15getLocalScalingEv__index__);
emit_32(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__);
emit_32(_ZNK19btTriangleMeshShape7getNameEv__index__);
emit_32(_ZN14btConcaveShape9setMarginEf__index__);
emit_32(_ZNK14btConcaveShape9getMarginEv__index__);
emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__);
emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
emit_32(_ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__);
emit_32(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__);
emit_32(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
emit_start(_ZTV16btPointCollector)
emit_32(0);
emit_32(_ZTI16btPointCollector);
emit_32(_ZN16btPointCollectorD1Ev__index__);
emit_32(_ZN16btPointCollectorD0Ev__index__);
emit_32(_ZN16btPointCollector20setShapeIdentifiersAEii__index__);
emit_32(_ZN16btPointCollector20setShapeIdentifiersBEii__index__);
emit_32(_ZN16btPointCollector15addContactPointERK9btVector3S2_f__index__);
emit_start(_ZTI16btPointCollector)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS16btPointCollector);
emit_32(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE);
emit_start(_ZTS16btPointCollector)
emit_string('16btPointCollector\x00');
emit_start(_ZTV27btContinuousConvexCollision)
emit_32(0);
emit_32(_ZTI27btContinuousConvexCollision);
emit_32(_ZN27btContinuousConvexCollisionD1Ev__index__);
emit_32(_ZN27btContinuousConvexCollisionD0Ev__index__);
emit_32(_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__);
emit_start(_ZTI27btContinuousConvexCollision)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS27btContinuousConvexCollision);
emit_32(_ZTI12btConvexCast);
emit_start(_ZTS27btContinuousConvexCollision)
emit_string('27btContinuousConvexCollision\x00');
emit_start(_ZTI12btConvexCast)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS12btConvexCast);
emit_start(_ZTS12btConvexCast)
emit_string('12btConvexCast\x00');
emit_start(_ZTV12btConvexCast)
emit_32(0);
emit_32(_ZTI12btConvexCast);
emit_32(_ZN12btConvexCastD1Ev__index__);
emit_32(_ZN12btConvexCastD0Ev__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_ZTV15btGjkConvexCast)
emit_32(0);
emit_32(_ZTI15btGjkConvexCast);
emit_32(_ZN15btGjkConvexCastD1Ev__index__);
emit_32(_ZN15btGjkConvexCastD0Ev__index__);
emit_32(_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__);
emit_start(_ZTI15btGjkConvexCast)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS15btGjkConvexCast);
emit_32(_ZTI12btConvexCast);
emit_start(_ZTS15btGjkConvexCast)
emit_string('15btGjkConvexCast\x00');
emit_start(_ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3)
emit_32(1);
emit_32(2);
emit_32(0);
emit_start(_ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3)
emit_32(2);
emit_32(0);
emit_32(1);
emit_start(_ZTV30btGjkEpaPenetrationDepthSolver)
emit_32(0);
emit_32(_ZTI30btGjkEpaPenetrationDepthSolver);
emit_32(_ZN30btGjkEpaPenetrationDepthSolverD1Ev__index__);
emit_32(_ZN30btGjkEpaPenetrationDepthSolverD0Ev__index__);
emit_32(_ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc__index__);
emit_start(_ZTI30btGjkEpaPenetrationDepthSolver)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS30btGjkEpaPenetrationDepthSolver);
emit_32(_ZTI30btConvexPenetrationDepthSolver);
emit_start(_ZTS30btGjkEpaPenetrationDepthSolver)
emit_string('30btGjkEpaPenetrationDepthSolver\x00');
emit_start(_ZTV17btGjkPairDetector)
emit_32(0);
emit_32(_ZTI17btGjkPairDetector);
emit_32(_ZN17btGjkPairDetectorD1Ev__index__);
emit_32(_ZN17btGjkPairDetectorD0Ev__index__);
emit_32(_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__);
emit_start(_ZTI17btGjkPairDetector)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS17btGjkPairDetector);
emit_32(_ZTI36btDiscreteCollisionDetectorInterface);
emit_start(_ZTS17btGjkPairDetector)
emit_string('17btGjkPairDetector\x00');
emit_start(_2E_str425)
emit_string('btGjkPairDetector maxIter exceeded:%i\x0a\x00');
emit_start(_2E_str1426)
emit_string('sepAxis=(%f,%f,%f), squaredDistance = %f, shapeTypeA=%i,shapeTypeB=%i\x0a\x00');
emit_start(_2E_str2427)
emit_string('s > btScalar(0.0)\x00');
emit_start(_2E_str3428)
emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp\x00');
emit_start(gContactBreakingThreshold)
emit_32(1017370378);
emit_start(_2E_str434)
emit_string('m_pointCache[lastUsedIndex].m_userPersistentData==0\x00');
emit_start(_2E_str3437)
emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp\x00');
emit_start(_2E_str4438)
emit_string('m_pointCache[insertIndex].m_userPersistentData==0\x00');
emit_start(_ZTV28btTriangleConvexcastCallback)
emit_32(0);
emit_32(_ZTI28btTriangleConvexcastCallback);
emit_32(_ZN28btTriangleConvexcastCallbackD1Ev__index__);
emit_32(_ZN28btTriangleConvexcastCallbackD0Ev__index__);
emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__);
emit_32(__cxa_pure_virtual__index__);
emit_start(_ZTV22btSubsimplexConvexCast)
emit_32(0);
emit_32(_ZTI22btSubsimplexConvexCast);
emit_32(_ZN22btSubsimplexConvexCastD1Ev__index__);
emit_32(_ZN22btSubsimplexConvexCastD0Ev__index__);
emit_32(_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__);
emit_start(_ZTI22btSubsimplexConvexCast)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS22btSubsimplexConvexCast);
emit_32(_ZTI12btConvexCast);
emit_start(_ZTS22btSubsimplexConvexCast)
emit_string('22btSubsimplexConvexCast\x00');
emit_start(_2E_str457)
emit_string('m_numVertices>0\x00');
emit_start(_2E_str1458)
emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp\x00');
emit_start(_ZTVN16btCollisionWorld27ClosestConvexResultCallbackE)
emit_32(0);
emit_32(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE);
emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev__index__);
emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev__index__);
emit_32(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb__index__);
emit_start(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN16btCollisionWorld27ClosestConvexResultCallbackE);
emit_32(_ZTIN16btCollisionWorld20ConvexResultCallbackE);
emit_start(_ZTSN16btCollisionWorld27ClosestConvexResultCallbackE)
emit_string('N16btCollisionWorld27ClosestConvexResultCallbackE\x00');
emit_start(_2E_str36)
emit_string('convexResult.m_hitFraction <= m_closestHitFraction\x00');
emit_start(_2E_str239)
emit_string('btConeTwistConstraintData\x00');
emit_start(_ZTV21btConeTwistConstraint)
emit_32(0);
emit_32(_ZTI21btConeTwistConstraint);
emit_32(_ZN21btConeTwistConstraintD1Ev__index__);
emit_32(_ZN21btConeTwistConstraintD0Ev__index__);
emit_32(_ZN21btConeTwistConstraint13buildJacobianEv__index__);
emit_32(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__);
emit_32(_ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__);
emit_32(_ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__);
emit_32(_ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__);
emit_32(_ZN21btConeTwistConstraint8setParamEifi__index__);
emit_32(_ZNK21btConeTwistConstraint8getParamEii__index__);
emit_32(_ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK21btConeTwistConstraint9serializeEPvP12btSerializer__index__);
emit_start(_ZTI21btConeTwistConstraint)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS21btConeTwistConstraint);
emit_32(_ZTI17btTypedConstraint);
emit_start(_ZTS21btConeTwistConstraint)
emit_string('21btConeTwistConstraint\x00');
emit_start(_2E_str1340)
emit_string('m_flags & BT_CONETWIST_FLAGS_LIN_ERP\x00');
emit_start(_2E_str24)
emit_string('../../../../src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp\x00');
emit_start(_2E_str442)
emit_string('m_flags & BT_CONETWIST_FLAGS_LIN_CFM\x00');
emit_start(_2E_str543)
emit_string('m_flags & BT_CONETWIST_FLAGS_ANG_CFM\x00');
emit_start(_2E_str846)
emit_string('m_Adiag > btScalar(0.0)\x00');
emit_start(_2E_str947)
emit_string('../../../../src/BulletDynamics/ConstraintSolver/btJacobianEntry.h\x00');
emit_start(_2E_str1149)
emit_string('!m_useSolveConstraintObsolete\x00');
emit_start(_2E_str29)
emit_string('btHingeConstraintFloatData\x00');
emit_start(_ZTV17btHingeConstraint)
emit_32(0);
emit_32(_ZTI17btHingeConstraint);
emit_32(_ZN17btHingeConstraintD1Ev__index__);
emit_32(_ZN17btHingeConstraintD0Ev__index__);
emit_32(_ZN17btHingeConstraint13buildJacobianEv__index__);
emit_32(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__);
emit_32(_ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__);
emit_32(_ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__);
emit_32(_ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__);
emit_32(_ZN17btHingeConstraint8setParamEifi__index__);
emit_32(_ZNK17btHingeConstraint8getParamEii__index__);
emit_32(_ZNK17btHingeConstraint28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK17btHingeConstraint9serializeEPvP12btSerializer__index__);
emit_start(_ZTI17btHingeConstraint)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS17btHingeConstraint);
emit_32(_ZTI17btTypedConstraint);
emit_start(_ZTS17btHingeConstraint)
emit_string('17btHingeConstraint\x00');
emit_start(_2E_str130)
emit_string('m_flags & BT_HINGE_FLAGS_ERP_STOP\x00');
emit_start(_2E_str231)
emit_string('../../../../src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp\x00');
emit_start(_2E_str332)
emit_string('m_flags & BT_HINGE_FLAGS_CFM_STOP\x00');
emit_start(_2E_str433)
emit_string('m_flags & BT_HINGE_FLAGS_CFM_NORM\x00');
emit_start(_ZTI18btConstraintSolver)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS18btConstraintSolver);
emit_start(_ZTS18btConstraintSolver)
emit_string('18btConstraintSolver\x00');
emit_start(_ZTV35btSequentialImpulseConstraintSolver)
emit_32(0);
emit_32(_ZTI35btSequentialImpulseConstraintSolver);
emit_32(_ZN35btSequentialImpulseConstraintSolverD1Ev__index__);
emit_32(_ZN35btSequentialImpulseConstraintSolverD0Ev__index__);
emit_32(_ZN18btConstraintSolver12prepareSolveEii__index__);
emit_32(_ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher__index__);
emit_32(_ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
emit_32(_ZN35btSequentialImpulseConstraintSolver5resetEv__index__);
emit_32(_ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
emit_32(_ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
emit_32(_ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
emit_32(_ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
emit_start(_ZTI35btSequentialImpulseConstraintSolver)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS35btSequentialImpulseConstraintSolver);
emit_32(_ZTI18btConstraintSolver);
emit_start(_ZTS35btSequentialImpulseConstraintSolver)
emit_string('35btSequentialImpulseConstraintSolver\x00');
emit_start(_2E_str248)
emit_string('m_constraintRefs.size()==0\x00');
emit_start(_2E_str34955)
emit_string('../../../../src/BulletDynamics/Dynamics/btRigidBody.h\x00');
emit_start(_2E_str450)
emit_string('solveGroup\x00');
emit_start(_2E_str551)
emit_string('bodies\x00');
emit_start(_2E_str652)
emit_string('../../../../src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp\x00');
emit_start(_2E_str753)
emit_string('numBodies\x00');
emit_start(_2E_str854)
emit_string('solveGroupCacheFriendlyIterations\x00');
emit_start(_2E_str955)
emit_string('pt\x00');
emit_start(_2E_str1056)
emit_string('solveGroupCacheFriendlySetup\x00');
emit_start(_2E_str1157)
emit_string('currentRow<totalNumRows\x00');
emit_start(_2E_str76)
emit_string('btTypedConstraintData\x00');
emit_start(_ZTI23btDiscreteDynamicsWorld)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS23btDiscreteDynamicsWorld);
emit_32(_ZTI15btDynamicsWorld);
emit_start(_ZTS23btDiscreteDynamicsWorld)
emit_string('23btDiscreteDynamicsWorld\x00');
emit_start(_ZTI15btDynamicsWorld)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS15btDynamicsWorld);
emit_32(_ZTI16btCollisionWorld);
emit_start(_ZTS15btDynamicsWorld)
emit_string('15btDynamicsWorld\x00');
emit_start(_ZTIN25btSimulationIslandManager14IslandCallbackE)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSN25btSimulationIslandManager14IslandCallbackE);
emit_start(_ZTSN25btSimulationIslandManager14IslandCallbackE)
emit_string('N25btSimulationIslandManager14IslandCallbackE\x00');
emit_start(_ZTV34btClosestNotMeConvexResultCallback)
emit_32(0);
emit_32(_ZTI34btClosestNotMeConvexResultCallback);
emit_32(_ZN34btClosestNotMeConvexResultCallbackD1Ev__index__);
emit_32(_ZN34btClosestNotMeConvexResultCallbackD0Ev__index__);
emit_32(_ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
emit_32(_ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb__index__);
emit_start(_ZTI34btClosestNotMeConvexResultCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS34btClosestNotMeConvexResultCallback);
emit_32(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE);
emit_start(_ZTS34btClosestNotMeConvexResultCallback)
emit_string('34btClosestNotMeConvexResultCallback\x00');
emit_start(_ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
emit_32(0);
emit_32(_ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback);
emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev__index__);
emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev__index__);
emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii__index__);
emit_start(_ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback);
emit_32(_ZTIN25btSimulationIslandManager14IslandCallbackE);
emit_start(_ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
emit_string('ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback\x00');
emit_start(_2E_str87)
emit_string('predictUnconstraintMotion\x00');
emit_start(_2E_str188)
emit_string('calculateSimulationIslands\x00');
emit_start(_2E_str289)
emit_string('updateActions\x00');
emit_start(_2E_str794)
emit_string('integrateTransforms\x00');
emit_start(_2E_str895)
emit_string('CCD motion clamping\x00');
emit_start(_2E_str996)
emit_string('solveConstraints\x00');
emit_start(_2E_str1097)
emit_string('updateActivationState\x00');
emit_start(_2E_str1198)
emit_string('internalSingleStepSimulation\x00');
emit_start(_2E_str1299)
emit_string('stepSimulation\x00');
emit_start(_2E_str13100)
emit_string('body\x00');
emit_start(_2E_str1461)
emit_string('../../../../src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp\x00');
emit_start(_2E_str1562)
emit_string('synchronizeMotionStates\x00');
emit_start(_2E_str16101)
emit_string('debugDrawWorld\x00');
emit_start(_ZTV15btDynamicsWorld)
emit_32(0);
emit_32(_ZTI15btDynamicsWorld);
emit_32(_ZN15btDynamicsWorldD1Ev__index__);
emit_32(_ZN15btDynamicsWorldD0Ev__index__);
emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__);
emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__);
emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__);
emit_32(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__);
emit_32(_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss__index__);
emit_32(_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject__index__);
emit_32(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__);
emit_32(_ZN16btCollisionWorld9serializeEP12btSerializer__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb__index__);
emit_32(_ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZNK15btDynamicsWorld17getNumConstraintsEv__index__);
emit_32(_ZN15btDynamicsWorld13getConstraintEi__index__);
emit_32(_ZNK15btDynamicsWorld13getConstraintEi__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(__cxa_pure_virtual__index__);
emit_32(_ZN15btDynamicsWorld10addVehicleEP17btActionInterface__index__);
emit_32(_ZN15btDynamicsWorld13removeVehicleEP17btActionInterface__index__);
emit_32(_ZN15btDynamicsWorld12addCharacterEP17btActionInterface__index__);
emit_32(_ZN15btDynamicsWorld15removeCharacterEP17btActionInterface__index__);
emit_start(_ZTV23btDiscreteDynamicsWorld)
emit_32(0);
emit_32(_ZTI23btDiscreteDynamicsWorld);
emit_32(_ZN23btDiscreteDynamicsWorldD1Ev__index__);
emit_32(_ZN23btDiscreteDynamicsWorldD0Ev__index__);
emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__);
emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__);
emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld14debugDrawWorldEv__index__);
emit_32(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__);
emit_32(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__);
emit_32(_ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss__index__);
emit_32(_ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject__index__);
emit_32(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer__index__);
emit_32(_ZN23btDiscreteDynamicsWorld14stepSimulationEfif__index__);
emit_32(_ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb__index__);
emit_32(_ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint__index__);
emit_32(_ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface__index__);
emit_32(_ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface__index__);
emit_32(_ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3__index__);
emit_32(_ZNK23btDiscreteDynamicsWorld10getGravityEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody__index__);
emit_32(_ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody__index__);
emit_32(_ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver__index__);
emit_32(_ZN23btDiscreteDynamicsWorld19getConstraintSolverEv__index__);
emit_32(_ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld13getConstraintEi__index__);
emit_32(_ZNK23btDiscreteDynamicsWorld13getConstraintEi__index__);
emit_32(_ZNK23btDiscreteDynamicsWorld12getWorldTypeEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld11clearForcesEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface__index__);
emit_32(_ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface__index__);
emit_32(_ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface__index__);
emit_32(_ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface__index__);
emit_32(_ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf__index__);
emit_32(_ZN23btDiscreteDynamicsWorld19integrateTransformsEf__index__);
emit_32(_ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo__index__);
emit_32(_ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf__index__);
emit_32(_ZN23btDiscreteDynamicsWorld18saveKinematicStateEf__index__);
emit_32(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss__index__);
emit_32(_ZN23btDiscreteDynamicsWorld12applyGravityEv__index__);
emit_32(_ZN23btDiscreteDynamicsWorld11setNumTasksEi__index__);
emit_32(_ZN23btDiscreteDynamicsWorld14updateVehiclesEf__index__);
emit_start(_ZTV11btRigidBody)
emit_32(0);
emit_32(_ZTI11btRigidBody);
emit_32(_ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject__index__);
emit_32(_ZN11btRigidBodyD1Ev__index__);
emit_32(_ZN11btRigidBodyD0Ev__index__);
emit_32(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__);
emit_32(_ZNK11btRigidBody28calculateSerializeBufferSizeEv__index__);
emit_32(_ZNK11btRigidBody9serializeEPvP12btSerializer__index__);
emit_32(_ZNK11btRigidBody21serializeSingleObjectEP12btSerializer__index__);
emit_start(_ZTI11btRigidBody)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS11btRigidBody);
emit_32(_ZTI17btCollisionObject);
emit_start(_ZTS11btRigidBody)
emit_string('11btRigidBody\x00');
emit_start(_2E_str4144)
emit_string('btRigidBodyFloatData\x00');
emit_start(_ZN15CProfileManager11CurrentNodeE)
emit_32(_ZN15CProfileManager4RootE);
emit_start(_2E_str729)
emit_string('Root\x00');
emit_start(llvm_2E_eh_2E_catch_2E_all_2E_value)
emit_32(0);
emit_start(_ZTIN4__rw10__rw_facetE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN4__rw10__rw_facetE);
emit_32(_ZTIN4__rw17__rw_synchronizedE);
emit_start(_ZTSN4__rw10__rw_facetE)
emit_string('N4__rw10__rw_facetE\x00');
emit_start(_ZTIN4__rw17__rw_synchronizedE)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSN4__rw17__rw_synchronizedE);
emit_start(_ZTSN4__rw17__rw_synchronizedE)
emit_string('N4__rw17__rw_synchronizedE\x00');
emit_start(_2E_str4131)
emit_string('exception\x00');
emit_start(_2E_str15132)
emit_string('unexpected exception\x00');
emit_start(_2E_str26)
emit_fill(0,1);
emit_start(_2E_str3133)
emit_string('Exception: %s.\x0a\x00');
emit_start(_2E_str47)
emit_string('bad_alloc: out of memory\x00');
emit_start(_2E_str5134)
emit_string('unknown exception\x00');
emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer)
emit_string('rwstderr:1\x00');
emit_start(_2E_str7136)
emit_string('%d\x00');
emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset)
emit_32(1);
emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat)
emit_32(4294967295);
emit_start(_ZZN4__rw10__rw_throwEizE6errors)
emit_32(_2E_str8137);
emit_32(_2E_str9138);
emit_32(_2E_str10139);
emit_32(_2E_str11140);
emit_32(_2E_str12141);
emit_32(_2E_str138142);
emit_32(_2E_str14143);
emit_32(_2E_str159144);
emit_32(_2E_str16145);
emit_32(_2E_str17146);
emit_32(_2E_str18147);
emit_32(_2E_str19148);
emit_32(_2E_str20149);
emit_32(_2E_str21150);
emit_32(_2E_str22151);
emit_32(_2E_str23152);
emit_32(_2E_str24153);
emit_32(_2E_str25154);
emit_32(_2E_str2610);
emit_32(_2E_str27);
emit_32(_2E_str28155);
emit_32(_2E_str29156);
emit_32(_2E_str30);
emit_32(_2E_str31);
emit_32(_2E_str32157);
emit_start(_2E_str8137)
emit_string('%s: %s: unspecified error\x00');
emit_start(_2E_str9138)
emit_string('%s: %s: exception\x00');
emit_start(_2E_str10139)
emit_string('%s: %s: unexpected exception\x00');
emit_start(_2E_str11140)
emit_string('%s: %s: bad_alloc: out of memory\x00');
emit_start(_2E_str12141)
emit_string('%s: %s: bad cast\x00');
emit_start(_2E_str138142)
emit_string('%s: %s: logic error\x00');
emit_start(_2E_str14143)
emit_string('%s: %s: domain error\x00');
emit_start(_2E_str159144)
emit_string('%s: %s: invalid argument\x00');
emit_start(_2E_str16145)
emit_string('%s: %s: length error: size %u out of range [0, %u)\x00');
emit_start(_2E_str17146)
emit_string('%s: %s: argument value %u out of range [0, %u)\x00');
emit_start(_2E_str18147)
emit_string('%s: %s: runtime error\x00');
emit_start(_2E_str19148)
emit_string('%s: %s: range error: invalid range [%d, %d)\x00');
emit_start(_2E_str20149)
emit_string('%s: %s: overflow error\x00');
emit_start(_2E_str21150)
emit_string('%s: %s: underflow error\x00');
emit_start(_2E_str22151)
emit_string('%s: stream object has set ios::failbit\x00');
emit_start(_2E_str23152)
emit_string('%s: stream object has set ios::badbit\x00');
emit_start(_2E_str24153)
emit_string('%s: stream object has set ios::eofbit\x00');
emit_start(_2E_str25154)
emit_string('%s: stream object has set %s\x00');
emit_start(_2E_str2610)
emit_string('%s: %s: facet %u not found in locale (\x22%s\x22)\x00');
emit_start(_2E_str27)
emit_string('%s: %s: bad locale name: \x22%s\x22\x00');
emit_start(_2E_str28155)
emit_string('%s: %s: failed to construct locale name\x00');
emit_start(_2E_str29156)
emit_string('%s: %s: conversion failed\x00');
emit_start(_2E_str30)
emit_string('%s: %s: invalid pointer %p\x00');
emit_start(_2E_str31)
emit_string('%s: %s: transformation failed\x00');
emit_start(_2E_str32157)
emit_string('%s: %s: bad category value: %#x\x00');
emit_start(_2E_str33)
emit_string('LC_COLLATE\x00');
emit_start(_2E_str134)
emit_string('LC_CTYPE\x00');
emit_start(_2E_str235)
emit_string('LC_MONETARY\x00');
emit_start(_2E_str336)
emit_string('LC_NUMERIC\x00');
emit_start(_2E_str437)
emit_string('LC_TIME\x00');
emit_start(_ZTVN4__rw10__rw_facetE)
emit_32(0);
emit_32(_ZTIN4__rw10__rw_facetE);
emit_32(_ZN4__rw10__rw_facetD1Ev__index__);
emit_32(_ZN4__rw10__rw_facetD0Ev__index__);
emit_start(_2E_str538)
emit_string('C\x00');
emit_start(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets)
emit_32(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf);
emit_start(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize)
emit_32(416);
emit_start(_ZZN4__rw10__rw_facetD4EvE9destroyed)
emit_string('*** destroyed facet ***\x00');
emit_start(_ZN4__rw9__rw_catsE)
emit_32(1);
emit_32(_2E_str33);
emit_32(8193);
emit_32(2);
emit_32(_2E_str134);
emit_32(49158);
emit_32(3);
emit_32(_2E_str235);
emit_32(983160);
emit_32(4);
emit_32(_2E_str336);
emit_32(7340928);
emit_32(5);
emit_32(_2E_str437);
emit_32(25168896);
emit_32(1);
emit_32(_2E_str33);
emit_32(8193);
emit_start(_2E_str785)
emit_string(';\x00');
emit_start(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales)
emit_32(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf);
emit_start(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize)
emit_32(8);
emit_start(_2E_str292167)
emit_string('LC_\x00');
emit_start(_2E_str10100175)
emit_string('locale::locale (const char*)\x00');
emit_start(_2E_str12102177)
emit_string('../stdcxx/locale_combine.cpp:650\x00');
emit_start(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs)
emit_32(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf);
emit_start(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize)
emit_32(8);
emit_start(_2E_str115180)
emit_string('../stdcxx/messages.cpp:308\x00');
emit_start(_2E_str1116181)
emit_string('__rw_cat_close (int cat)\x00');
emit_start(_2E_str2131)
emit_string('.\x00');
emit_start(_2E_str4133)
emit_string(',\x00');
emit_start(_ZTVSt8messagesIcE)
emit_32(0);
emit_32(_ZTISt8messagesIcE);
emit_32(_ZNSt8messagesIcED1Ev__index__);
emit_32(_ZNSt8messagesIcED0Ev__index__);
emit_32(_ZNKSt8messagesIcE7do_openERKSsRKSt6locale__index__);
emit_32(_ZNKSt8messagesIcE6do_getEiiiRKSs__index__);
emit_32(_ZNKSt8messagesIcE8do_closeEi__index__);
emit_start(_ZTISt8messagesIcE)
emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8);
emit_32(_ZTSSt8messagesIcE);
emit_32(0);
emit_32(2);
emit_32(_ZTIN4__rw10__rw_facetE);
emit_32(2);
emit_32(_ZTISt13messages_base);
emit_32(2);
emit_start(_ZTSSt8messagesIcE)
emit_string('St8messagesIcE\x00');
emit_start(_ZTISt13messages_base)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSSt13messages_base);
emit_start(_ZTSSt13messages_base)
emit_string('St13messages_base\x00');
emit_start(_2E_str2360)
emit_string('../stdcxx/include/string.cc:88\x00');
emit_start(_2E_str3361)
emit_string('basic_string::_C_get_rep (size_type, size_type)\x00');
emit_start(_2E_str4362)
emit_string('../stdcxx/include/string.cc:95\x00');
emit_start(_ZTVSt9type_info)
emit_32(0);
emit_32(_ZTISt9type_info);
emit_32(_ZNSt9type_infoD1Ev__index__);
emit_32(_ZNSt9type_infoD0Ev__index__);
emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
emit_32(_ZNKSt9type_info10__do_catchEPKS_PPvj__index__);
emit_start(_ZTISt9type_info)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTSSt9type_info);
emit_start(_ZTSSt9type_info)
emit_string('St9type_info\x00');
emit_start(_2E_str643)
emit_string('tlsf_create: Pool size must be between %d and %d bytes.\x0a\x00');
emit_start(_2E_str1648)
emit_string('rb\x00');
emit_start(_2E_str4651)
emit_string('rb+\x00');
emit_start(_2E_str5652)
emit_string('wb+\x00');
emit_start(my_ctype)
emit_32(0);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(40);
emit_32(40);
emit_32(40);
emit_32(40);
emit_32(40);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(32);
emit_32(72);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(132);
emit_32(132);
emit_32(132);
emit_32(132);
emit_32(132);
emit_32(132);
emit_32(132);
emit_32(132);
emit_32(132);
emit_32(132);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(129);
emit_32(129);
emit_32(129);
emit_32(129);
emit_32(129);
emit_32(129);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(1);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(130);
emit_32(130);
emit_32(130);
emit_32(130);
emit_32(130);
emit_32(130);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(2);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(16);
emit_32(32);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_32(0);
emit_start(_ZL8nextRand)
emit_32(1);
emit_start(_2E_str7654)
emit_string('inf\x00');
emit_start(_2E_str9655)
emit_string('nan\x00');
emit_start(_ZL8pad_line)
emit_string('                \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');
emit_string('0000000000000000\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');
emit_start(_ZTI14CFileInterface)
emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
emit_32(_ZTS14CFileInterface);
emit_start(_ZTS14CFileInterface)
emit_string('14CFileInterface\x00');
emit_start(_ZTV11CFileSystem)
emit_32(0);
emit_32(_ZTI11CFileSystem);
emit_32(_ZNK11CFileSystem12IsFileSystemEv__index__);
emit_32(_ZN11CFileSystem5freadEPvjj__index__);
emit_32(_ZN11CFileSystem6fwriteEPKvjj__index__);
emit_32(_ZN11CFileSystem6fflushEv__index__);
emit_32(_ZN11CFileSystem6fcloseEv__index__);
emit_32(_ZN11CFileSystem5ftellEv__index__);
emit_32(_ZN11CFileSystem4feofEv__index__);
emit_32(_ZN11CFileSystem5fseekEli__index__);
emit_32(_ZN11CFileSystem6ungetcEi__index__);
emit_start(_ZTI11CFileSystem)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS11CFileSystem);
emit_32(_ZTI14CFileInterface);
emit_start(_ZTS11CFileSystem)
emit_string('11CFileSystem\x00');
emit_start(_ZL13s_file_stdout)
emit_32(_ZTV11CFileStdout+8);
emit_start(_ZTV7CFileLS)
emit_32(0);
emit_32(_ZTI7CFileLS);
emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
emit_32(_ZN7CFileLS5freadEPvjj__index__);
emit_32(_ZN7CFileLS6fwriteEPKvjj__index__);
emit_32(_ZN7CFileLS6fflushEv__index__);
emit_32(_ZN7CFileLS6fcloseEv__index__);
emit_32(_ZN7CFileLS5ftellEv__index__);
emit_32(_ZN7CFileLS4feofEv__index__);
emit_32(_ZN7CFileLS5fseekEli__index__);
emit_32(_ZN7CFileLS6ungetcEi__index__);
emit_start(_ZTI7CFileLS)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS7CFileLS);
emit_32(_ZTI14CFileInterface);
emit_start(_ZTS7CFileLS)
emit_string('7CFileLS\x00');
emit_start(_ZTV10CFileCloud)
emit_32(0);
emit_32(_ZTI10CFileCloud);
emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
emit_32(_ZN10CFileCloud5freadEPvjj__index__);
emit_32(_ZN10CFileCloud6fwriteEPKvjj__index__);
emit_32(_ZN10CFileCloud6fflushEv__index__);
emit_32(_ZN10CFileCloud6fcloseEv__index__);
emit_32(_ZN10CFileCloud5ftellEv__index__);
emit_32(_ZN10CFileCloud4feofEv__index__);
emit_32(_ZN10CFileCloud5fseekEli__index__);
emit_32(_ZN10CFileCloud6ungetcEi__index__);
emit_start(_ZTI10CFileCloud)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS10CFileCloud);
emit_32(_ZTI14CFileInterface);
emit_start(_ZTS10CFileCloud)
emit_string('10CFileCloud\x00');
emit_start(_ZTV11CFileStdout)
emit_32(0);
emit_32(_ZTI11CFileStdout);
emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
emit_32(_ZN11CFileStdout5freadEPvjj__index__);
emit_32(_ZN11CFileStdout6fwriteEPKvjj__index__);
emit_32(_ZN11CFileStdout6fflushEv__index__);
emit_32(_ZN11CFileStdout6fcloseEv__index__);
emit_32(_ZN11CFileStdout5ftellEv__index__);
emit_32(_ZN11CFileStdout4feofEv__index__);
emit_32(_ZN11CFileStdout5fseekEli__index__);
emit_32(_ZN11CFileStdout6ungetcEi__index__);
emit_start(_ZTI11CFileStdout)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTS11CFileStdout);
emit_32(_ZTI14CFileInterface);
emit_start(_ZTS11CFileStdout)
emit_string('11CFileStdout\x00');
emit_start(_2E_str31677)
emit_string('r+b\x00');
emit_start(_2E_str32678)
emit_string('w+b\x00');
emit_start(_2E_str33679)
emit_string('/ls/\x00');
emit_start(_2E_str34680)
emit_string('/cloud/\x00');
emit_start(_2E_str35681)
emit_string('trying to open file (%s) with write attributes (%s)\x0a\x00');
emit_start(_2E_str37683)
emit_string('/ls\x00');
emit_start(_2E_str38684)
emit_string('(null)\x00');
emit_start(_ZN12mandreel_b64L9b64_charsE)
emit_string('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x00');
emit_start(_ZN12mandreel_b64L11b64_indexesE)
emit_string('\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff\xff?456789:;<=\xff\xff\xff\xff\xff\xff\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff\xff\x1a\x1b\x1c\x1d\x1e\x1f !\x22#$%&\x27()*+,-./0123\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff');
emit_start(_ZL25s_mandreel_internal_width)
emit_32(1024);
emit_start(_ZL26s_mandreel_internal_height)
emit_32(768);
emit_start(_2E_str779)
emit_string('mandreel.fat\x00');
emit_start(_2E_str3782)
emit_string('asynctexture\x00');
emit_start(_2E_str4783)
emit_string('warning: asynctexture data not valid\x00');
emit_start(_2E_str5784)
emit_string('packtexture\x00');
emit_start(_2E_str6785)
emit_string('unpackedtextures\x00');
emit_start(_ZTVN10__cxxabiv120__si_class_type_infoE)
emit_32(0);
emit_32(_ZTIN10__cxxabiv120__si_class_type_infoE);
emit_32(_ZN10__cxxabiv120__si_class_type_infoD1Ev__index__);
emit_32(_ZN10__cxxabiv120__si_class_type_infoD0Ev__index__);
emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__);
emit_32(_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__);
emit_32(_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__);
emit_32(_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__);
emit_start(_ZTIN10__cxxabiv120__si_class_type_infoE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN10__cxxabiv120__si_class_type_infoE);
emit_32(_ZTIN10__cxxabiv117__class_type_infoE);
emit_start(_ZTSN10__cxxabiv120__si_class_type_infoE)
emit_string('N10__cxxabiv120__si_class_type_infoE\x00');
emit_start(_ZTIN10__cxxabiv117__class_type_infoE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN10__cxxabiv117__class_type_infoE);
emit_32(_ZTISt9type_info);
emit_start(_ZTSN10__cxxabiv117__class_type_infoE)
emit_string('N10__cxxabiv117__class_type_infoE\x00');
emit_start(_ZTVN10__cxxabiv117__class_type_infoE)
emit_32(0);
emit_32(_ZTIN10__cxxabiv117__class_type_infoE);
emit_32(_ZN10__cxxabiv117__class_type_infoD1Ev__index__);
emit_32(_ZN10__cxxabiv117__class_type_infoD0Ev__index__);
emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2___index__);
emit_start(_ZTVN10__cxxabiv121__vmi_class_type_infoE)
emit_32(0);
emit_32(_ZTIN10__cxxabiv121__vmi_class_type_infoE);
emit_32(_ZN10__cxxabiv121__vmi_class_type_infoD1Ev__index__);
emit_32(_ZN10__cxxabiv121__vmi_class_type_infoD0Ev__index__);
emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__);
emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__);
emit_32(_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__);
emit_32(_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__);
emit_32(_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__);
emit_start(_ZTIN10__cxxabiv121__vmi_class_type_infoE)
emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
emit_32(_ZTSN10__cxxabiv121__vmi_class_type_infoE);
emit_32(_ZTIN10__cxxabiv117__class_type_infoE);
emit_start(_ZTSN10__cxxabiv121__vmi_class_type_infoE)
emit_string('N10__cxxabiv121__vmi_class_type_infoE\x00');
emit_start(_2E_str221)
emit_string('g_bInit\x00');
emit_start(_2E_str1222)
emit_string('MandreelAudioLib.cpp\x00');
emit_start(_2E_str3224)
emit_string('Mandreel_Audio_GetSoundDuration warning: sound duration not found(%s)\x0a\x00');
emit_start(_2E_str4225)
emit_string('sandbox\x00');
emit_start(_2E_str12233)
emit_string('%s%s\x00');
emit_start(_2E_str22243)
emit_string('LoadSoundDuractions\x0a\x00');
emit_start(_2E_str24245)
emit_string('error: mandreel.fat file not found. Maybe the working folder is not correctly set???\x0a\x00');
emit_start(_2E_str26247)
emit_string('version\x00');
emit_start(_2E_str27248)
emit_string('1.4\x00');
emit_start(_2E_str28249)
emit_string('ERROR: mandreel.fat version number is (%s) instead of (%s)\x0a\x00');
emit_start(_2E_str29250)
emit_string('audiofile\x00');
emit_start(_2E_str30251)
emit_string('??\x00');
emit_start(_2E_str31252)
emit_string('warning: audiofile(%s) duration can\x27t be read, invalid mandreel.fat file?\x0a\x00');
emit_start(_2E_str32253)
emit_string('file\x00');
emit_start(_2E_str33254)
emit_string('dir\x00');
emit_start(_2E_str34255)
emit_string('!g_bInit\x00');
emit_start(_2E_str35256)
emit_string('Mandreel_Audio_Init()\x00');
emit_start(_ZL13s_fifo_errors)
emit_32(0);
emit_32(_ZL13s_fifo_errors+8);
emit_32(0);
emit_32(_ZL13s_fifo_errors+8);
emit_32(0);
emit_32(0);
emit_start(llvm_2E_global_ctors)
emit_32(65535);
emit_32(_GLOBAL__I_Landscape02Vtx__index__);
emit_32(65535);
emit_32(_GLOBAL__I__ZN7btClockC2Ev__index__);
emit_32(65535);
emit_32(_GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE__index__);
emit_32(65535);
emit_32(_GLOBAL__I__mandreel_create_tcp_socket__index__);
emit_32(65535);
emit_32(_GLOBAL__I__ZN5my_gl14glAttachShaderEjj__index__);
emit_start(llvm_2E_global_dtors)
emit_32(65535);
emit_32(_GLOBAL__D_Landscape02Vtx__index__);
emit_32(65535);
emit_32(_GLOBAL__D__Z6mymainiPPc__index__);
emit_32(65535);
emit_32(_GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj__index__);
emit_32(65535);
emit_32(_GLOBAL__D__ZN7btClockC2Ev__index__);
emit_32(65535);
emit_32(_GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE__index__);
emit_32(65535);
emit_32(_GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv__index__);
emit_32(65535);
emit_32(_GLOBAL__D__ZN5my_gl14glAttachShaderEjj__index__);
emit_start(llvm_2E_used)
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
mandreel_call_constructors(llvm_2E_global_ctors,5,stackPos);
}
var _GLOBAL__D_Landscape02Vtx__index__ = register_delegate(_GLOBAL__D_Landscape02Vtx);
var _GLOBAL__D__Z6mymainiPPc__index__ = register_delegate(_GLOBAL__D__Z6mymainiPPc);
var _GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj__index__ = register_delegate(_GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj);
var _GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE__index__ = register_delegate(_GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE);
var _GLOBAL__D__ZN5my_gl14glAttachShaderEjj__index__ = register_delegate(_GLOBAL__D__ZN5my_gl14glAttachShaderEjj);
var _GLOBAL__D__ZN7btClockC2Ev__index__ = register_delegate(_GLOBAL__D__ZN7btClockC2Ev);
var _GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv__index__ = register_delegate(_GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv);
var _GLOBAL__I_Landscape02Vtx__index__ = register_delegate(_GLOBAL__I_Landscape02Vtx);
var _GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE__index__ = register_delegate(_GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE);
var _GLOBAL__I__ZN5my_gl14glAttachShaderEjj__index__ = register_delegate(_GLOBAL__I__ZN5my_gl14glAttachShaderEjj);
var _GLOBAL__I__ZN7btClockC2Ev__index__ = register_delegate(_GLOBAL__I__ZN7btClockC2Ev);
var _GLOBAL__I__mandreel_create_tcp_socket__index__ = register_delegate(_GLOBAL__I__mandreel_create_tcp_socket);
var _Z31MandreelDefaultDebugMsgCallbackiPKc__index__ = register_delegate(_Z31MandreelDefaultDebugMsgCallbackiPKc);
var _ZN10CFileCloud4feofEv__index__ = register_delegate(_ZN10CFileCloud4feofEv);
var _ZN10CFileCloud5freadEPvjj__index__ = register_delegate(_ZN10CFileCloud5freadEPvjj);
var _ZN10CFileCloud5fseekEli__index__ = register_delegate(_ZN10CFileCloud5fseekEli);
var _ZN10CFileCloud5ftellEv__index__ = register_delegate(_ZN10CFileCloud5ftellEv);
var _ZN10CFileCloud6fcloseEv__index__ = register_delegate(_ZN10CFileCloud6fcloseEv);
var _ZN10CFileCloud6fflushEv__index__ = register_delegate(_ZN10CFileCloud6fflushEv);
var _ZN10CFileCloud6fwriteEPKvjj__index__ = register_delegate(_ZN10CFileCloud6fwriteEPKvjj);
var _ZN10CFileCloud6ungetcEi__index__ = register_delegate(_ZN10CFileCloud6ungetcEi);
var _ZN10__cxxabiv117__class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv117__class_type_infoD0Ev);
var _ZN10__cxxabiv117__class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv117__class_type_infoD1Ev);
var _ZN10__cxxabiv120__si_class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv120__si_class_type_infoD0Ev);
var _ZN10__cxxabiv120__si_class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv120__si_class_type_infoD1Ev);
var _ZN10__cxxabiv121__vmi_class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv121__vmi_class_type_infoD0Ev);
var _ZN10__cxxabiv121__vmi_class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv121__vmi_class_type_infoD1Ev);
var _ZN10btBoxShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN10btBoxShape15setLocalScalingERK9btVector3);
var _ZN10btBoxShape9setMarginEf__index__ = register_delegate(_ZN10btBoxShape9setMarginEf);
var _ZN10btBoxShapeD0Ev__index__ = register_delegate(_ZN10btBoxShapeD0Ev);
var _ZN10btBoxShapeD1Ev__index__ = register_delegate(_ZN10btBoxShapeD1Ev);
var _ZN11CFileStdout4feofEv__index__ = register_delegate(_ZN11CFileStdout4feofEv);
var _ZN11CFileStdout5freadEPvjj__index__ = register_delegate(_ZN11CFileStdout5freadEPvjj);
var _ZN11CFileStdout5fseekEli__index__ = register_delegate(_ZN11CFileStdout5fseekEli);
var _ZN11CFileStdout5ftellEv__index__ = register_delegate(_ZN11CFileStdout5ftellEv);
var _ZN11CFileStdout6fcloseEv__index__ = register_delegate(_ZN11CFileStdout6fcloseEv);
var _ZN11CFileStdout6fflushEv__index__ = register_delegate(_ZN11CFileStdout6fflushEv);
var _ZN11CFileStdout6fwriteEPKvjj__index__ = register_delegate(_ZN11CFileStdout6fwriteEPKvjj);
var _ZN11CFileStdout6ungetcEi__index__ = register_delegate(_ZN11CFileStdout6ungetcEi);
var _ZN11CFileSystem4feofEv__index__ = register_delegate(_ZN11CFileSystem4feofEv);
var _ZN11CFileSystem5freadEPvjj__index__ = register_delegate(_ZN11CFileSystem5freadEPvjj);
var _ZN11CFileSystem5fseekEli__index__ = register_delegate(_ZN11CFileSystem5fseekEli);
var _ZN11CFileSystem5ftellEv__index__ = register_delegate(_ZN11CFileSystem5ftellEv);
var _ZN11CFileSystem6fcloseEv__index__ = register_delegate(_ZN11CFileSystem6fcloseEv);
var _ZN11CFileSystem6fflushEv__index__ = register_delegate(_ZN11CFileSystem6fflushEv);
var _ZN11CFileSystem6fwriteEPKvjj__index__ = register_delegate(_ZN11CFileSystem6fwriteEPKvjj);
var _ZN11CFileSystem6ungetcEi__index__ = register_delegate(_ZN11CFileSystem6ungetcEi);
var _ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject__index__ = register_delegate(_ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject);
var _ZN11btRigidBodyD0Ev__index__ = register_delegate(_ZN11btRigidBodyD0Ev);
var _ZN11btRigidBodyD1Ev__index__ = register_delegate(_ZN11btRigidBodyD1Ev);
var _ZN12btAxisSweep3D0Ev__index__ = register_delegate(_ZN12btAxisSweep3D0Ev);
var _ZN12btAxisSweep3D1Ev__index__ = register_delegate(_ZN12btAxisSweep3D1Ev);
var _ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform__index__ = register_delegate(_ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform);
var _ZN12btConvexCast10CastResult9DebugDrawEf__index__ = register_delegate(_ZN12btConvexCast10CastResult9DebugDrawEf);
var _ZN12btConvexCast10CastResultD0Ev__index__ = register_delegate(_ZN12btConvexCast10CastResultD0Ev);
var _ZN12btConvexCast10CastResultD1Ev__index__ = register_delegate(_ZN12btConvexCast10CastResultD1Ev);
var _ZN12btConvexCastD0Ev__index__ = register_delegate(_ZN12btConvexCastD0Ev);
var _ZN12btConvexCastD1Ev__index__ = register_delegate(_ZN12btConvexCastD1Ev);
var _ZN12btDispatcherD0Ev__index__ = register_delegate(_ZN12btDispatcherD0Ev);
var _ZN12btDispatcherD1Ev__index__ = register_delegate(_ZN12btDispatcherD1Ev);
var _ZN13BenchmarkDemo15displayCallbackEv__index__ = register_delegate(_ZN13BenchmarkDemo15displayCallbackEv);
var _ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__ = register_delegate(_ZN13BenchmarkDemo20clientMoveAndDisplayEv);
var _ZN13BenchmarkDemoD0Ev__index__ = register_delegate(_ZN13BenchmarkDemoD0Ev);
var _ZN13BenchmarkDemoD1Ev__index__ = register_delegate(_ZN13BenchmarkDemoD1Ev);
var _ZN13btConvexShapeD0Ev__index__ = register_delegate(_ZN13btConvexShapeD0Ev);
var _ZN13btConvexShapeD1Ev__index__ = register_delegate(_ZN13btConvexShapeD1Ev);
var _ZN13btSphereShape9setMarginEf__index__ = register_delegate(_ZN13btSphereShape9setMarginEf);
var _ZN13btSphereShapeD0Ev__index__ = register_delegate(_ZN13btSphereShapeD0Ev);
var _ZN13btSphereShapeD1Ev__index__ = register_delegate(_ZN13btSphereShapeD1Ev);
var _ZN14BenchmarkDemo4D0Ev__index__ = register_delegate(_ZN14BenchmarkDemo4D0Ev);
var _ZN14BenchmarkDemo4D1Ev__index__ = register_delegate(_ZN14BenchmarkDemo4D1Ev);
var _ZN14btCapsuleShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN14btCapsuleShape15setLocalScalingERK9btVector3);
var _ZN14btCapsuleShape9setMarginEf__index__ = register_delegate(_ZN14btCapsuleShape9setMarginEf);
var _ZN14btCapsuleShapeD0Ev__index__ = register_delegate(_ZN14btCapsuleShapeD0Ev);
var _ZN14btCapsuleShapeD1Ev__index__ = register_delegate(_ZN14btCapsuleShapeD1Ev);
var _ZN14btConcaveShape9setMarginEf__index__ = register_delegate(_ZN14btConcaveShape9setMarginEf);
var _ZN14btConcaveShapeD0Ev__index__ = register_delegate(_ZN14btConcaveShapeD0Ev);
var _ZN14btConcaveShapeD1Ev__index__ = register_delegate(_ZN14btConcaveShapeD1Ev);
var _ZN14btOptimizedBvhD0Ev__index__ = register_delegate(_ZN14btOptimizedBvhD0Ev);
var _ZN14btOptimizedBvhD1Ev__index__ = register_delegate(_ZN14btOptimizedBvhD1Ev);
var _ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__ = register_delegate(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData);
var _ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__ = register_delegate(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData);
var _ZN14btQuantizedBvhD0Ev__index__ = register_delegate(_ZN14btQuantizedBvhD0Ev);
var _ZN14btQuantizedBvhD1Ev__index__ = register_delegate(_ZN14btQuantizedBvhD1Ev);
var _ZN15DemoApplication16getDynamicsWorldEv__index__ = register_delegate(_ZN15DemoApplication16getDynamicsWorldEv);
var _ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__ = register_delegate(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape);
var _ZN15DemoApplication6myinitEv__index__ = register_delegate(_ZN15DemoApplication6myinitEv);
var _ZN15btDynamicsWorld10addVehicleEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld10addVehicleEP17btActionInterface);
var _ZN15btDynamicsWorld12addCharacterEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld12addCharacterEP17btActionInterface);
var _ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb__index__ = register_delegate(_ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb);
var _ZN15btDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZN15btDynamicsWorld13getConstraintEi);
var _ZN15btDynamicsWorld13removeVehicleEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld13removeVehicleEP17btActionInterface);
var _ZN15btDynamicsWorld15removeCharacterEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld15removeCharacterEP17btActionInterface);
var _ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint__index__ = register_delegate(_ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint);
var _ZN15btDynamicsWorldD0Ev__index__ = register_delegate(_ZN15btDynamicsWorldD0Ev);
var _ZN15btDynamicsWorldD1Ev__index__ = register_delegate(_ZN15btDynamicsWorldD1Ev);
var _ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE);
var _ZN15btGjkConvexCastD0Ev__index__ = register_delegate(_ZN15btGjkConvexCastD0Ev);
var _ZN15btGjkConvexCastD1Ev__index__ = register_delegate(_ZN15btGjkConvexCastD1Ev);
var _ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1_);
var _ZN15btNullPairCache18hasDeferredRemovalEv__index__ = register_delegate(_ZN15btNullPairCache18hasDeferredRemovalEv);
var _ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher);
var _ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher);
var _ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher);
var _ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher);
var _ZN15btNullPairCache23getOverlappingPairArrayEv__index__ = register_delegate(_ZN15btNullPairCache23getOverlappingPairArrayEv);
var _ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__ = register_delegate(_ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback);
var _ZN15btNullPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZN15btNullPairCache26getOverlappingPairArrayPtrEv);
var _ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher);
var _ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__ = register_delegate(_ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback);
var _ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher);
var _ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1_);
var _ZN15btNullPairCacheD0Ev__index__ = register_delegate(_ZN15btNullPairCacheD0Ev);
var _ZN15btNullPairCacheD1Ev__index__ = register_delegate(_ZN15btNullPairCacheD1Ev);
var _ZN15btTriangleShapeD0Ev__index__ = register_delegate(_ZN15btTriangleShapeD0Ev);
var _ZN15btTriangleShapeD1Ev__index__ = register_delegate(_ZN15btTriangleShapeD1Ev);
var _ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb);
var _ZN16btBoxBoxDetectorD0Ev__index__ = register_delegate(_ZN16btBoxBoxDetectorD0Ev);
var _ZN16btBoxBoxDetectorD1Ev__index__ = register_delegate(_ZN16btBoxBoxDetectorD1Ev);
var _ZN16btCollisionWorld11updateAabbsEv__index__ = register_delegate(_ZN16btCollisionWorld11updateAabbsEv);
var _ZN16btCollisionWorld14debugDrawWorldEv__index__ = register_delegate(_ZN16btCollisionWorld14debugDrawWorldEv);
var _ZN16btCollisionWorld14getDebugDrawerEv__index__ = register_delegate(_ZN16btCollisionWorld14getDebugDrawerEv);
var _ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__ = register_delegate(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw);
var _ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__ = register_delegate(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3);
var _ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss__index__ = register_delegate(_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss);
var _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject__index__ = register_delegate(_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject);
var _ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb);
var _ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev);
var _ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev);
var _ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb);
var _ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev);
var _ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev);
var _ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__ = register_delegate(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv);
var _ZN16btCollisionWorld9serializeEP12btSerializer__index__ = register_delegate(_ZN16btCollisionWorld9serializeEP12btSerializer);
var _ZN16btCollisionWorldD0Ev__index__ = register_delegate(_ZN16btCollisionWorldD0Ev);
var _ZN16btCollisionWorldD1Ev__index__ = register_delegate(_ZN16btCollisionWorldD1Ev);
var _ZN16btDbvtBroadphase10printStatsEv__index__ = register_delegate(_ZN16btDbvtBroadphase10printStatsEv);
var _ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3___index__ = register_delegate(_ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_);
var _ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher);
var _ZN16btDbvtBroadphase23getOverlappingPairCacheEv__index__ = register_delegate(_ZN16btDbvtBroadphase23getOverlappingPairCacheEv);
var _ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher);
var _ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2___index__ = register_delegate(_ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_);
var _ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher);
var _ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback__index__ = register_delegate(_ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback);
var _ZN16btDbvtBroadphase9resetPoolEP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase9resetPoolEP12btDispatcher);
var _ZN16btDbvtBroadphaseD0Ev__index__ = register_delegate(_ZN16btDbvtBroadphaseD0Ev);
var _ZN16btDbvtBroadphaseD1Ev__index__ = register_delegate(_ZN16btDbvtBroadphaseD1Ev);
var _ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN16btEmptyAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFuncD0Ev);
var _ZN16btEmptyAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFuncD1Ev);
var _ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
var _ZN16btEmptyAlgorithmD0Ev__index__ = register_delegate(_ZN16btEmptyAlgorithmD0Ev);
var _ZN16btEmptyAlgorithmD1Ev__index__ = register_delegate(_ZN16btEmptyAlgorithmD1Ev);
var _ZN16btManifoldResult15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN16btManifoldResult15addContactPointERK9btVector3S2_f);
var _ZN16btManifoldResult20setShapeIdentifiersAEii__index__ = register_delegate(_ZN16btManifoldResult20setShapeIdentifiersAEii);
var _ZN16btManifoldResult20setShapeIdentifiersBEii__index__ = register_delegate(_ZN16btManifoldResult20setShapeIdentifiersBEii);
var _ZN16btManifoldResultD0Ev__index__ = register_delegate(_ZN16btManifoldResultD0Ev);
var _ZN16btManifoldResultD1Ev__index__ = register_delegate(_ZN16btManifoldResultD1Ev);
var _ZN16btPointCollector15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN16btPointCollector15addContactPointERK9btVector3S2_f);
var _ZN16btPointCollector20setShapeIdentifiersAEii__index__ = register_delegate(_ZN16btPointCollector20setShapeIdentifiersAEii);
var _ZN16btPointCollector20setShapeIdentifiersBEii__index__ = register_delegate(_ZN16btPointCollector20setShapeIdentifiersBEii);
var _ZN16btPointCollectorD0Ev__index__ = register_delegate(_ZN16btPointCollectorD0Ev);
var _ZN16btPointCollectorD1Ev__index__ = register_delegate(_ZN16btPointCollectorD1Ev);
var _ZN17DebugDrawcallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN17DebugDrawcallback15processTriangleEP9btVector3ii);
var _ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__ = register_delegate(_ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii);
var _ZN17DebugDrawcallbackD0Ev__index__ = register_delegate(_ZN17DebugDrawcallbackD0Ev);
var _ZN17DebugDrawcallbackD1Ev__index__ = register_delegate(_ZN17DebugDrawcallbackD1Ev);
var _ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__ = register_delegate(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape);
var _ZN17btCollisionObject24checkCollideWithOverrideEPS___index__ = register_delegate(_ZN17btCollisionObject24checkCollideWithOverrideEPS_);
var _ZN17btCollisionObjectD0Ev__index__ = register_delegate(_ZN17btCollisionObjectD0Ev);
var _ZN17btCollisionObjectD1Ev__index__ = register_delegate(_ZN17btCollisionObjectD1Ev);
var _ZN17btConvexHullShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN17btConvexHullShape15setLocalScalingERK9btVector3);
var _ZN17btConvexHullShapeD0Ev__index__ = register_delegate(_ZN17btConvexHullShapeD0Ev);
var _ZN17btConvexHullShapeD1Ev__index__ = register_delegate(_ZN17btConvexHullShapeD1Ev);
var _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb);
var _ZN17btGjkPairDetectorD0Ev__index__ = register_delegate(_ZN17btGjkPairDetectorD0Ev);
var _ZN17btGjkPairDetectorD1Ev__index__ = register_delegate(_ZN17btGjkPairDetectorD1Ev);
var _ZN17btHingeConstraint13buildJacobianEv__index__ = register_delegate(_ZN17btHingeConstraint13buildJacobianEv);
var _ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__ = register_delegate(_ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E);
var _ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__ = register_delegate(_ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E);
var _ZN17btHingeConstraint8setParamEifi__index__ = register_delegate(_ZN17btHingeConstraint8setParamEifi);
var _ZN17btHingeConstraintD0Ev__index__ = register_delegate(_ZN17btHingeConstraintD0Ev);
var _ZN17btHingeConstraintD1Ev__index__ = register_delegate(_ZN17btHingeConstraintD1Ev);
var _ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__ = register_delegate(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif);
var _ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__ = register_delegate(_ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f);
var _ZN18btConstraintSolver12prepareSolveEii__index__ = register_delegate(_ZN18btConstraintSolver12prepareSolveEii);
var _ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
var _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode);
var _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2___index__ = register_delegate(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_);
var _ZN18btDbvtTreeColliderD0Ev__index__ = register_delegate(_ZN18btDbvtTreeColliderD0Ev);
var _ZN18btDbvtTreeColliderD1Ev__index__ = register_delegate(_ZN18btDbvtTreeColliderD1Ev);
var _ZN18btTriangleCallbackD0Ev__index__ = register_delegate(_ZN18btTriangleCallbackD0Ev);
var _ZN18btTriangleCallbackD1Ev__index__ = register_delegate(_ZN18btTriangleCallbackD1Ev);
var _ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode);
var _ZN19BroadphaseRayTesterD0Ev__index__ = register_delegate(_ZN19BroadphaseRayTesterD0Ev);
var _ZN19BroadphaseRayTesterD1Ev__index__ = register_delegate(_ZN19BroadphaseRayTesterD1Ev);
var _ZN19btSingleRayCallback7processEPK17btBroadphaseProxy__index__ = register_delegate(_ZN19btSingleRayCallback7processEPK17btBroadphaseProxy);
var _ZN19btSingleRayCallbackD0Ev__index__ = register_delegate(_ZN19btSingleRayCallbackD0Ev);
var _ZN19btSingleRayCallbackD1Ev__index__ = register_delegate(_ZN19btSingleRayCallbackD1Ev);
var _ZN19btTriangleMeshShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN19btTriangleMeshShape15setLocalScalingERK9btVector3);
var _ZN19btTriangleMeshShapeD0Ev__index__ = register_delegate(_ZN19btTriangleMeshShapeD0Ev);
var _ZN19btTriangleMeshShapeD1Ev__index__ = register_delegate(_ZN19btTriangleMeshShapeD1Ev);
var _ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode);
var _ZN20BroadphaseAabbTesterD0Ev__index__ = register_delegate(_ZN20BroadphaseAabbTesterD0Ev);
var _ZN20BroadphaseAabbTesterD1Ev__index__ = register_delegate(_ZN20BroadphaseAabbTesterD1Ev);
var _ZN20btAxisSweep3InternalItE10printStatsEv__index__ = register_delegate(_ZN20btAxisSweep3InternalItE10printStatsEv);
var _ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__ = register_delegate(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4_);
var _ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher);
var _ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__ = register_delegate(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv);
var _ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher);
var _ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__ = register_delegate(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3_);
var _ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher);
var _ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__ = register_delegate(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback);
var _ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher);
var _ZN20btAxisSweep3InternalItED0Ev__index__ = register_delegate(_ZN20btAxisSweep3InternalItED0Ev);
var _ZN20btAxisSweep3InternalItED1Ev__index__ = register_delegate(_ZN20btAxisSweep3InternalItED1Ev);
var _ZN20btCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN20btCollisionAlgorithmD0Ev);
var _ZN20btCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN20btCollisionAlgorithmD1Ev);
var _ZN20btDefaultMotionState17setWorldTransformERK11btTransform__index__ = register_delegate(_ZN20btDefaultMotionState17setWorldTransformERK11btTransform);
var _ZN20btDefaultMotionStateD0Ev__index__ = register_delegate(_ZN20btDefaultMotionStateD0Ev);
var _ZN20btDefaultMotionStateD1Ev__index__ = register_delegate(_ZN20btDefaultMotionStateD1Ev);
var _ZN21SupportVertexCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN21SupportVertexCallback15processTriangleEP9btVector3ii);
var _ZN21SupportVertexCallbackD0Ev__index__ = register_delegate(_ZN21SupportVertexCallbackD0Ev);
var _ZN21SupportVertexCallbackD1Ev__index__ = register_delegate(_ZN21SupportVertexCallbackD1Ev);
var _ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold);
var _ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold);
var _ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1___index__ = register_delegate(_ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_);
var _ZN21btCollisionDispatcher14getNewManifoldEPvS0___index__ = register_delegate(_ZN21btCollisionDispatcher14getNewManifoldEPvS0_);
var _ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1___index__ = register_delegate(_ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_);
var _ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold);
var _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo__index__ = register_delegate(_ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo);
var _ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv__index__ = register_delegate(_ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv);
var _ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher__index__ = register_delegate(_ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher);
var _ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi__index__ = register_delegate(_ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi);
var _ZN21btCollisionDispatcher26getInternalManifoldPointerEv__index__ = register_delegate(_ZN21btCollisionDispatcher26getInternalManifoldPointerEv);
var _ZN21btCollisionDispatcher26getManifoldByIndexInternalEi__index__ = register_delegate(_ZN21btCollisionDispatcher26getManifoldByIndexInternalEi);
var _ZN21btCollisionDispatcherD0Ev__index__ = register_delegate(_ZN21btCollisionDispatcherD0Ev);
var _ZN21btCollisionDispatcherD1Ev__index__ = register_delegate(_ZN21btCollisionDispatcherD1Ev);
var _ZN21btConeTwistConstraint13buildJacobianEv__index__ = register_delegate(_ZN21btConeTwistConstraint13buildJacobianEv);
var _ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__ = register_delegate(_ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f);
var _ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__ = register_delegate(_ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E);
var _ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__ = register_delegate(_ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E);
var _ZN21btConeTwistConstraint8setParamEifi__index__ = register_delegate(_ZN21btConeTwistConstraint8setParamEifi);
var _ZN21btConeTwistConstraintD0Ev__index__ = register_delegate(_ZN21btConeTwistConstraintD0Ev);
var _ZN21btConeTwistConstraintD1Ev__index__ = register_delegate(_ZN21btConeTwistConstraintD1Ev);
var _ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3);
var _ZN21btConvexInternalShape9setMarginEf__index__ = register_delegate(_ZN21btConvexInternalShape9setMarginEf);
var _ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy__index__ = register_delegate(_ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy);
var _ZN21btSingleSweepCallbackD0Ev__index__ = register_delegate(_ZN21btSingleSweepCallbackD0Ev);
var _ZN21btSingleSweepCallbackD1Ev__index__ = register_delegate(_ZN21btSingleSweepCallbackD1Ev);
var _ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb);
var _ZN22SphereTriangleDetectorD0Ev__index__ = register_delegate(_ZN22SphereTriangleDetectorD0Ev);
var _ZN22SphereTriangleDetectorD1Ev__index__ = register_delegate(_ZN22SphereTriangleDetectorD1Ev);
var _ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3);
var _ZN22btBvhTriangleMeshShapeD0Ev__index__ = register_delegate(_ZN22btBvhTriangleMeshShapeD0Ev);
var _ZN22btBvhTriangleMeshShapeD1Ev__index__ = register_delegate(_ZN22btBvhTriangleMeshShapeD1Ev);
var _ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode);
var _ZN22btCompoundLeafCallbackD0Ev__index__ = register_delegate(_ZN22btCompoundLeafCallbackD0Ev);
var _ZN22btCompoundLeafCallbackD1Ev__index__ = register_delegate(_ZN22btCompoundLeafCallbackD1Ev);
var _ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE);
var _ZN22btSubsimplexConvexCastD0Ev__index__ = register_delegate(_ZN22btSubsimplexConvexCastD0Ev);
var _ZN22btSubsimplexConvexCastD1Ev__index__ = register_delegate(_ZN22btSubsimplexConvexCastD1Ev);
var _ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair);
var _ZN23btCollisionPairCallbackD0Ev__index__ = register_delegate(_ZN23btCollisionPairCallbackD0Ev);
var _ZN23btCollisionPairCallbackD1Ev__index__ = register_delegate(_ZN23btCollisionPairCallbackD1Ev);
var _ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN23btConvexConvexAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFuncD0Ev);
var _ZN23btConvexConvexAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFuncD1Ev);
var _ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
var _ZN23btConvexConvexAlgorithmD0Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithmD0Ev);
var _ZN23btConvexConvexAlgorithmD1Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithmD1Ev);
var _ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface);
var _ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3);
var _ZN23btDiscreteDynamicsWorld11clearForcesEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld11clearForcesEv);
var _ZN23btDiscreteDynamicsWorld11setNumTasksEi__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld11setNumTasksEi);
var _ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface);
var _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody);
var _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss);
var _ZN23btDiscreteDynamicsWorld12applyGravityEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12applyGravityEv);
var _ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface);
var _ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb);
var _ZN23btDiscreteDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13getConstraintEi);
var _ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface);
var _ZN23btDiscreteDynamicsWorld14debugDrawWorldEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14debugDrawWorldEv);
var _ZN23btDiscreteDynamicsWorld14stepSimulationEfif__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14stepSimulationEfif);
var _ZN23btDiscreteDynamicsWorld14updateVehiclesEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14updateVehiclesEf);
var _ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface);
var _ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody);
var _ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint);
var _ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo);
var _ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss);
var _ZN23btDiscreteDynamicsWorld18saveKinematicStateEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld18saveKinematicStateEf);
var _ZN23btDiscreteDynamicsWorld19getConstraintSolverEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19getConstraintSolverEv);
var _ZN23btDiscreteDynamicsWorld19integrateTransformsEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19integrateTransformsEf);
var _ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver);
var _ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject);
var _ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv);
var _ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf);
var _ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv);
var _ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf);
var _ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface);
var _ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer);
var _ZN23btDiscreteDynamicsWorldD0Ev__index__ = register_delegate(_ZN23btDiscreteDynamicsWorldD0Ev);
var _ZN23btDiscreteDynamicsWorldD1Ev__index__ = register_delegate(_ZN23btDiscreteDynamicsWorldD1Ev);
var _ZN23btStridingMeshInterfaceD0Ev__index__ = register_delegate(_ZN23btStridingMeshInterfaceD0Ev);
var _ZN23btStridingMeshInterfaceD1Ev__index__ = register_delegate(_ZN23btStridingMeshInterfaceD1Ev);
var _ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii);
var _ZN24btConvexTriangleCallbackD0Ev__index__ = register_delegate(_ZN24btConvexTriangleCallbackD0Ev);
var _ZN24btConvexTriangleCallbackD1Ev__index__ = register_delegate(_ZN24btConvexTriangleCallbackD1Ev);
var _ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f);
var _ZN24btPerturbedContactResultD0Ev__index__ = register_delegate(_ZN24btPerturbedContactResultD0Ev);
var _ZN24btPerturbedContactResultD1Ev__index__ = register_delegate(_ZN24btPerturbedContactResultD1Ev);
var _ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher__index__ = register_delegate(_ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher);
var _ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld__index__ = register_delegate(_ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld);
var _ZN25btSimulationIslandManagerD0Ev__index__ = register_delegate(_ZN25btSimulationIslandManagerD0Ev);
var _ZN25btSimulationIslandManagerD1Ev__index__ = register_delegate(_ZN25btSimulationIslandManagerD1Ev);
var _ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii);
var _ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev);
var _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev);
var _ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
var _ZN26btBoxBoxCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithmD0Ev);
var _ZN26btBoxBoxCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithmD1Ev);
var _ZN26btTriangleIndexVertexArray16unLockVertexBaseEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray16unLockVertexBaseEi);
var _ZN26btTriangleIndexVertexArray18preallocateIndicesEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray18preallocateIndicesEi);
var _ZN26btTriangleIndexVertexArray19preallocateVerticesEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray19preallocateVerticesEi);
var _ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i__index__ = register_delegate(_ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i);
var _ZN26btTriangleIndexVertexArrayD0Ev__index__ = register_delegate(_ZN26btTriangleIndexVertexArrayD0Ev);
var _ZN26btTriangleIndexVertexArrayD1Ev__index__ = register_delegate(_ZN26btTriangleIndexVertexArrayD1Ev);
var _ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE);
var _ZN27btContinuousConvexCollisionD0Ev__index__ = register_delegate(_ZN27btContinuousConvexCollisionD0Ev);
var _ZN27btContinuousConvexCollisionD1Ev__index__ = register_delegate(_ZN27btContinuousConvexCollisionD1Ev);
var _ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev);
var _ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev);
var _ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev);
var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev);
var _ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
var _ZN28btCompoundCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithmD0Ev);
var _ZN28btCompoundCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithmD1Ev);
var _ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_);
var _ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv);
var _ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher);
var _ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher);
var _ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher);
var _ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher);
var _ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv);
var _ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__ = register_delegate(_ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback);
var _ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv);
var _ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher);
var _ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__ = register_delegate(_ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback);
var _ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher);
var _ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_);
var _ZN28btHashedOverlappingPairCacheD0Ev__index__ = register_delegate(_ZN28btHashedOverlappingPairCacheD0Ev);
var _ZN28btHashedOverlappingPairCacheD1Ev__index__ = register_delegate(_ZN28btHashedOverlappingPairCacheD1Ev);
var _ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii);
var _ZN28btTriangleConvexcastCallbackD0Ev__index__ = register_delegate(_ZN28btTriangleConvexcastCallbackD0Ev);
var _ZN28btTriangleConvexcastCallbackD1Ev__index__ = register_delegate(_ZN28btTriangleConvexcastCallbackD1Ev);
var _ZN30btActivatingCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN30btActivatingCollisionAlgorithmD0Ev);
var _ZN30btActivatingCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN30btActivatingCollisionAlgorithmD1Ev);
var _ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc);
var _ZN30btGjkEpaPenetrationDepthSolverD0Ev__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolverD0Ev);
var _ZN30btGjkEpaPenetrationDepthSolverD1Ev__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolverD1Ev);
var _ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev);
var _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev);
var _ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
var _ZN31btConvexPlaneCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithmD0Ev);
var _ZN31btConvexPlaneCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithmD1Ev);
var _ZN31btDefaultCollisionConfiguration16getSimplexSolverEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration16getSimplexSolverEv);
var _ZN31btDefaultCollisionConfiguration17getStackAllocatorEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration17getStackAllocatorEv);
var _ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv);
var _ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv);
var _ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii);
var _ZN31btDefaultCollisionConfigurationD0Ev__index__ = register_delegate(_ZN31btDefaultCollisionConfigurationD0Ev);
var _ZN31btDefaultCollisionConfigurationD1Ev__index__ = register_delegate(_ZN31btDefaultCollisionConfigurationD1Ev);
var _ZN31btInternalTriangleIndexCallbackD0Ev__index__ = register_delegate(_ZN31btInternalTriangleIndexCallbackD0Ev);
var _ZN31btInternalTriangleIndexCallbackD1Ev__index__ = register_delegate(_ZN31btInternalTriangleIndexCallbackD1Ev);
var _ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev);
var _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev);
var _ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
var _ZN32btSphereSphereCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithmD0Ev);
var _ZN32btSphereSphereCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithmD1Ev);
var _ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev);
var _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev);
var _ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev);
var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev);
var _ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
var _ZN33btConvexConcaveCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithmD0Ev);
var _ZN33btConvexConcaveCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithmD1Ev);
var _ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb);
var _ZN34btClosestNotMeConvexResultCallbackD0Ev__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallbackD0Ev);
var _ZN34btClosestNotMeConvexResultCallbackD1Ev__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallbackD1Ev);
var _ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
var _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev);
var _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev);
var _ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
var _ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
var _ZN34btSphereTriangleCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithmD0Ev);
var _ZN34btSphereTriangleCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithmD1Ev);
var _ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher);
var _ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
var _ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
var _ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
var _ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
var _ZN35btSequentialImpulseConstraintSolver5resetEv__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver5resetEv);
var _ZN35btSequentialImpulseConstraintSolverD0Ev__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolverD0Ev);
var _ZN35btSequentialImpulseConstraintSolverD1Ev__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolverD1Ev);
var _ZN4__rw10__rw_facetD0Ev__index__ = register_delegate(_ZN4__rw10__rw_facetD0Ev);
var _ZN4__rw10__rw_facetD1Ev__index__ = register_delegate(_ZN4__rw10__rw_facetD1Ev);
var _ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__ = register_delegate(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode);
var _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__ = register_delegate(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_);
var _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__ = register_delegate(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef);
var _ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__ = register_delegate(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode);
var _ZN7CFileLS4feofEv__index__ = register_delegate(_ZN7CFileLS4feofEv);
var _ZN7CFileLS5freadEPvjj__index__ = register_delegate(_ZN7CFileLS5freadEPvjj);
var _ZN7CFileLS5fseekEli__index__ = register_delegate(_ZN7CFileLS5fseekEli);
var _ZN7CFileLS5ftellEv__index__ = register_delegate(_ZN7CFileLS5ftellEv);
var _ZN7CFileLS6fcloseEv__index__ = register_delegate(_ZN7CFileLS6fcloseEv);
var _ZN7CFileLS6fflushEv__index__ = register_delegate(_ZN7CFileLS6fflushEv);
var _ZN7CFileLS6fwriteEPKvjj__index__ = register_delegate(_ZN7CFileLS6fwriteEPKvjj);
var _ZN7CFileLS6ungetcEi__index__ = register_delegate(_ZN7CFileLS6ungetcEi);
var _ZN7RagDollD0Ev__index__ = register_delegate(_ZN7RagDollD0Ev);
var _ZN7RagDollD1Ev__index__ = register_delegate(_ZN7RagDollD1Ev);
var _ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj);
var _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE);
var _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv);
var _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE);
var _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2___index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_);
var _ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE);
var _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE);
var _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_);
var _ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE);
var _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE);
var _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_);
var _ZNK10btBoxShape11getNumEdgesEv__index__ = register_delegate(_ZNK10btBoxShape11getNumEdgesEv);
var _ZNK10btBoxShape12getNumPlanesEv__index__ = register_delegate(_ZNK10btBoxShape12getNumPlanesEv);
var _ZNK10btBoxShape14getNumVerticesEv__index__ = register_delegate(_ZNK10btBoxShape14getNumVerticesEv);
var _ZNK10btBoxShape16getPlaneEquationER9btVector4i__index__ = register_delegate(_ZNK10btBoxShape16getPlaneEquationER9btVector4i);
var _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3);
var _ZNK10btBoxShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK10btBoxShape24localGetSupportingVertexERK9btVector3);
var _ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3);
var _ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv);
var _ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3);
var _ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
var _ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_);
var _ZNK10btBoxShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK10btBoxShape7getEdgeEiR9btVector3S1_);
var _ZNK10btBoxShape7getNameEv__index__ = register_delegate(_ZNK10btBoxShape7getNameEv);
var _ZNK10btBoxShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK10btBoxShape8getPlaneER9btVector3S1_i);
var _ZNK10btBoxShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK10btBoxShape8isInsideERK9btVector3f);
var _ZNK10btBoxShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK10btBoxShape9getVertexEiR9btVector3);
var _ZNK11CFileSystem12IsFileSystemEv__index__ = register_delegate(_ZNK11CFileSystem12IsFileSystemEv);
var _ZNK11btRigidBody21serializeSingleObjectEP12btSerializer__index__ = register_delegate(_ZNK11btRigidBody21serializeSingleObjectEP12btSerializer);
var _ZNK11btRigidBody28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK11btRigidBody28calculateSerializeBufferSizeEv);
var _ZNK11btRigidBody9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK11btRigidBody9serializeEPvP12btSerializer);
var _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3__index__ = register_delegate(_ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3);
var _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3__index__ = register_delegate(_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3);
var _ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3);
var _ZNK13btSphereShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK13btSphereShape24localGetSupportingVertexERK9btVector3);
var _ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3);
var _ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
var _ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_);
var _ZNK13btSphereShape7getNameEv__index__ = register_delegate(_ZNK13btSphereShape7getNameEv);
var _ZNK13btSphereShape9getMarginEv__index__ = register_delegate(_ZNK13btSphereShape9getMarginEv);
var _ZNK14CFileInterface12IsFileSystemEv__index__ = register_delegate(_ZNK14CFileInterface12IsFileSystemEv);
var _ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3);
var _ZNK14btCapsuleShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK14btCapsuleShape28calculateSerializeBufferSizeEv);
var _ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3);
var _ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
var _ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4_);
var _ZNK14btCapsuleShape7getNameEv__index__ = register_delegate(_ZNK14btCapsuleShape7getNameEv);
var _ZNK14btCapsuleShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK14btCapsuleShape9serializeEPvP12btSerializer);
var _ZNK14btConcaveShape9getMarginEv__index__ = register_delegate(_ZNK14btConcaveShape9getMarginEv);
var _ZNK14btOptimizedBvh16serializeInPlaceEPvjb__index__ = register_delegate(_ZNK14btOptimizedBvh16serializeInPlaceEPvjb);
var _ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__ = register_delegate(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv);
var _ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer);
var _ZNK14btQuantizedBvh9serializeEPvjb__index__ = register_delegate(_ZNK14btQuantizedBvh9serializeEPvjb);
var _ZNK15btDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZNK15btDynamicsWorld13getConstraintEi);
var _ZNK15btDynamicsWorld17getNumConstraintsEv__index__ = register_delegate(_ZNK15btDynamicsWorld17getNumConstraintsEv);
var _ZNK15btNullPairCache22getNumOverlappingPairsEv__index__ = register_delegate(_ZNK15btNullPairCache22getNumOverlappingPairsEv);
var _ZNK15btNullPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZNK15btNullPairCache26getOverlappingPairArrayPtrEv);
var _ZNK15btTriangleShape11getNumEdgesEv__index__ = register_delegate(_ZNK15btTriangleShape11getNumEdgesEv);
var _ZNK15btTriangleShape12getNumPlanesEv__index__ = register_delegate(_ZNK15btTriangleShape12getNumPlanesEv);
var _ZNK15btTriangleShape14getNumVerticesEv__index__ = register_delegate(_ZNK15btTriangleShape14getNumVerticesEv);
var _ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1___index__ = register_delegate(_ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_);
var _ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3);
var _ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3);
var _ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv);
var _ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3);
var _ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
var _ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_);
var _ZNK15btTriangleShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK15btTriangleShape7getEdgeEiR9btVector3S1_);
var _ZNK15btTriangleShape7getNameEv__index__ = register_delegate(_ZNK15btTriangleShape7getNameEv);
var _ZNK15btTriangleShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK15btTriangleShape8getPlaneER9btVector3S1_i);
var _ZNK15btTriangleShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK15btTriangleShape8isInsideERK9btVector3f);
var _ZNK15btTriangleShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape9getVertexEiR9btVector3);
var _ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__ = register_delegate(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf);
var _ZNK16btCollisionShape20getAngularMotionDiscEv__index__ = register_delegate(_ZNK16btCollisionShape20getAngularMotionDiscEv);
var _ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__ = register_delegate(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer);
var _ZNK16btCollisionShape27getContactBreakingThresholdEf__index__ = register_delegate(_ZNK16btCollisionShape27getContactBreakingThresholdEf);
var _ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv);
var _ZNK16btCollisionShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK16btCollisionShape9serializeEPvP12btSerializer);
var _ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy);
var _ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy);
var _ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__ = register_delegate(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE);
var _ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1___index__ = register_delegate(_ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_);
var _ZNK16btDbvtBroadphase23getOverlappingPairCacheEv__index__ = register_delegate(_ZNK16btDbvtBroadphase23getOverlappingPairCacheEv);
var _ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3___index__ = register_delegate(_ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_);
var _ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer__index__ = register_delegate(_ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer);
var _ZNK17btCollisionObject28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btCollisionObject28calculateSerializeBufferSizeEv);
var _ZNK17btCollisionObject9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btCollisionObject9serializeEPvP12btSerializer);
var _ZNK17btConvexHullShape11getNumEdgesEv__index__ = register_delegate(_ZNK17btConvexHullShape11getNumEdgesEv);
var _ZNK17btConvexHullShape12getNumPlanesEv__index__ = register_delegate(_ZNK17btConvexHullShape12getNumPlanesEv);
var _ZNK17btConvexHullShape14getNumVerticesEv__index__ = register_delegate(_ZNK17btConvexHullShape14getNumVerticesEv);
var _ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3);
var _ZNK17btConvexHullShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btConvexHullShape28calculateSerializeBufferSizeEv);
var _ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3);
var _ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
var _ZNK17btConvexHullShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK17btConvexHullShape7getEdgeEiR9btVector3S1_);
var _ZNK17btConvexHullShape7getNameEv__index__ = register_delegate(_ZNK17btConvexHullShape7getNameEv);
var _ZNK17btConvexHullShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK17btConvexHullShape8getPlaneER9btVector3S1_i);
var _ZNK17btConvexHullShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK17btConvexHullShape8isInsideERK9btVector3f);
var _ZNK17btConvexHullShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape9getVertexEiR9btVector3);
var _ZNK17btConvexHullShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btConvexHullShape9serializeEPvP12btSerializer);
var _ZNK17btHingeConstraint28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btHingeConstraint28calculateSerializeBufferSizeEv);
var _ZNK17btHingeConstraint8getParamEii__index__ = register_delegate(_ZNK17btHingeConstraint8getParamEii);
var _ZNK17btHingeConstraint9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btHingeConstraint9serializeEPvP12btSerializer);
var _ZNK19btTriangleMeshShape15getLocalScalingEv__index__ = register_delegate(_ZNK19btTriangleMeshShape15getLocalScalingEv);
var _ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__ = register_delegate(_ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_);
var _ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3);
var _ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3);
var _ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3);
var _ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4_);
var _ZNK19btTriangleMeshShape7getNameEv__index__ = register_delegate(_ZNK19btTriangleMeshShape7getNameEv);
var _ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__ = register_delegate(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2_);
var _ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__ = register_delegate(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv);
var _ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__ = register_delegate(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4_);
var _ZNK20btDefaultMotionState17getWorldTransformER11btTransform__index__ = register_delegate(_ZNK20btDefaultMotionState17getWorldTransformER11btTransform);
var _ZNK21btCollisionDispatcher15getNumManifoldsEv__index__ = register_delegate(_ZNK21btCollisionDispatcher15getNumManifoldsEv);
var _ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv);
var _ZNK21btConeTwistConstraint8getParamEii__index__ = register_delegate(_ZNK21btConeTwistConstraint8getParamEii);
var _ZNK21btConeTwistConstraint9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK21btConeTwistConstraint9serializeEPvP12btSerializer);
var _ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_);
var _ZNK21btConvexInternalShape15getLocalScalingEv__index__ = register_delegate(_ZNK21btConvexInternalShape15getLocalScalingEv);
var _ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3);
var _ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv);
var _ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3);
var _ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv);
var _ZNK21btConvexInternalShape9getMarginEv__index__ = register_delegate(_ZNK21btConvexInternalShape9getMarginEv);
var _ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer);
var _ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer);
var _ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__ = register_delegate(_ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_);
var _ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv);
var _ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer);
var _ZNK22btBvhTriangleMeshShape7getNameEv__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape7getNameEv);
var _ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer);
var _ZNK23btDiscreteDynamicsWorld10getGravityEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld10getGravityEv);
var _ZNK23btDiscreteDynamicsWorld12getWorldTypeEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld12getWorldTypeEv);
var _ZNK23btDiscreteDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld13getConstraintEi);
var _ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv);
var _ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3);
var _ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1___index__ = register_delegate(_ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1_);
var _ZNK23btStridingMeshInterface14hasPremadeAabbEv__index__ = register_delegate(_ZNK23btStridingMeshInterface14hasPremadeAabbEv);
var _ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2___index__ = register_delegate(_ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2_);
var _ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__ = register_delegate(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4_);
var _ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv);
var _ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer);
var _ZNK26btTriangleIndexVertexArray14getNumSubPartsEv__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14getNumSubPartsEv);
var _ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1___index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1_);
var _ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv);
var _ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2___index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2_);
var _ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi);
var _ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i);
var _ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv__index__ = register_delegate(_ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv);
var _ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv);
var _ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy);
var _ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4_);
var _ZNKSt8messagesIcE6do_getEiiiRKSs__index__ = register_delegate(_ZNKSt8messagesIcE6do_getEiiiRKSs);
var _ZNKSt8messagesIcE7do_openERKSsRKSt6locale__index__ = register_delegate(_ZNKSt8messagesIcE7do_openERKSsRKSt6locale);
var _ZNKSt8messagesIcE8do_closeEi__index__ = register_delegate(_ZNKSt8messagesIcE8do_closeEi);
var _ZNKSt9type_info10__do_catchEPKS_PPvj__index__ = register_delegate(_ZNKSt9type_info10__do_catchEPKS_PPvj);
var _ZNKSt9type_info15__is_function_pEv__index__ = register_delegate(_ZNKSt9type_info15__is_function_pEv);
var _ZNSt8messagesIcED0Ev__index__ = register_delegate(_ZNSt8messagesIcED0Ev);
var _ZNSt8messagesIcED1Ev__index__ = register_delegate(_ZNSt8messagesIcED1Ev);
var _ZNSt9type_infoD0Ev__index__ = register_delegate(_ZNSt9type_infoD0Ev);
var _ZNSt9type_infoD1Ev__index__ = register_delegate(_ZNSt9type_infoD1Ev);
var _ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__ = register_delegate(_ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii);
var _ZThn4_N17DebugDrawcallbackD0Ev__index__ = register_delegate(_ZThn4_N17DebugDrawcallbackD0Ev);
var _ZThn4_N17DebugDrawcallbackD1Ev__index__ = register_delegate(_ZThn4_N17DebugDrawcallbackD1Ev);
var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii);
var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev);
var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev);
var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii);
var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev);
var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v);
var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v);
var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev);
var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii);
var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev);
var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev);
var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii);
var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev);
var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev);
var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii);
var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev);
var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev);
var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair);
var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev);
var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev);
var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair);
var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev);
var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev);
var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii);
var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev);
var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev);
var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii);
var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev);
var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev);
var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii);
var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev);
var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev);
var __cxa_pure_virtual__index__ = register_delegate(__cxa_pure_virtual);
var __fwrite__index__ = register_delegate(__fwrite);
var __mandreel_internal_SetResolution__index__ = register_delegate(__mandreel_internal_SetResolution);
var __resize__index__ = register_delegate(__resize);
var cmpfacets__index__ = register_delegate(cmpfacets);
var cmplocales__index__ = register_delegate(cmplocales);
var iMandreel_TextureAsync_GetPackOffset__index__ = register_delegate(iMandreel_TextureAsync_GetPackOffset);
var iMandreel_TextureAsync_IsCompressed__index__ = register_delegate(iMandreel_TextureAsync_IsCompressed);
var imandreel_restore_glcontext__index__ = register_delegate(imandreel_restore_glcontext);
var imandreel_viewport_resize__index__ = register_delegate(imandreel_viewport_resize);
var mandreel_flash_tcp_onError__index__ = register_delegate(mandreel_flash_tcp_onError);
var swrite__index__ = register_delegate(swrite);
var _objc_sections = {};
var _objc_sections_size = {};

// End of mandreel.js file.
back to top