#pragma once

#include "il2cpp-config.h"

#ifndef _MSC_VER
# include <alloca.h>
#else
# include <malloc.h>
#endif

#include <stdint.h>
#include <assert.h>
#include <exception>

// System.Enum
struct Enum_t2862688501;
// System.IFormatProvider
struct IFormatProvider_t192740775;
// System.Object
struct Il2CppObject;
// System.Type
struct Type_t;
// System.Array
struct Il2CppArray;
// System.String
struct String_t;
// System.Collections.Hashtable
struct Hashtable_t1407064410;
// System.String[]
struct StringU5BU5D_t4054002952;
struct Enum_t2862688501_marshaled_pinvoke;
struct Enum_t2862688501_marshaled_com;

#include "codegen/il2cpp-codegen.h"
#include "mscorlib_System_DateTime4283661327.h"
#include "mscorlib_System_Decimal1954350631.h"
#include "mscorlib_System_Type2863145774.h"
#include "mscorlib_System_TypeCode1814089915.h"
#include "mscorlib_System_Object4170816371.h"
#include "mscorlib_System_Array1146569071.h"
#include "mscorlib_System_Collections_Hashtable1407064410.h"
#include "mscorlib_System_String7231557.h"

// System.Void System.Enum::.ctor()
extern "C"  void Enum__ctor_m701753108 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Void System.Enum::.cctor()
extern "C"  void Enum__cctor_m4092380953 (Il2CppObject * __this /* static, unused */, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Boolean System.Enum::System.IConvertible.ToBoolean(System.IFormatProvider)
extern "C"  bool Enum_System_IConvertible_ToBoolean_m2146376156 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Byte System.Enum::System.IConvertible.ToByte(System.IFormatProvider)
extern "C"  uint8_t Enum_System_IConvertible_ToByte_m1060234888 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Char System.Enum::System.IConvertible.ToChar(System.IFormatProvider)
extern "C"  Il2CppChar Enum_System_IConvertible_ToChar_m179982628 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.DateTime System.Enum::System.IConvertible.ToDateTime(System.IFormatProvider)
extern "C"  DateTime_t4283661327  Enum_System_IConvertible_ToDateTime_m4246330158 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Decimal System.Enum::System.IConvertible.ToDecimal(System.IFormatProvider)
extern "C"  Decimal_t1954350631  Enum_System_IConvertible_ToDecimal_m3666246204 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Double System.Enum::System.IConvertible.ToDouble(System.IFormatProvider)
extern "C"  double Enum_System_IConvertible_ToDouble_m4172089306 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int16 System.Enum::System.IConvertible.ToInt16(System.IFormatProvider)
extern "C"  int16_t Enum_System_IConvertible_ToInt16_m2840902492 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::System.IConvertible.ToInt32(System.IFormatProvider)
extern "C"  int32_t Enum_System_IConvertible_ToInt32_m2869626012 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int64 System.Enum::System.IConvertible.ToInt64(System.IFormatProvider)
extern "C"  int64_t Enum_System_IConvertible_ToInt64_m547036028 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.SByte System.Enum::System.IConvertible.ToSByte(System.IFormatProvider)
extern "C"  int8_t Enum_System_IConvertible_ToSByte_m2434598716 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Single System.Enum::System.IConvertible.ToSingle(System.IFormatProvider)
extern "C"  float Enum_System_IConvertible_ToSingle_m194603528 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::System.IConvertible.ToType(System.Type,System.IFormatProvider)
extern "C"  Il2CppObject * Enum_System_IConvertible_ToType_m3110119966 (Il2CppObject * __this, Type_t * ___targetType0, Il2CppObject * ___provider1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.UInt16 System.Enum::System.IConvertible.ToUInt16(System.IFormatProvider)
extern "C"  uint16_t Enum_System_IConvertible_ToUInt16_m2491689078 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.UInt32 System.Enum::System.IConvertible.ToUInt32(System.IFormatProvider)
extern "C"  uint32_t Enum_System_IConvertible_ToUInt32_m1363911786 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.UInt64 System.Enum::System.IConvertible.ToUInt64(System.IFormatProvider)
extern "C"  uint64_t Enum_System_IConvertible_ToUInt64_m3959759976 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.TypeCode System.Enum::GetTypeCode()
extern "C"  int32_t Enum_GetTypeCode_m403915996 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::get_value()
extern "C"  Il2CppObject * Enum_get_value_m2922212495 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::get_Value()
extern "C"  Il2CppObject * Enum_get_Value_m291898479 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::FindPosition(System.Object,System.Array)
extern "C"  int32_t Enum_FindPosition_m20879982 (Il2CppObject * __this /* static, unused */, Il2CppObject * ___value0, Il2CppArray * ___values1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::GetName(System.Type,System.Object)
extern "C"  String_t* Enum_GetName_m3333121265 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Boolean System.Enum::IsDefined(System.Type,System.Object)
extern "C"  bool Enum_IsDefined_m2781598580 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Type System.Enum::get_underlying_type(System.Type)
extern "C"  Type_t * Enum_get_underlying_type_m3481337786 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Type System.Enum::GetUnderlyingType(System.Type)
extern "C"  Type_t * Enum_GetUnderlyingType_m2468052512 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::FindName(System.Collections.Hashtable,System.String[],System.String,System.Boolean)
extern "C"  int32_t Enum_FindName_m1872558967 (Il2CppObject * __this /* static, unused */, Hashtable_t1407064410 * ___name_hash0, StringU5BU5D_t4054002952* ___names1, String_t* ___name2, bool ___ignoreCase3, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.UInt64 System.Enum::GetValue(System.Object,System.TypeCode)
extern "C"  uint64_t Enum_GetValue_m75952491 (Il2CppObject * __this /* static, unused */, Il2CppObject * ___value0, int32_t ___typeCode1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::Parse(System.Type,System.String,System.Boolean)
extern "C"  Il2CppObject * Enum_Parse_m1799348482 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, String_t* ___value1, bool ___ignoreCase2, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::compare_value_to(System.Object)
extern "C"  int32_t Enum_compare_value_to_m1798628381 (Il2CppObject * __this, Il2CppObject * ___other0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::CompareTo(System.Object)
extern "C"  int32_t Enum_CompareTo_m1622811206 (Il2CppObject * __this, Il2CppObject * ___target0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::ToString()
extern "C"  String_t* Enum_ToString_m1469276249 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::ToString(System.IFormatProvider)
extern "C"  String_t* Enum_ToString_m4089777287 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::ToString(System.String)
extern "C"  String_t* Enum_ToString_m1466259273 (Il2CppObject * __this, String_t* ___format0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::ToString(System.String,System.IFormatProvider)
extern "C"  String_t* Enum_ToString_m3635159947 (Il2CppObject * __this, String_t* ___format0, Il2CppObject * ___provider1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Byte)
extern "C"  Il2CppObject * Enum_ToObject_m3484832841 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, uint8_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Int16)
extern "C"  Il2CppObject * Enum_ToObject_m845831469 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, int16_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Int32)
extern "C"  Il2CppObject * Enum_ToObject_m845833267 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, int32_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Int64)
extern "C"  Il2CppObject * Enum_ToObject_m845836212 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, int64_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Object)
extern "C"  Il2CppObject * Enum_ToObject_m1129836274 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.SByte)
extern "C"  Il2CppObject * Enum_ToObject_m1091702854 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, int8_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.UInt16)
extern "C"  Il2CppObject * Enum_ToObject_m1448253266 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, uint16_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.UInt32)
extern "C"  Il2CppObject * Enum_ToObject_m1448255064 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, uint32_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.UInt64)
extern "C"  Il2CppObject * Enum_ToObject_m1448258009 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, uint64_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Boolean System.Enum::Equals(System.Object)
extern "C"  bool Enum_Equals_m4008135815 (Il2CppObject * __this, Il2CppObject * ___obj0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::get_hashcode()
extern "C"  int32_t Enum_get_hashcode_m3881137336 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::GetHashCode()
extern "C"  int32_t Enum_GetHashCode_m4018839007 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::FormatSpecifier_X(System.Type,System.Object,System.Boolean)
extern "C"  String_t* Enum_FormatSpecifier_X_m2324577611 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, bool ___upper2, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::FormatFlags(System.Type,System.Object)
extern "C"  String_t* Enum_FormatFlags_m994697154 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::Format(System.Type,System.Object,System.String)
extern "C"  String_t* Enum_Format_m1097709535 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, String_t* ___format2, const MethodInfo* method) IL2CPP_METHOD_ATTR;

// Methods for marshaling
struct Enum_t2862688501;
struct Enum_t2862688501_marshaled_pinvoke;

extern "C" void Enum_t2862688501_marshal_pinvoke(const Enum_t2862688501& unmarshaled, Enum_t2862688501_marshaled_pinvoke& marshaled);
extern "C" void Enum_t2862688501_marshal_pinvoke_back(const Enum_t2862688501_marshaled_pinvoke& marshaled, Enum_t2862688501& unmarshaled);
extern "C" void Enum_t2862688501_marshal_pinvoke_cleanup(Enum_t2862688501_marshaled_pinvoke& marshaled);

// Methods for marshaling
struct Enum_t2862688501;
struct Enum_t2862688501_marshaled_com;

extern "C" void Enum_t2862688501_marshal_com(const Enum_t2862688501& unmarshaled, Enum_t2862688501_marshaled_com& marshaled);
extern "C" void Enum_t2862688501_marshal_com_back(const Enum_t2862688501_marshaled_com& marshaled, Enum_t2862688501& unmarshaled);
extern "C" void Enum_t2862688501_marshal_com_cleanup(Enum_t2862688501_marshaled_com& marshaled);
