package com.nativelibs4java.mono.bridj;
import java.util.Collections;
import java.util.Iterator;
import org.bridj.BridJ;
import org.bridj.Callback;
import org.bridj.FlagSet;
import org.bridj.IntValuedEnum;
import org.bridj.Pointer;
import org.bridj.SizeT;
import org.bridj.ValuedEnum;
import org.bridj.ann.Library;
import org.bridj.ann.Ptr;
import org.bridj.ann.Runtime;
import org.bridj.cpp.CPPRuntime;
import org.bridj.util.DefaultParameterizedType;
/**
 * Wrapper for library <b>mono</b><br>
 * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
 * a tool written by <a href="http://ochafik.free.fr/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
 * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> or <a href="http://bridj.googlecode.com/">BridJ</a> .
 */
@Library("mono") 
@Runtime(CPPRuntime.class) 
public class MonoLibrary {
	static {
		BridJ.register();
	}
	public enum MonoTypeEnum implements IntValuedEnum<MonoTypeEnum > {
		MONO_TYPE_END(0x0),
		MONO_TYPE_VOID(0x1),
		MONO_TYPE_BOOLEAN(0x2),
		MONO_TYPE_CHAR(0x3),
		MONO_TYPE_I1(0x4),
		MONO_TYPE_U1(0x5),
		MONO_TYPE_I2(0x6),
		MONO_TYPE_U2(0x7),
		MONO_TYPE_I4(0x8),
		MONO_TYPE_U4(0x9),
		MONO_TYPE_I8(0xA),
		MONO_TYPE_U8(0xB),
		MONO_TYPE_R4(0xC),
		MONO_TYPE_R8(0xD),
		MONO_TYPE_STRING(0xE),
		MONO_TYPE_PTR(0xF),
		MONO_TYPE_BYREF(0x10),
		MONO_TYPE_VALUETYPE(0x11),
		MONO_TYPE_CLASS(0x12),
		MONO_TYPE_VAR(0x13),
		MONO_TYPE_ARRAY(0x14),
		MONO_TYPE_GENERICINST(0x15),
		MONO_TYPE_TYPEDBYREF(0x16),
		MONO_TYPE_I(0x18),
		MONO_TYPE_U(0x19),
		MONO_TYPE_FNPTR(0x1B),
		MONO_TYPE_OBJECT(0x1C),
		MONO_TYPE_SZARRAY(0x1D),
		MONO_TYPE_MVAR(0x1E),
		MONO_TYPE_CMOD_REQD(0x1F),
		MONO_TYPE_CMOD_OPT(0x20),
		MONO_TYPE_INTERNAL(0x21),
		MONO_TYPE_MODIFIER(0x40),
		MONO_TYPE_SENTINEL(0x41),
		MONO_TYPE_PINNED(0x45),
		MONO_TYPE_ENUM(0x55);
		MonoTypeEnum(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoTypeEnum > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoTypeEnum > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public enum MonoMetaTableEnum implements IntValuedEnum<MonoMetaTableEnum > {
		MONO_TABLE_MODULE(0),
		MONO_TABLE_TYPEREF(1),
		MONO_TABLE_TYPEDEF(2),
		MONO_TABLE_FIELD_POINTER(3),
		MONO_TABLE_FIELD(4),
		MONO_TABLE_METHOD_POINTER(5),
		MONO_TABLE_METHOD(6),
		MONO_TABLE_PARAM_POINTER(7),
		MONO_TABLE_PARAM(8),
		MONO_TABLE_INTERFACEIMPL(9),
		MONO_TABLE_MEMBERREF(10),
		MONO_TABLE_CONSTANT(11),
		MONO_TABLE_CUSTOMATTRIBUTE(12),
		MONO_TABLE_FIELDMARSHAL(13),
		MONO_TABLE_DECLSECURITY(14),
		MONO_TABLE_CLASSLAYOUT(15),
		MONO_TABLE_FIELDLAYOUT(16),
		MONO_TABLE_STANDALONESIG(17),
		MONO_TABLE_EVENTMAP(18),
		MONO_TABLE_EVENT_POINTER(19),
		MONO_TABLE_EVENT(20),
		MONO_TABLE_PROPERTYMAP(21),
		MONO_TABLE_PROPERTY_POINTER(22),
		MONO_TABLE_PROPERTY(23),
		MONO_TABLE_METHODSEMANTICS(24),
		MONO_TABLE_METHODIMPL(25),
		MONO_TABLE_MODULEREF(26),
		MONO_TABLE_TYPESPEC(27),
		MONO_TABLE_IMPLMAP(28),
		MONO_TABLE_FIELDRVA(29),
		MONO_TABLE_UNUSED6(30),
		MONO_TABLE_UNUSED7(31),
		MONO_TABLE_ASSEMBLY(32),
		MONO_TABLE_ASSEMBLYPROCESSOR(33),
		MONO_TABLE_ASSEMBLYOS(34),
		MONO_TABLE_ASSEMBLYREF(35),
		MONO_TABLE_ASSEMBLYREFPROCESSOR(36),
		MONO_TABLE_ASSEMBLYREFOS(37),
		MONO_TABLE_FILE(38),
		MONO_TABLE_EXPORTEDTYPE(39),
		MONO_TABLE_MANIFESTRESOURCE(40),
		MONO_TABLE_NESTEDCLASS(41),
		MONO_TABLE_GENERICPARAM(42),
		MONO_TABLE_METHODSPEC(43),
		MONO_TABLE_GENERICPARAMCONSTRAINT(44);
		MonoMetaTableEnum(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoMetaTableEnum > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoMetaTableEnum > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public static final int MONO_ASSEMBLY_HASH_ALG = 0;
	public static final int MONO_ASSEMBLY_MAJOR_VERSION = 1;
	public static final int MONO_ASSEMBLY_MINOR_VERSION = 2;
	public static final int MONO_ASSEMBLY_BUILD_NUMBER = 3;
	public static final int MONO_ASSEMBLY_REV_NUMBER = 4;
	public static final int MONO_ASSEMBLY_FLAGS = 5;
	public static final int MONO_ASSEMBLY_PUBLIC_KEY = 6;
	public static final int MONO_ASSEMBLY_NAME = 7;
	public static final int MONO_ASSEMBLY_CULTURE = 8;
	public static final int MONO_ASSEMBLY_SIZE = 9;
	public static final int MONO_ASSEMBLYOS_PLATFORM = 0;
	public static final int MONO_ASSEMBLYOS_MAJOR_VERSION = 1;
	public static final int MONO_ASSEMBLYOS_MINOR_VERSION = 2;
	public static final int MONO_ASSEMBLYOS_SIZE = 3;
	public static final int MONO_ASSEMBLY_PROCESSOR = 0;
	public static final int MONO_ASSEMBLY_PROCESSOR_SIZE = 1;
	public static final int MONO_ASSEMBLYREF_MAJOR_VERSION = 0;
	public static final int MONO_ASSEMBLYREF_MINOR_VERSION = 1;
	public static final int MONO_ASSEMBLYREF_BUILD_NUMBER = 2;
	public static final int MONO_ASSEMBLYREF_REV_NUMBER = 3;
	public static final int MONO_ASSEMBLYREF_FLAGS = 4;
	public static final int MONO_ASSEMBLYREF_PUBLIC_KEY = 5;
	public static final int MONO_ASSEMBLYREF_NAME = 6;
	public static final int MONO_ASSEMBLYREF_CULTURE = 7;
	public static final int MONO_ASSEMBLYREF_HASH_VALUE = 8;
	public static final int MONO_ASSEMBLYREF_SIZE = 9;
	public static final int MONO_ASSEMBLYREFOS_PLATFORM = 0;
	public static final int MONO_ASSEMBLYREFOS_MAJOR_VERSION = 1;
	public static final int MONO_ASSEMBLYREFOS_MINOR_VERSION = 2;
	public static final int MONO_ASSEMBLYREFOS_ASSEMBLYREF = 3;
	public static final int MONO_ASSEMBLYREFOS_SIZE = 4;
	public static final int MONO_ASSEMBLYREFPROC_PROCESSOR = 0;
	public static final int MONO_ASSEMBLYREFPROC_ASSEMBLYREF = 1;
	public static final int MONO_ASSEMBLYREFPROC_SIZE = 2;
	public static final int MONO_CLASS_LAYOUT_PACKING_SIZE = 0;
	public static final int MONO_CLASS_LAYOUT_CLASS_SIZE = 1;
	public static final int MONO_CLASS_LAYOUT_PARENT = 2;
	public static final int MONO_CLASS_LAYOUT_SIZE = 3;
	public static final int MONO_CONSTANT_TYPE = 0;
	public static final int MONO_CONSTANT_PADDING = 1;
	public static final int MONO_CONSTANT_PARENT = 2;
	public static final int MONO_CONSTANT_VALUE = 3;
	public static final int MONO_CONSTANT_SIZE = 4;
	public static final int MONO_CUSTOM_ATTR_PARENT = 0;
	public static final int MONO_CUSTOM_ATTR_TYPE = 1;
	public static final int MONO_CUSTOM_ATTR_VALUE = 2;
	public static final int MONO_CUSTOM_ATTR_SIZE = 3;
	public static final int MONO_DECL_SECURITY_ACTION = 0;
	public static final int MONO_DECL_SECURITY_PARENT = 1;
	public static final int MONO_DECL_SECURITY_PERMISSIONSET = 2;
	public static final int MONO_DECL_SECURITY_SIZE = 3;
	public static final int MONO_EVENT_MAP_PARENT = 0;
	public static final int MONO_EVENT_MAP_EVENTLIST = 1;
	public static final int MONO_EVENT_MAP_SIZE = 2;
	public static final int MONO_EVENT_FLAGS = 0;
	public static final int MONO_EVENT_NAME = 1;
	public static final int MONO_EVENT_TYPE = 2;
	public static final int MONO_EVENT_SIZE = 3;
	public static final int MONO_EVENT_POINTER_EVENT = 0;
	public static final int MONO_EVENT_POINTER_SIZE = 1;
	public static final int MONO_EXP_TYPE_FLAGS = 0;
	public static final int MONO_EXP_TYPE_TYPEDEF = 1;
	public static final int MONO_EXP_TYPE_NAME = 2;
	public static final int MONO_EXP_TYPE_NAMESPACE = 3;
	public static final int MONO_EXP_TYPE_IMPLEMENTATION = 4;
	public static final int MONO_EXP_TYPE_SIZE = 5;
	public static final int MONO_FIELD_FLAGS = 0;
	public static final int MONO_FIELD_NAME = 1;
	public static final int MONO_FIELD_SIGNATURE = 2;
	public static final int MONO_FIELD_SIZE = 3;
	public static final int MONO_FIELD_LAYOUT_OFFSET = 0;
	public static final int MONO_FIELD_LAYOUT_FIELD = 1;
	public static final int MONO_FIELD_LAYOUT_SIZE = 2;
	public static final int MONO_FIELD_MARSHAL_PARENT = 0;
	public static final int MONO_FIELD_MARSHAL_NATIVE_TYPE = 1;
	public static final int MONO_FIELD_MARSHAL_SIZE = 2;
	public static final int MONO_FIELD_POINTER_FIELD = 0;
	public static final int MONO_FIELD_POINTER_SIZE = 1;
	public static final int MONO_FIELD_RVA_RVA = 0;
	public static final int MONO_FIELD_RVA_FIELD = 1;
	public static final int MONO_FIELD_RVA_SIZE = 2;
	public static final int MONO_FILE_FLAGS = 0;
	public static final int MONO_FILE_NAME = 1;
	public static final int MONO_FILE_HASH_VALUE = 2;
	public static final int MONO_FILE_SIZE = 3;
	public static final int MONO_IMPLMAP_FLAGS = 0;
	public static final int MONO_IMPLMAP_MEMBER = 1;
	public static final int MONO_IMPLMAP_NAME = 2;
	public static final int MONO_IMPLMAP_SCOPE = 3;
	public static final int MONO_IMPLMAP_SIZE = 4;
	public static final int MONO_INTERFACEIMPL_CLASS = 0;
	public static final int MONO_INTERFACEIMPL_INTERFACE = 1;
	public static final int MONO_INTERFACEIMPL_SIZE = 2;
	public static final int MONO_MANIFEST_OFFSET = 0;
	public static final int MONO_MANIFEST_FLAGS = 1;
	public static final int MONO_MANIFEST_NAME = 2;
	public static final int MONO_MANIFEST_IMPLEMENTATION = 3;
	public static final int MONO_MANIFEST_SIZE = 4;
	public static final int MONO_MEMBERREF_CLASS = 0;
	public static final int MONO_MEMBERREF_NAME = 1;
	public static final int MONO_MEMBERREF_SIGNATURE = 2;
	public static final int MONO_MEMBERREF_SIZE = 3;
	public static final int MONO_METHOD_RVA = 0;
	public static final int MONO_METHOD_IMPLFLAGS = 1;
	public static final int MONO_METHOD_FLAGS = 2;
	public static final int MONO_METHOD_NAME = 3;
	public static final int MONO_METHOD_SIGNATURE = 4;
	public static final int MONO_METHOD_PARAMLIST = 5;
	public static final int MONO_METHOD_SIZE = 6;
	public static final int MONO_METHODIMPL_CLASS = 0;
	public static final int MONO_METHODIMPL_BODY = 1;
	public static final int MONO_METHODIMPL_DECLARATION = 2;
	public static final int MONO_METHODIMPL_SIZE = 3;
	public static final int MONO_METHOD_POINTER_METHOD = 0;
	public static final int MONO_METHOD_POINTER_SIZE = 1;
	public static final int MONO_METHOD_SEMA_SEMANTICS = 0;
	public static final int MONO_METHOD_SEMA_METHOD = 1;
	public static final int MONO_METHOD_SEMA_ASSOCIATION = 2;
	public static final int MONO_METHOD_SEMA_SIZE = 3;
	public static final int MONO_MODULE_GENERATION = 0;
	public static final int MONO_MODULE_NAME = 1;
	public static final int MONO_MODULE_MVID = 2;
	public static final int MONO_MODULE_ENC = 3;
	public static final int MONO_MODULE_ENCBASE = 4;
	public static final int MONO_MODULE_SIZE = 5;
	public static final int MONO_MODULEREF_NAME = 0;
	public static final int MONO_MODULEREF_SIZE = 1;
	public static final int MONO_NESTED_CLASS_NESTED = 0;
	public static final int MONO_NESTED_CLASS_ENCLOSING = 1;
	public static final int MONO_NESTED_CLASS_SIZE = 2;
	public static final int MONO_PARAM_FLAGS = 0;
	public static final int MONO_PARAM_SEQUENCE = 1;
	public static final int MONO_PARAM_NAME = 2;
	public static final int MONO_PARAM_SIZE = 3;
	public static final int MONO_PARAM_POINTER_PARAM = 0;
	public static final int MONO_PARAM_POINTER_SIZE = 1;
	public static final int MONO_PROPERTY_FLAGS = 0;
	public static final int MONO_PROPERTY_NAME = 1;
	public static final int MONO_PROPERTY_TYPE = 2;
	public static final int MONO_PROPERTY_SIZE = 3;
	public static final int MONO_PROPERTY_POINTER_PROPERTY = 0;
	public static final int MONO_PROPERTY_POINTER_SIZE = 1;
	public static final int MONO_PROPERTY_MAP_PARENT = 0;
	public static final int MONO_PROPERTY_MAP_PROPERTY_LIST = 1;
	public static final int MONO_PROPERTY_MAP_SIZE = 2;
	public static final int MONO_STAND_ALONE_SIGNATURE = 0;
	public static final int MONO_STAND_ALONE_SIGNATURE_SIZE = 1;
	public static final int MONO_TYPEDEF_FLAGS = 0;
	public static final int MONO_TYPEDEF_NAME = 1;
	public static final int MONO_TYPEDEF_NAMESPACE = 2;
	public static final int MONO_TYPEDEF_EXTENDS = 3;
	public static final int MONO_TYPEDEF_FIELD_LIST = 4;
	public static final int MONO_TYPEDEF_METHOD_LIST = 5;
	public static final int MONO_TYPEDEF_SIZE = 6;
	public static final int MONO_TYPEREF_SCOPE = 0;
	public static final int MONO_TYPEREF_NAME = 1;
	public static final int MONO_TYPEREF_NAMESPACE = 2;
	public static final int MONO_TYPEREF_SIZE = 3;
	public static final int MONO_TYPESPEC_SIGNATURE = 0;
	public static final int MONO_TYPESPEC_SIZE = 1;
	public static final int MONO_GENERICPARAM_NUMBER = 0;
	public static final int MONO_GENERICPARAM_FLAGS = 1;
	public static final int MONO_GENERICPARAM_OWNER = 2;
	public static final int MONO_GENERICPARAM_NAME = 3;
	public static final int MONO_GENERICPARAM_SIZE = 4;
	public static final int MONO_METHODSPEC_METHOD = 0;
	public static final int MONO_METHODSPEC_SIGNATURE = 1;
	public static final int MONO_METHODSPEC_SIZE = 2;
	public static final int MONO_GENPARCONSTRAINT_GENERICPAR = 0;
	public static final int MONO_GENPARCONSTRAINT_CONSTRAINT = 1;
	public static final int MONO_GENPARCONSTRAINT_SIZE = 2;
	public static final int MONO_TYPEDEFORREF_TYPEDEF = 0;
	public static final int MONO_TYPEDEFORREF_TYPEREF = 1;
	public static final int MONO_TYPEDEFORREF_TYPESPEC = 2;
	public static final int MONO_TYPEDEFORREF_BITS = 2;
	public static final int MONO_TYPEDEFORREF_MASK = 3;
	public static final int MONO_HASCONSTANT_FIEDDEF = 0;
	public static final int MONO_HASCONSTANT_PARAM = 1;
	public static final int MONO_HASCONSTANT_PROPERTY = 2;
	public static final int MONO_HASCONSTANT_BITS = 2;
	public static final int MONO_HASCONSTANT_MASK = 3;
	public static final int MONO_CUSTOM_ATTR_METHODDEF = 0;
	public static final int MONO_CUSTOM_ATTR_FIELDDEF = 1;
	public static final int MONO_CUSTOM_ATTR_TYPEREF = 2;
	public static final int MONO_CUSTOM_ATTR_TYPEDEF = 3;
	public static final int MONO_CUSTOM_ATTR_PARAMDEF = 4;
	public static final int MONO_CUSTOM_ATTR_INTERFACE = 5;
	public static final int MONO_CUSTOM_ATTR_MEMBERREF = 6;
	public static final int MONO_CUSTOM_ATTR_MODULE = 7;
	public static final int MONO_CUSTOM_ATTR_PERMISSION = 8;
	public static final int MONO_CUSTOM_ATTR_PROPERTY = 9;
	public static final int MONO_CUSTOM_ATTR_EVENT = 10;
	public static final int MONO_CUSTOM_ATTR_SIGNATURE = 11;
	public static final int MONO_CUSTOM_ATTR_MODULEREF = 12;
	public static final int MONO_CUSTOM_ATTR_TYPESPEC = 13;
	public static final int MONO_CUSTOM_ATTR_ASSEMBLY = 14;
	public static final int MONO_CUSTOM_ATTR_ASSEMBLYREF = 15;
	public static final int MONO_CUSTOM_ATTR_FILE = 16;
	public static final int MONO_CUSTOM_ATTR_EXP_TYPE = 17;
	public static final int MONO_CUSTOM_ATTR_MANIFEST = 18;
	public static final int MONO_CUSTOM_ATTR_GENERICPAR = 19;
	public static final int MONO_CUSTOM_ATTR_BITS = 5;
	public static final int MONO_CUSTOM_ATTR_MASK = 31;
	public static final int MONO_HAS_FIELD_MARSHAL_FIELDSREF = 0;
	public static final int MONO_HAS_FIELD_MARSHAL_PARAMDEF = 1;
	public static final int MONO_HAS_FIELD_MARSHAL_BITS = 1;
	public static final int MONO_HAS_FIELD_MARSHAL_MASK = 1;
	public static final int MONO_HAS_DECL_SECURITY_TYPEDEF = 0;
	public static final int MONO_HAS_DECL_SECURITY_METHODDEF = 1;
	public static final int MONO_HAS_DECL_SECURITY_ASSEMBLY = 2;
	public static final int MONO_HAS_DECL_SECURITY_BITS = 2;
	public static final int MONO_HAS_DECL_SECURITY_MASK = 3;
	/// not used
	public static final int MONO_MEMBERREF_PARENT_TYPEDEF = 0;
	public static final int MONO_MEMBERREF_PARENT_TYPEREF = 1;
	public static final int MONO_MEMBERREF_PARENT_MODULEREF = 2;
	public static final int MONO_MEMBERREF_PARENT_METHODDEF = 3;
	public static final int MONO_MEMBERREF_PARENT_TYPESPEC = 4;
	public static final int MONO_MEMBERREF_PARENT_BITS = 3;
	public static final int MONO_MEMBERREF_PARENT_MASK = 7;
	public static final int MONO_HAS_SEMANTICS_EVENT = 0;
	public static final int MONO_HAS_SEMANTICS_PROPERTY = 1;
	public static final int MONO_HAS_SEMANTICS_BITS = 1;
	public static final int MONO_HAS_SEMANTICS_MASK = 1;
	public static final int MONO_METHODDEFORREF_METHODDEF = 0;
	public static final int MONO_METHODDEFORREF_METHODREF = 1;
	public static final int MONO_METHODDEFORREF_BITS = 1;
	public static final int MONO_METHODDEFORREF_MASK = 1;
	public static final int MONO_MEMBERFORWD_FIELDDEF = 0;
	public static final int MONO_MEMBERFORWD_METHODDEF = 1;
	public static final int MONO_MEMBERFORWD_BITS = 1;
	public static final int MONO_MEMBERFORWD_MASK = 1;
	public static final int MONO_IMPLEMENTATION_FILE = 0;
	public static final int MONO_IMPLEMENTATION_ASSEMBLYREF = 1;
	public static final int MONO_IMPLEMENTATION_EXP_TYPE = 2;
	public static final int MONO_IMPLEMENTATION_BITS = 2;
	public static final int MONO_IMPLEMENTATION_MASK = 3;
	/// not used
	public static final int MONO_CUSTOM_ATTR_TYPE_TYPEREF = 0;
	/// not used
	public static final int MONO_CUSTOM_ATTR_TYPE_TYPEDEF = 1;
	public static final int MONO_CUSTOM_ATTR_TYPE_METHODDEF = 2;
	public static final int MONO_CUSTOM_ATTR_TYPE_MEMBERREF = 3;
	/// not used
	public static final int MONO_CUSTOM_ATTR_TYPE_STRING = 4;
	public static final int MONO_CUSTOM_ATTR_TYPE_BITS = 3;
	public static final int MONO_CUSTOM_ATTR_TYPE_MASK = 7;
	public static final int MONO_RESOLTION_SCOPE_MODULE = 0;
	public static final int MONO_RESOLTION_SCOPE_MODULEREF = 1;
	public static final int MONO_RESOLTION_SCOPE_ASSEMBLYREF = 2;
	public static final int MONO_RESOLTION_SCOPE_TYPEREF = 3;
	public static final int MONO_RESOLTION_SCOPE_BITS = 2;
	public static final int MONO_RESOLTION_SCOPE_MASK = 3;
	public static final int MONO_TYPEORMETHOD_TYPE = 0;
	public static final int MONO_TYPEORMETHOD_METHOD = 1;
	public static final int MONO_TYPEORMETHOD_BITS = 1;
	public static final int MONO_TYPEORMETHOD_MASK = 1;
	public enum MonoImageOpenStatus implements IntValuedEnum<MonoImageOpenStatus > {
		MONO_IMAGE_OK(0),
		MONO_IMAGE_ERROR_ERRNO(1),
		MONO_IMAGE_MISSING_ASSEMBLYREF(2),
		MONO_IMAGE_IMAGE_INVALID(3);
		MonoImageOpenStatus(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoImageOpenStatus > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoImageOpenStatus > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public enum MonoExceptionEnum implements IntValuedEnum<MonoExceptionEnum > {
		MONO_EXCEPTION_CLAUSE_NONE(0),
		MONO_EXCEPTION_CLAUSE_FILTER(1),
		MONO_EXCEPTION_CLAUSE_FINALLY(2),
		MONO_EXCEPTION_CLAUSE_FAULT(4);
		MonoExceptionEnum(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoExceptionEnum > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoExceptionEnum > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public enum MonoCallConvention implements IntValuedEnum<MonoCallConvention > {
		MONO_CALL_DEFAULT(0),
		MONO_CALL_C(1),
		MONO_CALL_STDCALL(2),
		MONO_CALL_THISCALL(3),
		MONO_CALL_FASTCALL(4),
		MONO_CALL_VARARG(5);
		MonoCallConvention(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoCallConvention > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoCallConvention > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public enum MonoMarshalNative implements IntValuedEnum<MonoMarshalNative > {
		MONO_NATIVE_BOOLEAN(0x2),
		MONO_NATIVE_I1(0x3),
		MONO_NATIVE_U1(0x4),
		MONO_NATIVE_I2(0x5),
		MONO_NATIVE_U2(0x6),
		MONO_NATIVE_I4(0x7),
		MONO_NATIVE_U4(0x8),
		MONO_NATIVE_I8(0x9),
		MONO_NATIVE_U8(0xA),
		MONO_NATIVE_R4(0xB),
		MONO_NATIVE_R8(0xC),
		MONO_NATIVE_CURRENCY(0xF),
		MONO_NATIVE_BSTR(0x13),
		MONO_NATIVE_LPSTR(0x14),
		MONO_NATIVE_LPWSTR(0x15),
		MONO_NATIVE_LPTSTR(0x16),
		MONO_NATIVE_BYVALTSTR(0x17),
		MONO_NATIVE_IUNKNOWN(0x19),
		MONO_NATIVE_IDISPATCH(0x1A),
		MONO_NATIVE_STRUCT(0x1B),
		MONO_NATIVE_INTERFACE(0x1C),
		MONO_NATIVE_SAFEARRAY(0x1D),
		MONO_NATIVE_BYVALARRAY(0x1E),
		MONO_NATIVE_INT(0x1F),
		MONO_NATIVE_UINT(0x20),
		MONO_NATIVE_VBBYREFSTR(0x22),
		MONO_NATIVE_ANSIBSTR(0x23),
		MONO_NATIVE_TBSTR(0x24),
		MONO_NATIVE_VARIANTBOOL(0x25),
		MONO_NATIVE_FUNC(0x26),
		MONO_NATIVE_ASANY(0x28),
		MONO_NATIVE_LPARRAY(0x2A),
		MONO_NATIVE_LPSTRUCT(0x2B),
		MONO_NATIVE_CUSTOM(0x2C),
		MONO_NATIVE_ERROR(0x2D),
		MONO_NATIVE_MAX(0x50);
		MonoMarshalNative(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoMarshalNative > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoMarshalNative > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public enum MonoMarshalVariant implements IntValuedEnum<MonoMarshalVariant > {
		MONO_VARIANT_EMPTY(0x0),
		MONO_VARIANT_NULL(0x1),
		MONO_VARIANT_I2(0x2),
		MONO_VARIANT_I4(0x3),
		MONO_VARIANT_R4(0x4),
		MONO_VARIANT_R8(0x5),
		MONO_VARIANT_CY(0x6),
		MONO_VARIANT_DATE(0x7),
		MONO_VARIANT_BSTR(0x8),
		MONO_VARIANT_DISPATCH(0x9),
		MONO_VARIANT_ERROR(0xA),
		MONO_VARIANT_BOOL(0xB),
		MONO_VARIANT_VARIANT(0xC),
		MONO_VARIANT_UNKNOWN(0xD),
		MONO_VARIANT_DECIMAL(0xE),
		MONO_VARIANT_I1(0x10),
		MONO_VARIANT_UI1(0x11),
		MONO_VARIANT_UI2(0x12),
		MONO_VARIANT_UI4(0x13),
		MONO_VARIANT_I8(0x14),
		MONO_VARIANT_UI8(0x15),
		MONO_VARIANT_INT(0x16),
		MONO_VARIANT_UINT(0x17),
		MONO_VARIANT_VOID(0x18),
		MONO_VARIANT_HRESULT(0x19),
		MONO_VARIANT_PTR(0x1A),
		MONO_VARIANT_SAFEARRAY(0x1B),
		MONO_VARIANT_CARRAY(0x1C),
		MONO_VARIANT_USERDEFINED(0x1D),
		MONO_VARIANT_LPSTR(0x1E),
		MONO_VARIANT_LPWSTR(0x1F),
		MONO_VARIANT_RECORD(0x24),
		MONO_VARIANT_FILETIME(0x40),
		MONO_VARIANT_BLOB(0x41),
		MONO_VARIANT_STREAM(0x42),
		MONO_VARIANT_STORAGE(0x43),
		MONO_VARIANT_STREAMED_OBJECT(0x44),
		MONO_VARIANT_STORED_OBJECT(0x45),
		MONO_VARIANT_BLOB_OBJECT(0x46),
		MONO_VARIANT_CF(0x47),
		MONO_VARIANT_CLSID(0x48),
		MONO_VARIANT_VECTOR(0x1000),
		MONO_VARIANT_ARRAY(0x2000),
		MONO_VARIANT_BYREF(0x4000);
		MonoMarshalVariant(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoMarshalVariant > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoMarshalVariant > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public enum MonoMarshalConv implements IntValuedEnum<MonoMarshalConv > {
		MONO_MARSHAL_CONV_NONE(0),
		MONO_MARSHAL_CONV_BOOL_VARIANTBOOL(1),
		MONO_MARSHAL_CONV_BOOL_I4(2),
		MONO_MARSHAL_CONV_STR_BSTR(3),
		MONO_MARSHAL_CONV_STR_LPSTR(4),
		MONO_MARSHAL_CONV_LPSTR_STR(5),
		MONO_MARSHAL_CONV_LPTSTR_STR(6),
		MONO_MARSHAL_CONV_STR_LPWSTR(7),
		MONO_MARSHAL_CONV_LPWSTR_STR(8),
		MONO_MARSHAL_CONV_STR_LPTSTR(9),
		MONO_MARSHAL_CONV_STR_ANSIBSTR(10),
		MONO_MARSHAL_CONV_STR_TBSTR(11),
		MONO_MARSHAL_CONV_STR_BYVALSTR(12),
		MONO_MARSHAL_CONV_STR_BYVALWSTR(13),
		MONO_MARSHAL_CONV_SB_LPSTR(14),
		MONO_MARSHAL_CONV_SB_LPTSTR(15),
		MONO_MARSHAL_CONV_SB_LPWSTR(16),
		MONO_MARSHAL_CONV_LPSTR_SB(17),
		MONO_MARSHAL_CONV_LPTSTR_SB(18),
		MONO_MARSHAL_CONV_LPWSTR_SB(19),
		MONO_MARSHAL_CONV_ARRAY_BYVALARRAY(20),
		MONO_MARSHAL_CONV_ARRAY_BYVALCHARARRAY(21),
		MONO_MARSHAL_CONV_ARRAY_SAVEARRAY(22),
		MONO_MARSHAL_CONV_ARRAY_LPARRAY(23),
		MONO_MARSHAL_FREE_LPARRAY(24),
		MONO_MARSHAL_CONV_OBJECT_INTERFACE(25),
		MONO_MARSHAL_CONV_OBJECT_IDISPATCH(26),
		MONO_MARSHAL_CONV_OBJECT_IUNKNOWN(27),
		MONO_MARSHAL_CONV_OBJECT_STRUCT(28),
		MONO_MARSHAL_CONV_DEL_FTN(29),
		MONO_MARSHAL_CONV_FTN_DEL(30),
		MONO_MARSHAL_FREE_ARRAY(31),
		MONO_MARSHAL_CONV_BSTR_STR(32),
		MONO_MARSHAL_CONV_SAFEHANDLE(33),
		MONO_MARSHAL_CONV_HANDLEREF(34);
		MonoMarshalConv(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoMarshalConv > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoMarshalConv > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public enum MonoParseTypeMode implements IntValuedEnum<MonoParseTypeMode > {
		MONO_PARSE_TYPE(0),
		MONO_PARSE_MOD_TYPE(1),
		MONO_PARSE_LOCAL(2),
		MONO_PARSE_PARAM(3),
		MONO_PARSE_RET(4),
		MONO_PARSE_FIELD(5);
		MonoParseTypeMode(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoParseTypeMode > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoParseTypeMode > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	/// The supplied strings were dup'd by means of calling mono_error_dup_strings.
	public static final int MONO_ERROR_FREE_STRINGS = 1;
	/// Something happened while processing the error and the resulting message is incomplete.
	public static final int MONO_ERROR_INCOMPLETE = 2;
	public static final int MONO_ERROR_NONE = 0;
	public static final int MONO_ERROR_MISSING_METHOD = 1;
	public static final int MONO_ERROR_MISSING_FIELD = 2;
	public static final int MONO_ERROR_TYPE_LOAD = 3;
	public static final int MONO_ERROR_FILE_NOT_FOUND = 4;
	public static final int MONO_ERROR_BAD_IMAGE = 5;
	public static final int MONO_ERROR_OUT_OF_MEMORY = 6;
	public static final int MONO_ERROR_ARGUMENT = 7;
	public static final int MONO_ERROR_NOT_VERIFIABLE = 8;
	/**
	 * This is a generic error mechanism is you need to raise an arbitrary corlib exception.<br>
	 * You must pass the exception name otherwise prepare_exception will fail with internal execution.
	 */
	public static final int MONO_ERROR_GENERIC = 9;
	public enum MonoResolveTokenError implements IntValuedEnum<MonoResolveTokenError > {
		ResolveTokenError_OutOfRange(0),
		ResolveTokenError_BadTable(1),
		ResolveTokenError_Other(2);
		MonoResolveTokenError(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoResolveTokenError > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoResolveTokenError > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public static final int MONO_DECLSEC_FLAG_REQUEST = 1;
	public static final int MONO_DECLSEC_FLAG_DEMAND = 2;
	public static final int MONO_DECLSEC_FLAG_ASSERT = 4;
	public static final int MONO_DECLSEC_FLAG_DENY = 8;
	public static final int MONO_DECLSEC_FLAG_PERMITONLY = 16;
	public static final int MONO_DECLSEC_FLAG_LINKDEMAND = 32;
	public static final int MONO_DECLSEC_FLAG_INHERITANCEDEMAND = 64;
	public static final int MONO_DECLSEC_FLAG_REQUEST_MINIMUM = 128;
	public static final int MONO_DECLSEC_FLAG_REQUEST_OPTIONAL = 256;
	public static final int MONO_DECLSEC_FLAG_REQUEST_REFUSE = 512;
	public static final int MONO_DECLSEC_FLAG_PREJIT_GRANT = 1024;
	public static final int MONO_DECLSEC_FLAG_PREJIT_DENY = 2048;
	public static final int MONO_DECLSEC_FLAG_NONCAS_DEMAND = 4096;
	public static final int MONO_DECLSEC_FLAG_NONCAS_LINKDEMAND = 8192;
	public static final int MONO_DECLSEC_FLAG_NONCAS_INHERITANCEDEMAND = 16384;
	public static final int MONO_DECLSEC_FLAG_LINKDEMAND_CHOICE = 32768;
	public static final int MONO_DECLSEC_FLAG_INHERITANCEDEMAND_CHOICE = 65536;
	public static final int MONO_DECLSEC_FLAG_DEMAND_CHOICE = 131072;
	public enum MonoBreakPolicy implements IntValuedEnum<MonoBreakPolicy > {
		MONO_BREAK_POLICY_ALWAYS(0),
		MONO_BREAK_POLICY_NEVER(1),
		MONO_BREAK_POLICY_ON_DBG(2);
		MonoBreakPolicy(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoBreakPolicy > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoBreakPolicy > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public static final int MONO_ASSEMBLY_HASH_NONE = 0;
	public static final int MONO_ASSEMBLY_HASH_MD5 = 32771;
	public static final int MONO_ASSEMBLY_HASH_SHA1 = 32772;
	public static final int MONO_ASSEMBLYREF_FULL_PUBLIC_KEY = 1;
	public static final int MONO_ASSEMBLYREF_RETARGETABLE = 256;
	public static final int MONO_ASSEMBLYREF_JIT_TRACKING = 32768;
	public static final int MONO_ASSEMBLYREF_NO_JIT_OPT = 16384;
	public static final int MONO_EVENT_SPECIALNAME = 512;
	public static final int MONO_EVENT_RTSPECIALNAME = 1024;
	public static final int MONO_FIELD_ATTR_FIELD_ACCESS_MASK = 7;
	public static final int MONO_FIELD_ATTR_COMPILER_CONTROLLED = 0;
	public static final int MONO_FIELD_ATTR_PRIVATE = 1;
	public static final int MONO_FIELD_ATTR_FAM_AND_ASSEM = 2;
	public static final int MONO_FIELD_ATTR_ASSEMBLY = 3;
	public static final int MONO_FIELD_ATTR_FAMILY = 4;
	public static final int MONO_FIELD_ATTR_FAM_OR_ASSEM = 5;
	public static final int MONO_FIELD_ATTR_PUBLIC = 6;
	public static final int MONO_FIELD_ATTR_STATIC = 16;
	public static final int MONO_FIELD_ATTR_INIT_ONLY = 32;
	public static final int MONO_FIELD_ATTR_LITERAL = 64;
	public static final int MONO_FIELD_ATTR_NOT_SERIALIZED = 128;
	public static final int MONO_FIELD_ATTR_SPECIAL_NAME = 512;
	public static final int MONO_FIELD_ATTR_PINVOKE_IMPL = 8192;
	/// For runtime use only
	public static final int MONO_FIELD_ATTR_RESERVED_MASK = 38144;
	public static final int MONO_FIELD_ATTR_RT_SPECIAL_NAME = 1024;
	public static final int MONO_FIELD_ATTR_HAS_MARSHAL = 4096;
	public static final int MONO_FIELD_ATTR_HAS_DEFAULT = 32768;
	public static final int MONO_FIELD_ATTR_HAS_RVA = 256;
	public static final int MONO_FILE_HAS_METADATA = 0;
	public static final int MONO_FILE_HAS_NO_METADATA = 1;
	public static final int MONO_GEN_PARAM_VARIANCE_MASK = 3;
	public static final int MONO_GEN_PARAM_NON_VARIANT = 0;
	public static final int MONO_GEN_PARAM_VARIANT = 1;
	public static final int MONO_GEN_PARAM_COVARIANT = 2;
	public static final int MONO_GEN_PARAM_CONSTRAINT_MASK = 28;
	public static final int MONO_GEN_PARAM_CONSTRAINT_CLASS = 4;
	public static final int MONO_GEN_PARAM_CONSTRAINT_VTYPE = 8;
	public static final int MONO_GEN_PARAM_CONSTRAINT_DCTOR = 16;
	public static final int MONO_PINVOKE_NO_MANGLE = 1;
	public static final int MONO_PINVOKE_CHAR_SET_MASK = 6;
	public static final int MONO_PINVOKE_CHAR_SET_NOT_SPEC = 0;
	public static final int MONO_PINVOKE_CHAR_SET_ANSI = 2;
	public static final int MONO_PINVOKE_CHAR_SET_UNICODE = 4;
	public static final int MONO_PINVOKE_CHAR_SET_AUTO = 6;
	public static final int MONO_PINVOKE_BEST_FIT_ENABLED = 16;
	public static final int MONO_PINVOKE_BEST_FIT_DISABLED = 32;
	public static final int MONO_PINVOKE_BEST_FIT_MASK = 48;
	public static final int MONO_PINVOKE_SUPPORTS_LAST_ERROR = 64;
	public static final int MONO_PINVOKE_CALL_CONV_MASK = 1792;
	public static final int MONO_PINVOKE_CALL_CONV_WINAPI = 256;
	public static final int MONO_PINVOKE_CALL_CONV_CDECL = 512;
	public static final int MONO_PINVOKE_CALL_CONV_STDCALL = 768;
	public static final int MONO_PINVOKE_CALL_CONV_THISCALL = 1024;
	public static final int MONO_PINVOKE_CALL_CONV_FASTCALL = 1280;
	public static final int MONO_PINVOKE_THROW_ON_UNMAPPABLE_ENABLED = 4096;
	public static final int MONO_PINVOKE_THROW_ON_UNMAPPABLE_DISABLED = 8192;
	public static final int MONO_PINVOKE_THROW_ON_UNMAPPABLE_MASK = 12288;
	public static final int MONO_PINVOKE_CALL_CONV_GENERIC = 16;
	public static final int MONO_PINVOKE_CALL_CONV_GENERICINST = 10;
	public static final int MONO_MANIFEST_RESOURCE_VISIBILITY_MASK = 7;
	public static final int MONO_MANIFEST_RESOURCE_PUBLIC = 1;
	public static final int MONO_MANIFEST_RESOURCE_PRIVATE = 2;
	public static final int MONO_METHOD_ATTR_ACCESS_MASK = 7;
	public static final int MONO_METHOD_ATTR_COMPILER_CONTROLLED = 0;
	public static final int MONO_METHOD_ATTR_PRIVATE = 1;
	public static final int MONO_METHOD_ATTR_FAM_AND_ASSEM = 2;
	public static final int MONO_METHOD_ATTR_ASSEM = 3;
	public static final int MONO_METHOD_ATTR_FAMILY = 4;
	public static final int MONO_METHOD_ATTR_FAM_OR_ASSEM = 5;
	public static final int MONO_METHOD_ATTR_PUBLIC = 6;
	public static final int MONO_METHOD_ATTR_STATIC = 16;
	public static final int MONO_METHOD_ATTR_FINAL = 32;
	public static final int MONO_METHOD_ATTR_VIRTUAL = 64;
	public static final int MONO_METHOD_ATTR_HIDE_BY_SIG = 128;
	public static final int MONO_METHOD_ATTR_VTABLE_LAYOUT_MASK = 256;
	public static final int MONO_METHOD_ATTR_REUSE_SLOT = 0;
	public static final int MONO_METHOD_ATTR_NEW_SLOT = 256;
	public static final int MONO_METHOD_ATTR_STRICT = 512;
	public static final int MONO_METHOD_ATTR_ABSTRACT = 1024;
	public static final int MONO_METHOD_ATTR_SPECIAL_NAME = 2048;
	public static final int MONO_METHOD_ATTR_PINVOKE_IMPL = 8192;
	public static final int MONO_METHOD_ATTR_UNMANAGED_EXPORT = 8;
	/// For runtime use only
	public static final int MONO_METHOD_ATTR_RESERVED_MASK = 53248;
	public static final int MONO_METHOD_ATTR_RT_SPECIAL_NAME = 4096;
	public static final int MONO_METHOD_ATTR_HAS_SECURITY = 16384;
	public static final int MONO_METHOD_ATTR_REQUIRE_SEC_OBJECT = 32768;
	public static final int MONO_METHOD_IMPL_ATTR_CODE_TYPE_MASK = 3;
	public static final int MONO_METHOD_IMPL_ATTR_IL = 0;
	public static final int MONO_METHOD_IMPL_ATTR_NATIVE = 1;
	public static final int MONO_METHOD_IMPL_ATTR_OPTIL = 2;
	public static final int MONO_METHOD_IMPL_ATTR_RUNTIME = 3;
	public static final int MONO_METHOD_IMPL_ATTR_MANAGED_MASK = 4;
	public static final int MONO_METHOD_IMPL_ATTR_UNMANAGED = 4;
	public static final int MONO_METHOD_IMPL_ATTR_MANAGED = 0;
	public static final int MONO_METHOD_IMPL_ATTR_FORWARD_REF = 16;
	public static final int MONO_METHOD_IMPL_ATTR_PRESERVE_SIG = 128;
	public static final int MONO_METHOD_IMPL_ATTR_INTERNAL_CALL = 4096;
	public static final int MONO_METHOD_IMPL_ATTR_SYNCHRONIZED = 32;
	public static final int MONO_METHOD_IMPL_ATTR_NOINLINING = 8;
	public static final int MONO_METHOD_IMPL_ATTR_NOOPTIMIZATION = 64;
	public static final int MONO_METHOD_IMPL_ATTR_MAX_METHOD_IMPL_VAL = 65535;
	public static final int MONO_METHOD_SEMANTIC_SETTER = 1;
	public static final int MONO_METHOD_SEMANTIC_GETTER = 2;
	public static final int MONO_METHOD_SEMANTIC_OTHER = 4;
	public static final int MONO_METHOD_SEMANTIC_ADD_ON = 8;
	public static final int MONO_METHOD_SEMANTIC_REMOVE_ON = 16;
	public static final int MONO_METHOD_SEMANTIC_FIRE = 32;
	public static final int MONO_PARAM_ATTR_IN = 1;
	public static final int MONO_PARAM_ATTR_OUT = 2;
	public static final int MONO_PARAM_ATTR_OPTIONAL = 16;
	public static final int MONO_PARAM_ATTR_RESERVED_MASK = 61440;
	public static final int MONO_PARAM_ATTR_HAS_DEFAULT = 4096;
	public static final int MONO_PARAM_ATTR_HAS_MARSHAL = 8192;
	public static final int MONO_PARAM_ATTR_UNUSED = 53216;
	public static final int MONO_PROPERTY_ATTR_SPECIAL_NAME = 512;
	public static final int MONO_PROPERTY_ATTR_RESERVED_MASK = 62464;
	public static final int MONO_PROPERTY_ATTR_RT_SPECIAL_NAME = 1024;
	public static final int MONO_PROPERTY_ATTR_HAS_DEFAULT = 4096;
	public static final int MONO_PROPERTY_ATTR_UNUSED = 59903;
	public static final int MONO_TYPE_ATTR_VISIBILITY_MASK = 7;
	public static final int MONO_TYPE_ATTR_NOT_PUBLIC = 0;
	public static final int MONO_TYPE_ATTR_PUBLIC = 1;
	public static final int MONO_TYPE_ATTR_NESTED_PUBLIC = 2;
	public static final int MONO_TYPE_ATTR_NESTED_PRIVATE = 3;
	public static final int MONO_TYPE_ATTR_NESTED_FAMILY = 4;
	public static final int MONO_TYPE_ATTR_NESTED_ASSEMBLY = 5;
	public static final int MONO_TYPE_ATTR_NESTED_FAM_AND_ASSEM = 6;
	public static final int MONO_TYPE_ATTR_NESTED_FAM_OR_ASSEM = 7;
	public static final int MONO_TYPE_ATTR_LAYOUT_MASK = 24;
	public static final int MONO_TYPE_ATTR_AUTO_LAYOUT = 0;
	public static final int MONO_TYPE_ATTR_SEQUENTIAL_LAYOUT = 8;
	public static final int MONO_TYPE_ATTR_EXPLICIT_LAYOUT = 16;
	public static final int MONO_TYPE_ATTR_CLASS_SEMANTIC_MASK = 32;
	public static final int MONO_TYPE_ATTR_CLASS = 0;
	public static final int MONO_TYPE_ATTR_INTERFACE = 32;
	public static final int MONO_TYPE_ATTR_ABSTRACT = 128;
	public static final int MONO_TYPE_ATTR_SEALED = 256;
	public static final int MONO_TYPE_ATTR_SPECIAL_NAME = 1024;
	public static final int MONO_TYPE_ATTR_IMPORT = 4096;
	public static final int MONO_TYPE_ATTR_SERIALIZABLE = 8192;
	public static final int MONO_TYPE_ATTR_STRING_FORMAT_MASK = 196608;
	public static final int MONO_TYPE_ATTR_ANSI_CLASS = 0;
	public static final int MONO_TYPE_ATTR_UNICODE_CLASS = 65536;
	public static final int MONO_TYPE_ATTR_AUTO_CLASS = 131072;
	public static final int MONO_TYPE_ATTR_CUSTOM_CLASS = 196608;
	public static final int MONO_TYPE_ATTR_CUSTOM_MASK = 12582912;
	public static final int MONO_TYPE_ATTR_BEFORE_FIELD_INIT = 1048576;
	public static final int MONO_TYPE_ATTR_FORWARDER = 2097152;
	public static final int MONO_TYPE_ATTR_RESERVED_MASK = 264192;
	public static final int MONO_TYPE_ATTR_RT_SPECIAL_NAME = 2048;
	public static final int MONO_TYPE_ATTR_HAS_SECURITY = 262144;
	public enum MonoDebugFormat implements IntValuedEnum<MonoDebugFormat > {
		MONO_DEBUG_FORMAT_NONE(0),
		MONO_DEBUG_FORMAT_MONO(1),
		MONO_DEBUG_FORMAT_DEBUGGER(2);
		MonoDebugFormat(long value) {
			this.value = value;
		}
		public final long value;
		public long value() {
			return this.value;
		}
		public Iterator<MonoDebugFormat > iterator() {
			return Collections.singleton(this).iterator();
		}
		public static ValuedEnum<MonoDebugFormat > fromValue(long value) {
			return FlagSet.fromValue(value, values());
		}
	};
	public enum enum1 {
		
	};
	public static final int MONO_FLOW_NEXT = 0;
	public static final int MONO_FLOW_BRANCH = 1;
	public static final int MONO_FLOW_COND_BRANCH = 2;
	public static final int MONO_FLOW_ERROR = 3;
	public static final int MONO_FLOW_CALL = 4;
	public static final int MONO_FLOW_RETURN = 5;
	public static final int MONO_FLOW_META = 6;
	public static final int MonoInlineNone = 0;
	public static final int MonoInlineType = 1;
	public static final int MonoInlineField = 2;
	public static final int MonoInlineMethod = 3;
	public static final int MonoInlineTok = 4;
	public static final int MonoInlineString = 5;
	public static final int MonoInlineSig = 6;
	public static final int MonoInlineVar = 7;
	public static final int MonoShortInlineVar = 8;
	public static final int MonoInlineBrTarget = 9;
	public static final int MonoShortInlineBrTarget = 10;
	public static final int MonoInlineSwitch = 11;
	public static final int MonoInlineR = 12;
	public static final int MonoShortInlineR = 13;
	public static final int MonoInlineI = 14;
	public static final int MonoShortInlineI = 15;
	public static final int MonoInlineI8 = 16;
	/// <i>native declaration : mono/metadata/profiler.h</i>
	public static final int MONO_PROFILER_MAX_STAT_CALL_CHAIN_DEPTH = 128;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/metadata.h</i>
	public static final int MONO_ZERO_LEN_ARRAY = 0;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/mono-debug.h</i>
	public static final int MONO_DEBUG_VAR_ADDRESS_MODE_REGOFFSET = 268435456;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/reflection.h</i>
	public static final int MONO_DECLSEC_ACTION_MAX = 18;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/mono-debug.h</i>
	public static final int MONO_DEBUGGER_MINOR_VERSION = 6;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/reflection.h</i>
	public static final int MONO_DECLSEC_ACTION_MIN = 1;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/mono-debug.h</i>
	public static final int MONO_DEBUGGER_MAJOR_VERSION = 81;
	/// <i>native declaration : mono/metadata/debug-mono-symfile.h</i>
	public static final int MONO_SYMBOL_FILE_MAJOR_VERSION = 50;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/mono-debug.h</i>
	public static final int MONO_DEBUG_VAR_ADDRESS_MODE_REGISTER = 0;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/mono-debug.h</i>
	public static final int MONO_DEBUG_VAR_ADDRESS_MODE_TWO_REGISTERS = 536870912;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/mono-debug.h</i>
	public static final int MONO_DEBUG_VAR_ADDRESS_MODE_FLAGS = -268435456;
	/// <i>native declaration : mono/metadata/debug-mono-symfile.h</i>
	public static final int MONO_SYMBOL_FILE_MINOR_VERSION = 0;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/mono-debug.h</i>
	public static final int MONO_DEBUG_VAR_ADDRESS_MODE_DEAD = 805306368;
	/// <i>native declaration : mono/metadata/opcodes.h</i>
	public static final int MONO_CUSTOM_PREFIX = 240;
	/// <i>native declaration : mono/metadata/debug-mono-symfile.h</i>
	public static final long MONO_SYMBOL_FILE_MAGIC = 5037318119232611860L;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/mono-debug.h</i>
	public static final long MONO_DEBUGGER_MAGIC = 8862914395094897703L;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/loader.h</i>
	public static final int _MONO_METADATA_LOADER_H_ = 1;
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/utils/mono-publib.h</i>
	public static abstract class MonoFunc extends Callback<MonoFunc > {
		public abstract void apply(Pointer<? > data, Pointer<? > user_data);
	};
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/utils/mono-publib.h</i>
	public static abstract class MonoHFunc extends Callback<MonoHFunc > {
		public abstract void apply(Pointer<? > key, Pointer<? > value, Pointer<? > user_data);
	};
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/loader.h</i>
	public static abstract class MonoStackWalk extends Callback<MonoStackWalk > {
		public abstract int apply(Pointer<MonoLibrary.MonoMethod > method, int native_offset, int il_offset, int managed, Pointer<? > data);
	};
	/// <i>native declaration : mono/metadata/object.h:33</i>
	public static abstract class MonoInvokeFunc extends Callback<MonoInvokeFunc > {
		public abstract Pointer<MonoObject > apply(Pointer<MonoLibrary.MonoMethod > method, Pointer<? > obj, Pointer<Pointer<? > > params, Pointer<Pointer<MonoObject > > exc);
	};
	/// <i>native declaration : mono/metadata/object.h:34</i>
	public static abstract class MonoCompileFunc extends Callback<MonoCompileFunc > {
		public abstract Pointer<? > apply(Pointer<MonoLibrary.MonoMethod > method);
	};
	/// <i>native declaration : mono/metadata/object.h</i>
	public static abstract class MonoMainThreadFunc extends Callback<MonoMainThreadFunc > {
		public abstract void apply(Pointer<? > user_data);
	};
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/appdomain.h</i>
	public static abstract class MonoThreadStartCB extends Callback<MonoThreadStartCB > {
		public abstract void apply(@Ptr long tid, Pointer<? > stack_start, Pointer<? > func);
	};
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/appdomain.h</i>
	public static abstract class MonoThreadAttachCB extends Callback<MonoThreadAttachCB > {
		public abstract void apply(@Ptr long tid, Pointer<? > stack_start);
	};
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/appdomain.h</i>
	public static abstract class MonoDomainFunc extends Callback<MonoDomainFunc > {
		public abstract void apply(Pointer<MonoLibrary.MonoDomain > domain, Pointer<? > user_data);
	};
	/// <i>native declaration : /Library/Frameworks/Mono.framework/Headers/mono-2.0/mono/metadata/appdomain.h</i>
	public static abstract class MonoCoreClrPlatformCB extends Callback<MonoCoreClrPlatformCB > {
		public abstract int apply(Pointer<Byte > image_name);
	};
	/// <i>native declaration : mono/jit/jit.h</i>
	public static abstract class MonoBreakPolicyFunc extends Callback<MonoBreakPolicyFunc > {
		public abstract ValuedEnum<MonoLibrary.MonoBreakPolicy > apply(Pointer<MonoLibrary.MonoMethod > method);
	};
	/**
	 * Installs a function which is called each time a new assembly is loaded.<br>
	 * <i>native declaration : mono/metadata/assembly.h</i>
	 */
	public static abstract class MonoAssemblyLoadFunc extends Callback<MonoAssemblyLoadFunc > {
		public abstract void apply(Pointer<MonoLibrary.MonoAssembly > assembly, Pointer<? > user_data);
	};
	/**
	 * Installs a new function which is used to search the list of loaded <br>
	 * assemblies for a given assembly name.<br>
	 * <i>native declaration : mono/metadata/assembly.h:54</i>
	 */
	public static abstract class MonoAssemblySearchFunc extends Callback<MonoAssemblySearchFunc > {
		public abstract Pointer<MonoLibrary.MonoAssembly > apply(Pointer<MonoLibrary.MonoAssemblyName > aname, Pointer<? > user_data);
	};
	/**
	 * Installs a function which is called before a new assembly is loaded<br>
	 * The hook are invoked from last hooked to first. If any of them returns<br>
	 * a non-null value, that will be the value returned in mono_assembly_load<br>
	 * <i>native declaration : mono/metadata/assembly.h:74</i>
	 */
	public static abstract class MonoAssemblyPreLoadFunc extends Callback<MonoAssemblyPreLoadFunc > {
		public abstract Pointer<MonoLibrary.MonoAssembly > apply(Pointer<MonoLibrary.MonoAssemblyName > aname, Pointer<Pointer<Byte > > assemblies_path, Pointer<? > user_data);
	};
	/// <i>native declaration : mono/metadata/debug-helpers.h:9</i>
	public static abstract class MonoDisIndenter extends Callback<MonoDisIndenter > {
		public abstract Pointer<Byte > apply(Pointer<MonoDisHelper > dh, Pointer<MonoLibrary.MonoMethod > method, int ip_offset);
	};
	/// <i>native declaration : mono/metadata/debug-helpers.h:10</i>
	public static abstract class MonoDisTokener extends Callback<MonoDisTokener > {
		public abstract Pointer<Byte > apply(Pointer<MonoDisHelper > dh, Pointer<MonoLibrary.MonoMethod > method, int token);
	};
	/// <i>native declaration : mono/metadata/mono-gc.h</i>
	public static abstract class MonoGCReferences extends Callback<MonoGCReferences > {
		public abstract int apply(Pointer<MonoObject > obj, Pointer<MonoLibrary.MonoClass > klass, @Ptr long size, @Ptr long num, Pointer<Pointer<MonoObject > > refs, Pointer<SizeT > offsets, Pointer<? > data);
	};
	public static native void mono_free(Pointer<? > voidPtr1);
	public static native void mono_images_init();
	public static native void mono_images_cleanup();
	public static native Pointer<MonoLibrary.MonoImage > mono_image_open(Pointer<Byte > fname, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_open_full(Pointer<Byte > fname, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status, int refonly);
	public static native Pointer<MonoLibrary.MonoImage > mono_pe_file_open(Pointer<Byte > fname, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_open_from_data(Pointer<Byte > data, int data_len, int need_copy, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_open_from_data_full(Pointer<Byte > data, int data_len, int need_copy, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status, int refonly);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_open_from_data_with_name(Pointer<Byte > data, int data_len, int need_copy, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status, int refonly, Pointer<Byte > name);
	public static native void mono_image_fixup_vtable(Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_loaded(Pointer<Byte > name);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_loaded_full(Pointer<Byte > name, int refonly);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_loaded_by_guid(Pointer<Byte > guid);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_loaded_by_guid_full(Pointer<Byte > guid, int refonly);
	public static native void mono_image_init(Pointer<MonoLibrary.MonoImage > image);
	public static native void mono_image_close(Pointer<MonoLibrary.MonoImage > image);
	public static native void mono_image_addref(Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<Byte > mono_image_strerror(ValuedEnum<MonoLibrary.MonoImageOpenStatus > status);
	public static native int mono_image_ensure_section(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > section);
	public static native int mono_image_ensure_section_idx(Pointer<MonoLibrary.MonoImage > image, int section);
	public static native int mono_image_get_entry_point(Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<Byte > mono_image_get_resource(Pointer<MonoLibrary.MonoImage > image, int offset, Pointer<Integer > size);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_load_file_for_image(Pointer<MonoLibrary.MonoImage > image, int fileidx);
	public static native Pointer<MonoLibrary.MonoImage > mono_image_load_module(Pointer<MonoLibrary.MonoImage > image, int idx);
	public static native Pointer<Byte > mono_image_get_name(Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<Byte > mono_image_get_filename(Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<Byte > mono_image_get_guid(Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_image_get_assembly(Pointer<MonoLibrary.MonoImage > image);
	public static native int mono_image_is_dynamic(Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<Byte > mono_image_rva_map(Pointer<MonoLibrary.MonoImage > image, int rva);
	public static native Pointer<MonoLibrary.MonoTableInfo > mono_image_get_table_info(Pointer<MonoLibrary.MonoImage > image, int table_id);
	public static native int mono_image_get_table_rows(Pointer<MonoLibrary.MonoImage > image, int table_id);
	public static native int mono_table_info_get_rows(Pointer<MonoLibrary.MonoTableInfo > table);
	public static native Pointer<? > mono_image_lookup_resource(Pointer<MonoLibrary.MonoImage > image, int res_id, int lang_id, Pointer<Short > name);
	public static native Pointer<Byte > mono_image_get_public_key(Pointer<MonoLibrary.MonoImage > image, Pointer<Integer > size);
	public static native Pointer<Byte > mono_image_get_strong_name(Pointer<MonoLibrary.MonoImage > image, Pointer<Integer > size);
	public static native int mono_image_strong_name_position(Pointer<MonoLibrary.MonoImage > image, Pointer<Integer > size);
	public static native void mono_image_add_to_name_cache(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > nspace, Pointer<Byte > name, int idx);
	public static native int mono_image_has_authenticode_entry(Pointer<MonoLibrary.MonoImage > image);
	public static native void mono_metadata_init();
	public static native void mono_metadata_decode_row(Pointer<MonoLibrary.MonoTableInfo > t, int idx, Pointer<Integer > res, int res_size);
	public static native int mono_metadata_decode_row_col(Pointer<MonoLibrary.MonoTableInfo > t, int idx, int col);
	public static native int mono_metadata_compute_size(Pointer<MonoLibrary.MonoImage > meta, int tableindex, Pointer<Integer > result_bitfield);
	public static native Pointer<Byte > mono_metadata_locate(Pointer<MonoLibrary.MonoImage > meta, int table, int idx);
	public static native Pointer<Byte > mono_metadata_locate_token(Pointer<MonoLibrary.MonoImage > meta, int token);
	public static native Pointer<Byte > mono_metadata_string_heap(Pointer<MonoLibrary.MonoImage > meta, int table_index);
	public static native Pointer<Byte > mono_metadata_blob_heap(Pointer<MonoLibrary.MonoImage > meta, int table_index);
	public static native Pointer<Byte > mono_metadata_user_string(Pointer<MonoLibrary.MonoImage > meta, int table_index);
	public static native Pointer<Byte > mono_metadata_guid_heap(Pointer<MonoLibrary.MonoImage > meta, int table_index);
	public static native int mono_metadata_typedef_from_field(Pointer<MonoLibrary.MonoImage > meta, int table_index);
	public static native int mono_metadata_typedef_from_method(Pointer<MonoLibrary.MonoImage > meta, int table_index);
	public static native int mono_metadata_nested_in_typedef(Pointer<MonoLibrary.MonoImage > meta, int table_index);
	public static native int mono_metadata_nesting_typedef(Pointer<MonoLibrary.MonoImage > meta, int table_index, int start_index);
	public static native Pointer<Pointer<MonoLibrary.MonoClass > > mono_metadata_interfaces_from_typedef(Pointer<MonoLibrary.MonoImage > meta, int table_index, Pointer<Integer > count);
	public static native int mono_metadata_events_from_typedef(Pointer<MonoLibrary.MonoImage > meta, int table_index, Pointer<Integer > end_idx);
	public static native int mono_metadata_methods_from_event(Pointer<MonoLibrary.MonoImage > meta, int table_index, Pointer<Integer > end);
	public static native int mono_metadata_properties_from_typedef(Pointer<MonoLibrary.MonoImage > meta, int table_index, Pointer<Integer > end);
	public static native int mono_metadata_methods_from_property(Pointer<MonoLibrary.MonoImage > meta, int table_index, Pointer<Integer > end);
	public static native int mono_metadata_packing_from_typedef(Pointer<MonoLibrary.MonoImage > meta, int table_index, Pointer<Integer > packing, Pointer<Integer > size);
	public static native Pointer<Byte > mono_metadata_get_marshal_info(Pointer<MonoLibrary.MonoImage > meta, int idx, int is_field);
	public static native int mono_metadata_custom_attrs_from_index(Pointer<MonoLibrary.MonoImage > meta, int cattr_index);
	public static native Pointer<MonoMarshalSpec > mono_metadata_parse_marshal_spec(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > ptr);
	public static native void mono_metadata_free_marshal_spec(Pointer<MonoMarshalSpec > spec);
	public static native int mono_metadata_implmap_from_method(Pointer<MonoLibrary.MonoImage > meta, int method_idx);
	public static native void mono_metadata_field_info(Pointer<MonoLibrary.MonoImage > meta, int table_index, Pointer<Integer > offset, Pointer<Integer > rva, Pointer<Pointer<MonoMarshalSpec > > marshal_spec);
	public static native int mono_metadata_get_constant_index(Pointer<MonoLibrary.MonoImage > meta, int token, int hint);
	public static native int mono_metadata_decode_value(Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native int mono_metadata_decode_signed_value(Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native int mono_metadata_decode_blob_size(Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native void mono_metadata_encode_value(int value, Pointer<Byte > bug, Pointer<Pointer<Byte > > endbuf);
	public static native int mono_type_is_byref(Pointer<MonoLibrary.MonoType > type);
	public static native int mono_type_get_type(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoMethodSignature > mono_type_get_signature(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoClass > mono_type_get_class(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoArrayType > mono_type_get_array_type(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoType > mono_type_get_ptr_type(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoClass > mono_type_get_modifiers(Pointer<MonoLibrary.MonoType > type, Pointer<Integer > is_required, Pointer<Pointer<? > > iter);
	public static native int mono_type_is_struct(Pointer<MonoLibrary.MonoType > type);
	public static native int mono_type_is_void(Pointer<MonoLibrary.MonoType > type);
	public static native int mono_type_is_pointer(Pointer<MonoLibrary.MonoType > type);
	public static native int mono_type_is_reference(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoType > mono_signature_get_return_type(Pointer<MonoLibrary.MonoMethodSignature > sig);
	public static native Pointer<MonoLibrary.MonoType > mono_signature_get_params(Pointer<MonoLibrary.MonoMethodSignature > sig, Pointer<Pointer<? > > iter);
	public static native int mono_signature_get_param_count(Pointer<MonoLibrary.MonoMethodSignature > sig);
	public static native int mono_signature_get_call_conv(Pointer<MonoLibrary.MonoMethodSignature > sig);
	public static native int mono_signature_vararg_start(Pointer<MonoLibrary.MonoMethodSignature > sig);
	public static native int mono_signature_is_instance(Pointer<MonoLibrary.MonoMethodSignature > sig);
	public static native int mono_signature_explicit_this(Pointer<MonoLibrary.MonoMethodSignature > sig);
	public static native int mono_metadata_parse_typedef_or_ref(Pointer<MonoLibrary.MonoImage > m, Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native int mono_metadata_parse_custom_mod(Pointer<MonoLibrary.MonoImage > m, Pointer<MonoCustomMod > dest, Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native Pointer<MonoArrayType > mono_metadata_parse_array(Pointer<MonoLibrary.MonoImage > m, Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native void mono_metadata_free_array(Pointer<MonoArrayType > array);
	public static native Pointer<MonoLibrary.MonoType > mono_metadata_parse_type(Pointer<MonoLibrary.MonoImage > m, ValuedEnum<MonoLibrary.MonoParseTypeMode > mode, short opt_attrs, Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native Pointer<MonoLibrary.MonoType > mono_metadata_parse_param(Pointer<MonoLibrary.MonoImage > m, Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native Pointer<MonoLibrary.MonoType > mono_metadata_parse_ret_type(Pointer<MonoLibrary.MonoImage > m, Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native Pointer<MonoLibrary.MonoType > mono_metadata_parse_field_type(Pointer<MonoLibrary.MonoImage > m, short field_flags, Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native Pointer<MonoLibrary.MonoType > mono_type_create_from_typespec(Pointer<MonoLibrary.MonoImage > image, int type_spec);
	public static native void mono_metadata_free_type(Pointer<MonoLibrary.MonoType > type);
	public static native int mono_type_size(Pointer<MonoLibrary.MonoType > type, Pointer<Integer > alignment);
	public static native int mono_type_stack_size(Pointer<MonoLibrary.MonoType > type, Pointer<Integer > alignment);
	public static native int mono_type_generic_inst_is_valuetype(Pointer<MonoLibrary.MonoType > type);
	public static native int mono_metadata_generic_class_is_valuetype(Pointer<MonoLibrary.MonoGenericClass > gclass);
	public static native int mono_metadata_generic_class_hash(Pointer<MonoLibrary.MonoGenericClass > gclass);
	public static native int mono_metadata_generic_class_equal(Pointer<MonoLibrary.MonoGenericClass > g1, Pointer<MonoLibrary.MonoGenericClass > g2);
	public static native int mono_metadata_type_hash(Pointer<MonoLibrary.MonoType > t1);
	public static native int mono_metadata_type_equal(Pointer<MonoLibrary.MonoType > t1, Pointer<MonoLibrary.MonoType > t2);
	public static native Pointer<MonoLibrary.MonoMethodSignature > mono_metadata_signature_alloc(Pointer<MonoLibrary.MonoImage > image, int nparams);
	public static native Pointer<MonoLibrary.MonoMethodSignature > mono_metadata_signature_dup(Pointer<MonoLibrary.MonoMethodSignature > sig);
	public static native Pointer<MonoLibrary.MonoMethodSignature > mono_metadata_parse_signature(Pointer<MonoLibrary.MonoImage > image, int token);
	public static native Pointer<MonoLibrary.MonoMethodSignature > mono_metadata_parse_method_signature(Pointer<MonoLibrary.MonoImage > m, int def, Pointer<Byte > ptr, Pointer<Pointer<Byte > > rptr);
	public static native void mono_metadata_free_method_signature(Pointer<MonoLibrary.MonoMethodSignature > method);
	public static native int mono_metadata_signature_equal(Pointer<MonoLibrary.MonoMethodSignature > sig1, Pointer<MonoLibrary.MonoMethodSignature > sig2);
	public static native int mono_signature_hash(Pointer<MonoLibrary.MonoMethodSignature > sig);
	public static native Pointer<MonoLibrary.MonoMethodHeader > mono_metadata_parse_mh(Pointer<MonoLibrary.MonoImage > m, Pointer<Byte > ptr);
	public static native void mono_metadata_free_mh(Pointer<MonoLibrary.MonoMethodHeader > mh);
	public static native Pointer<Byte > mono_method_header_get_code(Pointer<MonoLibrary.MonoMethodHeader > header, Pointer<Integer > code_size, Pointer<Integer > max_stack);
	public static native Pointer<Pointer<MonoLibrary.MonoType > > mono_method_header_get_locals(Pointer<MonoLibrary.MonoMethodHeader > header, Pointer<Integer > num_locals, Pointer<Integer > init_locals);
	public static native int mono_method_header_get_num_clauses(Pointer<MonoLibrary.MonoMethodHeader > header);
	public static native int mono_method_header_get_clauses(Pointer<MonoLibrary.MonoMethodHeader > header, Pointer<MonoLibrary.MonoMethod > method, Pointer<Pointer<? > > iter, Pointer<MonoExceptionClause > clause);
	public static native int mono_type_to_unmanaged(Pointer<MonoLibrary.MonoType > type, Pointer<MonoMarshalSpec > mspec, int as_field, int unicode, Pointer<ValuedEnum<MonoLibrary.MonoMarshalConv > > conv);
	public static native int mono_metadata_token_from_dor(int dor_index);
	public static native Pointer<Byte > mono_guid_to_string(Pointer<Byte > guid);
	public static native int mono_metadata_declsec_from_index(Pointer<MonoLibrary.MonoImage > meta, int idx);
	public static native int mono_metadata_translate_token_index(Pointer<MonoLibrary.MonoImage > image, int table, int idx);
	public static native void mono_metadata_decode_table_row(Pointer<MonoLibrary.MonoImage > image, int table, int idx, Pointer<Integer > res, int res_size);
	public static native int mono_metadata_decode_table_row_col(Pointer<MonoLibrary.MonoImage > image, int table, int idx, int col);
	public static native Pointer<MonoLibrary.MonoMethod > mono_get_method(Pointer<MonoLibrary.MonoImage > image, int token, Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoMethod > mono_get_method_full(Pointer<MonoLibrary.MonoImage > image, int token, Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoGenericContext > context);
	public static native Pointer<MonoLibrary.MonoMethod > mono_get_method_constrained(Pointer<MonoLibrary.MonoImage > image, int token, Pointer<MonoLibrary.MonoClass > constrained_class, Pointer<MonoLibrary.MonoGenericContext > context, Pointer<Pointer<MonoLibrary.MonoMethod > > cil_method);
	public static native void mono_free_method(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoMethodSignature > mono_method_get_signature_full(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoImage > image, int token, Pointer<MonoLibrary.MonoGenericContext > context);
	public static native Pointer<MonoLibrary.MonoMethodSignature > mono_method_get_signature(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoImage > image, int token);
	public static native Pointer<MonoLibrary.MonoMethodSignature > mono_method_signature(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoMethodHeader > mono_method_get_header(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<Byte > mono_method_get_name(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoClass > mono_method_get_class(Pointer<MonoLibrary.MonoMethod > method);
	public static native int mono_method_get_token(Pointer<MonoLibrary.MonoMethod > method);
	public static native int mono_method_get_flags(Pointer<MonoLibrary.MonoMethod > method, Pointer<Integer > iflags);
	public static native int mono_method_get_index(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoImage > mono_load_image(Pointer<Byte > fname, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native void mono_add_internal_call(Pointer<Byte > name, Pointer<? > method);
	public static native Pointer<? > mono_lookup_internal_call(Pointer<MonoLibrary.MonoMethod > method);
	public static native void mono_dllmap_insert(Pointer<MonoLibrary.MonoImage > assembly, Pointer<Byte > dll, Pointer<Byte > func, Pointer<Byte > tdll, Pointer<Byte > tfunc);
	public static native Pointer<? > mono_lookup_pinvoke_call(Pointer<MonoLibrary.MonoMethod > method, Pointer<Pointer<Byte > > exc_class, Pointer<Pointer<Byte > > exc_arg);
	public static native void mono_method_get_param_names(Pointer<MonoLibrary.MonoMethod > method, Pointer<Pointer<Byte > > names);
	public static native int mono_method_get_param_token(Pointer<MonoLibrary.MonoMethod > method, int idx);
	public static native void mono_method_get_marshal_info(Pointer<MonoLibrary.MonoMethod > method, Pointer<Pointer<MonoMarshalSpec > > mspecs);
	public static native int mono_method_has_marshal_info(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoMethod > mono_method_get_last_managed();
	public static native void mono_stack_walk(Pointer<MonoLibrary.MonoStackWalk > func, Pointer<? > user_data);
	public static native void mono_stack_walk_no_il(Pointer<MonoLibrary.MonoStackWalk > func, Pointer<? > user_data);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_get(Pointer<MonoLibrary.MonoImage > image, int type_token);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_get_full(Pointer<MonoLibrary.MonoImage > image, int type_token, Pointer<MonoLibrary.MonoGenericContext > context);
	public static native int mono_class_init(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoVTable > mono_class_vtable(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_from_name(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > name_space, Pointer<Byte > name);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_from_name_case(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > name_space, Pointer<Byte > name);
	public static native Pointer<MonoLibrary.MonoMethod > mono_class_get_method_from_name_flags(Pointer<MonoLibrary.MonoClass > klass, Pointer<Byte > name, int param_count, int flags);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_from_typeref(Pointer<MonoLibrary.MonoImage > image, int type_token);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_from_generic_parameter(Pointer<MonoLibrary.MonoGenericParam > param, Pointer<MonoLibrary.MonoImage > image, int is_mvar);
	public static native Pointer<MonoLibrary.MonoType > mono_class_inflate_generic_type(Pointer<MonoLibrary.MonoType > type, Pointer<MonoLibrary.MonoGenericContext > context);
	public static native Pointer<MonoLibrary.MonoMethod > mono_class_inflate_generic_method(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoGenericContext > context);
	public static native Pointer<MonoLibrary.MonoMethod > mono_get_inflated_method(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoClassField > mono_field_from_token(Pointer<MonoLibrary.MonoImage > image, int token, Pointer<Pointer<MonoLibrary.MonoClass > > retklass, Pointer<MonoLibrary.MonoGenericContext > context);
	public static native Pointer<MonoLibrary.MonoClass > mono_bounded_array_class_get(Pointer<MonoLibrary.MonoClass > element_class, int rank, int bounded);
	public static native Pointer<MonoLibrary.MonoClass > mono_array_class_get(Pointer<MonoLibrary.MonoClass > element_class, int rank);
	public static native Pointer<MonoLibrary.MonoClass > mono_ptr_class_get(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoClassField > mono_class_get_field(Pointer<MonoLibrary.MonoClass > klass, int field_token);
	public static native Pointer<MonoLibrary.MonoClassField > mono_class_get_field_from_name(Pointer<MonoLibrary.MonoClass > klass, Pointer<Byte > name);
	public static native int mono_class_get_field_token(Pointer<MonoLibrary.MonoClassField > field);
	public static native int mono_class_get_event_token(Pointer<MonoLibrary.MonoEvent > event);
	public static native Pointer<MonoLibrary.MonoProperty > mono_class_get_property_from_name(Pointer<MonoLibrary.MonoClass > klass, Pointer<Byte > name);
	public static native int mono_class_get_property_token(Pointer<MonoLibrary.MonoProperty > prop);
	public static native int mono_array_element_size(Pointer<MonoLibrary.MonoClass > ac);
	public static native int mono_class_instance_size(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_array_element_size(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_data_size(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_value_size(Pointer<MonoLibrary.MonoClass > klass, Pointer<Integer > align);
	public static native int mono_class_min_align(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_from_mono_type(Pointer<MonoLibrary.MonoType > type);
	public static native int mono_class_is_subclass_of(Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoClass > klassc, int check_interfaces);
	public static native int mono_class_is_assignable_from(Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoClass > oklass);
	public static native Pointer<? > mono_ldtoken(Pointer<MonoLibrary.MonoImage > image, int token, Pointer<Pointer<MonoLibrary.MonoClass > > retclass, Pointer<MonoLibrary.MonoGenericContext > context);
	public static native Pointer<Byte > mono_type_get_name(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoType > mono_type_get_underlying_type(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoImage > mono_class_get_image(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_get_element_class(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_is_valuetype(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_is_enum(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoType > mono_class_enum_basetype(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_get_parent(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_get_nesting_type(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_get_rank(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_get_flags(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<Byte > mono_class_get_name(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<Byte > mono_class_get_namespace(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoType > mono_class_get_type(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_get_type_token(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoType > mono_class_get_byref_type(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_num_fields(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_num_methods(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_num_properties(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_class_num_events(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoClassField > mono_class_get_fields(Pointer<MonoLibrary.MonoClass > klass, Pointer<Pointer<? > > iter);
	public static native Pointer<MonoLibrary.MonoMethod > mono_class_get_methods(Pointer<MonoLibrary.MonoClass > klass, Pointer<Pointer<? > > iter);
	public static native Pointer<MonoLibrary.MonoProperty > mono_class_get_properties(Pointer<MonoLibrary.MonoClass > klass, Pointer<Pointer<? > > iter);
	public static native Pointer<MonoLibrary.MonoEvent > mono_class_get_events(Pointer<MonoLibrary.MonoClass > klass, Pointer<Pointer<? > > iter);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_get_interfaces(Pointer<MonoLibrary.MonoClass > klass, Pointer<Pointer<? > > iter);
	public static native Pointer<MonoLibrary.MonoClass > mono_class_get_nested_types(Pointer<MonoLibrary.MonoClass > klass, Pointer<Pointer<? > > iter);
	public static native Pointer<Byte > mono_field_get_name(Pointer<MonoLibrary.MonoClassField > field);
	public static native Pointer<MonoLibrary.MonoType > mono_field_get_type(Pointer<MonoLibrary.MonoClassField > field);
	public static native Pointer<MonoLibrary.MonoClass > mono_field_get_parent(Pointer<MonoLibrary.MonoClassField > field);
	public static native int mono_field_get_flags(Pointer<MonoLibrary.MonoClassField > field);
	public static native int mono_field_get_offset(Pointer<MonoLibrary.MonoClassField > field);
	public static native Pointer<Byte > mono_field_get_data(Pointer<MonoLibrary.MonoClassField > field);
	public static native Pointer<Byte > mono_property_get_name(Pointer<MonoLibrary.MonoProperty > prop);
	public static native Pointer<MonoLibrary.MonoMethod > mono_property_get_set_method(Pointer<MonoLibrary.MonoProperty > prop);
	public static native Pointer<MonoLibrary.MonoMethod > mono_property_get_get_method(Pointer<MonoLibrary.MonoProperty > prop);
	public static native Pointer<MonoLibrary.MonoClass > mono_property_get_parent(Pointer<MonoLibrary.MonoProperty > prop);
	public static native int mono_property_get_flags(Pointer<MonoLibrary.MonoProperty > prop);
	public static native Pointer<Byte > mono_event_get_name(Pointer<MonoLibrary.MonoEvent > event);
	public static native Pointer<MonoLibrary.MonoMethod > mono_event_get_add_method(Pointer<MonoLibrary.MonoEvent > event);
	public static native Pointer<MonoLibrary.MonoMethod > mono_event_get_remove_method(Pointer<MonoLibrary.MonoEvent > event);
	public static native Pointer<MonoLibrary.MonoMethod > mono_event_get_raise_method(Pointer<MonoLibrary.MonoEvent > event);
	public static native Pointer<MonoLibrary.MonoClass > mono_event_get_parent(Pointer<MonoLibrary.MonoEvent > event);
	public static native int mono_event_get_flags(Pointer<MonoLibrary.MonoEvent > event);
	public static native Pointer<MonoLibrary.MonoMethod > mono_class_get_method_from_name(Pointer<MonoLibrary.MonoClass > klass, Pointer<Byte > name, int param_count);
	public static native Pointer<Byte > mono_class_name_from_token(Pointer<MonoLibrary.MonoImage > image, int type_token);
	public static native int mono_method_can_access_field(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoClassField > field);
	public static native int mono_method_can_access_method(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoMethod > called);
	public static native void mono_error_init(Pointer<MonoError > error);
	public static native void mono_error_init_flags(Pointer<MonoError > error, short flags);
	public static native void mono_error_cleanup(Pointer<MonoError > error);
	public static native int mono_error_ok(Pointer<MonoError > error);
	public static native void mono_error_get_error_code(Pointer<MonoError > error);
	public static native Pointer<Byte > mono_error_get_message(Pointer<MonoError > error);
	public static native Pointer<Short > mono_string_chars(Pointer<MonoLibrary.MonoString > s);
	public static native int mono_string_length(Pointer<MonoLibrary.MonoString > s);
	public static native Pointer<MonoObject > mono_object_new(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoObject > mono_object_new_specific(Pointer<MonoLibrary.MonoVTable > vtable);
	public static native Pointer<MonoObject > mono_object_new_fast(Pointer<MonoLibrary.MonoVTable > vtable);
	public static native Pointer<MonoObject > mono_object_new_alloc_specific(Pointer<MonoLibrary.MonoVTable > vtable);
	public static native Pointer<MonoObject > mono_object_new_from_token(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoImage > image, int token);
	public static native Pointer<MonoLibrary.MonoArray > mono_array_new(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClass > eclass, @Ptr long n);
	public static native Pointer<MonoLibrary.MonoArray > mono_array_new_full(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClass > array_class, Pointer<SizeT > lengths, Pointer<SizeT > lower_bounds);
	public static native Pointer<MonoLibrary.MonoArray > mono_array_new_specific(Pointer<MonoLibrary.MonoVTable > vtable, @Ptr long n);
	public static native Pointer<MonoLibrary.MonoArray > mono_array_clone(Pointer<MonoLibrary.MonoArray > array);
	public static native Pointer<Byte > mono_array_addr_with_size(Pointer<MonoLibrary.MonoArray > array, int size, @Ptr long idx);
	@Ptr 
	public static native long mono_array_length(Pointer<MonoLibrary.MonoArray > array);
	public static native Pointer<MonoLibrary.MonoString > mono_string_new_utf16(Pointer<MonoLibrary.MonoDomain > domain, Pointer<Short > text, int len);
	public static native Pointer<MonoLibrary.MonoString > mono_string_new_size(Pointer<MonoLibrary.MonoDomain > domain, int len);
	public static native Pointer<MonoLibrary.MonoString > mono_ldstr(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoImage > image, int str_index);
	public static native Pointer<MonoLibrary.MonoString > mono_string_is_interned(Pointer<MonoLibrary.MonoString > str);
	public static native Pointer<MonoLibrary.MonoString > mono_string_intern(Pointer<MonoLibrary.MonoString > str);
	public static native Pointer<MonoLibrary.MonoString > mono_string_new(Pointer<MonoLibrary.MonoDomain > domain, Pointer<Byte > text);
	public static native Pointer<MonoLibrary.MonoString > mono_string_new_wrapper(Pointer<Byte > text);
	public static native Pointer<MonoLibrary.MonoString > mono_string_new_len(Pointer<MonoLibrary.MonoDomain > domain, Pointer<Byte > text, int length);
	public static native Pointer<Byte > mono_string_to_utf8(Pointer<MonoLibrary.MonoString > string_obj);
	public static native Pointer<Byte > mono_string_to_utf8_checked(Pointer<MonoLibrary.MonoString > string_obj, Pointer<MonoError > error);
	public static native Pointer<Short > mono_string_to_utf16(Pointer<MonoLibrary.MonoString > string_obj);
	public static native Pointer<MonoLibrary.MonoString > mono_string_from_utf16(Pointer<Short > data);
	public static native int mono_string_equal(Pointer<MonoLibrary.MonoString > s1, Pointer<MonoLibrary.MonoString > s2);
	public static native int mono_string_hash(Pointer<MonoLibrary.MonoString > s);
	public static native int mono_object_hash(Pointer<MonoObject > obj);
	public static native Pointer<MonoLibrary.MonoString > mono_object_to_string(Pointer<MonoObject > obj, Pointer<Pointer<MonoObject > > exc);
	public static native Pointer<MonoObject > mono_value_box(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClass > klass, Pointer<? > val);
	public static native void mono_value_copy(Pointer<? > dest, Pointer<? > src, Pointer<MonoLibrary.MonoClass > klass);
	public static native void mono_value_copy_array(Pointer<MonoLibrary.MonoArray > dest, int dest_idx, Pointer<? > src, int count);
	public static native Pointer<MonoLibrary.MonoDomain > mono_object_get_domain(Pointer<MonoObject > obj);
	public static native Pointer<MonoLibrary.MonoClass > mono_object_get_class(Pointer<MonoObject > obj);
	public static native Pointer<? > mono_object_unbox(Pointer<MonoObject > obj);
	public static native Pointer<MonoObject > mono_object_clone(Pointer<MonoObject > obj);
	public static native Pointer<MonoObject > mono_object_isinst(Pointer<MonoObject > obj, Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoObject > mono_object_isinst_mbyref(Pointer<MonoObject > obj, Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoObject > mono_object_castclass_mbyref(Pointer<MonoObject > obj, Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_monitor_try_enter(Pointer<MonoObject > obj, int ms);
	public static native int mono_monitor_enter(Pointer<MonoObject > obj);
	public static native int mono_object_get_size(Pointer<MonoObject > o);
	public static native void mono_monitor_exit(Pointer<MonoObject > obj);
	public static native void mono_raise_exception(Pointer<MonoLibrary.MonoException > ex);
	public static native void mono_runtime_object_init(Pointer<MonoObject > this_obj);
	public static native void mono_runtime_class_init(Pointer<MonoLibrary.MonoVTable > vtable);
	public static native Pointer<MonoLibrary.MonoMethod > mono_object_get_virtual_method(Pointer<MonoObject > obj, Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoObject > mono_runtime_invoke(Pointer<MonoLibrary.MonoMethod > method, Pointer<? > obj, Pointer<Pointer<? > > params, Pointer<Pointer<MonoObject > > exc);
	public static native Pointer<MonoLibrary.MonoMethod > mono_get_delegate_invoke(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoObject > mono_runtime_delegate_invoke(Pointer<MonoObject > delegate, Pointer<Pointer<? > > params, Pointer<Pointer<MonoObject > > exc);
	public static native Pointer<MonoObject > mono_runtime_invoke_array(Pointer<MonoLibrary.MonoMethod > method, Pointer<? > obj, Pointer<MonoLibrary.MonoArray > params, Pointer<Pointer<MonoObject > > exc);
	public static native Pointer<? > mono_method_get_unmanaged_thunk(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoArray > mono_runtime_get_main_args();
	public static native void mono_runtime_exec_managed_code(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoMainThreadFunc > main_func, Pointer<? > main_args);
	public static native int mono_runtime_run_main(Pointer<MonoLibrary.MonoMethod > method, int argc, Pointer<Pointer<Byte > > argv, Pointer<Pointer<MonoObject > > exc);
	public static native int mono_runtime_exec_main(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoArray > args, Pointer<Pointer<MonoObject > > exc);
	public static native Pointer<? > mono_load_remote_field(Pointer<MonoObject > this_obj, Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoClassField > field, Pointer<Pointer<? > > res);
	public static native Pointer<MonoObject > mono_load_remote_field_new(Pointer<MonoObject > this_obj, Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoClassField > field);
	public static native void mono_store_remote_field(Pointer<MonoObject > this_obj, Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoClassField > field, Pointer<? > val);
	public static native void mono_store_remote_field_new(Pointer<MonoObject > this_obj, Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoClassField > field, Pointer<MonoObject > arg);
	public static native void mono_unhandled_exception(Pointer<MonoObject > exc);
	public static native void mono_print_unhandled_exception(Pointer<MonoObject > exc);
	public static native Pointer<? > mono_compile_method(Pointer<MonoLibrary.MonoMethod > method);
	public static native void mono_field_set_value(Pointer<MonoObject > obj, Pointer<MonoLibrary.MonoClassField > field, Pointer<? > value);
	public static native void mono_field_static_set_value(Pointer<MonoLibrary.MonoVTable > vt, Pointer<MonoLibrary.MonoClassField > field, Pointer<? > value);
	public static native void mono_field_get_value(Pointer<MonoObject > obj, Pointer<MonoLibrary.MonoClassField > field, Pointer<? > value);
	public static native void mono_field_static_get_value(Pointer<MonoLibrary.MonoVTable > vt, Pointer<MonoLibrary.MonoClassField > field, Pointer<? > value);
	public static native Pointer<MonoObject > mono_field_get_value_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClassField > field, Pointer<MonoObject > obj);
	public static native void mono_property_set_value(Pointer<MonoLibrary.MonoProperty > prop, Pointer<? > obj, Pointer<Pointer<? > > params, Pointer<Pointer<MonoObject > > exc);
	public static native Pointer<MonoObject > mono_property_get_value(Pointer<MonoLibrary.MonoProperty > prop, Pointer<? > obj, Pointer<Pointer<? > > params, Pointer<Pointer<MonoObject > > exc);
	public static native int mono_gchandle_new(Pointer<MonoObject > obj, int pinned);
	public static native int mono_gchandle_new_weakref(Pointer<MonoObject > obj, int track_resurrection);
	public static native Pointer<MonoObject > mono_gchandle_get_target(int gchandle);
	public static native void mono_gchandle_free(int gchandle);
	public static native void mono_gc_wbarrier_set_field(Pointer<MonoObject > obj, Pointer<? > field_ptr, Pointer<MonoObject > value);
	public static native void mono_gc_wbarrier_set_arrayref(Pointer<MonoLibrary.MonoArray > arr, Pointer<? > slot_ptr, Pointer<MonoObject > value);
	public static native void mono_gc_wbarrier_arrayref_copy(Pointer<? > dest_ptr, Pointer<? > src_ptr, int count);
	public static native void mono_gc_wbarrier_generic_store(Pointer<? > ptr, Pointer<MonoObject > value);
	public static native void mono_gc_wbarrier_generic_nostore(Pointer<? > ptr);
	public static native void mono_gc_wbarrier_value_copy(Pointer<? > dest, Pointer<? > src, int count, Pointer<MonoLibrary.MonoClass > klass);
	public static native void mono_gc_wbarrier_object_copy(Pointer<MonoObject > obj, Pointer<MonoObject > src);
	public static native int mono_reflection_parse_type(Pointer<Byte > name, Pointer<MonoLibrary.MonoTypeNameParse > info);
	public static native Pointer<MonoLibrary.MonoType > mono_reflection_get_type(Pointer<MonoLibrary.MonoImage > image, Pointer<MonoLibrary.MonoTypeNameParse > info, int ignorecase, Pointer<Integer > type_resolve);
	public static native void mono_reflection_free_type_info(Pointer<MonoLibrary.MonoTypeNameParse > info);
	public static native Pointer<MonoLibrary.MonoType > mono_reflection_type_from_name(Pointer<Byte > name, Pointer<MonoLibrary.MonoImage > image);
	public static native int mono_reflection_get_token(Pointer<MonoObject > obj);
	public static native Pointer<MonoLibrary.MonoReflectionAssembly > mono_assembly_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoAssembly > assembly);
	public static native Pointer<MonoLibrary.MonoReflectionModule > mono_module_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<MonoLibrary.MonoReflectionModule > mono_module_file_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoImage > image, int table_index);
	public static native Pointer<MonoLibrary.MonoReflectionType > mono_type_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<MonoLibrary.MonoReflectionMethod > mono_method_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoClass > refclass);
	public static native Pointer<MonoLibrary.MonoReflectionField > mono_field_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoClassField > field);
	public static native Pointer<MonoLibrary.MonoReflectionProperty > mono_property_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoProperty > property);
	public static native Pointer<MonoLibrary.MonoReflectionEvent > mono_event_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoEvent > event);
	public static native Pointer<MonoLibrary.MonoArray > mono_param_get_objects(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoReflectionMethodBody > mono_method_body_get_object(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoObject > mono_get_dbnull_object(Pointer<MonoLibrary.MonoDomain > domain);
	public static native Pointer<MonoLibrary.MonoArray > mono_reflection_get_custom_attrs_by_type(Pointer<MonoObject > obj, Pointer<MonoLibrary.MonoClass > attr_klass, Pointer<MonoError > error);
	public static native Pointer<MonoLibrary.MonoArray > mono_reflection_get_custom_attrs(Pointer<MonoObject > obj);
	public static native Pointer<MonoLibrary.MonoArray > mono_reflection_get_custom_attrs_data(Pointer<MonoObject > obj);
	public static native Pointer<MonoLibrary.MonoArray > mono_reflection_get_custom_attrs_blob(Pointer<MonoLibrary.MonoReflectionAssembly > assembly, Pointer<MonoObject > ctor, Pointer<MonoLibrary.MonoArray > ctorArgs, Pointer<MonoLibrary.MonoArray > properties, Pointer<MonoLibrary.MonoArray > porpValues, Pointer<MonoLibrary.MonoArray > fields, Pointer<MonoLibrary.MonoArray > fieldValues);
	public static native Pointer<MonoCustomAttrInfo > mono_reflection_get_custom_attrs_info(Pointer<MonoObject > obj);
	public static native Pointer<MonoLibrary.MonoArray > mono_custom_attrs_construct(Pointer<MonoCustomAttrInfo > cinfo);
	public static native Pointer<MonoCustomAttrInfo > mono_custom_attrs_from_index(Pointer<MonoLibrary.MonoImage > image, int idx);
	public static native Pointer<MonoCustomAttrInfo > mono_custom_attrs_from_method(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoCustomAttrInfo > mono_custom_attrs_from_class(Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoCustomAttrInfo > mono_custom_attrs_from_assembly(Pointer<MonoLibrary.MonoAssembly > assembly);
	public static native Pointer<MonoCustomAttrInfo > mono_custom_attrs_from_property(Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoProperty > property);
	public static native Pointer<MonoCustomAttrInfo > mono_custom_attrs_from_event(Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoEvent > event);
	public static native Pointer<MonoCustomAttrInfo > mono_custom_attrs_from_field(Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoLibrary.MonoClassField > field);
	public static native Pointer<MonoCustomAttrInfo > mono_custom_attrs_from_param(Pointer<MonoLibrary.MonoMethod > method, int param);
	public static native int mono_custom_attrs_has_attr(Pointer<MonoCustomAttrInfo > ainfo, Pointer<MonoLibrary.MonoClass > attr_klass);
	public static native Pointer<MonoObject > mono_custom_attrs_get_attr(Pointer<MonoCustomAttrInfo > ainfo, Pointer<MonoLibrary.MonoClass > attr_klass);
	public static native void mono_custom_attrs_free(Pointer<MonoCustomAttrInfo > ainfo);
	public static native int mono_declsec_flags_from_method(Pointer<MonoLibrary.MonoMethod > method);
	public static native int mono_declsec_flags_from_class(Pointer<MonoLibrary.MonoClass > klass);
	public static native int mono_declsec_flags_from_assembly(Pointer<MonoLibrary.MonoAssembly > assembly);
	public static native byte mono_declsec_get_demands(Pointer<MonoLibrary.MonoMethod > callee, Pointer<MonoDeclSecurityActions > demands);
	public static native byte mono_declsec_get_linkdemands(Pointer<MonoLibrary.MonoMethod > callee, Pointer<MonoDeclSecurityActions > klass, Pointer<MonoDeclSecurityActions > cmethod);
	public static native byte mono_declsec_get_inheritdemands_class(Pointer<MonoLibrary.MonoClass > klass, Pointer<MonoDeclSecurityActions > demands);
	public static native byte mono_declsec_get_inheritdemands_method(Pointer<MonoLibrary.MonoMethod > callee, Pointer<MonoDeclSecurityActions > demands);
	public static native byte mono_declsec_get_method_action(Pointer<MonoLibrary.MonoMethod > method, int action, Pointer<MonoDeclSecurityEntry > entry);
	public static native byte mono_declsec_get_class_action(Pointer<MonoLibrary.MonoClass > klass, int action, Pointer<MonoDeclSecurityEntry > entry);
	public static native byte mono_declsec_get_assembly_action(Pointer<MonoLibrary.MonoAssembly > assembly, int action, Pointer<MonoDeclSecurityEntry > entry);
	public static native Pointer<MonoLibrary.MonoDomain > mono_init(Pointer<Byte > filename);
	public static native Pointer<MonoLibrary.MonoDomain > mono_init_from_assembly(Pointer<Byte > domain_name, Pointer<Byte > filename);
	public static native Pointer<MonoLibrary.MonoDomain > mono_init_version(Pointer<Byte > domain_name, Pointer<Byte > version);
	public static native Pointer<MonoLibrary.MonoDomain > mono_get_root_domain();
	public static native void mono_runtime_init(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoThreadStartCB > start_cb, Pointer<MonoLibrary.MonoThreadAttachCB > attach_cb);
	public static native void mono_runtime_cleanup(Pointer<MonoLibrary.MonoDomain > domain);
	public static native void mono_install_runtime_cleanup(Pointer<MonoLibrary.MonoDomainFunc > func);
	public static native void mono_runtime_quit();
	public static native void mono_runtime_set_shutting_down();
	public static native int mono_runtime_is_shutting_down();
	public static native Pointer<Byte > mono_check_corlib_version();
	public static native Pointer<MonoLibrary.MonoDomain > mono_domain_create();
	public static native Pointer<MonoLibrary.MonoDomain > mono_domain_create_appdomain(Pointer<Byte > friendly_name, Pointer<Byte > configuration_file);
	public static native Pointer<MonoLibrary.MonoDomain > mono_domain_get();
	public static native Pointer<MonoLibrary.MonoDomain > mono_domain_get_by_id(int domainid);
	public static native int mono_domain_get_id(Pointer<MonoLibrary.MonoDomain > domain);
	public static native int mono_domain_set(Pointer<MonoLibrary.MonoDomain > domain, int force);
	public static native void mono_domain_set_internal(Pointer<MonoLibrary.MonoDomain > domain);
	public static native void mono_domain_unload(Pointer<MonoLibrary.MonoDomain > domain);
	public static native void mono_domain_try_unload(Pointer<MonoLibrary.MonoDomain > domain, Pointer<Pointer<MonoObject > > exc);
	public static native int mono_domain_is_unloading(Pointer<MonoLibrary.MonoDomain > domain);
	public static native Pointer<MonoLibrary.MonoDomain > mono_domain_from_appdomain(Pointer<MonoLibrary.MonoAppDomain > appdomain);
	public static native void mono_domain_foreach(Pointer<MonoLibrary.MonoDomainFunc > func, Pointer<? > user_data);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_domain_assembly_open(Pointer<MonoLibrary.MonoDomain > domain, Pointer<Byte > name);
	public static native int mono_domain_finalize(Pointer<MonoLibrary.MonoDomain > domain, int timeout);
	public static native void mono_domain_free(Pointer<MonoLibrary.MonoDomain > domain, int force);
	public static native int mono_domain_has_type_resolve(Pointer<MonoLibrary.MonoDomain > domain);
	public static native Pointer<MonoLibrary.MonoReflectionAssembly > mono_domain_try_type_resolve(Pointer<MonoLibrary.MonoDomain > domain, Pointer<Byte > name, Pointer<MonoObject > tb);
	public static native int mono_domain_owns_vtable_slot(Pointer<MonoLibrary.MonoDomain > domain, Pointer<? > vtable_slot);
	public static native void mono_context_init(Pointer<MonoLibrary.MonoDomain > domain);
	public static native void mono_context_set(Pointer<MonoLibrary.MonoAppContext > new_context);
	public static native Pointer<MonoLibrary.MonoAppContext > mono_context_get();
	public static native Pointer<MonoLibrary.MonoJitInfo > mono_jit_info_table_find(Pointer<MonoLibrary.MonoDomain > domain, Pointer<Byte > addr);
	public static native Pointer<? > mono_jit_info_get_code_start(Pointer<MonoLibrary.MonoJitInfo > ji);
	public static native int mono_jit_info_get_code_size(Pointer<MonoLibrary.MonoJitInfo > ji);
	public static native Pointer<MonoLibrary.MonoMethod > mono_jit_info_get_method(Pointer<MonoLibrary.MonoJitInfo > ji);
	public static native Pointer<MonoLibrary.MonoImage > mono_get_corlib();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_object_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_byte_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_void_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_boolean_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_sbyte_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_int16_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_uint16_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_int32_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_uint32_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_intptr_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_uintptr_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_int64_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_uint64_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_single_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_double_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_char_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_string_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_enum_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_array_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_thread_class();
	public static native Pointer<MonoLibrary.MonoClass > mono_get_exception_class();
	public static native void mono_security_enable_core_clr();
	public static native void mono_security_set_core_clr_platform_callback(Pointer<MonoLibrary.MonoCoreClrPlatformCB > callback);
	public static native Pointer<MonoLibrary.MonoDomain > mono_jit_init(Pointer<Byte > file);
	public static native Pointer<MonoLibrary.MonoDomain > mono_jit_init_version(Pointer<Byte > root_domain_name, Pointer<Byte > runtime_version);
	public static native int mono_jit_exec(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoAssembly > assembly, int argc, Pointer<Pointer<Byte > > argv);
	public static native void mono_jit_cleanup(Pointer<MonoLibrary.MonoDomain > domain);
	public static native int mono_jit_set_trace_options(Pointer<Byte > options);
	public static native void mono_set_signal_chaining(int chain_signals);
	public static native void mono_jit_set_aot_only(int aot_only);
	public static native void mono_set_break_policy(Pointer<MonoLibrary.MonoBreakPolicyFunc > policy_callback);
	public static native void mono_jit_parse_options(int argc, Pointer<Pointer<Byte > > argv);
	public static native void mono_assemblies_init();
	public static native void mono_assemblies_cleanup();
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_open(Pointer<Byte > filename, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_open_full(Pointer<Byte > filename, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status, int refonly);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_load(Pointer<MonoLibrary.MonoAssemblyName > aname, Pointer<Byte > basedir, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_load_full(Pointer<MonoLibrary.MonoAssemblyName > aname, Pointer<Byte > basedir, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status, int refonly);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_load_from(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > fname, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_load_from_full(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > fname, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status, int refonly);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_load_with_partial_name(Pointer<Byte > name, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_loaded(Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_loaded_full(Pointer<MonoLibrary.MonoAssemblyName > aname, int refonly);
	public static native void mono_assembly_get_assemblyref(Pointer<MonoLibrary.MonoImage > image, int index, Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native void mono_assembly_load_reference(Pointer<MonoLibrary.MonoImage > image, int index);
	public static native void mono_assembly_load_references(Pointer<MonoLibrary.MonoImage > image, Pointer<ValuedEnum<MonoLibrary.MonoImageOpenStatus > > status);
	public static native Pointer<MonoLibrary.MonoImage > mono_assembly_load_module(Pointer<MonoLibrary.MonoAssembly > assembly, int idx);
	public static native void mono_assembly_close(Pointer<MonoLibrary.MonoAssembly > assembly);
	public static native void mono_assembly_setrootdir(Pointer<Byte > root_dir);
	public static native Pointer<Byte > mono_assembly_getrootdir();
	public static native void mono_assembly_foreach(Pointer<MonoLibrary.MonoFunc > func, Pointer<? > user_data);
	public static native void mono_assembly_set_main(Pointer<MonoLibrary.MonoAssembly > assembly);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_get_main();
	public static native Pointer<MonoLibrary.MonoImage > mono_assembly_get_image(Pointer<MonoLibrary.MonoAssembly > assembly);
	public static native int mono_assembly_fill_assembly_name(Pointer<MonoLibrary.MonoImage > image, Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native int mono_assembly_names_equal(Pointer<MonoLibrary.MonoAssemblyName > l, Pointer<MonoLibrary.MonoAssemblyName > r);
	public static native Pointer<Byte > mono_stringify_assembly_name(Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native void mono_install_assembly_load_hook(Pointer<MonoLibrary.MonoAssemblyLoadFunc > func, Pointer<? > user_data);
	public static native void mono_install_assembly_search_hook(Pointer<MonoLibrary.MonoAssemblySearchFunc > func, Pointer<? > user_data);
	public static native void mono_install_assembly_refonly_search_hook(Pointer<MonoLibrary.MonoAssemblySearchFunc > func, Pointer<? > user_data);
	public static native Pointer<MonoLibrary.MonoAssembly > mono_assembly_invoke_search_hook(Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native void mono_install_assembly_postload_search_hook(Pointer<MonoLibrary.MonoAssemblySearchFunc > func, Pointer<? > user_data);
	public static native void mono_install_assembly_postload_refonly_search_hook(Pointer<MonoLibrary.MonoAssemblySearchFunc > func, Pointer<? > user_data);
	public static native void mono_install_assembly_preload_hook(Pointer<MonoLibrary.MonoAssemblyPreLoadFunc > func, Pointer<? > user_data);
	public static native void mono_install_assembly_refonly_preload_hook(Pointer<MonoLibrary.MonoAssemblyPreLoadFunc > func, Pointer<? > user_data);
	public static native void mono_assembly_invoke_load_hook(Pointer<MonoLibrary.MonoAssembly > ass);
	public static native Pointer<MonoLibrary.MonoAssemblyName > mono_assembly_name_new(Pointer<Byte > name);
	public static native Pointer<Byte > mono_assembly_name_get_name(Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native Pointer<Byte > mono_assembly_name_get_culture(Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native short mono_assembly_name_get_version(Pointer<MonoLibrary.MonoAssemblyName > aname, Pointer<Short > minor, Pointer<Short > build, Pointer<Short > revision);
	public static native Pointer<Byte > mono_assembly_name_get_pubkeytoken(Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native void mono_assembly_name_free(Pointer<MonoLibrary.MonoAssemblyName > aname);
	public static native void mono_register_bundled_assemblies(Pointer<Pointer<MonoBundledAssembly > > assemblies);
	public static native void mono_register_config_for_assembly(Pointer<Byte > assembly_name, Pointer<Byte > config_xml);
	public static native void mono_register_symfile_for_assembly(Pointer<Byte > assembly_name, Pointer<Byte > raw_contents, int size);
	public static native void mono_register_machine_config(Pointer<Byte > config_xml);
	public static native void mono_set_rootdir();
	public static native void mono_set_dirs(Pointer<Byte > assembly_dir, Pointer<Byte > config_dir);
	public static native void mono_set_assemblies_path(Pointer<Byte > path);
	public static native Pointer<Byte > mono_disasm_code_one(Pointer<MonoDisHelper > dh, Pointer<MonoLibrary.MonoMethod > method, Pointer<Byte > ip, Pointer<Pointer<Byte > > endp);
	public static native Pointer<Byte > mono_disasm_code(Pointer<MonoDisHelper > dh, Pointer<MonoLibrary.MonoMethod > method, Pointer<Byte > ip, Pointer<Byte > end);
	public static native Pointer<Byte > mono_type_full_name(Pointer<MonoLibrary.MonoType > type);
	public static native Pointer<Byte > mono_signature_get_desc(Pointer<MonoLibrary.MonoMethodSignature > sig, int include_namespace);
	public static native Pointer<Byte > mono_context_get_desc(Pointer<MonoLibrary.MonoGenericContext > context);
	public static native Pointer<MonoLibrary.MonoMethodDesc > mono_method_desc_new(Pointer<Byte > name, int include_namespace);
	public static native Pointer<MonoLibrary.MonoMethodDesc > mono_method_desc_from_method(Pointer<MonoLibrary.MonoMethod > method);
	public static native void mono_method_desc_free(Pointer<MonoLibrary.MonoMethodDesc > desc);
	public static native int mono_method_desc_match(Pointer<MonoLibrary.MonoMethodDesc > desc, Pointer<MonoLibrary.MonoMethod > method);
	public static native int mono_method_desc_full_match(Pointer<MonoLibrary.MonoMethodDesc > desc, Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoLibrary.MonoMethod > mono_method_desc_search_in_class(Pointer<MonoLibrary.MonoMethodDesc > desc, Pointer<MonoLibrary.MonoClass > klass);
	public static native Pointer<MonoLibrary.MonoMethod > mono_method_desc_search_in_image(Pointer<MonoLibrary.MonoMethodDesc > desc, Pointer<MonoLibrary.MonoImage > image);
	public static native Pointer<Byte > mono_method_full_name(Pointer<MonoLibrary.MonoMethod > method, int signature);
	public static native Pointer<Byte > mono_field_full_name(Pointer<MonoLibrary.MonoClassField > field);
	public static native void mono_debug_list_add(Pointer<Pointer<MonoDebugList > > list, Pointer<? > data);
	public static native void mono_debug_list_remove(Pointer<Pointer<MonoDebugList > > list, Pointer<? > data);
	public static native void mono_debug_init(ValuedEnum<MonoLibrary.MonoDebugFormat > format);
	public static native void mono_debug_open_image_from_memory(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > raw_contents, int size);
	public static native void mono_debug_cleanup();
	public static native void mono_debug_close_image(Pointer<MonoLibrary.MonoImage > image);
	public static native void mono_debug_domain_unload(Pointer<MonoLibrary.MonoDomain > domain);
	public static native void mono_debug_domain_create(Pointer<MonoLibrary.MonoDomain > domain);
	public static native int mono_debug_using_mono_debugger();
	public static native Pointer<MonoLibrary.MonoDebugMethodAddress > mono_debug_add_method(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoDebugMethodJitInfo > jit, Pointer<MonoLibrary.MonoDomain > domain);
	public static native Pointer<MonoDebugMethodInfo > mono_debug_lookup_method(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoDebugMethodAddressList > mono_debug_lookup_method_addresses(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoDebugMethodJitInfo > mono_debug_find_method(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoDomain > domain);
	public static native void mono_debug_free_method_jit_info(Pointer<MonoDebugMethodJitInfo > jit);
	public static native void mono_debug_add_delegate_trampoline(Pointer<? > code, int size);
	public static native Pointer<MonoDebugLocalsInfo > mono_debug_lookup_locals(Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoDebugSourceLocation > mono_debug_lookup_source_location(Pointer<MonoLibrary.MonoMethod > method, int address, Pointer<MonoLibrary.MonoDomain > domain);
	public static native int mono_debug_il_offset_from_address(Pointer<MonoLibrary.MonoMethod > method, Pointer<MonoLibrary.MonoDomain > domain, int native_offset);
	public static native void mono_debug_free_source_location(Pointer<MonoDebugSourceLocation > location);
	public static native Pointer<Byte > mono_debug_print_stack_frame(Pointer<MonoLibrary.MonoMethod > method, int native_offset, Pointer<MonoLibrary.MonoDomain > domain);
	public static native int mono_debugger_method_has_breakpoint(Pointer<MonoLibrary.MonoMethod > method);
	public static native int mono_debugger_insert_breakpoint(Pointer<Byte > method_name, int include_namespace);
	public static native void mono_set_is_debugger_attached(int attached);
	public static native int mono_is_debugger_attached();
	public static native Pointer<MonoLibrary.MonoSymbolFile > mono_debug_open_mono_symbols(Pointer<MonoDebugHandle > handle, Pointer<Byte > raw_contents, int size, int in_the_debugger);
	public static native void mono_debug_close_mono_symbol_file(Pointer<MonoLibrary.MonoSymbolFile > symfile);
	public static native int mono_debug_symfile_is_loaded(Pointer<MonoLibrary.MonoSymbolFile > symfile);
	public static native Pointer<MonoDebugSourceLocation > mono_debug_symfile_lookup_location(Pointer<MonoDebugMethodInfo > minfo, int offset);
	public static native void mono_debug_symfile_free_location(Pointer<MonoDebugSourceLocation > location);
	public static native int _mono_debug_address_from_il_offset(Pointer<MonoDebugMethodJitInfo > jit, int il_offset);
	public static native Pointer<MonoDebugMethodInfo > mono_debug_symfile_lookup_method(Pointer<MonoDebugHandle > handle, Pointer<MonoLibrary.MonoMethod > method);
	public static native Pointer<MonoDebugLocalsInfo > mono_debug_symfile_lookup_locals(Pointer<MonoDebugMethodInfo > minfo);
	public static native void mono_debug_symfile_free_locals(Pointer<MonoDebugLocalsInfo > info);
	public static native void mono_debug_symfile_get_line_numbers(Pointer<MonoDebugMethodInfo > minfo, Pointer<Pointer<Byte > > source_file, Pointer<Integer > n_il_offsets, Pointer<Pointer<Integer > > il_offsets, Pointer<Pointer<Integer > > line_numbers);
	public static native int mono_environment_exitcode_get();
	public static native void mono_environment_exitcode_set(int value);
	public static native Pointer<MonoLibrary.MonoException > mono_exception_from_name(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > name_space, Pointer<Byte > name);
	public static native Pointer<MonoLibrary.MonoException > mono_exception_from_token(Pointer<MonoLibrary.MonoImage > image, int token);
	public static native Pointer<MonoLibrary.MonoException > mono_exception_from_name_two_strings(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > name_space, Pointer<Byte > name, Pointer<MonoLibrary.MonoString > a1, Pointer<MonoLibrary.MonoString > a2);
	public static native Pointer<MonoLibrary.MonoException > mono_exception_from_name_msg(Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > name_space, Pointer<Byte > name, Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_exception_from_token_two_strings(Pointer<MonoLibrary.MonoImage > image, int token, Pointer<MonoLibrary.MonoString > a1, Pointer<MonoLibrary.MonoString > a2);
	public static native Pointer<MonoLibrary.MonoException > mono_exception_from_name_domain(Pointer<MonoLibrary.MonoDomain > domain, Pointer<MonoLibrary.MonoImage > image, Pointer<Byte > name_space, Pointer<Byte > name);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_divide_by_zero();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_security();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_arithmetic();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_overflow();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_null_reference();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_execution_engine(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_thread_abort();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_thread_state(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_thread_interrupted();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_serialization(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_invalid_cast();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_invalid_operation(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_index_out_of_range();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_array_type_mismatch();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_type_load(Pointer<MonoLibrary.MonoString > class_name, Pointer<Byte > assembly_name);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_missing_method(Pointer<Byte > class_name, Pointer<Byte > member_name);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_missing_field(Pointer<Byte > class_name, Pointer<Byte > member_name);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_not_implemented(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_not_supported(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_argument_null(Pointer<Byte > arg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_argument(Pointer<Byte > arg, Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_argument_out_of_range(Pointer<Byte > arg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_io(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_file_not_found(Pointer<MonoLibrary.MonoString > fname);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_file_not_found2(Pointer<Byte > msg, Pointer<MonoLibrary.MonoString > fname);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_type_initialization(Pointer<Byte > type_name, Pointer<MonoLibrary.MonoException > inner);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_synchronization_lock(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_cannot_unload_appdomain(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_appdomain_unloaded();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_bad_image_format(Pointer<Byte > msg);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_bad_image_format2(Pointer<Byte > msg, Pointer<MonoLibrary.MonoString > fname);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_stack_overflow();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_out_of_memory();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_field_access();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_method_access();
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_reflection_type_load(Pointer<MonoLibrary.MonoArray > types, Pointer<MonoLibrary.MonoArray > exceptions);
	public static native Pointer<MonoLibrary.MonoException > mono_get_exception_runtime_wrapped(Pointer<MonoObject > wrapped_exception);
	public static native Pointer<Byte > mono_get_config_dir();
	public static native void mono_set_config_dir(Pointer<Byte > dir);
	public static native Pointer<Byte > mono_get_machine_config();
	public static native void mono_config_cleanup();
	public static native void mono_config_parse(Pointer<Byte > filename);
	public static native void mono_config_for_assembly(Pointer<MonoLibrary.MonoImage > assembly);
	public static native void mono_config_parse_memory(Pointer<Byte > buffer);
	public static native Pointer<Byte > mono_config_string_for_assembly_file(Pointer<Byte > filename);
	public static native void mono_gc_collect(int generation);
	public static native int mono_gc_max_generation();
	public static native int mono_gc_get_generation(Pointer<MonoObject > object);
	public static native int mono_gc_collection_count(int generation);
	public static native long mono_gc_get_used_size();
	public static native long mono_gc_get_heap_size();
	public static native int mono_gc_invoke_finalizers();
	public static native int mono_gc_walk_heap(int flags, Pointer<MonoLibrary.MonoGCReferences > callback, Pointer<? > data);
	public static native Pointer<Byte > mono_opcode_name(int opcode);
	public static native MonoLibrary.MonoOpcodeEnum mono_opcode_value(Pointer<Pointer<Byte > > ip, Pointer<Byte > end);
	/// C type : extern MonoSymbolTable*
	public Pointer<MonoSymbolTable > mono_symbol_table() {
		try {
			return (Pointer<MonoSymbolTable >)BridJ.getNativeLibrary("mono").getSymbolPointer("mono_symbol_table").as(org.bridj.util.DefaultParameterizedType.paramType(org.bridj.Pointer.class, com.nativelibs4java.mono.bridj.MonoSymbolTable.class)).get();
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	/// C type : extern MonoSymbolTable*
	public MonoLibrary mono_symbol_table(Pointer<MonoSymbolTable > mono_symbol_table) {
		try {
			{
				BridJ.getNativeLibrary("mono").getSymbolPointer("mono_symbol_table").as(org.bridj.util.DefaultParameterizedType.paramType(org.bridj.Pointer.class, com.nativelibs4java.mono.bridj.MonoSymbolTable.class)).set(mono_symbol_table);
				return this;
			}
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	/// C type : extern MonoDebugFormat
	public ValuedEnum<MonoLibrary.MonoDebugFormat > mono_debug_format() {
		try {
			return (ValuedEnum<MonoLibrary.MonoDebugFormat >)BridJ.getNativeLibrary("mono").getSymbolPointer("mono_debug_format").as(org.bridj.util.DefaultParameterizedType.paramType(org.bridj.ValuedEnum.class, com.nativelibs4java.mono.bridj.MonoLibrary.MonoDebugFormat.class)).get();
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	/// C type : extern MonoDebugFormat
	public MonoLibrary mono_debug_format(ValuedEnum<MonoLibrary.MonoDebugFormat > mono_debug_format) {
		try {
			{
				BridJ.getNativeLibrary("mono").getSymbolPointer("mono_debug_format").as(org.bridj.util.DefaultParameterizedType.paramType(org.bridj.ValuedEnum.class, com.nativelibs4java.mono.bridj.MonoLibrary.MonoDebugFormat.class)).set(mono_debug_format);
				return this;
			}
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	public int mono_debug_debugger_version() {
		try {
			return (int)BridJ.getNativeLibrary("mono").getSymbolPointer("mono_debug_debugger_version").as(int.class).get();
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	public MonoLibrary mono_debug_debugger_version(int mono_debug_debugger_version) {
		try {
			{
				BridJ.getNativeLibrary("mono").getSymbolPointer("mono_debug_debugger_version").as(int.class).set(mono_debug_debugger_version);
				return this;
			}
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	public int _mono_debug_using_mono_debugger() {
		try {
			return (int)BridJ.getNativeLibrary("mono").getSymbolPointer("_mono_debug_using_mono_debugger").as(int.class).get();
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	public MonoLibrary _mono_debug_using_mono_debugger(int _mono_debug_using_mono_debugger) {
		try {
			{
				BridJ.getNativeLibrary("mono").getSymbolPointer("_mono_debug_using_mono_debugger").as(int.class).set(_mono_debug_using_mono_debugger);
				return this;
			}
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	/// Conversion Error : null (void type !)
	/// C type : extern const MonoOpcode[]
	public Pointer<MonoOpcode > mono_opcodes() {
		try {
			return (Pointer<MonoOpcode >)BridJ.getNativeLibrary("mono").getSymbolPointer("mono_opcodes").as(org.bridj.util.DefaultParameterizedType.paramType(org.bridj.Pointer.class, com.nativelibs4java.mono.bridj.MonoOpcode.class)).get();
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	/// C type : extern const MonoOpcode[]
	public MonoLibrary mono_opcodes(Pointer<MonoOpcode > mono_opcodes) {
		try {
			{
				BridJ.getNativeLibrary("mono").getSymbolPointer("mono_opcodes").as(org.bridj.util.DefaultParameterizedType.paramType(org.bridj.Pointer.class, com.nativelibs4java.mono.bridj.MonoOpcode.class)).set(mono_opcodes);
				return this;
			}
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	/// Undefined type
	public static interface MonoImage {
		
	};
	/// Undefined type
	public static interface MonoMethod {
		
	};
	/// Undefined type
	public static interface MonoThreadsSync {
		
	};
	/// Undefined type
	public static interface MonoReflectionMethodBody {
		
	};
	/// Undefined type
	public static interface MonoReflectionField {
		
	};
	/// Undefined type
	public static interface MonoReflectionModule {
		
	};
	/// Undefined type
	public static interface MonoMethodDesc {
		
	};
	/// Undefined type
	public static interface MonoTableInfo {
		
	};
	/// Undefined type
	public static interface MonoMethodHeader {
		
	};
	/// Undefined type
	public static interface MonoGenericContext {
		
	};
	/// Undefined type
	public static interface MonoReflectionType {
		
	};
	/// Undefined type
	public static interface MonoReflectionEvent {
		
	};
	/// Undefined type
	public static interface MonoEvent {
		
	};
	/// Undefined type
	public static interface MonoDomain {
		
	};
	/// Undefined type
	public static interface MonoOpcodeEnum {
		
	};
	/// Undefined type
	public static interface MonoDebugDataTable {
		
	};
	/// Undefined type
	public static interface MonoProperty {
		
	};
	/// Undefined type
	public static interface MonoTypeNameParse {
		
	};
	/// Undefined type
	public static interface MonoString {
		
	};
	/// Undefined type
	public static interface MonoAppContext {
		
	};
	/// Undefined type
	public static interface MonoGenericClass {
		
	};
	/// Undefined type
	public static interface MonoReflectionAssembly {
		
	};
	/// Undefined type
	public static interface MonoAppDomain {
		
	};
	/// Undefined type
	public static interface MonoAssembly {
		
	};
	/// Undefined type
	public static interface MonoAssemblyName {
		
	};
	/// Undefined type
	public static interface MonoMethodSignature {
		
	};
	/// Undefined type
	public static interface MonoType {
		
	};
	/// Undefined type
	public static interface MonoGenericParam {
		
	};
	/// Undefined type
	public static interface MonoClassField {
		
	};
	/// Undefined type
	public static interface MonoException {
		
	};
	/// Undefined type
	public static interface MonoSymbolFile {
		
	};
	/// Undefined type
	public static interface MonoArray {
		
	};
	/// Undefined type
	public static interface MonoReflectionProperty {
		
	};
	/// Undefined type
	public static interface MonoVTable {
		
	};
	/// Undefined type
	public static interface MonoDebugMethodAddress {
		
	};
	/// Undefined type
	public static interface MonoReflectionMethod {
		
	};
	/// Undefined type
	public static interface MonoClass {
		
	};
	/// Undefined type
	public static interface MonoJitInfo {
		
	};
}
